From 9f3a37c85a0e6744f8e9657eb2986394efe823a3 Mon Sep 17 00:00:00 2001 From: cvsextras Date: Mon, 8 Nov 2004 05:32:51 +0000 Subject: [PATCH 001/715] Setup of module wine --- .cvsignore | 0 Makefile | 21 +++++++++++++++++++++ sources | 0 3 files changed, 21 insertions(+) create mode 100644 .cvsignore create mode 100644 Makefile create mode 100644 sources diff --git a/.cvsignore b/.cvsignore new file mode 100644 index 0000000..e69de29 diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..2e4f2b5 --- /dev/null +++ b/Makefile @@ -0,0 +1,21 @@ +# Makefile for source rpm: wine +# $Id$ +NAME := wine +SPECFILE = $(firstword $(wildcard *.spec)) + +define find-makefile-common +for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done +endef + +MAKEFILE_COMMON := $(shell $(find-makefile-common)) + +ifeq ($(MAKEFILE_COMMON),) +# attept a checkout +define checkout-makefile-common +test -f CVS/Rootx && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2 +endef + +MAKEFILE_COMMON := $(shell $(checkout-makefile-common)) +endif + +include $(MAKEFILE_COMMON) diff --git a/sources b/sources new file mode 100644 index 0000000..e69de29 From b7840508374abee950346619fc75dc13e37a993f Mon Sep 17 00:00:00 2001 From: cvsextras Date: Mon, 8 Nov 2004 05:32:54 +0000 Subject: [PATCH 002/715] auto-import changelog data from wine-0.0-0.fdr.2.20030911.rh90.src.rpm 0.0-0.fdr.2.20030911 - Fix SSL detection (need krb5), require openssl. - Disable ALSA by default, use "--with alsa" to enable. - Disable valgrind by default, use "--with valgrind" to enable. - Cosmetic improvements. Tue Sep 16 2003 Panu Matilainen 0.0-0.fdr.1.20030911 - update to 20030911 Tue Aug 19 2003 Panu Matilainen 0.0-0.fdr.1.20030813 - update to 20030813 Thu Jul 10 2003 Panu Matilainen 0.0-0.fdr.1.20030709 - update to 20030709 - add /lib/tls requirement -> only works with NTPL capable systems Wed Jul 02 2003 Panu Matilainen 0.0-0.fdr.1.20030618 - update to 20030618 Thu May 22 2003 Panu Matilainen 0.0-0.fdr.1.20030508 - update to 20030508 - add buildreq's & other QA issues from #255 Sat May 03 2003 Panu Matilainen 0.0-0.fdr.1.20030408 - package for fedora - based on modified RH wine from 8.0 found off the net --- .cvsignore | 1 + sources | 1 + wine-20030408-defaultcfg.patch | 51 ++++++ wine-20030408-initial.patch | 104 +++++++++++ wine-20030408-kde2.patch | 153 ++++++++++++++++ wine-20030408-winelauncher.patch | 92 ++++++++++ wine.init | 67 +++++++ wine.spec | 288 +++++++++++++++++++++++++++++++ 8 files changed, 757 insertions(+) create mode 100644 wine-20030408-defaultcfg.patch create mode 100644 wine-20030408-initial.patch create mode 100644 wine-20030408-kde2.patch create mode 100644 wine-20030408-winelauncher.patch create mode 100644 wine.init create mode 100644 wine.spec diff --git a/.cvsignore b/.cvsignore index e69de29..e3878fa 100644 --- a/.cvsignore +++ b/.cvsignore @@ -0,0 +1 @@ +Wine-20030911.tar.gz diff --git a/sources b/sources index e69de29..a75d807 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +81521fe47d540427183e88d02d5c5f88 Wine-20030911.tar.gz diff --git a/wine-20030408-defaultcfg.patch b/wine-20030408-defaultcfg.patch new file mode 100644 index 0000000..16ebf7c --- /dev/null +++ b/wine-20030408-defaultcfg.patch @@ -0,0 +1,51 @@ +Index: wine/libs/wine/config.c +=================================================================== +RCS file: /home/wine/wine/libs/wine/config.c,v +retrieving revision 1.1 +diff -u -r1.1 config.c +--- wine/libs/wine/config.c 22 Mar 2003 20:40:48 -0000 1.1 ++++ wine/libs/wine/config.c 26 Nov 2002 18:37:03 -0000 +@@ -136,7 +136,20 @@ + if (config_dir[0] != '/') + fatal_error( "invalid directory %s in WINEPREFIX: not an absolute path\n", prefix ); + if (stat( config_dir, &st ) == -1) +- fatal_perror( "cannot open %s as specified in WINEPREFIX", config_dir ); ++ { ++ /* No configuration - put in defaults. */ ++ char command[512]; ++ mkdir(config_dir, 0700); ++ sprintf(command, "/bin/cp /etc/wine/wine.conf %s/config", config_dir); ++ system(command); ++ sprintf(command, "/bin/cp /etc/wine/system.reg %s/system.reg", config_dir); ++ system(command); ++ sprintf(command, "/bin/cp /etc/wine/user.reg %s/user.reg", config_dir); ++ system(command); ++ sprintf(command, "/bin/cp /etc/wine/userdef.reg %s/userdef.reg", config_dir); ++ system(command); ++ stat( config_dir, &st ); ++ } + } + else + { +@@ -147,7 +160,20 @@ + remove_trailing_slashes( config_dir ); + strcat( config_dir, server_config_dir ); + if (stat( config_dir, &st ) == -1) +- fatal_perror( "cannot open %s", config_dir ); ++ { ++ /* No configuration - put in defaults. */ ++ char command[512]; ++ mkdir(config_dir, 0700); ++ sprintf(command, "/bin/cp /etc/wine/wine.conf %s/config", config_dir); ++ system(command); ++ sprintf(command, "/bin/cp /etc/wine/system.reg %s/system.reg", config_dir); ++ system(command); ++ sprintf(command, "/bin/cp /etc/wine/user.reg %s/user.reg", config_dir); ++ system(command); ++ sprintf(command, "/bin/cp /etc/wine/userdef.reg %s/userdef.reg", config_dir); ++ system(command); ++ stat( config_dir, &st ); ++ } + } + if (!S_ISDIR(st.st_mode)) fatal_error( "%s is not a directory\n", config_dir ); + diff --git a/wine-20030408-initial.patch b/wine-20030408-initial.patch new file mode 100644 index 0000000..6281eb3 --- /dev/null +++ b/wine-20030408-initial.patch @@ -0,0 +1,104 @@ +Index: wine/misc/registry.c +=================================================================== +RCS file: /home/wine/wine/misc/registry.c,v +retrieving revision 1.125 +diff -u -r1.125 registry.c +--- wine/misc/registry.c 30 Mar 2003 03:05:12 -0000 1.125 ++++ wine/misc/registry.c 26 Nov 2002 18:21:01 -0000 +@@ -1609,14 +1609,65 @@ + + strcpy(tmp,confdir); + strcat(tmp,"/" SAVE_LOCAL_REGBRANCH_USER_DEFAULT); ++ if (access( tmp, R_OK ) && !access( "/etc/wine/" SAVE_LOCAL_REGBRANCH_USER_DEFAULT, R_OK )) { ++ /* If the registry doesn't exist, copy the global one */ ++ FILE *in, *out; ++ char buf[1024]; ++ in = fopen( "/etc/wine/" SAVE_LOCAL_REGBRANCH_USER_DEFAULT, "r" ); ++ if(!in) ++ return; ++ out = fopen( tmp, "w" ); ++ if(!out) { ++ fclose(in); ++ return; ++ } ++ while(fgets(buf, 1024, in)) ++ fputs(buf, out); ++ fclose(in); ++ fclose(out); ++ } + load_wine_registry(hkey_users_default,tmp); + + strcpy(tmp,confdir); + strcat(tmp,"/" SAVE_LOCAL_REGBRANCH_CURRENT_USER); ++ if (access( tmp, R_OK ) && !access( "/etc/wine/" SAVE_LOCAL_REGBRANCH_CURRENT_USER, R_OK )) { ++ /* If the registry doesn't exist, copy the global one */ ++ FILE *in, *out; ++ char buf[1024]; ++ in = fopen( "/etc/wine/" SAVE_LOCAL_REGBRANCH_CURRENT_USER, "r" ); ++ if(!in) ++ return; ++ out = fopen( tmp, "w" ); ++ if(!out) { ++ fclose(in); ++ return; ++ } ++ while(fgets(buf, 1024, in)) ++ fputs(buf, out); ++ fclose(in); ++ fclose(out); ++ } + load_wine_registry(hkey_current_user,tmp); + + strcpy(tmp,confdir); + strcat(tmp,"/" SAVE_LOCAL_REGBRANCH_LOCAL_MACHINE); ++ if (access( tmp, R_OK ) && !access( "/etc/wine/" SAVE_LOCAL_REGBRANCH_LOCAL_MACHINE, R_OK )) { ++ /* If the registry doesn't exist, copy the global one */ ++ FILE *in, *out; ++ char buf[1024]; ++ in = fopen( "/etc/wine/" SAVE_LOCAL_REGBRANCH_LOCAL_MACHINE, "r" ); ++ if(!in) ++ return; ++ out = fopen( tmp, "w" ); ++ if(!out) { ++ fclose(in); ++ return; ++ } ++ while(fgets(buf, 1024, in)) ++ fputs(buf, out); ++ fclose(in); ++ fclose(out); ++ } + load_wine_registry(hkey_local_machine,tmp); + + free(tmp); +Index: wine/server/registry.c +=================================================================== +RCS file: /home/wine/wine/server/registry.c,v +retrieving revision 1.50 +diff -u -r1.50 registry.c +--- wine/server/registry.c 25 Feb 2003 04:04:18 -0000 1.50 ++++ wine/server/registry.c 26 Nov 2002 18:21:02 -0000 +@@ -1486,6 +1486,23 @@ + if (!(filename = malloc( strlen(config) + 8 ))) fatal_error( "out of memory\n" ); + strcpy( filename, config ); + strcat( filename, "/config" ); ++ if (access( filename, R_OK ) && !access( "/etc/wine/wine.conf", R_OK )) { ++ /* If the registry doesn't exist, copy the global one */ ++ FILE *in, *out; ++ char buf[1024]; ++ in = fopen( "/etc/wine/wine.conf", "r" ); ++ if(!in) ++ return; ++ out = fopen( filename, "w" ); ++ if(!out) { ++ fclose(in); ++ return; ++ } ++ while(fgets(buf, 1024, in)) ++ fputs(buf, out); ++ fclose(in); ++ fclose(out); ++ } + if ((f = fopen( filename, "r" ))) + { + struct key *key; diff --git a/wine-20030408-kde2.patch b/wine-20030408-kde2.patch new file mode 100644 index 0000000..c36cddd --- /dev/null +++ b/wine-20030408-kde2.patch @@ -0,0 +1,153 @@ +Index: wine/tools/wineshelllink +=================================================================== +RCS file: /home/wine/wine/tools/wineshelllink,v +retrieving revision 1.15 +diff -u -r1.15 wineshelllink +--- wine/tools/wineshelllink 23 May 2002 16:31:22 -0000 1.15 ++++ wine/tools/wineshelllink 26 Nov 2002 18:26:48 -0000 +@@ -77,22 +77,7 @@ + usage + fi + +-kde_entry() +-{ +- xname=`basename "$link"` +- cat < /dev/null 2>&1 +-if [ $? = 0 -a $mode = "menu" ] +-then +- iconname="`basename "$link"`.xpm" +- dir="$HOME/.menu/icons" +- if [ -f "$icon" ] +- then +- mkdir -p "$dir" +- cp "$icon" "$dir/$iconname" +- xpmicon="$dir/$iconname" +- else +- xpmicon="" +- fi +- mdk_entry >> "$HOME/.menu/wine" +- if [ -d "/usr/lib/menu" ] +- then +- mdk_entry >> "/usr/lib/menu/wine" +- fi +- update-menus > /dev/null 2>&1 +-fi +- + # KDE +- + if [ -d "$HOME/.kde" ] + then + kdeversion=0 +@@ -167,30 +128,13 @@ + copy_icon "$HOME/.kde/share/applnk/Wine" + if [ $mode = "menu" ] + then +- gnome_entry > "$HOME/.kde/share/applnk/Wine/$link.desktop" ++ make_entry > "$HOME/.kde/share/applnk/Wine/$link.desktop" + elif [ -d "$HOME/Desktop" ] + then +- gnome_entry > "$HOME/Desktop/$link.desktop" ++ make_entry > "$HOME/Desktop/$link.desktop" + fi + else +- copy_icon "$HOME/.kde/share/applnk/Wine" +- if [ $mode = "menu" ] +- then +- kde_entry > "$HOME/.kde/share/applnk/Wine/$link.kdelnk" +- +- # KDE 1.x kludge. Wake up KDE, if we can find kpanel running +- which kwmcom >/dev/null 2>/dev/null && \ +- ps u -C kpanel >/dev/null 2>/dev/null && \ +- kwmcom kpanel:restart +- +- elif [ -d "$HOME/Desktop" ] +- then +- kde_entry > "$HOME/Desktop/$link.kdelnk" +- # KDE 1.x kludge: wake up KDE, if we can find kfm running... +- which kfmclient >/dev/null 2>/dev/null && \ +- ps u -C kfm >/dev/null 2>/dev/null && \ +- kfmclient refreshDesktop +- fi ++ echo "KDE < 2 not supported anymore" + fi + fi + +@@ -199,15 +143,15 @@ + copy_icon "$HOME/.kde2/share/applnk/Wine" + if [ $mode = "menu" ] + then +- gnome_entry > "$HOME/.kde2/share/applnk/Wine/$link.desktop" ++ make_entry > "$HOME/.kde2/share/applnk/Wine/$link.desktop" + else + if [ -d "$HOME/Desktop2" ] + then +- gnome_entry > "$HOME/Desktop2/$link.desktop" ++ make_entry > "$HOME/Desktop2/$link.desktop" + fi + if [ -d "$HOME/Desktop" ] + then +- gnome_entry > "$HOME/Desktop/$link.desktop" ++ make_entry > "$HOME/Desktop/$link.desktop" + fi + fi + fi +@@ -217,19 +161,19 @@ + copy_icon "$HOME/.kde3/share/applnk/Wine" + if [ $mode = "menu" ] + then +- gnome_entry > "$HOME/.kde3/share/applnk/Wine/$link.desktop" ++ make_entry > "$HOME/.kde3/share/applnk/Wine/$link.desktop" + else + if [ -d "$HOME/Desktop3" ] + then +- gnome_entry > "$HOME/Desktop3/$link.desktop" ++ make_entry > "$HOME/Desktop3/$link.desktop" + fi + if [ -d "$HOME/Desktop2" ] + then +- gnome_entry > "$HOME/Desktop2/$link.desktop" ++ make_entry > "$HOME/Desktop2/$link.desktop" + fi + if [ -d "$HOME/Desktop" ] + then +- gnome_entry > "$HOME/Desktop/$link.desktop" ++ make_entry > "$HOME/Desktop/$link.desktop" + fi + fi + fi +@@ -241,10 +185,10 @@ + copy_icon "$HOME/.gnome/apps/Wine" + if [ $mode = "menu" ] + then +- gnome_entry > "$HOME/.gnome/apps/Wine/$link.desktop" ++ make_entry > "$HOME/.gnome/apps/Wine/$link.desktop" + elif [ -d "$HOME/.gnome-desktop" ] + then +- gnome_entry > "$HOME/.gnome-desktop/$link.desktop" ++ make_entry > "$HOME/.gnome-desktop/$link.desktop" + fi + fi + diff --git a/wine-20030408-winelauncher.patch b/wine-20030408-winelauncher.patch new file mode 100644 index 0000000..edd49f3 --- /dev/null +++ b/wine-20030408-winelauncher.patch @@ -0,0 +1,92 @@ +Index: wine/programs/winelauncher.in +=================================================================== +RCS file: /home/wine/wine/programs/winelauncher.in,v +retrieving revision 1.2 +diff -u -r1.2 winelauncher.in +--- wine/programs/winelauncher.in 5 Jul 2002 21:18:41 -0000 1.2 ++++ wine/programs/winelauncher.in 26 Nov 2002 17:52:47 -0000 +@@ -93,27 +93,11 @@ + + launch_winesetup() + { +- which winesetup +- if [ $? -eq 0 ] ; then +- winesetup +- else +- if [ -x /opt/wine/bin/winesetup ] ; then +- /opt/wine/bin/winesetup +- else +- $XMESSAGE -title "Error" \ +- "Error: Unable to find winesetup in your PATH or in /opt/wine/bin: +- I am not able to configure Wine. +- +- If winesetup is being distributed in a separate package +- that is not installed yet on your system, then please install this +- package. +- winesetup can also be downloaded from www.codeweavers.com. +- +- If you choose to not use winesetup for configuration, then +- you can find information on how to prepare a Wine config file manually +- in the Wine README / README.gz file or in the Wine User Guide." +- fi +- fi ++ mkdir ~/.wine ++ cp /etc/wine/wine.conf ~/.wine/config ++ cp /etc/wine/system.reg ~/.wine/system.reg ++ cp /etc/wine/user.ref ~/.wine/user.reg ++ cp /etc/wine/userdef.reg ~/.wine/userdef.reg + } + + #------------------------------------------------------------------------------ +@@ -247,7 +231,7 @@ + if [ $no_args -eq 1 ] ; then + echo "Wine called with no arguments." + echo "Invoking $WINEBIN/$WINE_BIN_NAME $@ ..." +- $XMESSAGE -buttons " Okay ":0," See the Wine Usage Statement ":1," Configure Wine ":2 \ ++ $XMESSAGE -buttons " Okay ":0," See the Wine Usage Statement ":1," Copy default config ":2 \ + -title "Welcome to Wine" \ + " + +@@ -290,14 +274,8 @@ + + while [ $conf -eq 0 ] ; do + +- if [ -f ~/.winerc ] ; then +- conf=1 +- fi + if [ -f ~/.wine/config ] ; then +- conf=2 +- fi +- if [ -f /etc/wine.conf ] ; then +- conf=3 ++ conf=1 + fi + + if [ $conf -ne 0 ] ; then +@@ -305,7 +283,7 @@ + fi + + echo "No configuration file detected." +- $XMESSAGE -buttons " Cancel ":0," Proceed ":1," Configure Wine ":2 \ ++ $XMESSAGE -buttons " Cancel ":0," Proceed ":1," Copy default config ":2 \ + -title "Welcome to Wine" \ + " + +@@ -313,7 +291,7 @@ + configuration file. + + This is normal if you have never run Wine before. +- If this is the case, select the 'Configure Wine' ++ If this is the case, select the 'Copy default config' + option, below, to create a configuration file. + + " +@@ -461,7 +439,7 @@ + fi + + BUTTONS="$BUTTONS"', Debug :2' +- BUTTONS="$BUTTONS"', Configure :4' ++ BUTTONS="$BUTTONS"', Copy default config :4' + BUTTONS="$BUTTONS"', Disable :3' + + #------------------------------------------------------------------------------ diff --git a/wine.init b/wine.init new file mode 100644 index 0000000..905eeff --- /dev/null +++ b/wine.init @@ -0,0 +1,67 @@ +#!/bin/sh +# +# wine Allow users to run Windows(tm) applications by just clicking on them +# (or typing ./file.exe) +# +# chkconfig: 35 98 10 +# description: Allow users to run Windows(tm) applications by just clicking \ +# on them (or typing ./file.exe) + +. /etc/rc.d/init.d/functions +RETVAL=0 + +start() { + echo -n $"Registering binary handler for Windows applications" + /sbin/modprobe binfmt_misc &>/dev/null + echo ':windows:M::MZ::/usr/bin/wine:' >/proc/sys/fs/binfmt_misc/register || : + echo ':windowsPE:M::PE::/usr/bin/wine:' >/proc/sys/fs/binfmt_misc/register || : +} + +stop() { + echo -n $"Unregistering binary handler for Windows applications" + echo "-1" >/proc/sys/fs/binfmt_misc/windows || : + echo "-1" >/proc/sys/fs/binfmt_misc/windowsPE || : +} + +reload() { + stop + start +} + +wine_status() { + if [ -e /proc/sys/fs/binfmt_misc/windows ]; then + echo $"Wine binary format handlers are registered." + return 0 + else + echo $"Wine binary format handlers are not registered." + return 3 + fi +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + status) + wine_status + RETVAL=$? + ;; + restart) + stop + start + ;; + condrestart) + if [ -e /proc/sys/fs/binfmt_misc/windows ]; then + stop + start + fi + ;; + *) + echo $"Usage: $prog {start|stop|status|restart|condrestart}" + exit 1 +esac +exit $RETVAL + diff --git a/wine.spec b/wine.spec new file mode 100644 index 0000000..d69f0ed --- /dev/null +++ b/wine.spec @@ -0,0 +1,288 @@ +%define DATE 20030911 +%define with_valgrind %{?_with_valgrind:1}%{!?_with_valgrind:0} +%define with_alsa %{?_with_alsa:1}%{!?_with_alsa:0} + +Summary: A Windows 16/32 bit emulator. +Name: wine +Version: 0.0 +Release: 0.fdr.2.%{DATE}.rh90 +Epoch: 0 +Group: Applications/Emulators +License: LGPL +URL: http://www.winehq.com/ +Source0: ftp://metalab.unc.edu/pub/Linux/ALPHA/wine/development/Wine-%{DATE}.tar.gz +Source1: wine.init +Patch0: wine-20030408-initial.patch +Patch1: wine-20030408-kde2.patch +Patch2: wine-20030408-winelauncher.patch +Patch3: wine-20030408-defaultcfg.patch +Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +ExclusiveArch: %{ix86} +Prereq: shadow-utils +Conflicts: kdebase < 0:2.0 +Requires: cups-libs >= 0:1.1.12, openssl +# require NPTL-capable glibc +Requires: /lib/tls +Requires(pre,postun): shadow-utils +BuildRequires: docbook-utils, cups-devel >= 0:1.1.12, perl +BuildRequires: XFree86-devel, libjpeg-devel, libungif-devel, libstdc++-devel +BuildRequires: bison, flex, autoconf >= 0:2.53, arts-devel, ncurses-devel +BuildRequires: openssl-devel, sane-backends-devel +%if %{with_valgrind} +BuildRequires: valgrind-devel +%else +BuildConflicts: valgrind-devel +%endif +%if %{with_alsa} +BuildRequires: alsa-libs-devel +%else +BuildConflicts: alsa-libs-devel +%endif +Provides: libntdll.dll.so + +%description +While Wine is usually thought of as a Windows(TM) emulator, the Wine +developers would prefer that users thought of Wine as a Windows +compatibility layer for UNIX. This package includes a program loader, +which allows unmodified Windows 3.1/95/NT binaries to run under Intel +Unixes. Wine does not require MS Windows, but it can use native system +.dll files if they are available. + +%package devel +Summary: Wine development environment. +Group: Development/Libraries +Requires: %{name} = %{epoch}:%{version}-%{release} + +%description devel +Header and include files for developing applications with the Wine +Windows(TM) emulation libraries. + + +%prep +%setup -q -n wine-%{DATE} +find . -type d -name CVS |xargs rm -rf +%patch -p1 -b .initial +%patch1 -p1 -b .kde2 +%patch2 -p1 -b .wl +%patch3 -p1 -b .defcfg + + +%build +export CFLAGS="$RPM_OPT_FLAGS" +export CPPFLAGS="$(pkg-config openssl --cflags)" # fix ssl detection, need krb5 +autoconf || autoconf-2.53 +%configure \ + --with-nptl \ + --with-x \ + --libdir=%{_libdir}/wine \ + --includedir=%{_includedir}/wine \ + --sysconfdir=%{_sysconfdir}/wine + + +make depend +make %{?_smp_mflags} +#%{__make} -C documentation doc + + +%install +rm -rf $RPM_BUILD_ROOT + +%makeinstall \ + includedir=%{?buildroot:%{buildroot}}%{_includedir}/wine \ + libdir=%{?buildroot:%{buildroot}}%{_libdir}/wine \ + sysconfdir=%{?buildroot:%{buildroot}}%{_sysconfdir}/wine \ + dlldir=%{?buildroot:%{buildroot}}%{_libdir}/wine/wine \ + LDCONFIG=/bin/true + +for i in system command "Start Menu/Programs/Startup" Profiles/Administrator Fonts \ + Desktop Favorites NetHood Recent SendTo ShellNew; do + mkdir -p "$RPM_BUILD_ROOT%{_datadir}/wine-c/windows/$i" +done +mkdir -p "$RPM_BUILD_ROOT%{_datadir}/wine-c/My Documents" +mkdir -p "$RPM_BUILD_ROOT%{_datadir}/wine-c/Program Files/Common Files" + +# Take care of wine and windows configuration files... +mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/wine +mv documentation/samples/config documentation/samples/config.orig +sed "s/\"GraphicsDriver\" = .*/\"GraphicsDriver\" = \"ttydrv\"/" documentation/samples/config.orig |\ +sed "s|\"Path\" = \"/c\"\$|\"Path\" = \"$RPM_BUILD_ROOT%{_datadir}/wine-c\"|" |\ +sed "s|\"Path\" = \"\${HOME}\"$|\"Path\" = \"%{_builddir}/%{buildsubdir}\"|" -> documentation/samples/config +WINEPREFIX=%{_builddir}/%{buildsubdir}/documentation/samples programs/regedit/regedit winedefault.reg #> /dev/null +# Wait until wineserver finishes and closes those files +sleep 5 +install -c -m 0644 documentation/samples/system.reg $RPM_BUILD_ROOT%{_sysconfdir}/wine/system.reg +install -c -m 0644 documentation/samples/user.reg $RPM_BUILD_ROOT%{_sysconfdir}/wine/user.reg +install -c -m 0644 documentation/samples/userdef.reg $RPM_BUILD_ROOT%{_sysconfdir}/wine/userdef.reg +rm -f documentation/samples/system.reg +rm -f documentation/samples/user.reg +rm -f documentation/samples/userdef.reg + +sed "s|\"Path\" = \"/c\"\$|\"Path\" = \"%{_datadir}/wine-c\"|" documentation/samples/config.orig > documentation/samples/config.rh +mv documentation/samples/config.rh documentation/samples/config.orig +sed "s|\"Path\" = \"/cdrom\"\$|\"Path\" = \"/mnt/cdrom\"|" documentation/samples/config.orig > documentation/samples/config.rh +mv documentation/samples/config.rh documentation/samples/config.orig +sed "s|\"Path\" = \"/mnt/fd0\"\$|\"Path\" = \"/mnt/floppy\"|" documentation/samples/config.orig > documentation/samples/config.rh + +install -c -m 0644 documentation/samples/config.rh $RPM_BUILD_ROOT%{_sysconfdir}/wine/wine.conf +rm -f documentation/samples/config +rm -f documentation/samples/config.rh +mv documentation/samples/config.orig documentation/samples/config + +# Install link to windows applications replacements +ln -sf %{_libdir}/wine/wine/start.exe.so $RPM_BUILD_ROOT%{_datadir}/wine-c/windows/command/start.exe +ln -sf %{_libdir}/wine/wine/notepad.exe.so $RPM_BUILD_ROOT%{_datadir}/wine-c/windows/notepad.exe +ln -sf %{_libdir}/wine/wine/regedit.exe.so $RPM_BUILD_ROOT%{_datadir}/wine-c/windows/regedit.exe +ln -sf %{_libdir}/wine/wine/rundll32.exe.so $RPM_BUILD_ROOT%{_datadir}/wine-c/windows/rundll32.exe +ln -sf %{_libdir}/wine/wine/wcmd.exe.so $RPM_BUILD_ROOT%{_datadir}/wine-c/windows/system/cmd.exe +ln -sf %{_libdir}/wine/wine/control.exe.so $RPM_BUILD_ROOT%{_datadir}/wine-c/windows/system/control.exe +ln -sf %{_libdir}/wine/wine/winhelp.exe.so $RPM_BUILD_ROOT%{_datadir}/wine-c/windows/system/help.exe +ln -sf %{_libdir}/wine/wine/notepad.exe.so $RPM_BUILD_ROOT%{_datadir}/wine-c/windows/system/notepad.exe +ln -sf %{_libdir}/wine/wine/progman.exe.so $RPM_BUILD_ROOT%{_datadir}/wine-c/windows/system/progman.exe +ln -sf %{_libdir}/wine/wine/regsvr32.exe.so $RPM_BUILD_ROOT%{_datadir}/wine-c/windows/system/regsvr32.exe +ln -sf %{_libdir}/wine/wine/winemine.exe.so $RPM_BUILD_ROOT%{_datadir}/wine-c/windows/system/winmine.exe +ln -sf %{_libdir}/wine/wine/winver.exe.so $RPM_BUILD_ROOT%{_datadir}/wine-c/windows/system/winver.exe +ln -sf %{_libdir}/wine/wine/uninstaller.exe.so $RPM_BUILD_ROOT%{_datadir}/wine-c/windows/uninstaller.exe +ln -sf %{_libdir}/wine/wine/winhelp.exe.so $RPM_BUILD_ROOT%{_datadir}/wine-c/windows/winhelp.exe +ln -sf %{_libdir}/wine/wine/winhelp.exe.so $RPM_BUILD_ROOT%{_datadir}/wine-c/windows/winhlp32.exe + +for i in shell.dll shell32.dll winsock.dll wnsock32.dll; do + touch $RPM_BUILD_ROOT%{_datadir}/wine-c/windows/system/$i +done +touch $RPM_BUILD_ROOT%{_datadir}/wine-c/autoexec.bat +touch $RPM_BUILD_ROOT%{_datadir}/wine-c/config.sys +touch $RPM_BUILD_ROOT%{_datadir}/wine-c/windows/win.ini +install -c -m 0644 documentation/samples/system.ini $RPM_BUILD_ROOT%{_datadir}/wine-c/windows/system.ini + +cat >RedHat </dev/null || : + +%post +if ! grep -q "^/usr/lib/wine$" /etc/ld.so.conf; then + echo "/usr/lib/wine" >>/etc/ld.so.conf +fi +/sbin/chkconfig --add wine +/sbin/chkconfig --level 2345 wine on +/sbin/service wine start &>/dev/null || : +/sbin/ldconfig + +%preun +if test "$1" = "0"; then + /sbin/service wine stop &> /dev/null || : + /sbin/chkconfig --del wine +fi + +%postun +if test "$1" = "0"; then + perl -pi -e "s,^/usr/lib/wine\n$,,g" /etc/ld.so.conf + /usr/sbin/groupdel wine &>/dev/null || : +fi +/sbin/ldconfig + + +%files +%defattr(0775,root,wine) +%dir %{_datadir}/wine-c +%dir %{_datadir}/wine-c/windows +%dir %{_datadir}/wine-c/windows/command +%dir %{_datadir}/wine-c/windows/system +%dir "%{_datadir}/wine-c/windows/Start Menu" +%dir "%{_datadir}/wine-c/windows/Start Menu/Programs" +%dir "%{_datadir}/wine-c/windows/Start Menu/Programs/Startup" +%dir %{_datadir}/wine-c/windows/Profiles +%dir %{_datadir}/wine-c/windows/Profiles/Administrator +%dir %{_datadir}/wine-c/windows/Fonts +%dir %{_datadir}/wine-c/windows/Desktop +%dir %{_datadir}/wine-c/windows/Favorites +%dir %{_datadir}/wine-c/windows/NetHood +%dir %{_datadir}/wine-c/windows/Recent +%dir %{_datadir}/wine-c/windows/SendTo +%dir %{_datadir}/wine-c/windows/ShellNew +%dir "%{_datadir}/wine-c/My Documents" +%dir "%{_datadir}/wine-c/Program Files" +%dir "%{_datadir}/wine-c/Program Files/Common Files" +%defattr(-,root,wine,-) +%{_libdir}/wine +%{_bindir}/* +%{_mandir}/man?/* +%{_datadir}/wine-c/windows/command/*.exe +%{_datadir}/wine-c/windows/system/*.dll +%{_datadir}/wine-c/windows/system/*.exe +%{_datadir}/wine-c/windows/*.exe +%{_datadir}/aclocal/wine.m4 +%config %{_datadir}/wine-c/autoexec.bat +%config %{_datadir}/wine-c/config.sys +%attr(0664, root, wine) %config %{_datadir}/wine-c/windows/win.ini +%attr(0664, root, wine) %config %{_datadir}/wine-c/windows/system.ini +%config %{_sysconfdir}/wine/* +%config %{_initrddir}/* +%doc ANNOUNCE BUGS COPYING.LIB ChangeLog DEVELOPERS-HINTS LICENSE LICENSE.OLD README VERSION +%doc AUTHORS RedHat + +%files devel +%defattr(-,root,root,-) +%doc documentation/winelib-* documentation/wine-devel* documentation/debug* +%doc documentation/patches* documentation/porting.sgml documentation/implementation.sgml +%doc documentation/HOWTO-winelib +%{_includedir}/* + + +%changelog +* Sun Sep 28 2003 Ville Skyttä 0:0.0-0.fdr.2.20030911 +- Fix SSL detection (need krb5), require openssl. +- Disable ALSA by default, use "--with alsa" to enable. +- Disable valgrind by default, use "--with valgrind" to enable. +- Cosmetic improvements. + +* Tue Sep 16 2003 Panu Matilainen 0.0-0.fdr.1.20030911 +- update to 20030911 + +* Tue Aug 19 2003 Panu Matilainen 0.0-0.fdr.1.20030813 +- update to 20030813 + +* Thu Jul 10 2003 Panu Matilainen 0.0-0.fdr.1.20030709 +- update to 20030709 +- add /lib/tls requirement -> only works with NTPL capable systems + +* Wed Jul 02 2003 Panu Matilainen 0.0-0.fdr.1.20030618 +- update to 20030618 + +* Thu May 22 2003 Panu Matilainen 0.0-0.fdr.1.20030508 +- update to 20030508 +- add buildreq's & other QA issues from #255 + +* Sat May 03 2003 Panu Matilainen 0.0-0.fdr.1.20030408 +- package for fedora +- based on modified RH wine from 8.0 found off the net + From 2c666bcbcea9a8a3a2d76d823ffbd9659ef091f0 Mon Sep 17 00:00:00 2001 From: gafton Date: Wed, 24 Nov 2004 05:07:22 +0000 Subject: [PATCH 003/715] Fix braindead typo from the original import --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 2e4f2b5..f14b0b6 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ # Makefile for source rpm: wine -# $Id$ +# $Id: Makefile,v 1.1 2004/11/08 05:32:51 cvsextras Exp $ NAME := wine SPECFILE = $(firstword $(wildcard *.spec)) @@ -12,7 +12,7 @@ MAKEFILE_COMMON := $(shell $(find-makefile-common)) ifeq ($(MAKEFILE_COMMON),) # attept a checkout define checkout-makefile-common -test -f CVS/Rootx && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2 +test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2 endef MAKEFILE_COMMON := $(shell $(checkout-makefile-common)) From 8ce4cac9de0dc438686fc8527f34e0652cc5081c Mon Sep 17 00:00:00 2001 From: Michael Schwendt Date: Sat, 12 Feb 2005 18:34:52 +0000 Subject: [PATCH 004/715] Orphaned package. --- wine.spec | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/wine.spec b/wine.spec index d69f0ed..f5bc552 100644 --- a/wine.spec +++ b/wine.spec @@ -59,6 +59,12 @@ Windows(TM) emulation libraries. %prep +echo " +-------------------------------------------------------------- +Unmaintained since RHL9. Maintainer needed. +--------------------------------------------------------------" > /dev/null +exit 1 + %setup -q -n wine-%{DATE} find . -type d -name CVS |xargs rm -rf %patch -p1 -b .initial From ec26225ef661611ec112fa6c75e390e7c95c2e3c Mon Sep 17 00:00:00 2001 From: Michael Schwendt Date: Fri, 4 Mar 2005 00:32:11 +0000 Subject: [PATCH 005/715] REMOVED from devel tree. Broken and out-of-date long enough. If ever picked up again, old version could be resurrected or fresh package imported from scratch. --- .cvsignore | 1 - Makefile | 21 --- sources | 1 - wine-20030408-defaultcfg.patch | 51 ------ wine-20030408-initial.patch | 104 ----------- wine-20030408-kde2.patch | 153 ---------------- wine-20030408-winelauncher.patch | 92 ---------- wine.init | 67 ------- wine.spec | 294 ------------------------------- 9 files changed, 784 deletions(-) delete mode 100644 .cvsignore delete mode 100644 Makefile delete mode 100644 sources delete mode 100644 wine-20030408-defaultcfg.patch delete mode 100644 wine-20030408-initial.patch delete mode 100644 wine-20030408-kde2.patch delete mode 100644 wine-20030408-winelauncher.patch delete mode 100644 wine.init delete mode 100644 wine.spec diff --git a/.cvsignore b/.cvsignore deleted file mode 100644 index e3878fa..0000000 --- a/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -Wine-20030911.tar.gz diff --git a/Makefile b/Makefile deleted file mode 100644 index f14b0b6..0000000 --- a/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Makefile for source rpm: wine -# $Id: Makefile,v 1.1 2004/11/08 05:32:51 cvsextras Exp $ -NAME := wine -SPECFILE = $(firstword $(wildcard *.spec)) - -define find-makefile-common -for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done -endef - -MAKEFILE_COMMON := $(shell $(find-makefile-common)) - -ifeq ($(MAKEFILE_COMMON),) -# attept a checkout -define checkout-makefile-common -test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2 -endef - -MAKEFILE_COMMON := $(shell $(checkout-makefile-common)) -endif - -include $(MAKEFILE_COMMON) diff --git a/sources b/sources deleted file mode 100644 index a75d807..0000000 --- a/sources +++ /dev/null @@ -1 +0,0 @@ -81521fe47d540427183e88d02d5c5f88 Wine-20030911.tar.gz diff --git a/wine-20030408-defaultcfg.patch b/wine-20030408-defaultcfg.patch deleted file mode 100644 index 16ebf7c..0000000 --- a/wine-20030408-defaultcfg.patch +++ /dev/null @@ -1,51 +0,0 @@ -Index: wine/libs/wine/config.c -=================================================================== -RCS file: /home/wine/wine/libs/wine/config.c,v -retrieving revision 1.1 -diff -u -r1.1 config.c ---- wine/libs/wine/config.c 22 Mar 2003 20:40:48 -0000 1.1 -+++ wine/libs/wine/config.c 26 Nov 2002 18:37:03 -0000 -@@ -136,7 +136,20 @@ - if (config_dir[0] != '/') - fatal_error( "invalid directory %s in WINEPREFIX: not an absolute path\n", prefix ); - if (stat( config_dir, &st ) == -1) -- fatal_perror( "cannot open %s as specified in WINEPREFIX", config_dir ); -+ { -+ /* No configuration - put in defaults. */ -+ char command[512]; -+ mkdir(config_dir, 0700); -+ sprintf(command, "/bin/cp /etc/wine/wine.conf %s/config", config_dir); -+ system(command); -+ sprintf(command, "/bin/cp /etc/wine/system.reg %s/system.reg", config_dir); -+ system(command); -+ sprintf(command, "/bin/cp /etc/wine/user.reg %s/user.reg", config_dir); -+ system(command); -+ sprintf(command, "/bin/cp /etc/wine/userdef.reg %s/userdef.reg", config_dir); -+ system(command); -+ stat( config_dir, &st ); -+ } - } - else - { -@@ -147,7 +160,20 @@ - remove_trailing_slashes( config_dir ); - strcat( config_dir, server_config_dir ); - if (stat( config_dir, &st ) == -1) -- fatal_perror( "cannot open %s", config_dir ); -+ { -+ /* No configuration - put in defaults. */ -+ char command[512]; -+ mkdir(config_dir, 0700); -+ sprintf(command, "/bin/cp /etc/wine/wine.conf %s/config", config_dir); -+ system(command); -+ sprintf(command, "/bin/cp /etc/wine/system.reg %s/system.reg", config_dir); -+ system(command); -+ sprintf(command, "/bin/cp /etc/wine/user.reg %s/user.reg", config_dir); -+ system(command); -+ sprintf(command, "/bin/cp /etc/wine/userdef.reg %s/userdef.reg", config_dir); -+ system(command); -+ stat( config_dir, &st ); -+ } - } - if (!S_ISDIR(st.st_mode)) fatal_error( "%s is not a directory\n", config_dir ); - diff --git a/wine-20030408-initial.patch b/wine-20030408-initial.patch deleted file mode 100644 index 6281eb3..0000000 --- a/wine-20030408-initial.patch +++ /dev/null @@ -1,104 +0,0 @@ -Index: wine/misc/registry.c -=================================================================== -RCS file: /home/wine/wine/misc/registry.c,v -retrieving revision 1.125 -diff -u -r1.125 registry.c ---- wine/misc/registry.c 30 Mar 2003 03:05:12 -0000 1.125 -+++ wine/misc/registry.c 26 Nov 2002 18:21:01 -0000 -@@ -1609,14 +1609,65 @@ - - strcpy(tmp,confdir); - strcat(tmp,"/" SAVE_LOCAL_REGBRANCH_USER_DEFAULT); -+ if (access( tmp, R_OK ) && !access( "/etc/wine/" SAVE_LOCAL_REGBRANCH_USER_DEFAULT, R_OK )) { -+ /* If the registry doesn't exist, copy the global one */ -+ FILE *in, *out; -+ char buf[1024]; -+ in = fopen( "/etc/wine/" SAVE_LOCAL_REGBRANCH_USER_DEFAULT, "r" ); -+ if(!in) -+ return; -+ out = fopen( tmp, "w" ); -+ if(!out) { -+ fclose(in); -+ return; -+ } -+ while(fgets(buf, 1024, in)) -+ fputs(buf, out); -+ fclose(in); -+ fclose(out); -+ } - load_wine_registry(hkey_users_default,tmp); - - strcpy(tmp,confdir); - strcat(tmp,"/" SAVE_LOCAL_REGBRANCH_CURRENT_USER); -+ if (access( tmp, R_OK ) && !access( "/etc/wine/" SAVE_LOCAL_REGBRANCH_CURRENT_USER, R_OK )) { -+ /* If the registry doesn't exist, copy the global one */ -+ FILE *in, *out; -+ char buf[1024]; -+ in = fopen( "/etc/wine/" SAVE_LOCAL_REGBRANCH_CURRENT_USER, "r" ); -+ if(!in) -+ return; -+ out = fopen( tmp, "w" ); -+ if(!out) { -+ fclose(in); -+ return; -+ } -+ while(fgets(buf, 1024, in)) -+ fputs(buf, out); -+ fclose(in); -+ fclose(out); -+ } - load_wine_registry(hkey_current_user,tmp); - - strcpy(tmp,confdir); - strcat(tmp,"/" SAVE_LOCAL_REGBRANCH_LOCAL_MACHINE); -+ if (access( tmp, R_OK ) && !access( "/etc/wine/" SAVE_LOCAL_REGBRANCH_LOCAL_MACHINE, R_OK )) { -+ /* If the registry doesn't exist, copy the global one */ -+ FILE *in, *out; -+ char buf[1024]; -+ in = fopen( "/etc/wine/" SAVE_LOCAL_REGBRANCH_LOCAL_MACHINE, "r" ); -+ if(!in) -+ return; -+ out = fopen( tmp, "w" ); -+ if(!out) { -+ fclose(in); -+ return; -+ } -+ while(fgets(buf, 1024, in)) -+ fputs(buf, out); -+ fclose(in); -+ fclose(out); -+ } - load_wine_registry(hkey_local_machine,tmp); - - free(tmp); -Index: wine/server/registry.c -=================================================================== -RCS file: /home/wine/wine/server/registry.c,v -retrieving revision 1.50 -diff -u -r1.50 registry.c ---- wine/server/registry.c 25 Feb 2003 04:04:18 -0000 1.50 -+++ wine/server/registry.c 26 Nov 2002 18:21:02 -0000 -@@ -1486,6 +1486,23 @@ - if (!(filename = malloc( strlen(config) + 8 ))) fatal_error( "out of memory\n" ); - strcpy( filename, config ); - strcat( filename, "/config" ); -+ if (access( filename, R_OK ) && !access( "/etc/wine/wine.conf", R_OK )) { -+ /* If the registry doesn't exist, copy the global one */ -+ FILE *in, *out; -+ char buf[1024]; -+ in = fopen( "/etc/wine/wine.conf", "r" ); -+ if(!in) -+ return; -+ out = fopen( filename, "w" ); -+ if(!out) { -+ fclose(in); -+ return; -+ } -+ while(fgets(buf, 1024, in)) -+ fputs(buf, out); -+ fclose(in); -+ fclose(out); -+ } - if ((f = fopen( filename, "r" ))) - { - struct key *key; diff --git a/wine-20030408-kde2.patch b/wine-20030408-kde2.patch deleted file mode 100644 index c36cddd..0000000 --- a/wine-20030408-kde2.patch +++ /dev/null @@ -1,153 +0,0 @@ -Index: wine/tools/wineshelllink -=================================================================== -RCS file: /home/wine/wine/tools/wineshelllink,v -retrieving revision 1.15 -diff -u -r1.15 wineshelllink ---- wine/tools/wineshelllink 23 May 2002 16:31:22 -0000 1.15 -+++ wine/tools/wineshelllink 26 Nov 2002 18:26:48 -0000 -@@ -77,22 +77,7 @@ - usage - fi - --kde_entry() --{ -- xname=`basename "$link"` -- cat < /dev/null 2>&1 --if [ $? = 0 -a $mode = "menu" ] --then -- iconname="`basename "$link"`.xpm" -- dir="$HOME/.menu/icons" -- if [ -f "$icon" ] -- then -- mkdir -p "$dir" -- cp "$icon" "$dir/$iconname" -- xpmicon="$dir/$iconname" -- else -- xpmicon="" -- fi -- mdk_entry >> "$HOME/.menu/wine" -- if [ -d "/usr/lib/menu" ] -- then -- mdk_entry >> "/usr/lib/menu/wine" -- fi -- update-menus > /dev/null 2>&1 --fi -- - # KDE -- - if [ -d "$HOME/.kde" ] - then - kdeversion=0 -@@ -167,30 +128,13 @@ - copy_icon "$HOME/.kde/share/applnk/Wine" - if [ $mode = "menu" ] - then -- gnome_entry > "$HOME/.kde/share/applnk/Wine/$link.desktop" -+ make_entry > "$HOME/.kde/share/applnk/Wine/$link.desktop" - elif [ -d "$HOME/Desktop" ] - then -- gnome_entry > "$HOME/Desktop/$link.desktop" -+ make_entry > "$HOME/Desktop/$link.desktop" - fi - else -- copy_icon "$HOME/.kde/share/applnk/Wine" -- if [ $mode = "menu" ] -- then -- kde_entry > "$HOME/.kde/share/applnk/Wine/$link.kdelnk" -- -- # KDE 1.x kludge. Wake up KDE, if we can find kpanel running -- which kwmcom >/dev/null 2>/dev/null && \ -- ps u -C kpanel >/dev/null 2>/dev/null && \ -- kwmcom kpanel:restart -- -- elif [ -d "$HOME/Desktop" ] -- then -- kde_entry > "$HOME/Desktop/$link.kdelnk" -- # KDE 1.x kludge: wake up KDE, if we can find kfm running... -- which kfmclient >/dev/null 2>/dev/null && \ -- ps u -C kfm >/dev/null 2>/dev/null && \ -- kfmclient refreshDesktop -- fi -+ echo "KDE < 2 not supported anymore" - fi - fi - -@@ -199,15 +143,15 @@ - copy_icon "$HOME/.kde2/share/applnk/Wine" - if [ $mode = "menu" ] - then -- gnome_entry > "$HOME/.kde2/share/applnk/Wine/$link.desktop" -+ make_entry > "$HOME/.kde2/share/applnk/Wine/$link.desktop" - else - if [ -d "$HOME/Desktop2" ] - then -- gnome_entry > "$HOME/Desktop2/$link.desktop" -+ make_entry > "$HOME/Desktop2/$link.desktop" - fi - if [ -d "$HOME/Desktop" ] - then -- gnome_entry > "$HOME/Desktop/$link.desktop" -+ make_entry > "$HOME/Desktop/$link.desktop" - fi - fi - fi -@@ -217,19 +161,19 @@ - copy_icon "$HOME/.kde3/share/applnk/Wine" - if [ $mode = "menu" ] - then -- gnome_entry > "$HOME/.kde3/share/applnk/Wine/$link.desktop" -+ make_entry > "$HOME/.kde3/share/applnk/Wine/$link.desktop" - else - if [ -d "$HOME/Desktop3" ] - then -- gnome_entry > "$HOME/Desktop3/$link.desktop" -+ make_entry > "$HOME/Desktop3/$link.desktop" - fi - if [ -d "$HOME/Desktop2" ] - then -- gnome_entry > "$HOME/Desktop2/$link.desktop" -+ make_entry > "$HOME/Desktop2/$link.desktop" - fi - if [ -d "$HOME/Desktop" ] - then -- gnome_entry > "$HOME/Desktop/$link.desktop" -+ make_entry > "$HOME/Desktop/$link.desktop" - fi - fi - fi -@@ -241,10 +185,10 @@ - copy_icon "$HOME/.gnome/apps/Wine" - if [ $mode = "menu" ] - then -- gnome_entry > "$HOME/.gnome/apps/Wine/$link.desktop" -+ make_entry > "$HOME/.gnome/apps/Wine/$link.desktop" - elif [ -d "$HOME/.gnome-desktop" ] - then -- gnome_entry > "$HOME/.gnome-desktop/$link.desktop" -+ make_entry > "$HOME/.gnome-desktop/$link.desktop" - fi - fi - diff --git a/wine-20030408-winelauncher.patch b/wine-20030408-winelauncher.patch deleted file mode 100644 index edd49f3..0000000 --- a/wine-20030408-winelauncher.patch +++ /dev/null @@ -1,92 +0,0 @@ -Index: wine/programs/winelauncher.in -=================================================================== -RCS file: /home/wine/wine/programs/winelauncher.in,v -retrieving revision 1.2 -diff -u -r1.2 winelauncher.in ---- wine/programs/winelauncher.in 5 Jul 2002 21:18:41 -0000 1.2 -+++ wine/programs/winelauncher.in 26 Nov 2002 17:52:47 -0000 -@@ -93,27 +93,11 @@ - - launch_winesetup() - { -- which winesetup -- if [ $? -eq 0 ] ; then -- winesetup -- else -- if [ -x /opt/wine/bin/winesetup ] ; then -- /opt/wine/bin/winesetup -- else -- $XMESSAGE -title "Error" \ -- "Error: Unable to find winesetup in your PATH or in /opt/wine/bin: -- I am not able to configure Wine. -- -- If winesetup is being distributed in a separate package -- that is not installed yet on your system, then please install this -- package. -- winesetup can also be downloaded from www.codeweavers.com. -- -- If you choose to not use winesetup for configuration, then -- you can find information on how to prepare a Wine config file manually -- in the Wine README / README.gz file or in the Wine User Guide." -- fi -- fi -+ mkdir ~/.wine -+ cp /etc/wine/wine.conf ~/.wine/config -+ cp /etc/wine/system.reg ~/.wine/system.reg -+ cp /etc/wine/user.ref ~/.wine/user.reg -+ cp /etc/wine/userdef.reg ~/.wine/userdef.reg - } - - #------------------------------------------------------------------------------ -@@ -247,7 +231,7 @@ - if [ $no_args -eq 1 ] ; then - echo "Wine called with no arguments." - echo "Invoking $WINEBIN/$WINE_BIN_NAME $@ ..." -- $XMESSAGE -buttons " Okay ":0," See the Wine Usage Statement ":1," Configure Wine ":2 \ -+ $XMESSAGE -buttons " Okay ":0," See the Wine Usage Statement ":1," Copy default config ":2 \ - -title "Welcome to Wine" \ - " - -@@ -290,14 +274,8 @@ - - while [ $conf -eq 0 ] ; do - -- if [ -f ~/.winerc ] ; then -- conf=1 -- fi - if [ -f ~/.wine/config ] ; then -- conf=2 -- fi -- if [ -f /etc/wine.conf ] ; then -- conf=3 -+ conf=1 - fi - - if [ $conf -ne 0 ] ; then -@@ -305,7 +283,7 @@ - fi - - echo "No configuration file detected." -- $XMESSAGE -buttons " Cancel ":0," Proceed ":1," Configure Wine ":2 \ -+ $XMESSAGE -buttons " Cancel ":0," Proceed ":1," Copy default config ":2 \ - -title "Welcome to Wine" \ - " - -@@ -313,7 +291,7 @@ - configuration file. - - This is normal if you have never run Wine before. -- If this is the case, select the 'Configure Wine' -+ If this is the case, select the 'Copy default config' - option, below, to create a configuration file. - - " -@@ -461,7 +439,7 @@ - fi - - BUTTONS="$BUTTONS"', Debug :2' -- BUTTONS="$BUTTONS"', Configure :4' -+ BUTTONS="$BUTTONS"', Copy default config :4' - BUTTONS="$BUTTONS"', Disable :3' - - #------------------------------------------------------------------------------ diff --git a/wine.init b/wine.init deleted file mode 100644 index 905eeff..0000000 --- a/wine.init +++ /dev/null @@ -1,67 +0,0 @@ -#!/bin/sh -# -# wine Allow users to run Windows(tm) applications by just clicking on them -# (or typing ./file.exe) -# -# chkconfig: 35 98 10 -# description: Allow users to run Windows(tm) applications by just clicking \ -# on them (or typing ./file.exe) - -. /etc/rc.d/init.d/functions -RETVAL=0 - -start() { - echo -n $"Registering binary handler for Windows applications" - /sbin/modprobe binfmt_misc &>/dev/null - echo ':windows:M::MZ::/usr/bin/wine:' >/proc/sys/fs/binfmt_misc/register || : - echo ':windowsPE:M::PE::/usr/bin/wine:' >/proc/sys/fs/binfmt_misc/register || : -} - -stop() { - echo -n $"Unregistering binary handler for Windows applications" - echo "-1" >/proc/sys/fs/binfmt_misc/windows || : - echo "-1" >/proc/sys/fs/binfmt_misc/windowsPE || : -} - -reload() { - stop - start -} - -wine_status() { - if [ -e /proc/sys/fs/binfmt_misc/windows ]; then - echo $"Wine binary format handlers are registered." - return 0 - else - echo $"Wine binary format handlers are not registered." - return 3 - fi -} - -case "$1" in - start) - start - ;; - stop) - stop - ;; - status) - wine_status - RETVAL=$? - ;; - restart) - stop - start - ;; - condrestart) - if [ -e /proc/sys/fs/binfmt_misc/windows ]; then - stop - start - fi - ;; - *) - echo $"Usage: $prog {start|stop|status|restart|condrestart}" - exit 1 -esac -exit $RETVAL - diff --git a/wine.spec b/wine.spec deleted file mode 100644 index f5bc552..0000000 --- a/wine.spec +++ /dev/null @@ -1,294 +0,0 @@ -%define DATE 20030911 -%define with_valgrind %{?_with_valgrind:1}%{!?_with_valgrind:0} -%define with_alsa %{?_with_alsa:1}%{!?_with_alsa:0} - -Summary: A Windows 16/32 bit emulator. -Name: wine -Version: 0.0 -Release: 0.fdr.2.%{DATE}.rh90 -Epoch: 0 -Group: Applications/Emulators -License: LGPL -URL: http://www.winehq.com/ -Source0: ftp://metalab.unc.edu/pub/Linux/ALPHA/wine/development/Wine-%{DATE}.tar.gz -Source1: wine.init -Patch0: wine-20030408-initial.patch -Patch1: wine-20030408-kde2.patch -Patch2: wine-20030408-winelauncher.patch -Patch3: wine-20030408-defaultcfg.patch -Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -ExclusiveArch: %{ix86} -Prereq: shadow-utils -Conflicts: kdebase < 0:2.0 -Requires: cups-libs >= 0:1.1.12, openssl -# require NPTL-capable glibc -Requires: /lib/tls -Requires(pre,postun): shadow-utils -BuildRequires: docbook-utils, cups-devel >= 0:1.1.12, perl -BuildRequires: XFree86-devel, libjpeg-devel, libungif-devel, libstdc++-devel -BuildRequires: bison, flex, autoconf >= 0:2.53, arts-devel, ncurses-devel -BuildRequires: openssl-devel, sane-backends-devel -%if %{with_valgrind} -BuildRequires: valgrind-devel -%else -BuildConflicts: valgrind-devel -%endif -%if %{with_alsa} -BuildRequires: alsa-libs-devel -%else -BuildConflicts: alsa-libs-devel -%endif -Provides: libntdll.dll.so - -%description -While Wine is usually thought of as a Windows(TM) emulator, the Wine -developers would prefer that users thought of Wine as a Windows -compatibility layer for UNIX. This package includes a program loader, -which allows unmodified Windows 3.1/95/NT binaries to run under Intel -Unixes. Wine does not require MS Windows, but it can use native system -.dll files if they are available. - -%package devel -Summary: Wine development environment. -Group: Development/Libraries -Requires: %{name} = %{epoch}:%{version}-%{release} - -%description devel -Header and include files for developing applications with the Wine -Windows(TM) emulation libraries. - - -%prep -echo " --------------------------------------------------------------- -Unmaintained since RHL9. Maintainer needed. ---------------------------------------------------------------" > /dev/null -exit 1 - -%setup -q -n wine-%{DATE} -find . -type d -name CVS |xargs rm -rf -%patch -p1 -b .initial -%patch1 -p1 -b .kde2 -%patch2 -p1 -b .wl -%patch3 -p1 -b .defcfg - - -%build -export CFLAGS="$RPM_OPT_FLAGS" -export CPPFLAGS="$(pkg-config openssl --cflags)" # fix ssl detection, need krb5 -autoconf || autoconf-2.53 -%configure \ - --with-nptl \ - --with-x \ - --libdir=%{_libdir}/wine \ - --includedir=%{_includedir}/wine \ - --sysconfdir=%{_sysconfdir}/wine - - -make depend -make %{?_smp_mflags} -#%{__make} -C documentation doc - - -%install -rm -rf $RPM_BUILD_ROOT - -%makeinstall \ - includedir=%{?buildroot:%{buildroot}}%{_includedir}/wine \ - libdir=%{?buildroot:%{buildroot}}%{_libdir}/wine \ - sysconfdir=%{?buildroot:%{buildroot}}%{_sysconfdir}/wine \ - dlldir=%{?buildroot:%{buildroot}}%{_libdir}/wine/wine \ - LDCONFIG=/bin/true - -for i in system command "Start Menu/Programs/Startup" Profiles/Administrator Fonts \ - Desktop Favorites NetHood Recent SendTo ShellNew; do - mkdir -p "$RPM_BUILD_ROOT%{_datadir}/wine-c/windows/$i" -done -mkdir -p "$RPM_BUILD_ROOT%{_datadir}/wine-c/My Documents" -mkdir -p "$RPM_BUILD_ROOT%{_datadir}/wine-c/Program Files/Common Files" - -# Take care of wine and windows configuration files... -mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/wine -mv documentation/samples/config documentation/samples/config.orig -sed "s/\"GraphicsDriver\" = .*/\"GraphicsDriver\" = \"ttydrv\"/" documentation/samples/config.orig |\ -sed "s|\"Path\" = \"/c\"\$|\"Path\" = \"$RPM_BUILD_ROOT%{_datadir}/wine-c\"|" |\ -sed "s|\"Path\" = \"\${HOME}\"$|\"Path\" = \"%{_builddir}/%{buildsubdir}\"|" -> documentation/samples/config -WINEPREFIX=%{_builddir}/%{buildsubdir}/documentation/samples programs/regedit/regedit winedefault.reg #> /dev/null -# Wait until wineserver finishes and closes those files -sleep 5 -install -c -m 0644 documentation/samples/system.reg $RPM_BUILD_ROOT%{_sysconfdir}/wine/system.reg -install -c -m 0644 documentation/samples/user.reg $RPM_BUILD_ROOT%{_sysconfdir}/wine/user.reg -install -c -m 0644 documentation/samples/userdef.reg $RPM_BUILD_ROOT%{_sysconfdir}/wine/userdef.reg -rm -f documentation/samples/system.reg -rm -f documentation/samples/user.reg -rm -f documentation/samples/userdef.reg - -sed "s|\"Path\" = \"/c\"\$|\"Path\" = \"%{_datadir}/wine-c\"|" documentation/samples/config.orig > documentation/samples/config.rh -mv documentation/samples/config.rh documentation/samples/config.orig -sed "s|\"Path\" = \"/cdrom\"\$|\"Path\" = \"/mnt/cdrom\"|" documentation/samples/config.orig > documentation/samples/config.rh -mv documentation/samples/config.rh documentation/samples/config.orig -sed "s|\"Path\" = \"/mnt/fd0\"\$|\"Path\" = \"/mnt/floppy\"|" documentation/samples/config.orig > documentation/samples/config.rh - -install -c -m 0644 documentation/samples/config.rh $RPM_BUILD_ROOT%{_sysconfdir}/wine/wine.conf -rm -f documentation/samples/config -rm -f documentation/samples/config.rh -mv documentation/samples/config.orig documentation/samples/config - -# Install link to windows applications replacements -ln -sf %{_libdir}/wine/wine/start.exe.so $RPM_BUILD_ROOT%{_datadir}/wine-c/windows/command/start.exe -ln -sf %{_libdir}/wine/wine/notepad.exe.so $RPM_BUILD_ROOT%{_datadir}/wine-c/windows/notepad.exe -ln -sf %{_libdir}/wine/wine/regedit.exe.so $RPM_BUILD_ROOT%{_datadir}/wine-c/windows/regedit.exe -ln -sf %{_libdir}/wine/wine/rundll32.exe.so $RPM_BUILD_ROOT%{_datadir}/wine-c/windows/rundll32.exe -ln -sf %{_libdir}/wine/wine/wcmd.exe.so $RPM_BUILD_ROOT%{_datadir}/wine-c/windows/system/cmd.exe -ln -sf %{_libdir}/wine/wine/control.exe.so $RPM_BUILD_ROOT%{_datadir}/wine-c/windows/system/control.exe -ln -sf %{_libdir}/wine/wine/winhelp.exe.so $RPM_BUILD_ROOT%{_datadir}/wine-c/windows/system/help.exe -ln -sf %{_libdir}/wine/wine/notepad.exe.so $RPM_BUILD_ROOT%{_datadir}/wine-c/windows/system/notepad.exe -ln -sf %{_libdir}/wine/wine/progman.exe.so $RPM_BUILD_ROOT%{_datadir}/wine-c/windows/system/progman.exe -ln -sf %{_libdir}/wine/wine/regsvr32.exe.so $RPM_BUILD_ROOT%{_datadir}/wine-c/windows/system/regsvr32.exe -ln -sf %{_libdir}/wine/wine/winemine.exe.so $RPM_BUILD_ROOT%{_datadir}/wine-c/windows/system/winmine.exe -ln -sf %{_libdir}/wine/wine/winver.exe.so $RPM_BUILD_ROOT%{_datadir}/wine-c/windows/system/winver.exe -ln -sf %{_libdir}/wine/wine/uninstaller.exe.so $RPM_BUILD_ROOT%{_datadir}/wine-c/windows/uninstaller.exe -ln -sf %{_libdir}/wine/wine/winhelp.exe.so $RPM_BUILD_ROOT%{_datadir}/wine-c/windows/winhelp.exe -ln -sf %{_libdir}/wine/wine/winhelp.exe.so $RPM_BUILD_ROOT%{_datadir}/wine-c/windows/winhlp32.exe - -for i in shell.dll shell32.dll winsock.dll wnsock32.dll; do - touch $RPM_BUILD_ROOT%{_datadir}/wine-c/windows/system/$i -done -touch $RPM_BUILD_ROOT%{_datadir}/wine-c/autoexec.bat -touch $RPM_BUILD_ROOT%{_datadir}/wine-c/config.sys -touch $RPM_BUILD_ROOT%{_datadir}/wine-c/windows/win.ini -install -c -m 0644 documentation/samples/system.ini $RPM_BUILD_ROOT%{_datadir}/wine-c/windows/system.ini - -cat >RedHat </dev/null || : - -%post -if ! grep -q "^/usr/lib/wine$" /etc/ld.so.conf; then - echo "/usr/lib/wine" >>/etc/ld.so.conf -fi -/sbin/chkconfig --add wine -/sbin/chkconfig --level 2345 wine on -/sbin/service wine start &>/dev/null || : -/sbin/ldconfig - -%preun -if test "$1" = "0"; then - /sbin/service wine stop &> /dev/null || : - /sbin/chkconfig --del wine -fi - -%postun -if test "$1" = "0"; then - perl -pi -e "s,^/usr/lib/wine\n$,,g" /etc/ld.so.conf - /usr/sbin/groupdel wine &>/dev/null || : -fi -/sbin/ldconfig - - -%files -%defattr(0775,root,wine) -%dir %{_datadir}/wine-c -%dir %{_datadir}/wine-c/windows -%dir %{_datadir}/wine-c/windows/command -%dir %{_datadir}/wine-c/windows/system -%dir "%{_datadir}/wine-c/windows/Start Menu" -%dir "%{_datadir}/wine-c/windows/Start Menu/Programs" -%dir "%{_datadir}/wine-c/windows/Start Menu/Programs/Startup" -%dir %{_datadir}/wine-c/windows/Profiles -%dir %{_datadir}/wine-c/windows/Profiles/Administrator -%dir %{_datadir}/wine-c/windows/Fonts -%dir %{_datadir}/wine-c/windows/Desktop -%dir %{_datadir}/wine-c/windows/Favorites -%dir %{_datadir}/wine-c/windows/NetHood -%dir %{_datadir}/wine-c/windows/Recent -%dir %{_datadir}/wine-c/windows/SendTo -%dir %{_datadir}/wine-c/windows/ShellNew -%dir "%{_datadir}/wine-c/My Documents" -%dir "%{_datadir}/wine-c/Program Files" -%dir "%{_datadir}/wine-c/Program Files/Common Files" -%defattr(-,root,wine,-) -%{_libdir}/wine -%{_bindir}/* -%{_mandir}/man?/* -%{_datadir}/wine-c/windows/command/*.exe -%{_datadir}/wine-c/windows/system/*.dll -%{_datadir}/wine-c/windows/system/*.exe -%{_datadir}/wine-c/windows/*.exe -%{_datadir}/aclocal/wine.m4 -%config %{_datadir}/wine-c/autoexec.bat -%config %{_datadir}/wine-c/config.sys -%attr(0664, root, wine) %config %{_datadir}/wine-c/windows/win.ini -%attr(0664, root, wine) %config %{_datadir}/wine-c/windows/system.ini -%config %{_sysconfdir}/wine/* -%config %{_initrddir}/* -%doc ANNOUNCE BUGS COPYING.LIB ChangeLog DEVELOPERS-HINTS LICENSE LICENSE.OLD README VERSION -%doc AUTHORS RedHat - -%files devel -%defattr(-,root,root,-) -%doc documentation/winelib-* documentation/wine-devel* documentation/debug* -%doc documentation/patches* documentation/porting.sgml documentation/implementation.sgml -%doc documentation/HOWTO-winelib -%{_includedir}/* - - -%changelog -* Sun Sep 28 2003 Ville Skyttä 0:0.0-0.fdr.2.20030911 -- Fix SSL detection (need krb5), require openssl. -- Disable ALSA by default, use "--with alsa" to enable. -- Disable valgrind by default, use "--with valgrind" to enable. -- Cosmetic improvements. - -* Tue Sep 16 2003 Panu Matilainen 0.0-0.fdr.1.20030911 -- update to 20030911 - -* Tue Aug 19 2003 Panu Matilainen 0.0-0.fdr.1.20030813 -- update to 20030813 - -* Thu Jul 10 2003 Panu Matilainen 0.0-0.fdr.1.20030709 -- update to 20030709 -- add /lib/tls requirement -> only works with NTPL capable systems - -* Wed Jul 02 2003 Panu Matilainen 0.0-0.fdr.1.20030618 -- update to 20030618 - -* Thu May 22 2003 Panu Matilainen 0.0-0.fdr.1.20030508 -- update to 20030508 -- add buildreq's & other QA issues from #255 - -* Sat May 03 2003 Panu Matilainen 0.0-0.fdr.1.20030408 -- package for fedora -- based on modified RH wine from 8.0 found off the net - From 71c71d675f7447b1ac21617a10877097df349d18 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 2 Jan 2006 08:55:16 +0000 Subject: [PATCH 006/715] - add Makefile to devel branch --- Makefile | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 Makefile diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..3261c9e --- /dev/null +++ b/Makefile @@ -0,0 +1,21 @@ +# Makefile for source rpm: wine +# $Id: Makefile,v 1.2 2004/11/24 05:00:10 gafton Exp $ +NAME := wine +SPECFILE = $(firstword $(wildcard *.spec)) + +define find-makefile-common +for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done +endef + +MAKEFILE_COMMON := $(shell $(find-makefile-common)) + +ifeq ($(MAKEFILE_COMMON),) +# attept a checkout +define checkout-makefile-common +test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2 +endef + +MAKEFILE_COMMON := $(shell $(checkout-makefile-common)) +endif + +include $(MAKEFILE_COMMON) From e33aa8f6a793f7c89daa08d4ef3d651fd1197b67 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 2 Jan 2006 09:04:37 +0000 Subject: [PATCH 007/715] auto-import wine-0.9.4-3 on branch devel from wine-0.9.4-3.src.rpm --- sources | 2 + wine-20050524-generated.patch | 27 + wine-32.conf | 1 + wine-README-Fedora | 15 + wine-notepad.desktop | 8 + wine-regedit.desktop | 8 + wine-uninstaller.desktop | 8 + wine-winecfg.desktop | 8 + wine-winefile.desktop | 8 + wine-winemine.desktop | 8 + wine-winhelp.desktop | 8 + wine.init | 67 +++ wine.spec | 1060 +++++++++++++++++++++++++++++++++ 13 files changed, 1228 insertions(+) create mode 100644 sources create mode 100644 wine-20050524-generated.patch create mode 100644 wine-32.conf create mode 100644 wine-README-Fedora create mode 100644 wine-notepad.desktop create mode 100644 wine-regedit.desktop create mode 100644 wine-uninstaller.desktop create mode 100644 wine-winecfg.desktop create mode 100644 wine-winefile.desktop create mode 100644 wine-winemine.desktop create mode 100644 wine-winhelp.desktop create mode 100644 wine.init create mode 100644 wine.spec diff --git a/sources b/sources new file mode 100644 index 0000000..b5e92a1 --- /dev/null +++ b/sources @@ -0,0 +1,2 @@ +73205d83a5612a43441a8532683c0434 wine-0.9.4.tar.bz2 +fb216b10993cb17501efff7afa812da1 wine-fonts-20050524.tar.gz diff --git a/wine-20050524-generated.patch b/wine-20050524-generated.patch new file mode 100644 index 0000000..06de588 --- /dev/null +++ b/wine-20050524-generated.patch @@ -0,0 +1,27 @@ +Index: wine/tools/wineprefixcreate.in +=================================================================== +RCS file: /home/wine/wine/tools/wineprefixcreate.in,v +retrieving revision 1.10 +diff -u -r1.10 wineprefixcreate.in +--- wine/tools/wineprefixcreate.in 19 May 2005 11:12:34 -0000 1.10 ++++ wine/tools/wineprefixcreate.in 29 May 2005 00:00:00 -0000 +@@ -38,6 +38,7 @@ + + dlldir="@dlldir@" + datadir="@datadir@/wine" ++fontdir="@datadir@/fonts/wine" + + do_wait=0 + quiet=0 +@@ -175,6 +176,11 @@ + link_app winhelp "$CROOT/windows/winhelp.exe" + link_app winhelp "$CROOT/windows/winhlp32.exe" + link_app winebrowser "$CROOT/windows/winebrowser.exe" ++ ++# Copy the generated fonts ++ ++cp $fontdir/*.ttf "$CROOT/windows/fonts" ++cp $fontdir/*.fon "$CROOT/windows/fonts" + + # Copy the .inf script and run it + diff --git a/wine-32.conf b/wine-32.conf new file mode 100644 index 0000000..d9d71cd --- /dev/null +++ b/wine-32.conf @@ -0,0 +1 @@ +/usr/lib/wine/ diff --git a/wine-README-Fedora b/wine-README-Fedora new file mode 100644 index 0000000..05bf675 --- /dev/null +++ b/wine-README-Fedora @@ -0,0 +1,15 @@ +Wine directory structure used in Fedora Core Linux: +=================================================== + +\${HOME}/.wine/drive_c is the root directory (aka C: drive) wine looks for by +default. It is created with (empty) C:\windows and C:\windows\system +directories, needed to operate Wine without an existing Windows +installation, if it doesn't already exists. + +If you want to use Wine with an existing Windows installation that is +mounted, for example, in /mnt/windows-c, change the symlink +\${HOME}/.wine/dosdevices/c: to point to /mnt/windows-c instead of the +defaults set by installation. + +If you do this, you can safely remove \${HOME}/.wine/drive_c. +(Alternatively, just mount your Windows partition to \${HOME}/.wine/drive_c.) diff --git a/wine-notepad.desktop b/wine-notepad.desktop new file mode 100644 index 0000000..fb9d815 --- /dev/null +++ b/wine-notepad.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Name=notepad +Comment=Text Editor +Exec=notepad +Terminal=false +Type=Application +Encoding=UTF-8 +Categories=Application;System; diff --git a/wine-regedit.desktop b/wine-regedit.desktop new file mode 100644 index 0000000..fd0c3c1 --- /dev/null +++ b/wine-regedit.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Name=regedit +Comment=Wine registry editor +Exec=regedit +Terminal=false +Type=Application +Encoding=UTF-8 +Categories=Application;System; diff --git a/wine-uninstaller.desktop b/wine-uninstaller.desktop new file mode 100644 index 0000000..f75c319 --- /dev/null +++ b/wine-uninstaller.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Name=Wine Software Uninstaller +Comment=Interface to uninstall software +Exec=uninstaller +Terminal=false +Type=Application +Encoding=UTF-8 +Categories=Application;System; diff --git a/wine-winecfg.desktop b/wine-winecfg.desktop new file mode 100644 index 0000000..3f27f5f --- /dev/null +++ b/wine-winecfg.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Name=Wine Configuration +Comment=Interface to set wine parameters +Exec=winecfg +Terminal=false +Type=Application +Encoding=UTF-8 +Categories=Application;System; diff --git a/wine-winefile.desktop b/wine-winefile.desktop new file mode 100644 index 0000000..8ec2d4b --- /dev/null +++ b/wine-winefile.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Name=Wine File +Comment=Wine File Browser +Exec=winefile +Terminal=false +Type=Application +Encoding=UTF-8 +Categories=Application;System; diff --git a/wine-winemine.desktop b/wine-winemine.desktop new file mode 100644 index 0000000..7cdefdd --- /dev/null +++ b/wine-winemine.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Name=WineMine +Comment=Wine Minesweeper +Exec=winemine +Terminal=false +Type=Application +Encoding=UTF-8 +Categories=Application;System; diff --git a/wine-winhelp.desktop b/wine-winhelp.desktop new file mode 100644 index 0000000..4f1ee4d --- /dev/null +++ b/wine-winhelp.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Name=winhelp +Comment=Windows Help Browser +Exec=winhelp +Terminal=false +Type=Application +Encoding=UTF-8 +Categories=Application;System; diff --git a/wine.init b/wine.init new file mode 100644 index 0000000..905eeff --- /dev/null +++ b/wine.init @@ -0,0 +1,67 @@ +#!/bin/sh +# +# wine Allow users to run Windows(tm) applications by just clicking on them +# (or typing ./file.exe) +# +# chkconfig: 35 98 10 +# description: Allow users to run Windows(tm) applications by just clicking \ +# on them (or typing ./file.exe) + +. /etc/rc.d/init.d/functions +RETVAL=0 + +start() { + echo -n $"Registering binary handler for Windows applications" + /sbin/modprobe binfmt_misc &>/dev/null + echo ':windows:M::MZ::/usr/bin/wine:' >/proc/sys/fs/binfmt_misc/register || : + echo ':windowsPE:M::PE::/usr/bin/wine:' >/proc/sys/fs/binfmt_misc/register || : +} + +stop() { + echo -n $"Unregistering binary handler for Windows applications" + echo "-1" >/proc/sys/fs/binfmt_misc/windows || : + echo "-1" >/proc/sys/fs/binfmt_misc/windowsPE || : +} + +reload() { + stop + start +} + +wine_status() { + if [ -e /proc/sys/fs/binfmt_misc/windows ]; then + echo $"Wine binary format handlers are registered." + return 0 + else + echo $"Wine binary format handlers are not registered." + return 3 + fi +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + status) + wine_status + RETVAL=$? + ;; + restart) + stop + start + ;; + condrestart) + if [ -e /proc/sys/fs/binfmt_misc/windows ]; then + stop + start + fi + ;; + *) + echo $"Usage: $prog {start|stop|status|restart|condrestart}" + exit 1 +esac +exit $RETVAL + diff --git a/wine.spec b/wine.spec new file mode 100644 index 0000000..699ff54 --- /dev/null +++ b/wine.spec @@ -0,0 +1,1060 @@ +Name: wine +Version: 0.9.4 +Release: 3 +Summary: A Windows 16/32/64 bit emulator + +Group: Applications/Emulators +License: LGPL +URL: http://www.winehq.org/ +Source0: http://dl.sf.net/wine/wine-0.9.4.tar.bz2 +Source1: wine.init +Source2: wine-fonts-20050524.tar.gz +Source3: wine-README-Fedora +Source4: wine-32.conf +Source100: wine-notepad.desktop +Source101: wine-regedit.desktop +Source102: wine-uninstaller.desktop +Source103: wine-winecfg.desktop +Source104: wine-winefile.desktop +Source105: wine-winemine.desktop +Source106: wine-winhelp.desktop +Patch2: wine-20050524-generated.patch +Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +ExclusiveArch: %{ix86} + +BuildRequires: autoconf +BuildRequires: bison +BuildRequires: flex +BuildRequires: alsa-lib-devel +BuildRequires: arts-devel +BuildRequires: audiofile-devel +BuildRequires: esound-devel +BuildRequires: freeglut-devel +BuildRequires: lcms-devel +BuildRequires: libieee1284-devel +BuildRequires: libjpeg-devel +BuildRequires: libstdc++-devel +BuildRequires: libusb-devel +BuildRequires: libxml2-devel +BuildRequires: libxslt-devel +BuildRequires: ncurses-devel +BuildRequires: openldap-devel +BuildRequires: sane-backends-devel +BuildRequires: zlib-devel +BuildRequires: desktop-file-utils +BuildRequires: fontforge +# modular x +BuildRequires: libX11-devel +BuildRequires: mesa-libGL-devel mesa-libGLU-devel mesa-libGLw-devel +BuildRequires: libXxf86dga-devel libXxf86vm-devel +BuildRequires: libXrandr-devel libXrender-devel libXext-devel + +Requires(post): /sbin/ldconfig, /sbin/chkconfig, /sbin/service, +Requires(post): /usr/bin/update-desktop-database +Requires(preun): /sbin/chkconfig +Requires(postun): /sbin/ldconfig, /usr/bin/update-desktop-database, %{__perl} + +%description +While Wine is usually thought of as a Windows(TM) emulator, the Wine +developers would prefer that users thought of Wine as a Windows +compatibility layer for UNIX. This package includes a program loader, +which allows unmodified Windows 3.x/9x/NT binaries to run on x86 and x86_64 +Unixes. Wine does not require MS Windows, but it can use native system +.dll files if they are available. + +%package tools +Summary: Additional wine tools +Group: Applications/Emulators +Requires: %{name} = %{version}-%{release} + +%description tools +Additional wine tools + +%package arts +Summary: Arts sound support for wine +Group: System Environment/Libraries +Requires: wine = %{version}-%{release} + +%description arts +Arts sound support for wine + +%package esd +Summary: ESD sound support for wine +Group: System Environment/Libraries +Requires: wine = %{version}-%{release} + +%description esd +ESD sound support for wine + +%package jack +Summary: JACK sound support for wine +Group: System Environment/Libraries +Requires: wine = %{version}-%{release} + +%description jack +JACK sound support for wine + +%package nas +Summary: NAS sound support for wine +Group: System Environment/Libraries +Requires: wine = %{version}-%{release} + +%description nas +JACK sound support for wine + +%package ldap +Summary: LDAP support for wine +Group: System Environment/Libraries +Requires: wine = %{version}-%{release} + +%description ldap +LDAP support for wine + +%package cms +Summary: Color Managment for wine +Group: System Environment/Libraries +Requires: wine = %{version}-%{release} + +%description cms +Color Management for wine + +%package twain +Summary: Twain support for wine +Group: System Environment/Libraries +Requires: wine = %{version}-%{release} + +%description twain +Twain support for wine + +%package capi +Summary: ISDN support for wine +Group: System Environment/Libraries +Requires: wine = %{version}-%{release} + +%description capi +ISDN support for wine + +%package devel +Summary: Wine development environment +Group: System Environment/Libraries +Requires: wine = %{version}-%{release} + +%description devel +Header, include files and library definition files for developing applications +with the Wine Windows(TM) emulation libraries. + +%prep +%setup -q +%patch2 -p1 -b .generated +autoconf + +%build +export CFLAGS="$RPM_OPT_FLAGS" +%configure \ + --sysconfdir=%{_sysconfdir}/wine --disable-static + +%{__make} depend +%{__make} + +%install +rm -rf %{buildroot} + +%makeinstall \ + includedir=%{buildroot}%{_includedir}/wine \ + sysconfdir=%{buildroot}%{_sysconfdir}/wine \ + dlldir=%{buildroot}%{_libdir}/wine \ + LDCONFIG=/bin/true \ + UPDATE_DESKTOP_DATABASE=/bin/true +%makeinstall \ + -C dlls/wineps \ + includedir=%{buildroot}%{_includedir}/wine \ + sysconfdir=%{buildroot}%{_sysconfdir}/wine \ + dlldir=%{buildroot}%{_libdir}/wine \ + LDCONFIG=/bin/true \ + UPDATE_DESKTOP_DATABASE=/bin/true + +mkdir -p %{buildroot}%{_sysconfdir}/wine + +# Allow users to launch Windows programs by just clicking on the .exe file... +mkdir -p %{buildroot}%{_initrddir} +install -p -c -m 755 %SOURCE1 %{buildroot}%{_initrddir}/wine + +# Install Wine's fonts +mkdir -p %{buildroot}%{_datadir}/fonts/wine +tar xzf %SOURCE2 -C %{buildroot}%{_datadir}/fonts/wine + +desktop-file-install \ + --vendor=fedora \ + --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ + --add-category=X-Fedora \ + %{SOURCE100} + +desktop-file-install \ + --vendor=fedora \ + --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ + --add-category=X-Fedora \ + %{SOURCE101} + +desktop-file-install \ + --vendor=fedora \ + --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ + --add-category=X-Fedora \ + %{SOURCE102} + +desktop-file-install \ + --vendor=fedora \ + --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ + --add-category=X-Fedora \ + %{SOURCE103} + +desktop-file-install \ + --vendor=fedora \ + --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ + --add-category=X-Fedora \ + %{SOURCE104} + +desktop-file-install \ + --vendor=fedora \ + --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ + --add-category=X-Fedora \ + %{SOURCE105} + +desktop-file-install \ + --vendor=fedora \ + --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ + --add-category=X-Fedora \ + %{SOURCE106} + +desktop-file-install \ + --vendor=fedora \ + --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ + --add-category=X-Fedora \ + --delete-original \ + $RPM_BUILD_ROOT%{_datadir}/applications/wine.desktop + +cp %{SOURCE3} README-Fedora + +mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d/ +install -p -m644 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d/ + +%clean +rm -rf %{buildroot} + +%post +/sbin/ldconfig +/sbin/chkconfig --add wine +/sbin/chkconfig --level 2345 wine on +/sbin/service wine start &>/dev/null || : +update-desktop-database &>/dev/null || : + +%preun +if test "$1" = "0"; then + /sbin/chkconfig --del wine +fi + +%postun +/sbin/ldconfig +update-desktop-database &>/dev/null || : + +%post arts -p /sbin/ldconfig +%postun arts -p /sbin/ldconfig + +%post esd -p /sbin/ldconfig +%postun esd -p /sbin/ldconfig + +%post jack -p /sbin/ldconfig +%postun jack -p /sbin/ldconfig + +%post nas -p /sbin/ldconfig +%postun nas -p /sbin/ldconfig + +%post ldap -p /sbin/ldconfig +%postun ldap -p /sbin/ldconfig + +%post cms -p /sbin/ldconfig +%postun cms -p /sbin/ldconfig + +%post twain -p /sbin/ldconfig +%postun twain -p /sbin/ldconfig + +%post capi -p /sbin/ldconfig +%postun capi -p /sbin/ldconfig + +%files +%defattr(-,root,root,-) +%doc ANNOUNCE BUGS COPYING.LIB ChangeLog DEVELOPERS-HINTS LICENSE LICENSE.OLD +%doc AUTHORS README-Fedora README VERSION +%doc documentation/* +%{_bindir}/msiexec +%{_bindir}/regedit +%{_bindir}/regsvr32 +%{_bindir}/wine +%{_bindir}/wineboot +%{_bindir}/winebrowser +%{_bindir}/wineconsole +%{_bindir}/wineprefixcreate +%{_bindir}/wineshelllink +%{_bindir}/winecfg +%{_bindir}/uninstaller +%{_initrddir}/wine +%{_libdir}/wine/expand.exe.so +%{_libdir}/wine/msiexec.exe.so +%{_libdir}/wine/regedit.exe.so +%{_libdir}/wine/regsvr32.exe.so +%{_libdir}/wine/rpcss.exe.so +%{_libdir}/wine/rundll32.exe.so +%{_libdir}/wine/start.exe.so +%{_libdir}/wine/wineboot.exe.so +%{_libdir}/wine/winebrowser.exe.so +%{_libdir}/wine/wineconsole.exe.so +%{_libdir}/wine/winemenubuilder.exe.so +%{_libdir}/wine/winevdm.exe.so +%{_datadir}/applications/fedora-wine.desktop +%{_datadir}/applications/fedora-wine-regedit.desktop +%{_datadir}/applications/fedora-wine-uninstaller.desktop +%{_datadir}/applications/fedora-wine-winecfg.desktop +%{_mandir}/man1/wine.1.gz +%{_datadir}/wine/generic.ppd +%{_datadir}/wine/wine.inf +%{_bindir}/wine-kthread +%{_bindir}/wine-preloader +%{_bindir}/wine-pthread +%{_bindir}/winelauncher +%{_bindir}/wineserver +%{_mandir}/man1/wineserver.1* +%{_libdir}/libwine.so.1 +%{_libdir}/libwine_unicode.so.1 +%dir %{_libdir}/wine +%{_libdir}/wine/activeds.dll.so +%{_libdir}/wine/advapi32.dll.so +%{_libdir}/wine/advpack.dll.so +%{_libdir}/wine/amstream.dll.so +%{_libdir}/wine/atl.dll.so +%{_libdir}/wine/avicap32.dll.so +%{_libdir}/wine/avifil32.dll.so +%{_libdir}/wine/avifile.dll.so +%{_libdir}/wine/aviinfo.exe.so +%{_libdir}/wine/aviplay.exe.so +%{_libdir}/wine/cabinet.dll.so +%{_libdir}/wine/cards.dll.so +%{_libdir}/wine/cfgmgr32.dll.so +%{_libdir}/wine/clock.exe.so +%{_libdir}/wine/comcat.dll.so +%{_libdir}/wine/comctl32.dll.so +%{_libdir}/wine/comdlg32.dll.so +%{_libdir}/wine/comm.drv.so +%{_libdir}/wine/commdlg.dll.so +%{_libdir}/wine/compobj.dll.so +%{_libdir}/wine/crtdll.dll.so +%{_libdir}/wine/crypt32.dll.so +%{_libdir}/wine/cryptdll.dll.so +%{_libdir}/wine/ctl3d.dll.so +%{_libdir}/wine/ctl3d32.dll.so +%{_libdir}/wine/ctl3dv2.dll.so +%{_libdir}/wine/d3dim.dll.so +%{_libdir}/wine/d3drm.dll.so +%{_libdir}/wine/d3dxof.dll.so +%{_libdir}/wine/dbghelp.dll.so +%{_libdir}/wine/dciman32.dll.so +%{_libdir}/wine/ddeml.dll.so +%{_libdir}/wine/ddraw.dll.so +%{_libdir}/wine/devenum.dll.so +%{_libdir}/wine/dinput.dll.so +%{_libdir}/wine/dinput8.dll.so +%{_libdir}/wine/dispdib.dll.so +%{_libdir}/wine/display.drv.so +%{_libdir}/wine/dmband.dll.so +%{_libdir}/wine/dmcompos.dll.so +%{_libdir}/wine/dmime.dll.so +%{_libdir}/wine/dmloader.dll.so +%{_libdir}/wine/dmscript.dll.so +%{_libdir}/wine/dmstyle.dll.so +%{_libdir}/wine/dmsynth.dll.so +%{_libdir}/wine/dmusic.dll.so +%{_libdir}/wine/dmusic32.dll.so +%{_libdir}/wine/dplay.dll.so +%{_libdir}/wine/dplayx.dll.so +%{_libdir}/wine/dpnet.dll.so +%{_libdir}/wine/dpnhpast.dll.so +%{_libdir}/wine/dsound.dll.so +%{_libdir}/wine/dswave.dll.so +%{_libdir}/wine/dxdiagn.dll.so +%{_libdir}/wine/eject.exe.so +%{_libdir}/wine/gdi.exe.so +%{_libdir}/wine/gdi32.dll.so +%{_libdir}/wine/hh.exe.so +%{_libdir}/wine/hhctrl.ocx.so +%{_libdir}/wine/iccvid.dll.so +%{_libdir}/wine/icinfo.exe.so +%{_libdir}/wine/icmp.dll.so +%{_libdir}/wine/ifsmgr.vxd.so +%{_libdir}/wine/imaadp32.acm.so +%{_libdir}/wine/imagehlp.dll.so +%{_libdir}/wine/imm.dll.so +%{_libdir}/wine/imm32.dll.so +%{_libdir}/wine/iphlpapi.dll.so +%{_libdir}/wine/itss.dll.so +%{_libdir}/wine/joystick.drv.so +%{_libdir}/wine/kernel32.dll.so +%{_libdir}/wine/keyboard.drv.so +%{_libdir}/wine/krnl386.exe.so +%{_libdir}/wine/lz32.dll.so +%{_libdir}/wine/lzexpand.dll.so +%{_libdir}/wine/mapi32.dll.so +%{_libdir}/wine/mciavi32.dll.so +%{_libdir}/wine/mcicda.dll.so +%{_libdir}/wine/mciseq.dll.so +%{_libdir}/wine/mciwave.drv.so +%{_libdir}/wine/midimap.dll.so +%{_libdir}/wine/mlang.dll.so +%{_libdir}/wine/mmdevldr.vxd.so +%{_libdir}/wine/mmsystem.dll.so +%{_libdir}/wine/monodebg.vxd.so +%{_libdir}/wine/mouse.drv.so +%{_libdir}/wine/mpr.dll.so +%{_libdir}/wine/msacm.dll.so +%{_libdir}/wine/msacm.drv.so +%{_libdir}/wine/msacm32.dll.so +%{_libdir}/wine/msadp32.acm.so +%{_libdir}/wine/msdmo.dll.so +%{_libdir}/wine/msg711.acm.so +%{_libdir}/wine/mshtml.dll.so +%{_libdir}/wine/msi.dll.so +%{_libdir}/wine/msimg32.dll.so +%{_libdir}/wine/msisys.ocx.so +%{_libdir}/wine/msnet32.dll.so +%{_libdir}/wine/msrle32.dll.so +%{_libdir}/wine/msvcrt.dll.so +%{_libdir}/wine/msvcrt20.dll.so +%{_libdir}/wine/msvcrt40.dll.so +%{_libdir}/wine/msvcrtd.dll.so +%{_libdir}/wine/msvfw32.dll.so +%{_libdir}/wine/msvidc32.dll.so +%{_libdir}/wine/msvideo.dll.so +%{_libdir}/wine/mswsock.dll.so +%{_libdir}/wine/msxml3.dll.so +%{_libdir}/wine/netapi32.dll.so +%{_libdir}/wine/newdev.dll.so +%{_libdir}/wine/ntdll.dll.so +%{_libdir}/wine/objsel.dll.so +%{_libdir}/wine/odbc32.dll.so +%{_libdir}/wine/odbccp32.dll.so +%{_libdir}/wine/ole2.dll.so +%{_libdir}/wine/ole2conv.dll.so +%{_libdir}/wine/ole2disp.dll.so +%{_libdir}/wine/ole2nls.dll.so +%{_libdir}/wine/ole2prox.dll.so +%{_libdir}/wine/ole2thk.dll.so +%{_libdir}/wine/ole32.dll.so +%{_libdir}/wine/oleacc.dll.so +%{_libdir}/wine/oleaut32.dll.so +%{_libdir}/wine/olecli.dll.so +%{_libdir}/wine/olecli32.dll.so +%{_libdir}/wine/oledlg.dll.so +%{_libdir}/wine/olepro32.dll.so +%{_libdir}/wine/olesvr.dll.so +%{_libdir}/wine/olesvr32.dll.so +%{_libdir}/wine/powrprof.dll.so +%{_libdir}/wine/psapi.dll.so +%{_libdir}/wine/qcap.dll.so +%{_libdir}/wine/quartz.dll.so +%{_libdir}/wine/rasapi16.dll.so +%{_libdir}/wine/rasapi32.dll.so +%{_libdir}/wine/riched20.dll.so +%{_libdir}/wine/riched32.dll.so +%{_libdir}/wine/rpcrt4.dll.so +%{_libdir}/wine/rsabase.dll.so +%{_libdir}/wine/rsaenh.dll.so +%{_libdir}/wine/secur32.dll.so +%{_libdir}/wine/sensapi.dll.so +%{_libdir}/wine/serialui.dll.so +%{_libdir}/wine/setupapi.dll.so +%{_libdir}/wine/setupx.dll.so +%{_libdir}/wine/shdocvw.dll.so +%{_libdir}/wine/shell.dll.so +%{_libdir}/wine/shell32.dll.so +%{_libdir}/wine/shfolder.dll.so +%{_libdir}/wine/shlwapi.dll.so +%{_libdir}/wine/snmpapi.dll.so +%{_libdir}/wine/sound.drv.so +%{_libdir}/wine/stdole2.tlb.so +%{_libdir}/wine/stdole32.tlb.so +%{_libdir}/wine/sti.dll.so +%{_libdir}/wine/storage.dll.so +%{_libdir}/wine/stress.dll.so +%{_libdir}/wine/system.drv.so +%{_libdir}/wine/tapi32.dll.so +%{_libdir}/wine/toolhelp.dll.so +%{_libdir}/wine/typelib.dll.so +%{_libdir}/wine/unicows.dll.so +%{_libdir}/wine/url.dll.so +%{_libdir}/wine/urlmon.dll.so +%{_libdir}/wine/user.exe.so +%{_libdir}/wine/user32.dll.so +%{_libdir}/wine/usp10.dll.so +%{_libdir}/wine/uxtheme.dll.so +%{_libdir}/wine/vdhcp.vxd.so +%{_libdir}/wine/vdmdbg.dll.so +%{_libdir}/wine/ver.dll.so +%{_libdir}/wine/version.dll.so +%{_libdir}/wine/vmm.vxd.so +%{_libdir}/wine/vnbt.vxd.so +%{_libdir}/wine/vnetbios.vxd.so +%{_libdir}/wine/vtdapi.vxd.so +%{_libdir}/wine/vwin32.vxd.so +%{_libdir}/wine/w32skrnl.dll.so +%{_libdir}/wine/w32sys.dll.so +%{_libdir}/wine/win32s16.dll.so +%{_libdir}/wine/win87em.dll.so +%{_libdir}/wine/winaspi.dll.so +%{_libdir}/wine/windebug.dll.so +%{_libdir}/wine/wineaudioio.drv.so +%{_libdir}/wine/winedos.dll.so +%{_libdir}/wine/winemp3.acm.so +%{_libdir}/wine/wineoss.drv.so +#%{_libdir}/wine/winetty.drv.so +%{_libdir}/wine/winex11.drv.so +%{_libdir}/wine/wing.dll.so +%{_libdir}/wine/wininet.dll.so +%{_libdir}/wine/winmm.dll.so +%{_libdir}/wine/winnls.dll.so +%{_libdir}/wine/winnls32.dll.so +%{_libdir}/wine/winsock.dll.so +%{_libdir}/wine/winspool.drv.so +%{_libdir}/wine/wintab.dll.so +%{_libdir}/wine/wintab32.dll.so +%{_libdir}/wine/wintrust.dll.so +%{_libdir}/wine/wnaspi32.dll.so +%{_libdir}/wine/wow32.dll.so +%{_libdir}/wine/wprocs.dll.so +%{_libdir}/wine/ws2_32.dll.so +%{_libdir}/wine/wsock32.dll.so +%{_libdir}/wine/wtsapi32.dll.so +%dir %{_datadir}/fonts/wine +%{_datadir}/fonts/wine/wine_coure.fon +%{_datadir}/fonts/wine/wine_couree.fon +%{_datadir}/fonts/wine/wine_courer.fon +%{_datadir}/fonts/wine/wine_marlett.ttf +%{_datadir}/fonts/wine/wine_sserife.fon +%{_datadir}/fonts/wine/wine_sserifee.fon +%{_datadir}/fonts/wine/wine_sserifer.fon +%{_datadir}/fonts/wine/wine_vgasys.fon +%{_datadir}/fonts/wine/wine_vgasyse.fon +%{_datadir}/fonts/wine/wine_vgasysr.fon +%{_datadir}/fonts/wine/coue1255.fon +%{_datadir}/fonts/wine/coue1256.fon +%{_datadir}/fonts/wine/coue1257.fon +%{_datadir}/fonts/wine/coure.fon +%{_datadir}/fonts/wine/couree.fon +%{_datadir}/fonts/wine/coureg.fon +%{_datadir}/fonts/wine/courer.fon +%{_datadir}/fonts/wine/couret.fon +%{_datadir}/fonts/wine/cvgasys.fon +%{_datadir}/fonts/wine/hvgasys.fon +%{_datadir}/fonts/wine/jvgasys.fon +%{_datadir}/fonts/wine/marlett.ttf +%{_datadir}/fonts/wine/ssee1255.fon +%{_datadir}/fonts/wine/ssee1256.fon +%{_datadir}/fonts/wine/ssee1257.fon +%{_datadir}/fonts/wine/ssee874.fon +%{_datadir}/fonts/wine/sserife.fon +%{_datadir}/fonts/wine/sserifee.fon +%{_datadir}/fonts/wine/sserifeg.fon +%{_datadir}/fonts/wine/sserifer.fon +%{_datadir}/fonts/wine/sserifet.fon +%{_datadir}/fonts/wine/svgasys.fon +%{_datadir}/fonts/wine/vgas1255.fon +%{_datadir}/fonts/wine/vgas1256.fon +%{_datadir}/fonts/wine/vgas1257.fon +%{_datadir}/fonts/wine/vgas874.fon +%{_datadir}/fonts/wine/vgasys.fon +%{_datadir}/fonts/wine/vgasyse.fon +%{_datadir}/fonts/wine/vgasysg.fon +%{_datadir}/fonts/wine/vgasysr.fon +%{_datadir}/fonts/wine/vgasyst.fon +%{_libdir}/wine/winealsa.drv.so +%{_libdir}/wine/wineps.drv.so +%{_libdir}/wine/wineps16.drv.so +%{_libdir}/wine/d3d8.dll.so +%{_libdir}/wine/d3d9.dll.so +%{_libdir}/wine/d3dx8.dll.so +%{_libdir}/wine/glu32.dll.so +%{_libdir}/wine/glut32.dll.so +%{_libdir}/wine/opengl32.dll.so +%{_libdir}/wine/wined3d.dll.so +%{_sysconfdir}/ld.so.conf.d/wine-32.conf + +%files tools +%defattr(-,root,root,-) +%{_bindir}/notepad +%{_bindir}/progman +%{_bindir}/wcmd +%{_bindir}/winedbg +%{_bindir}/winedump +%{_bindir}/winefile +%{_bindir}/winemaker +%{_bindir}/winemine +%{_bindir}/winepath +%{_bindir}/winhelp +%{_libdir}/wine/explorer.exe.so +%{_libdir}/wine/control.exe.so +%{_libdir}/wine/notepad.exe.so +%{_libdir}/wine/progman.exe.so +%{_libdir}/wine/taskmgr.exe.so +%{_libdir}/wine/uninstaller.exe.so +%{_libdir}/wine/wcmd.exe.so +%{_libdir}/wine/winecfg.exe.so +%{_libdir}/wine/winedbg.exe.so +%{_libdir}/wine/winefile.exe.so +%{_libdir}/wine/winemine.exe.so +%{_libdir}/wine/winepath.exe.so +%{_libdir}/wine/winhelp.exe.so +%{_libdir}/wine/winver.exe.so +%{_libdir}/wine/winetest.exe.so +%{_datadir}/applications/fedora-wine-notepad.desktop +%{_datadir}/applications/fedora-wine-winefile.desktop +%{_datadir}/applications/fedora-wine-winemine.desktop +%{_datadir}/applications/fedora-wine-winhelp.desktop + +%files arts +%defattr(-,root,root,-) +%{_libdir}/wine/winearts.drv.so + +%files esd +%defattr(-,root,root,-) +%{_libdir}/wine/wineesd.drv.so + +%files jack +%defattr(-,root,root,-) +%{_libdir}/wine/winejack.drv.so + +%files nas +%defattr(-,root,root,-) +%{_libdir}/wine/winenas.drv.so + +%files ldap +%defattr(-,root,root,-) +%{_libdir}/wine/wldap32.dll.so + +%files cms +%defattr(-,root,root,-) +%{_libdir}/wine/mscms.dll.so + +%files twain +%defattr(-,root,root,-) +%{_libdir}/wine/twain.dll.so +%{_libdir}/wine/twain_32.dll.so + +%files capi +%defattr(-,root,root,-) +%{_libdir}/wine/capi2032.dll.so + +%files devel +%defattr(-,root,root,-) +%{_bindir}/function_grep.pl +%{_bindir}/widl +%{_bindir}/winebuild +%{_bindir}/winecpp +%{_bindir}/winedump +%{_bindir}/wineg++ +%{_bindir}/winegcc +%{_bindir}/winemaker +%{_bindir}/wmc +%{_bindir}/wrc +%{_libdir}/*.so +%{_mandir}/man1/widl.1* +%{_mandir}/man1/winebuild.1* +%{_mandir}/man1/winedump.1* +%{_mandir}/man1/winegcc.1* +%{_mandir}/man1/winemaker.1* +%{_mandir}/man1/wmc.1* +%{_mandir}/man1/wrc.1* +%{_mandir}/man1/winedbg.1* +%{_mandir}/man1/wineg++.1* +%{_datadir}/aclocal/wine.m4 +%attr(0755, root, root) %dir %{_includedir}/wine +%{_includedir}/wine/* +%{_libdir}/wine/*.a +%{_libdir}/wine/*.def + +%changelog +* Sun Jan 01 2006 Andreas Bierfert +0.9.4-3 +- use ExclusiveArch instead of ExcludeArch + +* Sun Jan 01 2006 Andreas Bierfert +0.9.4-2 +- own font directory +- fix devel summary +- add ExcludeArch x86_64 for now + +* Sat Dec 31 2005 Andreas Bierfert +0.9.4-1 +- version upgrade +- changed wine.init perissions to 0644 +- added autoconf BR + +* Mon Dec 12 2005 Andreas Bierfert +0.9.3-1 +- version upgrade + +* Thu Nov 24 2005 Andreas Bierfert +0.9.2-1 +- version upgrade + +* Thu Nov 17 2005 Andreas Bierfert +0.9.1-2 +- add fontforge BR and include generated fonts... + +* Sat Nov 12 2005 Andreas Bierfert +0.9.1-1 +- version upgrade +- move uninstaller and winecfg into wine main package... +- drop wine suite + +* Sat Oct 29 2005 Andreas Bierfert +0.9-3 +- s/libwine/wine/ + +* Thu Oct 27 2005 Andreas Bierfert +0.9-2 +- remerge some subpackages which should be defaults + +* Tue Oct 25 2005 Andreas Bierfert +0.9-1 +- upgrade to new version +- start splitting + +* Mon Oct 24 2005 Andreas Bierfert +0.0-1.20050930 +- add fedora readme +- switch to new (old) versioning sheme + +* Sat Oct 22 2005 Andreas Bierfert +20050930-3 +- add desktop files +- revisit summary and description +- consistant use of %{buildroot} + +* Sat Oct 22 2005 Andreas Bierfert +20050930-2 +- some more spec tuneups... + +* Sat Oct 01 2005 Andreas Bierfert +20050930-1 +- version upgrade + +* Sun Sep 25 2005 Andreas Bierfert +20050925-1 +- upgrade to current cvs + +* Mon Sep 19 2005 Andreas Bierfert +20050830-1 +- version upgrade + +* Mon Sep 19 2005 Andreas Bierfert +20050524-2 +- fedorarized version + +* Mon May 30 2005 Vincent Bron 20050524-1fc3 +- Update to 20050524 +- Remove pdf documentation build as it's no more included in the main archive +- Workaround for generic.ppd installation + +* Tue Apr 19 2005 Vincent Bron 20050419-1fc3 +- Update to 20050419 + +* Thu Mar 10 2005 Vincent Bron 20050310-1fc3 +- Update to 20050310 + +* Sat Feb 12 2005 Vincent Bron 20050211-1fc3 +- Update to 20050211 + +* Tue Jan 11 2005 Vincent Bron 20050111-1fc3 +- Update to 20050111 + +* Wed Dec 1 2004 Vincent Bron 20041201-1fc3 +- Recompile for FC3 +- Update to 20041201 +- Small reorganization: + - use the generic ICU static libs name; + - no more wine group; + - use Wine's generated stdole32.tlb file; + - use Wine's generated fonts. + +* Wed Oct 20 2004 Vincent Bron 20041019-1fc2 +- Update to 20041019 + +* Wed Sep 15 2004 Vincent Bron 20040914-1fc2 +- Update to 20040914 + +* Sat Aug 14 2004 Vincent Bron 20040813-1fc2 +- Update to 20040813 + +* Sat Jul 17 2004 Vincent Bron 20040716-1fc2 +- Update to 20040716 + +* Fri Jun 25 2004 Vincent Bron 20040615-1fc2 +- Recompile for FC2 +- Backport from current CVS some fixes to the preloader to prevent + a segfault on startup +- Include a currently uncommitted patch from Alexandre Julliard regarding + further issues with the preloader + +* Sun Jun 20 2004 Vincent Bron 20040615-1fc1 +- Update to 20040615 +- Use of wineprefixcreate instead of old RedHat patches + +* Wed May 5 2004 Vincent Bron 20040505-1fc1 +- Update to 20040505 + +* Fri Apr 9 2004 Vincent Bron 20040408-1fc1 +- Update to 20040408 +- Change the handling of paths to DOS drives in the installation process + +* Wed Mar 17 2004 Vincent Bron 20040309-1fc1 +- Update to 20040309 +- Replaced winedefault.reg by wine.inf + +* Wed Feb 18 2004 Vincent Bron 20040213-1fc1 +- Update to 20040213 +- Moved Wine dlls back to %{_libdir}/wine rather than %{_libdir}/wine/wine + +* Sun Jan 25 2004 Vincent Bron 20040121-fc1 +- Update to 20040121 + +* Sat Dec 13 2003 Vincent Bron 20031212-fc1 +- Update to 20031212 + +* Wed Nov 18 2003 Vincent Bron 20031118-fc1 +- Update to 20031118 + +* Thu Oct 16 2003 Vincent Bron 20031016-1rh9 +- Update to 20031016 + +* Tue Sep 11 2003 Vincent Bron 20030911-1rh9 +- Fix of include location +- Better separation of run-time and development files +- Update to 20030911 + +* Wed Aug 13 2003 Vincent Bron 20030813-1rh9 +- Update to 20030813 + +* Wed Jul 09 2003 Vincent Bron 20030709-1rh9 +- Update to 20030709 + +* Wed Jun 18 2003 Vincent Bron 20030618-1rh9 +- Change the default C drive to ~/.wine/c, copied from /usr/share/wine + if non-existant (Thanks to Rudolf Kastl) +- Updated to 20030618 + +* Tue May 20 2003 Vincent Bron 20030508-1rh9 +- Adapted for RH9 + +* Thu May 08 2003 Vincent Bron 20030508-1 +- Add libraries definition files to devel package +- Update to 20030508 + +* Tue Apr 08 2003 Vincent Bron 20030408-1 +- Update to 20030408 + +* Tue Mar 18 2003 Vincent Bron 20030318-1 +- Update to 20030318 + +* Thu Mar 11 2003 Vincent Bron 20030219-2 +- Fix the symlinks in wine-c. + +* Wed Feb 19 2003 Vincent Bron 20030219-1 +- Update to 20030129 +- Various fixes in RPM build process + +* Fri Jan 17 2003 Vincent Bron 20030115-1 +- Update to 20030115 +- fix to build problem + +* Thu Nov 7 2002 Vincent Bron 20021031-1 +- Update to 20021031 +- Tweaks here and there + +* Wed Sep 4 2002 Bill Nottingham 20020605-2 +- fix docs (#72923) + +* Wed Jul 10 2002 Karsten Hopp 20020605-1 +- update +- remove obsolete part of redhat patch +- redo destdir patch +- redo kde patch +- redo defaultversion patch +- fix 'my_perl unknown' error +- work around name conflict with textutils 'expand' + +* Fri Jun 21 2002 Tim Powers +- automated rebuild + +* Thu May 23 2002 Tim Powers +- automated rebuild + +* Wed Mar 27 2002 Bernhard Rosenkraenzer 20020327-1 +- Fix wineshelllink (#61761) +- Fix up initscript (#53625) +- Clean up spec file +- Default to emulating Windoze ME rather than 3.1, nobody uses 3.1 + applications anymore +- Auto-generate default config if none exists (#61920) + +* Mon Mar 04 2002 Bernhard Rosenkraenzer 20020304-1 +- Assign gid 66 (closest to 666 [Microsoft number] we can get for a + system account ;) ) +- Don't use glibc private functions (__libc_fork) +- Update + +* Tue Feb 26 2002 Bernhard Rosenkraenzer 20020226-1 +- Fix bug #60250 +- Update + +* Thu Feb 21 2002 Bernhard Rosenkraenzer 20020221-1 +- Update +- Don't try to launch winesetup in winelauncher, we aren't shipping it + (#59621) + +* Sun Jan 27 2002 Bernhard Rosenkraenzer 20020127-1 +- Update +- Fix build in current environment + +* Wed Aug 22 2001 Bernhard Rosenkraenzer 20010822-1 +- Make sure the package can be cleanly uninstalled (#52007) +- Add build dependencies + +* Thu Jul 26 2001 Bernhard Rosenkraenzer 20010726-1 +- Fix -devel package group (#49989) +- remove internal CVS files +- chkconfig deletion should be in %preun, not %postun +- rename initscript ("Starting windows:" at startup does look off) + +* Thu May 03 2001 Bernhard Rosenkraenzer 20010503-1 +- Update +- generate HTML documentation rather than shipping plain docbook text + (#38453) + +* Sat Apr 14 2001 Bernhard Rosenkraenzer +- Update +- Update registry to mount "/" as drive "Z:", fixes winedbg (needs to be + accessible from 'doze drives) +- Don't create KDE 1.x style desktop entries in wineshelllink +- Be more tolerant on failing stuff in %%post + +* Thu Mar 1 2001 Bernhard Rosenkraenzer +- Update + +* Thu Feb 15 2001 Tim Powers +- fixed time.h build problems + +* Wed Jan 31 2001 Bernhard Rosenkraenzer +- Add a patch to handle .exe and .com file permissions the way we want them + +* Thu Jan 18 2001 Bernhard Rosenkraenzer +- Update +- Restore wine's ability to use a global config file, it was removed + in CVS for whatever reason +- Move libraries to %{_libdir}/wine to prevent conflicts with libuser + (Bug #24202) +- Move include files to /usr/include/wine to prevent it from messing with + some autoconf scripts (some broken scripts assume they're running on windoze + if /usr/include/windows.h exists...) + +* Tue Dec 19 2000 Bernhard Rosenkraenzer +- Fix %%pre and %%postun scripts +- --enable-opengl, glibc 2.2 should be safe +- Update CVS + +* Mon Nov 20 2000 Bernhard Rosenkraenzer +- Update CVS +- Add a new (user) group wine that can write to the "C: drive" + %{_datadir}/wine-c +- Fix up winedbg installation (registry entries) +- Add "Program Files/Common Files" subdirectory to the "C: drive", it's + referenced in the registry + +* Wed Oct 11 2000 Bernhard Rosenkraenzer +- update + +* Mon Aug 7 2000 Tim Powers +- rebuilt with new DGA + +* Tue Jul 25 2000 Bernhard Rosenkraenzer +- new snapshot +- fix compilation with gcc 2.96 + +* Fri Jul 21 2000 Bernhard Rosenkraenzer +- Move init script back +- new version +- move man pages to FHS locations + +* Thu Jul 13 2000 Bernhard Rosenkraenzer +- move initscript +- new snapshot + +* Fri Jun 23 2000 Bernhard Rosenkraenzer +- Start the initscript on startup + +* Mon May 9 2000 Bernhard Rosenkraenzer +- New version +- new feature: You can now launch wine by just running a windows .exe file + (./some.exe or just click on it in kfm, gmc and the likes) +- some spec file modifications + +* Sun Feb 13 2000 Bernhard Rosenkraenzer +- newer version +- Improve the system.ini file - all multimedia stuff should work now. + +* Wed Feb 2 2000 Bernhard Rosenkraenzer +- enable and fix up the urlmon/wininet patch +- add: autoexec.bat, config.sys, windows/win.ini windows/system.ini + windows/Profiles/Administrator +- allow i[456]86 arches +- add some system.ini configuration + +* Wed Feb 2 2000 Bernhard Rosenkraenzer +- update current +- add urlmon and wininet patches from Corel (don't apply them for now though) +- create empty shell*dll and winsock*dll files (as mentioned in the HOWTO) + +* Mon Jan 17 2000 Bernhard Rosenkraenzer +- update to current (lots of important fixes) +- Fix up the default wine.conf file (We really don't want it to look + for CD-ROMs in /cdrom!) +- create a "root filesystem" with everything required to run wine without + windows in %{_datadir}/wine-c (drive c:) +- add RedHat file in /usr/doc/wine-%{version} explaining the new directory + layout +- wine-devel requires wine + +* Tue Dec 14 1999 Preston Brown +- updated source for Powertools 6.2 +- better files list + +* Fri Jul 23 1999 Tim Powers +- updated source +- built for 6.1 + +* Tue Apr 13 1999 Michael Maher +- built package for 6.0 +- updated package and spec file + +* Mon Oct 26 1998 Preston Brown +- updated to 10/25/98 version. There is really no point in keeping the +- older one, it is full of bugs and the newer one has fewer. +- commented out building of texinfo manual, it is horrendously broken. + +* Mon Oct 12 1998 Michael Maher +- built package for 5.2 +- pressured by QA, not updating. + +* Fri May 22 1998 Cristian Gafton +- repackaged for PowerTools From 7546c12d6247b7ffc012bfb8209b04dc43c5e4d2 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 2 Jan 2006 09:09:15 +0000 Subject: [PATCH 008/715] - add dist --- wine.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 699ff54..be5aa2e 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ Name: wine Version: 0.9.4 -Release: 3 +Release: 4%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -679,6 +679,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Mon Jan 02 2006 Andreas Bierfert +0.9.4-4 +- add dist + * Sun Jan 01 2006 Andreas Bierfert 0.9.4-3 - use ExclusiveArch instead of ExcludeArch From 53663fdbcdb9fb348ca6d78e02b41a966dea0d80 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Wed, 4 Jan 2006 00:53:06 +0000 Subject: [PATCH 009/715] - fix #176834 --- wine.spec | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/wine.spec b/wine.spec index be5aa2e..6a6dbc9 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ Name: wine Version: 0.9.4 -Release: 4%{?dist} +Release: 5%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -310,6 +310,8 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/wineconsole.exe.so %{_libdir}/wine/winemenubuilder.exe.so %{_libdir}/wine/winevdm.exe.so +%{_libdir}/wine/winecfg.exe.so +%{_libdir}/wine/uninstaller.exe.so %{_datadir}/applications/fedora-wine.desktop %{_datadir}/applications/fedora-wine-regedit.desktop %{_datadir}/applications/fedora-wine-uninstaller.desktop @@ -602,9 +604,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/notepad.exe.so %{_libdir}/wine/progman.exe.so %{_libdir}/wine/taskmgr.exe.so -%{_libdir}/wine/uninstaller.exe.so %{_libdir}/wine/wcmd.exe.so -%{_libdir}/wine/winecfg.exe.so %{_libdir}/wine/winedbg.exe.so %{_libdir}/wine/winefile.exe.so %{_libdir}/wine/winemine.exe.so @@ -679,6 +679,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Wed Jan 04 2006 Andreas Bierfert +0.9.4-5 +- fix #176834 + * Mon Jan 02 2006 Andreas Bierfert 0.9.4-4 - add dist From 3055341e1bfb070f93a2ff9e7f071671243cc744 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Fri, 6 Jan 2006 11:01:06 +0000 Subject: [PATCH 010/715] - upgrade - bugfix #177089 --- .cvsignore | 2 ++ sources | 2 +- wine-winemine.desktop | 2 +- wine.spec | 16 ++++++++++++---- 4 files changed, 16 insertions(+), 6 deletions(-) create mode 100644 .cvsignore diff --git a/.cvsignore b/.cvsignore new file mode 100644 index 0000000..dcb22c1 --- /dev/null +++ b/.cvsignore @@ -0,0 +1,2 @@ +wine-0.9.5.tar.bz2 +wine-fonts-20050524.tar.gz diff --git a/sources b/sources index b5e92a1..dbde573 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -73205d83a5612a43441a8532683c0434 wine-0.9.4.tar.bz2 +b0c8e65efd541eb690ae05fdf05fcd4d wine-0.9.5.tar.bz2 fb216b10993cb17501efff7afa812da1 wine-fonts-20050524.tar.gz diff --git a/wine-winemine.desktop b/wine-winemine.desktop index 7cdefdd..fe0963c 100644 --- a/wine-winemine.desktop +++ b/wine-winemine.desktop @@ -5,4 +5,4 @@ Exec=winemine Terminal=false Type=Application Encoding=UTF-8 -Categories=Application;System; +Categories=Application;Game; diff --git a/wine.spec b/wine.spec index 6a6dbc9..a1cda8a 100644 --- a/wine.spec +++ b/wine.spec @@ -1,12 +1,14 @@ +%define __global_cflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fno-stack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=pentium4 -fasynchronous-unwind-tables + Name: wine -Version: 0.9.4 -Release: 5%{?dist} +Version: 0.9.5 +Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators License: LGPL URL: http://www.winehq.org/ -Source0: http://dl.sf.net/wine/wine-0.9.4.tar.bz2 +Source0: http://dl.sf.net/wine/wine-0.9.5.tar.bz2 Source1: wine.init Source2: wine-fonts-20050524.tar.gz Source3: wine-README-Fedora @@ -53,7 +55,7 @@ BuildRequires: libXrandr-devel libXrender-devel libXext-devel Requires(post): /sbin/ldconfig, /sbin/chkconfig, /sbin/service, Requires(post): /usr/bin/update-desktop-database Requires(preun): /sbin/chkconfig -Requires(postun): /sbin/ldconfig, /usr/bin/update-desktop-database, %{__perl} +Requires(postun): /sbin/ldconfig, /usr/bin/update-desktop-database %description While Wine is usually thought of as a Windows(TM) emulator, the Wine @@ -679,6 +681,12 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Fri Jan 06 2006 Andreas Bierfert +0.9.5-1 +- version upgrade +- fix #177089 (winemine desktop entry should be in Game not in System) +- fix cflags for compile + * Wed Jan 04 2006 Andreas Bierfert 0.9.4-5 - fix #176834 From 3b8d9631ed8177fa9dc17c5aa5ee5f516b842507 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Fri, 6 Jan 2006 12:58:02 +0000 Subject: [PATCH 011/715] - test new BR --- wine.spec | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index a1cda8a..8855111 100644 --- a/wine.spec +++ b/wine.spec @@ -52,6 +52,10 @@ BuildRequires: mesa-libGL-devel mesa-libGLU-devel mesa-libGLw-devel BuildRequires: libXxf86dga-devel libXxf86vm-devel BuildRequires: libXrandr-devel libXrender-devel libXext-devel +BuildRequires: fontconfig-devel +BuildRequires: giflib-devel +BuildRequires: cups-devel + Requires(post): /sbin/ldconfig, /sbin/chkconfig, /sbin/service, Requires(post): /usr/bin/update-desktop-database Requires(preun): /sbin/chkconfig @@ -154,7 +158,8 @@ autoconf %build export CFLAGS="$RPM_OPT_FLAGS" %configure \ - --sysconfdir=%{_sysconfdir}/wine --disable-static + --sysconfdir=%{_sysconfdir}/wine --disable-static \ + --x-includes=%{_includedir} --x-libraries=%{_libdir} %{__make} depend %{__make} @@ -686,6 +691,7 @@ update-desktop-database &>/dev/null || : - version upgrade - fix #177089 (winemine desktop entry should be in Game not in System) - fix cflags for compile +- test new BR * Wed Jan 04 2006 Andreas Bierfert 0.9.4-5 From afa272cd89f711463cbbf0a1d018e53655a9ad96 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 7 Jan 2006 23:15:33 +0000 Subject: [PATCH 012/715] - more new BR --- wine.spec | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 8855111..f25658e 100644 --- a/wine.spec +++ b/wine.spec @@ -48,13 +48,15 @@ BuildRequires: desktop-file-utils BuildRequires: fontforge # modular x BuildRequires: libX11-devel -BuildRequires: mesa-libGL-devel mesa-libGLU-devel mesa-libGLw-devel +BuildRequires: mesa-libGL-devel mesa-libGLU-devel BuildRequires: libXxf86dga-devel libXxf86vm-devel BuildRequires: libXrandr-devel libXrender-devel libXext-devel BuildRequires: fontconfig-devel BuildRequires: giflib-devel BuildRequires: cups-devel +BuildRequires: libXmu-devel +BuildRequires: libXi-devel Requires(post): /sbin/ldconfig, /sbin/chkconfig, /sbin/service, Requires(post): /usr/bin/update-desktop-database From d9e530b4cc2a605de1e26c2c1c694a075e701e36 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 8 Jan 2006 09:07:13 +0000 Subject: [PATCH 013/715] - fix CVE-2005-4560 --- wine-CVE-2005-4560.patch | 20 ++++++++++++++++++++ wine.spec | 11 ++++++++++- 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 wine-CVE-2005-4560.patch diff --git a/wine-CVE-2005-4560.patch b/wine-CVE-2005-4560.patch new file mode 100644 index 0000000..29864a4 --- /dev/null +++ b/wine-CVE-2005-4560.patch @@ -0,0 +1,20 @@ +=================================================================== +RCS file: /home/wine/wine/dlls/gdi/metafile.c,v +retrieving revision 1.11 +retrieving revision 1.12 +diff -u -p -r1.11 -r1.12 +--- wine/dlls/gdi/metafile.c 2006/01/03 12:43:52 1.11 ++++ wine/dlls/gdi/metafile.c 2006/01/06 20:52:46 1.12 +@@ -863,6 +863,13 @@ BOOL WINAPI PlayMetaFileRecord( HDC hdc, + break; + + case META_ESCAPE: ++ switch (mr->rdParm[0]) { ++ case GETSCALINGFACTOR: /* get function ... would just NULL dereference */ ++ return FALSE; ++ case SETABORTPROC: ++ FIXME("Filtering Escape(SETABORTPROC), possible virus?\n"); ++ return FALSE; ++ } + Escape(hdc, mr->rdParm[0], mr->rdParm[1], (LPCSTR)&mr->rdParm[2], NULL); + break; diff --git a/wine.spec b/wine.spec index f25658e..3dae6c6 100644 --- a/wine.spec +++ b/wine.spec @@ -2,7 +2,7 @@ Name: wine Version: 0.9.5 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -21,6 +21,10 @@ Source104: wine-winefile.desktop Source105: wine-winemine.desktop Source106: wine-winhelp.desktop Patch2: wine-20050524-generated.patch +# CVS-2005-4560 wmf exploit from wine cvs +# http://cvs.winehq.org/cvsweb/wine/dlls/gdi/metafile.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.12 +Patch100: wine-CVE-2005-4560.patch + Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) ExclusiveArch: %{ix86} @@ -155,6 +159,7 @@ with the Wine Windows(TM) emulation libraries. %prep %setup -q %patch2 -p1 -b .generated +%patch100 -p1 autoconf %build @@ -688,6 +693,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Sun Jan 08 2006 Andreas Bierfert +0.9.5-2 +- fix for CVE-2005-4560 + * Fri Jan 06 2006 Andreas Bierfert 0.9.5-1 - version upgrade From aa94670d3f7a8e01189fe410f23b8d58e609b32a Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Thu, 19 Jan 2006 23:33:33 +0000 Subject: [PATCH 014/715] - version upgrade --- .cvsignore | 3 +-- sources | 3 +-- wine-CVE-2005-4560.patch | 20 -------------------- wine.spec | 17 +++++++++-------- 4 files changed, 11 insertions(+), 32 deletions(-) delete mode 100644 wine-CVE-2005-4560.patch diff --git a/.cvsignore b/.cvsignore index dcb22c1..8e2e2a2 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1,2 +1 @@ -wine-0.9.5.tar.bz2 -wine-fonts-20050524.tar.gz +wine-0.9.6.tar.bz2 diff --git a/sources b/sources index dbde573..a0d6322 100644 --- a/sources +++ b/sources @@ -1,2 +1 @@ -b0c8e65efd541eb690ae05fdf05fcd4d wine-0.9.5.tar.bz2 -fb216b10993cb17501efff7afa812da1 wine-fonts-20050524.tar.gz +1e3bfac123009300646a0b8a7fcfd81d wine-0.9.6.tar.bz2 diff --git a/wine-CVE-2005-4560.patch b/wine-CVE-2005-4560.patch deleted file mode 100644 index 29864a4..0000000 --- a/wine-CVE-2005-4560.patch +++ /dev/null @@ -1,20 +0,0 @@ -=================================================================== -RCS file: /home/wine/wine/dlls/gdi/metafile.c,v -retrieving revision 1.11 -retrieving revision 1.12 -diff -u -p -r1.11 -r1.12 ---- wine/dlls/gdi/metafile.c 2006/01/03 12:43:52 1.11 -+++ wine/dlls/gdi/metafile.c 2006/01/06 20:52:46 1.12 -@@ -863,6 +863,13 @@ BOOL WINAPI PlayMetaFileRecord( HDC hdc, - break; - - case META_ESCAPE: -+ switch (mr->rdParm[0]) { -+ case GETSCALINGFACTOR: /* get function ... would just NULL dereference */ -+ return FALSE; -+ case SETABORTPROC: -+ FIXME("Filtering Escape(SETABORTPROC), possible virus?\n"); -+ return FALSE; -+ } - Escape(hdc, mr->rdParm[0], mr->rdParm[1], (LPCSTR)&mr->rdParm[2], NULL); - break; diff --git a/wine.spec b/wine.spec index 3dae6c6..5c9c69a 100644 --- a/wine.spec +++ b/wine.spec @@ -1,14 +1,14 @@ %define __global_cflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fno-stack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=pentium4 -fasynchronous-unwind-tables Name: wine -Version: 0.9.5 -Release: 2%{?dist} +Version: 0.9.6 +Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators License: LGPL URL: http://www.winehq.org/ -Source0: http://dl.sf.net/wine/wine-0.9.5.tar.bz2 +Source0: http://dl.sf.net/wine/wine-0.9.6.tar.bz2 Source1: wine.init Source2: wine-fonts-20050524.tar.gz Source3: wine-README-Fedora @@ -21,9 +21,6 @@ Source104: wine-winefile.desktop Source105: wine-winemine.desktop Source106: wine-winhelp.desktop Patch2: wine-20050524-generated.patch -# CVS-2005-4560 wmf exploit from wine cvs -# http://cvs.winehq.org/cvsweb/wine/dlls/gdi/metafile.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.12 -Patch100: wine-CVE-2005-4560.patch Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -159,7 +156,6 @@ with the Wine Windows(TM) emulation libraries. %prep %setup -q %patch2 -p1 -b .generated -%patch100 -p1 autoconf %build @@ -529,7 +525,6 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/winedos.dll.so %{_libdir}/wine/winemp3.acm.so %{_libdir}/wine/wineoss.drv.so -#%{_libdir}/wine/winetty.drv.so %{_libdir}/wine/winex11.drv.so %{_libdir}/wine/wing.dll.so %{_libdir}/wine/wininet.dll.so @@ -547,6 +542,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/ws2_32.dll.so %{_libdir}/wine/wsock32.dll.so %{_libdir}/wine/wtsapi32.dll.so +%{_libdir}/wine/security.dll.so %dir %{_datadir}/fonts/wine %{_datadir}/fonts/wine/wine_coure.fon %{_datadir}/fonts/wine/wine_couree.fon @@ -693,6 +689,11 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Thu Jan 19 2006 Andreas Bierfert +0.9.6-1 +- version upgrade +- drop wmf exploit patch (part of current version) + * Sun Jan 08 2006 Andreas Bierfert 0.9.5-2 - fix for CVE-2005-4560 From a1a5be1bfc46d8b4b6307d838e267a99d87cee8a Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Thu, 19 Jan 2006 23:38:00 +0000 Subject: [PATCH 015/715] - fix sources (forgot wine-fonts) --- .cvsignore | 1 + sources | 1 + 2 files changed, 2 insertions(+) diff --git a/.cvsignore b/.cvsignore index 8e2e2a2..4577820 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1,2 @@ wine-0.9.6.tar.bz2 +wine-fonts-20050524.tar.gz diff --git a/sources b/sources index a0d6322..2ad0676 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ 1e3bfac123009300646a0b8a7fcfd81d wine-0.9.6.tar.bz2 +fb216b10993cb17501efff7afa812da1 wine-fonts-20050524.tar.gz From e5a7a58b6ced9737f90e82cf9eced00cedc448f6 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Thu, 2 Feb 2006 23:19:25 +0000 Subject: [PATCH 016/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 10 +++++++--- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/.cvsignore b/.cvsignore index 4577820..9d1631d 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1,2 +1,2 @@ -wine-0.9.6.tar.bz2 wine-fonts-20050524.tar.gz +wine-0.9.7.tar.bz2 diff --git a/sources b/sources index 2ad0676..6729d42 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -1e3bfac123009300646a0b8a7fcfd81d wine-0.9.6.tar.bz2 fb216b10993cb17501efff7afa812da1 wine-fonts-20050524.tar.gz +92b9af6e2c108bda8d23497abd9d0356 wine-0.9.7.tar.bz2 diff --git a/wine.spec b/wine.spec index 5c9c69a..3a27091 100644 --- a/wine.spec +++ b/wine.spec @@ -1,14 +1,14 @@ %define __global_cflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fno-stack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=pentium4 -fasynchronous-unwind-tables Name: wine -Version: 0.9.6 +Version: 0.9.7 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators License: LGPL URL: http://www.winehq.org/ -Source0: http://dl.sf.net/wine/wine-0.9.6.tar.bz2 +Source0: http://dl.sf.net/wine/wine-0.9.7.tar.bz2 Source1: wine.init Source2: wine-fonts-20050524.tar.gz Source3: wine-README-Fedora @@ -293,7 +293,7 @@ update-desktop-database &>/dev/null || : %files %defattr(-,root,root,-) -%doc ANNOUNCE BUGS COPYING.LIB ChangeLog DEVELOPERS-HINTS LICENSE LICENSE.OLD +%doc ANNOUNCE COPYING.LIB ChangeLog DEVELOPERS-HINTS LICENSE LICENSE.OLD %doc AUTHORS README-Fedora README VERSION %doc documentation/* %{_bindir}/msiexec @@ -689,6 +689,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Thu Feb 02 2006 Andreas Bierfert +0.9.7-1 +- version upgrade + * Thu Jan 19 2006 Andreas Bierfert 0.9.6-1 - version upgrade From ac2e0bf8e51e1d91a5ae9cb29519900d068d5429 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Wed, 8 Feb 2006 13:35:58 +0000 Subject: [PATCH 017/715] - fix typo in script part --- wine.spec | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/wine.spec b/wine.spec index 3a27091..0f3eb1e 100644 --- a/wine.spec +++ b/wine.spec @@ -2,7 +2,7 @@ Name: wine Version: 0.9.7 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -61,7 +61,7 @@ BuildRequires: libXi-devel Requires(post): /sbin/ldconfig, /sbin/chkconfig, /sbin/service, Requires(post): /usr/bin/update-desktop-database -Requires(preun): /sbin/chkconfig +Requires(preun): /sbin/chkconfig, /sbin/service Requires(postun): /sbin/ldconfig, /usr/bin/update-desktop-database %description @@ -253,13 +253,16 @@ rm -rf %{buildroot} %post /sbin/ldconfig +update-desktop-database &>/dev/null || : +if [ $1 = 1 ]; then /sbin/chkconfig --add wine /sbin/chkconfig --level 2345 wine on /sbin/service wine start &>/dev/null || : -update-desktop-database &>/dev/null || : +fi %preun -if test "$1" = "0"; then +if [ $1 = 0 ]; then + /sbin/service wine stop >/dev/null 2>&1 /sbin/chkconfig --del wine fi @@ -689,6 +692,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Wed Feb 08 2006 Andreas Bierfert +0.9.7-2 +- fix up post/preun scriplets (#178954) + * Thu Feb 02 2006 Andreas Bierfert 0.9.7-1 - version upgrade From 369f3b971ae41fa3cda26d82c55192911861930f Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Thu, 9 Feb 2006 07:34:08 +0000 Subject: [PATCH 018/715] - use sources without winemp3 --- wine.spec | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/wine.spec b/wine.spec index 0f3eb1e..b2a3c93 100644 --- a/wine.spec +++ b/wine.spec @@ -2,13 +2,14 @@ Name: wine Version: 0.9.7 -Release: 2%{?dist} +Release: 3%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators License: LGPL URL: http://www.winehq.org/ -Source0: http://dl.sf.net/wine/wine-0.9.7.tar.bz2 +# special fedora tarball without winemp3 stuff +Source0: wine-0.9.7-fe.tar.bz2 Source1: wine.init Source2: wine-fonts-20050524.tar.gz Source3: wine-README-Fedora @@ -526,7 +527,6 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/windebug.dll.so %{_libdir}/wine/wineaudioio.drv.so %{_libdir}/wine/winedos.dll.so -%{_libdir}/wine/winemp3.acm.so %{_libdir}/wine/wineoss.drv.so %{_libdir}/wine/winex11.drv.so %{_libdir}/wine/wing.dll.so @@ -692,6 +692,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Thu Feb 09 2006 Andreas Bierfert +0.9.7-3 +- fix up tarball + * Wed Feb 08 2006 Andreas Bierfert 0.9.7-2 - fix up post/preun scriplets (#178954) From 8e3fccfc73c90968690b6eeeea49e7eb1a3ed0c5 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Thu, 9 Feb 2006 07:41:38 +0000 Subject: [PATCH 019/715] - forgot new sources --- .cvsignore | 2 +- sources | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.cvsignore b/.cvsignore index 9d1631d..e0274ba 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1,2 +1,2 @@ wine-fonts-20050524.tar.gz -wine-0.9.7.tar.bz2 +wine-0.9.7-fe.tar.bz2 diff --git a/sources b/sources index 6729d42..72e54a3 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ fb216b10993cb17501efff7afa812da1 wine-fonts-20050524.tar.gz -92b9af6e2c108bda8d23497abd9d0356 wine-0.9.7.tar.bz2 +a960bd5c78b2c919d8ea316e9d32d20b wine-0.9.7-fe.tar.bz2 From d18811a4b5de51b01dd16604934b2c456572b078 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Thu, 9 Feb 2006 07:54:17 +0000 Subject: [PATCH 020/715] - forgot -n for new sources --- wine.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index b2a3c93..beeeba5 100644 --- a/wine.spec +++ b/wine.spec @@ -155,7 +155,7 @@ Header, include files and library definition files for developing applications with the Wine Windows(TM) emulation libraries. %prep -%setup -q +%setup -q -n %{name}-%{version}-fe %patch2 -p1 -b .generated autoconf From cdba9a3f3493f825081bfdb412f8b4a59f0c3008 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Thu, 16 Feb 2006 22:38:34 +0000 Subject: [PATCH 021/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 10 +++++++--- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/.cvsignore b/.cvsignore index e0274ba..46b10ef 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1,2 +1,2 @@ wine-fonts-20050524.tar.gz -wine-0.9.7-fe.tar.bz2 +wine-0.9.8-fe.tar.bz2 diff --git a/sources b/sources index 72e54a3..cee73f7 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ fb216b10993cb17501efff7afa812da1 wine-fonts-20050524.tar.gz -a960bd5c78b2c919d8ea316e9d32d20b wine-0.9.7-fe.tar.bz2 +8a3bc8c46a240a250cb2770147e37efb wine-0.9.8-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index beeeba5..a74978d 100644 --- a/wine.spec +++ b/wine.spec @@ -1,15 +1,15 @@ %define __global_cflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fno-stack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=pentium4 -fasynchronous-unwind-tables Name: wine -Version: 0.9.7 -Release: 3%{?dist} +Version: 0.9.8 +Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators License: LGPL URL: http://www.winehq.org/ # special fedora tarball without winemp3 stuff -Source0: wine-0.9.7-fe.tar.bz2 +Source0: wine-0.9.8-fe.tar.bz2 Source1: wine.init Source2: wine-fonts-20050524.tar.gz Source3: wine-README-Fedora @@ -692,6 +692,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Thu Feb 16 2006 Andreas Bierfert +0.9.8-1 +- version upgrade + * Thu Feb 09 2006 Andreas Bierfert 0.9.7-3 - fix up tarball From 5bedf8d1dcc87d027fe982896af57475f78ee5d1 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Tue, 21 Feb 2006 12:22:21 +0000 Subject: [PATCH 022/715] - fixup file sections --- wine.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index a74978d..95721a5 100644 --- a/wine.spec +++ b/wine.spec @@ -60,6 +60,8 @@ BuildRequires: cups-devel BuildRequires: libXmu-devel BuildRequires: libXi-devel +Requires: %{_bindir}/xmessage + Requires(post): /sbin/ldconfig, /sbin/chkconfig, /sbin/service, Requires(post): /usr/bin/update-desktop-database Requires(preun): /sbin/chkconfig, /sbin/service @@ -546,6 +548,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/wsock32.dll.so %{_libdir}/wine/wtsapi32.dll.so %{_libdir}/wine/security.dll.so +%{_libdir}/wine/sfc.dll.so %dir %{_datadir}/fonts/wine %{_datadir}/fonts/wine/wine_coure.fon %{_datadir}/fonts/wine/wine_couree.fon @@ -624,7 +627,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/winepath.exe.so %{_libdir}/wine/winhelp.exe.so %{_libdir}/wine/winver.exe.so -%{_libdir}/wine/winetest.exe.so +%{_libdir}/wine/wordpad.exe.so %{_datadir}/applications/fedora-wine-notepad.desktop %{_datadir}/applications/fedora-wine-winefile.desktop %{_datadir}/applications/fedora-wine-winemine.desktop From a3f595d916e6b05f74eebda2cacb5879d47e7bb3 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Fri, 3 Mar 2006 00:28:43 +0000 Subject: [PATCH 023/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 105 ++++++++++++++++++++++++++++------------------------- 3 files changed, 57 insertions(+), 52 deletions(-) diff --git a/.cvsignore b/.cvsignore index 46b10ef..ad96202 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1,2 +1,2 @@ wine-fonts-20050524.tar.gz -wine-0.9.8-fe.tar.bz2 +wine-0.9.9-fe.tar.bz2 diff --git a/sources b/sources index cee73f7..77b2d0e 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ fb216b10993cb17501efff7afa812da1 wine-fonts-20050524.tar.gz -8a3bc8c46a240a250cb2770147e37efb wine-0.9.8-fe.tar.bz2 +a6c02fe36f4391655f4836b74b37d27f wine-0.9.9-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index 95721a5..aa54118 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %define __global_cflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fno-stack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=pentium4 -fasynchronous-unwind-tables Name: wine -Version: 0.9.8 +Version: 0.9.9 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -9,7 +9,7 @@ Group: Applications/Emulators License: LGPL URL: http://www.winehq.org/ # special fedora tarball without winemp3 stuff -Source0: wine-0.9.8-fe.tar.bz2 +Source0: wine-0.9.9-fe.tar.bz2 Source1: wine.init Source2: wine-fonts-20050524.tar.gz Source3: wine-README-Fedora @@ -351,7 +351,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/atl.dll.so %{_libdir}/wine/avicap32.dll.so %{_libdir}/wine/avifil32.dll.so -%{_libdir}/wine/avifile.dll.so +%{_libdir}/wine/avifile.dll16 %{_libdir}/wine/aviinfo.exe.so %{_libdir}/wine/aviplay.exe.so %{_libdir}/wine/cabinet.dll.so @@ -361,27 +361,27 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/comcat.dll.so %{_libdir}/wine/comctl32.dll.so %{_libdir}/wine/comdlg32.dll.so -%{_libdir}/wine/comm.drv.so +%{_libdir}/wine/comm.drv16 %{_libdir}/wine/commdlg.dll.so -%{_libdir}/wine/compobj.dll.so +%{_libdir}/wine/compobj.dll16 %{_libdir}/wine/crtdll.dll.so %{_libdir}/wine/crypt32.dll.so %{_libdir}/wine/cryptdll.dll.so -%{_libdir}/wine/ctl3d.dll.so +%{_libdir}/wine/ctl3d.dll16 %{_libdir}/wine/ctl3d32.dll.so -%{_libdir}/wine/ctl3dv2.dll.so +%{_libdir}/wine/ctl3dv2.dll16 %{_libdir}/wine/d3dim.dll.so %{_libdir}/wine/d3drm.dll.so %{_libdir}/wine/d3dxof.dll.so %{_libdir}/wine/dbghelp.dll.so %{_libdir}/wine/dciman32.dll.so -%{_libdir}/wine/ddeml.dll.so +%{_libdir}/wine/ddeml.dll16 %{_libdir}/wine/ddraw.dll.so %{_libdir}/wine/devenum.dll.so %{_libdir}/wine/dinput.dll.so %{_libdir}/wine/dinput8.dll.so -%{_libdir}/wine/dispdib.dll.so -%{_libdir}/wine/display.drv.so +%{_libdir}/wine/dispdib.dll16 +%{_libdir}/wine/display.drv16 %{_libdir}/wine/dmband.dll.so %{_libdir}/wine/dmcompos.dll.so %{_libdir}/wine/dmime.dll.so @@ -399,7 +399,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/dswave.dll.so %{_libdir}/wine/dxdiagn.dll.so %{_libdir}/wine/eject.exe.so -%{_libdir}/wine/gdi.exe.so +%{_libdir}/wine/gdi.exe16 %{_libdir}/wine/gdi32.dll.so %{_libdir}/wine/hh.exe.so %{_libdir}/wine/hhctrl.ocx.so @@ -409,16 +409,16 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/ifsmgr.vxd.so %{_libdir}/wine/imaadp32.acm.so %{_libdir}/wine/imagehlp.dll.so -%{_libdir}/wine/imm.dll.so +%{_libdir}/wine/imm.dll16 %{_libdir}/wine/imm32.dll.so %{_libdir}/wine/iphlpapi.dll.so %{_libdir}/wine/itss.dll.so %{_libdir}/wine/joystick.drv.so %{_libdir}/wine/kernel32.dll.so -%{_libdir}/wine/keyboard.drv.so -%{_libdir}/wine/krnl386.exe.so +%{_libdir}/wine/keyboard.drv16 +%{_libdir}/wine/krnl386.exe16 %{_libdir}/wine/lz32.dll.so -%{_libdir}/wine/lzexpand.dll.so +%{_libdir}/wine/lzexpand.dll16 %{_libdir}/wine/mapi32.dll.so %{_libdir}/wine/mciavi32.dll.so %{_libdir}/wine/mcicda.dll.so @@ -427,15 +427,16 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/midimap.dll.so %{_libdir}/wine/mlang.dll.so %{_libdir}/wine/mmdevldr.vxd.so -%{_libdir}/wine/mmsystem.dll.so +%{_libdir}/wine/mmsystem.dll16 %{_libdir}/wine/monodebg.vxd.so -%{_libdir}/wine/mouse.drv.so +%{_libdir}/wine/mouse.drv16 %{_libdir}/wine/mpr.dll.so -%{_libdir}/wine/msacm.dll.so +%{_libdir}/wine/msacm.dll16 %{_libdir}/wine/msacm.drv.so %{_libdir}/wine/msacm32.dll.so %{_libdir}/wine/msadp32.acm.so %{_libdir}/wine/msdmo.dll.so +%{_libdir}/wine/msftedit.dll.so %{_libdir}/wine/msg711.acm.so %{_libdir}/wine/mshtml.dll.so %{_libdir}/wine/msi.dll.so @@ -449,7 +450,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/msvcrtd.dll.so %{_libdir}/wine/msvfw32.dll.so %{_libdir}/wine/msvidc32.dll.so -%{_libdir}/wine/msvideo.dll.so +%{_libdir}/wine/msvideo.dll16 %{_libdir}/wine/mswsock.dll.so %{_libdir}/wine/msxml3.dll.so %{_libdir}/wine/netapi32.dll.so @@ -458,26 +459,26 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/objsel.dll.so %{_libdir}/wine/odbc32.dll.so %{_libdir}/wine/odbccp32.dll.so -%{_libdir}/wine/ole2.dll.so -%{_libdir}/wine/ole2conv.dll.so -%{_libdir}/wine/ole2disp.dll.so -%{_libdir}/wine/ole2nls.dll.so -%{_libdir}/wine/ole2prox.dll.so -%{_libdir}/wine/ole2thk.dll.so +%{_libdir}/wine/ole2.dll16 +%{_libdir}/wine/ole2conv.dll16 +%{_libdir}/wine/ole2disp.dll16 +%{_libdir}/wine/ole2nls.dll16 +%{_libdir}/wine/ole2prox.dll16 +%{_libdir}/wine/ole2thk.dll16 %{_libdir}/wine/ole32.dll.so %{_libdir}/wine/oleacc.dll.so %{_libdir}/wine/oleaut32.dll.so -%{_libdir}/wine/olecli.dll.so +%{_libdir}/wine/olecli.dll16 %{_libdir}/wine/olecli32.dll.so %{_libdir}/wine/oledlg.dll.so %{_libdir}/wine/olepro32.dll.so -%{_libdir}/wine/olesvr.dll.so +%{_libdir}/wine/olesvr.dll16 %{_libdir}/wine/olesvr32.dll.so %{_libdir}/wine/powrprof.dll.so %{_libdir}/wine/psapi.dll.so %{_libdir}/wine/qcap.dll.so %{_libdir}/wine/quartz.dll.so -%{_libdir}/wine/rasapi16.dll.so +%{_libdir}/wine/rasapi16.dll16 %{_libdir}/wine/rasapi32.dll.so %{_libdir}/wine/riched20.dll.so %{_libdir}/wine/riched32.dll.so @@ -488,33 +489,33 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/sensapi.dll.so %{_libdir}/wine/serialui.dll.so %{_libdir}/wine/setupapi.dll.so -%{_libdir}/wine/setupx.dll.so +%{_libdir}/wine/setupx.dll16 %{_libdir}/wine/shdocvw.dll.so -%{_libdir}/wine/shell.dll.so +%{_libdir}/wine/shell.dll16 %{_libdir}/wine/shell32.dll.so %{_libdir}/wine/shfolder.dll.so %{_libdir}/wine/shlwapi.dll.so %{_libdir}/wine/snmpapi.dll.so -%{_libdir}/wine/sound.drv.so +%{_libdir}/wine/sound.drv16 %{_libdir}/wine/stdole2.tlb.so %{_libdir}/wine/stdole32.tlb.so %{_libdir}/wine/sti.dll.so -%{_libdir}/wine/storage.dll.so -%{_libdir}/wine/stress.dll.so -%{_libdir}/wine/system.drv.so +%{_libdir}/wine/storage.dll16 +%{_libdir}/wine/stress.dll16 +%{_libdir}/wine/system.drv16 %{_libdir}/wine/tapi32.dll.so -%{_libdir}/wine/toolhelp.dll.so -%{_libdir}/wine/typelib.dll.so +%{_libdir}/wine/toolhelp.dll16 +%{_libdir}/wine/typelib.dll16 %{_libdir}/wine/unicows.dll.so %{_libdir}/wine/url.dll.so %{_libdir}/wine/urlmon.dll.so -%{_libdir}/wine/user.exe.so +%{_libdir}/wine/user.exe16 %{_libdir}/wine/user32.dll.so %{_libdir}/wine/usp10.dll.so %{_libdir}/wine/uxtheme.dll.so %{_libdir}/wine/vdhcp.vxd.so %{_libdir}/wine/vdmdbg.dll.so -%{_libdir}/wine/ver.dll.so +%{_libdir}/wine/ver.dll16 %{_libdir}/wine/version.dll.so %{_libdir}/wine/vmm.vxd.so %{_libdir}/wine/vnbt.vxd.so @@ -522,28 +523,28 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/vtdapi.vxd.so %{_libdir}/wine/vwin32.vxd.so %{_libdir}/wine/w32skrnl.dll.so -%{_libdir}/wine/w32sys.dll.so -%{_libdir}/wine/win32s16.dll.so -%{_libdir}/wine/win87em.dll.so -%{_libdir}/wine/winaspi.dll.so -%{_libdir}/wine/windebug.dll.so +%{_libdir}/wine/w32sys.dll16 +%{_libdir}/wine/win32s16.dll16 +%{_libdir}/wine/win87em.dll16 +%{_libdir}/wine/winaspi.dll16 +%{_libdir}/wine/windebug.dll16 %{_libdir}/wine/wineaudioio.drv.so %{_libdir}/wine/winedos.dll.so %{_libdir}/wine/wineoss.drv.so %{_libdir}/wine/winex11.drv.so -%{_libdir}/wine/wing.dll.so +%{_libdir}/wine/wing.dll16 %{_libdir}/wine/wininet.dll.so %{_libdir}/wine/winmm.dll.so -%{_libdir}/wine/winnls.dll.so +%{_libdir}/wine/winnls.dll16 %{_libdir}/wine/winnls32.dll.so -%{_libdir}/wine/winsock.dll.so +%{_libdir}/wine/winsock.dll16 %{_libdir}/wine/winspool.drv.so -%{_libdir}/wine/wintab.dll.so +%{_libdir}/wine/wintab.dll16 %{_libdir}/wine/wintab32.dll.so %{_libdir}/wine/wintrust.dll.so %{_libdir}/wine/wnaspi32.dll.so %{_libdir}/wine/wow32.dll.so -%{_libdir}/wine/wprocs.dll.so +%{_libdir}/wine/wprocs.dll16 %{_libdir}/wine/ws2_32.dll.so %{_libdir}/wine/wsock32.dll.so %{_libdir}/wine/wtsapi32.dll.so @@ -593,7 +594,7 @@ update-desktop-database &>/dev/null || : %{_datadir}/fonts/wine/vgasyst.fon %{_libdir}/wine/winealsa.drv.so %{_libdir}/wine/wineps.drv.so -%{_libdir}/wine/wineps16.drv.so +%{_libdir}/wine/wineps16.drv16 %{_libdir}/wine/d3d8.dll.so %{_libdir}/wine/d3d9.dll.so %{_libdir}/wine/d3dx8.dll.so @@ -659,7 +660,7 @@ update-desktop-database &>/dev/null || : %files twain %defattr(-,root,root,-) -%{_libdir}/wine/twain.dll.so +%{_libdir}/wine/twain.dll16 %{_libdir}/wine/twain_32.dll.so %files capi @@ -695,6 +696,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Fri Mar 03 2006 Andreas Bierfert +0.9.9-1 +- version upgrade + * Thu Feb 16 2006 Andreas Bierfert 0.9.8-1 - version upgrade From 65c60772b95c1f291eb642ca9f68b89bde7a60f3 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Fri, 3 Mar 2006 07:36:29 +0000 Subject: [PATCH 024/715] - fix another dll --- wine.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index aa54118..e8a2c38 100644 --- a/wine.spec +++ b/wine.spec @@ -362,7 +362,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/comctl32.dll.so %{_libdir}/wine/comdlg32.dll.so %{_libdir}/wine/comm.drv16 -%{_libdir}/wine/commdlg.dll.so +%{_libdir}/wine/commdlg.dll16 %{_libdir}/wine/compobj.dll16 %{_libdir}/wine/crtdll.dll.so %{_libdir}/wine/crypt32.dll.so From 0748b33dfe0796c45364ff150bd28f6498e6e2bb Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Wed, 15 Mar 2006 21:59:45 +0000 Subject: [PATCH 025/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.cvsignore b/.cvsignore index ad96202..d4a2629 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1,2 +1,2 @@ wine-fonts-20050524.tar.gz -wine-0.9.9-fe.tar.bz2 +wine-0.9.10-fe.tar.bz2 diff --git a/sources b/sources index 77b2d0e..56cc20b 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ fb216b10993cb17501efff7afa812da1 wine-fonts-20050524.tar.gz -a6c02fe36f4391655f4836b74b37d27f wine-0.9.9-fe.tar.bz2 +054e71983834d777be3271f63f8484d6 wine-0.9.10-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index e8a2c38..486fe62 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %define __global_cflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fno-stack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=pentium4 -fasynchronous-unwind-tables Name: wine -Version: 0.9.9 +Version: 0.9.10 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -9,7 +9,7 @@ Group: Applications/Emulators License: LGPL URL: http://www.winehq.org/ # special fedora tarball without winemp3 stuff -Source0: wine-0.9.9-fe.tar.bz2 +Source0: wine-0.9.10-fe.tar.bz2 Source1: wine.init Source2: wine-fonts-20050524.tar.gz Source3: wine-README-Fedora From bf8db91a636f359c045eb2659d56b6805fe13169 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Fri, 17 Mar 2006 13:25:00 +0000 Subject: [PATCH 026/715] - version upgrade - drop ancient fonts --- .cvsignore | 1 - sources | 1 - wine-20050524-generated.patch | 27 ----------------- wine.spec | 56 ++++------------------------------- 4 files changed, 6 insertions(+), 79 deletions(-) delete mode 100644 wine-20050524-generated.patch diff --git a/.cvsignore b/.cvsignore index d4a2629..24a0686 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1,2 +1 @@ -wine-fonts-20050524.tar.gz wine-0.9.10-fe.tar.bz2 diff --git a/sources b/sources index 56cc20b..496fe7a 100644 --- a/sources +++ b/sources @@ -1,2 +1 @@ -fb216b10993cb17501efff7afa812da1 wine-fonts-20050524.tar.gz 054e71983834d777be3271f63f8484d6 wine-0.9.10-fe.tar.bz2 diff --git a/wine-20050524-generated.patch b/wine-20050524-generated.patch deleted file mode 100644 index 06de588..0000000 --- a/wine-20050524-generated.patch +++ /dev/null @@ -1,27 +0,0 @@ -Index: wine/tools/wineprefixcreate.in -=================================================================== -RCS file: /home/wine/wine/tools/wineprefixcreate.in,v -retrieving revision 1.10 -diff -u -r1.10 wineprefixcreate.in ---- wine/tools/wineprefixcreate.in 19 May 2005 11:12:34 -0000 1.10 -+++ wine/tools/wineprefixcreate.in 29 May 2005 00:00:00 -0000 -@@ -38,6 +38,7 @@ - - dlldir="@dlldir@" - datadir="@datadir@/wine" -+fontdir="@datadir@/fonts/wine" - - do_wait=0 - quiet=0 -@@ -175,6 +176,11 @@ - link_app winhelp "$CROOT/windows/winhelp.exe" - link_app winhelp "$CROOT/windows/winhlp32.exe" - link_app winebrowser "$CROOT/windows/winebrowser.exe" -+ -+# Copy the generated fonts -+ -+cp $fontdir/*.ttf "$CROOT/windows/fonts" -+cp $fontdir/*.fon "$CROOT/windows/fonts" - - # Copy the .inf script and run it - diff --git a/wine.spec b/wine.spec index 486fe62..ddacc30 100644 --- a/wine.spec +++ b/wine.spec @@ -11,7 +11,6 @@ URL: http://www.winehq.org/ # special fedora tarball without winemp3 stuff Source0: wine-0.9.10-fe.tar.bz2 Source1: wine.init -Source2: wine-fonts-20050524.tar.gz Source3: wine-README-Fedora Source4: wine-32.conf Source100: wine-notepad.desktop @@ -21,7 +20,6 @@ Source103: wine-winecfg.desktop Source104: wine-winefile.desktop Source105: wine-winemine.desktop Source106: wine-winhelp.desktop -Patch2: wine-20050524-generated.patch Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -158,8 +156,6 @@ with the Wine Windows(TM) emulation libraries. %prep %setup -q -n %{name}-%{version}-fe -%patch2 -p1 -b .generated -autoconf %build export CFLAGS="$RPM_OPT_FLAGS" @@ -193,10 +189,6 @@ mkdir -p %{buildroot}%{_sysconfdir}/wine mkdir -p %{buildroot}%{_initrddir} install -p -c -m 755 %SOURCE1 %{buildroot}%{_initrddir}/wine -# Install Wine's fonts -mkdir -p %{buildroot}%{_datadir}/fonts/wine -tar xzf %SOURCE2 -C %{buildroot}%{_datadir}/fonts/wine - desktop-file-install \ --vendor=fedora \ --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ @@ -550,48 +542,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/wtsapi32.dll.so %{_libdir}/wine/security.dll.so %{_libdir}/wine/sfc.dll.so -%dir %{_datadir}/fonts/wine -%{_datadir}/fonts/wine/wine_coure.fon -%{_datadir}/fonts/wine/wine_couree.fon -%{_datadir}/fonts/wine/wine_courer.fon -%{_datadir}/fonts/wine/wine_marlett.ttf -%{_datadir}/fonts/wine/wine_sserife.fon -%{_datadir}/fonts/wine/wine_sserifee.fon -%{_datadir}/fonts/wine/wine_sserifer.fon -%{_datadir}/fonts/wine/wine_vgasys.fon -%{_datadir}/fonts/wine/wine_vgasyse.fon -%{_datadir}/fonts/wine/wine_vgasysr.fon -%{_datadir}/fonts/wine/coue1255.fon -%{_datadir}/fonts/wine/coue1256.fon -%{_datadir}/fonts/wine/coue1257.fon -%{_datadir}/fonts/wine/coure.fon -%{_datadir}/fonts/wine/couree.fon -%{_datadir}/fonts/wine/coureg.fon -%{_datadir}/fonts/wine/courer.fon -%{_datadir}/fonts/wine/couret.fon -%{_datadir}/fonts/wine/cvgasys.fon -%{_datadir}/fonts/wine/hvgasys.fon -%{_datadir}/fonts/wine/jvgasys.fon -%{_datadir}/fonts/wine/marlett.ttf -%{_datadir}/fonts/wine/ssee1255.fon -%{_datadir}/fonts/wine/ssee1256.fon -%{_datadir}/fonts/wine/ssee1257.fon -%{_datadir}/fonts/wine/ssee874.fon -%{_datadir}/fonts/wine/sserife.fon -%{_datadir}/fonts/wine/sserifee.fon -%{_datadir}/fonts/wine/sserifeg.fon -%{_datadir}/fonts/wine/sserifer.fon -%{_datadir}/fonts/wine/sserifet.fon -%{_datadir}/fonts/wine/svgasys.fon -%{_datadir}/fonts/wine/vgas1255.fon -%{_datadir}/fonts/wine/vgas1256.fon -%{_datadir}/fonts/wine/vgas1257.fon -%{_datadir}/fonts/wine/vgas874.fon -%{_datadir}/fonts/wine/vgasys.fon -%{_datadir}/fonts/wine/vgasyse.fon -%{_datadir}/fonts/wine/vgasysg.fon -%{_datadir}/fonts/wine/vgasysr.fon -%{_datadir}/fonts/wine/vgasyst.fon +%{_datadir}/wine/fonts/ %{_libdir}/wine/winealsa.drv.so %{_libdir}/wine/wineps.drv.so %{_libdir}/wine/wineps16.drv16 @@ -696,6 +647,11 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Thu Mar 16 2006 Andreas Bierfert +0.9.10-1 +- version upgrade +- drop ancient extra fonts + * Fri Mar 03 2006 Andreas Bierfert 0.9.9-1 - version upgrade From a9ff33aafcaba32aade31e3dddd06b41fad6b091 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Fri, 17 Mar 2006 13:29:08 +0000 Subject: [PATCH 027/715] - clean up BR --- wine.spec | 1 - 1 file changed, 1 deletion(-) diff --git a/wine.spec b/wine.spec index ddacc30..cd76aef 100644 --- a/wine.spec +++ b/wine.spec @@ -25,7 +25,6 @@ Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) ExclusiveArch: %{ix86} -BuildRequires: autoconf BuildRequires: bison BuildRequires: flex BuildRequires: alsa-lib-devel From a65a5b4fe7949154d0bea171885c5ba920bc7ae3 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 19 Mar 2006 23:47:51 +0000 Subject: [PATCH 028/715] - bump for x86_64 inclusion --- wine.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index cd76aef..2185c25 100644 --- a/wine.spec +++ b/wine.spec @@ -2,7 +2,7 @@ Name: wine Version: 0.9.10 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -646,6 +646,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Mon Mar 20 2006 Andreas Bierfert +0.9.10-2 +- bump for x86_64 tree inclusion \o/ + * Thu Mar 16 2006 Andreas Bierfert 0.9.10-1 - version upgrade From 1b8aa44bdd36e37c1cc3f9ecbe410dd9eebed356 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 3 Apr 2006 11:08:01 +0000 Subject: [PATCH 029/715] - version upgrade - fix #187546 --- .cvsignore | 2 +- sources | 2 +- wine-prefixfonts.patch | 12 ++++++++++++ wine.spec | 16 +++++++++++----- 4 files changed, 25 insertions(+), 7 deletions(-) create mode 100644 wine-prefixfonts.patch diff --git a/.cvsignore b/.cvsignore index 24a0686..611e9f1 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.10-fe.tar.bz2 +wine-0.9.11-fe.tar.bz2 diff --git a/sources b/sources index 496fe7a..af4bbb4 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -054e71983834d777be3271f63f8484d6 wine-0.9.10-fe.tar.bz2 +7e67d02051dfb3671990f40734aca89a wine-0.9.11-fe.tar.bz2 diff --git a/wine-prefixfonts.patch b/wine-prefixfonts.patch new file mode 100644 index 0000000..885c56a --- /dev/null +++ b/wine-prefixfonts.patch @@ -0,0 +1,12 @@ +--- tools/wineprefixcreate.in.orig 2006-04-03 10:04:18.000000000 +0200 ++++ tools/wineprefixcreate.in 2006-04-03 10:06:20.000000000 +0200 +@@ -170,6 +170,9 @@ + export WINEPREFIX + "${WINELOADER:-wine}" rundll32.exe setupapi.dll,InstallHinfSection DefaultInstall 128 wine.inf + ++# Copy the font files ++cp /usr/share/wine/fonts/* "$CROOT/windows/fonts/" ++ + # Wait for the wineserver to finish + + if [ $do_wait = 1 ] diff --git a/wine.spec b/wine.spec index 2185c25..03834e3 100644 --- a/wine.spec +++ b/wine.spec @@ -1,15 +1,16 @@ %define __global_cflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fno-stack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=pentium4 -fasynchronous-unwind-tables Name: wine -Version: 0.9.10 -Release: 2%{?dist} +Version: 0.9.11 +Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators License: LGPL URL: http://www.winehq.org/ # special fedora tarball without winemp3 stuff -Source0: wine-0.9.10-fe.tar.bz2 +Patch0: wine-prefixfonts.patch +Source0: wine-0.9.11-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -155,6 +156,7 @@ with the Wine Windows(TM) emulation libraries. %prep %setup -q -n %{name}-%{version}-fe +%patch0 %build export CFLAGS="$RPM_OPT_FLAGS" @@ -343,8 +345,6 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/avicap32.dll.so %{_libdir}/wine/avifil32.dll.so %{_libdir}/wine/avifile.dll16 -%{_libdir}/wine/aviinfo.exe.so -%{_libdir}/wine/aviplay.exe.so %{_libdir}/wine/cabinet.dll.so %{_libdir}/wine/cards.dll.so %{_libdir}/wine/cfgmgr32.dll.so @@ -530,6 +530,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/winnls32.dll.so %{_libdir}/wine/winsock.dll16 %{_libdir}/wine/winspool.drv.so +%{_libdir}/wine/spoolss.dll.so %{_libdir}/wine/wintab.dll16 %{_libdir}/wine/wintab32.dll.so %{_libdir}/wine/wintrust.dll.so @@ -646,6 +647,11 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Mon Apr 03 2006 Andreas Bierfert +0.9.11-1 +- version upgrade +- fix #187546 + * Mon Mar 20 2006 Andreas Bierfert 0.9.10-2 - bump for x86_64 tree inclusion \o/ From 1be90df0b42915b538a5af91c2eff17bc87ddc04 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Wed, 19 Apr 2006 22:20:07 +0000 Subject: [PATCH 030/715] - fix rpath issues (#188905) - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 15 ++++++++++++--- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/.cvsignore b/.cvsignore index 611e9f1..8372e15 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.11-fe.tar.bz2 +wine-0.9.12-fe.tar.bz2 diff --git a/sources b/sources index af4bbb4..1283be6 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -7e67d02051dfb3671990f40734aca89a wine-0.9.11-fe.tar.bz2 +1751147723999f1efd73d1aaba910360 wine-0.9.12-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index 03834e3..e016274 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %define __global_cflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fno-stack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=pentium4 -fasynchronous-unwind-tables Name: wine -Version: 0.9.11 +Version: 0.9.12 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -10,7 +10,8 @@ License: LGPL URL: http://www.winehq.org/ # special fedora tarball without winemp3 stuff Patch0: wine-prefixfonts.patch -Source0: wine-0.9.11-fe.tar.bz2 +Patch1: wine-rpath.patch +Source0: wine-0.9.12-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -24,7 +25,7 @@ Source106: wine-winhelp.desktop Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -ExclusiveArch: %{ix86} +ExclusiveArch: %{ix86} BuildRequires: bison BuildRequires: flex @@ -157,6 +158,7 @@ with the Wine Windows(TM) emulation libraries. %prep %setup -q -n %{name}-%{version}-fe %patch0 +%patch1 %build export CFLAGS="$RPM_OPT_FLAGS" @@ -553,6 +555,8 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/glut32.dll.so %{_libdir}/wine/opengl32.dll.so %{_libdir}/wine/wined3d.dll.so +%{_libdir}/wine/dnsapi.dll.so +%{_libdir}/wine/iexplore.exe.so %{_sysconfdir}/ld.so.conf.d/wine-32.conf %files tools @@ -647,6 +651,11 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Sat Apr 15 2006 Andreas Bierfert +0.9.12-1 +- fix rpath issues (#187429,#188905) +- version upgrade + * Mon Apr 03 2006 Andreas Bierfert 0.9.11-1 - version upgrade From 6e0fcb53b20bb08a47e5bc3754bc65657513eb9f Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Wed, 19 Apr 2006 22:21:55 +0000 Subject: [PATCH 031/715] - add patch --- wine-rpath.patch | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 wine-rpath.patch diff --git a/wine-rpath.patch b/wine-rpath.patch new file mode 100644 index 0000000..14c0e37 --- /dev/null +++ b/wine-rpath.patch @@ -0,0 +1,41 @@ +--- configure.orig 2006-04-15 00:02:02.000000000 +0200 ++++ configure 2006-04-15 00:03:26.000000000 +0200 +@@ -13375,7 +13375,7 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + ac_wine_try_cflags_saved=$CFLAGS +-CFLAGS="$CFLAGS -fPIC -Wl,--rpath,\$ORIGIN/../lib" ++CFLAGS="$CFLAGS -fPIC" + cat >conftest.$ac_ext <<_ACEOF + /* confdefs.h. */ + _ACEOF +@@ -13427,9 +13427,9 @@ + echo "${ECHO_T}$ac_cv_ld_rpath" >&6 + if test "$ac_cv_ld_rpath" = "yes" + then +- LDEXERPATH="-Wl,--rpath,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`" ++ LDEXERPATH="" + +- LDDLLRPATH="-Wl,--rpath,\\\$\$ORIGIN/\`\$(RELPATH) \$(dlldir) \$(libdir)\`" ++ LDDLLRPATH="" + + fi + +--- configure.ac.orig 2006-04-15 00:15:32.000000000 +0200 ++++ configure.ac 2006-04-15 00:04:51.000000000 +0200 +@@ -1052,15 +1052,6 @@ + AC_SUBST(LDEXECFLAGS,["-Wl,--export-dynamic"]) + fi + +- AC_CACHE_CHECK([whether the linker accepts --rpath], ac_cv_ld_rpath, +- [WINE_TRY_CFLAGS([-fPIC -Wl,--rpath,\$ORIGIN/../lib], +- ac_cv_ld_rpath="yes",ac_cv_ld_rpath="no")]) +- if test "$ac_cv_ld_rpath" = "yes" +- then +- AC_SUBST(LDEXERPATH,["-Wl,--rpath,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`"]) +- AC_SUBST(LDDLLRPATH,["-Wl,--rpath,\\\$\$ORIGIN/\`\$(RELPATH) \$(dlldir) \$(libdir)\`"]) +- fi +- + case $host_cpu in + *i[[3456789]]86*) + AC_CACHE_CHECK([whether we can relocate the executable to 0x7bf00000], ac_cv_ld_reloc_exec, From c2a862abd287358179b77f6a0237009a52d17566 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Tue, 16 May 2006 20:51:56 +0000 Subject: [PATCH 032/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 15 +++++++++++---- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/.cvsignore b/.cvsignore index 8372e15..5bc715a 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.12-fe.tar.bz2 +wine-0.9.13-fe.tar.bz2 diff --git a/sources b/sources index 1283be6..4358511 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -1751147723999f1efd73d1aaba910360 wine-0.9.12-fe.tar.bz2 +985f671f503684d2c95a9e4cb74ad453 wine-0.9.13-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index e016274..605b669 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %define __global_cflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fno-stack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=pentium4 -fasynchronous-unwind-tables Name: wine -Version: 0.9.12 +Version: 0.9.13 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -11,7 +11,7 @@ URL: http://www.winehq.org/ # special fedora tarball without winemp3 stuff Patch0: wine-prefixfonts.patch Patch1: wine-rpath.patch -Source0: wine-0.9.12-fe.tar.bz2 +Source0: wine-0.9.13-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -394,6 +394,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/eject.exe.so %{_libdir}/wine/gdi.exe16 %{_libdir}/wine/gdi32.dll.so +%{_libdir}/wine/gphoto2.ds.so %{_libdir}/wine/hh.exe.so %{_libdir}/wine/hhctrl.ocx.so %{_libdir}/wine/iccvid.dll.so @@ -416,7 +417,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/mciavi32.dll.so %{_libdir}/wine/mcicda.dll.so %{_libdir}/wine/mciseq.dll.so -%{_libdir}/wine/mciwave.drv.so +%{_libdir}/wine/mciwave.dll.so %{_libdir}/wine/midimap.dll.so %{_libdir}/wine/mlang.dll.so %{_libdir}/wine/mmdevldr.vxd.so @@ -424,9 +425,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/monodebg.vxd.so %{_libdir}/wine/mouse.drv16 %{_libdir}/wine/mpr.dll.so +%{_libdir}/wine/mprapi.dll.so %{_libdir}/wine/msacm.dll16 -%{_libdir}/wine/msacm.drv.so %{_libdir}/wine/msacm32.dll.so +%{_libdir}/wine/msacm32.drv.so %{_libdir}/wine/msadp32.acm.so %{_libdir}/wine/msdmo.dll.so %{_libdir}/wine/msftedit.dll.so @@ -478,6 +480,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/rpcrt4.dll.so %{_libdir}/wine/rsabase.dll.so %{_libdir}/wine/rsaenh.dll.so +%{_libdir}/wine/sane.ds.so %{_libdir}/wine/secur32.dll.so %{_libdir}/wine/sensapi.dll.so %{_libdir}/wine/serialui.dll.so @@ -651,6 +654,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Mon May 15 2006 Andreas Bierfert +0.9.13-1 +- version upgrade + * Sat Apr 15 2006 Andreas Bierfert 0.9.12-1 - fix rpath issues (#187429,#188905) From e2181559808647a8f0c624f0d3980bbf5a2244dc Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Fri, 19 May 2006 07:10:07 +0000 Subject: [PATCH 033/715] - enable hal/dbus support --- wine.spec | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/wine.spec b/wine.spec index 605b669..2acd1cb 100644 --- a/wine.spec +++ b/wine.spec @@ -2,7 +2,7 @@ Name: wine Version: 0.9.13 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -52,12 +52,13 @@ BuildRequires: libX11-devel BuildRequires: mesa-libGL-devel mesa-libGLU-devel BuildRequires: libXxf86dga-devel libXxf86vm-devel BuildRequires: libXrandr-devel libXrender-devel libXext-devel - BuildRequires: fontconfig-devel BuildRequires: giflib-devel BuildRequires: cups-devel BuildRequires: libXmu-devel BuildRequires: libXi-devel +# dbus/hal >= FC5 +BuildRequires: dbus-devel hal-devel Requires: %{_bindir}/xmessage @@ -654,6 +655,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Fri May 19 2006 Andreas Bierfert +0.9.13-2 +- enable dbus/hal support + * Mon May 15 2006 Andreas Bierfert 0.9.13-1 - version upgrade From 718298c2a750dad0a0823b75635b1ca6f4a2ba8d Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 5 Jun 2006 12:15:05 +0000 Subject: [PATCH 034/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 22 ++++++++++------------ 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/.cvsignore b/.cvsignore index 5bc715a..877908d 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.13-fe.tar.bz2 +wine-0.9.14-fe.tar.bz2 diff --git a/sources b/sources index 4358511..cea4822 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -985f671f503684d2c95a9e4cb74ad453 wine-0.9.13-fe.tar.bz2 +3427d6dffd46ecf21eccaf79fc26364e wine-0.9.14-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index 2acd1cb..c427f39 100644 --- a/wine.spec +++ b/wine.spec @@ -1,17 +1,15 @@ %define __global_cflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fno-stack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=pentium4 -fasynchronous-unwind-tables Name: wine -Version: 0.9.13 -Release: 2%{?dist} +Version: 0.9.14 +Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators License: LGPL URL: http://www.winehq.org/ # special fedora tarball without winemp3 stuff -Patch0: wine-prefixfonts.patch -Patch1: wine-rpath.patch -Source0: wine-0.9.13-fe.tar.bz2 +Source0: wine-0.9.14-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -22,6 +20,8 @@ Source103: wine-winecfg.desktop Source104: wine-winefile.desktop Source105: wine-winemine.desktop Source106: wine-winhelp.desktop +Patch0: wine-prefixfonts.patch +Patch1: wine-rpath.patch Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -179,13 +179,6 @@ rm -rf %{buildroot} dlldir=%{buildroot}%{_libdir}/wine \ LDCONFIG=/bin/true \ UPDATE_DESKTOP_DATABASE=/bin/true -%makeinstall \ - -C dlls/wineps \ - includedir=%{buildroot}%{_includedir}/wine \ - sysconfdir=%{buildroot}%{_sysconfdir}/wine \ - dlldir=%{buildroot}%{_libdir}/wine \ - LDCONFIG=/bin/true \ - UPDATE_DESKTOP_DATABASE=/bin/true mkdir -p %{buildroot}%{_sysconfdir}/wine @@ -452,6 +445,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/netapi32.dll.so %{_libdir}/wine/newdev.dll.so %{_libdir}/wine/ntdll.dll.so +%{_libdir}/wine/ntdsapi.dll.so %{_libdir}/wine/objsel.dll.so %{_libdir}/wine/odbc32.dll.so %{_libdir}/wine/odbccp32.dll.so @@ -655,6 +649,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Tue May 30 2006 Andreas Bierfert +0.9.14-1 +- version upgrade + * Fri May 19 2006 Andreas Bierfert 0.9.13-2 - enable dbus/hal support From 49fe674cdf0d9d1b2e0ddb2c6aa3ea2b2aa36547 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Fri, 9 Jun 2006 10:14:24 +0000 Subject: [PATCH 035/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 12 +++++++++--- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/.cvsignore b/.cvsignore index 877908d..4cd20f0 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.14-fe.tar.bz2 +wine-0.9.15-fe.tar.bz2 diff --git a/sources b/sources index cea4822..32c8a97 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -3427d6dffd46ecf21eccaf79fc26364e wine-0.9.14-fe.tar.bz2 +12d525c601068e0ee2b875b74b471c26 wine-0.9.15-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index c427f39..488b488 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %define __global_cflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fno-stack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=pentium4 -fasynchronous-unwind-tables Name: wine -Version: 0.9.14 +Version: 0.9.15 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -9,7 +9,7 @@ Group: Applications/Emulators License: LGPL URL: http://www.winehq.org/ # special fedora tarball without winemp3 stuff -Source0: wine-0.9.14-fe.tar.bz2 +Source0: wine-0.9.15-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -22,7 +22,6 @@ Source105: wine-winemine.desktop Source106: wine-winhelp.desktop Patch0: wine-prefixfonts.patch Patch1: wine-rpath.patch - Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) ExclusiveArch: %{ix86} @@ -390,6 +389,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/gdi32.dll.so %{_libdir}/wine/gphoto2.ds.so %{_libdir}/wine/hh.exe.so +%{_libdir}/wine/hlink.dll.so %{_libdir}/wine/hhctrl.ocx.so %{_libdir}/wine/iccvid.dll.so %{_libdir}/wine/icinfo.exe.so @@ -504,6 +504,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/user32.dll.so %{_libdir}/wine/usp10.dll.so %{_libdir}/wine/uxtheme.dll.so +%{_libdir}/wine/userenv.dll.so %{_libdir}/wine/vdhcp.vxd.so %{_libdir}/wine/vdmdbg.dll.so %{_libdir}/wine/ver.dll16 @@ -522,6 +523,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/wineaudioio.drv.so %{_libdir}/wine/winedos.dll.so %{_libdir}/wine/wineoss.drv.so +%{_libdir}/wine/winecoreaudio.drv.so %{_libdir}/wine/winex11.drv.so %{_libdir}/wine/wing.dll16 %{_libdir}/wine/wininet.dll.so @@ -649,6 +651,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Fri Jun 09 2006 Andreas Bierfert +0.9.15-1 +- version upgrade + * Tue May 30 2006 Andreas Bierfert 0.9.14-1 - version upgrade From f7b1312f1e8c18fbdaad440bb734da8aaf674f8d Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 1 Jul 2006 08:30:56 +0000 Subject: [PATCH 036/715] - version upgrade - rename wine to wine-core - add wine meta package --- .cvsignore | 2 +- sources | 2 +- wine.spec | 73 +++++++++++++++++++++++++++++++++++++++--------------- 3 files changed, 55 insertions(+), 22 deletions(-) diff --git a/.cvsignore b/.cvsignore index 4cd20f0..5676fab 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.15-fe.tar.bz2 +wine-0.9.16-fe.tar.bz2 diff --git a/sources b/sources index 32c8a97..c2d4eed 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -12d525c601068e0ee2b875b74b471c26 wine-0.9.15-fe.tar.bz2 +80cd252091082fbc9f0a57fc35e79877 wine-0.9.16-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index 488b488..3f4eb93 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %define __global_cflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fno-stack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=pentium4 -fasynchronous-unwind-tables Name: wine -Version: 0.9.15 +Version: 0.9.16 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -9,7 +9,7 @@ Group: Applications/Emulators License: LGPL URL: http://www.winehq.org/ # special fedora tarball without winemp3 stuff -Source0: wine-0.9.15-fe.tar.bz2 +Source0: wine-0.9.16-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -59,12 +59,16 @@ BuildRequires: libXi-devel # dbus/hal >= FC5 BuildRequires: dbus-devel hal-devel -Requires: %{_bindir}/xmessage +Requires: wine-core = %{version}-%{release} +Requires: wine-capi = %{version}-%{release} +Requires: wine-cms = %{version}-%{release} +Requires: wine-esd = %{version}-%{release} +Requires: wine-jack = %{version}-%{release} +Requires: wine-ldap = %{version}-%{release} +Requires: wine-nas = %{version}-%{release} +Requires: wine-tools = %{version}-%{release} +Requires: wine-twain = %{version}-%{release} -Requires(post): /sbin/ldconfig, /sbin/chkconfig, /sbin/service, -Requires(post): /usr/bin/update-desktop-database -Requires(preun): /sbin/chkconfig, /sbin/service -Requires(postun): /sbin/ldconfig, /usr/bin/update-desktop-database %description While Wine is usually thought of as a Windows(TM) emulator, the Wine @@ -74,10 +78,27 @@ which allows unmodified Windows 3.x/9x/NT binaries to run on x86 and x86_64 Unixes. Wine does not require MS Windows, but it can use native system .dll files if they are available. +In Fedora Extras wine is actually a meta-package which will install everything +you need for wine to work smoothly. If you don't want to install everything +take a look at the wine-* packages. + +%package core +Summary: Wine core package +Group: Applications/Emulators +Requires: %{_bindir}/xmessage +Requires(post): /sbin/ldconfig, /sbin/chkconfig, /sbin/service, +Requires(post): /usr/bin/update-desktop-database +Requires(preun): /sbin/chkconfig, /sbin/service +Requires(postun): /sbin/ldconfig, /usr/bin/update-desktop-database +Obsoletes: wine <= 0.9.15-1%{?dist} + +%description core +Wine core package includes the basic wine stuff needed by all other packages. + %package tools Summary: Additional wine tools Group: Applications/Emulators -Requires: %{name} = %{version}-%{release} +Requires: wine-core = %{version}-%{release} %description tools Additional wine tools @@ -85,7 +106,7 @@ Additional wine tools %package arts Summary: Arts sound support for wine Group: System Environment/Libraries -Requires: wine = %{version}-%{release} +Requires: wine-core = %{version}-%{release} %description arts Arts sound support for wine @@ -93,7 +114,7 @@ Arts sound support for wine %package esd Summary: ESD sound support for wine Group: System Environment/Libraries -Requires: wine = %{version}-%{release} +Requires: wine-core = %{version}-%{release} %description esd ESD sound support for wine @@ -101,7 +122,7 @@ ESD sound support for wine %package jack Summary: JACK sound support for wine Group: System Environment/Libraries -Requires: wine = %{version}-%{release} +Requires: wine-core = %{version}-%{release} %description jack JACK sound support for wine @@ -109,7 +130,7 @@ JACK sound support for wine %package nas Summary: NAS sound support for wine Group: System Environment/Libraries -Requires: wine = %{version}-%{release} +Requires: wine-core = %{version}-%{release} %description nas JACK sound support for wine @@ -117,7 +138,7 @@ JACK sound support for wine %package ldap Summary: LDAP support for wine Group: System Environment/Libraries -Requires: wine = %{version}-%{release} +Requires: wine-core = %{version}-%{release} %description ldap LDAP support for wine @@ -125,7 +146,7 @@ LDAP support for wine %package cms Summary: Color Managment for wine Group: System Environment/Libraries -Requires: wine = %{version}-%{release} +Requires: wine-core = %{version}-%{release} %description cms Color Management for wine @@ -133,7 +154,7 @@ Color Management for wine %package twain Summary: Twain support for wine Group: System Environment/Libraries -Requires: wine = %{version}-%{release} +Requires: wine-core = %{version}-%{release} %description twain Twain support for wine @@ -141,7 +162,7 @@ Twain support for wine %package capi Summary: ISDN support for wine Group: System Environment/Libraries -Requires: wine = %{version}-%{release} +Requires: wine-core = %{version}-%{release} %description capi ISDN support for wine @@ -149,7 +170,7 @@ ISDN support for wine %package devel Summary: Wine development environment Group: System Environment/Libraries -Requires: wine = %{version}-%{release} +Requires: wine-core = %{version}-%{release} %description devel Header, include files and library definition files for developing applications @@ -242,7 +263,7 @@ install -p -m644 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d/ %clean rm -rf %{buildroot} -%post +%post core /sbin/ldconfig update-desktop-database &>/dev/null || : if [ $1 = 1 ]; then @@ -251,13 +272,13 @@ if [ $1 = 1 ]; then /sbin/service wine start &>/dev/null || : fi -%preun +%preun core if [ $1 = 0 ]; then /sbin/service wine stop >/dev/null 2>&1 /sbin/chkconfig --del wine fi -%postun +%postun core /sbin/ldconfig update-desktop-database &>/dev/null || : @@ -287,6 +308,9 @@ update-desktop-database &>/dev/null || : %files %defattr(-,root,root,-) + +%files core +%defattr(-,root,root,-) %doc ANNOUNCE COPYING.LIB ChangeLog DEVELOPERS-HINTS LICENSE LICENSE.OLD %doc AUTHORS README-Fedora README VERSION %doc documentation/* @@ -304,6 +328,7 @@ update-desktop-database &>/dev/null || : %{_initrddir}/wine %{_libdir}/wine/expand.exe.so %{_libdir}/wine/msiexec.exe.so +%{_libdir}/wine/oleview.exe.so %{_libdir}/wine/regedit.exe.so %{_libdir}/wine/regsvr32.exe.so %{_libdir}/wine/rpcss.exe.so @@ -350,6 +375,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/comm.drv16 %{_libdir}/wine/commdlg.dll16 %{_libdir}/wine/compobj.dll16 +%{_libdir}/wine/compstui.dll.so %{_libdir}/wine/crtdll.dll.so %{_libdir}/wine/crypt32.dll.so %{_libdir}/wine/cryptdll.dll.so @@ -399,6 +425,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/imagehlp.dll.so %{_libdir}/wine/imm.dll16 %{_libdir}/wine/imm32.dll.so +%{_libdir}/wine/inseng.dll.so %{_libdir}/wine/iphlpapi.dll.so %{_libdir}/wine/itss.dll.so %{_libdir}/wine/joystick.drv.so @@ -651,6 +678,12 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Thu Jun 29 2006 Andreas Bierfert +0.9.16-1 +- version upgrade +- rename wine to wine-core +- add meta package wine + * Fri Jun 09 2006 Andreas Bierfert 0.9.15-1 - version upgrade From d1919cba327bf378f8fc17ac224b6ee80230d56d Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 10 Jul 2006 21:43:39 +0000 Subject: [PATCH 037/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 10 ++++++++-- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/.cvsignore b/.cvsignore index 5676fab..abb8255 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.16-fe.tar.bz2 +wine-0.9.17-fe.tar.bz2 diff --git a/sources b/sources index c2d4eed..cdc97fc 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -80cd252091082fbc9f0a57fc35e79877 wine-0.9.16-fe.tar.bz2 +4f82aaaa09d456401ec72cf36581ef76 wine-0.9.17-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index 3f4eb93..71d670a 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %define __global_cflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fno-stack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=pentium4 -fasynchronous-unwind-tables Name: wine -Version: 0.9.16 +Version: 0.9.17 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -9,7 +9,7 @@ Group: Applications/Emulators License: LGPL URL: http://www.winehq.org/ # special fedora tarball without winemp3 stuff -Source0: wine-0.9.16-fe.tar.bz2 +Source0: wine-0.9.17-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -379,6 +379,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/crtdll.dll.so %{_libdir}/wine/crypt32.dll.so %{_libdir}/wine/cryptdll.dll.so +%{_libdir}/wine/cryptnet.dll.so %{_libdir}/wine/ctl3d.dll16 %{_libdir}/wine/ctl3d32.dll.so %{_libdir}/wine/ctl3dv2.dll16 @@ -495,6 +496,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/psapi.dll.so %{_libdir}/wine/qcap.dll.so %{_libdir}/wine/quartz.dll.so +%{_libdir}/wine/query.dll.so %{_libdir}/wine/rasapi16.dll16 %{_libdir}/wine/rasapi32.dll.so %{_libdir}/wine/riched20.dll.so @@ -678,6 +680,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Mon Jul 10 2006 Andreas Bierfert +0.9.17-1 +- version upgrade + * Thu Jun 29 2006 Andreas Bierfert 0.9.16-1 - version upgrade From 6c7094d1404f9194fc261ea138152f80bcf04214 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 21 Aug 2006 07:40:56 +0000 Subject: [PATCH 038/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 17 +++++++++++++---- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/.cvsignore b/.cvsignore index abb8255..e579db3 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.17-fe.tar.bz2 +wine-0.9.19-fe.tar.bz2 diff --git a/sources b/sources index cdc97fc..b0e4c67 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -4f82aaaa09d456401ec72cf36581ef76 wine-0.9.17-fe.tar.bz2 +d903695182690587f44a251059532296 wine-0.9.19-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index 71d670a..141260b 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %define __global_cflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fno-stack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=pentium4 -fasynchronous-unwind-tables Name: wine -Version: 0.9.17 +Version: 0.9.19 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -9,7 +9,7 @@ Group: Applications/Emulators License: LGPL URL: http://www.winehq.org/ # special fedora tarball without winemp3 stuff -Source0: wine-0.9.17-fe.tar.bz2 +Source0: wine-0.9.19-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -354,8 +354,7 @@ update-desktop-database &>/dev/null || : %{_bindir}/winelauncher %{_bindir}/wineserver %{_mandir}/man1/wineserver.1* -%{_libdir}/libwine.so.1 -%{_libdir}/libwine_unicode.so.1 +%{_libdir}/libwine.so.1.0 %dir %{_libdir}/wine %{_libdir}/wine/activeds.dll.so %{_libdir}/wine/advapi32.dll.so @@ -415,6 +414,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/gdi.exe16 %{_libdir}/wine/gdi32.dll.so %{_libdir}/wine/gphoto2.ds.so +%{_libdir}/wine/hid.dll.so %{_libdir}/wine/hh.exe.so %{_libdir}/wine/hlink.dll.so %{_libdir}/wine/hhctrl.ocx.so @@ -426,6 +426,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/imagehlp.dll.so %{_libdir}/wine/imm.dll16 %{_libdir}/wine/imm32.dll.so +%{_libdir}/wine/infosoft.dll.so %{_libdir}/wine/inseng.dll.so %{_libdir}/wine/iphlpapi.dll.so %{_libdir}/wine/itss.dll.so @@ -680,6 +681,14 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Mon Aug 21 2006 Andreas Bierfert +0.9.19-1 +- version upgrade + +* Thu Aug 03 2006 Andreas Bierfert +0.9.18-1 +- version upgrade + * Mon Jul 10 2006 Andreas Bierfert 0.9.17-1 - version upgrade From 66f6bb23419f1af1a06a7edf0c2d039e667691f1 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Tue, 22 Aug 2006 09:19:58 +0000 Subject: [PATCH 039/715] - fix filesection --- wine.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 141260b..569f9fd 100644 --- a/wine.spec +++ b/wine.spec @@ -354,7 +354,7 @@ update-desktop-database &>/dev/null || : %{_bindir}/winelauncher %{_bindir}/wineserver %{_mandir}/man1/wineserver.1* -%{_libdir}/libwine.so.1.0 +%{_libdir}/libwine.so.1* %dir %{_libdir}/wine %{_libdir}/wine/activeds.dll.so %{_libdir}/wine/advapi32.dll.so From 79f7fd27546b7a00bd6d50be46512d28854514da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Sun, 27 Aug 2006 21:14:30 +0000 Subject: [PATCH 040/715] http://fedoraproject.org/wiki/Extras/Schedule/FC6MassRebuild --- needs.rebuild | 1 + 1 file changed, 1 insertion(+) create mode 100644 needs.rebuild diff --git a/needs.rebuild b/needs.rebuild new file mode 100644 index 0000000..815fd29 --- /dev/null +++ b/needs.rebuild @@ -0,0 +1 @@ +http://fedoraproject.org/wiki/Extras/Schedule/FC6MassRebuild From c07277c6dce56529426a35b68e1b834be2ec2c0e Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Wed, 30 Aug 2006 09:26:04 +0000 Subject: [PATCH 041/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine-rpath.patch | 54 ++++++++++++++++++++++-------------------------- wine.spec | 12 ++++++++--- 4 files changed, 36 insertions(+), 34 deletions(-) diff --git a/.cvsignore b/.cvsignore index e579db3..3ed4014 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.19-fe.tar.bz2 +wine-0.9.20-fe.tar.bz2 diff --git a/sources b/sources index b0e4c67..86bae22 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -d903695182690587f44a251059532296 wine-0.9.19-fe.tar.bz2 +8128be3146ab2586ebdc7469792aba62 wine-0.9.20-fe.tar.bz2 diff --git a/wine-rpath.patch b/wine-rpath.patch index 14c0e37..a607ada 100644 --- a/wine-rpath.patch +++ b/wine-rpath.patch @@ -1,6 +1,6 @@ ---- configure.orig 2006-04-15 00:02:02.000000000 +0200 -+++ configure 2006-04-15 00:03:26.000000000 +0200 -@@ -13375,7 +13375,7 @@ +--- configure.orig 2006-08-28 06:44:28.000000000 +0200 ++++ configure 2006-08-28 06:46:41.000000000 +0200 +@@ -15903,7 +15903,7 @@ echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_wine_try_cflags_saved=$CFLAGS @@ -9,33 +9,29 @@ cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF -@@ -13427,9 +13427,9 @@ - echo "${ECHO_T}$ac_cv_ld_rpath" >&6 - if test "$ac_cv_ld_rpath" = "yes" - then -- LDEXERPATH="-Wl,--rpath,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`" -+ LDEXERPATH="" +@@ -15969,7 +15969,7 @@ + echo "${ECHO_T}$ac_cv_ld_rpath" >&6; } + if test "$ac_cv_ld_rpath" = "yes" + then +- LDEXERPATH="-Wl,--rpath,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`" ++ LDEXERPATH="" -- LDDLLRPATH="-Wl,--rpath,\\\$\$ORIGIN/\`\$(RELPATH) \$(dlldir) \$(libdir)\`" -+ LDDLLRPATH="" + fi - fi +--- configure.ac.orig 2006-08-28 06:43:35.000000000 +0200 ++++ configure.ac 2006-08-28 06:44:22.000000000 +0200 +@@ -1121,14 +1121,6 @@ + AC_SUBST(LDEXECFLAGS,["-Wl,--export-dynamic"]) + fi ---- configure.ac.orig 2006-04-15 00:15:32.000000000 +0200 -+++ configure.ac 2006-04-15 00:04:51.000000000 +0200 -@@ -1052,15 +1052,6 @@ - AC_SUBST(LDEXECFLAGS,["-Wl,--export-dynamic"]) - fi - -- AC_CACHE_CHECK([whether the linker accepts --rpath], ac_cv_ld_rpath, -- [WINE_TRY_CFLAGS([-fPIC -Wl,--rpath,\$ORIGIN/../lib], -- ac_cv_ld_rpath="yes",ac_cv_ld_rpath="no")]) -- if test "$ac_cv_ld_rpath" = "yes" -- then -- AC_SUBST(LDEXERPATH,["-Wl,--rpath,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`"]) -- AC_SUBST(LDDLLRPATH,["-Wl,--rpath,\\\$\$ORIGIN/\`\$(RELPATH) \$(dlldir) \$(libdir)\`"]) -- fi +- AC_CACHE_CHECK([whether the linker accepts --rpath], ac_cv_ld_rpath, +- [WINE_TRY_CFLAGS([-fPIC -Wl,--rpath,\$ORIGIN/../lib], +- ac_cv_ld_rpath="yes",ac_cv_ld_rpath="no")]) +- if test "$ac_cv_ld_rpath" = "yes" +- then +- AC_SUBST(LDEXERPATH,["-Wl,--rpath,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`"]) +- fi - - case $host_cpu in - *i[[3456789]]86*) - AC_CACHE_CHECK([whether we can relocate the executable to 0x7bf00000], ac_cv_ld_reloc_exec, + case $host_cpu in + *i[[3456789]]86* | x86_64) + AC_CACHE_CHECK([whether we can relocate the executable to 0x7bf00000], ac_cv_ld_reloc_exec, diff --git a/wine.spec b/wine.spec index 569f9fd..a57e5f7 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %define __global_cflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fno-stack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=pentium4 -fasynchronous-unwind-tables Name: wine -Version: 0.9.19 +Version: 0.9.20 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -9,7 +9,7 @@ Group: Applications/Emulators License: LGPL URL: http://www.winehq.org/ # special fedora tarball without winemp3 stuff -Source0: wine-0.9.19-fe.tar.bz2 +Source0: wine-0.9.20-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -311,7 +311,7 @@ update-desktop-database &>/dev/null || : %files core %defattr(-,root,root,-) -%doc ANNOUNCE COPYING.LIB ChangeLog DEVELOPERS-HINTS LICENSE LICENSE.OLD +%doc ANNOUNCE COPYING.LIB ChangeLog LICENSE LICENSE.OLD %doc AUTHORS README-Fedora README VERSION %doc documentation/* %{_bindir}/msiexec @@ -322,6 +322,7 @@ update-desktop-database &>/dev/null || : %{_bindir}/winebrowser %{_bindir}/wineconsole %{_bindir}/wineprefixcreate +%{_mandir}/man1/wineprefixcreate.1* %{_bindir}/wineshelllink %{_bindir}/winecfg %{_bindir}/uninstaller @@ -495,6 +496,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/olesvr32.dll.so %{_libdir}/wine/powrprof.dll.so %{_libdir}/wine/psapi.dll.so +%{_libdir}/wine/pstorec.dll.so %{_libdir}/wine/qcap.dll.so %{_libdir}/wine/quartz.dll.so %{_libdir}/wine/query.dll.so @@ -681,6 +683,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Mon Aug 28 2006 Andreas Bierfert +0.9.20-1 +- version upgrade + * Mon Aug 21 2006 Andreas Bierfert 0.9.19-1 - version upgrade From ae0d4edcc384e02594acb267ffd28a4ecb5d7758 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 17 Sep 2006 14:15:07 +0000 Subject: [PATCH 042/715] - version upgrade - own datadir/wine (#206403) - do not include huge changelogs (#204302) --- .cvsignore | 2 +- sources | 2 +- wine-rpath.patch | 51 ++++++++++++++++++++++++++---------------------- wine.spec | 19 +++++++++++++----- 4 files changed, 44 insertions(+), 30 deletions(-) diff --git a/.cvsignore b/.cvsignore index 3ed4014..c204368 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.20-fe.tar.bz2 +wine-0.9.21-fe.tar.bz2 diff --git a/sources b/sources index 86bae22..376be9a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -8128be3146ab2586ebdc7469792aba62 wine-0.9.20-fe.tar.bz2 +98232c907314f15b54d7f685ecfb5535 wine-0.9.21-fe.tar.bz2 diff --git a/wine-rpath.patch b/wine-rpath.patch index a607ada..c26b73c 100644 --- a/wine-rpath.patch +++ b/wine-rpath.patch @@ -1,6 +1,16 @@ ---- configure.orig 2006-08-28 06:44:28.000000000 +0200 -+++ configure 2006-08-28 06:46:41.000000000 +0200 -@@ -15903,7 +15903,7 @@ +--- configure.orig 2006-09-17 14:55:39.000000000 +0200 ++++ configure 2006-09-17 14:57:19.000000000 +0200 +@@ -15903,14 +15903,14 @@ + fi + + +- as_ac_var=`echo "ac_cv_cflags_-fPIC -Wl,--rpath,\$ORIGIN/../lib" | $as_tr_sh` +-{ echo "$as_me:$LINENO: checking whether the compiler supports -fPIC -Wl,--rpath,\$ORIGIN/../lib" >&5 +-echo $ECHO_N "checking whether the compiler supports -fPIC -Wl,--rpath,\$ORIGIN/../lib... $ECHO_C" >&6; } ++ as_ac_var=`echo "ac_cv_cflags_-fPIC" | $as_tr_sh` ++{ echo "$as_me:$LINENO: checking whether the compiler supports -fPIC" >&5 ++echo $ECHO_N "checking whether the compiler supports -fPIC$ECHO_C" >&6; } + if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_wine_try_cflags_saved=$CFLAGS @@ -9,29 +19,24 @@ cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF -@@ -15969,7 +15969,7 @@ - echo "${ECHO_T}$ac_cv_ld_rpath" >&6; } - if test "$ac_cv_ld_rpath" = "yes" - then -- LDEXERPATH="-Wl,--rpath,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`" -+ LDEXERPATH="" +@@ -15976,7 +15976,7 @@ + { echo "$as_me:$LINENO: result: $ac_res" >&5 + echo "${ECHO_T}$ac_res" >&6; } + if test `eval echo '${'$as_ac_var'}'` = yes; then +- LIBWINE_LDFLAGS="-Wl,--rpath,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`" ++ LIBWINE_LDFLAGS="" + fi - fi ---- configure.ac.orig 2006-08-28 06:43:35.000000000 +0200 -+++ configure.ac 2006-08-28 06:44:22.000000000 +0200 -@@ -1121,14 +1121,6 @@ - AC_SUBST(LDEXECFLAGS,["-Wl,--export-dynamic"]) - fi +--- configure.ac.orig 2006-09-17 14:57:25.000000000 +0200 ++++ configure.ac 2006-09-17 14:58:03.000000000 +0200 +@@ -1058,9 +1058,6 @@ + WINE_TRY_CFLAGS([-fPIC -Wl,--export-dynamic], + [AC_SUBST(LDEXECFLAGS,["-Wl,--export-dynamic"])]) -- AC_CACHE_CHECK([whether the linker accepts --rpath], ac_cv_ld_rpath, -- [WINE_TRY_CFLAGS([-fPIC -Wl,--rpath,\$ORIGIN/../lib], -- ac_cv_ld_rpath="yes",ac_cv_ld_rpath="no")]) -- if test "$ac_cv_ld_rpath" = "yes" -- then -- AC_SUBST(LDEXERPATH,["-Wl,--rpath,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`"]) -- fi +- WINE_TRY_CFLAGS([-fPIC -Wl,--rpath,\$ORIGIN/../lib], +- [LIBWINE_LDFLAGS="-Wl,--rpath,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`"]) - case $host_cpu in *i[[3456789]]86* | x86_64) - AC_CACHE_CHECK([whether we can relocate the executable to 0x7bf00000], ac_cv_ld_reloc_exec, + WINE_TRY_CFLAGS([-Wl,--section-start,.interp=0x7bf00400], diff --git a/wine.spec b/wine.spec index a57e5f7..6d482c0 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %define __global_cflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fno-stack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=pentium4 -fasynchronous-unwind-tables Name: wine -Version: 0.9.20 +Version: 0.9.21 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -9,7 +9,7 @@ Group: Applications/Emulators License: LGPL URL: http://www.winehq.org/ # special fedora tarball without winemp3 stuff -Source0: wine-0.9.20-fe.tar.bz2 +Source0: wine-0.9.21-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -313,7 +313,8 @@ update-desktop-database &>/dev/null || : %defattr(-,root,root,-) %doc ANNOUNCE COPYING.LIB ChangeLog LICENSE LICENSE.OLD %doc AUTHORS README-Fedora README VERSION -%doc documentation/* +# do not include huge changelogs .OLD .ALPHA (#204302) +%doc documentation/README.* %{_bindir}/msiexec %{_bindir}/regedit %{_bindir}/regsvr32 @@ -342,6 +343,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/winevdm.exe.so %{_libdir}/wine/winecfg.exe.so %{_libdir}/wine/uninstaller.exe.so +%dir %{_datadir}/wine %{_datadir}/applications/fedora-wine.desktop %{_datadir}/applications/fedora-wine-regedit.desktop %{_datadir}/applications/fedora-wine-uninstaller.desktop @@ -435,6 +437,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/kernel32.dll.so %{_libdir}/wine/keyboard.drv16 %{_libdir}/wine/krnl386.exe16 +%{_libdir}/wine/localspl.dll.so %{_libdir}/wine/lz32.dll.so %{_libdir}/wine/lzexpand.dll16 %{_libdir}/wine/mapi32.dll.so @@ -525,6 +528,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/sti.dll.so %{_libdir}/wine/storage.dll16 %{_libdir}/wine/stress.dll16 +%{_libdir}/wine/svrapi.dll.so %{_libdir}/wine/system.drv16 %{_libdir}/wine/tapi32.dll.so %{_libdir}/wine/toolhelp.dll16 @@ -595,7 +599,6 @@ update-desktop-database &>/dev/null || : %defattr(-,root,root,-) %{_bindir}/notepad %{_bindir}/progman -%{_bindir}/wcmd %{_bindir}/winedbg %{_bindir}/winedump %{_bindir}/winefile @@ -605,10 +608,10 @@ update-desktop-database &>/dev/null || : %{_bindir}/winhelp %{_libdir}/wine/explorer.exe.so %{_libdir}/wine/control.exe.so +%{_libdir}/wine/cmd.exe.so %{_libdir}/wine/notepad.exe.so %{_libdir}/wine/progman.exe.so %{_libdir}/wine/taskmgr.exe.so -%{_libdir}/wine/wcmd.exe.so %{_libdir}/wine/winedbg.exe.so %{_libdir}/wine/winefile.exe.so %{_libdir}/wine/winemine.exe.so @@ -683,6 +686,12 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Sun Sep 17 2006 Andreas Bierfert +0.9.21-1 +- version upgrade +- own datadir/wine (#206403) +- do not include huge changelogs (#204302) + * Mon Aug 28 2006 Andreas Bierfert 0.9.20-1 - version upgrade From 2122c28fdf3e393552246493d823836bd5a12991 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Mon, 18 Sep 2006 18:55:13 +0000 Subject: [PATCH 043/715] Remove rebuild needed flag for maintained packages that were actually rebuilt. --- needs.rebuild | 1 - 1 file changed, 1 deletion(-) delete mode 100644 needs.rebuild diff --git a/needs.rebuild b/needs.rebuild deleted file mode 100644 index 815fd29..0000000 --- a/needs.rebuild +++ /dev/null @@ -1 +0,0 @@ -http://fedoraproject.org/wiki/Extras/Schedule/FC6MassRebuild From fab3a3b916a836ffc4eb4d3dedc609e1aa504667 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Tue, 3 Oct 2006 09:06:27 +0000 Subject: [PATCH 044/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 10 ++++++++-- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/.cvsignore b/.cvsignore index c204368..64ee131 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.21-fe.tar.bz2 +wine-0.9.22-fe.tar.bz2 diff --git a/sources b/sources index 376be9a..04dedfe 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -98232c907314f15b54d7f685ecfb5535 wine-0.9.21-fe.tar.bz2 +955338998d9fe4e0546212b97adbacd2 wine-0.9.22-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index 6d482c0..5548d02 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %define __global_cflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fno-stack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=pentium4 -fasynchronous-unwind-tables Name: wine -Version: 0.9.21 +Version: 0.9.22 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -9,7 +9,7 @@ Group: Applications/Emulators License: LGPL URL: http://www.winehq.org/ # special fedora tarball without winemp3 stuff -Source0: wine-0.9.21-fe.tar.bz2 +Source0: wine-0.9.22-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -371,6 +371,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/cards.dll.so %{_libdir}/wine/cfgmgr32.dll.so %{_libdir}/wine/clock.exe.so +%{_libdir}/wine/clusapi.dll.so %{_libdir}/wine/comcat.dll.so %{_libdir}/wine/comctl32.dll.so %{_libdir}/wine/comdlg32.dll.so @@ -475,6 +476,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/msvideo.dll16 %{_libdir}/wine/mswsock.dll.so %{_libdir}/wine/msxml3.dll.so +%{_libdir}/wine/nddeapi.dll.so %{_libdir}/wine/netapi32.dll.so %{_libdir}/wine/newdev.dll.so %{_libdir}/wine/ntdll.dll.so @@ -686,6 +688,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Sat Sep 30 2006 Andreas Bierfert +0.9.22-1 +- version upgrade + * Sun Sep 17 2006 Andreas Bierfert 0.9.21-1 - version upgrade From 556ddc5a04201fef935bb3364ed7b9d882fe960d Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Wed, 18 Oct 2006 13:22:51 +0000 Subject: [PATCH 045/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 10 ++++++++-- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/.cvsignore b/.cvsignore index 64ee131..fb48511 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.22-fe.tar.bz2 +wine-0.9.23-fe.tar.bz2 diff --git a/sources b/sources index 04dedfe..9db52cc 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -955338998d9fe4e0546212b97adbacd2 wine-0.9.22-fe.tar.bz2 +6dd92d3645048f66c5026a021ead0b32 wine-0.9.23-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index 5548d02..231a7f1 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %define __global_cflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fno-stack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=pentium4 -fasynchronous-unwind-tables Name: wine -Version: 0.9.22 +Version: 0.9.23 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -9,7 +9,7 @@ Group: Applications/Emulators License: LGPL URL: http://www.winehq.org/ # special fedora tarball without winemp3 stuff -Source0: wine-0.9.22-fe.tar.bz2 +Source0: wine-0.9.23-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -458,6 +458,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/msacm32.dll.so %{_libdir}/wine/msacm32.drv.so %{_libdir}/wine/msadp32.acm.so +%{_libdir}/wine/mscoree.dll.so %{_libdir}/wine/msdmo.dll.so %{_libdir}/wine/msftedit.dll.so %{_libdir}/wine/msg711.acm.so @@ -507,6 +508,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/query.dll.so %{_libdir}/wine/rasapi16.dll16 %{_libdir}/wine/rasapi32.dll.so +%{_libdir}/wine/resutils.dll.so %{_libdir}/wine/riched20.dll.so %{_libdir}/wine/riched32.dll.so %{_libdir}/wine/rpcrt4.dll.so @@ -688,6 +690,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Tue Oct 17 2006 Andreas Bierfert +0.9.23-1 +- version upgrade + * Sat Sep 30 2006 Andreas Bierfert 0.9.22-1 - version upgrade From 673beb325710d898625a6b833c686ac309a1ed27 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 28 Oct 2006 05:51:35 +0000 Subject: [PATCH 046/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 9 +++++++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/.cvsignore b/.cvsignore index fb48511..5d0a90d 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.23-fe.tar.bz2 +wine-0.9.24-fe.tar.bz2 diff --git a/sources b/sources index 9db52cc..e447940 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -6dd92d3645048f66c5026a021ead0b32 wine-0.9.23-fe.tar.bz2 +1e1e10bec1cac8f2021b7d7a3e3ef5bd wine-0.9.24-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index 231a7f1..f75f38f 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %define __global_cflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fno-stack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=pentium4 -fasynchronous-unwind-tables Name: wine -Version: 0.9.23 +Version: 0.9.24 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -9,7 +9,7 @@ Group: Applications/Emulators License: LGPL URL: http://www.winehq.org/ # special fedora tarball without winemp3 stuff -Source0: wine-0.9.23-fe.tar.bz2 +Source0: wine-0.9.24-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -51,6 +51,7 @@ BuildRequires: libX11-devel BuildRequires: mesa-libGL-devel mesa-libGLU-devel BuildRequires: libXxf86dga-devel libXxf86vm-devel BuildRequires: libXrandr-devel libXrender-devel libXext-devel +BuildRequires: libXinerama-devel BuildRequires: fontconfig-devel BuildRequires: giflib-devel BuildRequires: cups-devel @@ -690,6 +691,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Sat Oct 28 2006 Andreas Bierfert +0.9.24-1 +- version upgrade + * Tue Oct 17 2006 Andreas Bierfert 0.9.23-1 - version upgrade From f7093a56527beaee27ed96631fc91bc850d69d8d Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Thu, 16 Nov 2006 07:55:23 +0000 Subject: [PATCH 047/715] - version upgrade - fix init script (#213230) - fix twain subpackage content (#213396) - create wine submenu (#205024) --- .cvsignore | 2 +- sources | 2 +- wine-README-Fedora | 23 +++++++++++++++-------- wine-notepad.desktop | 2 +- wine-regedit.desktop | 2 +- wine-uninstaller.desktop | 2 +- wine-winecfg.desktop | 2 +- wine-winefile.desktop | 2 +- wine-winhelp.desktop | 2 +- wine.init | 13 +++++++++---- wine.spec | 13 ++++++++++--- 11 files changed, 42 insertions(+), 23 deletions(-) diff --git a/.cvsignore b/.cvsignore index 5d0a90d..54245f2 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.24-fe.tar.bz2 +wine-0.9.25-fe.tar.bz2 diff --git a/sources b/sources index e447940..b77ed79 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -1e1e10bec1cac8f2021b7d7a3e3ef5bd wine-0.9.24-fe.tar.bz2 +4d26cc14b481f2ab7026c23d83086753 wine-0.9.25-fe.tar.bz2 diff --git a/wine-README-Fedora b/wine-README-Fedora index 05bf675..f0e5205 100644 --- a/wine-README-Fedora +++ b/wine-README-Fedora @@ -1,15 +1,22 @@ -Wine directory structure used in Fedora Core Linux: -=================================================== +Wine directory structure used in Fedora Linux: +============================================== -\${HOME}/.wine/drive_c is the root directory (aka C: drive) wine looks for by -default. It is created with (empty) C:\windows and C:\windows\system +${HOME}/.wine/drive_c is the root directory (aka C: drive) wine looks for it +by default. It is created with (empty) C:\windows and C:\windows\system directories, needed to operate Wine without an existing Windows -installation, if it doesn't already exists. +installation, if it does not already exist. If you want to use Wine with an existing Windows installation that is mounted, for example, in /mnt/windows-c, change the symlink -\${HOME}/.wine/dosdevices/c: to point to /mnt/windows-c instead of the +${HOME}/.wine/dosdevices/c: to point to /mnt/windows-c instead of the defaults set by installation. -If you do this, you can safely remove \${HOME}/.wine/drive_c. -(Alternatively, just mount your Windows partition to \${HOME}/.wine/drive_c.) +If you do this, you can safely remove ${HOME}/.wine/drive_c. +(Alternatively, just mount your Windows partition to ${HOME}/.wine/drive_c.) + +Wine bugs: +========== +If you find a bug, please take the time to move your ${HOME}/.wine directory +someplace and try with a fresh version (like mv ${HOME}/.wine{,-save}). If the +bug is still there look trough https://bugzilla.redhat.com and see if the bug +is already reported. In case it is not please report it. diff --git a/wine-notepad.desktop b/wine-notepad.desktop index fb9d815..6f9591c 100644 --- a/wine-notepad.desktop +++ b/wine-notepad.desktop @@ -5,4 +5,4 @@ Exec=notepad Terminal=false Type=Application Encoding=UTF-8 -Categories=Application;System; +Categories=Application;Wine; diff --git a/wine-regedit.desktop b/wine-regedit.desktop index fd0c3c1..9a564da 100644 --- a/wine-regedit.desktop +++ b/wine-regedit.desktop @@ -5,4 +5,4 @@ Exec=regedit Terminal=false Type=Application Encoding=UTF-8 -Categories=Application;System; +Categories=Application;Wine; diff --git a/wine-uninstaller.desktop b/wine-uninstaller.desktop index f75c319..ff8bcd5 100644 --- a/wine-uninstaller.desktop +++ b/wine-uninstaller.desktop @@ -5,4 +5,4 @@ Exec=uninstaller Terminal=false Type=Application Encoding=UTF-8 -Categories=Application;System; +Categories=Application;Wine; diff --git a/wine-winecfg.desktop b/wine-winecfg.desktop index 3f27f5f..7650e93 100644 --- a/wine-winecfg.desktop +++ b/wine-winecfg.desktop @@ -5,4 +5,4 @@ Exec=winecfg Terminal=false Type=Application Encoding=UTF-8 -Categories=Application;System; +Categories=Application;Wine; diff --git a/wine-winefile.desktop b/wine-winefile.desktop index 8ec2d4b..21a89fb 100644 --- a/wine-winefile.desktop +++ b/wine-winefile.desktop @@ -5,4 +5,4 @@ Exec=winefile Terminal=false Type=Application Encoding=UTF-8 -Categories=Application;System; +Categories=Application;Wine; diff --git a/wine-winhelp.desktop b/wine-winhelp.desktop index 4f1ee4d..e964d69 100644 --- a/wine-winhelp.desktop +++ b/wine-winhelp.desktop @@ -5,4 +5,4 @@ Exec=winhelp Terminal=false Type=Application Encoding=UTF-8 -Categories=Application;System; +Categories=Application;Wine; diff --git a/wine.init b/wine.init index 905eeff..275805c 100644 --- a/wine.init +++ b/wine.init @@ -11,10 +11,15 @@ RETVAL=0 start() { - echo -n $"Registering binary handler for Windows applications" - /sbin/modprobe binfmt_misc &>/dev/null - echo ':windows:M::MZ::/usr/bin/wine:' >/proc/sys/fs/binfmt_misc/register || : - echo ':windowsPE:M::PE::/usr/bin/wine:' >/proc/sys/fs/binfmt_misc/register || : +# fix bug on changing runlevels #213230 + if [ -e /proc/sys/fs/binfmt_misc/windows ]; then + echo -n $"Binary handler for Windows applications already registered" + else + echo -n $"Registering binary handler for Windows applications" + /sbin/modprobe binfmt_misc &>/dev/null + echo ':windows:M::MZ::/usr/bin/wine:' >/proc/sys/fs/binfmt_misc/register || : + echo ':windowsPE:M::PE::/usr/bin/wine:' >/proc/sys/fs/binfmt_misc/register || : + fi } stop() { diff --git a/wine.spec b/wine.spec index f75f38f..47c1f1b 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %define __global_cflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fno-stack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=pentium4 -fasynchronous-unwind-tables Name: wine -Version: 0.9.24 +Version: 0.9.25 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -9,7 +9,7 @@ Group: Applications/Emulators License: LGPL URL: http://www.winehq.org/ # special fedora tarball without winemp3 stuff -Source0: wine-0.9.24-fe.tar.bz2 +Source0: wine-0.9.25-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -515,7 +515,6 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/rpcrt4.dll.so %{_libdir}/wine/rsabase.dll.so %{_libdir}/wine/rsaenh.dll.so -%{_libdir}/wine/sane.ds.so %{_libdir}/wine/secur32.dll.so %{_libdir}/wine/sensapi.dll.so %{_libdir}/wine/serialui.dll.so @@ -657,6 +656,7 @@ update-desktop-database &>/dev/null || : %defattr(-,root,root,-) %{_libdir}/wine/twain.dll16 %{_libdir}/wine/twain_32.dll.so +%{_libdir}/wine/sane.ds.so %files capi %defattr(-,root,root,-) @@ -691,6 +691,13 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Thu Nov 16 2006 Andreas Bierfert +0.9.25-1 +- version upgrade +- fix init script (#213230) +- fix twain subpackage content (#213396) +- create wine submenu (#205024) + * Sat Oct 28 2006 Andreas Bierfert 0.9.24-1 - version upgrade From 3f36f8d6e3770bbfa28875bac754b83059d5e0ce Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Tue, 19 Dec 2006 15:10:57 +0000 Subject: [PATCH 048/715] - version upgrade (#220130) - fix submenus (#216076) - fix BR (#217338) --- .cvsignore | 2 +- sources | 2 +- wine.directory | 5 +++++ wine.menu | 13 +++++++++++++ wine.spec | 33 +++++++++++++++++++++++++++++---- 5 files changed, 49 insertions(+), 6 deletions(-) create mode 100644 wine.directory create mode 100644 wine.menu diff --git a/.cvsignore b/.cvsignore index 54245f2..0706d61 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.25-fe.tar.bz2 +wine-0.9.27-fe.tar.bz2 diff --git a/sources b/sources index b77ed79..c684d5a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -4d26cc14b481f2ab7026c23d83086753 wine-0.9.25-fe.tar.bz2 +b5e45cfbdc969304192b2d689e1affa6 wine-0.9.27-fe.tar.bz2 diff --git a/wine.directory b/wine.directory new file mode 100644 index 0000000..634558e --- /dev/null +++ b/wine.directory @@ -0,0 +1,5 @@ +[Desktop Entry] +Encoding=UTF-8 +Type=Directory +Name=Wine +Icon=gnome-util.png diff --git a/wine.menu b/wine.menu new file mode 100644 index 0000000..2e5c4e0 --- /dev/null +++ b/wine.menu @@ -0,0 +1,13 @@ + + + Applications + + Wine + Wine.directory + + Wine + + + diff --git a/wine.spec b/wine.spec index 47c1f1b..a4a74c9 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %define __global_cflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fno-stack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=pentium4 -fasynchronous-unwind-tables Name: wine -Version: 0.9.25 +Version: 0.9.27 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -9,10 +9,11 @@ Group: Applications/Emulators License: LGPL URL: http://www.winehq.org/ # special fedora tarball without winemp3 stuff -Source0: wine-0.9.25-fe.tar.bz2 +Source0: wine-0.9.27-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf +# desktop stuff Source100: wine-notepad.desktop Source101: wine-regedit.desktop Source102: wine-uninstaller.desktop @@ -20,6 +21,9 @@ Source103: wine-winecfg.desktop Source104: wine-winefile.desktop Source105: wine-winemine.desktop Source106: wine-winhelp.desktop +# desktop dir +Source200: wine.menu +Source201: wine.directory Patch0: wine-prefixfonts.patch Patch1: wine-rpath.patch Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -46,6 +50,9 @@ BuildRequires: sane-backends-devel BuildRequires: zlib-devel BuildRequires: desktop-file-utils BuildRequires: fontforge +BuildRequires: gphoto2 gphoto2-devel +#217338 +BuildRequires: isdn4k-utils-devel # modular x BuildRequires: libX11-devel BuildRequires: mesa-libGL-devel mesa-libGLU-devel @@ -205,8 +212,18 @@ mkdir -p %{buildroot}%{_sysconfdir}/wine # Allow users to launch Windows programs by just clicking on the .exe file... mkdir -p %{buildroot}%{_initrddir} -install -p -c -m 755 %SOURCE1 %{buildroot}%{_initrddir}/wine +install -p -c -m 755 %{SOURCE1} %{buildroot}%{_initrddir}/wine +# add wine dir to desktop +mkdir -p %{buildroot}%{_sysconfdir}/xdg/menus/applications-merged +install -p -m 644 %{SOURCE200} \ +%{buildroot}%{_sysconfdir}/xdg/menus/applications-merged/wine.menu +mkdir -p %{buildroot}%{_datadir}/desktop-directories +install -p -m 644 %{SOURCE201} \ +%{buildroot}%{_datadir}/desktop-directories/wine.directory + + +# install desktop files desktop-file-install \ --vendor=fedora \ --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ @@ -349,6 +366,8 @@ update-desktop-database &>/dev/null || : %{_datadir}/applications/fedora-wine-regedit.desktop %{_datadir}/applications/fedora-wine-uninstaller.desktop %{_datadir}/applications/fedora-wine-winecfg.desktop +%{_datadir}/desktop-directories/wine.directory +%{_sysconfdir}/xdg/menus/applications-merged/wine.menu %{_mandir}/man1/wine.1.gz %{_datadir}/wine/generic.ppd %{_datadir}/wine/wine.inf @@ -520,6 +539,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/serialui.dll.so %{_libdir}/wine/setupapi.dll.so %{_libdir}/wine/setupx.dll16 +%{_libdir}/wine/shdoclc.dll.so %{_libdir}/wine/shdocvw.dll.so %{_libdir}/wine/shell.dll16 %{_libdir}/wine/shell32.dll.so @@ -592,7 +612,6 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/d3d9.dll.so %{_libdir}/wine/d3dx8.dll.so %{_libdir}/wine/glu32.dll.so -%{_libdir}/wine/glut32.dll.so %{_libdir}/wine/opengl32.dll.so %{_libdir}/wine/wined3d.dll.so %{_libdir}/wine/dnsapi.dll.so @@ -691,6 +710,12 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Mon Dec 18 2006 Andreas Bierfert +0.9.27-1 +- version upgrade (#220130) +- fix submenus (#216076) +- fix BR (#217338) + * Thu Nov 16 2006 Andreas Bierfert 0.9.25-1 - version upgrade From cfbcf9268c200275deb985d1bc4055e5baa184af Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Thu, 11 Jan 2007 14:41:27 +0000 Subject: [PATCH 049/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 11 ++++++++--- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/.cvsignore b/.cvsignore index 0706d61..c590da0 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.27-fe.tar.bz2 +wine-0.9.29-fe.tar.bz2 diff --git a/sources b/sources index c684d5a..b503a8f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -b5e45cfbdc969304192b2d689e1affa6 wine-0.9.27-fe.tar.bz2 +88e9b0002fbe16fe7eefad8ac4c931ea wine-0.9.29-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index a4a74c9..71bd7cf 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %define __global_cflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fno-stack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=pentium4 -fasynchronous-unwind-tables Name: wine -Version: 0.9.27 +Version: 0.9.29 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -9,7 +9,7 @@ Group: Applications/Emulators License: LGPL URL: http://www.winehq.org/ # special fedora tarball without winemp3 stuff -Source0: wine-0.9.27-fe.tar.bz2 +Source0: wine-0.9.29-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -413,6 +413,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/dciman32.dll.so %{_libdir}/wine/ddeml.dll16 %{_libdir}/wine/ddraw.dll.so +%{_libdir}/wine/ddrawex.dll.so %{_libdir}/wine/devenum.dll.so %{_libdir}/wine/dinput.dll.so %{_libdir}/wine/dinput8.dll.so @@ -454,7 +455,6 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/inseng.dll.so %{_libdir}/wine/iphlpapi.dll.so %{_libdir}/wine/itss.dll.so -%{_libdir}/wine/joystick.drv.so %{_libdir}/wine/kernel32.dll.so %{_libdir}/wine/keyboard.drv16 %{_libdir}/wine/krnl386.exe16 @@ -584,6 +584,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/winedos.dll.so %{_libdir}/wine/wineoss.drv.so %{_libdir}/wine/winecoreaudio.drv.so +%{_libdir}/wine/winejoystick.drv.so %{_libdir}/wine/winex11.drv.so %{_libdir}/wine/wing.dll16 %{_libdir}/wine/wininet.dll.so @@ -710,6 +711,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Thu Jan 11 2007 Andreas Bierfert +0.9.29-1 +- version upgrade + * Mon Dec 18 2006 Andreas Bierfert 0.9.27-1 - version upgrade (#220130) From 402d729f5346d0fc0947b5ce2ae24e0bcaa45d04 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Wed, 7 Feb 2007 09:33:07 +0000 Subject: [PATCH 050/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 10 ++++++++-- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/.cvsignore b/.cvsignore index c590da0..c3db92e 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.29-fe.tar.bz2 +wine-0.9.30-fe.tar.bz2 diff --git a/sources b/sources index b503a8f..4371b65 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -88e9b0002fbe16fe7eefad8ac4c931ea wine-0.9.29-fe.tar.bz2 +9a6530d13d26dcb8fe5c0d0ca88e87e8 wine-0.9.30-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index 71bd7cf..b9d6a32 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %define __global_cflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fno-stack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=pentium4 -fasynchronous-unwind-tables Name: wine -Version: 0.9.29 +Version: 0.9.30 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -9,7 +9,7 @@ Group: Applications/Emulators License: LGPL URL: http://www.winehq.org/ # special fedora tarball without winemp3 stuff -Source0: wine-0.9.29-fe.tar.bz2 +Source0: wine-0.9.30-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -399,6 +399,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/commdlg.dll16 %{_libdir}/wine/compobj.dll16 %{_libdir}/wine/compstui.dll.so +%{_libdir}/wine/credui.dll.so %{_libdir}/wine/crtdll.dll.so %{_libdir}/wine/crypt32.dll.so %{_libdir}/wine/cryptdll.dll.so @@ -539,6 +540,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/serialui.dll.so %{_libdir}/wine/setupapi.dll.so %{_libdir}/wine/setupx.dll16 +%{_libdir}/wine/sfc_os.dll.so %{_libdir}/wine/shdoclc.dll.so %{_libdir}/wine/shdocvw.dll.so %{_libdir}/wine/shell.dll16 @@ -711,6 +713,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Wed Feb 07 2007 Andreas Bierfert +0.9.30-1 +- version upgrade + * Thu Jan 11 2007 Andreas Bierfert 0.9.29-1 - version upgrade From 80c6370d071b17a8d4c9b7d1f832437f272fd3ca Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 18 Feb 2007 13:56:07 +0000 Subject: [PATCH 051/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 9 +++++++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/.cvsignore b/.cvsignore index c3db92e..c7ae5e9 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.30-fe.tar.bz2 +wine-0.9.31-fe.tar.bz2 diff --git a/sources b/sources index 4371b65..a233c40 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -9a6530d13d26dcb8fe5c0d0ca88e87e8 wine-0.9.30-fe.tar.bz2 +cf03fffff7dcc1bdb86100fddad66b74 wine-0.9.31-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index b9d6a32..b64636b 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %define __global_cflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fno-stack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=pentium4 -fasynchronous-unwind-tables Name: wine -Version: 0.9.30 +Version: 0.9.31 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -9,7 +9,7 @@ Group: Applications/Emulators License: LGPL URL: http://www.winehq.org/ # special fedora tarball without winemp3 stuff -Source0: wine-0.9.30-fe.tar.bz2 +Source0: wine-0.9.31-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -387,6 +387,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/avicap32.dll.so %{_libdir}/wine/avifil32.dll.so %{_libdir}/wine/avifile.dll16 +%{_libdir}/wine/browseui.dll.so %{_libdir}/wine/cabinet.dll.so %{_libdir}/wine/cards.dll.so %{_libdir}/wine/cfgmgr32.dll.so @@ -713,6 +714,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Sat Feb 17 2007 Andreas Bierfert +0.9.31-1 +- version upgrade + * Wed Feb 07 2007 Andreas Bierfert 0.9.30-1 - version upgrade From fa862cad7413e86bd5479e1dc4150f80d2ea3569 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Tue, 27 Feb 2007 16:16:39 +0000 Subject: [PATCH 052/715] - fix #230131 --- wine.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index b64636b..9801bf6 100644 --- a/wine.spec +++ b/wine.spec @@ -2,7 +2,7 @@ Name: wine Version: 0.9.31 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -714,6 +714,9 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Tue Feb 27 2007 Andreas Bierfert +- fix #230131 + * Sat Feb 17 2007 Andreas Bierfert 0.9.31-1 - version upgrade From 05c3ac4983793a123a2111bd6dbd12ace96c83df Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 5 Mar 2007 08:16:42 +0000 Subject: [PATCH 053/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 13 ++++++++++--- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/.cvsignore b/.cvsignore index c7ae5e9..037889f 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.31-fe.tar.bz2 +wine-0.9.32-fe.tar.bz2 diff --git a/sources b/sources index a233c40..9c22918 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -cf03fffff7dcc1bdb86100fddad66b74 wine-0.9.31-fe.tar.bz2 +cc10e219935aa4e6f887e85293646b81 wine-0.9.32-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index 9801bf6..53c50da 100644 --- a/wine.spec +++ b/wine.spec @@ -1,15 +1,15 @@ %define __global_cflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fno-stack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=pentium4 -fasynchronous-unwind-tables Name: wine -Version: 0.9.31 -Release: 2%{?dist} +Version: 0.9.32 +Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators License: LGPL URL: http://www.winehq.org/ # special fedora tarball without winemp3 stuff -Source0: wine-0.9.31-fe.tar.bz2 +Source0: wine-0.9.32-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -536,6 +536,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/rpcrt4.dll.so %{_libdir}/wine/rsabase.dll.so %{_libdir}/wine/rsaenh.dll.so +%{_libdir}/wine/schannel.dll.so %{_libdir}/wine/secur32.dll.so %{_libdir}/wine/sensapi.dll.so %{_libdir}/wine/serialui.dll.so @@ -590,6 +591,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/winejoystick.drv.so %{_libdir}/wine/winex11.drv.so %{_libdir}/wine/wing.dll16 +%{_libdir}/wine/wing32.dll.so %{_libdir}/wine/wininet.dll.so %{_libdir}/wine/winmm.dll.so %{_libdir}/wine/winnls.dll16 @@ -714,7 +716,12 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Sun Mar 04 2007 Andreas Bierfert +0.9.32-1 +- version upgrade + * Tue Feb 27 2007 Andreas Bierfert +0.9.31-2 - fix #230131 * Sat Feb 17 2007 Andreas Bierfert From fc2d5b1293db4af8b7ea4066860ce4bcd381da06 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Wed, 18 Apr 2007 07:58:23 +0000 Subject: [PATCH 054/715] - version upgrade (#234766) - sources file comments (#235232) - smpflags work again - drop arts sound driver package, as it is no longer part of wine sss: ---------------------------------------------------------------------- --- .cvsignore | 2 +- sources | 2 +- wine.directory | 2 +- wine.spec | 56 +++++++++++++++++++++++++++++++------------------- 4 files changed, 38 insertions(+), 24 deletions(-) diff --git a/.cvsignore b/.cvsignore index 037889f..15a2bb3 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.32-fe.tar.bz2 +wine-0.9.35-fe.tar.bz2 diff --git a/sources b/sources index 9c22918..2b64521 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -cc10e219935aa4e6f887e85293646b81 wine-0.9.32-fe.tar.bz2 +2fa5472a5191480e8039123b4377857e wine-0.9.35-fe.tar.bz2 diff --git a/wine.directory b/wine.directory index 634558e..9fdb800 100644 --- a/wine.directory +++ b/wine.directory @@ -2,4 +2,4 @@ Encoding=UTF-8 Type=Directory Name=Wine -Icon=gnome-util.png +Icon=wine diff --git a/wine.spec b/wine.spec index 53c50da..6091e72 100644 --- a/wine.spec +++ b/wine.spec @@ -1,15 +1,26 @@ %define __global_cflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fno-stack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=pentium4 -fasynchronous-unwind-tables Name: wine -Version: 0.9.32 +Version: 0.9.35 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators License: LGPL URL: http://www.winehq.org/ -# special fedora tarball without winemp3 stuff -Source0: wine-0.9.32-fe.tar.bz2 +# special fedora tarball without winemp3 stuff build doing +# rm -fr dlls/winemp3.acm +# and removing the following from the source tree (as of 0.9.35): +# +# configure:ac_config_files="$ac_config_files dlls/winemp3.acm/Makefile" +# configure: "dlls/winemp3.acm/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/winemp3.acm/Makefile" ;; +# configure.ac:AC_CONFIG_FILES([dlls/winemp3.acm/Makefile]) +# dlls/Makefile.in: winemp3.acm \ +# Makefile.in: dlls/winemp3.acm/Makefile \ +# Makefile.in:dlls/winemp3.acm/Makefile: dlls/winemp3.acm/Makefile.in dlls/Makedll.rules +# programs/winecfg/libraries.c: "winemp3.acm", + +Source0: wine-0.9.35-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -33,7 +44,6 @@ ExclusiveArch: %{ix86} BuildRequires: bison BuildRequires: flex BuildRequires: alsa-lib-devel -BuildRequires: arts-devel BuildRequires: audiofile-devel BuildRequires: esound-devel BuildRequires: freeglut-devel @@ -77,7 +87,6 @@ Requires: wine-nas = %{version}-%{release} Requires: wine-tools = %{version}-%{release} Requires: wine-twain = %{version}-%{release} - %description While Wine is usually thought of as a Windows(TM) emulator, the Wine developers would prefer that users thought of Wine as a Windows @@ -99,6 +108,7 @@ Requires(post): /usr/bin/update-desktop-database Requires(preun): /sbin/chkconfig, /sbin/service Requires(postun): /sbin/ldconfig, /usr/bin/update-desktop-database Obsoletes: wine <= 0.9.15-1%{?dist} +Obsoletes: wine-arts < 0.9.34 %description core Wine core package includes the basic wine stuff needed by all other packages. @@ -111,14 +121,6 @@ Requires: wine-core = %{version}-%{release} %description tools Additional wine tools -%package arts -Summary: Arts sound support for wine -Group: System Environment/Libraries -Requires: wine-core = %{version}-%{release} - -%description arts -Arts sound support for wine - %package esd Summary: ESD sound support for wine Group: System Environment/Libraries @@ -196,7 +198,7 @@ export CFLAGS="$RPM_OPT_FLAGS" --x-includes=%{_includedir} --x-libraries=%{_libdir} %{__make} depend -%{__make} +%{__make} %{?_smp_mflags} %install rm -rf %{buildroot} @@ -300,9 +302,6 @@ fi /sbin/ldconfig update-desktop-database &>/dev/null || : -%post arts -p /sbin/ldconfig -%postun arts -p /sbin/ldconfig - %post esd -p /sbin/ldconfig %postun esd -p /sbin/ldconfig @@ -432,6 +431,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/dmusic32.dll.so %{_libdir}/wine/dplay.dll.so %{_libdir}/wine/dplayx.dll.so +%{_libdir}/wine/dpnaddr.dll.so %{_libdir}/wine/dpnet.dll.so %{_libdir}/wine/dpnhpast.dll.so %{_libdir}/wine/dsound.dll.so @@ -461,6 +461,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/keyboard.drv16 %{_libdir}/wine/krnl386.exe16 %{_libdir}/wine/localspl.dll.so +%{_libdir}/wine/localui.dll.so %{_libdir}/wine/lz32.dll.so %{_libdir}/wine/lzexpand.dll16 %{_libdir}/wine/mapi32.dll.so @@ -551,6 +552,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/shlwapi.dll.so %{_libdir}/wine/snmpapi.dll.so %{_libdir}/wine/sound.drv16 +%{_libdir}/wine/spoolsv.exe.so %{_libdir}/wine/stdole2.tlb.so %{_libdir}/wine/stdole32.tlb.so %{_libdir}/wine/sti.dll.so @@ -622,6 +624,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/wined3d.dll.so %{_libdir}/wine/dnsapi.dll.so %{_libdir}/wine/iexplore.exe.so +%{_libdir}/wine/xcopy.exe.so %{_sysconfdir}/ld.so.conf.d/wine-32.conf %files tools @@ -653,10 +656,6 @@ update-desktop-database &>/dev/null || : %{_datadir}/applications/fedora-wine-winemine.desktop %{_datadir}/applications/fedora-wine-winhelp.desktop -%files arts -%defattr(-,root,root,-) -%{_libdir}/wine/winearts.drv.so - %files esd %defattr(-,root,root,-) %{_libdir}/wine/wineesd.drv.so @@ -716,6 +715,21 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Mon Apr 16 2007 Andreas Bierfert +0.9.35-1 +- version upgrade (#234766) +- sources file comments (#235232) +- smpflags work again (mentioned by Marcin Zajczkowski) +- drop arts sound driver package, as it is no longer part of wine + +* Sun Apr 01 2007 Andreas Bierfert +0.9.34-1 +- version upgrade + +* Sat Mar 17 2007 Andreas Bierfert +0.9.33-1 +- version upgrade + * Sun Mar 04 2007 Andreas Bierfert 0.9.32-1 - version upgrade From 9977be960e639079870eb8540349fa9fe5d4e531 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Fri, 27 Apr 2007 23:01:37 +0000 Subject: [PATCH 055/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 18 ++++++++++++------ 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/.cvsignore b/.cvsignore index 15a2bb3..c6480e5 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.35-fe.tar.bz2 +wine-0.9.36-fe.tar.bz2 diff --git a/sources b/sources index 2b64521..3d92c6e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -2fa5472a5191480e8039123b4377857e wine-0.9.35-fe.tar.bz2 +985fb75705f308563d326de55915c726 wine-0.9.36-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index 6091e72..366d512 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %define __global_cflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fno-stack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=pentium4 -fasynchronous-unwind-tables Name: wine -Version: 0.9.35 +Version: 0.9.36 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -20,7 +20,7 @@ URL: http://www.winehq.org/ # Makefile.in:dlls/winemp3.acm/Makefile: dlls/winemp3.acm/Makefile.in dlls/Makedll.rules # programs/winecfg/libraries.c: "winemp3.acm", -Source0: wine-0.9.35-fe.tar.bz2 +Source0: wine-0.9.36-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -378,6 +378,7 @@ update-desktop-database &>/dev/null || : %{_mandir}/man1/wineserver.1* %{_libdir}/libwine.so.1* %dir %{_libdir}/wine +%{_libdir}/wine/acledit.dll.so %{_libdir}/wine/activeds.dll.so %{_libdir}/wine/advapi32.dll.so %{_libdir}/wine/advpack.dll.so @@ -559,6 +560,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/storage.dll16 %{_libdir}/wine/stress.dll16 %{_libdir}/wine/svrapi.dll.so +%{_libdir}/wine/sxs.dll.so %{_libdir}/wine/system.drv16 %{_libdir}/wine/tapi32.dll.so %{_libdir}/wine/toolhelp.dll16 @@ -715,6 +717,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Sat Apr 28 2007 Andreas Bierfert +0.9.36-1 +- version upgrade + * Mon Apr 16 2007 Andreas Bierfert 0.9.35-1 - version upgrade (#234766) @@ -730,14 +736,14 @@ update-desktop-database &>/dev/null || : 0.9.33-1 - version upgrade -* Sun Mar 04 2007 Andreas Bierfert -0.9.32-1 -- version upgrade - * Tue Feb 27 2007 Andreas Bierfert 0.9.31-2 - fix #230131 +* Sun Mar 04 2007 Andreas Bierfert +0.9.32-1 +- version upgrade + * Sat Feb 17 2007 Andreas Bierfert 0.9.31-1 - version upgrade From e53713932d7bd5cb86b030ffbdd3f41ecc2d2177 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Fri, 27 Apr 2007 23:03:50 +0000 Subject: [PATCH 056/715] - fix c&p --- wine.spec | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/wine.spec b/wine.spec index 366d512..b3caeff 100644 --- a/wine.spec +++ b/wine.spec @@ -736,14 +736,14 @@ update-desktop-database &>/dev/null || : 0.9.33-1 - version upgrade -* Tue Feb 27 2007 Andreas Bierfert -0.9.31-2 -- fix #230131 - * Sun Mar 04 2007 Andreas Bierfert 0.9.32-1 - version upgrade +* Tue Feb 27 2007 Andreas Bierfert +0.9.31-2 +- fix #230131 + * Sat Feb 17 2007 Andreas Bierfert 0.9.31-1 - version upgrade From 514da10a8df90d3e8c4e510d1dc4eeba9d5a5b60 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Fri, 4 May 2007 07:15:27 +0000 Subject: [PATCH 057/715] - fix BR (#238774) - fix some typos --- wine.spec | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/wine.spec b/wine.spec index b3caeff..b0796f2 100644 --- a/wine.spec +++ b/wine.spec @@ -2,7 +2,7 @@ Name: wine Version: 0.9.36 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -56,6 +56,7 @@ BuildRequires: libxml2-devel BuildRequires: libxslt-devel BuildRequires: ncurses-devel BuildRequires: openldap-devel +BuildRequires: openssl-devel BuildRequires: sane-backends-devel BuildRequires: zlib-devel BuildRequires: desktop-file-utils @@ -143,7 +144,7 @@ Group: System Environment/Libraries Requires: wine-core = %{version}-%{release} %description nas -JACK sound support for wine +NAS sound support for wine %package ldap Summary: LDAP support for wine @@ -154,7 +155,7 @@ Requires: wine-core = %{version}-%{release} LDAP support for wine %package cms -Summary: Color Managment for wine +Summary: Color Management for wine Group: System Environment/Libraries Requires: wine-core = %{version}-%{release} @@ -717,6 +718,11 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Wed May 02 2007 Andreas Bierfert +0.9.36-2 +- fix BR (#238774) +- fix some typos + * Sat Apr 28 2007 Andreas Bierfert 0.9.36-1 - version upgrade From f42fe4ac6510d47ecbe433fb3528a7f09f7edfb4 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 3 Jun 2007 14:52:16 +0000 Subject: [PATCH 058/715] - version upgrade (#242087) - fix menu problem (#220723) - fix BR - clean up desktop file section - version upgrade - add BR for xcursor (#240648) - add desktop entry for wineboot (#240683) - add mime handler for msi files (#240682) - minor cleanups --- .cvsignore | 2 +- sources | 2 +- wine-mime-msi.desktop | 6 ++++ wine-rpath.patch | 26 +++++++------- wine-wineboot.desktop | 8 +++++ wine-wineshelllink.patch | 9 +++++ wine.spec | 74 +++++++++++++++++++++++++++++++--------- wineshelllink-fedora | 6 ++++ 8 files changed, 102 insertions(+), 31 deletions(-) create mode 100644 wine-mime-msi.desktop create mode 100644 wine-wineboot.desktop create mode 100644 wine-wineshelllink.patch create mode 100644 wineshelllink-fedora diff --git a/.cvsignore b/.cvsignore index c6480e5..2a02b77 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.36-fe.tar.bz2 +wine-0.9.38-fe.tar.bz2 diff --git a/sources b/sources index 3d92c6e..5a5776f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -985fb75705f308563d326de55915c726 wine-0.9.36-fe.tar.bz2 +3ad80c4edafd4d462568849889c032b9 wine-0.9.38-fe.tar.bz2 diff --git a/wine-mime-msi.desktop b/wine-mime-msi.desktop new file mode 100644 index 0000000..7e6d984 --- /dev/null +++ b/wine-mime-msi.desktop @@ -0,0 +1,6 @@ +[Desktop Entry] +Type=Application +Name=Windows Installer File +Encoding=UTF-8 +Exec=wine %f +MimeType=application/x-ole-storage;text/mspg-legacyinfo diff --git a/wine-rpath.patch b/wine-rpath.patch index c26b73c..288a503 100644 --- a/wine-rpath.patch +++ b/wine-rpath.patch @@ -1,6 +1,6 @@ ---- configure.orig 2006-09-17 14:55:39.000000000 +0200 -+++ configure 2006-09-17 14:57:19.000000000 +0200 -@@ -15903,14 +15903,14 @@ +--- configure.orig 2007-05-23 10:59:34.000000000 +0200 ++++ configure 2007-05-23 11:02:05.000000000 +0200 +@@ -13596,14 +13596,14 @@ fi @@ -9,7 +9,7 @@ -echo $ECHO_N "checking whether the compiler supports -fPIC -Wl,--rpath,\$ORIGIN/../lib... $ECHO_C" >&6; } + as_ac_var=`echo "ac_cv_cflags_-fPIC" | $as_tr_sh` +{ echo "$as_me:$LINENO: checking whether the compiler supports -fPIC" >&5 -+echo $ECHO_N "checking whether the compiler supports -fPIC$ECHO_C" >&6; } ++echo $ECHO_N "checking whether the compiler supports -fPIC $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else @@ -19,23 +19,25 @@ cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF -@@ -15976,7 +15976,7 @@ +@@ -13653,7 +13653,7 @@ { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then - LIBWINE_LDFLAGS="-Wl,--rpath,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`" + LIBWINE_LDFLAGS="" - fi - - ---- configure.ac.orig 2006-09-17 14:57:25.000000000 +0200 -+++ configure.ac 2006-09-17 14:58:03.000000000 +0200 -@@ -1058,9 +1058,6 @@ + else + as_ac_var=`echo "ac_cv_cflags_-fPIC -Wl,-R,\$ORIGIN/../lib" | $as_tr_sh` + { echo "$as_me:$LINENO: checking whether the compiler supports -fPIC -Wl,-R,\$ORIGIN/../lib" >&5 +--- configure.ac.orig 2007-05-23 10:59:39.000000000 +0200 ++++ configure.ac 2007-05-23 11:02:39.000000000 +0200 +@@ -1031,11 +1031,6 @@ WINE_TRY_CFLAGS([-fPIC -Wl,--export-dynamic], [AC_SUBST(LDEXECFLAGS,["-Wl,--export-dynamic"])]) - WINE_TRY_CFLAGS([-fPIC -Wl,--rpath,\$ORIGIN/../lib], -- [LIBWINE_LDFLAGS="-Wl,--rpath,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`"]) +- [LIBWINE_LDFLAGS="-Wl,--rpath,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`"], +- [WINE_TRY_CFLAGS([-fPIC -Wl,-R,\$ORIGIN/../lib], +- [LIBWINE_LDFLAGS="-Wl,-R,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`"])]) - case $host_cpu in *i[[3456789]]86* | x86_64) diff --git a/wine-wineboot.desktop b/wine-wineboot.desktop new file mode 100644 index 0000000..9db3c2a --- /dev/null +++ b/wine-wineboot.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Name=wineboot +Comment=Simulate restart +Exec=wineboot +Terminal=false +Type=Application +Encoding=UTF-8 +Categories=Application;Wine; diff --git a/wine-wineshelllink.patch b/wine-wineshelllink.patch new file mode 100644 index 0000000..0dd020c --- /dev/null +++ b/wine-wineshelllink.patch @@ -0,0 +1,9 @@ +--- tools/wineshelllink.orig 2007-06-03 12:56:07.000000000 +0200 ++++ tools/wineshelllink 2007-06-03 12:57:27.000000000 +0200 +@@ -231,4 +231,6 @@ + desktop_entry > "$desktop_target" + fi + ++exec /usr/bin/wineshelllink-fedora ++ + exit 0 diff --git a/wine.spec b/wine.spec index b0796f2..93f5e84 100644 --- a/wine.spec +++ b/wine.spec @@ -1,8 +1,8 @@ %define __global_cflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fno-stack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=pentium4 -fasynchronous-unwind-tables Name: wine -Version: 0.9.36 -Release: 2%{?dist} +Version: 0.9.38 +Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -20,7 +20,7 @@ URL: http://www.winehq.org/ # Makefile.in:dlls/winemp3.acm/Makefile: dlls/winemp3.acm/Makefile.in dlls/Makedll.rules # programs/winecfg/libraries.c: "winemp3.acm", -Source0: wine-0.9.36-fe.tar.bz2 +Source0: wine-0.9.38-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -32,9 +32,19 @@ Source103: wine-winecfg.desktop Source104: wine-winefile.desktop Source105: wine-winemine.desktop Source106: wine-winhelp.desktop +Source107: wine-wineboot.desktop + # desktop dir Source200: wine.menu Source201: wine.directory + +# mime types +Source300: wine-mime-msi.desktop + +#enhancements +Source400: wineshelllink-fedora +Patch400: wine-wineshelllink.patch + Patch0: wine-prefixfonts.patch Patch1: wine-rpath.patch Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -62,6 +72,7 @@ BuildRequires: zlib-devel BuildRequires: desktop-file-utils BuildRequires: fontforge BuildRequires: gphoto2 gphoto2-devel +BuildRequires: jack-audio-connection-kit-devel #217338 BuildRequires: isdn4k-utils-devel # modular x @@ -75,6 +86,7 @@ BuildRequires: giflib-devel BuildRequires: cups-devel BuildRequires: libXmu-devel BuildRequires: libXi-devel +BuildRequires: libXcursor-devel # dbus/hal >= FC5 BuildRequires: dbus-devel hal-devel @@ -105,9 +117,10 @@ Summary: Wine core package Group: Applications/Emulators Requires: %{_bindir}/xmessage Requires(post): /sbin/ldconfig, /sbin/chkconfig, /sbin/service, -Requires(post): /usr/bin/update-desktop-database +Requires(post): desktop-file-utils >= 0.8 Requires(preun): /sbin/chkconfig, /sbin/service -Requires(postun): /sbin/ldconfig, /usr/bin/update-desktop-database +Requires(postun): /sbin/ldconfig +Requires(postun): desktop-file-utils >= 0.8 Obsoletes: wine <= 0.9.15-1%{?dist} Obsoletes: wine-arts < 0.9.34 @@ -191,6 +204,7 @@ with the Wine Windows(TM) emulation libraries. %setup -q -n %{name}-%{version}-fe %patch0 %patch1 +%patch400 %build export CFLAGS="$RPM_OPT_FLAGS" @@ -230,57 +244,63 @@ install -p -m 644 %{SOURCE201} \ desktop-file-install \ --vendor=fedora \ --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ - --add-category=X-Fedora \ %{SOURCE100} desktop-file-install \ --vendor=fedora \ --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ - --add-category=X-Fedora \ %{SOURCE101} desktop-file-install \ --vendor=fedora \ --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ - --add-category=X-Fedora \ %{SOURCE102} desktop-file-install \ --vendor=fedora \ --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ - --add-category=X-Fedora \ %{SOURCE103} desktop-file-install \ --vendor=fedora \ --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ - --add-category=X-Fedora \ %{SOURCE104} desktop-file-install \ --vendor=fedora \ --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ - --add-category=X-Fedora \ %{SOURCE105} desktop-file-install \ --vendor=fedora \ --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ - --add-category=X-Fedora \ %{SOURCE106} desktop-file-install \ --vendor=fedora \ --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ - --add-category=X-Fedora \ + %{SOURCE107} + +desktop-file-install \ + --vendor=fedora \ + --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ --delete-original \ $RPM_BUILD_ROOT%{_datadir}/applications/wine.desktop +#mime-types +desktop-file-install \ + --vendor=fedora \ + --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ + %{SOURCE300} + + cp %{SOURCE3} README-Fedora mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d/ install -p -m644 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d/ +install -p -m755 %{SOURCE400} $RPM_BUILD_ROOT%{_bindir}/wineshelllink-fedora + %clean rm -rf %{buildroot} @@ -343,11 +363,14 @@ update-desktop-database &>/dev/null || : %{_bindir}/wineprefixcreate %{_mandir}/man1/wineprefixcreate.1* %{_bindir}/wineshelllink +%{_bindir}/wineshelllink-fedora %{_bindir}/winecfg %{_bindir}/uninstaller %{_initrddir}/wine %{_libdir}/wine/expand.exe.so %{_libdir}/wine/msiexec.exe.so +%{_libdir}/wine/net.exe.so +%{_libdir}/wine/ntoskrnl.exe.so %{_libdir}/wine/oleview.exe.so %{_libdir}/wine/regedit.exe.so %{_libdir}/wine/regsvr32.exe.so @@ -360,12 +383,15 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/winemenubuilder.exe.so %{_libdir}/wine/winevdm.exe.so %{_libdir}/wine/winecfg.exe.so +%{_libdir}/wine/winedevice.exe.so %{_libdir}/wine/uninstaller.exe.so %dir %{_datadir}/wine +%{_datadir}/applications/fedora-wine-mime-msi.desktop %{_datadir}/applications/fedora-wine.desktop %{_datadir}/applications/fedora-wine-regedit.desktop %{_datadir}/applications/fedora-wine-uninstaller.desktop %{_datadir}/applications/fedora-wine-winecfg.desktop +%{_datadir}/applications/fedora-wine-wineboot.desktop %{_datadir}/desktop-directories/wine.directory %{_sysconfdir}/xdg/menus/applications-merged/wine.menu %{_mandir}/man1/wine.1.gz @@ -442,7 +468,9 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/eject.exe.so %{_libdir}/wine/gdi.exe16 %{_libdir}/wine/gdi32.dll.so +%{_libdir}/wine/gdiplus.dll.so %{_libdir}/wine/gphoto2.ds.so +%{_libdir}/wine/hal.dll.so %{_libdir}/wine/hid.dll.so %{_libdir}/wine/hh.exe.so %{_libdir}/wine/hlink.dll.so @@ -604,6 +632,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/winsock.dll16 %{_libdir}/wine/winspool.drv.so %{_libdir}/wine/spoolss.dll.so +%{_libdir}/wine/winscard.dll.so %{_libdir}/wine/wintab.dll16 %{_libdir}/wine/wintab32.dll.so %{_libdir}/wine/wintrust.dll.so @@ -718,6 +747,21 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Sat Jun 02 2007 Andreas Bierfert +0.9.38-1 +- version upgrade (#242087) +- fix menu problem (#220723) +- fix BR +- clean up desktop file section + +* Wed May 23 2007 Andreas Bierfert +0.9.37-1 +- version upgrade +- add BR for xcursor (#240648) +- add desktop entry for wineboot (#240683) +- add mime handler for msi files (#240682) +- minor cleanups + * Wed May 02 2007 Andreas Bierfert 0.9.36-2 - fix BR (#238774) @@ -746,10 +790,6 @@ update-desktop-database &>/dev/null || : 0.9.32-1 - version upgrade -* Tue Feb 27 2007 Andreas Bierfert -0.9.31-2 -- fix #230131 - * Sat Feb 17 2007 Andreas Bierfert 0.9.31-1 - version upgrade diff --git a/wineshelllink-fedora b/wineshelllink-fedora new file mode 100644 index 0000000..6473493 --- /dev/null +++ b/wineshelllink-fedora @@ -0,0 +1,6 @@ +#!/bin/sh + +for i in $HOME/.config/menus/applications-merged/*menu ; do + sed -i -e 's:wine-wine:Wine:g' \ + -e ':wine-wine:wine:g' "$i" +done From 26a27252bc964e61057ebb2f0754238d2d8d73cd Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 3 Jun 2007 15:58:32 +0000 Subject: [PATCH 059/715] - allow full opt flags again - set ExclusiveArch to i386 for koji to only build i386 --- wine.spec | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/wine.spec b/wine.spec index 93f5e84..9903f98 100644 --- a/wine.spec +++ b/wine.spec @@ -1,8 +1,6 @@ -%define __global_cflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fno-stack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=pentium4 -fasynchronous-unwind-tables - Name: wine Version: 0.9.38 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -49,7 +47,7 @@ Patch0: wine-prefixfonts.patch Patch1: wine-rpath.patch Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -ExclusiveArch: %{ix86} +ExclusiveArch: i386 BuildRequires: bison BuildRequires: flex @@ -747,6 +745,11 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Sun Jun 03 2007 Andreas Bierfert +0.9.38-2 +- allow full opt flags again +- set ExclusiveArch to i386 for koji to only build i386 + * Sat Jun 02 2007 Andreas Bierfert 0.9.38-1 - version upgrade (#242087) From 5af3a00896248b3a9d3e6453ea7548b8ce4c97fc Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Wed, 6 Jun 2007 06:34:16 +0000 Subject: [PATCH 060/715] - fix description --- wine.spec | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/wine.spec b/wine.spec index 9903f98..67573c2 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ Name: wine Version: 0.9.38 -Release: 2%{?dist} +Release: 3%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -106,9 +106,9 @@ which allows unmodified Windows 3.x/9x/NT binaries to run on x86 and x86_64 Unixes. Wine does not require MS Windows, but it can use native system .dll files if they are available. -In Fedora Extras wine is actually a meta-package which will install everything -you need for wine to work smoothly. If you don't want to install everything -take a look at the wine-* packages. +In Fedora wine is a meta-package which will install everything needed for wine +to work smoothly. Smaller setups can be achieved by installing some of the +wine-* sub packages. %package core Summary: Wine core package @@ -745,6 +745,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Wed Jun 06 2007 Andreas Bierfert +0.9.38-3 +- fix description + * Sun Jun 03 2007 Andreas Bierfert 0.9.38-2 - allow full opt flags again From 01bb09164fcafe0b4df62af0f47ebdf225142814 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 17 Jun 2007 09:39:31 +0000 Subject: [PATCH 061/715] - version upgrade - convert to utf8 (#244046) - fix mime entry (#243511) --- .cvsignore | 2 +- sources | 2 +- wine-mime-msi.desktop | 1 + wine.spec | 79 +++++++++++++++++++++++-------------------- 4 files changed, 46 insertions(+), 38 deletions(-) diff --git a/.cvsignore b/.cvsignore index 2a02b77..a1c534b 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.38-fe.tar.bz2 +wine-0.9.39-fe.tar.bz2 diff --git a/sources b/sources index 5a5776f..f7af00b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -3ad80c4edafd4d462568849889c032b9 wine-0.9.38-fe.tar.bz2 +4549b9643c8d858fc5c77cfe95d626c7 wine-0.9.39-fe.tar.bz2 diff --git a/wine-mime-msi.desktop b/wine-mime-msi.desktop index 7e6d984..e8cbe58 100644 --- a/wine-mime-msi.desktop +++ b/wine-mime-msi.desktop @@ -4,3 +4,4 @@ Name=Windows Installer File Encoding=UTF-8 Exec=wine %f MimeType=application/x-ole-storage;text/mspg-legacyinfo +Hidden=True diff --git a/wine.spec b/wine.spec index 67573c2..91f0dd7 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ Name: wine -Version: 0.9.38 -Release: 3%{?dist} +Version: 0.9.39 +Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -18,7 +18,7 @@ URL: http://www.winehq.org/ # Makefile.in:dlls/winemp3.acm/Makefile: dlls/winemp3.acm/Makefile.in dlls/Makedll.rules # programs/winecfg/libraries.c: "winemp3.acm", -Source0: wine-0.9.38-fe.tar.bz2 +Source0: wine-0.9.39-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -551,6 +551,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/olepro32.dll.so %{_libdir}/wine/olesvr.dll16 %{_libdir}/wine/olesvr32.dll.so +%{_libdir}/wine/pdh.dll.so %{_libdir}/wine/powrprof.dll.so %{_libdir}/wine/psapi.dll.so %{_libdir}/wine/pstorec.dll.so @@ -745,6 +746,12 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Sun Jun 17 2007 Andreas Bierfert +- 0.9.39-1 +- version upgrade +- convert to utf8 (#244046) +- fix mime entry (#243511) + * Wed Jun 06 2007 Andreas Bierfert 0.9.38-3 - fix description @@ -782,7 +789,7 @@ update-desktop-database &>/dev/null || : 0.9.35-1 - version upgrade (#234766) - sources file comments (#235232) -- smpflags work again (mentioned by Marcin Zajczkowski) +- smpflags work again (mentioned by Marcin Zajączkowski) - drop arts sound driver package, as it is no longer part of wine * Sun Apr 01 2007 Andreas Bierfert @@ -1024,24 +1031,24 @@ update-desktop-database &>/dev/null || : 20050524-2 - fedorarized version -* Mon May 30 2005 Vincent Bron 20050524-1fc3 +* Mon May 30 2005 Vincent Béron 20050524-1fc3 - Update to 20050524 - Remove pdf documentation build as it's no more included in the main archive - Workaround for generic.ppd installation -* Tue Apr 19 2005 Vincent Bron 20050419-1fc3 +* Tue Apr 19 2005 Vincent Béron 20050419-1fc3 - Update to 20050419 -* Thu Mar 10 2005 Vincent Bron 20050310-1fc3 +* Thu Mar 10 2005 Vincent Béron 20050310-1fc3 - Update to 20050310 -* Sat Feb 12 2005 Vincent Bron 20050211-1fc3 +* Sat Feb 12 2005 Vincent Béron 20050211-1fc3 - Update to 20050211 -* Tue Jan 11 2005 Vincent Bron 20050111-1fc3 +* Tue Jan 11 2005 Vincent Béron 20050111-1fc3 - Update to 20050111 -* Wed Dec 1 2004 Vincent Bron 20041201-1fc3 +* Wed Dec 1 2004 Vincent Béron 20041201-1fc3 - Recompile for FC3 - Update to 20041201 - Small reorganization: @@ -1050,97 +1057,97 @@ update-desktop-database &>/dev/null || : - use Wine's generated stdole32.tlb file; - use Wine's generated fonts. -* Wed Oct 20 2004 Vincent Bron 20041019-1fc2 +* Wed Oct 20 2004 Vincent Béron 20041019-1fc2 - Update to 20041019 -* Wed Sep 15 2004 Vincent Bron 20040914-1fc2 +* Wed Sep 15 2004 Vincent Béron 20040914-1fc2 - Update to 20040914 -* Sat Aug 14 2004 Vincent Bron 20040813-1fc2 +* Sat Aug 14 2004 Vincent Béron 20040813-1fc2 - Update to 20040813 -* Sat Jul 17 2004 Vincent Bron 20040716-1fc2 +* Sat Jul 17 2004 Vincent Béron 20040716-1fc2 - Update to 20040716 -* Fri Jun 25 2004 Vincent Bron 20040615-1fc2 +* Fri Jun 25 2004 Vincent Béron 20040615-1fc2 - Recompile for FC2 - Backport from current CVS some fixes to the preloader to prevent a segfault on startup - Include a currently uncommitted patch from Alexandre Julliard regarding further issues with the preloader -* Sun Jun 20 2004 Vincent Bron 20040615-1fc1 +* Sun Jun 20 2004 Vincent Béron 20040615-1fc1 - Update to 20040615 - Use of wineprefixcreate instead of old RedHat patches -* Wed May 5 2004 Vincent Bron 20040505-1fc1 +* Wed May 5 2004 Vincent Béron 20040505-1fc1 - Update to 20040505 -* Fri Apr 9 2004 Vincent Bron 20040408-1fc1 +* Fri Apr 9 2004 Vincent Béron 20040408-1fc1 - Update to 20040408 - Change the handling of paths to DOS drives in the installation process -* Wed Mar 17 2004 Vincent Bron 20040309-1fc1 +* Wed Mar 17 2004 Vincent Béron 20040309-1fc1 - Update to 20040309 - Replaced winedefault.reg by wine.inf -* Wed Feb 18 2004 Vincent Bron 20040213-1fc1 +* Wed Feb 18 2004 Vincent Béron 20040213-1fc1 - Update to 20040213 - Moved Wine dlls back to %{_libdir}/wine rather than %{_libdir}/wine/wine -* Sun Jan 25 2004 Vincent Bron 20040121-fc1 +* Sun Jan 25 2004 Vincent Béron 20040121-fc1 - Update to 20040121 -* Sat Dec 13 2003 Vincent Bron 20031212-fc1 +* Sat Dec 13 2003 Vincent Béron 20031212-fc1 - Update to 20031212 -* Wed Nov 18 2003 Vincent Bron 20031118-fc1 +* Wed Nov 18 2003 Vincent Béron 20031118-fc1 - Update to 20031118 -* Thu Oct 16 2003 Vincent Bron 20031016-1rh9 +* Thu Oct 16 2003 Vincent Béron 20031016-1rh9 - Update to 20031016 -* Tue Sep 11 2003 Vincent Bron 20030911-1rh9 +* Tue Sep 11 2003 Vincent Béron 20030911-1rh9 - Fix of include location - Better separation of run-time and development files - Update to 20030911 -* Wed Aug 13 2003 Vincent Bron 20030813-1rh9 +* Wed Aug 13 2003 Vincent Béron 20030813-1rh9 - Update to 20030813 -* Wed Jul 09 2003 Vincent Bron 20030709-1rh9 +* Wed Jul 09 2003 Vincent Béron 20030709-1rh9 - Update to 20030709 -* Wed Jun 18 2003 Vincent Bron 20030618-1rh9 +* Wed Jun 18 2003 Vincent Béron 20030618-1rh9 - Change the default C drive to ~/.wine/c, copied from /usr/share/wine if non-existant (Thanks to Rudolf Kastl) - Updated to 20030618 -* Tue May 20 2003 Vincent Bron 20030508-1rh9 +* Tue May 20 2003 Vincent Béron 20030508-1rh9 - Adapted for RH9 -* Thu May 08 2003 Vincent Bron 20030508-1 +* Thu May 08 2003 Vincent Béron 20030508-1 - Add libraries definition files to devel package - Update to 20030508 -* Tue Apr 08 2003 Vincent Bron 20030408-1 +* Tue Apr 08 2003 Vincent Béron 20030408-1 - Update to 20030408 -* Tue Mar 18 2003 Vincent Bron 20030318-1 +* Tue Mar 18 2003 Vincent Béron 20030318-1 - Update to 20030318 -* Thu Mar 11 2003 Vincent Bron 20030219-2 +* Thu Mar 11 2003 Vincent Béron 20030219-2 - Fix the symlinks in wine-c. -* Wed Feb 19 2003 Vincent Bron 20030219-1 +* Wed Feb 19 2003 Vincent Béron 20030219-1 - Update to 20030129 - Various fixes in RPM build process -* Fri Jan 17 2003 Vincent Bron 20030115-1 +* Fri Jan 17 2003 Vincent Béron 20030115-1 - Update to 20030115 - fix to build problem -* Thu Nov 7 2002 Vincent Bron 20021031-1 +* Thu Nov 7 2002 Vincent Béron 20021031-1 - Update to 20021031 - Tweaks here and there From 6856664b4fa46ab0fcd9e930a2f4ec2012ca31db Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 17 Jun 2007 10:33:54 +0000 Subject: [PATCH 062/715] s/True/true/ --- wine-mime-msi.desktop | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wine-mime-msi.desktop b/wine-mime-msi.desktop index e8cbe58..5a74ccf 100644 --- a/wine-mime-msi.desktop +++ b/wine-mime-msi.desktop @@ -4,4 +4,4 @@ Name=Windows Installer File Encoding=UTF-8 Exec=wine %f MimeType=application/x-ole-storage;text/mspg-legacyinfo -Hidden=True +Hidden=true From f4b535541d54462f1cac9649f8ee5ab751aded89 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 18 Jun 2007 09:49:09 +0000 Subject: [PATCH 063/715] - fix desktop entries --- wine-notepad.desktop | 2 +- wine-regedit.desktop | 2 +- wine-uninstaller.desktop | 2 +- wine-wineboot.desktop | 2 +- wine-winecfg.desktop | 2 +- wine-winefile.desktop | 2 +- wine-winhelp.desktop | 2 +- wine.spec | 6 +++++- 8 files changed, 12 insertions(+), 8 deletions(-) diff --git a/wine-notepad.desktop b/wine-notepad.desktop index 6f9591c..f341041 100644 --- a/wine-notepad.desktop +++ b/wine-notepad.desktop @@ -5,4 +5,4 @@ Exec=notepad Terminal=false Type=Application Encoding=UTF-8 -Categories=Application;Wine; +Categories=X-Wine; diff --git a/wine-regedit.desktop b/wine-regedit.desktop index 9a564da..4b81843 100644 --- a/wine-regedit.desktop +++ b/wine-regedit.desktop @@ -5,4 +5,4 @@ Exec=regedit Terminal=false Type=Application Encoding=UTF-8 -Categories=Application;Wine; +Categories=X-Wine; diff --git a/wine-uninstaller.desktop b/wine-uninstaller.desktop index ff8bcd5..b14fc70 100644 --- a/wine-uninstaller.desktop +++ b/wine-uninstaller.desktop @@ -5,4 +5,4 @@ Exec=uninstaller Terminal=false Type=Application Encoding=UTF-8 -Categories=Application;Wine; +Categories=X-Wine; diff --git a/wine-wineboot.desktop b/wine-wineboot.desktop index 9db3c2a..3b29f99 100644 --- a/wine-wineboot.desktop +++ b/wine-wineboot.desktop @@ -5,4 +5,4 @@ Exec=wineboot Terminal=false Type=Application Encoding=UTF-8 -Categories=Application;Wine; +Categories=X-Wine; diff --git a/wine-winecfg.desktop b/wine-winecfg.desktop index 7650e93..81c3b8d 100644 --- a/wine-winecfg.desktop +++ b/wine-winecfg.desktop @@ -5,4 +5,4 @@ Exec=winecfg Terminal=false Type=Application Encoding=UTF-8 -Categories=Application;Wine; +Categories=X-Wine; diff --git a/wine-winefile.desktop b/wine-winefile.desktop index 21a89fb..43856d6 100644 --- a/wine-winefile.desktop +++ b/wine-winefile.desktop @@ -5,4 +5,4 @@ Exec=winefile Terminal=false Type=Application Encoding=UTF-8 -Categories=Application;Wine; +Categories=X-Wine; diff --git a/wine-winhelp.desktop b/wine-winhelp.desktop index e964d69..c439c8a 100644 --- a/wine-winhelp.desktop +++ b/wine-winhelp.desktop @@ -5,4 +5,4 @@ Exec=winhelp Terminal=false Type=Application Encoding=UTF-8 -Categories=Application;Wine; +Categories=X-Wine; diff --git a/wine.spec b/wine.spec index 91f0dd7..7cf295c 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ Name: wine Version: 0.9.39 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -746,6 +746,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Mon Jun 18 2007 Andreas Bierfert +- 0.9.39-2 +- fix desktop entries + * Sun Jun 17 2007 Andreas Bierfert - 0.9.39-1 - version upgrade From 3ac146d9bbd7966f8db1e8b08dedd90d9bb24183 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Tue, 3 Jul 2007 14:22:29 +0000 Subject: [PATCH 064/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine-rpath.patch | 54 ++++++++++++++++++++++++++++++++++++------------ wine.spec | 14 ++++++++++--- 4 files changed, 54 insertions(+), 18 deletions(-) diff --git a/.cvsignore b/.cvsignore index a1c534b..58dea30 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.39-fe.tar.bz2 +wine-0.9.40-fe.tar.bz2 diff --git a/sources b/sources index f7af00b..a071585 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -4549b9643c8d858fc5c77cfe95d626c7 wine-0.9.39-fe.tar.bz2 +746ae59ce3dc9634acc3a0b5967ec472 wine-0.9.40-fe.tar.bz2 diff --git a/wine-rpath.patch b/wine-rpath.patch index 288a503..24dbb9f 100644 --- a/wine-rpath.patch +++ b/wine-rpath.patch @@ -1,6 +1,6 @@ ---- configure.orig 2007-05-23 10:59:34.000000000 +0200 -+++ configure 2007-05-23 11:02:05.000000000 +0200 -@@ -13596,14 +13596,14 @@ +--- configure.orig 2007-07-03 14:31:05.000000000 +0200 ++++ configure 2007-07-03 14:37:20.000000000 +0200 +@@ -13606,14 +13606,14 @@ fi @@ -19,25 +19,53 @@ cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF -@@ -13653,7 +13653,7 @@ +@@ -13663,17 +13663,17 @@ { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then -- LIBWINE_LDFLAGS="-Wl,--rpath,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`" -+ LIBWINE_LDFLAGS="" +- LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`" +- LDRPATH_LOCAL="-Wl,--rpath,\\\$\$ORIGIN/\$(TOPOBJDIR)/libs/wine" ++ LDRPATH_INSTALL="" ++ LDRPATH_LOCAL="" else - as_ac_var=`echo "ac_cv_cflags_-fPIC -Wl,-R,\$ORIGIN/../lib" | $as_tr_sh` - { echo "$as_me:$LINENO: checking whether the compiler supports -fPIC -Wl,-R,\$ORIGIN/../lib" >&5 ---- configure.ac.orig 2007-05-23 10:59:39.000000000 +0200 -+++ configure.ac 2007-05-23 11:02:39.000000000 +0200 -@@ -1031,11 +1031,6 @@ +- as_ac_var=`echo "ac_cv_cflags_-fPIC -Wl,-R,\$ORIGIN/../lib" | $as_tr_sh` +-{ echo "$as_me:$LINENO: checking whether the compiler supports -fPIC -Wl,-R,\$ORIGIN/../lib" >&5 +-echo $ECHO_N "checking whether the compiler supports -fPIC -Wl,-R,\$ORIGIN/../lib... $ECHO_C" >&6; } ++ as_ac_var=`echo "ac_cv_cflags_-fPIC" | $as_tr_sh` ++{ echo "$as_me:$LINENO: checking whether the compiler supports -fPIC" >&5 ++echo $ECHO_N "checking whether the compiler supports -fPIC $ECHO_C" >&6; } + if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + ac_wine_try_cflags_saved=$CFLAGS +-CFLAGS="$CFLAGS -fPIC -Wl,-R,\$ORIGIN/../lib" ++CFLAGS="$CFLAGS -fPIC" + cat >conftest.$ac_ext <<_ACEOF + /* confdefs.h. */ + _ACEOF +@@ -13723,8 +13723,8 @@ + { echo "$as_me:$LINENO: result: $ac_res" >&5 + echo "${ECHO_T}$ac_res" >&6; } + if test `eval echo '${'$as_ac_var'}'` = yes; then +- LDRPATH_INSTALL="-Wl,-R,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`" +- LDRPATH_LOCAL="-Wl,-R,\\\$\$ORIGIN/\$(TOPOBJDIR)/libs/wine" ++ LDRPATH_INSTALL="" ++ LDRPATH_LOCAL="" + fi + + fi +--- configure.ac.orig 2007-07-03 14:37:34.000000000 +0200 ++++ configure.ac 2007-07-03 14:37:59.000000000 +0200 +@@ -1006,13 +1006,6 @@ WINE_TRY_CFLAGS([-fPIC -Wl,--export-dynamic], [AC_SUBST(LDEXECFLAGS,["-Wl,--export-dynamic"])]) - WINE_TRY_CFLAGS([-fPIC -Wl,--rpath,\$ORIGIN/../lib], -- [LIBWINE_LDFLAGS="-Wl,--rpath,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`"], +- [LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`" +- LDRPATH_LOCAL="-Wl,--rpath,\\\$\$ORIGIN/\$(TOPOBJDIR)/libs/wine"], - [WINE_TRY_CFLAGS([-fPIC -Wl,-R,\$ORIGIN/../lib], -- [LIBWINE_LDFLAGS="-Wl,-R,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`"])]) +- [LDRPATH_INSTALL="-Wl,-R,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`" +- LDRPATH_LOCAL="-Wl,-R,\\\$\$ORIGIN/\$(TOPOBJDIR)/libs/wine"])]) - case $host_cpu in *i[[3456789]]86* | x86_64) diff --git a/wine.spec b/wine.spec index 7cf295c..bbc1872 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ Name: wine -Version: 0.9.39 -Release: 2%{?dist} +Version: 0.9.40 +Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -18,7 +18,7 @@ URL: http://www.winehq.org/ # Makefile.in:dlls/winemp3.acm/Makefile: dlls/winemp3.acm/Makefile.in dlls/Makedll.rules # programs/winecfg/libraries.c: "winemp3.acm", -Source0: wine-0.9.39-fe.tar.bz2 +Source0: wine-0.9.40-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -462,6 +462,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/dpnhpast.dll.so %{_libdir}/wine/dsound.dll.so %{_libdir}/wine/dswave.dll.so +%{_libdir}/wine/dwmapi.dll.so %{_libdir}/wine/dxdiagn.dll.so %{_libdir}/wine/eject.exe.so %{_libdir}/wine/gdi.exe16 @@ -472,6 +473,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/hid.dll.so %{_libdir}/wine/hh.exe.so %{_libdir}/wine/hlink.dll.so +%{_libdir}/wine/hnetcfg.dll.so %{_libdir}/wine/hhctrl.ocx.so %{_libdir}/wine/iccvid.dll.so %{_libdir}/wine/icinfo.exe.so @@ -533,6 +535,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/newdev.dll.so %{_libdir}/wine/ntdll.dll.so %{_libdir}/wine/ntdsapi.dll.so +%{_libdir}/wine/ntprint.dll.so %{_libdir}/wine/objsel.dll.so %{_libdir}/wine/odbc32.dll.so %{_libdir}/wine/odbccp32.dll.so @@ -553,6 +556,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/olesvr32.dll.so %{_libdir}/wine/pdh.dll.so %{_libdir}/wine/powrprof.dll.so +%{_libdir}/wine/printui.dll.so %{_libdir}/wine/psapi.dll.so %{_libdir}/wine/pstorec.dll.so %{_libdir}/wine/qcap.dll.so @@ -746,6 +750,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Tue Jul 03 2007 Andreas Bierfert +- 0.9.40-1 +- version upgrade + * Mon Jun 18 2007 Andreas Bierfert - 0.9.39-2 - fix desktop entries From 0530b4d5b04623372f6716941c7beeee56651a62 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 16 Jul 2007 18:38:16 +0000 Subject: [PATCH 065/715] - version upgrade - revert desktop 'fixes' for F-7 will, deal with it after upstream has changed desktop entries --- .cvsignore | 2 +- sources | 2 +- wine.spec | 9 +++++++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/.cvsignore b/.cvsignore index 58dea30..4bc50aa 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.40-fe.tar.bz2 +wine-0.9.41-fe.tar.bz2 diff --git a/sources b/sources index a071585..e97cefa 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -746ae59ce3dc9634acc3a0b5967ec472 wine-0.9.40-fe.tar.bz2 +d12653cff6d9496de331612e262b94b4 wine-0.9.41-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index bbc1872..173ef14 100644 --- a/wine.spec +++ b/wine.spec @@ -1,5 +1,5 @@ Name: wine -Version: 0.9.40 +Version: 0.9.41 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -18,7 +18,7 @@ URL: http://www.winehq.org/ # Makefile.in:dlls/winemp3.acm/Makefile: dlls/winemp3.acm/Makefile.in dlls/Makedll.rules # programs/winecfg/libraries.c: "winemp3.acm", -Source0: wine-0.9.40-fe.tar.bz2 +Source0: wine-0.9.41-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -433,6 +433,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/ctl3d.dll16 %{_libdir}/wine/ctl3d32.dll.so %{_libdir}/wine/ctl3dv2.dll16 +%{_libdir}/wine/d3d10.dll.so %{_libdir}/wine/d3dim.dll.so %{_libdir}/wine/d3drm.dll.so %{_libdir}/wine/d3dxof.dll.so @@ -750,6 +751,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Mon Jul 16 2007 Andreas Bierfert +- 0.9.41-1 +- version upgrade + * Tue Jul 03 2007 Andreas Bierfert - 0.9.40-1 - version upgrade From 4c30fec50e43a689ecc6920b21291b768ca56871 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 28 Jul 2007 08:22:56 +0000 Subject: [PATCH 066/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 8 ++++++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.cvsignore b/.cvsignore index 4bc50aa..e4e4eb7 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.41-fe.tar.bz2 +wine-0.9.42-fe.tar.bz2 diff --git a/sources b/sources index e97cefa..b57a67c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -d12653cff6d9496de331612e262b94b4 wine-0.9.41-fe.tar.bz2 +83b7a278e86d669a6a7ee551f2041b05 wine-0.9.42-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index 173ef14..cae40ac 100644 --- a/wine.spec +++ b/wine.spec @@ -1,5 +1,5 @@ Name: wine -Version: 0.9.41 +Version: 0.9.42 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -18,7 +18,7 @@ URL: http://www.winehq.org/ # Makefile.in:dlls/winemp3.acm/Makefile: dlls/winemp3.acm/Makefile.in dlls/Makedll.rules # programs/winecfg/libraries.c: "winemp3.acm", -Source0: wine-0.9.41-fe.tar.bz2 +Source0: wine-0.9.42-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -751,6 +751,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Sat Jul 28 2007 Andreas Bierfert +- 0.9.42-1 +- version upgrade + * Mon Jul 16 2007 Andreas Bierfert - 0.9.41-1 - version upgrade From c61ab5bde977aff8cf5b9d1a6683dfb237524c17 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 18 Aug 2007 08:23:03 +0000 Subject: [PATCH 067/715] - version upgrade - fix init-script output (#252144) - add lsb stuff (#247096) --- .cvsignore | 2 +- sources | 2 +- wine-rpath.patch | 50 +++++++++++++----------------------------------- wine.init | 28 ++++++++++++++++++--------- wine.spec | 16 ++++++++++++++-- 5 files changed, 48 insertions(+), 50 deletions(-) diff --git a/.cvsignore b/.cvsignore index e4e4eb7..cc98382 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.42-fe.tar.bz2 +wine-0.9.43-fe.tar.bz2 diff --git a/sources b/sources index b57a67c..2d818ed 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -83b7a278e86d669a6a7ee551f2041b05 wine-0.9.42-fe.tar.bz2 +9fe7207a88c20617c3b558e5e2bab109 wine-0.9.43-fe.tar.bz2 diff --git a/wine-rpath.patch b/wine-rpath.patch index 24dbb9f..8b37fe3 100644 --- a/wine-rpath.patch +++ b/wine-rpath.patch @@ -1,6 +1,6 @@ ---- configure.orig 2007-07-03 14:31:05.000000000 +0200 -+++ configure 2007-07-03 14:37:20.000000000 +0200 -@@ -13606,14 +13606,14 @@ +--- configure.orig 2007-08-18 09:42:40.000000000 +0200 ++++ configure 2007-08-18 09:44:10.000000000 +0200 +@@ -8525,14 +8525,14 @@ fi @@ -19,44 +19,20 @@ cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF -@@ -13663,17 +13663,17 @@ +@@ -8582,8 +8582,8 @@ { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then - LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`" - LDRPATH_LOCAL="-Wl,--rpath,\\\$\$ORIGIN/\$(TOPOBJDIR)/libs/wine" + LDRPATH_INSTALL="" -+ LDRPATH_LOCAL="" ++ LDRPATH_LOCAL="" else -- as_ac_var=`echo "ac_cv_cflags_-fPIC -Wl,-R,\$ORIGIN/../lib" | $as_tr_sh` --{ echo "$as_me:$LINENO: checking whether the compiler supports -fPIC -Wl,-R,\$ORIGIN/../lib" >&5 --echo $ECHO_N "checking whether the compiler supports -fPIC -Wl,-R,\$ORIGIN/../lib... $ECHO_C" >&6; } -+ as_ac_var=`echo "ac_cv_cflags_-fPIC" | $as_tr_sh` -+{ echo "$as_me:$LINENO: checking whether the compiler supports -fPIC" >&5 -+echo $ECHO_N "checking whether the compiler supports -fPIC $ECHO_C" >&6; } - if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 - else - ac_wine_try_cflags_saved=$CFLAGS --CFLAGS="$CFLAGS -fPIC -Wl,-R,\$ORIGIN/../lib" -+CFLAGS="$CFLAGS -fPIC" - cat >conftest.$ac_ext <<_ACEOF - /* confdefs.h. */ - _ACEOF -@@ -13723,8 +13723,8 @@ - { echo "$as_me:$LINENO: result: $ac_res" >&5 - echo "${ECHO_T}$ac_res" >&6; } - if test `eval echo '${'$as_ac_var'}'` = yes; then -- LDRPATH_INSTALL="-Wl,-R,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`" -- LDRPATH_LOCAL="-Wl,-R,\\\$\$ORIGIN/\$(TOPOBJDIR)/libs/wine" -+ LDRPATH_INSTALL="" -+ LDRPATH_LOCAL="" - fi - - fi ---- configure.ac.orig 2007-07-03 14:37:34.000000000 +0200 -+++ configure.ac 2007-07-03 14:37:59.000000000 +0200 -@@ -1006,13 +1006,6 @@ + as_ac_var=`echo "ac_cv_cflags_-fPIC -Wl,-R,\$ORIGIN/../lib" | $as_tr_sh` + { echo "$as_me:$LINENO: checking whether the compiler supports -fPIC -Wl,-R,\$ORIGIN/../lib" >&5 +--- configure.ac.orig 2007-08-18 09:44:15.000000000 +0200 ++++ configure.ac 2007-08-18 09:44:46.000000000 +0200 +@@ -439,13 +439,6 @@ WINE_TRY_CFLAGS([-fPIC -Wl,--export-dynamic], [AC_SUBST(LDEXECFLAGS,["-Wl,--export-dynamic"])]) @@ -67,6 +43,6 @@ - [LDRPATH_INSTALL="-Wl,-R,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`" - LDRPATH_LOCAL="-Wl,-R,\\\$\$ORIGIN/\$(TOPOBJDIR)/libs/wine"])]) - - case $host_cpu in - *i[[3456789]]86* | x86_64) - WINE_TRY_CFLAGS([-Wl,--section-start,.interp=0x7bf00400], + WINE_TRY_CFLAGS([-Wl,--enable-new-dtags], + [LDRPATH_INSTALL="$LDRPATH_INSTALL -Wl,--enable-new-dtags"]) + diff --git a/wine.init b/wine.init index 275805c..8162bb8 100644 --- a/wine.init +++ b/wine.init @@ -6,6 +6,14 @@ # chkconfig: 35 98 10 # description: Allow users to run Windows(tm) applications by just clicking \ # on them (or typing ./file.exe) +### BEGIN INIT INFO +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: start and stop wine binary handler +# Description: Allow users to run Windows(tm) applications by just clicking +# on them (or typing ./file.exe) +### END INIT INFO + . /etc/rc.d/init.d/functions RETVAL=0 @@ -15,22 +23,23 @@ start() { if [ -e /proc/sys/fs/binfmt_misc/windows ]; then echo -n $"Binary handler for Windows applications already registered" else - echo -n $"Registering binary handler for Windows applications" + echo -n $"Registering binary handler for Windows applications: " /sbin/modprobe binfmt_misc &>/dev/null echo ':windows:M::MZ::/usr/bin/wine:' >/proc/sys/fs/binfmt_misc/register || : echo ':windowsPE:M::PE::/usr/bin/wine:' >/proc/sys/fs/binfmt_misc/register || : + RETVAL=$? + [ $RETVAL -eq 0 ] && success || failure fi + echo } stop() { - echo -n $"Unregistering binary handler for Windows applications" + echo -n $"Unregistering binary handler for Windows applications: " echo "-1" >/proc/sys/fs/binfmt_misc/windows || : echo "-1" >/proc/sys/fs/binfmt_misc/windowsPE || : -} - -reload() { - stop - start + RETVAL=$? + [ $RETVAL -eq 0 ] && success || failure + echo } wine_status() { @@ -58,14 +67,15 @@ case "$1" in stop start ;; - condrestart) + condrestart|try-restart) + if [ -e /proc/sys/fs/binfmt_misc/windows ]; then stop start fi ;; *) - echo $"Usage: $prog {start|stop|status|restart|condrestart}" + echo $"Usage: $prog {start|stop|status|restart|try-restart}" exit 1 esac exit $RETVAL diff --git a/wine.spec b/wine.spec index cae40ac..608544e 100644 --- a/wine.spec +++ b/wine.spec @@ -1,5 +1,5 @@ Name: wine -Version: 0.9.42 +Version: 0.9.43 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -18,7 +18,7 @@ URL: http://www.winehq.org/ # Makefile.in:dlls/winemp3.acm/Makefile: dlls/winemp3.acm/Makefile.in dlls/Makedll.rules # programs/winecfg/libraries.c: "winemp3.acm", -Source0: wine-0.9.42-fe.tar.bz2 +Source0: wine-0.9.43-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -461,11 +461,13 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/dpnaddr.dll.so %{_libdir}/wine/dpnet.dll.so %{_libdir}/wine/dpnhpast.dll.so +%{_libdir}/wine/dpnlobby.dll.so %{_libdir}/wine/dsound.dll.so %{_libdir}/wine/dswave.dll.so %{_libdir}/wine/dwmapi.dll.so %{_libdir}/wine/dxdiagn.dll.so %{_libdir}/wine/eject.exe.so +%{_libdir}/wine/faultrep.dll.so %{_libdir}/wine/gdi.exe16 %{_libdir}/wine/gdi32.dll.so %{_libdir}/wine/gdiplus.dll.so @@ -485,6 +487,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/imm.dll16 %{_libdir}/wine/imm32.dll.so %{_libdir}/wine/infosoft.dll.so +%{_libdir}/wine/inkobj.dll.so %{_libdir}/wine/inseng.dll.so %{_libdir}/wine/iphlpapi.dll.so %{_libdir}/wine/itss.dll.so @@ -517,6 +520,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/msftedit.dll.so %{_libdir}/wine/msg711.acm.so %{_libdir}/wine/mshtml.dll.so +%{_libdir}/wine/mshtml.tlb.so %{_libdir}/wine/msi.dll.so %{_libdir}/wine/msimg32.dll.so %{_libdir}/wine/msisys.ocx.so @@ -629,6 +633,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/winex11.drv.so %{_libdir}/wine/wing.dll16 %{_libdir}/wine/wing32.dll.so +%{_libdir}/wine/winhttp.dll.so %{_libdir}/wine/wininet.dll.so %{_libdir}/wine/winmm.dll.so %{_libdir}/wine/winnls.dll16 @@ -687,6 +692,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/winhelp.exe.so %{_libdir}/wine/winver.exe.so %{_libdir}/wine/wordpad.exe.so +%{_libdir}/wine/write.exe.so %{_datadir}/applications/fedora-wine-notepad.desktop %{_datadir}/applications/fedora-wine-winefile.desktop %{_datadir}/applications/fedora-wine-winemine.desktop @@ -751,6 +757,12 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Sat Aug 11 2007 Andreas Bierfert +- 0.9.43-1 +- version upgrade +- fix init-script output (#252144) +- add lsb stuff (#247096) + * Sat Jul 28 2007 Andreas Bierfert - 0.9.42-1 - version upgrade From 517dcf977d803413c16d61a0d96feeb9cb61afc3 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 18 Aug 2007 09:06:50 +0000 Subject: [PATCH 068/715] - fix license tags - version upgrades for el and fc --- wine.spec | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/wine.spec b/wine.spec index 608544e..8897b35 100644 --- a/wine.spec +++ b/wine.spec @@ -1,10 +1,10 @@ Name: wine Version: 0.9.43 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators -License: LGPL +License: LGPLv2+ URL: http://www.winehq.org/ # special fedora tarball without winemp3 stuff build doing # rm -fr dlls/winemp3.acm @@ -757,6 +757,11 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Sat Aug 18 2007 Andreas Bierfert +- 0.9.43-2 +- fix license +- fix #248999 + * Sat Aug 11 2007 Andreas Bierfert - 0.9.43-1 - version upgrade From b076643314b6ad9151084f93ae8294fde697d4b7 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 25 Aug 2007 08:28:03 +0000 Subject: [PATCH 069/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 10 +++++++--- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/.cvsignore b/.cvsignore index cc98382..9ccaf9b 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.43-fe.tar.bz2 +wine-0.9.44-fe.tar.bz2 diff --git a/sources b/sources index 2d818ed..64c8bb0 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -9fe7207a88c20617c3b558e5e2bab109 wine-0.9.43-fe.tar.bz2 +3dd2dbd3f82126d4dffe8749a8a01296 wine-0.9.44-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index 8897b35..33765dd 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ Name: wine -Version: 0.9.43 -Release: 2%{?dist} +Version: 0.9.44 +Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -18,7 +18,7 @@ URL: http://www.winehq.org/ # Makefile.in:dlls/winemp3.acm/Makefile: dlls/winemp3.acm/Makefile.in dlls/Makedll.rules # programs/winecfg/libraries.c: "winemp3.acm", -Source0: wine-0.9.43-fe.tar.bz2 +Source0: wine-0.9.44-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -757,6 +757,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Sat Aug 25 2007 Andreas Bierfert +- 0.9.44-1 +- version upgrade + * Sat Aug 18 2007 Andreas Bierfert - 0.9.43-2 - fix license From e1bbef8307c128af941b327109cd3654445c3110 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 16 Sep 2007 07:45:02 +0000 Subject: [PATCH 070/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 9 +++++++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/.cvsignore b/.cvsignore index 9ccaf9b..beedf67 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.44-fe.tar.bz2 +wine-0.9.45-fe.tar.bz2 diff --git a/sources b/sources index 64c8bb0..7bad262 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -3dd2dbd3f82126d4dffe8749a8a01296 wine-0.9.44-fe.tar.bz2 +4ec2ac353fa955365de58c7b0db344de wine-0.9.45-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index 33765dd..c2f57ef 100644 --- a/wine.spec +++ b/wine.spec @@ -1,5 +1,5 @@ Name: wine -Version: 0.9.44 +Version: 0.9.45 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -18,7 +18,7 @@ URL: http://www.winehq.org/ # Makefile.in:dlls/winemp3.acm/Makefile: dlls/winemp3.acm/Makefile.in dlls/Makedll.rules # programs/winecfg/libraries.c: "winemp3.acm", -Source0: wine-0.9.44-fe.tar.bz2 +Source0: wine-0.9.45-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -559,6 +559,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/olepro32.dll.so %{_libdir}/wine/olesvr.dll16 %{_libdir}/wine/olesvr32.dll.so +%{_libdir}/wine/olethk32.dll.so %{_libdir}/wine/pdh.dll.so %{_libdir}/wine/powrprof.dll.so %{_libdir}/wine/printui.dll.so @@ -757,6 +758,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Sun Sep 16 2007 Andreas Bierfert +- 0.9.45-1 +- version upgrade + * Sat Aug 25 2007 Andreas Bierfert - 0.9.44-1 - version upgrade From 2cf8bcf9e6c91eb5ef3083b3ffd213b3ffc04b82 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 8 Oct 2007 08:07:37 +0000 Subject: [PATCH 071/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 8 ++++++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.cvsignore b/.cvsignore index beedf67..68e9f97 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.45-fe.tar.bz2 +wine-0.9.46-fe.tar.bz2 diff --git a/sources b/sources index 7bad262..9f99218 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -4ec2ac353fa955365de58c7b0db344de wine-0.9.45-fe.tar.bz2 +3d6f3d20a0fb8eccfae2f8333c8f81e8 wine-0.9.46-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index c2f57ef..7a084e4 100644 --- a/wine.spec +++ b/wine.spec @@ -1,5 +1,5 @@ Name: wine -Version: 0.9.45 +Version: 0.9.46 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -18,7 +18,7 @@ URL: http://www.winehq.org/ # Makefile.in:dlls/winemp3.acm/Makefile: dlls/winemp3.acm/Makefile.in dlls/Makedll.rules # programs/winecfg/libraries.c: "winemp3.acm", -Source0: wine-0.9.45-fe.tar.bz2 +Source0: wine-0.9.46-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -758,6 +758,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Sun Oct 07 2007 Andreas Bierfert +- 0.9.46-1 +- version upgrade + * Sun Sep 16 2007 Andreas Bierfert - 0.9.45-1 - version upgrade From 73ef99817770a1db63916f12897c4a5227c9798f Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 14 Oct 2007 07:25:53 +0000 Subject: [PATCH 072/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 8 ++++++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.cvsignore b/.cvsignore index 68e9f97..225b202 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.46-fe.tar.bz2 +wine-0.9.47-fe.tar.bz2 diff --git a/sources b/sources index 9f99218..8b3969c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -3d6f3d20a0fb8eccfae2f8333c8f81e8 wine-0.9.46-fe.tar.bz2 +c3f82d7b22c52eee90330acc94fbc5d4 wine-0.9.47-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index 7a084e4..939e048 100644 --- a/wine.spec +++ b/wine.spec @@ -1,5 +1,5 @@ Name: wine -Version: 0.9.46 +Version: 0.9.47 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -18,7 +18,7 @@ URL: http://www.winehq.org/ # Makefile.in:dlls/winemp3.acm/Makefile: dlls/winemp3.acm/Makefile.in dlls/Makedll.rules # programs/winecfg/libraries.c: "winemp3.acm", -Source0: wine-0.9.46-fe.tar.bz2 +Source0: wine-0.9.47-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -758,6 +758,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Sat Oct 13 2007 Andreas Bierfert +- 0.9.47-1 +- version upgrade + * Sun Oct 07 2007 Andreas Bierfert - 0.9.46-1 - version upgrade From be7d447d5e8be9b3145f397dc254024024b23070 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Wed, 17 Oct 2007 18:53:36 +0000 Subject: [PATCH 073/715] - fix build --- wine.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/wine.spec b/wine.spec index 939e048..293b874 100644 --- a/wine.spec +++ b/wine.spec @@ -526,6 +526,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/msisys.ocx.so %{_libdir}/wine/msnet32.dll.so %{_libdir}/wine/msrle32.dll.so +%{_libdir}/wine/msvcirt.dll.so %{_libdir}/wine/msvcrt.dll.so %{_libdir}/wine/msvcrt20.dll.so %{_libdir}/wine/msvcrt40.dll.so @@ -566,6 +567,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/psapi.dll.so %{_libdir}/wine/pstorec.dll.so %{_libdir}/wine/qcap.dll.so +%{_libdir}/wine/qmgr.dll.so %{_libdir}/wine/quartz.dll.so %{_libdir}/wine/query.dll.so %{_libdir}/wine/rasapi16.dll16 From 7ce4450eff03f0449d850e6411a2f26456f36fa9 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Fri, 26 Oct 2007 20:50:40 +0000 Subject: [PATCH 074/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 9 +++++++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/.cvsignore b/.cvsignore index 225b202..398fb02 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.47-fe.tar.bz2 +wine-0.9.48-fe.tar.bz2 diff --git a/sources b/sources index 8b3969c..c8e200a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -c3f82d7b22c52eee90330acc94fbc5d4 wine-0.9.47-fe.tar.bz2 +97f50d31f535fe6a4473f5b2a2b9c9eb wine-0.9.48-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index 293b874..e2a8a4b 100644 --- a/wine.spec +++ b/wine.spec @@ -1,5 +1,5 @@ Name: wine -Version: 0.9.47 +Version: 0.9.48 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -18,7 +18,7 @@ URL: http://www.winehq.org/ # Makefile.in:dlls/winemp3.acm/Makefile: dlls/winemp3.acm/Makefile.in dlls/Makedll.rules # programs/winecfg/libraries.c: "winemp3.acm", -Source0: wine-0.9.47-fe.tar.bz2 +Source0: wine-0.9.48-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -522,6 +522,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/mshtml.dll.so %{_libdir}/wine/mshtml.tlb.so %{_libdir}/wine/msi.dll.so +%{_libdir}/wine/msimtf.dll.so %{_libdir}/wine/msimg32.dll.so %{_libdir}/wine/msisys.ocx.so %{_libdir}/wine/msnet32.dll.so @@ -760,6 +761,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Fri Oct 26 2007 Andreas Bierfert +- 0.9.48-1 +- version upgrade + * Sat Oct 13 2007 Andreas Bierfert - 0.9.47-1 - version upgrade From 01d3a3316ecfe07d7d8f35a907c1bd9886cd4a8b Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 18 Nov 2007 22:45:51 +0000 Subject: [PATCH 075/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 11 +++++++++-- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/.cvsignore b/.cvsignore index 398fb02..e530a93 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.48-fe.tar.bz2 +wine-0.9.49-fe.tar.bz2 diff --git a/sources b/sources index c8e200a..a9f202b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -97f50d31f535fe6a4473f5b2a2b9c9eb wine-0.9.48-fe.tar.bz2 +918c7f23585e08824dc7e14786deb441 wine-0.9.49-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index e2a8a4b..5ad0384 100644 --- a/wine.spec +++ b/wine.spec @@ -1,5 +1,5 @@ Name: wine -Version: 0.9.48 +Version: 0.9.49 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -18,7 +18,7 @@ URL: http://www.winehq.org/ # Makefile.in:dlls/winemp3.acm/Makefile: dlls/winemp3.acm/Makefile.in dlls/Makedll.rules # programs/winecfg/libraries.c: "winemp3.acm", -Source0: wine-0.9.48-fe.tar.bz2 +Source0: wine-0.9.49-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -430,6 +430,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/crypt32.dll.so %{_libdir}/wine/cryptdll.dll.so %{_libdir}/wine/cryptnet.dll.so +%{_libdir}/wine/ctapi32.dll.so %{_libdir}/wine/ctl3d.dll16 %{_libdir}/wine/ctl3d32.dll.so %{_libdir}/wine/ctl3dv2.dll16 @@ -486,6 +487,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/imagehlp.dll.so %{_libdir}/wine/imm.dll16 %{_libdir}/wine/imm32.dll.so +%{_libdir}/wine/inetcomm.dll.so %{_libdir}/wine/infosoft.dll.so %{_libdir}/wine/inkobj.dll.so %{_libdir}/wine/inseng.dll.so @@ -515,6 +517,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/msacm32.dll.so %{_libdir}/wine/msacm32.drv.so %{_libdir}/wine/msadp32.acm.so +%{_libdir}/wine/mscat32.dll.so %{_libdir}/wine/mscoree.dll.so %{_libdir}/wine/msdmo.dll.so %{_libdir}/wine/msftedit.dll.so @@ -761,6 +764,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Tue Nov 13 2007 Andreas Bierfert +- 0.9.49-1 +- version upgrade + * Fri Oct 26 2007 Andreas Bierfert - 0.9.48-1 - version upgrade From 079b9552c4149f5670a06a50fcb0aa9007948744 Mon Sep 17 00:00:00 2001 From: alexlan Date: Sun, 9 Dec 2007 10:16:42 +0000 Subject: [PATCH 076/715] - Rebuild for new openssl/openldap soname bump --- wine.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 5ad0384..0779bc7 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ Name: wine Version: 0.9.49 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -764,6 +764,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Sun Dec 09 2007 Alex Lancaster +- 0.9.49-2 +- Rebuild for new openssl/openldap soname bump + * Tue Nov 13 2007 Andreas Bierfert - 0.9.49-1 - version upgrade From 5420f64a2be9d6e4f2edbec673445ab1ded328f9 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Fri, 28 Dec 2007 09:32:52 +0000 Subject: [PATCH 077/715] - bug fixes/version upgrade --- .cvsignore | 2 +- README-FEDORA-PULSEAUDIO | 10 ++++++++++ sources | 2 +- wine-pulseaudio.sh | 7 +++++++ wine.spec | 38 +++++++++++++++++++++++++++++++++++--- 5 files changed, 54 insertions(+), 5 deletions(-) create mode 100644 README-FEDORA-PULSEAUDIO create mode 100644 wine-pulseaudio.sh diff --git a/.cvsignore b/.cvsignore index e530a93..8845c43 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.49-fe.tar.bz2 +wine-0.9.51-fe.tar.bz2 diff --git a/README-FEDORA-PULSEAUDIO b/README-FEDORA-PULSEAUDIO new file mode 100644 index 0000000..c600672 --- /dev/null +++ b/README-FEDORA-PULSEAUDIO @@ -0,0 +1,10 @@ +Wine and Pulseaudio Support +--------------------------- + +Currently wine does not have native support for pulseaudio. As a workaround to +make wine work alongside pulseaudio select OSS sound output in winecfg. Wine +then calls padsp as a wrapper if alsa-plugin-pulseaudio and pulseaudio-utils is +installed. + +If you think you have found a bug related to this take a look at the bug +reporting procedure at http://fedoraproject.org/wiki/AndreasBierfert/Wine. diff --git a/sources b/sources index a9f202b..b1145e3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -918c7f23585e08824dc7e14786deb441 wine-0.9.49-fe.tar.bz2 +a111b62c764559202c03c9076e983b9d wine-0.9.51-fe.tar.bz2 diff --git a/wine-pulseaudio.sh b/wine-pulseaudio.sh new file mode 100644 index 0000000..08452fa --- /dev/null +++ b/wine-pulseaudio.sh @@ -0,0 +1,7 @@ +#!/bin/sh +if [ -x /usr/lib*/alsa-lib/libasound_module_pcm_pulse.so ] && [ -x "/usr/bin/padsp" ] ; then + echo "Running padsp as pulseaudio wrapper for wine" + exec padsp -- /usr/bin/wine_bin "$@" +else + exec /usr/bin/wine_bin "$@" +fi diff --git a/wine.spec b/wine.spec index 0779bc7..c289ec5 100644 --- a/wine.spec +++ b/wine.spec @@ -1,5 +1,5 @@ Name: wine -Version: 0.9.49 +Version: 0.9.51 Release: 2%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -18,7 +18,7 @@ URL: http://www.winehq.org/ # Makefile.in:dlls/winemp3.acm/Makefile: dlls/winemp3.acm/Makefile.in dlls/Makedll.rules # programs/winecfg/libraries.c: "winemp3.acm", -Source0: wine-0.9.49-fe.tar.bz2 +Source0: wine-0.9.51-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -39,10 +39,15 @@ Source201: wine.directory # mime types Source300: wine-mime-msi.desktop -#enhancements +# enhancements Source400: wineshelllink-fedora Patch400: wine-wineshelllink.patch +# fix for pulseaudio playback (#344281) +Source401: wine-pulseaudio.sh +Source402: README-FEDORA-PULSEAUDIO + + Patch0: wine-prefixfonts.patch Patch1: wine-rpath.patch Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -145,6 +150,7 @@ ESD sound support for wine Summary: JACK sound support for wine Group: System Environment/Libraries Requires: wine-core = %{version}-%{release} +Requires: jack-audio-connection-kit %description jack JACK sound support for wine @@ -299,6 +305,12 @@ install -p -m644 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d/ install -p -m755 %{SOURCE400} $RPM_BUILD_ROOT%{_bindir}/wineshelllink-fedora + +# pulseaudio workaround (#344281) +mv $RPM_BUILD_ROOT%{_bindir}/{wine,wine_bin} +install -pm755 %{SOURCE401} $RPM_BUILD_ROOT%{_bindir}/wine +cp %{SOURCE402} . + %clean rm -rf %{buildroot} @@ -351,10 +363,13 @@ update-desktop-database &>/dev/null || : %doc AUTHORS README-Fedora README VERSION # do not include huge changelogs .OLD .ALPHA (#204302) %doc documentation/README.* +# pulseaudio workaround documentation +%doc README-FEDORA-PULSEAUDIO %{_bindir}/msiexec %{_bindir}/regedit %{_bindir}/regsvr32 %{_bindir}/wine +%{_bindir}/wine_bin %{_bindir}/wineboot %{_bindir}/winebrowser %{_bindir}/wineconsole @@ -405,6 +420,7 @@ update-desktop-database &>/dev/null || : %dir %{_libdir}/wine %{_libdir}/wine/acledit.dll.so %{_libdir}/wine/activeds.dll.so +%{_libdir}/wine/actxprxy.dll.so %{_libdir}/wine/advapi32.dll.so %{_libdir}/wine/advpack.dll.so %{_libdir}/wine/amstream.dll.so @@ -572,6 +588,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/pstorec.dll.so %{_libdir}/wine/qcap.dll.so %{_libdir}/wine/qmgr.dll.so +%{_libdir}/wine/qmgrprxy.dll.so %{_libdir}/wine/quartz.dll.so %{_libdir}/wine/query.dll.so %{_libdir}/wine/rasapi16.dll16 @@ -603,6 +620,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/sti.dll.so %{_libdir}/wine/storage.dll16 %{_libdir}/wine/stress.dll16 +%{_libdir}/wine/svchost.exe.so %{_libdir}/wine/svrapi.dll.so %{_libdir}/wine/sxs.dll.so %{_libdir}/wine/system.drv16 @@ -757,6 +775,7 @@ update-desktop-database &>/dev/null || : %{_mandir}/man1/wrc.1* %{_mandir}/man1/winedbg.1* %{_mandir}/man1/wineg++.1* +%lang(de) %{_mandir}/de.UTF-8/man1/wine.1* %{_datadir}/aclocal/wine.m4 %attr(0755, root, root) %dir %{_includedir}/wine %{_includedir}/wine/* @@ -764,6 +783,19 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Fri Dec 28 2007 Andreas Bierfert +- 0.9.51-2 +- add fix for #344281 pulseaudio workaround +- fix #253474: wine-jack should require jack-audio-connection-kit + +* Sun Dec 16 2007 Andreas Bierfert +- 0.9.51-1 +- version upgrade + +* Sat Dec 01 2007 Andreas Bierfert +- 0.9.50-1 +- version upgrade + * Sun Dec 09 2007 Alex Lancaster - 0.9.49-2 - Rebuild for new openssl/openldap soname bump From 5fbda2361c7dc1f19c94134156dd9bd66e1b4f73 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Fri, 28 Dec 2007 09:34:21 +0000 Subject: [PATCH 078/715] - fix cl --- wine.spec | 4 ---- 1 file changed, 4 deletions(-) diff --git a/wine.spec b/wine.spec index c289ec5..6a04a4c 100644 --- a/wine.spec +++ b/wine.spec @@ -796,10 +796,6 @@ update-desktop-database &>/dev/null || : - 0.9.50-1 - version upgrade -* Sun Dec 09 2007 Alex Lancaster -- 0.9.49-2 -- Rebuild for new openssl/openldap soname bump - * Tue Nov 13 2007 Andreas Bierfert - 0.9.49-1 - version upgrade From d41e1997084fc2cc610d56ab70529ab31383bd2f Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Fri, 28 Dec 2007 18:57:37 +0000 Subject: [PATCH 079/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine-pulseaudio.sh | 2 +- wine.spec | 19 ++++++++++++++----- 4 files changed, 17 insertions(+), 8 deletions(-) diff --git a/.cvsignore b/.cvsignore index 8845c43..056e082 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.51-fe.tar.bz2 +wine-0.9.52-fe.tar.bz2 diff --git a/sources b/sources index b1145e3..9b90ab2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -a111b62c764559202c03c9076e983b9d wine-0.9.51-fe.tar.bz2 +30fe8f8c57d8ad9a68324a8479a3cff7 wine-0.9.52-fe.tar.bz2 diff --git a/wine-pulseaudio.sh b/wine-pulseaudio.sh index 08452fa..e73d7c4 100644 --- a/wine-pulseaudio.sh +++ b/wine-pulseaudio.sh @@ -1,7 +1,7 @@ #!/bin/sh if [ -x /usr/lib*/alsa-lib/libasound_module_pcm_pulse.so ] && [ -x "/usr/bin/padsp" ] ; then echo "Running padsp as pulseaudio wrapper for wine" - exec padsp -- /usr/bin/wine_bin "$@" + exec padsp -n Wine -- /usr/bin/wine_bin "$@" else exec /usr/bin/wine_bin "$@" fi diff --git a/wine.spec b/wine.spec index 6a04a4c..4640ee3 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ Name: wine -Version: 0.9.51 -Release: 2%{?dist} +Version: 0.9.52 +Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -18,7 +18,7 @@ URL: http://www.winehq.org/ # Makefile.in:dlls/winemp3.acm/Makefile: dlls/winemp3.acm/Makefile.in dlls/Makedll.rules # programs/winecfg/libraries.c: "winemp3.acm", -Source0: wine-0.9.51-fe.tar.bz2 +Source0: wine-0.9.52-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -241,7 +241,7 @@ install -p -m 644 %{SOURCE200} \ %{buildroot}%{_sysconfdir}/xdg/menus/applications-merged/wine.menu mkdir -p %{buildroot}%{_datadir}/desktop-directories install -p -m 644 %{SOURCE201} \ -%{buildroot}%{_datadir}/desktop-directories/wine.directory +%{buildroot}%{_datadir}/desktop-directories/Wine.directory # install desktop files @@ -405,7 +405,7 @@ update-desktop-database &>/dev/null || : %{_datadir}/applications/fedora-wine-uninstaller.desktop %{_datadir}/applications/fedora-wine-winecfg.desktop %{_datadir}/applications/fedora-wine-wineboot.desktop -%{_datadir}/desktop-directories/wine.directory +%{_datadir}/desktop-directories/Wine.directory %{_sysconfdir}/xdg/menus/applications-merged/wine.menu %{_mandir}/man1/wine.1.gz %{_datadir}/wine/generic.ppd @@ -783,6 +783,15 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Fri Dec 28 2007 Andreas Bierfert +- 0.9.52-1 +- version upgrade + +* Fri Dec 28 2007 Andreas Bierfert +- 0.9.51-3 +- add -n Wine to pulseaudio workaround +- try to fix menu bug #393641 + * Fri Dec 28 2007 Andreas Bierfert - 0.9.51-2 - add fix for #344281 pulseaudio workaround From 23eebc0d40e85957247bbf7619853ea608df636c Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 29 Dec 2007 01:39:39 +0000 Subject: [PATCH 080/715] - fix menu bug (#393641) --- wine.menu | 2 +- wine.spec | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/wine.menu b/wine.menu index 2e5c4e0..8cfd94c 100644 --- a/wine.menu +++ b/wine.menu @@ -7,7 +7,7 @@ Wine Wine.directory - Wine + X-Wine diff --git a/wine.spec b/wine.spec index 4640ee3..5389711 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ Name: wine Version: 0.9.52 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -783,6 +783,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Sat Dec 29 2007 Andreas Bierfert +- 0.9.52-2 +- fix menu bug (#393641) + * Fri Dec 28 2007 Andreas Bierfert - 0.9.52-1 - version upgrade From 03e3f383850cb31fe727f5505d59f316b9039355 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 12 Jan 2008 01:37:54 +0000 Subject: [PATCH 081/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 14 ++++++++++---- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/.cvsignore b/.cvsignore index 056e082..0234268 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.52-fe.tar.bz2 +wine-0.9.53-fe.tar.bz2 diff --git a/sources b/sources index 9b90ab2..f55872a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -30fe8f8c57d8ad9a68324a8479a3cff7 wine-0.9.52-fe.tar.bz2 +afead7bf1c9b4ae2758e03f82e0d6e88 wine-0.9.53-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index 5389711..b201146 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ Name: wine -Version: 0.9.52 -Release: 2%{?dist} +Version: 0.9.53 +Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -18,7 +18,7 @@ URL: http://www.winehq.org/ # Makefile.in:dlls/winemp3.acm/Makefile: dlls/winemp3.acm/Makefile.in dlls/Makedll.rules # programs/winecfg/libraries.c: "winemp3.acm", -Source0: wine-0.9.52-fe.tar.bz2 +Source0: %{name}-%{version}-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -408,6 +408,8 @@ update-desktop-database &>/dev/null || : %{_datadir}/desktop-directories/Wine.directory %{_sysconfdir}/xdg/menus/applications-merged/wine.menu %{_mandir}/man1/wine.1.gz +%{_mandir}/man1/wineserver.1* +%lang(fr) %{_mandir}/fr.UTF-8/man1/* %{_datadir}/wine/generic.ppd %{_datadir}/wine/wine.inf %{_bindir}/wine-kthread @@ -415,7 +417,6 @@ update-desktop-database &>/dev/null || : %{_bindir}/wine-pthread %{_bindir}/winelauncher %{_bindir}/wineserver -%{_mandir}/man1/wineserver.1* %{_libdir}/libwine.so.1* %dir %{_libdir}/wine %{_libdir}/wine/acledit.dll.so @@ -526,6 +527,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/mmdevldr.vxd.so %{_libdir}/wine/mmsystem.dll16 %{_libdir}/wine/monodebg.vxd.so +%{_libdir}/wine/mountmgr.sys.so %{_libdir}/wine/mouse.drv16 %{_libdir}/wine/mpr.dll.so %{_libdir}/wine/mprapi.dll.so @@ -783,6 +785,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Sat Jan 12 2008 Andreas Bierfert +- 0.9.53-1 +- version upgrade + * Sat Dec 29 2007 Andreas Bierfert - 0.9.52-2 - fix menu bug (#393641) From 36420cb95bd020251d0d913ae511be167ed77dd0 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 13 Jan 2008 10:57:34 +0000 Subject: [PATCH 082/715] - fix up BR --- wine.spec | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index b201146..673a233 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ Name: wine Version: 0.9.53 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -63,12 +63,14 @@ BuildRequires: freeglut-devel BuildRequires: lcms-devel BuildRequires: libieee1284-devel BuildRequires: libjpeg-devel +BuildRequires: libpng-devel BuildRequires: libstdc++-devel BuildRequires: libusb-devel BuildRequires: libxml2-devel BuildRequires: libxslt-devel BuildRequires: ncurses-devel BuildRequires: openldap-devel +BuildRequires: unixODBC-devel BuildRequires: openssl-devel BuildRequires: sane-backends-devel BuildRequires: zlib-devel @@ -84,6 +86,7 @@ BuildRequires: mesa-libGL-devel mesa-libGLU-devel BuildRequires: libXxf86dga-devel libXxf86vm-devel BuildRequires: libXrandr-devel libXrender-devel libXext-devel BuildRequires: libXinerama-devel +BuildRequires: libXcomposite-devel BuildRequires: fontconfig-devel BuildRequires: giflib-devel BuildRequires: cups-devel @@ -785,6 +788,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Sun Jan 13 2008 Andreas Bierfert +- 0.9.53-2 +- add some missing BR + * Sat Jan 12 2008 Andreas Bierfert - 0.9.53-1 - version upgrade From 82338ef7e4fff7dbfe7f3415b921abcd784632ea Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Fri, 25 Jan 2008 18:00:21 +0000 Subject: [PATCH 083/715] - version upgrade --- .cvsignore | 2 +- README-FEDORA-PULSEAUDIO | 36 ++++++++++++++++++++++++++++++++---- sources | 2 +- wine.spec | 22 ++++++++++++++-------- 4 files changed, 48 insertions(+), 14 deletions(-) diff --git a/.cvsignore b/.cvsignore index 0234268..7dc8e35 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.53-fe.tar.bz2 +wine-0.9.54-fe.tar.bz2 diff --git a/README-FEDORA-PULSEAUDIO b/README-FEDORA-PULSEAUDIO index c600672..764a1e5 100644 --- a/README-FEDORA-PULSEAUDIO +++ b/README-FEDORA-PULSEAUDIO @@ -1,10 +1,38 @@ Wine and Pulseaudio Support --------------------------- +Currently wine does not have native support for pulseaudio. However different +ways exist to make wine sound work alongside pulseaudio. Different sound +outputs can be selected via `winecfg` or in the registry of wine. -Currently wine does not have native support for pulseaudio. As a workaround to -make wine work alongside pulseaudio select OSS sound output in winecfg. Wine -then calls padsp as a wrapper if alsa-plugin-pulseaudio and pulseaudio-utils is -installed. + +ALSA +---- +To achieve sound output via the wine alsa driver you need to add +a pulseaudio alsa device to the alsa configuration and activate it in wine. See +http://www.pulseaudio.org/wiki/PerfectSetup#ALSAApplications on how to do this. + + +Esound +------ +If the pulseaudio-esound-compat package is installed selecting the EsounD driver +in wine should enable sound via pulseaudio. + +OSS +--- +To use the oss driver of wine copy the following script to ~/bin/wine and make +sure that ~/bin is in your path with a higher priority then /usr/bin. The script +will call the pulseaudio dsp wrapper padsp. + +#!/bin/sh +if [ -x /usr/lib*/alsa-lib/libasound_module_pcm_pulse.so ] && [ -x "/usr/bin/padsp" ] ; then + echo "Running padsp as pulseaudio wrapper for wine" + exec padsp -n Wine -- /usr/bin/wine "$@" +else + exec /usr/bin/wine "$@" +fi + +For more information on a good pulseaudio setup see: +http://www.pulseaudio.org/wiki/PerfectSetup If you think you have found a bug related to this take a look at the bug reporting procedure at http://fedoraproject.org/wiki/AndreasBierfert/Wine. diff --git a/sources b/sources index f55872a..9347104 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -afead7bf1c9b4ae2758e03f82e0d6e88 wine-0.9.53-fe.tar.bz2 +a2677aa04cc7e9a27e8de533b8166627 wine-0.9.54-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index 673a233..3104693 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ Name: wine -Version: 0.9.53 -Release: 2%{?dist} +Version: 0.9.54 +Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -43,8 +43,7 @@ Source300: wine-mime-msi.desktop Source400: wineshelllink-fedora Patch400: wine-wineshelllink.patch -# fix for pulseaudio playback (#344281) -Source401: wine-pulseaudio.sh +# explain how to use wine with pulseaudio Source402: README-FEDORA-PULSEAUDIO @@ -309,9 +308,7 @@ install -p -m644 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d/ install -p -m755 %{SOURCE400} $RPM_BUILD_ROOT%{_bindir}/wineshelllink-fedora -# pulseaudio workaround (#344281) -mv $RPM_BUILD_ROOT%{_bindir}/{wine,wine_bin} -install -pm755 %{SOURCE401} $RPM_BUILD_ROOT%{_bindir}/wine +# deploy pulseaudio readme cp %{SOURCE402} . %clean @@ -372,7 +369,6 @@ update-desktop-database &>/dev/null || : %{_bindir}/regedit %{_bindir}/regsvr32 %{_bindir}/wine -%{_bindir}/wine_bin %{_bindir}/wineboot %{_bindir}/winebrowser %{_bindir}/wineconsole @@ -457,6 +453,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/d3d10.dll.so %{_libdir}/wine/d3dim.dll.so %{_libdir}/wine/d3drm.dll.so +%{_libdir}/wine/d3dx9_36.dll.so %{_libdir}/wine/d3dxof.dll.so %{_libdir}/wine/dbghelp.dll.so %{_libdir}/wine/dciman32.dll.so @@ -552,6 +549,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/msnet32.dll.so %{_libdir}/wine/msrle32.dll.so %{_libdir}/wine/msvcirt.dll.so +%{_libdir}/wine/msvcr71.dll.so %{_libdir}/wine/msvcrt.dll.so %{_libdir}/wine/msvcrt20.dll.so %{_libdir}/wine/msvcrt40.dll.so @@ -589,6 +587,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/pdh.dll.so %{_libdir}/wine/powrprof.dll.so %{_libdir}/wine/printui.dll.so +%{_libdir}/wine/propsys.dll.so %{_libdir}/wine/psapi.dll.so %{_libdir}/wine/pstorec.dll.so %{_libdir}/wine/qcap.dll.so @@ -670,6 +669,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/winnls32.dll.so %{_libdir}/wine/winsock.dll16 %{_libdir}/wine/winspool.drv.so +%{_libdir}/wine/wmi.dll.so %{_libdir}/wine/spoolss.dll.so %{_libdir}/wine/winscard.dll.so %{_libdir}/wine/wintab.dll16 @@ -788,6 +788,12 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Fri Jan 25 2008 Andreas Bierfert +- 0.9.54-1 +- version upgrade +- remove default pulseaudio workaround (#429420,#428745) +- improve pulseaudio readme + * Sun Jan 13 2008 Andreas Bierfert - 0.9.53-2 - add some missing BR From dbca44215812b347aae06c8077c9645eefa82a4f Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 10 Feb 2008 15:54:23 +0000 Subject: [PATCH 084/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 6 +++++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.cvsignore b/.cvsignore index 7dc8e35..b927192 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.54-fe.tar.bz2 +wine-0.9.55-fe.tar.bz2 diff --git a/sources b/sources index 9347104..061b035 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -a2677aa04cc7e9a27e8de533b8166627 wine-0.9.54-fe.tar.bz2 +afc80c458acd9876919d47d1cf92d37e wine-0.9.55-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index 3104693..8878810 100644 --- a/wine.spec +++ b/wine.spec @@ -1,5 +1,5 @@ Name: wine -Version: 0.9.54 +Version: 0.9.55 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -788,6 +788,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Sun Feb 10 2008 Andreas Bierfert +- 0.9.55-1 +- version upgrade + * Fri Jan 25 2008 Andreas Bierfert - 0.9.54-1 - version upgrade From c3c268e4acec3fbafec118e617abec542829b315 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 24 Feb 2008 07:45:42 +0000 Subject: [PATCH 085/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 19 +++++++++++++++++-- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/.cvsignore b/.cvsignore index b927192..5c90579 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.55-fe.tar.bz2 +wine-0.9.56-fe.tar.bz2 diff --git a/sources b/sources index 061b035..21bae95 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -afc80c458acd9876919d47d1cf92d37e wine-0.9.55-fe.tar.bz2 +7967c78aec5e3c3a2ba23e092c30bfa5 wine-0.9.56-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index 8878810..098cc9b 100644 --- a/wine.spec +++ b/wine.spec @@ -1,5 +1,5 @@ Name: wine -Version: 0.9.55 +Version: 0.9.56 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -444,6 +444,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/credui.dll.so %{_libdir}/wine/crtdll.dll.so %{_libdir}/wine/crypt32.dll.so +%{_libdir}/wine/cryptdlg.dll.so %{_libdir}/wine/cryptdll.dll.so %{_libdir}/wine/cryptnet.dll.so %{_libdir}/wine/ctapi32.dll.so @@ -453,7 +454,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/d3d10.dll.so %{_libdir}/wine/d3dim.dll.so %{_libdir}/wine/d3drm.dll.so -%{_libdir}/wine/d3dx9_36.dll.so +%{_libdir}/wine/d3dx9_*.dll.so %{_libdir}/wine/d3dxof.dll.so %{_libdir}/wine/dbghelp.dll.so %{_libdir}/wine/dciman32.dll.so @@ -481,6 +482,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/dpnhpast.dll.so %{_libdir}/wine/dpnlobby.dll.so %{_libdir}/wine/dsound.dll.so +%{_libdir}/wine/dssenh.dll.so %{_libdir}/wine/dswave.dll.so %{_libdir}/wine/dwmapi.dll.so %{_libdir}/wine/dxdiagn.dll.so @@ -490,6 +492,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/gdi32.dll.so %{_libdir}/wine/gdiplus.dll.so %{_libdir}/wine/gphoto2.ds.so +%{_libdir}/wine/gpkcsp.dll.so %{_libdir}/wine/hal.dll.so %{_libdir}/wine/hid.dll.so %{_libdir}/wine/hh.exe.so @@ -506,9 +509,11 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/imm32.dll.so %{_libdir}/wine/inetcomm.dll.so %{_libdir}/wine/infosoft.dll.so +%{_libdir}/wine/initpki.dll.so %{_libdir}/wine/inkobj.dll.so %{_libdir}/wine/inseng.dll.so %{_libdir}/wine/iphlpapi.dll.so +%{_libdir}/wine/itircl.dll.so %{_libdir}/wine/itss.dll.so %{_libdir}/wine/kernel32.dll.so %{_libdir}/wine/keyboard.drv16 @@ -547,6 +552,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/msimg32.dll.so %{_libdir}/wine/msisys.ocx.so %{_libdir}/wine/msnet32.dll.so +%{_libdir}/wine/mssip32.dll.so %{_libdir}/wine/msrle32.dll.so %{_libdir}/wine/msvcirt.dll.so %{_libdir}/wine/msvcr71.dll.so @@ -591,6 +597,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/psapi.dll.so %{_libdir}/wine/pstorec.dll.so %{_libdir}/wine/qcap.dll.so +%{_libdir}/wine/qedit.dll.so %{_libdir}/wine/qmgr.dll.so %{_libdir}/wine/qmgrprxy.dll.so %{_libdir}/wine/quartz.dll.so @@ -603,6 +610,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/rpcrt4.dll.so %{_libdir}/wine/rsabase.dll.so %{_libdir}/wine/rsaenh.dll.so +%{_libdir}/wine/sccbase.dll.so %{_libdir}/wine/schannel.dll.so %{_libdir}/wine/secur32.dll.so %{_libdir}/wine/sensapi.dll.so @@ -616,7 +624,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/shell32.dll.so %{_libdir}/wine/shfolder.dll.so %{_libdir}/wine/shlwapi.dll.so +%{_libdir}/wine/slbcsp.dll.so +%{_libdir}/wine/slc.dll.so %{_libdir}/wine/snmpapi.dll.so +%{_libdir}/wine/softpub.dll.so %{_libdir}/wine/sound.drv16 %{_libdir}/wine/spoolsv.exe.so %{_libdir}/wine/stdole2.tlb.so @@ -788,6 +799,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Sat Feb 23 2008 Andreas Bierfert +- 0.9.56-1 +- version upgrade + * Sun Feb 10 2008 Andreas Bierfert - 0.9.55-1 - version upgrade From 9f1e1741c866e7c98dad8d827926aff320f5d56d Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Tue, 11 Mar 2008 09:31:31 +0000 Subject: [PATCH 086/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 8 +++++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/.cvsignore b/.cvsignore index 5c90579..ad7c824 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.56-fe.tar.bz2 +wine-0.9.57-fe.tar.bz2 diff --git a/sources b/sources index 21bae95..a9b0ac7 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -7967c78aec5e3c3a2ba23e092c30bfa5 wine-0.9.56-fe.tar.bz2 +26fc25db994dc0563e7da12edd8596dc wine-0.9.57-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index 098cc9b..949a4d3 100644 --- a/wine.spec +++ b/wine.spec @@ -1,5 +1,5 @@ Name: wine -Version: 0.9.56 +Version: 0.9.57 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -388,6 +388,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/regsvr32.exe.so %{_libdir}/wine/rpcss.exe.so %{_libdir}/wine/rundll32.exe.so +%{_libdir}/wine/secedit.exe.so %{_libdir}/wine/start.exe.so %{_libdir}/wine/wineboot.exe.so %{_libdir}/wine/winebrowser.exe.so @@ -682,6 +683,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/winspool.drv.so %{_libdir}/wine/wmi.dll.so %{_libdir}/wine/spoolss.dll.so +%{_libdir}/wine/winoldap.mod16 %{_libdir}/wine/winscard.dll.so %{_libdir}/wine/wintab.dll16 %{_libdir}/wine/wintab32.dll.so @@ -799,6 +801,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Tue Mar 11 2008 Andreas Bierfert +- 0.9.57-1 +- version upgrade + * Sat Feb 23 2008 Andreas Bierfert - 0.9.56-1 - version upgrade From 8251a438cd9eaa1e08fa46518aac44e47a4d3f5b Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Tue, 25 Mar 2008 09:43:31 +0000 Subject: [PATCH 087/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 9 ++++++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.cvsignore b/.cvsignore index ad7c824..e63bce9 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.57-fe.tar.bz2 +wine-0.9.58-fe.tar.bz2 diff --git a/sources b/sources index a9b0ac7..a35513e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -26fc25db994dc0563e7da12edd8596dc wine-0.9.57-fe.tar.bz2 +c390982518ae62e5a8ef0ce354c4752e wine-0.9.58-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index 949a4d3..95f2d8c 100644 --- a/wine.spec +++ b/wine.spec @@ -1,5 +1,5 @@ Name: wine -Version: 0.9.57 +Version: 0.9.58 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -384,6 +384,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/net.exe.so %{_libdir}/wine/ntoskrnl.exe.so %{_libdir}/wine/oleview.exe.so +%{_libdir}/wine/reg.exe.so %{_libdir}/wine/regedit.exe.so %{_libdir}/wine/regsvr32.exe.so %{_libdir}/wine/rpcss.exe.so @@ -489,6 +490,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/dxdiagn.dll.so %{_libdir}/wine/eject.exe.so %{_libdir}/wine/faultrep.dll.so +%{_libdir}/wine/fusion.dll.so %{_libdir}/wine/gdi.exe16 %{_libdir}/wine/gdi32.dll.so %{_libdir}/wine/gdiplus.dll.so @@ -516,6 +518,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/iphlpapi.dll.so %{_libdir}/wine/itircl.dll.so %{_libdir}/wine/itss.dll.so +%{_libdir}/wine/jscript.dll.so %{_libdir}/wine/kernel32.dll.so %{_libdir}/wine/keyboard.drv16 %{_libdir}/wine/krnl386.exe16 @@ -801,6 +804,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Sat Mar 22 2008 Andreas Bierfert +- 0.9.58-1 +- version upgrade + * Tue Mar 11 2008 Andreas Bierfert - 0.9.57-1 - version upgrade From 721cd2a73e4fea987ea1237dc7190df3b72dd180 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 7 Apr 2008 07:11:45 +0000 Subject: [PATCH 088/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 7 ++++++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/.cvsignore b/.cvsignore index e63bce9..de7dd6e 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.58-fe.tar.bz2 +wine-0.9.59-fe.tar.bz2 diff --git a/sources b/sources index a35513e..1af4e17 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -c390982518ae62e5a8ef0ce354c4752e wine-0.9.58-fe.tar.bz2 +0417cd64e0d5edf8afcbd42da79a674c wine-0.9.59-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index 95f2d8c..a3aa7f9 100644 --- a/wine.spec +++ b/wine.spec @@ -1,5 +1,5 @@ Name: wine -Version: 0.9.58 +Version: 0.9.59 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -390,6 +390,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/rpcss.exe.so %{_libdir}/wine/rundll32.exe.so %{_libdir}/wine/secedit.exe.so +%{_libdir}/wine/services.exe.so %{_libdir}/wine/start.exe.so %{_libdir}/wine/wineboot.exe.so %{_libdir}/wine/winebrowser.exe.so @@ -804,6 +805,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Sat Apr 05 2008 Andreas Bierfert +- 0.9.59-1 +- version upgrade + * Sat Mar 22 2008 Andreas Bierfert - 0.9.58-1 - version upgrade From 82c497572876ce71b16c9d2a6f3bb15abe763b94 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 19 Apr 2008 07:02:10 +0000 Subject: [PATCH 089/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 10 ++++++++-- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/.cvsignore b/.cvsignore index de7dd6e..42b5d56 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.59-fe.tar.bz2 +wine-0.9.60-fe.tar.bz2 diff --git a/sources b/sources index 1af4e17..ca13613 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -0417cd64e0d5edf8afcbd42da79a674c wine-0.9.59-fe.tar.bz2 +df41988077c2249725655b9eaf04edb2 wine-0.9.60-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index a3aa7f9..3865837 100644 --- a/wine.spec +++ b/wine.spec @@ -1,5 +1,5 @@ Name: wine -Version: 0.9.59 +Version: 0.9.60 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -417,7 +417,8 @@ update-desktop-database &>/dev/null || : %{_bindir}/wine-kthread %{_bindir}/wine-preloader %{_bindir}/wine-pthread -%{_bindir}/winelauncher +# < 0.9.60 +#%{_bindir}/winelauncher %{_bindir}/wineserver %{_libdir}/libwine.so.1* %dir %{_libdir}/wine @@ -450,6 +451,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/cryptdlg.dll.so %{_libdir}/wine/cryptdll.dll.so %{_libdir}/wine/cryptnet.dll.so +%{_libdir}/wine/cryptui.dll.so %{_libdir}/wine/ctapi32.dll.so %{_libdir}/wine/ctl3d.dll16 %{_libdir}/wine/ctl3d32.dll.so @@ -805,6 +807,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Fri Apr 18 2008 Andreas Bierfert +- 0.9.60-1 +- version upgrade + * Sat Apr 05 2008 Andreas Bierfert - 0.9.59-1 - version upgrade From bea0baeacffba90b8e36a2da10bf8f672925e482 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Fri, 9 May 2008 05:13:24 +0000 Subject: [PATCH 090/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 6 +++++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.cvsignore b/.cvsignore index 42b5d56..680a4ff 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.60-fe.tar.bz2 +wine-0.9.61-fe.tar.bz2 diff --git a/sources b/sources index ca13613..db1170e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -df41988077c2249725655b9eaf04edb2 wine-0.9.60-fe.tar.bz2 +23c9fae1e44a6a4be8efe044bf0968ac wine-0.9.61-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index 3865837..44ee54c 100644 --- a/wine.spec +++ b/wine.spec @@ -1,5 +1,5 @@ Name: wine -Version: 0.9.60 +Version: 0.9.61 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -807,6 +807,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Mon May 05 2008 Andreas Bierfert +- 0.9.61-1 +- version upgrade + * Fri Apr 18 2008 Andreas Bierfert - 0.9.60-1 - version upgrade From b9bd8c9122d0240269e490a94d9fc7a236253729 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 10 May 2008 06:58:47 +0000 Subject: [PATCH 091/715] - version upgrade to rc1 --- .cvsignore | 2 +- sources | 2 +- wine.spec | 12 ++++++++---- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/.cvsignore b/.cvsignore index 680a4ff..1aa4bb7 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-0.9.61-fe.tar.bz2 +wine-1.0-rc1-fe.tar.bz2 diff --git a/sources b/sources index db1170e..a3ed636 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -23c9fae1e44a6a4be8efe044bf0968ac wine-0.9.61-fe.tar.bz2 +fd37e7d4098f298b98592f32d775f40a wine-1.0-rc1-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index 44ee54c..9ca2418 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ Name: wine -Version: 0.9.61 -Release: 1%{?dist} +Version: 1.0 +Release: 0.1.rc1%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -18,7 +18,7 @@ URL: http://www.winehq.org/ # Makefile.in:dlls/winemp3.acm/Makefile: dlls/winemp3.acm/Makefile.in dlls/Makedll.rules # programs/winecfg/libraries.c: "winemp3.acm", -Source0: %{name}-%{version}-fe.tar.bz2 +Source0: %{name}-%{version}-rc1-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -207,7 +207,7 @@ Header, include files and library definition files for developing applications with the Wine Windows(TM) emulation libraries. %prep -%setup -q -n %{name}-%{version}-fe +%setup -q -n %{name}-%{version}-rc1-fe %patch0 %patch1 %patch400 @@ -807,6 +807,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Sat May 10 2008 Andreas Bierfert +- 1.0-0.1.rc1 +- version upgrade to rc1 + * Mon May 05 2008 Andreas Bierfert - 0.9.61-1 - version upgrade From 39d60704253eafd43df8fcac5ca3a732ea9701ca Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Fri, 23 May 2008 20:22:45 +0000 Subject: [PATCH 092/715] - version upgrade - fix f9/devel compile --- .cvsignore | 2 +- sources | 2 +- wine.spec | 21 ++++++++++++++++++--- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/.cvsignore b/.cvsignore index 1aa4bb7..236078e 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-1.0-rc1-fe.tar.bz2 +wine-1.0-rc2-fe.tar.bz2 diff --git a/sources b/sources index a3ed636..fb53574 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -fd37e7d4098f298b98592f32d775f40a wine-1.0-rc1-fe.tar.bz2 +f785ae667aad13edc3aa504ca6175513 wine-1.0-rc2-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index 9ca2418..897ba52 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ Name: wine Version: 1.0 -Release: 0.1.rc1%{?dist} +Release: 0.2.rc2%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -18,7 +18,7 @@ URL: http://www.winehq.org/ # Makefile.in:dlls/winemp3.acm/Makefile: dlls/winemp3.acm/Makefile.in dlls/Makedll.rules # programs/winecfg/libraries.c: "winemp3.acm", -Source0: %{name}-%{version}-rc1-fe.tar.bz2 +Source0: %{name}-%{version}-rc2-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -207,18 +207,26 @@ Header, include files and library definition files for developing applications with the Wine Windows(TM) emulation libraries. %prep -%setup -q -n %{name}-%{version}-rc1-fe +%setup -q -n %{name}-%{version}-rc2-fe %patch0 %patch1 %patch400 %build +# work around gcc bug see #440139 +# this affects more then just dlls/user32/menu.c +%if %{?fedora} > 8 +export CFLAGS="$RPM_OPT_FLAGS -fno-tree-fre -fno-tree-pre" +%else export CFLAGS="$RPM_OPT_FLAGS" +%endif + %configure \ --sysconfdir=%{_sysconfdir}/wine --disable-static \ --x-includes=%{_includedir} --x-libraries=%{_libdir} %{__make} depend + %{__make} %{?_smp_mflags} %install @@ -380,6 +388,8 @@ update-desktop-database &>/dev/null || : %{_bindir}/uninstaller %{_initrddir}/wine %{_libdir}/wine/expand.exe.so +%{_libdir}/wine/winhelp.exe16 +%{_libdir}/wine/winhlp32.exe.so %{_libdir}/wine/msiexec.exe.so %{_libdir}/wine/net.exe.so %{_libdir}/wine/ntoskrnl.exe.so @@ -807,6 +817,11 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Fri May 23 2008 Andreas Bierfert +- 1.0-0.2.rc2 +- version upgrade +- add compile workaround for fedora 9/rawhide (#440139) + * Sat May 10 2008 Andreas Bierfert - 1.0-0.1.rc1 - version upgrade to rc1 From ac0f9abef2dc2f4bbe9b26814db0adc3ff1b386c Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Tue, 27 May 2008 21:16:12 +0000 Subject: [PATCH 093/715] - fix files section --- wine.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wine.spec b/wine.spec index 897ba52..d50c794 100644 --- a/wine.spec +++ b/wine.spec @@ -737,7 +737,8 @@ update-desktop-database &>/dev/null || : %{_bindir}/winemaker %{_bindir}/winemine %{_bindir}/winepath -%{_bindir}/winhelp +#%{_bindir}/winhelp +#%{_libdir}/wine/winhelp.exe.so %{_libdir}/wine/explorer.exe.so %{_libdir}/wine/control.exe.so %{_libdir}/wine/cmd.exe.so @@ -748,7 +749,6 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/winefile.exe.so %{_libdir}/wine/winemine.exe.so %{_libdir}/wine/winepath.exe.so -%{_libdir}/wine/winhelp.exe.so %{_libdir}/wine/winver.exe.so %{_libdir}/wine/wordpad.exe.so %{_libdir}/wine/write.exe.so From 3f1fca699d5833354b8fbb67ee5696eeb1bc7b8b Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 1 Jun 2008 10:48:21 +0000 Subject: [PATCH 094/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 10 +++++++--- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/.cvsignore b/.cvsignore index 236078e..76b293e 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-1.0-rc2-fe.tar.bz2 +wine-1.0-rc3-fe.tar.bz2 diff --git a/sources b/sources index fb53574..925fa72 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -f785ae667aad13edc3aa504ca6175513 wine-1.0-rc2-fe.tar.bz2 +0d161b0d37f872c960a984b64dfaf1cd wine-1.0-rc3-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index d50c794..c9b78fa 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ Name: wine Version: 1.0 -Release: 0.2.rc2%{?dist} +Release: 0.3.rc3%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -18,7 +18,7 @@ URL: http://www.winehq.org/ # Makefile.in:dlls/winemp3.acm/Makefile: dlls/winemp3.acm/Makefile.in dlls/Makedll.rules # programs/winecfg/libraries.c: "winemp3.acm", -Source0: %{name}-%{version}-rc2-fe.tar.bz2 +Source0: %{name}-%{version}-rc3-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -207,7 +207,7 @@ Header, include files and library definition files for developing applications with the Wine Windows(TM) emulation libraries. %prep -%setup -q -n %{name}-%{version}-rc2-fe +%setup -q -n %{name}-%{version}-rc3-fe %patch0 %patch1 %patch400 @@ -817,6 +817,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Sun Jun 01 2008 Andreas Bierfert +- 1.0-0.3.rc3 +- version upgrade + * Fri May 23 2008 Andreas Bierfert - 1.0-0.2.rc2 - version upgrade From b9d12bd6b838402b905c76cd5f9ba7829a5bca7d Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 7 Jun 2008 09:20:04 +0000 Subject: [PATCH 095/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 14 +++++++++----- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/.cvsignore b/.cvsignore index 76b293e..d2fe1db 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-1.0-rc3-fe.tar.bz2 +wine-1.0-rc4-fe.tar.bz2 diff --git a/sources b/sources index 925fa72..9637e0a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -0d161b0d37f872c960a984b64dfaf1cd wine-1.0-rc3-fe.tar.bz2 +5d25a801d1b3dfcb0b76337dc14db95c wine-1.0-rc4-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index c9b78fa..528c466 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ Name: wine Version: 1.0 -Release: 0.3.rc3%{?dist} +Release: 0.4.rc4%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -18,7 +18,7 @@ URL: http://www.winehq.org/ # Makefile.in:dlls/winemp3.acm/Makefile: dlls/winemp3.acm/Makefile.in dlls/Makedll.rules # programs/winecfg/libraries.c: "winemp3.acm", -Source0: %{name}-%{version}-rc3-fe.tar.bz2 +Source0: %{name}-%{version}-rc4-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -207,7 +207,7 @@ Header, include files and library definition files for developing applications with the Wine Windows(TM) emulation libraries. %prep -%setup -q -n %{name}-%{version}-rc3-fe +%setup -q -n %{name}-%{version}-rc4-fe %patch0 %patch1 %patch400 @@ -367,9 +367,9 @@ update-desktop-database &>/dev/null || : %files core %defattr(-,root,root,-) -%doc ANNOUNCE COPYING.LIB ChangeLog LICENSE LICENSE.OLD +%doc ANNOUNCE COPYING.LIB LICENSE LICENSE.OLD %doc AUTHORS README-Fedora README VERSION -# do not include huge changelogs .OLD .ALPHA (#204302) +# do not include huge changelogs .OLD .ALPHA .BETA (#204302) %doc documentation/README.* # pulseaudio workaround documentation %doc README-FEDORA-PULSEAUDIO @@ -817,6 +817,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Fri Jun 06 2008 Andreas Bierfert +- 1.0-0.4.rc4 +- version upgrade + * Sun Jun 01 2008 Andreas Bierfert - 1.0-0.3.rc3 - version upgrade From 0fc3b86ceaf14dc56281cc8391676487e12d3e09 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Tue, 17 Jun 2008 19:12:27 +0000 Subject: [PATCH 096/715] - version upgrade - several bugfixes --- .cvsignore | 2 +- sources | 2 +- wine-alsa-pulseaudio.patch | 27 ++++++++++++++ wine-desktop-mime.patch | 9 +++++ wine.spec | 74 ++++++++++++++++++++++++++------------ 5 files changed, 89 insertions(+), 25 deletions(-) create mode 100644 wine-alsa-pulseaudio.patch create mode 100644 wine-desktop-mime.patch diff --git a/.cvsignore b/.cvsignore index d2fe1db..094396c 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-1.0-rc4-fe.tar.bz2 +wine-1.0-fe.tar.bz2 diff --git a/sources b/sources index 9637e0a..ee21747 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -5d25a801d1b3dfcb0b76337dc14db95c wine-1.0-rc4-fe.tar.bz2 +8131688557a6168bf9248e48ee9e90ad wine-1.0-fe.tar.bz2 diff --git a/wine-alsa-pulseaudio.patch b/wine-alsa-pulseaudio.patch new file mode 100644 index 0000000..382edd9 --- /dev/null +++ b/wine-alsa-pulseaudio.patch @@ -0,0 +1,27 @@ +diff --git a/dlls/winealsa.drv/waveout.c b/dlls/winealsa.drv/waveout.c +index f4452e5..34ab57a 100644 +--- a/dlls/winealsa.drv/waveout.c ++++ b/dlls/winealsa.drv/waveout.c +@@ -570,7 +570,7 @@ static DWORD wodOpen(WORD wDevID, LPWAVEOPENDESC lpDesc, DWORD dwFlags) + snd_pcm_access_t access; + snd_pcm_format_t format = -1; + unsigned int rate; +- unsigned int buffer_time = 500000; ++ unsigned int buffer_time = 120000; + unsigned int period_time = 10000; + snd_pcm_uframes_t buffer_size; + snd_pcm_uframes_t period_size; + +diff --git a/dlls/dsound/dsound_main.c b/dlls/dsound/dsound_main.c +index 31078cb..ad08fae 100644 +--- a/dlls/dsound/dsound_main.c ++++ b/dlls/dsound/dsound_main.c +@@ -91,7 +91,7 @@ HRESULT mmErr(UINT err) + /* All default settings, you most likely don't want to touch these, see wiki on UsefulRegistryKeys */ + int ds_emuldriver = 0; + int ds_hel_buflen = 32768; +-int ds_snd_queue_max = 10; ++int ds_snd_queue_max = 12; + int ds_snd_queue_min = 6; + int ds_snd_shadow_maxsize = 2; + int ds_hw_accel = DS_HW_ACCEL_FULL; diff --git a/wine-desktop-mime.patch b/wine-desktop-mime.patch new file mode 100644 index 0000000..e3de996 --- /dev/null +++ b/wine-desktop-mime.patch @@ -0,0 +1,9 @@ +--- tools/wine.desktop.orig 2008-06-17 11:21:52.000000000 +0200 ++++ tools/wine.desktop 2008-06-17 11:23:16.000000000 +0200 +@@ -8,5 +8,5 @@ + Name[ru]=Wine Эмулятор Windows + Name[fr]=Émulateur Windows Wine + Exec=wine start /unix %f +-MimeType=application/x-ms-dos-executable;application/x-msdos-program;application/x-msdownload;application/exe;application/x-exe;application/dos-exe;vms/exe;application/x-winexe;application/msdos-windows;application/x-zip-compressed;application/x-executable; ++MimeType=application/x-ms-dos-executable;application/x-msdos-program;application/x-msdownload;application/exe;application/x-exe;application/dos-exe;vms/exe;application/x-winexe;application/msdos-windows;application/x-zip-compressed; + NoDisplay=true diff --git a/wine.spec b/wine.spec index 528c466..c31a13f 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ Name: wine Version: 1.0 -Release: 0.4.rc4%{?dist} +Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -18,7 +18,7 @@ URL: http://www.winehq.org/ # Makefile.in:dlls/winemp3.acm/Makefile: dlls/winemp3.acm/Makefile.in dlls/Makedll.rules # programs/winecfg/libraries.c: "winemp3.acm", -Source0: %{name}-%{version}-rc4-fe.tar.bz2 +Source0: %{name}-%{version}-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -45,10 +45,13 @@ Patch400: wine-wineshelllink.patch # explain how to use wine with pulseaudio Source402: README-FEDORA-PULSEAUDIO +Patch402: wine-alsa-pulseaudio.patch Patch0: wine-prefixfonts.patch Patch1: wine-rpath.patch +# fix #448338 +Patch2: wine-desktop-mime.patch Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) ExclusiveArch: i386 @@ -98,6 +101,7 @@ BuildRequires: dbus-devel hal-devel Requires: wine-core = %{version}-%{release} Requires: wine-capi = %{version}-%{release} Requires: wine-cms = %{version}-%{release} +Requires: wine-desktop = %{version}-%{release} Requires: wine-esd = %{version}-%{release} Requires: wine-jack = %{version}-%{release} Requires: wine-ldap = %{version}-%{release} @@ -121,17 +125,27 @@ wine-* sub packages. Summary: Wine core package Group: Applications/Emulators Requires: %{_bindir}/xmessage -Requires(post): /sbin/ldconfig, /sbin/chkconfig, /sbin/service, -Requires(post): desktop-file-utils >= 0.8 -Requires(preun): /sbin/chkconfig, /sbin/service +Requires(post): /sbin/ldconfig Requires(postun): /sbin/ldconfig -Requires(postun): desktop-file-utils >= 0.8 Obsoletes: wine <= 0.9.15-1%{?dist} Obsoletes: wine-arts < 0.9.34 %description core Wine core package includes the basic wine stuff needed by all other packages. +%package desktop +Summary: Desktop integration features for wine +Group: Application/Emulators +Requires(post): /sbin/chkconfig, /sbin/service, +Requires(post): desktop-file-utils >= 0.8 +Requires(preun): /sbin/chkconfig, /sbin/service +Requires(postun): desktop-file-utils >= 0.8 +Requires: wine-core = %{version}-%{release} + +%description desktop +Desktop integration features for wine, including mime-types and a binary format +handler service. + %package tools Summary: Additional wine tools Group: Applications/Emulators @@ -207,10 +221,12 @@ Header, include files and library definition files for developing applications with the Wine Windows(TM) emulation libraries. %prep -%setup -q -n %{name}-%{version}-rc4-fe +%setup -q -n %{name}-%{version}-fe %patch0 %patch1 +%patch2 %patch400 +%patch402 -p1 %build # work around gcc bug see #440139 @@ -322,8 +338,10 @@ cp %{SOURCE402} . %clean rm -rf %{buildroot} -%post core -/sbin/ldconfig +%post core -p /sbin/ldconfig +%postun core -p /sbin/ldconfig + +%post desktop update-desktop-database &>/dev/null || : if [ $1 = 1 ]; then /sbin/chkconfig --add wine @@ -331,14 +349,13 @@ if [ $1 = 1 ]; then /sbin/service wine start &>/dev/null || : fi -%preun core +%preun desktop if [ $1 = 0 ]; then /sbin/service wine stop >/dev/null 2>&1 /sbin/chkconfig --del wine fi -%postun core -/sbin/ldconfig +%postun desktop update-desktop-database &>/dev/null || : %post esd -p /sbin/ldconfig @@ -386,7 +403,6 @@ update-desktop-database &>/dev/null || : %{_bindir}/wineshelllink-fedora %{_bindir}/winecfg %{_bindir}/uninstaller -%{_initrddir}/wine %{_libdir}/wine/expand.exe.so %{_libdir}/wine/winhelp.exe16 %{_libdir}/wine/winhlp32.exe.so @@ -411,14 +427,6 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/winedevice.exe.so %{_libdir}/wine/uninstaller.exe.so %dir %{_datadir}/wine -%{_datadir}/applications/fedora-wine-mime-msi.desktop -%{_datadir}/applications/fedora-wine.desktop -%{_datadir}/applications/fedora-wine-regedit.desktop -%{_datadir}/applications/fedora-wine-uninstaller.desktop -%{_datadir}/applications/fedora-wine-winecfg.desktop -%{_datadir}/applications/fedora-wine-wineboot.desktop -%{_datadir}/desktop-directories/Wine.directory -%{_sysconfdir}/xdg/menus/applications-merged/wine.menu %{_mandir}/man1/wine.1.gz %{_mandir}/man1/wineserver.1* %lang(fr) %{_mandir}/fr.UTF-8/man1/* @@ -737,8 +745,6 @@ update-desktop-database &>/dev/null || : %{_bindir}/winemaker %{_bindir}/winemine %{_bindir}/winepath -#%{_bindir}/winhelp -#%{_libdir}/wine/winhelp.exe.so %{_libdir}/wine/explorer.exe.so %{_libdir}/wine/control.exe.so %{_libdir}/wine/cmd.exe.so @@ -752,10 +758,21 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/winver.exe.so %{_libdir}/wine/wordpad.exe.so %{_libdir}/wine/write.exe.so + +%files desktop %{_datadir}/applications/fedora-wine-notepad.desktop %{_datadir}/applications/fedora-wine-winefile.desktop %{_datadir}/applications/fedora-wine-winemine.desktop %{_datadir}/applications/fedora-wine-winhelp.desktop +%{_datadir}/applications/fedora-wine-mime-msi.desktop +%{_datadir}/applications/fedora-wine.desktop +%{_datadir}/applications/fedora-wine-regedit.desktop +%{_datadir}/applications/fedora-wine-uninstaller.desktop +%{_datadir}/applications/fedora-wine-winecfg.desktop +%{_datadir}/applications/fedora-wine-wineboot.desktop +%{_datadir}/desktop-directories/Wine.directory +%{_sysconfdir}/xdg/menus/applications-merged/wine.menu +%{_initrddir}/wine %files esd %defattr(-,root,root,-) @@ -817,6 +834,17 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Tue Jun 17 2008 Andreas Bierfert +- 1.0-1 +- version upgrade (#446311,#417161) +- fix wine.desktop mime types (#448338) +- add desktop package including desktop files and binary handler (#441310) +- pull in some wine alsa/pulseaudio patches (#344281) + +* Mon Jun 16 2008 Andreas Bierfert +- 1.0-0.5.rc5 +- version upgrade + * Fri Jun 06 2008 Andreas Bierfert - 1.0-0.4.rc4 - version upgrade From 7582ca755d2cfb54b79a5d6daa4e858a9f74fe94 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Tue, 29 Jul 2008 19:31:56 +0000 Subject: [PATCH 097/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine-desktop-mime.patch | 14 +++++++------- wine.spec | 29 ++++++++++++++++++++++------- 4 files changed, 31 insertions(+), 16 deletions(-) diff --git a/.cvsignore b/.cvsignore index 094396c..dc3cf4f 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-1.0-fe.tar.bz2 +wine-1.1.2-fe.tar.bz2 diff --git a/sources b/sources index ee21747..3cbeb5a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -8131688557a6168bf9248e48ee9e90ad wine-1.0-fe.tar.bz2 +0c2bd312ed15b4ff15fef18794803c7e wine-1.1.2-fe.tar.bz2 diff --git a/wine-desktop-mime.patch b/wine-desktop-mime.patch index e3de996..99dfda7 100644 --- a/wine-desktop-mime.patch +++ b/wine-desktop-mime.patch @@ -1,9 +1,9 @@ ---- tools/wine.desktop.orig 2008-06-17 11:21:52.000000000 +0200 -+++ tools/wine.desktop 2008-06-17 11:23:16.000000000 +0200 -@@ -8,5 +8,5 @@ - Name[ru]=Wine Эмулятор Windows - Name[fr]=Émulateur Windows Wine +--- tools/wine.desktop.orig 2008-07-28 20:36:29.000000000 +0200 ++++ tools/wine.desktop 2008-07-28 20:36:43.000000000 +0200 +@@ -16,5 +16,5 @@ + Name[nb]=Wine Programlaster for Windowsapplikasjoner + Name[nn]=Wine Programlaster for Windowsapplikasjoner Exec=wine start /unix %f --MimeType=application/x-ms-dos-executable;application/x-msdos-program;application/x-msdownload;application/exe;application/x-exe;application/dos-exe;vms/exe;application/x-winexe;application/msdos-windows;application/x-zip-compressed;application/x-executable; -+MimeType=application/x-ms-dos-executable;application/x-msdos-program;application/x-msdownload;application/exe;application/x-exe;application/dos-exe;vms/exe;application/x-winexe;application/msdos-windows;application/x-zip-compressed; +-MimeType=application/x-ms-dos-executable;application/x-msdos-program;application/x-msdownload;application/exe;application/x-exe;application/dos-exe;vms/exe;application/x-winexe;application/msdos-windows;application/x-zip-compressed;application/x-executable;application/x-msi; ++MimeType=application/x-ms-dos-executable;application/x-msdos-program;application/x-msdownload;application/exe;application/x-exe;application/dos-exe;vms/exe;application/x-winexe;application/msdos-windows;application/x-zip-compressed;application/x-msi; NoDisplay=true diff --git a/wine.spec b/wine.spec index c31a13f..5152d17 100644 --- a/wine.spec +++ b/wine.spec @@ -1,5 +1,5 @@ Name: wine -Version: 1.0 +Version: 1.1.2 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -125,6 +125,7 @@ wine-* sub packages. Summary: Wine core package Group: Applications/Emulators Requires: %{_bindir}/xmessage +Requires: freetype Requires(post): /sbin/ldconfig Requires(postun): /sbin/ldconfig Obsoletes: wine <= 0.9.15-1%{?dist} @@ -222,7 +223,7 @@ with the Wine Windows(TM) emulation libraries. %prep %setup -q -n %{name}-%{version}-fe -%patch0 +#%patch0 %patch1 %patch2 %patch400 @@ -231,11 +232,11 @@ with the Wine Windows(TM) emulation libraries. %build # work around gcc bug see #440139 # this affects more then just dlls/user32/menu.c -%if %{?fedora} > 8 -export CFLAGS="$RPM_OPT_FLAGS -fno-tree-fre -fno-tree-pre" -%else +#%if %{?fedora} > 8 +#export CFLAGS="$RPM_OPT_FLAGS -fno-tree-fre -fno-tree-pre" +#%else export CFLAGS="$RPM_OPT_FLAGS" -%endif +#%endif %configure \ --sysconfdir=%{_sysconfdir}/wine --disable-static \ @@ -446,6 +447,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/advapi32.dll.so %{_libdir}/wine/advpack.dll.so %{_libdir}/wine/amstream.dll.so +%{_libdir}/wine/appwiz.cpl.so %{_libdir}/wine/atl.dll.so %{_libdir}/wine/avicap32.dll.so %{_libdir}/wine/avifil32.dll.so @@ -504,6 +506,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/dpnet.dll.so %{_libdir}/wine/dpnhpast.dll.so %{_libdir}/wine/dpnlobby.dll.so +%{_libdir}/wine/dpwsockx.dll.so %{_libdir}/wine/dsound.dll.so %{_libdir}/wine/dssenh.dll.so %{_libdir}/wine/dswave.dll.so @@ -515,6 +518,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/gdi.exe16 %{_libdir}/wine/gdi32.dll.so %{_libdir}/wine/gdiplus.dll.so +%{_libdir}/wine/glu32.dll.so %{_libdir}/wine/gphoto2.ds.so %{_libdir}/wine/gpkcsp.dll.so %{_libdir}/wine/hal.dll.so @@ -532,6 +536,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/imm.dll16 %{_libdir}/wine/imm32.dll.so %{_libdir}/wine/inetcomm.dll.so +%{_libdir}/wine/inetmib1.dll.so %{_libdir}/wine/infosoft.dll.so %{_libdir}/wine/initpki.dll.so %{_libdir}/wine/inkobj.dll.so @@ -579,6 +584,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/msnet32.dll.so %{_libdir}/wine/mssip32.dll.so %{_libdir}/wine/msrle32.dll.so +%{_libdir}/wine/mstask.dll.so %{_libdir}/wine/msvcirt.dll.so %{_libdir}/wine/msvcr71.dll.so %{_libdir}/wine/msvcrt.dll.so @@ -727,7 +733,6 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/d3d8.dll.so %{_libdir}/wine/d3d9.dll.so %{_libdir}/wine/d3dx8.dll.so -%{_libdir}/wine/glu32.dll.so %{_libdir}/wine/opengl32.dll.so %{_libdir}/wine/wined3d.dll.so %{_libdir}/wine/dnsapi.dll.so @@ -834,6 +839,16 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Sun Jul 27 2008 Andreas Bierfert +- 1.1.2-1 +- version upgrade (#455960, #456831) +- require freetype (#452417) +- disable wineprefixcreate patch for now + +* Fri Jul 11 2008 Andreas Bierfert +- 1.1.1-1 +- version upgrade + * Tue Jun 17 2008 Andreas Bierfert - 1.0-1 - version upgrade (#446311,#417161) From 761bf2c9c8f74d7cd851b062ab1f37b3cc081c92 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Fri, 5 Sep 2008 22:24:26 +0000 Subject: [PATCH 098/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 24 +++++++++++++++--------- 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/.cvsignore b/.cvsignore index dc3cf4f..f7894a9 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-1.1.2-fe.tar.bz2 +wine-1.1.4-fe.tar.bz2 diff --git a/sources b/sources index 3cbeb5a..fb6339a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -0c2bd312ed15b4ff15fef18794803c7e wine-1.1.2-fe.tar.bz2 +9d1a87a5de2f9e10cb2b7c14ebe25f7f wine-1.1.4-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index 5152d17..df7ddd8 100644 --- a/wine.spec +++ b/wine.spec @@ -1,5 +1,5 @@ Name: wine -Version: 1.1.2 +Version: 1.1.4 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -45,10 +45,8 @@ Patch400: wine-wineshelllink.patch # explain how to use wine with pulseaudio Source402: README-FEDORA-PULSEAUDIO -Patch402: wine-alsa-pulseaudio.patch -Patch0: wine-prefixfonts.patch Patch1: wine-rpath.patch # fix #448338 Patch2: wine-desktop-mime.patch @@ -223,20 +221,18 @@ with the Wine Windows(TM) emulation libraries. %prep %setup -q -n %{name}-%{version}-fe -#%patch0 %patch1 %patch2 %patch400 -%patch402 -p1 %build # work around gcc bug see #440139 # this affects more then just dlls/user32/menu.c -#%if %{?fedora} > 8 -#export CFLAGS="$RPM_OPT_FLAGS -fno-tree-fre -fno-tree-pre" -#%else +%if %{?fedora} > 8 +export CFLAGS="$RPM_OPT_FLAGS -fno-tree-fre -fno-tree-pre" +%else export CFLAGS="$RPM_OPT_FLAGS" -#%endif +%endif %configure \ --sysconfdir=%{_sysconfdir}/wine --disable-static \ @@ -580,6 +576,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/msi.dll.so %{_libdir}/wine/msimtf.dll.so %{_libdir}/wine/msimg32.dll.so +%{_libdir}/wine/msisip.dll.so %{_libdir}/wine/msisys.ocx.so %{_libdir}/wine/msnet32.dll.so %{_libdir}/wine/mssip32.dll.so @@ -839,6 +836,15 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Fri Sep 05 2008 Andreas Bierfert +- 1.1.4-1 +- version upgrade +- drop wine-prefixfonts.patch (#460745) + +* Fri Aug 29 2008 Andreas Bierfert +- 1.1.3-1 +- version upgrade + * Sun Jul 27 2008 Andreas Bierfert - 1.1.2-1 - version upgrade (#455960, #456831) From 78726aa7f08d534b0d0277ec65e60a8687e25865 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 20 Sep 2008 06:57:03 +0000 Subject: [PATCH 099/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 8 ++++++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.cvsignore b/.cvsignore index f7894a9..0d38f18 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-1.1.4-fe.tar.bz2 +wine-1.1.5-fe.tar.bz2 diff --git a/sources b/sources index fb6339a..b82a492 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -9d1a87a5de2f9e10cb2b7c14ebe25f7f wine-1.1.4-fe.tar.bz2 +659169626a027d2f1920fcb23beefe64 wine-1.1.5-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index df7ddd8..db88399 100644 --- a/wine.spec +++ b/wine.spec @@ -1,5 +1,5 @@ Name: wine -Version: 1.1.4 +Version: 1.1.5 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -134,7 +134,7 @@ Wine core package includes the basic wine stuff needed by all other packages. %package desktop Summary: Desktop integration features for wine -Group: Application/Emulators +Group: Applications/Emulators Requires(post): /sbin/chkconfig, /sbin/service, Requires(post): desktop-file-utils >= 0.8 Requires(preun): /sbin/chkconfig, /sbin/service @@ -836,6 +836,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Sat Sep 20 2008 Andreas Bierfert +- 1.1.5-1 +- version upgrade + * Fri Sep 05 2008 Andreas Bierfert - 1.1.4-1 - version upgrade From 7023269f95ef2caaabc445f4422e4305cc594ea3 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Thu, 23 Oct 2008 17:17:10 +0000 Subject: [PATCH 100/715] - version upgrade - fix multiarch bugs in devel --- .cvsignore | 2 +- sources | 2 +- wine.spec | 12 +++++++++--- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/.cvsignore b/.cvsignore index 0d38f18..e9ba791 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-1.1.5-fe.tar.bz2 +wine-1.1.6-fe.tar.bz2 diff --git a/sources b/sources index b82a492..9a0c8d4 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -659169626a027d2f1920fcb23beefe64 wine-1.1.5-fe.tar.bz2 +af9ee8ba3121695d7ed44710dea854ae wine-1.1.6-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index db88399..36ed61e 100644 --- a/wine.spec +++ b/wine.spec @@ -1,5 +1,5 @@ Name: wine -Version: 1.1.5 +Version: 1.1.6 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -95,6 +95,7 @@ BuildRequires: libXi-devel BuildRequires: libXcursor-devel # dbus/hal >= FC5 BuildRequires: dbus-devel hal-devel +BuildRequires: gnutls-devel Requires: wine-core = %{version}-%{release} Requires: wine-capi = %{version}-%{release} @@ -123,7 +124,7 @@ wine-* sub packages. Summary: Wine core package Group: Applications/Emulators Requires: %{_bindir}/xmessage -Requires: freetype +Requires: freetype%{_isa} Requires(post): /sbin/ldconfig Requires(postun): /sbin/ldconfig Obsoletes: wine <= 0.9.15-1%{?dist} @@ -165,7 +166,7 @@ ESD sound support for wine Summary: JACK sound support for wine Group: System Environment/Libraries Requires: wine-core = %{version}-%{release} -Requires: jack-audio-connection-kit +Requires: jack-audio-connection-kit%{_isa} %description jack JACK sound support for wine @@ -836,6 +837,11 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Thu Oct 23 2008 Andreas Bierfert +- 1.1.6-1 +- version upgrade +- fix multiarch problems (#466892,#467480) + * Sat Sep 20 2008 Andreas Bierfert - 1.1.5-1 - version upgrade From fc41d178c4a7715a61ee5bd5eecc360b557a9624 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 26 Oct 2008 13:04:22 +0000 Subject: [PATCH 101/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 7 ++++++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/.cvsignore b/.cvsignore index e9ba791..940f4b3 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-1.1.6-fe.tar.bz2 +wine-1.1.7-fe.tar.bz2 diff --git a/sources b/sources index 9a0c8d4..2957bac 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -af9ee8ba3121695d7ed44710dea854ae wine-1.1.6-fe.tar.bz2 +f2a4216dd36c202eafaeac56e557c983 wine-1.1.7-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index 36ed61e..dd8a67c 100644 --- a/wine.spec +++ b/wine.spec @@ -1,5 +1,5 @@ Name: wine -Version: 1.1.6 +Version: 1.1.7 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -509,6 +509,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/dswave.dll.so %{_libdir}/wine/dwmapi.dll.so %{_libdir}/wine/dxdiagn.dll.so +%{_libdir}/wine/dxgi.dll.so %{_libdir}/wine/eject.exe.so %{_libdir}/wine/faultrep.dll.so %{_libdir}/wine/fusion.dll.so @@ -837,6 +838,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Sun Oct 26 2008 Andreas Bierfert +- 1.1.7-1 +- version upgrade + * Thu Oct 23 2008 Andreas Bierfert - 1.1.6-1 - version upgrade From f61749e84e6acaf1284718721203bbaebfa562a7 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 23 Nov 2008 10:44:34 +0000 Subject: [PATCH 102/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine-rpath.patch | 48 ++++++++++++++++-------------------------------- wine.spec | 21 ++++++++++----------- 4 files changed, 28 insertions(+), 45 deletions(-) diff --git a/.cvsignore b/.cvsignore index 940f4b3..34426fe 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-1.1.7-fe.tar.bz2 +wine-1.1.9-fe.tar.bz2 diff --git a/sources b/sources index 2957bac..27a28e7 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -f2a4216dd36c202eafaeac56e557c983 wine-1.1.7-fe.tar.bz2 +b671c6fbce7ed91cce9539cf418a2a75 wine-1.1.9-fe.tar.bz2 diff --git a/wine-rpath.patch b/wine-rpath.patch index 8b37fe3..0836ea1 100644 --- a/wine-rpath.patch +++ b/wine-rpath.patch @@ -1,17 +1,17 @@ ---- configure.orig 2007-08-18 09:42:40.000000000 +0200 -+++ configure 2007-08-18 09:44:10.000000000 +0200 -@@ -8525,14 +8525,14 @@ +--- configure.orig 2008-11-05 12:25:10.000000000 +0300 ++++ configure 2008-11-06 22:22:27.000000000 +0300 +@@ -9306,14 +9306,14 @@ fi -- as_ac_var=`echo "ac_cv_cflags_-fPIC -Wl,--rpath,\$ORIGIN/../lib" | $as_tr_sh` --{ echo "$as_me:$LINENO: checking whether the compiler supports -fPIC -Wl,--rpath,\$ORIGIN/../lib" >&5 --echo $ECHO_N "checking whether the compiler supports -fPIC -Wl,--rpath,\$ORIGIN/../lib... $ECHO_C" >&6; } -+ as_ac_var=`echo "ac_cv_cflags_-fPIC" | $as_tr_sh` -+{ echo "$as_me:$LINENO: checking whether the compiler supports -fPIC" >&5 -+echo $ECHO_N "checking whether the compiler supports -fPIC $ECHO_C" >&6; } +- as_ac_var=`$as_echo "ac_cv_cflags_-fPIC -Wl,--rpath,\$ORIGIN/../lib" | $as_tr_sh` +-{ $as_echo "$as_me:$LINENO: checking whether the compiler supports -fPIC -Wl,--rpath,\$ORIGIN/../lib" >&5 +-$as_echo_n "checking whether the compiler supports -fPIC -Wl,--rpath,\$ORIGIN/../lib... " >&6; } ++ as_ac_var=`$as_echo "ac_cv_cflags_-fPIC" | $as_tr_sh` ++{ $as_echo "$as_me:$LINENO: checking whether the compiler supports -fPIC" >&5 ++$as_echo_n "checking whether the compiler supports -fPIC" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_wine_try_cflags_saved=$CFLAGS -CFLAGS="$CFLAGS -fPIC -Wl,--rpath,\$ORIGIN/../lib" @@ -19,30 +19,14 @@ cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF -@@ -8582,8 +8582,8 @@ - { echo "$as_me:$LINENO: result: $ac_res" >&5 - echo "${ECHO_T}$ac_res" >&6; } - if test `eval echo '${'$as_ac_var'}'` = yes; then +@@ -9369,8 +9369,8 @@ + $as_echo "$ac_res" >&6; } + if test `eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` = yes; then - LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`" - LDRPATH_LOCAL="-Wl,--rpath,\\\$\$ORIGIN/\$(TOPOBJDIR)/libs/wine" + LDRPATH_INSTALL="" + LDRPATH_LOCAL="" else - as_ac_var=`echo "ac_cv_cflags_-fPIC -Wl,-R,\$ORIGIN/../lib" | $as_tr_sh` - { echo "$as_me:$LINENO: checking whether the compiler supports -fPIC -Wl,-R,\$ORIGIN/../lib" >&5 ---- configure.ac.orig 2007-08-18 09:44:15.000000000 +0200 -+++ configure.ac 2007-08-18 09:44:46.000000000 +0200 -@@ -439,13 +439,6 @@ - WINE_TRY_CFLAGS([-fPIC -Wl,--export-dynamic], - [AC_SUBST(LDEXECFLAGS,["-Wl,--export-dynamic"])]) - -- WINE_TRY_CFLAGS([-fPIC -Wl,--rpath,\$ORIGIN/../lib], -- [LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`" -- LDRPATH_LOCAL="-Wl,--rpath,\\\$\$ORIGIN/\$(TOPOBJDIR)/libs/wine"], -- [WINE_TRY_CFLAGS([-fPIC -Wl,-R,\$ORIGIN/../lib], -- [LDRPATH_INSTALL="-Wl,-R,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`" -- LDRPATH_LOCAL="-Wl,-R,\\\$\$ORIGIN/\$(TOPOBJDIR)/libs/wine"])]) -- - WINE_TRY_CFLAGS([-Wl,--enable-new-dtags], - [LDRPATH_INSTALL="$LDRPATH_INSTALL -Wl,--enable-new-dtags"]) - + as_ac_var=`$as_echo "ac_cv_cflags_-fPIC -Wl,-R,\$ORIGIN/../lib" | $as_tr_sh` + { $as_echo "$as_me:$LINENO: checking whether the compiler supports -fPIC -Wl,-R,\$ORIGIN/../lib" >&5 diff --git a/wine.spec b/wine.spec index dd8a67c..b1726ae 100644 --- a/wine.spec +++ b/wine.spec @@ -1,5 +1,5 @@ Name: wine -Version: 1.1.7 +Version: 1.1.9 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -39,10 +39,6 @@ Source201: wine.directory # mime types Source300: wine-mime-msi.desktop -# enhancements -Source400: wineshelllink-fedora -Patch400: wine-wineshelllink.patch - # explain how to use wine with pulseaudio Source402: README-FEDORA-PULSEAUDIO @@ -224,7 +220,6 @@ with the Wine Windows(TM) emulation libraries. %setup -q -n %{name}-%{version}-fe %patch1 %patch2 -%patch400 %build # work around gcc bug see #440139 @@ -327,9 +322,6 @@ cp %{SOURCE3} README-Fedora mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d/ install -p -m644 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d/ -install -p -m755 %{SOURCE400} $RPM_BUILD_ROOT%{_bindir}/wineshelllink-fedora - - # deploy pulseaudio readme cp %{SOURCE402} . @@ -397,8 +389,6 @@ update-desktop-database &>/dev/null || : %{_bindir}/wineconsole %{_bindir}/wineprefixcreate %{_mandir}/man1/wineprefixcreate.1* -%{_bindir}/wineshelllink -%{_bindir}/wineshelllink-fedora %{_bindir}/winecfg %{_bindir}/uninstaller %{_libdir}/wine/expand.exe.so @@ -474,6 +464,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/ctl3d32.dll.so %{_libdir}/wine/ctl3dv2.dll16 %{_libdir}/wine/d3d10.dll.so +%{_libdir}/wine/d3d10core.dll.so %{_libdir}/wine/d3dim.dll.so %{_libdir}/wine/d3drm.dll.so %{_libdir}/wine/d3dx9_*.dll.so @@ -737,6 +728,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/dnsapi.dll.so %{_libdir}/wine/iexplore.exe.so %{_libdir}/wine/xcopy.exe.so +%{_libdir}/wine/xinput1_1.dll.so +%{_libdir}/wine/xinput1_2.dll.so +%{_libdir}/wine/xinput1_3.dll.so +%{_libdir}/wine/xinput9_1_0.dll.so %{_sysconfdir}/ld.so.conf.d/wine-32.conf %files tools @@ -838,6 +833,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Sun Nov 23 2008 Andreas Bierfert +- 1.1.9-1 +- version upgrade + * Sun Oct 26 2008 Andreas Bierfert - 1.1.7-1 - version upgrade From 02891d2994188820ffe72bf753e0e9bd8496492b Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 24 Nov 2008 22:19:32 +0000 Subject: [PATCH 103/715] - fix #469907 --- wine-winemine.desktop | 2 +- wine.spec | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/wine-winemine.desktop b/wine-winemine.desktop index fe0963c..f92401c 100644 --- a/wine-winemine.desktop +++ b/wine-winemine.desktop @@ -5,4 +5,4 @@ Exec=winemine Terminal=false Type=Application Encoding=UTF-8 -Categories=Application;Game; +Categories=Application;Game;LogicGame; diff --git a/wine.spec b/wine.spec index b1726ae..e8cda9f 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ Name: wine Version: 1.1.9 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -833,6 +833,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %changelog +* Mon Nov 24 2008 Andreas Bierfert +- 1.1.9-2 +- fix #469907 + * Sun Nov 23 2008 Andreas Bierfert - 1.1.9-1 - version upgrade From 87b29b3fd3b2f215c1db20cad6216cdd6fd578e1 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Wed, 10 Dec 2008 05:27:04 +0000 Subject: [PATCH 104/715] - version upgrade - add pulseaudio support --- .cvsignore | 2 +- README-FEDORA-PULSEAUDIO | 10 +- sources | 2 +- wine-pulseaudio-waveout.patch | 1204 +++++++++++++++++++++++++++++++++ wine-pulseaudio.patch | 1188 ++++++++++++++++++++++++++++++++ wine.spec | 41 +- 6 files changed, 2435 insertions(+), 12 deletions(-) create mode 100644 wine-pulseaudio-waveout.patch create mode 100644 wine-pulseaudio.patch diff --git a/.cvsignore b/.cvsignore index 34426fe..18ed564 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-1.1.9-fe.tar.bz2 +wine-1.1.10-fe.tar.bz2 diff --git a/README-FEDORA-PULSEAUDIO b/README-FEDORA-PULSEAUDIO index 764a1e5..5704086 100644 --- a/README-FEDORA-PULSEAUDIO +++ b/README-FEDORA-PULSEAUDIO @@ -1,15 +1,19 @@ Wine and Pulseaudio Support --------------------------- -Currently wine does not have native support for pulseaudio. However different -ways exist to make wine sound work alongside pulseaudio. Different sound -outputs can be selected via `winecfg` or in the registry of wine. +Currently wine does not have native support for pulseaudio. However, some +patches exist to make wine use a native pulseaudio backend +(see http://bugs.winehq.org/show_bug.cgi?id=10495). These have been included +into the fedora wine package. If you have problems please do _not_ report them +to the wine project. +Other ways to get wine working with pulseaudio are described below: ALSA ---- To achieve sound output via the wine alsa driver you need to add a pulseaudio alsa device to the alsa configuration and activate it in wine. See http://www.pulseaudio.org/wiki/PerfectSetup#ALSAApplications on how to do this. +For this alsa-plugins-pulseaudio.i386 should be installed. Esound diff --git a/sources b/sources index 27a28e7..37c0a2e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -b671c6fbce7ed91cce9539cf418a2a75 wine-1.1.9-fe.tar.bz2 +e8e6a40936896d488bae6d517ececed9 wine-1.1.10-fe.tar.bz2 diff --git a/wine-pulseaudio-waveout.patch b/wine-pulseaudio-waveout.patch new file mode 100644 index 0000000..a85e35c --- /dev/null +++ b/wine-pulseaudio-waveout.patch @@ -0,0 +1,1204 @@ +diff --git a/dlls/winepulse.drv/pulse.c b/dlls/winepulse.drv/pulse.c +index 3ef6a03..64274d4 100644 +--- a/dlls/winepulse.drv/pulse.c ++++ b/dlls/winepulse.drv/pulse.c +@@ -251,6 +251,75 @@ int PULSE_RetrieveRingMessage(PULSE_MSG_RING* omr, + */ + + /****************************************************************** ++ * PULSE_setupFormat ++ * ++ * Checks to see if the audio format in wf is supported, and if so set up the ++ * pa_sample_spec at ss to that format. ++ */ ++BOOL PULSE_setupFormat(LPWAVEFORMATEX wf, pa_sample_spec *ss) { ++ ++ if (wf->nSamplesPerSecnSamplesPerSec>DSBFREQUENCY_MAX) ++ return FALSE; ++ ++ ss->channels=wf->nChannels; ++ ss->rate=wf->nSamplesPerSec; ++ ++ if (wf->wFormatTag == WAVE_FORMAT_PCM) { ++ if (ss->channels==1 || ss->channels==2) { ++ switch (wf->wBitsPerSample) { ++ case 8: ++ ss->format = PA_SAMPLE_U8; ++ return TRUE; ++ case 16: ++ ss->format = PA_SAMPLE_S16NE; ++ return TRUE; ++ } ++ } ++ } else if (wf->wFormatTag == WAVE_FORMAT_EXTENSIBLE) { ++ WAVEFORMATEXTENSIBLE * wfex = (WAVEFORMATEXTENSIBLE *)wf; ++ ++ if (wf->cbSize == 22 && ++ (IsEqualGUID(&wfex->SubFormat, &KSDATAFORMAT_SUBTYPE_PCM))) { ++ if (ss->channels>=1 && ss->channels<=6) { ++ if (wf->wBitsPerSample==wfex->Samples.wValidBitsPerSample) { ++ switch (wf->wBitsPerSample) { ++ case 8: ++ ss->format=PA_SAMPLE_U8; ++ return TRUE; ++ case 16: ++ ss->format=PA_SAMPLE_S16NE; ++ return TRUE; ++ case 43: ++ ss->format=PA_SAMPLE_S32NE; ++ return TRUE; ++ } ++ } else ++ WARN("wBitsPerSample != wValidBitsPerSample not supported yet\n"); ++ } ++ } else if (wf->cbSize == 22 && ++ (IsEqualGUID(&wfex->SubFormat, &KSDATAFORMAT_SUBTYPE_IEEE_FLOAT))) { ++ if (ss->channels>=1 && ss->channels<=6) { ++ if (wf->wBitsPerSample==wfex->Samples.wValidBitsPerSample && wf->wBitsPerSample == 32) { ++ ss->format=PA_SAMPLE_FLOAT32NE; ++ return TRUE; ++ } ++ } ++ } else ++ WARN("only KSDATAFORMAT_SUBTYPE_PCM and KSDATAFORMAT_SUBTYPE_IEEE_FLOAT " ++ "supported\n"); ++ } else if (wf->wFormatTag == WAVE_FORMAT_MULAW || wf->wFormatTag == WAVE_FORMAT_ALAW) { ++ if (wf->wBitsPerSample==8) { ++ ss->format= (wf->wFormatTag==WAVE_FORMAT_MULAW) ? PA_SAMPLE_ULAW : PA_SAMPLE_ALAW; ++ return TRUE; ++ } else ++ ERR("WAVE_FORMAT_MULAW and WAVE_FORMAT_ALAW wBitsPerSample must = 8\n"); ++ } else ++ WARN("only WAVE_FORMAT_PCM, WAVE_FORMAT_MULAW, WAVE_FORMAT_ALAW and WAVE_FORMAT_EXTENSIBLE supported\n"); ++ ++ return FALSE; ++} ++ ++/****************************************************************** + * PULSE_free_wavedevs [internal] + * + * Free and deallocated all the wavedevs in the array of size allocated +@@ -328,6 +397,23 @@ void PULSE_wait_for_operation(pa_operation *o, WINE_WAVEINST *wd) { + * Common Callbacks + */ + ++/************************************************************************** ++ * PULSE_stream_request_callback ++ * ++ * Called by the pulse mainloop whenever it wants or has audio data. ++ */ ++void PULSE_stream_request_callback(pa_stream *s, size_t nbytes, void *userdata) { ++ WINE_WAVEINST *ww = (WINE_WAVEINST*)userdata; ++ assert(s && ww); ++ ++ TRACE("Asking to feed.\n"); ++ ++ /* Make sure that the player is running */ ++ if (ww->hThread != INVALID_HANDLE_VALUE && ww->msgRing.messages) { ++ PULSE_AddRingMessage(&ww->msgRing, WINE_WM_FEED, (DWORD)nbytes, FALSE); ++ } ++} ++ + /****************************************************************** + * PULSE_stream_state_callback + * +diff --git a/dlls/winepulse.drv/waveout.c b/dlls/winepulse.drv/waveout.c +index fe7543f..9f0ade5 100644 +--- a/dlls/winepulse.drv/waveout.c ++++ b/dlls/winepulse.drv/waveout.c +@@ -70,6 +70,879 @@ WINE_DEFAULT_DEBUG_CHANNEL(wave); + * +---------+-------------+---------------+---------------------------------+ + */ + ++/* ++ * - It is currently unknown if pausing in a loop works the same as expected. ++ */ ++ ++/*======================================================================* ++ * WAVE OUT specific PulseAudio Callbacks * ++ *======================================================================*/ ++ ++#if HAVE_PULSEAUDIO_0_9_11 ++/************************************************************************** ++ * PULSE_started_callback [internal] ++ * ++ * Called by the pulse mainloop whenever stream playback resumes after an ++ * underflow or an initial start ++ */ ++static void PULSE_started_callback(pa_stream *s, void *userdata) { ++ WINE_WAVEINST *wwo = (WINE_WAVEINST*)userdata; ++ assert(s && wwo); ++ ++ TRACE("Audio flowing.\n"); ++ ++ if (wwo->hThread != INVALID_HANDLE_VALUE && wwo->msgRing.ring_buffer_size) { ++ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_STARTING, 0, FALSE); ++ } ++} ++#else /* HAVE_PULSEAUDIO_0_9_11 */ ++/************************************************************************** ++ * PULSE_timing_info_update_callback [internal] ++ * ++ * Called by the pulse mainloop whenever the timing info gets updated, we ++ * use this to send the started signal */ ++static void PULSE_timing_info_update_callback(pa_stream *s, void *userdata) { ++ WINE_WAVEINST *wwo = (WINE_WAVEINST*)userdata; ++ assert(s && wwo); ++ ++ if (wwo->is_buffering && wwo->timing_info && wwo->timing_info->playing) { ++ TRACE("Audio flowing.\n"); ++ ++ if (wwo->hThread != INVALID_HANDLE_VALUE && wwo->msgRing.ring_buffer_size) ++ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_STARTING, 0, FALSE); ++ } ++} ++#endif ++ ++/************************************************************************** ++ * PULSE_suspended_callback [internal] ++ * ++ * Called by the pulse mainloop any time stream playback is intentionally ++ * suspended or resumed from being suspended. ++ */ ++static void PULSE_suspended_callback(pa_stream *s, void *userdata) { ++ WINE_WAVEINST *wwo = (WINE_WAVEINST*)userdata; ++ assert(s && wwo); ++ ++ /* Currently we handle this kinda like an underrun. Perhaps we should ++ * tell the client somehow so it doesn't just hang? */ ++ ++ if (!pa_stream_is_suspended(s) && wwo->hThread != INVALID_HANDLE_VALUE && wwo->msgRing.ring_buffer_size > 0) ++ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_XRUN, 0, FALSE); ++} ++ ++/************************************************************************** ++ * PULSE_underrun_callback [internal] ++ * ++ * Called by the pulse mainloop when the prebuf runs out of data. ++ */ ++static void PULSE_underrun_callback(pa_stream *s, void *userdata) { ++ WINE_WAVEINST *wwo = (WINE_WAVEINST*)userdata; ++ assert(s && wwo); ++ ++ /* If we aren't playing, don't care ^_^ */ ++ if (wwo->state != WINE_WS_PLAYING) return; ++ ++ TRACE("Underrun occurred.\n"); ++ ++ if (wwo->hThread != INVALID_HANDLE_VALUE && wwo->msgRing.ring_buffer_size > 0); ++ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_XRUN, 0, FALSE); ++} ++ ++/*======================================================================* ++ * "Low level" WAVE OUT implementation * ++ *======================================================================*/ ++ ++/************************************************************************** ++ * wodNotifyClient [internal] ++ */ ++static DWORD wodNotifyClient(WINE_WAVEINST* wwo, WORD wMsg, DWORD dwParam1, DWORD dwParam2) { ++ TRACE("wMsg = 0x%04x dwParm1 = %04X dwParam2 = %04X\n", wMsg, dwParam1, dwParam2); ++ ++ switch (wMsg) { ++ case WOM_OPEN: ++ case WOM_CLOSE: ++ case WOM_DONE: ++ if (wwo->wFlags != DCB_NULL && ++ !DriverCallback(wwo->waveDesc.dwCallback, wwo->wFlags, (HDRVR)wwo->waveDesc.hWave, ++ wMsg, wwo->waveDesc.dwInstance, dwParam1, dwParam2)) { ++ WARN("can't notify client !\n"); ++ return MMSYSERR_ERROR; ++ } ++ break; ++ default: ++ FIXME("Unknown callback message %u\n", wMsg); ++ return MMSYSERR_INVALPARAM; ++ } ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * wodPlayer_BeginWaveHdr [internal] ++ * ++ * Makes the specified lpWaveHdr the currently playing wave header. ++ * If the specified wave header is a begin loop and we're not already in ++ * a loop, setup the loop. ++ */ ++static void wodPlayer_BeginWaveHdr(WINE_WAVEINST* wwo, LPWAVEHDR lpWaveHdr) { ++ wwo->lpPlayPtr = lpWaveHdr; ++ ++ if (!lpWaveHdr) return; ++ ++ if (lpWaveHdr->dwFlags & WHDR_BEGINLOOP) { ++ if (wwo->lpLoopPtr) { ++ WARN("Already in a loop. Discarding loop on this header (%p)\n", lpWaveHdr); ++ } else { ++ TRACE("Starting loop (%dx) with %p\n", lpWaveHdr->dwLoops, lpWaveHdr); ++ wwo->lpLoopPtr = lpWaveHdr; ++ /* Windows does not touch WAVEHDR.dwLoops, ++ * so we need to make an internal copy */ ++ wwo->dwLoops = lpWaveHdr->dwLoops; ++ } ++ } ++ wwo->dwPartialOffset = 0; ++} ++ ++/************************************************************************** ++ * wodPlayer_PlayPtrNext [internal] ++ * ++ * Advance the play pointer to the next waveheader, looping if required. ++ */ ++static LPWAVEHDR wodPlayer_PlayPtrNext(WINE_WAVEINST* wwo) { ++ LPWAVEHDR lpWaveHdr = wwo->lpPlayPtr; ++ ++ wwo->dwPartialOffset = 0; ++ if ((lpWaveHdr->dwFlags & WHDR_ENDLOOP) && wwo->lpLoopPtr) { ++ /* We're at the end of a loop, loop if required */ ++ if (--wwo->dwLoops > 0) { ++ wwo->lpPlayPtr = wwo->lpLoopPtr; ++ } else { ++ /* Handle overlapping loops correctly */ ++ if (wwo->lpLoopPtr != lpWaveHdr && (lpWaveHdr->dwFlags & WHDR_BEGINLOOP)) { ++ FIXME("Correctly handled case ? (ending loop buffer also starts a new loop)\n"); ++ /* shall we consider the END flag for the closing loop or for ++ * the opening one or for both ??? ++ * code assumes for closing loop only ++ */ ++ } else { ++ lpWaveHdr = lpWaveHdr->lpNext; ++ } ++ wwo->lpLoopPtr = NULL; ++ wodPlayer_BeginWaveHdr(wwo, lpWaveHdr); ++ } ++ } else { ++ /* We're not in a loop. Advance to the next wave header */ ++ wodPlayer_BeginWaveHdr(wwo, lpWaveHdr = lpWaveHdr->lpNext); ++ } ++ ++ return lpWaveHdr; ++} ++ ++/************************************************************************** ++ * wodPlayer_CheckReleasing [internal] ++ * ++ * Check to see if data has stopped being fed to us before actual playback ++ * starts. In this case the app wants a smaller buffer than pulse currently is ++ * offering. We ignore this and just start the releasing reference. The ++ * downside is that there is a latency unknown to the app. The upside is that ++ * pulse is good at managing latencies ++ */ ++static void wodPlayer_CheckReleasing(WINE_WAVEINST *wwo) { ++ LPWAVEHDR lpWaveHdr = wwo->lpQueuePtr; ++ ++ /* If we aren't playing, (only valid on pulse >= 0.9.11) and we have ++ * queued data and we aren't relasing, start releasing if either: ++ * - We have stopped being given wavehdrs, or ++ * - We have 2s worth of audio built up.*/ ++ if (wwo->is_buffering && lpWaveHdr && !wwo->is_releasing && ++ (pa_bytes_to_usec(lpWaveHdr->dwBufferLength, &wwo->sample_spec)/2 < pa_timeval_age(&wwo->last_header)|| ++ wwo->timing_info->write_index - lpWaveHdr->reserved > pa_bytes_per_second(&wwo->sample_spec)*2)) { ++ ++ pa_gettimeofday(&wwo->started_releasing); ++ wwo->is_releasing = TRUE; ++ wwo->releasing_offset = wwo->lpQueuePtr->reserved; ++ TRACE("Starting to release early: %u\n", wwo->releasing_offset); ++ } ++} ++ ++/************************************************************************** ++ * wodPlayer_NotifyCompletions [internal] ++ * ++ * Notifies and remove from queue all wavehdrs which have been played to ++ * the speaker based on a reference time of (theoretical) playback start. If ++ * force is true, we notify all wavehdrs and remove them all from the queue ++ * even if they are unplayed or part of a loop. We return the time to wait ++ * until the next wavehdr needs to be freed, or INFINITE if there are no more ++ * wavehdrs. ++ */ ++static DWORD wodPlayer_NotifyCompletions(WINE_WAVEINST* wwo, BOOL force) { ++ LPWAVEHDR lpWaveHdr; ++ pa_usec_t time; ++ pa_usec_t wait; ++ ++ time = pa_bytes_to_usec(wwo->releasing_offset, &wwo->sample_spec); ++ if (wwo->is_releasing) ++ time += pa_timeval_age(&wwo->started_releasing); ++ ++ for (lpWaveHdr = wwo->lpQueuePtr; lpWaveHdr; lpWaveHdr = wwo->lpQueuePtr) { ++ if (!force) { ++ /* Start from lpQueuePtr and keep notifying until: ++ * - we hit an unwritten wavehdr ++ * - we hit the beginning of a running loop ++ * - we hit a wavehdr which hasn't finished playing ++ */ ++ if (lpWaveHdr == wwo->lpPlayPtr) { TRACE("play %p\n", lpWaveHdr); return INFINITE; } ++ if (lpWaveHdr == wwo->lpLoopPtr) { TRACE("loop %p\n", lpWaveHdr); return INFINITE; } ++ ++ /* See if this data has been played, and if not, return when it will have been */ ++ wait = pa_bytes_to_usec(lpWaveHdr->reserved + lpWaveHdr->dwBufferLength, &wwo->sample_spec); ++ if (wait >= time) { ++ wait = (wait - time) / 1000; ++ return wait ?: 1; ++ } ++ } ++ ++ /* return the wavehdr */ ++ wwo->lpQueuePtr = lpWaveHdr->lpNext; ++ lpWaveHdr->dwFlags &= ~WHDR_INQUEUE; ++ lpWaveHdr->dwFlags |= WHDR_DONE; ++ ++ wodNotifyClient(wwo, WOM_DONE, (DWORD)lpWaveHdr, 0); ++ } ++ /* No more wavehdrs */ ++ TRACE("Empty queue\n"); ++ return INFINITE; ++} ++ ++/************************************************************************** ++ * wodPlayer_WriteMax [internal] ++ * Writes either space or the wavehdr's size into pulse's buffer, and ++ * returning how much data was written. ++ */ ++static int wodPlayer_WriteMax(WINE_WAVEINST *wwo, size_t *space) { ++ LPWAVEHDR lpWaveHdr = wwo->lpPlayPtr; ++ size_t toWrite = min(lpWaveHdr->dwBufferLength - wwo->dwPartialOffset, *space); ++ size_t written = 0; ++ ++ if (!wwo->stream || ++ !PULSE_context || ++ pa_context_get_state(PULSE_context) != PA_CONTEXT_READY || ++ pa_stream_get_state(wwo->stream) != PA_STREAM_READY) { ++ return 0; ++ } ++ ++ if (toWrite > 0 && ++ pa_stream_write(wwo->stream, lpWaveHdr->lpData + wwo->dwPartialOffset, toWrite, NULL, 0, PA_SEEK_RELATIVE) >= 0) { ++ TRACE("Writing wavehdr %p.%u[%u]\n", lpWaveHdr, wwo->dwPartialOffset, lpWaveHdr->dwBufferLength); ++ written = toWrite; ++ } ++ ++ /* Check to see if we wrote all of the wavehdr */ ++ if ((wwo->dwPartialOffset += written) >= lpWaveHdr->dwBufferLength) ++ wodPlayer_PlayPtrNext(wwo); ++ *space -= written; ++ ++ return written; ++} ++ ++/************************************************************************** ++ * wodPlayer_Feed [internal] ++ * ++ * Feed as much sound data as we can into pulse using wodPlayer_WriteMax ++ */ ++static void wodPlayer_Feed(WINE_WAVEINST* wwo, size_t space) { ++ /* no more room... no need to try to feed */ ++ if (space > 0) { ++ /* Feed from a partial wavehdr */ ++ if (wwo->lpPlayPtr && wwo->dwPartialOffset != 0) ++ wodPlayer_WriteMax(wwo, &space); ++ ++ /* Feed wavehdrs until we run out of wavehdrs or buffer space */ ++ if (wwo->dwPartialOffset == 0 && wwo->lpPlayPtr) { ++ do { ++ wwo->lpPlayPtr->reserved = wwo->timing_info->write_index; ++ } while (wodPlayer_WriteMax(wwo, &space) > 0 && wwo->lpPlayPtr && space > 0); ++ } ++ } ++} ++ ++/************************************************************************** ++ * wodPlayer_Reset [internal] ++ * ++ * wodPlayer helper. Resets current output stream. ++ */ ++static void wodPlayer_Reset(WINE_WAVEINST* wwo) { ++ enum win_wm_message msg; ++ DWORD param; ++ HANDLE ev; ++ pa_operation *o; ++ ++ TRACE("(%p)\n", wwo); ++ ++ /* remove any buffer */ ++ wodPlayer_NotifyCompletions(wwo, TRUE); ++ ++ wwo->lpPlayPtr = wwo->lpQueuePtr = wwo->lpLoopPtr = NULL; ++ if (wwo->state != WINE_WS_PAUSED) ++ wwo->state = WINE_WS_STOPPED; ++ wwo->dwPartialOffset = 0; ++ ++ if (!wwo->stream || ++ !PULSE_context || ++ pa_context_get_state(PULSE_context) != PA_CONTEXT_READY || ++ pa_stream_get_state(wwo->stream) != PA_STREAM_READY) { ++ return; ++ } ++ ++ pa_threaded_mainloop_lock(PULSE_ml); ++ ++ /* flush the output buffer of written data*/ ++ if ((o = pa_stream_flush(wwo->stream, PULSE_stream_success_callback, NULL))) ++ PULSE_wait_for_operation(o, wwo); ++ ++ /* Ask for the timing info to be updated (sanity, I don't know if we _have_ to) */ ++ if ((o = pa_stream_update_timing_info(wwo->stream, PULSE_stream_success_callback, wwo))) ++ PULSE_wait_for_operation(o, wwo); ++ ++ /* Reset the written byte count as some data may have been flushed */ ++ wwo->releasing_offset = wwo->last_reset = wwo->timing_info->write_index; ++ if (wwo->is_releasing) ++ pa_gettimeofday(&wwo->started_releasing); ++ ++ /* return all pending headers in queue */ ++ EnterCriticalSection(&wwo->msgRing.msg_crst); ++ while (PULSE_RetrieveRingMessage(&wwo->msgRing, &msg, ¶m, &ev)) { ++ if (msg != WINE_WM_HEADER) { ++ SetEvent(ev); ++ continue; ++ } ++ ((LPWAVEHDR)param)->dwFlags &= ~WHDR_INQUEUE; ++ ((LPWAVEHDR)param)->dwFlags |= WHDR_DONE; ++ wodNotifyClient(wwo, WOM_DONE, param, 0); ++ } ++ PULSE_ResetRingMessage(&wwo->msgRing); ++ LeaveCriticalSection(&wwo->msgRing.msg_crst); ++ ++ pa_threaded_mainloop_unlock(PULSE_ml); ++} ++ ++/************************************************************************** ++ * wodPlayer_Underrun [internal] ++ * ++ * wodPlayer helper. Deal with a stream underrun. ++ */ ++static void wodPlayer_Underrun(WINE_WAVEINST* wwo) { ++ size_t space; ++ pa_operation *o; ++ ++ wwo->is_buffering = TRUE; ++ ++ pa_threaded_mainloop_lock(PULSE_ml); ++ ++ if (wwo->lpPlayPtr) { ++ TRACE("There is queued data. Trying to recover.\n"); ++ space = pa_stream_writable_size(wwo->stream); ++ ++ if (!space) { ++ TRACE("No space to feed. Flushing.\n"); ++ if ((o = pa_stream_flush(wwo->stream, PULSE_stream_success_callback, wwo))) ++ PULSE_wait_for_operation(o, wwo); ++ space = pa_stream_writable_size(wwo->stream); ++ } ++ wodPlayer_Feed(wwo, space); ++ } ++ ++ /* Ask for a timing update */ ++ if ((o = pa_stream_update_timing_info(wwo->stream, PULSE_stream_success_callback, wwo))) ++ PULSE_wait_for_operation(o, wwo); ++ ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ ++ if (wwo->timing_info->playing) { ++ TRACE("Recovered.\n"); ++ wwo->is_buffering = FALSE; ++ } else { ++ ERR("Stream underrun! %i\n", wwo->instance_ref); ++ wwo->is_releasing = FALSE; ++ wwo->releasing_offset = wwo->timing_info->write_index; ++ } ++ ++ wwo->releasing_offset = wwo->timing_info->write_index; ++} ++ ++ ++/************************************************************************** ++ * wodPlayer_ProcessMessages [internal] ++ */ ++static void wodPlayer_ProcessMessages(WINE_WAVEINST* wwo) { ++ LPWAVEHDR lpWaveHdr; ++ enum win_wm_message msg; ++ DWORD param; ++ HANDLE ev; ++ pa_operation *o; ++ ++ while (PULSE_RetrieveRingMessage(&wwo->msgRing, &msg, ¶m, &ev)) { ++ TRACE("Received %s %x\n", PULSE_getCmdString(msg), param); ++ ++ switch (msg) { ++ case WINE_WM_PAUSING: ++ wwo->state = WINE_WS_PAUSED; ++ pa_threaded_mainloop_lock(PULSE_ml); ++ if ((o = pa_stream_cork(wwo->stream, 1, PULSE_stream_success_callback, NULL))) ++ PULSE_wait_for_operation(o, wwo); ++ ++ /* save how far we are, as releasing will restart from here */ ++ if (wwo->is_releasing) ++ wwo->releasing_offset = wwo->timing_info->write_index; ++ ++ wwo->is_buffering = TRUE; ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ ++ SetEvent(ev); ++ break; ++ ++ case WINE_WM_RESTARTING: ++ if (wwo->state == WINE_WS_PAUSED) { ++ wwo->state = WINE_WS_PLAYING; ++ if (wwo->is_releasing) ++ pa_gettimeofday(&wwo->started_releasing); ++ pa_threaded_mainloop_lock(PULSE_ml); ++ if ((o = pa_stream_cork(wwo->stream, 0, PULSE_stream_success_callback, NULL))) ++ PULSE_wait_for_operation(o, wwo); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ } ++ SetEvent(ev); ++ break; ++ ++ case WINE_WM_HEADER: ++ lpWaveHdr = (LPWAVEHDR)param; ++ /* insert buffer at the end of queue */ ++ { ++ LPWAVEHDR* wh; ++ for (wh = &(wwo->lpQueuePtr); *wh; wh = &((*wh)->lpNext)); ++ *wh = lpWaveHdr; ++ } ++ ++ if (!wwo->lpPlayPtr) ++ wodPlayer_BeginWaveHdr(wwo,lpWaveHdr); ++ /* Try and feed now, as we may have missed when pulse first asked */ ++ wodPlayer_Feed(wwo, pa_stream_writable_size(wwo->stream)); ++ if (wwo->state == WINE_WS_STOPPED) ++ wwo->state = WINE_WS_PLAYING; ++ if (wwo->is_buffering && !wwo->is_releasing) ++ pa_gettimeofday(&wwo->last_header); ++ SetEvent(ev); ++ break; ++ ++ case WINE_WM_RESETTING: ++ wodPlayer_Reset(wwo); ++ SetEvent(ev); ++ break; ++ ++ case WINE_WM_BREAKLOOP: ++ if (wwo->state == WINE_WS_PLAYING && wwo->lpLoopPtr != NULL) ++ /* ensure exit at end of current loop */ ++ wwo->dwLoops = 1; ++ SetEvent(ev); ++ break; ++ ++ case WINE_WM_FEED: /* Sent by the pulse thread */ ++ wodPlayer_Feed(wwo, (size_t)param); ++ SetEvent(ev); ++ break; ++ ++ case WINE_WM_XRUN: /* Sent by the pulse thread */ ++ wodPlayer_Underrun(wwo); ++ SetEvent(ev); ++ break; ++ ++ case WINE_WM_STARTING: /* Set by the pulse thread */ ++ wwo->is_buffering = FALSE; ++ /* Start releasing wavehdrs if we haven't already */ ++ if (!wwo->is_releasing) { ++ wwo->is_releasing = TRUE; ++ pa_gettimeofday(&wwo->started_releasing); ++ } ++ SetEvent(ev); ++ break; ++ ++ case WINE_WM_CLOSING: /* If param = 1, close because of a failure */ ++ wwo->hThread = NULL; ++ if ((DWORD)param == 1) { ++ /* If we are here, the stream has failed */ ++ wwo->state = WINE_WS_FAILED; ++ SetEvent(ev); ++ PULSE_DestroyRingMessage(&wwo->msgRing); ++ wodPlayer_NotifyCompletions(wwo, TRUE); ++ wodNotifyClient(wwo, WOM_CLOSE, 0L, 0L); ++ wwo->lpPlayPtr = wwo->lpQueuePtr = wwo->lpLoopPtr = NULL; ++ pa_threaded_mainloop_lock(PULSE_ml); ++ pa_stream_disconnect(wwo->stream); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ TRACE("Thread exiting because of failure.\n"); ++ ExitThread(1); ++ } ++ wwo->state = WINE_WS_CLOSED; ++ /* sanity check: this should not happen since the device must have been reset before */ ++ if (wwo->lpQueuePtr || wwo->lpPlayPtr) ERR("out of sync\n"); ++ SetEvent(ev); ++ TRACE("Thread exiting.\n"); ++ ExitThread(0); ++ /* shouldn't go here */ ++ ++ default: ++ FIXME("unknown message %d\n", msg); ++ break; ++ } ++ } ++} ++ ++/************************************************************************** ++ * wodPlayer [internal] ++ */ ++static DWORD CALLBACK wodPlayer(LPVOID lpParam) { ++ WINE_WAVEINST *wwo = (WINE_WAVEINST*)lpParam; ++ DWORD dwSleepTime = INFINITE; ++ ++ wwo->state = WINE_WS_STOPPED; ++ SetEvent(wwo->hStartUpEvent); ++ ++ /* Wait for the shortest time before an action is required. If there are ++ * no pending actions, wait forever for a command. */ ++ for (;;) { ++ TRACE("Waiting %u ms\n", dwSleepTime); ++ PULSE_WaitRingMessage(&wwo->msgRing, dwSleepTime); ++ wodPlayer_ProcessMessages(wwo); ++ if (wwo->state == WINE_WS_PLAYING) { ++ wodPlayer_CheckReleasing(wwo); ++ dwSleepTime = wodPlayer_NotifyCompletions(wwo, FALSE); ++ } else ++ dwSleepTime = INFINITE; ++ } ++} ++ ++/************************************************************************** ++ * wodOpen [internal] ++ */ ++static DWORD wodOpen(WORD wDevID, LPDWORD lpdwUser, LPWAVEOPENDESC lpDesc, DWORD dwFlags) { ++ WINE_WAVEDEV *wdo; ++ WINE_WAVEINST *wwo = NULL; ++ pa_operation *o; ++ DWORD x, ret = MMSYSERR_NOERROR; ++ pa_sample_spec test; ++ ++ TRACE("(%u, %p, %08X);\n", wDevID, lpDesc, dwFlags); ++ if (lpDesc == NULL) { ++ WARN("Invalid Parameter !\n"); ++ return MMSYSERR_INVALPARAM; ++ } ++ ++ if (wDevID >= PULSE_WodNumDevs) { ++ TRACE("Asked for device %d, but only %d known!\n", wDevID, PULSE_WodNumDevs); ++ return MMSYSERR_BADDEVICEID; ++ } ++ wdo = &WOutDev[wDevID]; ++ ++ /* check to see if format is supported and make pa_sample_spec struct */ ++ if (!PULSE_setupFormat(lpDesc->lpFormat, &test) && ++ !pa_sample_spec_valid(&test)) { ++ WARN("Bad format: tag=%04X nChannels=%d nSamplesPerSec=%d !\n", ++ lpDesc->lpFormat->wFormatTag, lpDesc->lpFormat->nChannels, ++ lpDesc->lpFormat->nSamplesPerSec); ++ return WAVERR_BADFORMAT; ++ } ++ ++ if (TRACE_ON(wave)) { ++ char t[PA_SAMPLE_SPEC_SNPRINT_MAX]; ++ pa_sample_spec_snprint(t, sizeof(t), &test); ++ TRACE("Sample spec '%s'\n", t); ++ } ++ ++ if (dwFlags & WAVE_FORMAT_QUERY) { ++ TRACE("Query format: tag=%04X nChannels=%d nSamplesPerSec=%d !\n", ++ lpDesc->lpFormat->wFormatTag, lpDesc->lpFormat->nChannels, ++ lpDesc->lpFormat->nSamplesPerSec); ++ return MMSYSERR_NOERROR; ++ } ++ ++ for (x = 0; x < PULSE_MAX_STREAM_INSTANCES; x++) { ++ if (wdo->instance[x] == NULL) { ++ if (!(wdo->instance[x] = wwo = HeapAlloc(GetProcessHeap(), 0, sizeof(WINE_WAVEINST)))) ++ return MMSYSERR_NOMEM; ++ TRACE("Allocated new playback instance %u on device %u.\n", x, wDevID); ++ break; ++ } ++ } ++ if (x >= PULSE_MAX_STREAM_INSTANCES) return MMSYSERR_ALLOCATED; ++ ++ *lpdwUser = (DWORD)wwo; ++ wwo->instance_ref = x; ++ wwo->sample_spec.format = test.format; ++ wwo->sample_spec.rate = test.rate; ++ wwo->sample_spec.channels = test.channels; ++ if (test.channels == 2) { ++ wwo->volume.channels = 2; ++ wwo->volume.values[0] = wdo->left_vol; ++ wwo->volume.values[1] = wdo->right_vol; ++ } else ++ pa_cvolume_set(&wwo->volume, test.channels, (wdo->left_vol + wdo->right_vol)/2); ++ wwo->wFlags = HIWORD(dwFlags & CALLBACK_TYPEMASK); ++ wwo->waveDesc = *lpDesc; ++ wwo->lpQueuePtr = wwo->lpPlayPtr = wwo->lpLoopPtr = NULL; ++ wwo->dwPartialOffset = 0; ++ wwo->is_buffering = TRUE; ++ wwo->is_releasing = FALSE; ++ wwo->releasing_offset = 0; ++ wwo->timing_info = NULL; ++ PULSE_InitRingMessage(&wwo->msgRing); ++ ++ /* FIXME Find a better name for the stream */ ++ wwo->stream = pa_stream_new(PULSE_context, "Wine Playback", &wwo->sample_spec, NULL); ++ assert(wwo->stream); ++ ++ pa_stream_set_state_callback(wwo->stream, PULSE_stream_state_callback, wwo); ++ pa_stream_set_write_callback(wwo->stream, PULSE_stream_request_callback, wwo); ++ pa_stream_set_underflow_callback(wwo->stream, PULSE_underrun_callback, wwo); ++ pa_stream_set_suspended_callback(wwo->stream, PULSE_suspended_callback, wwo); ++#if HAVE_PULSEAUDIO_0_9_11 ++ pa_stream_set_started_callback(wwo->stream, PULSE_started_callback, wwo); ++#else ++ pa_stream_set_latency_update_callback(wwo->stream, PULSE_timing_info_update_callback, wwo); ++#endif ++ ++ /* I don't like this, but... */ ++ wwo->buffer_attr = pa_xmalloc(sizeof(pa_buffer_attr)); ++ wwo->buffer_attr->maxlength = (uint32_t) -1; ++ wwo->buffer_attr->tlength = pa_bytes_per_second(&wwo->sample_spec)/5; ++ wwo->buffer_attr->prebuf = (uint32_t) -1; ++ wwo->buffer_attr->minreq = (uint32_t) -1; ++ ++ TRACE("Connecting stream for playback.\n"); ++ pa_threaded_mainloop_lock(PULSE_ml); ++#if HAVE_PULSEAUDIO_0_9_11 ++ pa_stream_connect_playback(wwo->stream, wdo->device_name, wwo->buffer_attr, PA_STREAM_ADJUST_LATENCY, &wwo->volume, NULL); ++#else ++ pa_stream_connect_playback(wwo->stream, wdo->device_name, wwo->buffer_attr, PA_STREAM_AUTO_TIMING_UPDATE, &wwo->volume, NULL); ++#endif ++ ++ for (;;) { ++ pa_context_state_t cstate = pa_context_get_state(PULSE_context); ++ pa_stream_state_t sstate = pa_stream_get_state(wwo->stream); ++ ++ if (cstate == PA_CONTEXT_FAILED || cstate == PA_CONTEXT_TERMINATED || ++ sstate == PA_STREAM_FAILED || sstate == PA_STREAM_TERMINATED) { ++ ERR("Failed to connect context object: %s\n", pa_strerror(pa_context_errno(PULSE_context))); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ ret = MMSYSERR_NODRIVER; ++ goto err; ++ } ++ ++ if (sstate == PA_STREAM_READY) ++ break; ++ ++ pa_threaded_mainloop_wait(PULSE_ml); ++ } ++ TRACE("Stream connected for playback.\n"); ++ ++ if ((o = pa_stream_update_timing_info(wwo->stream, PULSE_stream_success_callback, wwo))) ++ PULSE_wait_for_operation(o, wwo); ++ ++ wwo->timing_info = pa_stream_get_timing_info(wwo->stream); ++ assert(wwo->timing_info); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ ++ wwo->hStartUpEvent = CreateEventW(NULL, FALSE, FALSE, NULL); ++ wwo->hThread = CreateThread(NULL, 0, wodPlayer, (LPVOID)wwo, 0, &(wwo->dwThreadID)); ++ if (wwo->hThread) ++ SetThreadPriority(wwo->hThread, THREAD_PRIORITY_TIME_CRITICAL); ++ else { ++ ERR("Thread creation for the wodPlayer failed!\n"); ++ ret = MMSYSERR_NOMEM; ++ goto err; ++ } ++ WaitForSingleObject(wwo->hStartUpEvent, INFINITE); ++ CloseHandle(wwo->hStartUpEvent); ++ wwo->hStartUpEvent = INVALID_HANDLE_VALUE; ++ ++ ++ return wodNotifyClient (wwo, WOM_OPEN, 0L, 0L); ++ ++err: ++ TRACE("Bailing out...\n"); ++ wdo->instance[x] = NULL; ++ if (!wwo) ++ return ret; ++ ++ if (wwo->hStartUpEvent != INVALID_HANDLE_VALUE) ++ CloseHandle(wwo->hStartUpEvent); ++ ++ if (wwo->msgRing.ring_buffer_size > 0) ++ PULSE_DestroyRingMessage(&wwo->msgRing); ++ ++ if (pa_stream_get_state(wwo->stream) == PA_STREAM_READY) ++ pa_stream_disconnect(wwo->stream); ++ pa_stream_unref(wwo->stream); ++ if (wwo->buffer_attr) ++ pa_xfree(wwo->buffer_attr); ++ HeapFree(GetProcessHeap(), 0, wwo); ++ ++ return ret; ++} ++ ++/************************************************************************** ++ * wodClose [internal] ++ */ ++static DWORD wodClose(WORD wDevID, WINE_WAVEINST *wwo) { ++ pa_operation *o; ++ DWORD ret; ++ ++ TRACE("(%u, %p);\n", wDevID, wwo); ++ if (wDevID >= PULSE_WodNumDevs) { ++ WARN("Asked for device %d, but only %d known!\n", wDevID, PULSE_WodNumDevs); ++ return MMSYSERR_INVALHANDLE; ++ } else if (!wwo) { ++ WARN("Stream instance invalid.\n"); ++ return MMSYSERR_INVALHANDLE; ++ } ++ ++ if (wwo->state != WINE_WS_FAILED) { ++ if (wwo->lpQueuePtr && wwo->lpPlayPtr) { ++ WARN("buffers still playing !\n"); ++ return WAVERR_STILLPLAYING; ++ } ++ ++ pa_threaded_mainloop_lock(PULSE_ml); ++ if ((o = pa_stream_drain(wwo->stream, PULSE_stream_success_callback, NULL))) ++ PULSE_wait_for_operation(o, wwo); ++ pa_stream_disconnect(wwo->stream); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ ++ if (wwo->hThread != INVALID_HANDLE_VALUE) ++ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_CLOSING, 0, TRUE); ++ ++ PULSE_DestroyRingMessage(&wwo->msgRing); ++ ++ pa_threaded_mainloop_lock(PULSE_ml); ++ pa_stream_disconnect(wwo->stream); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ } ++ ret = wodNotifyClient(wwo, WOM_CLOSE, 0L, 0L); ++ ++ if (wwo->buffer_attr) ++ pa_xfree(wwo->buffer_attr); ++ pa_stream_unref(wwo->stream); ++ WOutDev[wDevID].instance[wwo->instance_ref] = NULL; ++ TRACE("Deallocating playback instance %u on device %u.\n", wwo->instance_ref, wDevID); ++ HeapFree(GetProcessHeap(), 0, wwo); ++ return ret; ++} ++ ++/************************************************************************** ++ * wodWrite [internal] ++ */ ++static DWORD wodWrite(WINE_WAVEINST *wwo, LPWAVEHDR lpWaveHdr, DWORD dwSize) { ++ if (!wwo || wwo->state == WINE_WS_FAILED) { ++ WARN("Stream instance invalid.\n"); ++ return MMSYSERR_INVALHANDLE; ++ } ++ ++ if (lpWaveHdr->lpData == NULL || !(lpWaveHdr->dwFlags & WHDR_PREPARED)) ++ return WAVERR_UNPREPARED; ++ ++ if (lpWaveHdr->dwFlags & WHDR_INQUEUE) ++ return WAVERR_STILLPLAYING; ++ ++ lpWaveHdr->dwFlags &= ~WHDR_DONE; ++ lpWaveHdr->dwFlags |= WHDR_INQUEUE; ++ lpWaveHdr->lpNext = 0; ++ lpWaveHdr->reserved = 0; ++ ++ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_HEADER, (DWORD)lpWaveHdr, FALSE); ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * wodPause [internal] ++ */ ++static DWORD wodPause(WINE_WAVEINST *wwo) { ++ if (!wwo || wwo->state == WINE_WS_FAILED) { ++ WARN("Stream instance invalid.\n"); ++ return MMSYSERR_INVALHANDLE; ++ } ++ ++ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_PAUSING, 0, TRUE); ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * wodGetPosition [internal] ++ */ ++static DWORD wodGetPosition(WINE_WAVEINST *wwo, LPMMTIME lpTime, DWORD uSize) { ++ pa_usec_t time; ++ ++ if (!wwo || wwo->state == WINE_WS_FAILED) { ++ WARN("Stream instance invalid.\n"); ++ return MMSYSERR_INVALHANDLE; ++ } ++ ++ if (lpTime == NULL) return MMSYSERR_INVALPARAM; ++ ++ time = pa_bytes_to_usec(wwo->releasing_offset, &wwo->sample_spec); ++ ++ if (wwo->is_releasing) ++ time += pa_timeval_age(&wwo->started_releasing); ++ ++ if (wwo->last_reset > wwo->releasing_offset) ++ wwo->last_reset = 0; ++ ++ time -= pa_bytes_to_usec(wwo->last_reset, &wwo->sample_spec); ++ time /= 1000; ++ ++ switch (lpTime->wType) { ++ case TIME_SAMPLES: ++ lpTime->u.sample = (time * wwo->sample_spec.rate) / 1000; ++ break; ++ case TIME_MS: ++ lpTime->u.ms = time; ++ break; ++ case TIME_SMPTE: ++ lpTime->u.smpte.fps = 30; ++ lpTime->u.smpte.sec = time/1000; ++ lpTime->u.smpte.min = lpTime->u.smpte.sec / 60; ++ lpTime->u.smpte.sec -= 60 * lpTime->u.smpte.min; ++ lpTime->u.smpte.hour = lpTime->u.smpte.min / 60; ++ lpTime->u.smpte.min -= 60 * lpTime->u.smpte.hour; ++ lpTime->u.smpte.fps = 30; ++ lpTime->u.smpte.frame = time / lpTime->u.smpte.fps * 1000; ++ TRACE("TIME_SMPTE=%02u:%02u:%02u:%02u\n", ++ lpTime->u.smpte.hour, lpTime->u.smpte.min, ++ lpTime->u.smpte.sec, lpTime->u.smpte.frame); ++ break; ++ default: ++ WARN("Format %d not supported, using TIME_BYTES !\n", lpTime->wType); ++ lpTime->wType = TIME_BYTES; ++ /* fall through */ ++ case TIME_BYTES: ++ lpTime->u.cb = (pa_bytes_per_second(&wwo->sample_spec)*time) / 1000; ++ TRACE("TIME_BYTES=%u\n", lpTime->u.cb); ++ break; ++ } ++ ++ return MMSYSERR_NOERROR; ++} ++/************************************************************************** ++ * wodBreakLoop [internal] ++ */ ++static DWORD wodBreakLoop(WINE_WAVEINST *wwo) { ++ if (!wwo || wwo->state == WINE_WS_FAILED) { ++ WARN("Stream instance invalid.\n"); ++ return MMSYSERR_INVALHANDLE; ++ } ++ ++ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_BREAKLOOP, 0, TRUE); ++ return MMSYSERR_NOERROR; ++} ++ + /************************************************************************** + * wodGetDevCaps [internal] + */ +@@ -88,6 +961,122 @@ static DWORD wodGetDevCaps(DWORD wDevID, LPWAVEOUTCAPSW lpCaps, DWORD dwSize) { + } + + /************************************************************************** ++ * wodGetVolume [internal] ++ */ ++static DWORD wodGetVolume(WORD wDevID, LPDWORD lpdwVol) { ++ DWORD wleft, wright; ++ WINE_WAVEDEV* wdo; ++ ++ TRACE("(%u, %p);\n", wDevID, lpdwVol); ++ ++ if (wDevID >= PULSE_WodNumDevs) { ++ TRACE("Asked for device %d, but only %d known!\n", wDevID, PULSE_WodNumDevs); ++ return MMSYSERR_INVALHANDLE; ++ } ++ ++ if (lpdwVol == NULL) ++ return MMSYSERR_NOTENABLED; ++ ++ wdo = &WOutDev[wDevID]; ++ ++ wleft=(long int)(pa_sw_volume_to_linear(wdo->left_vol)*0xFFFFl); ++ wright=(long int)(pa_sw_volume_to_linear(wdo->right_vol)*0xFFFFl); ++ ++ if (wleft > 0xFFFFl) ++ wleft = 0xFFFFl; ++ if (wright > 0xFFFFl) ++ wright = 0xFFFFl; ++ ++ *lpdwVol = (WORD)wleft + (WORD)(wright << 16); ++ ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * wodSetVolume [internal] ++ */ ++static DWORD wodSetVolume(WORD wDevID, DWORD dwParam1) { ++ WINE_WAVEDEV *wdo; ++ WINE_WAVEINST *current; ++ pa_operation *o; ++ DWORD x; ++ ++ TRACE("(%u, %08X);\n", wDevID, dwParam1); ++ ++ if (wDevID >= PULSE_WodNumDevs) { ++ TRACE("Asked for device %d, but only %d known!\n", wDevID, PULSE_WodNumDevs); ++ return MMSYSERR_INVALHANDLE; ++ } ++ ++ wdo = &WOutDev[wDevID]; ++ ++ wdo->left_vol = pa_sw_volume_from_linear((double)LOWORD(dwParam1)/0xFFFFl); ++ wdo->right_vol = pa_sw_volume_from_linear((double)HIWORD(dwParam1)/0xFFFFl); ++ ++ /* Windows assumes that this volume is for the entire device, so we have to ++ * hunt down all current streams of the device and set their volumes. ++ * Streams which are not stereo (channels!=2) don't pan correctly. */ ++ for (x = 0; (current = wdo->instance[x]); x++) { ++ switch (current->sample_spec.channels) { ++ case 2: ++ current->volume.channels = 2; ++ current->volume.values[0] = wdo->left_vol; ++ current->volume.values[1] = wdo->right_vol; ++ break; ++ case 1: ++ current->volume.channels = 1; ++ current->volume.values[0] = (wdo->left_vol + wdo->right_vol)/2; /* Is this right? */ ++ break; ++ default: ++ /* FIXME How does more than stereo work? */ ++ pa_cvolume_set(¤t->volume, current->sample_spec.channels, (wdo->left_vol + wdo->right_vol)/2); ++ } ++ ++ if (!current->stream || ++ !PULSE_context || ++ pa_context_get_state(PULSE_context) != PA_CONTEXT_READY || ++ pa_stream_get_state(current->stream) != PA_STREAM_READY || ++ !pa_cvolume_valid(¤t->volume)) ++ continue; ++ ++ pa_threaded_mainloop_lock(PULSE_ml); ++ if ((o = pa_context_set_sink_input_volume(PULSE_context, ++ pa_stream_get_index(current->stream), ¤t->volume, ++ PULSE_context_success_callback, current))) ++ PULSE_wait_for_operation(o, current); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ } ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * wodRestart [internal] ++ */ ++static DWORD wodRestart(WINE_WAVEINST *wwo) { ++ if (!wwo || wwo->state == WINE_WS_FAILED) { ++ WARN("Stream instance invalid.\n"); ++ return MMSYSERR_INVALHANDLE; ++ } ++ ++ if (wwo->state == WINE_WS_PAUSED) ++ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_RESTARTING, 0, TRUE); ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * wodReset [internal] ++ */ ++static DWORD wodReset(WINE_WAVEINST *wwo) { ++ if (!wwo || wwo->state == WINE_WS_FAILED) { ++ WARN("Stream instance invalid.\n"); ++ return MMSYSERR_INVALHANDLE; ++ } ++ ++ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_RESETTING, 0, TRUE); ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** + * wodDevInterfaceSize [internal] + */ + static DWORD wodDevInterfaceSize(UINT wDevID, LPDWORD dwParam1) { +@@ -124,12 +1113,16 @@ static DWORD wodDsDesc(UINT wDevID, PDSDRIVERDESC desc) { + strcpy(desc->szDrvname, "winepulse.drv"); + return MMSYSERR_NOERROR; + } ++ + /************************************************************************** + * wodMessage (WINEPULSE.@) + */ + DWORD WINAPI PULSE_wodMessage(UINT wDevID, UINT wMsg, DWORD dwUser, + DWORD dwParam1, DWORD dwParam2) { +- ++/* ++ TRACE("(%u, %s, %08X, %08X, %08X);\n", ++ wDevID, PULSE_getMessage(wMsg), dwUser, dwParam1, dwParam2); ++*/ + switch (wMsg) { + case DRVM_INIT: + case DRVM_EXIT: +@@ -137,12 +1130,12 @@ DWORD WINAPI PULSE_wodMessage(UINT wDevID, UINT wMsg, DWORD dwUser, + case DRVM_DISABLE: + /* FIXME: Pretend this is supported */ + return 0; +- case WODM_OPEN: return MMSYSERR_NOTSUPPORTED; +- case WODM_CLOSE: return MMSYSERR_NOTSUPPORTED; +- case WODM_WRITE: return MMSYSERR_NOTSUPPORTED; +- case WODM_PAUSE: return MMSYSERR_NOTSUPPORTED; +- case WODM_GETPOS: return MMSYSERR_NOTSUPPORTED; +- case WODM_BREAKLOOP: return MMSYSERR_NOTSUPPORTED; ++ case WODM_OPEN: return wodOpen (wDevID, (LPDWORD)dwUser, (LPWAVEOPENDESC)dwParam1, dwParam2); ++ case WODM_CLOSE: return wodClose (wDevID, (WINE_WAVEINST*)dwUser); ++ case WODM_WRITE: return wodWrite ((WINE_WAVEINST*)dwUser, (LPWAVEHDR)dwParam1, dwParam2); ++ case WODM_PAUSE: return wodPause ((WINE_WAVEINST*)dwUser); ++ case WODM_GETPOS: return wodGetPosition ((WINE_WAVEINST*)dwUser, (LPMMTIME)dwParam1, dwParam2); ++ case WODM_BREAKLOOP: return wodBreakLoop ((WINE_WAVEINST*)dwUser); + case WODM_PREPARE: return MMSYSERR_NOTSUPPORTED; + case WODM_UNPREPARE: return MMSYSERR_NOTSUPPORTED; + case WODM_GETDEVCAPS: return wodGetDevCaps (wDevID, (LPWAVEOUTCAPSW)dwParam1, dwParam2); +@@ -151,13 +1144,13 @@ DWORD WINAPI PULSE_wodMessage(UINT wDevID, UINT wMsg, DWORD dwUser, + case WODM_SETPITCH: return MMSYSERR_NOTSUPPORTED; + case WODM_GETPLAYBACKRATE: return MMSYSERR_NOTSUPPORTED; /* support if theoretically possible */ + case WODM_SETPLAYBACKRATE: return MMSYSERR_NOTSUPPORTED; /* since pulseaudio 0.9.8 */ +- case WODM_GETVOLUME: return MMSYSERR_NOTSUPPORTED; +- case WODM_SETVOLUME: return MMSYSERR_NOTSUPPORTED; +- case WODM_RESTART: return MMSYSERR_NOTSUPPORTED; +- case WODM_RESET: return MMSYSERR_NOTSUPPORTED; ++ case WODM_GETVOLUME: return wodGetVolume (wDevID, (LPDWORD)dwParam1); ++ case WODM_SETVOLUME: return wodSetVolume (wDevID, dwParam1); ++ case WODM_RESTART: return wodRestart ((WINE_WAVEINST*)dwUser); ++ case WODM_RESET: return wodReset ((WINE_WAVEINST*)dwUser); + case DRV_QUERYDEVICEINTERFACESIZE: return wodDevInterfaceSize (wDevID, (LPDWORD)dwParam1); + case DRV_QUERYDEVICEINTERFACE: return wodDevInterface (wDevID, (PWCHAR)dwParam1, dwParam2); +- case DRV_QUERYDSOUNDIFACE: return wodDsCreate (wDevID, (PIDSDRIVER*)dwParam1); ++ case DRV_QUERYDSOUNDIFACE: return wodDsCreate (wDevID, (PIDSDRIVER*)dwParam1); + case DRV_QUERYDSOUNDDESC: return wodDsDesc (wDevID, (PDSDRIVERDESC)dwParam1); + default: + FIXME("unknown message %d!\n", wMsg); +diff --git a/dlls/winepulse.drv/winepulse.h b/dlls/winepulse.drv/winepulse.h +index 277221a..64778ca 100644 +--- a/dlls/winepulse.drv/winepulse.h ++++ b/dlls/winepulse.drv/winepulse.h +@@ -62,7 +62,7 @@ + + #define PULSE_MAX_STREAM_INSTANCES 16 /* Sixteen streams per device should be good enough? */ + +-/* events to be send to device */ ++/* events to be sent to device */ + enum win_wm_message { + WINE_WM_PAUSING = WM_USER + 1, WINE_WM_RESTARTING, WINE_WM_RESETTING, WINE_WM_HEADER, + WINE_WM_BREAKLOOP, WINE_WM_CLOSING, WINE_WM_STARTING, WINE_WM_STOPPING, WINE_WM_XRUN, WINE_WM_FEED +@@ -104,7 +104,7 @@ typedef struct { + + /* WavaHdr information */ + LPWAVEHDR lpQueuePtr; /* start of queued WAVEHDRs (waiting to be notified) */ +- LPWAVEHDR lpPlayPtr; /* start of not yet fully played buffers */ ++ LPWAVEHDR lpPlayPtr; /* start of not yet fully written buffers */ + DWORD dwPartialOffset; /* Offset of not yet written bytes in lpPlayPtr */ + LPWAVEHDR lpLoopPtr; /* pointer of first buffer in loop, if any */ + DWORD dwLoops; /* private copy of loop counter */ +@@ -151,13 +151,11 @@ DWORD PULSE_WodNumDevs; + DWORD PULSE_WidNumDevs; + + /* pulse.c */ +-void PULSE_set_buffer_attr_callback(pa_stream *stream, int success, void *userdata); + void PULSE_wait_for_operation(pa_operation *o, WINE_WAVEINST *ww); + void PULSE_stream_success_callback(pa_stream *s, int success, void *userdata); + void PULSE_stream_state_callback(pa_stream *s, void *userdata); + void PULSE_context_success_callback(pa_context *c, int success, void *userdata); + void PULSE_stream_request_callback(pa_stream *s, size_t n, void *userdata); +-DWORD PULSE_bytes_to_mmtime(LPMMTIME lpTime, DWORD position, pa_sample_spec *ss); + BOOL PULSE_setupFormat(LPWAVEFORMATEX wf, pa_sample_spec *ss); + int PULSE_InitRingMessage(PULSE_MSG_RING* omr); + int PULSE_DestroyRingMessage(PULSE_MSG_RING* omr); + diff --git a/wine-pulseaudio.patch b/wine-pulseaudio.patch new file mode 100644 index 0000000..7320c17 --- /dev/null +++ b/wine-pulseaudio.patch @@ -0,0 +1,1188 @@ +diff --git a/configure.ac b/configure.ac +index 91850de..b21be92 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -55,6 +55,7 @@ AC_ARG_WITH(oss, AS_HELP_STRING([--without-oss],[do not use the OSS sound + [if test "x$withval" = "xno"; then ac_cv_header_soundcard_h=no; ac_cv_header_sys_soundcard_h=no; ac_cv_header_machine_soundcard_h=no; fi]) + AC_ARG_WITH(png, AS_HELP_STRING([--without-png],[do not use PNG]), + [if test "x$withval" = "xno"; then ac_cv_header_png_h=no; fi]) ++AC_ARG_WITH(pulse, AC_HELP_STRING([--without-pulse],[do not use PulseAudio sound support])) + AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)])) + AC_ARG_WITH(xcomposite,AS_HELP_STRING([--without-xcomposite],[do not use the Xcomposite extension]), + [if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_Xcomposite_h=no; fi]) +@@ -1117,6 +1118,29 @@ then + CFLAGS="$save_CFLAGS" + fi + ++dnl **** Check for PulseAudio **** ++if test "x$with_pulse" != "xno"; then ++ if test "$PKG_CONFIG" != "false"; then ++ AC_MSG_CHECKING([for pulseaudio >= 0.9.8]) ++ if "$PKG_CONFIG" --atleast-version=0.9.8 libpulse; then ++ have_pulseaudio="yes" ++ else ++ have_pulseaudio="no" ++ fi ++ AC_MSG_RESULT([$have_pulseaudio]) ++ if test x"$have_pulseaudio" = xyes; then ++ if "$PKG_CONFIG" --atleast-version=0.9.11 libpulse; then ++ AC_DEFINE([HAVE_PULSEAUDIO_0_9_11], 1, [define this if pulseaudio is at least version 0.9.11]) ++ else ++ AC_DEFINE([HAVE_PULSEAUDIO_0_9_11], 0, [define this if pulseaudio is at least version 0.9.11]) ++ fi ++ ac_pulse_libs=`$PKG_CONFIG --libs libpulse` ++ AC_DEFINE([HAVE_PULSEAUDIO], 1, [define this if you have pulseaudio]) ++ AC_SUBST(PULSELIBS, "$ac_pulse_libs") ++ fi ++ fi ++fi ++ + dnl **** Check for ALSA 1.x **** + AC_SUBST(ALSALIBS,"") + if test "$ac_cv_header_sys_asoundlib_h" = "yes" -o "$ac_cv_header_alsa_asoundlib_h" = "yes" +@@ -1222,7 +1246,7 @@ dnl **** Check for libodbc **** + WINE_CHECK_SONAME(odbc,SQLConnect,,[AC_DEFINE_UNQUOTED(SONAME_LIBODBC,["libodbc.$LIBEXT"])]) + + dnl **** Check for any sound system **** +-if test "x$ALSALIBS$AUDIOIOLIBS$COREAUDIO$NASLIBS$ESDLIBS$ac_cv_lib_soname_jack" = "x" -a \ ++if test "x$ALSALIBS$AUDIOIOLIBS$COREAUDIO$NASLIBS$ESDLIBS$PULSELIBS$ac_cv_lib_soname_jack" = "x" -a \ + "$ac_cv_header_sys_soundcard_h" != "yes" -a \ + "$ac_cv_header_machine_soundcard_h" != "yes" -a \ + "$ac_cv_header_soundcard_h" != "yes" -a \ +@@ -2064,6 +2088,7 @@ WINE_CONFIG_MAKEFILE([dlls/winemp3.acm/Makefile],[dlls/Makedll.rules],[dlls],[AL + WINE_CONFIG_MAKEFILE([dlls/winenas.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) + WINE_CONFIG_MAKEFILE([dlls/wineoss.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) + WINE_CONFIG_MAKEFILE([dlls/wineps.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) ++WINE_CONFIG_MAKEFILE([dlls/winepulse.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) + WINE_CONFIG_MAKEFILE([dlls/winequartz.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) + WINE_CONFIG_MAKEFILE([dlls/winex11.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) + WINE_CONFIG_MAKEFILE([dlls/wing32/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) +diff --git a/dlls/winepulse.drv/Makefile.in b/dlls/winepulse.drv/Makefile.in +new file mode 100644 +index 0000000..52a6671 +--- /dev/null ++++ b/dlls/winepulse.drv/Makefile.in +@@ -0,0 +1,15 @@ ++TOPSRCDIR = @top_srcdir@ ++TOPOBJDIR = ../.. ++SRCDIR = @srcdir@ ++VPATH = @srcdir@ ++MODULE = winepulse.drv ++IMPORTS = dxguid uuid winmm user32 advapi32 kernel32 ++EXTRALIBS = @PULSELIBS@ ++ ++C_SRCS = \ ++ waveout.c \ ++ pulse.c ++ ++@MAKE_DLL_RULES@ ++ ++@DEPENDENCIES@ # everything below this line is overwritten by make depend +diff --git a/dlls/winepulse.drv/pulse.c b/dlls/winepulse.drv/pulse.c +new file mode 100644 +index 0000000..3ef6a03 +--- /dev/null ++++ b/dlls/winepulse.drv/pulse.c +@@ -0,0 +1,732 @@ ++/* ++ * Wine Driver for PulseAudio ++ * http://pulseaudio.org/ ++ * ++ * Copyright 2008 Arthur Taylor ++ * ++ * Contains code from other wine sound drivers. ++ * ++ * 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, write to the Free Software ++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA ++ */ ++ ++#include "config.h" ++ ++#include ++#include ++ ++#include "windef.h" ++#include "winbase.h" ++#include "wingdi.h" ++#include "winuser.h" ++#include "mmddk.h" ++ ++#ifdef HAVE_UNISTD_H ++# include ++#endif ++#include ++ ++#ifdef HAVE_PULSEAUDIO ++ ++#include "wine/unicode.h" ++#include "wine/debug.h" ++#include "wine/library.h" ++ ++#include ++#include ++WINE_DEFAULT_DEBUG_CHANNEL(wave); ++ ++/* ++ * - Need to subscribe to sink/source events and keep the WInDev and WOutDev ++ * structures updated ++ */ ++ ++/* These strings used only for tracing */ ++const char * PULSE_getCmdString(enum win_wm_message msg) { ++ static char unknown[32]; ++#define MSG_TO_STR(x) case x: return #x ++ switch(msg) { ++ MSG_TO_STR(WINE_WM_PAUSING); ++ MSG_TO_STR(WINE_WM_RESTARTING); ++ MSG_TO_STR(WINE_WM_RESETTING); ++ MSG_TO_STR(WINE_WM_HEADER); ++ MSG_TO_STR(WINE_WM_BREAKLOOP); ++ MSG_TO_STR(WINE_WM_CLOSING); ++ MSG_TO_STR(WINE_WM_STARTING); ++ MSG_TO_STR(WINE_WM_STOPPING); ++ MSG_TO_STR(WINE_WM_XRUN); ++ MSG_TO_STR(WINE_WM_FEED); ++ } ++#undef MSG_TO_STR ++ sprintf(unknown, "UNKNOWN(0x%08x)", msg); ++ return unknown; ++} ++ ++/*======================================================================* ++ * Ring Buffer Functions - copied from winealsa.drv * ++ *======================================================================*/ ++ ++/* unless someone makes a wineserver kernel module, Unix pipes are faster than win32 events */ ++#define USE_PIPE_SYNC ++ ++#ifdef USE_PIPE_SYNC ++#define INIT_OMR(omr) do { if (pipe(omr->msg_pipe) < 0) { omr->msg_pipe[0] = omr->msg_pipe[1] = -1; } } while (0) ++#define CLOSE_OMR(omr) do { close(omr->msg_pipe[0]); close(omr->msg_pipe[1]); } while (0) ++#define SIGNAL_OMR(omr) do { int x = 0; write((omr)->msg_pipe[1], &x, sizeof(x)); } while (0) ++#define CLEAR_OMR(omr) do { int x = 0; read((omr)->msg_pipe[0], &x, sizeof(x)); } while (0) ++#define RESET_OMR(omr) do { } while (0) ++#define WAIT_OMR(omr, sleep) \ ++ do { struct pollfd pfd; pfd.fd = (omr)->msg_pipe[0]; \ ++ pfd.events = POLLIN; poll(&pfd, 1, sleep); } while (0) ++#else ++#define INIT_OMR(omr) do { omr->msg_event = CreateEventW(NULL, FALSE, FALSE, NULL); } while (0) ++#define CLOSE_OMR(omr) do { CloseHandle(omr->msg_event); } while (0) ++#define SIGNAL_OMR(omr) do { SetEvent((omr)->msg_event); } while (0) ++#define CLEAR_OMR(omr) do { } while (0) ++#define RESET_OMR(omr) do { ResetEvent((omr)->msg_event); } while (0) ++#define WAIT_OMR(omr, sleep) \ ++ do { WaitForSingleObject((omr)->msg_event, sleep); } while (0) ++#endif ++ ++#define PULSE_RING_BUFFER_INCREMENT 64 ++ ++/****************************************************************** ++ * PULSE_InitRingMessage ++ * ++ * Initialize the ring of messages for passing between driver's caller ++ * and playback/record thread ++ */ ++int PULSE_InitRingMessage(PULSE_MSG_RING* omr) ++{ ++ omr->msg_toget = 0; ++ omr->msg_tosave = 0; ++ INIT_OMR(omr); ++ omr->ring_buffer_size = PULSE_RING_BUFFER_INCREMENT; ++ omr->messages = HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,omr->ring_buffer_size * sizeof(PULSE_MSG)); ++ ++ InitializeCriticalSection(&omr->msg_crst); ++ omr->msg_crst.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": PULSE_MSG_RING.msg_crst"); ++ return 0; ++} ++ ++/****************************************************************** ++ * PULSE_DestroyRingMessage ++ * ++ */ ++int PULSE_DestroyRingMessage(PULSE_MSG_RING* omr) ++{ ++ CLOSE_OMR(omr); ++ HeapFree(GetProcessHeap(),0,omr->messages); ++ omr->messages = NULL; ++ omr->ring_buffer_size = PULSE_RING_BUFFER_INCREMENT; ++ omr->msg_crst.DebugInfo->Spare[0] = 0; ++ DeleteCriticalSection(&omr->msg_crst); ++ return 0; ++} ++/****************************************************************** ++ * PULSE_ResetRingMessage ++ * ++ */ ++void PULSE_ResetRingMessage(PULSE_MSG_RING* omr) ++{ ++ RESET_OMR(omr); ++} ++ ++/****************************************************************** ++ * PULSE_WaitRingMessage ++ * ++ */ ++void PULSE_WaitRingMessage(PULSE_MSG_RING* omr, DWORD sleep) ++{ ++ WAIT_OMR(omr, sleep); ++} ++ ++/****************************************************************** ++ * PULSE_AddRingMessage ++ * ++ * Inserts a new message into the ring (should be called from DriverProc derived routines) ++ */ ++int PULSE_AddRingMessage(PULSE_MSG_RING* omr, enum win_wm_message msg, DWORD param, BOOL wait) ++{ ++ HANDLE hEvent = INVALID_HANDLE_VALUE; ++ ++ EnterCriticalSection(&omr->msg_crst); ++ if ((omr->msg_toget == ((omr->msg_tosave + 1) % omr->ring_buffer_size))) ++ { ++ int old_ring_buffer_size = omr->ring_buffer_size; ++ omr->ring_buffer_size += PULSE_RING_BUFFER_INCREMENT; ++ omr->messages = HeapReAlloc(GetProcessHeap(),0,omr->messages, omr->ring_buffer_size * sizeof(PULSE_MSG)); ++ /* Now we need to rearrange the ring buffer so that the new ++ buffers just allocated are in between omr->msg_tosave and ++ omr->msg_toget. ++ */ ++ if (omr->msg_tosave < omr->msg_toget) ++ { ++ memmove(&(omr->messages[omr->msg_toget + PULSE_RING_BUFFER_INCREMENT]), ++ &(omr->messages[omr->msg_toget]), ++ sizeof(PULSE_MSG)*(old_ring_buffer_size - omr->msg_toget) ++ ); ++ omr->msg_toget += PULSE_RING_BUFFER_INCREMENT; ++ } ++ } ++ if (wait) ++ { ++ hEvent = CreateEventW(NULL, FALSE, FALSE, NULL); ++ if (hEvent == INVALID_HANDLE_VALUE) ++ { ++ ERR("can't create event !?\n"); ++ LeaveCriticalSection(&omr->msg_crst); ++ return 0; ++ } ++ if (omr->msg_toget != omr->msg_tosave && omr->messages[omr->msg_toget].msg != WINE_WM_HEADER) ++ FIXME("two fast messages in the queue!!!!\n"); /* toget = %d(%s), tosave=%d(%s)\n", ++ omr->msg_toget,ALSA_getCmdString(omr->messages[omr->msg_toget].msg), ++ omr->msg_tosave,ALSA_getCmdString(omr->messages[omr->msg_tosave].msg)); */ ++ ++ /* fast messages have to be added at the start of the queue */ ++ omr->msg_toget = (omr->msg_toget + omr->ring_buffer_size - 1) % omr->ring_buffer_size; ++ ++ omr->messages[omr->msg_toget].msg = msg; ++ omr->messages[omr->msg_toget].param = param; ++ omr->messages[omr->msg_toget].hEvent = hEvent; ++ } ++ else ++ { ++ omr->messages[omr->msg_tosave].msg = msg; ++ omr->messages[omr->msg_tosave].param = param; ++ omr->messages[omr->msg_tosave].hEvent = INVALID_HANDLE_VALUE; ++ omr->msg_tosave = (omr->msg_tosave + 1) % omr->ring_buffer_size; ++ } ++ LeaveCriticalSection(&omr->msg_crst); ++ /* signal a new message */ ++ SIGNAL_OMR(omr); ++ if (wait) ++ { ++ /* wait for playback/record thread to have processed the message */ ++ WaitForSingleObject(hEvent, INFINITE); ++ CloseHandle(hEvent); ++ } ++ return 1; ++} ++ ++/****************************************************************** ++ * PULSE_RetrieveRingMessage ++ * ++ * Get a message from the ring. Should be called by the playback/record thread. ++ */ ++int PULSE_RetrieveRingMessage(PULSE_MSG_RING* omr, ++ enum win_wm_message *msg, DWORD *param, HANDLE *hEvent) ++{ ++ EnterCriticalSection(&omr->msg_crst); ++ ++ if (omr->msg_toget == omr->msg_tosave) /* buffer empty ? */ ++ { ++ LeaveCriticalSection(&omr->msg_crst); ++ return 0; ++ } ++ ++ *msg = omr->messages[omr->msg_toget].msg; ++ omr->messages[omr->msg_toget].msg = 0; ++ *param = omr->messages[omr->msg_toget].param; ++ *hEvent = omr->messages[omr->msg_toget].hEvent; ++ omr->msg_toget = (omr->msg_toget + 1) % omr->ring_buffer_size; ++ CLEAR_OMR(omr); ++ LeaveCriticalSection(&omr->msg_crst); ++ return 1; ++} ++ ++/************************************************************************** ++ * Utility Functions ++ */ ++ ++/****************************************************************** ++ * PULSE_free_wavedevs [internal] ++ * ++ * Free and deallocated all the wavedevs in the array of size allocated ++ */ ++static void PULSE_free_wavedevs(WINE_WAVEDEV *wd, DWORD *allocated) { ++ DWORD y, x = *allocated; ++ WINE_WAVEDEV *current_device; ++ WINE_WAVEINST *current_instance; ++ ++ TRACE("%i\n", *allocated); ++ ++ for (; x>0; ) { ++ current_device = &wd[--x]; ++ ++ pa_xfree(current_device->device_name); ++ ++ for (y = 0; y < PULSE_MAX_STREAM_INSTANCES; y++) { ++ if ((current_instance = current_device->instance[y])) { ++ if (current_instance->hThread != INVALID_HANDLE_VALUE && current_instance->msgRing.messages) { ++ PULSE_AddRingMessage(¤t_instance->msgRing, WINE_WM_CLOSING, 1, TRUE); ++ if (current_instance->hThread != INVALID_HANDLE_VALUE) { ++ /* Overkill? */ ++ TerminateThread(current_instance->hThread, 1); ++ current_instance->hThread = INVALID_HANDLE_VALUE; ++ } ++ if (current_instance->stream) ++ pa_stream_unref(current_instance->stream); ++ PULSE_DestroyRingMessage(¤t_instance->msgRing); ++ current_device->instance[current_instance->instance_ref] = NULL; ++ if (current_instance->buffer_attr) ++ pa_xfree(current_instance->buffer_attr); ++ HeapFree(GetProcessHeap(), 0, current_instance); ++ } ++ } ++ } ++ } ++ ++ HeapFree(GetProcessHeap(), 0, wd); ++ *allocated = 0; ++} ++ ++/****************************************************************** ++ * PULSE_wait_for_operation ++ * ++ * Waits for pa operations to complete, ensures success and dereferences the ++ * operations. ++ */ ++void PULSE_wait_for_operation(pa_operation *o, WINE_WAVEINST *wd) { ++ assert(o && wd); ++ ++ TRACE("Waiting..."); ++ ++ for (;;) { ++ ++ if (!wd->stream || ++ !PULSE_context || ++ pa_context_get_state(PULSE_context) != PA_CONTEXT_READY || ++ pa_stream_get_state(wd->stream) != PA_STREAM_READY) { ++ wd->state = WINE_WS_FAILED; ++ if (wd->hThread != INVALID_HANDLE_VALUE && wd->msgRing.messages) ++ PULSE_AddRingMessage(&wd->msgRing, WINE_WM_CLOSING, 1, FALSE); ++ break; ++ } ++ ++ if (pa_operation_get_state(o) != PA_OPERATION_RUNNING) ++ break; ++ ++ pa_threaded_mainloop_wait(PULSE_ml); ++ } ++ TRACE(" done\n"); ++ pa_operation_unref(o); ++} ++ ++/************************************************************************** ++ * Common Callbacks ++ */ ++ ++/****************************************************************** ++ * PULSE_stream_state_callback ++ * ++ * Called by pulse whenever the state of the stream changes. ++ */ ++void PULSE_stream_state_callback(pa_stream *s, void *userdata) { ++ WINE_WAVEINST *wd = (WINE_WAVEINST*)userdata; ++ assert(s && wd); ++ ++ switch (pa_stream_get_state(s)) { ++ ++ case PA_STREAM_READY: ++ TRACE("Stream ready\n"); ++ break; ++ case PA_STREAM_TERMINATED: ++ TRACE("Stream terminated\n"); ++ break; ++ case PA_STREAM_FAILED: ++ WARN("Stream failed!\n"); ++ wd->state = WINE_WS_FAILED; ++ if (wd->hThread != INVALID_HANDLE_VALUE && wd->msgRing.messages) ++ PULSE_AddRingMessage(&wd->msgRing, WINE_WM_CLOSING, 1, FALSE); ++ break; ++ case PA_STREAM_UNCONNECTED: ++ case PA_STREAM_CREATING: ++ return; ++ } ++ pa_threaded_mainloop_signal(PULSE_ml, 0); ++} ++ ++/************************************************************************** ++ * PULSE_stream_sucess_callback ++ */ ++void PULSE_stream_success_callback(pa_stream *s, int success, void *userdata) { ++ if (!success) ++ WARN("Stream operation failed: %s\n", pa_strerror(pa_context_errno(PULSE_context))); ++ ++ pa_threaded_mainloop_signal(PULSE_ml, 0); ++} ++ ++/************************************************************************** ++ * PULSE_context_success_callback ++ */ ++void PULSE_context_success_callback(pa_context *c, int success, void *userdata) { ++ if (!success) ++ WARN("Context operation failed: %s\n", pa_strerror(pa_context_errno(c))); ++ ++ pa_threaded_mainloop_signal(PULSE_ml, 0); ++} ++ ++/************************************************************************** ++ * Connection management and sink / source management. ++ */ ++ ++/************************************************************************** ++ * PULSE_context_state_callback [internal] ++ */ ++static void PULSE_context_state_callback(pa_context *c, void *userdata) { ++ assert(c); ++ ++ switch (pa_context_get_state(c)) { ++ case PA_CONTEXT_CONNECTING: ++ case PA_CONTEXT_AUTHORIZING: ++ case PA_CONTEXT_SETTING_NAME: ++ break; ++ ++ case PA_CONTEXT_READY: ++ case PA_CONTEXT_TERMINATED: ++ pa_threaded_mainloop_signal(PULSE_ml, 0); ++ break; ++ ++ case PA_CONTEXT_FAILED: ++ default: ++ ERR("Conneciton failure: %s\n", pa_strerror(pa_context_errno(c))); ++ ++ if (PULSE_context) { ++ pa_context_disconnect(PULSE_context); ++ } ++ ++ PULSE_free_wavedevs(WOutDev, &PULSE_WodNumDevs); ++ PULSE_free_wavedevs(WInDev, &PULSE_WidNumDevs); ++ ++ pa_threaded_mainloop_signal(PULSE_ml, 0); ++ } ++} ++ ++/************************************************************************** ++ * PULSE_add_input_device [internal] ++ * ++ * Creates or adds a device to WInDev based on the pa_source_info, or if ++ * pa_source_info is null, a default. ++ */ ++static void PULSE_add_input_device(pa_source_info *i, DWORD *allocated) { ++ WINE_WAVEDEV *wwi; ++ const char *description; ++ int x; ++ ++ if (WInDev) ++ wwi = HeapReAlloc(GetProcessHeap(), 0, WInDev, sizeof(WINE_WAVEDEV) * ((*allocated)+1)); ++ else ++ wwi = HeapAlloc(GetProcessHeap(), 0, sizeof(WINE_WAVEDEV)); ++ ++ if (!wwi) ++ return; ++ ++ WInDev = wwi; ++ wwi = &WInDev[(*allocated)++]; ++ ++ if (i) { ++ description = i->description; ++ wwi->device_name = pa_xstrdup(i->name); ++ strcpy(wwi->interface_name, "winepulse: "); ++ memcpy(wwi->interface_name + strlen(wwi->interface_name), ++ i->name, min(strlen(i->name), ++ sizeof(wwi->interface_name) - strlen("winepulse: "))); ++ } else { ++ description = pa_xstrdup("PulseAudio Server Default"); ++ wwi->device_name = NULL; ++ strcpy(wwi->interface_name, "winepulse: default"); ++ } ++ ++ memset(wwi, 0, sizeof(WINE_WAVEDEV)); ++ memset(&(wwi->caps.in), 0, sizeof(wwi->caps.in)); ++ MultiByteToWideChar(CP_ACP, 0, description, -1, wwi->caps.in.szPname, sizeof(wwi->caps.in.szPname)/sizeof(WCHAR)); ++ wwi->caps.in.szPname[sizeof(wwi->caps.in.szPname)/sizeof(WCHAR) - 1] = '\0'; ++ wwi->caps.in.wMid = MM_CREATIVE; ++ wwi->caps.in.wPid = MM_CREATIVE_SBP16_WAVEOUT; ++ wwi->caps.in.vDriverVersion = 0x0100; ++ wwi->caps.in.wChannels = 2; ++ wwi->caps.in.dwFormats |= ++ WAVE_FORMAT_1M08 | /* Mono 11025Hz 8-bit */ ++ WAVE_FORMAT_1M16 | /* Mono 11025Hz 16-bit */ ++ WAVE_FORMAT_1S08 | /* Stereo 11025Hz 8-bit */ ++ WAVE_FORMAT_1S16 | /* Stereo 11025Hz 16-bit */ ++ WAVE_FORMAT_2M08 | /* Mono 22050Hz 8-bit */ ++ WAVE_FORMAT_2M16 | /* Mono 22050Hz 16-bit */ ++ WAVE_FORMAT_2S08 | /* Stereo 22050Hz 8-bit */ ++ WAVE_FORMAT_2S16 | /* Stereo 22050Hz 16-bit */ ++ WAVE_FORMAT_4M08 | /* Mono 44100Hz 8-bit */ ++ WAVE_FORMAT_4M16 | /* Mono 44100Hz 16-bit */ ++ WAVE_FORMAT_4S08 | /* Stereo 44100Hz 8-bit */ ++ WAVE_FORMAT_4S16 | /* Stereo 44100Hz 16-bit */ ++ WAVE_FORMAT_48M08 | /* Mono 48000Hz 8-bit */ ++ WAVE_FORMAT_48S08 | /* Stereo 48000Hz 8-bit */ ++ WAVE_FORMAT_48M16 | /* Mono 48000Hz 16-bit */ ++ WAVE_FORMAT_48S16 | /* Stereo 48000Hz 16-bit */ ++ WAVE_FORMAT_96M08 | /* Mono 96000Hz 8-bit */ ++ WAVE_FORMAT_96S08 | /* Stereo 96000Hz 8-bit */ ++ WAVE_FORMAT_96M16 | /* Mono 96000Hz 16-bit */ ++ WAVE_FORMAT_96S16 ; /* Stereo 96000Hz 16-bit */ ++ ++ /* NULL out the instance pointers */ ++ for (x = 0; x < PULSE_MAX_STREAM_INSTANCES; x++) wwi->instance[x] = NULL; ++} ++ ++/************************************************************************** ++ * PULSE_add_output_device [internal] ++ * ++ * Creates or adds a device to WOutDev based on the pa_sinl_info, or if ++ * pa_sink_info is null, a default. ++ */ ++static void PULSE_add_output_device(pa_sink_info *i, DWORD *allocated) { ++ WINE_WAVEDEV *wwo; ++ const char *description; ++ int x; ++ ++ if (WOutDev) ++ wwo = HeapReAlloc(GetProcessHeap(), 0, WOutDev, sizeof(WINE_WAVEDEV) * ((*allocated)+1)); ++ else ++ wwo = HeapAlloc(GetProcessHeap(), 0, sizeof(WINE_WAVEDEV)); ++ ++ if (!wwo) ++ return; ++ ++ WOutDev = wwo; ++ wwo = &WOutDev[(*allocated)++]; ++ ++ if (i) { ++ description = i->description; ++ wwo->device_name = pa_xstrdup(i->name); ++ strcpy(wwo->interface_name, "winepulse: "); ++ memcpy(wwo->interface_name + strlen(wwo->interface_name), ++ wwo->device_name, min(strlen(wwo->device_name), ++ sizeof(wwo->interface_name) - strlen("winepulse: "))); ++ } else { ++ description = pa_xstrdup("PulseAudio Server Default"); ++ wwo->device_name = NULL; ++ strcpy(wwo->interface_name, "winepulse: default"); ++ } ++ ++ memset(wwo, 0, sizeof(WINE_WAVEDEV)); ++ memset(&(wwo->caps.out), 0, sizeof(wwo->caps.out)); ++ MultiByteToWideChar(CP_ACP, 0, description, -1, wwo->caps.out.szPname, sizeof(wwo->caps.out.szPname)/sizeof(WCHAR)); ++ wwo->caps.out.szPname[sizeof(wwo->caps.out.szPname)/sizeof(WCHAR) - 1] = '\0'; ++ wwo->caps.out.wMid = MM_CREATIVE; ++ wwo->caps.out.wPid = MM_CREATIVE_SBP16_WAVEOUT; ++ wwo->caps.out.vDriverVersion = 0x0100; ++ wwo->caps.out.dwSupport |= WAVECAPS_VOLUME | WAVECAPS_LRVOLUME; ++ wwo->caps.out.wChannels = 2; ++ wwo->caps.out.dwFormats |= ++ WAVE_FORMAT_1M08 | /* Mono 11025Hz 8-bit */ ++ WAVE_FORMAT_1M16 | /* Mono 11025Hz 16-bit */ ++ WAVE_FORMAT_1S08 | /* Stereo 11025Hz 8-bit */ ++ WAVE_FORMAT_1S16 | /* Stereo 11025Hz 16-bit */ ++ WAVE_FORMAT_2M08 | /* Mono 22050Hz 8-bit */ ++ WAVE_FORMAT_2M16 | /* Mono 22050Hz 16-bit */ ++ WAVE_FORMAT_2S08 | /* Stereo 22050Hz 8-bit */ ++ WAVE_FORMAT_2S16 | /* Stereo 22050Hz 16-bit */ ++ WAVE_FORMAT_4M08 | /* Mono 44100Hz 8-bit */ ++ WAVE_FORMAT_4M16 | /* Mono 44100Hz 16-bit */ ++ WAVE_FORMAT_4S08 | /* Stereo 44100Hz 8-bit */ ++ WAVE_FORMAT_4S16 | /* Stereo 44100Hz 16-bit */ ++ WAVE_FORMAT_48M08 | /* Mono 48000Hz 8-bit */ ++ WAVE_FORMAT_48S08 | /* Stereo 48000Hz 8-bit */ ++ WAVE_FORMAT_48M16 | /* Mono 48000Hz 16-bit */ ++ WAVE_FORMAT_48S16 | /* Stereo 48000Hz 16-bit */ ++ WAVE_FORMAT_96M08 | /* Mono 96000Hz 8-bit */ ++ WAVE_FORMAT_96S08 | /* Stereo 96000Hz 8-bit */ ++ WAVE_FORMAT_96M16 | /* Mono 96000HZ 16-bit */ ++ WAVE_FORMAT_96S16 ; /* Stereo 96000Hz 16-bit */ ++ ++ wwo->left_vol = PA_VOLUME_NORM; ++ wwo->right_vol = PA_VOLUME_NORM; ++ ++ /* NULL out the instance pointers */ ++ for (x = 0; x < PULSE_MAX_STREAM_INSTANCES; x++) wwo->instance[x] = NULL; ++} ++ ++/************************************************************************** ++ * PULSE_source_info_callback [internal] ++ * ++ * Calls PULSE_add_input_device to add the source to the list of devices ++ */ ++static void PULSE_source_info_callback(pa_context *c, pa_source_info *i, int eol, void *userdata) { ++ assert(c); ++ if (!eol && i) ++ if (i->monitor_of_sink == PA_INVALID_INDEX) /* For now only add non-montior sources */ ++ PULSE_add_input_device(i, (DWORD*)userdata); ++ ++ pa_threaded_mainloop_signal(PULSE_ml, 0); ++} ++ ++/************************************************************************** ++ * PULSE_sink_info_callback [internal] ++ * ++ * Calls PULSE_add_output_device to add the sink to the list of devices ++ */ ++static void PULSE_sink_info_callback(pa_context *c, pa_sink_info *i, int eol, void *userdata) { ++ assert(c); ++ if (!eol && i) ++ PULSE_add_output_device(i, (DWORD*)userdata); ++ ++ pa_threaded_mainloop_signal(PULSE_ml, 0); ++} ++ ++/************************************************************************** ++ * PULSE_WaveInit [internal] ++ * ++ * Connects to the pulseaudio server, tries to discover sinks and sources and ++ * allocates the WaveIn/WaveOut devices. ++ */ ++LONG PULSE_WaveInit(void) { ++ pa_operation *o = NULL; ++ DWORD allocated; ++ ++ WOutDev = NULL; ++ WInDev = NULL; ++ PULSE_WodNumDevs = 0; ++ PULSE_WidNumDevs = 0; ++ PULSE_context = NULL; ++ PULSE_ml = NULL; ++ ++ if (!(PULSE_ml = pa_threaded_mainloop_new())) { ++ WARN("Failed to create mainloop object."); ++ return -1; ++ } ++ ++ pa_threaded_mainloop_start(PULSE_ml); ++ ++ /* FIXME: better name? */ ++ PULSE_context = pa_context_new(pa_threaded_mainloop_get_api(PULSE_ml), "Wine Application"); ++ assert(PULSE_context); ++ ++ pa_context_set_state_callback(PULSE_context, PULSE_context_state_callback, NULL); ++ ++ if (pa_context_get_state(PULSE_context) != PA_CONTEXT_UNCONNECTED) ++ return 0; ++ ++ pa_threaded_mainloop_lock(PULSE_ml); ++ ++ TRACE("Attempting to connect to pulseaudio server.\n"); ++ if (pa_context_connect(PULSE_context, NULL, 0, NULL) < 0) { ++ WARN("failed to connect context object %s\n", pa_strerror(pa_context_errno(PULSE_context))); ++ return -1; ++ } ++ ++ /* Wait for connection */ ++ for (;;) { ++ pa_context_state_t state = pa_context_get_state(PULSE_context); ++ ++ if (state == PA_CONTEXT_FAILED || state == PA_CONTEXT_TERMINATED) { ++ ERR("Failed to connect to pulseaudio server.\n"); ++ pa_context_unref(PULSE_context); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ pa_threaded_mainloop_stop(PULSE_ml); ++ pa_threaded_mainloop_free(PULSE_ml); ++ return -1; ++ } ++ ++ if (state == PA_CONTEXT_READY) { ++ TRACE("Connection succeeded!\n"); ++ break; ++ } ++ ++ pa_threaded_mainloop_wait(PULSE_ml); ++ } ++ ++ /* Ask for all the sinks and create objects in the WOutDev array */ ++ allocated=0; ++ /* add a fake output (server default sink) */ ++ PULSE_add_output_device(NULL, &allocated); ++ o = pa_context_get_sink_info_list(PULSE_context, (pa_sink_info_cb_t)PULSE_sink_info_callback, &allocated); ++ assert(o); ++ while (pa_operation_get_state(o) != PA_OPERATION_DONE) ++ pa_threaded_mainloop_wait(PULSE_ml); ++ pa_operation_unref(o); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ TRACE("Allocated %i output device(s).\n",allocated); ++ PULSE_WodNumDevs=allocated; ++ if (PULSE_WodNumDevs == 1) /* Only the fake sink exists */ ++ PULSE_free_wavedevs(WOutDev, &PULSE_WodNumDevs); ++ ++ /* Repeate for all the sources */ ++ allocated=0; ++ /* add a fake input (server default source) */ ++ PULSE_add_input_device(NULL, &allocated); ++ pa_threaded_mainloop_lock(PULSE_ml); ++ o = pa_context_get_source_info_list(PULSE_context, (pa_source_info_cb_t)PULSE_source_info_callback, &allocated); ++ assert(o); ++ while (pa_operation_get_state(o) != PA_OPERATION_DONE) ++ pa_threaded_mainloop_wait(PULSE_ml); ++ pa_operation_unref(o); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ TRACE("Allocated %i input device(s).\n", allocated); ++ PULSE_WidNumDevs=allocated; ++ if (PULSE_WidNumDevs == 1) /* Only the fake source exists */ ++ PULSE_free_wavedevs(WInDev, &PULSE_WidNumDevs); ++ ++ return 1; ++} ++ ++/************************************************************************** ++ * PULSE_WaveClose [internal] ++ * ++ * Disconnect from the server, deallocated the WaveIn/WaveOut devices, stop and ++ * free the mainloop. ++ */ ++ ++LONG PULSE_WaveClose(void) { ++ pa_threaded_mainloop_lock(PULSE_ml); ++ if (PULSE_context) { ++ pa_context_disconnect(PULSE_context); ++ pa_context_unref(PULSE_context); ++ PULSE_context = NULL; ++ } ++ ++ PULSE_free_wavedevs(WOutDev, &PULSE_WodNumDevs); ++ PULSE_free_wavedevs(WInDev, &PULSE_WidNumDevs); ++ ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ pa_threaded_mainloop_stop(PULSE_ml); ++ pa_threaded_mainloop_free(PULSE_ml); ++ ++ return 1; ++} ++ ++#endif /* HAVE_PULSEAUDIO */ ++ ++/************************************************************************** ++ * DriverProc (WINEPULSE.@) ++ */ ++LRESULT CALLBACK PULSE_DriverProc(DWORD_PTR dwDevID, HDRVR hDriv, UINT wMsg, ++ LPARAM dwParam1, LPARAM dwParam2) { ++ ++ switch(wMsg) { ++#ifdef HAVE_PULSEAUDIO ++ case DRV_LOAD: PULSE_WaveInit(); ++ return 1; ++ case DRV_FREE: return PULSE_WaveClose(); ++ case DRV_OPEN: return 1; ++ case DRV_CLOSE: return 1; ++ case DRV_ENABLE: return 1; ++ case DRV_DISABLE: return 1; ++ case DRV_QUERYCONFIGURE: return 1; ++ case DRV_CONFIGURE: MessageBoxA(0, "PulseAudio MultiMedia Driver !", "PulseAudio Driver", MB_OK); return 1; ++ case DRV_INSTALL: return DRVCNF_RESTART; ++ case DRV_REMOVE: return DRVCNF_RESTART; ++#endif ++ default: ++ return DefDriverProc(dwDevID, hDriv, wMsg, dwParam1, dwParam2); ++ } ++} +diff --git a/dlls/winepulse.drv/waveout.c b/dlls/winepulse.drv/waveout.c +new file mode 100644 +index 0000000..fe7543f +--- /dev/null ++++ b/dlls/winepulse.drv/waveout.c +@@ -0,0 +1,180 @@ ++/* ++ * Wine Driver for PulseAudio - WaveOut Functionality ++ * http://pulseaudio.org/ ++ * ++ * Copyright 2002 Eric Pouech ++ * 2002 Marco Pietrobono ++ * 2003 Christian Costa ++ * 2006-2007 Maarten Lankhorst ++ * 2008 Arthur Taylor (PulseAudio version) ++ * ++ * 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, write to the Free Software ++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA ++ */ ++ ++#include "config.h" ++ ++#include ++#include ++#include ++#include ++ ++#include "windef.h" ++#include "winbase.h" ++#include "wingdi.h" ++#include "winuser.h" ++#include "winnls.h" ++#include "winerror.h" ++#include "mmddk.h" ++#include "mmreg.h" ++#include "ks.h" ++#include "ksguid.h" ++#include "ksmedia.h" ++#include "dsound.h" ++#include "dsdriver.h" ++ ++#include ++ ++#include "wine/debug.h" ++ ++WINE_DEFAULT_DEBUG_CHANNEL(wave); ++ ++#if HAVE_PULSEAUDIO ++ ++/* state diagram for waveOut writing: ++ * ++ * +---------+-------------+---------------+---------------------------------+ ++ * | state | function | event | new state | ++ * +---------+-------------+---------------+---------------------------------+ ++ * | | open() | | STOPPED | ++ * | PAUSED | write() | | PAUSED | ++ * | STOPPED | write() | | PLAYING | ++ * | PLAYING | write() | HEADER | PLAYING | ++ * | (other) | write() | | | ++ * | (any) | pause() | PAUSING | PAUSED | ++ * | PAUSED | restart() | RESTARTING | PLAYING (if no thrd => STOPPED) | ++ * | PAUSED | reset() | RESETTING | PAUSED | ++ * | (other) | reset() | RESETTING | STOPPED | ++ * | (any) | close() | CLOSING | CLOSED | ++ * +---------+-------------+---------------+---------------------------------+ ++ */ ++ ++/************************************************************************** ++ * wodGetDevCaps [internal] ++ */ ++static DWORD wodGetDevCaps(DWORD wDevID, LPWAVEOUTCAPSW lpCaps, DWORD dwSize) { ++ TRACE("(%u, %p, %u);\n", wDevID, lpCaps, dwSize); ++ ++ if (lpCaps == NULL) return MMSYSERR_NOTENABLED; ++ ++ if (wDevID >= PULSE_WodNumDevs) { ++ TRACE("Asked for device %d, but only %d known!\n", wDevID, PULSE_WodNumDevs); ++ return MMSYSERR_INVALHANDLE; ++ } ++ ++ memcpy(lpCaps, &(WOutDev[wDevID].caps.out), min(dwSize, sizeof(*lpCaps))); ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * wodDevInterfaceSize [internal] ++ */ ++static DWORD wodDevInterfaceSize(UINT wDevID, LPDWORD dwParam1) { ++ ++ *dwParam1 = MultiByteToWideChar(CP_ACP, 0, WOutDev[wDevID].interface_name, -1, NULL, 0) * sizeof(WCHAR); ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * wodDevInterface [internal] ++ */ ++static DWORD wodDevInterface(UINT wDevID, PWCHAR dwParam1, DWORD dwParam2) { ++ if (dwParam2 >= MultiByteToWideChar(CP_ACP, 0, WOutDev[wDevID].interface_name, -1, ++ NULL, 0 ) * sizeof(WCHAR)) ++ { ++ MultiByteToWideChar(CP_ACP, 0, WOutDev[wDevID].interface_name, -1, ++ dwParam1, dwParam2 / sizeof(WCHAR)); ++ return MMSYSERR_NOERROR; ++ } ++ return MMSYSERR_INVALPARAM; ++} ++ ++/*======================================================================* ++ * Low level DSOUND implementation * ++ *======================================================================*/ ++static DWORD wodDsCreate(UINT wDevID, PIDSDRIVER* drv) { ++ /* Is this possible ?*/ ++ return MMSYSERR_NOTSUPPORTED; ++} ++ ++static DWORD wodDsDesc(UINT wDevID, PDSDRIVERDESC desc) { ++ memset(desc, 0, sizeof(*desc)); ++ strcpy(desc->szDesc, "Wine PulseAudio DirectSound Driver"); ++ strcpy(desc->szDrvname, "winepulse.drv"); ++ return MMSYSERR_NOERROR; ++} ++/************************************************************************** ++ * wodMessage (WINEPULSE.@) ++ */ ++DWORD WINAPI PULSE_wodMessage(UINT wDevID, UINT wMsg, DWORD dwUser, ++ DWORD dwParam1, DWORD dwParam2) { ++ ++ switch (wMsg) { ++ case DRVM_INIT: ++ case DRVM_EXIT: ++ case DRVM_ENABLE: ++ case DRVM_DISABLE: ++ /* FIXME: Pretend this is supported */ ++ return 0; ++ case WODM_OPEN: return MMSYSERR_NOTSUPPORTED; ++ case WODM_CLOSE: return MMSYSERR_NOTSUPPORTED; ++ case WODM_WRITE: return MMSYSERR_NOTSUPPORTED; ++ case WODM_PAUSE: return MMSYSERR_NOTSUPPORTED; ++ case WODM_GETPOS: return MMSYSERR_NOTSUPPORTED; ++ case WODM_BREAKLOOP: return MMSYSERR_NOTSUPPORTED; ++ case WODM_PREPARE: return MMSYSERR_NOTSUPPORTED; ++ case WODM_UNPREPARE: return MMSYSERR_NOTSUPPORTED; ++ case WODM_GETDEVCAPS: return wodGetDevCaps (wDevID, (LPWAVEOUTCAPSW)dwParam1, dwParam2); ++ case WODM_GETNUMDEVS: return PULSE_WodNumDevs; ++ case WODM_GETPITCH: return MMSYSERR_NOTSUPPORTED; ++ case WODM_SETPITCH: return MMSYSERR_NOTSUPPORTED; ++ case WODM_GETPLAYBACKRATE: return MMSYSERR_NOTSUPPORTED; /* support if theoretically possible */ ++ case WODM_SETPLAYBACKRATE: return MMSYSERR_NOTSUPPORTED; /* since pulseaudio 0.9.8 */ ++ case WODM_GETVOLUME: return MMSYSERR_NOTSUPPORTED; ++ case WODM_SETVOLUME: return MMSYSERR_NOTSUPPORTED; ++ case WODM_RESTART: return MMSYSERR_NOTSUPPORTED; ++ case WODM_RESET: return MMSYSERR_NOTSUPPORTED; ++ case DRV_QUERYDEVICEINTERFACESIZE: return wodDevInterfaceSize (wDevID, (LPDWORD)dwParam1); ++ case DRV_QUERYDEVICEINTERFACE: return wodDevInterface (wDevID, (PWCHAR)dwParam1, dwParam2); ++ case DRV_QUERYDSOUNDIFACE: return wodDsCreate (wDevID, (PIDSDRIVER*)dwParam1); ++ case DRV_QUERYDSOUNDDESC: return wodDsDesc (wDevID, (PDSDRIVERDESC)dwParam1); ++ default: ++ FIXME("unknown message %d!\n", wMsg); ++ } ++ return MMSYSERR_NOTSUPPORTED; ++} ++ ++#else /* !HAVE_PULSEAUDIO */ ++ ++/************************************************************************** ++ * wodMessage (WINEPULSE.@) ++ */ ++DWORD WINAPI PULSE_wodMessage(WORD wDevID, WORD wMsg, DWORD dwUser, ++ DWORD dwParam1, DWORD dwParam2) { ++ FIXME("(%u, %04X, %08X, %08X, %08X):stub\n", wDevID, wMsg, dwUser, ++ dwParam1, dwParam2); ++ return MMSYSERR_NOTENABLED; ++} ++ ++#endif /* HAVE_PULSEAUDIO */ +diff --git a/dlls/winepulse.drv/winepulse.drv.spec b/dlls/winepulse.drv/winepulse.drv.spec +new file mode 100644 +index 0000000..1707969 +--- /dev/null ++++ b/dlls/winepulse.drv/winepulse.drv.spec +@@ -0,0 +1,2 @@ ++@ stdcall -private DriverProc(long long long long long long) PULSE_DriverProc ++@ stdcall -private wodMessage(long long long long long long) PULSE_wodMessage +diff --git a/dlls/winepulse.drv/winepulse.h b/dlls/winepulse.drv/winepulse.h +new file mode 100644 +index 0000000..277221a +--- /dev/null ++++ b/dlls/winepulse.drv/winepulse.h +@@ -0,0 +1,169 @@ ++/* Definitions for PulseAudio Wine Driver ++ * ++ * Copyright 2008 Arthur Taylor ++ * ++ * 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, write to the Free Software ++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA ++ */ ++ ++#ifndef __WINE_CONFIG_H ++# error You must include config.h to use this header ++#endif ++ ++#if defined(HAVE_PULSEAUDIO) && !defined(__WINEPULSE_H) ++#define __WINEPULSE_H ++ ++#include "mmreg.h" ++#include "dsound.h" ++#include "dsdriver.h" ++ ++#include "ks.h" ++#include "ksmedia.h" ++#include "ksguid.h" ++ ++#include ++ ++/* state diagram for waveOut writing: ++ * ++ * +---------+-------------+---------------+---------------------------------+ ++ * | state | function | event | new state | ++ * +---------+-------------+---------------+---------------------------------+ ++ * | | open() | | STOPPED | ++ * | PAUSED | write() | | PAUSED | ++ * | STOPPED | write() | | PLAYING | ++ * | PLAYING | write() | HEADER | PLAYING | ++ * | (other) | write() | | | ++ * | (any) | pause() | PAUSING | PAUSED | ++ * | PAUSED | restart() | RESTARTING | PLAYING (if no thrd => STOPPED) | ++ * | (any) | reset() | RESETTING | STOPPED | ++ * | (any) | close() | CLOSING | CLOSED | ++ * +---------+-------------+---------------+---------------------------------+ ++ */ ++ ++#undef PULSE_VERBOSE ++ ++/* states of the playing device */ ++#define WINE_WS_PLAYING 1 ++#define WINE_WS_PAUSED 2 ++#define WINE_WS_STOPPED 3 ++#define WINE_WS_CLOSED 4 ++#define WINE_WS_FAILED 5 ++ ++#define PULSE_MAX_STREAM_INSTANCES 16 /* Sixteen streams per device should be good enough? */ ++ ++/* events to be send to device */ ++enum win_wm_message { ++ WINE_WM_PAUSING = WM_USER + 1, WINE_WM_RESTARTING, WINE_WM_RESETTING, WINE_WM_HEADER, ++ WINE_WM_BREAKLOOP, WINE_WM_CLOSING, WINE_WM_STARTING, WINE_WM_STOPPING, WINE_WM_XRUN, WINE_WM_FEED ++}; ++ ++typedef struct { ++ enum win_wm_message msg; /* message identifier */ ++ DWORD param; /* parameter for this message */ ++ HANDLE hEvent; /* if message is synchronous, handle of event for synchro */ ++} PULSE_MSG; ++ ++/* implement an in-process message ring for better performance ++ * (compared to passing thru the server) ++ * this ring will be used by the input (resp output) record (resp playback) routine ++ */ ++typedef struct { ++ PULSE_MSG * messages; ++ int ring_buffer_size; ++ int msg_tosave; ++ int msg_toget; ++/* Either pipe or event is used, but that is defined in pulse.c, ++ * since this is a global header we define both here */ ++ int msg_pipe[2]; ++ HANDLE msg_event; ++ CRITICAL_SECTION msg_crst; ++} PULSE_MSG_RING; ++ ++/* Per-playback/record instance */ ++typedef struct { ++ int instance_ref; /* The array index of WINE_WAVEDEV->instance[] that this is */ ++ volatile int state; /* one of the WINE_WS_ manifest constants */ ++ WAVEOPENDESC waveDesc; ++ WORD wFlags; ++ pa_stream *stream; /* The PulseAudio stream */ ++ const pa_timing_info *timing_info; ++ pa_buffer_attr *buffer_attr; ++ pa_sample_spec sample_spec; /* Sample spec of this stream / device */ ++ pa_cvolume volume; ++ ++ /* WavaHdr information */ ++ LPWAVEHDR lpQueuePtr; /* start of queued WAVEHDRs (waiting to be notified) */ ++ LPWAVEHDR lpPlayPtr; /* start of not yet fully played buffers */ ++ DWORD dwPartialOffset; /* Offset of not yet written bytes in lpPlayPtr */ ++ LPWAVEHDR lpLoopPtr; /* pointer of first buffer in loop, if any */ ++ DWORD dwLoops; /* private copy of loop counter */ ++ ++ /* Virtual stream positioning information */ ++ DWORD last_reset; /* When the last reset occured, as pa stream time doesn't reset */ ++ BOOL is_buffering; /* !is_playing */ ++ struct timeval last_header; /* When the last wavehdr was received, only updated when is_buffering is true */ ++ BOOL is_releasing; /* Whether we are releasing wavehdrs, may not always be the inverse of is_buffering */ ++ struct timeval started_releasing; /* When wavehdr releasing started, for comparison to queued written wavehdrs */ ++ DWORD releasing_offset; /* How much audio has been released prior when releasing started in this instance */ ++ ++ /* Thread communication and synchronization stuff */ ++ HANDLE hStartUpEvent; ++ HANDLE hThread; ++ DWORD dwThreadID; ++ PULSE_MSG_RING msgRing; ++} WINE_WAVEINST; ++ ++/* Per-playback/record device */ ++typedef struct { ++ char *device_name; /* Name of the device used as an identifer on the server */ ++ char interface_name[MAXPNAMELEN * 2]; ++ ++ pa_volume_t left_vol; /* Volume is per device and always stereo */ ++ pa_volume_t right_vol; ++ ++ union { ++ WAVEOUTCAPSW out; ++ WAVEINCAPSW in; ++ } caps; ++ ++ WINE_WAVEINST *instance[PULSE_MAX_STREAM_INSTANCES]; ++} WINE_WAVEDEV; ++ ++/* We establish one context per instance, so make it global to the lib */ ++pa_context *PULSE_context; /* Connection Context */ ++pa_threaded_mainloop *PULSE_ml; /* PA Runtime information */ ++ ++/* WaveIn / WaveOut devices */ ++WINE_WAVEDEV *WOutDev; ++WINE_WAVEDEV *WInDev; ++DWORD PULSE_WodNumDevs; ++DWORD PULSE_WidNumDevs; ++ ++/* pulse.c */ ++void PULSE_set_buffer_attr_callback(pa_stream *stream, int success, void *userdata); ++void PULSE_wait_for_operation(pa_operation *o, WINE_WAVEINST *ww); ++void PULSE_stream_success_callback(pa_stream *s, int success, void *userdata); ++void PULSE_stream_state_callback(pa_stream *s, void *userdata); ++void PULSE_context_success_callback(pa_context *c, int success, void *userdata); ++void PULSE_stream_request_callback(pa_stream *s, size_t n, void *userdata); ++DWORD PULSE_bytes_to_mmtime(LPMMTIME lpTime, DWORD position, pa_sample_spec *ss); ++BOOL PULSE_setupFormat(LPWAVEFORMATEX wf, pa_sample_spec *ss); ++int PULSE_InitRingMessage(PULSE_MSG_RING* omr); ++int PULSE_DestroyRingMessage(PULSE_MSG_RING* omr); ++void PULSE_ResetRingMessage(PULSE_MSG_RING* omr); ++void PULSE_WaitRingMessage(PULSE_MSG_RING* omr, DWORD sleep); ++int PULSE_AddRingMessage(PULSE_MSG_RING* omr, enum win_wm_message msg, DWORD param, BOOL wait); ++int PULSE_RetrieveRingMessage(PULSE_MSG_RING* omr, enum win_wm_message *msg, DWORD *param, HANDLE *hEvent); ++const char * PULSE_getCmdString(enum win_wm_message msg); ++#endif + diff --git a/wine.spec b/wine.spec index e8cda9f..b60f2d6 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ Name: wine -Version: 1.1.9 -Release: 2%{?dist} +Version: 1.1.10 +Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -40,6 +40,9 @@ Source201: wine.directory Source300: wine-mime-msi.desktop # explain how to use wine with pulseaudio +# see http://bugs.winehq.org/show_bug.cgi?id=10495 +Patch400: wine-pulseaudio.patch +Patch401: wine-pulseaudio-waveout.patch Source402: README-FEDORA-PULSEAUDIO @@ -90,8 +93,10 @@ BuildRequires: libXmu-devel BuildRequires: libXi-devel BuildRequires: libXcursor-devel # dbus/hal >= FC5 -BuildRequires: dbus-devel hal-devel -BuildRequires: gnutls-devel +BuildRequires: dbus-devel hal-devel +BuildRequires: gnutls-devel +BuildRequires: pulseaudio-libs-devel +BuildRequires: autoconf Requires: wine-core = %{version}-%{release} Requires: wine-capi = %{version}-%{release} @@ -216,10 +221,22 @@ Requires: wine-core = %{version}-%{release} Header, include files and library definition files for developing applications with the Wine Windows(TM) emulation libraries. +%package pulseaudio +Summary: Pulseaudio support for wine +Group: System Environment/Libraries +Requires: wine-core = %{version}-%{release} + +%description pulseaudio +This package adds a native pulseaudio driver for wine. This is not an official +wine audio driver. Please do not report bugs regarding this driver at winehq.org. + %prep %setup -q -n %{name}-%{version}-fe %patch1 %patch2 +%patch400 -p1 +%patch401 -p1 +autoconf -f %build # work around gcc bug see #440139 @@ -232,7 +249,8 @@ export CFLAGS="$RPM_OPT_FLAGS" %configure \ --sysconfdir=%{_sysconfdir}/wine --disable-static \ - --x-includes=%{_includedir} --x-libraries=%{_libdir} + --x-includes=%{_includedir} --x-libraries=%{_libdir} \ + --with-pulse %{__make} depend @@ -378,8 +396,6 @@ update-desktop-database &>/dev/null || : %doc AUTHORS README-Fedora README VERSION # do not include huge changelogs .OLD .ALPHA .BETA (#204302) %doc documentation/README.* -# pulseaudio workaround documentation -%doc README-FEDORA-PULSEAUDIO %{_bindir}/msiexec %{_bindir}/regedit %{_bindir}/regsvr32 @@ -832,7 +848,18 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.a %{_libdir}/wine/*.def +%files pulseaudio +# pulseaudio workaround documentation +%doc README-FEDORA-PULSEAUDIO +%{_libdir}/wine/winepulse.drv.so + %changelog +* Sat Dec 06 2008 Andreas Bierfert +- 1.1.10-1 +- version upgrade +- add native pulseaudio driver from winehq bugzilla (#10495) + fixes #474435, #344281 + * Mon Nov 24 2008 Andreas Bierfert - 1.1.9-2 - fix #469907 From aeb88d8503530bcea018fdaca7bc4978eadd9572 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Thu, 8 Jan 2009 17:58:18 +0000 Subject: [PATCH 105/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 8 +++++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/.cvsignore b/.cvsignore index 18ed564..f861725 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-1.1.10-fe.tar.bz2 +wine-1.1.12-fe.tar.bz2 diff --git a/sources b/sources index 37c0a2e..bf49a49 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -e8e6a40936896d488bae6d517ececed9 wine-1.1.10-fe.tar.bz2 +038acc9568ecf813ecd0b108e83a946d wine-1.1.12-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index b60f2d6..87a206e 100644 --- a/wine.spec +++ b/wine.spec @@ -1,5 +1,5 @@ Name: wine -Version: 1.1.10 +Version: 1.1.12 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -628,6 +628,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/olesvr32.dll.so %{_libdir}/wine/olethk32.dll.so %{_libdir}/wine/pdh.dll.so +%{_libdir}/wine/pidgen.dll.so %{_libdir}/wine/powrprof.dll.so %{_libdir}/wine/printui.dll.so %{_libdir}/wine/propsys.dll.so @@ -730,6 +731,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/ws2_32.dll.so %{_libdir}/wine/wsock32.dll.so %{_libdir}/wine/wtsapi32.dll.so +%{_libdir}/wine/wuapi.dll.so %{_libdir}/wine/security.dll.so %{_libdir}/wine/sfc.dll.so %{_datadir}/wine/fonts/ @@ -854,6 +856,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/winepulse.drv.so %changelog +* Mon Jan 05 2009 Andreas Bierfert +- 1.1.12-1 +- version upgrade + * Sat Dec 06 2008 Andreas Bierfert - 1.1.10-1 - version upgrade From d1b5d9aa54c9f8c2fb9374cb71c198f5a9333a2e Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 8 Feb 2009 07:44:01 +0000 Subject: [PATCH 106/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine-desktop-mime.patch | 7 +++-- wine-pulseaudio-winecfg.patch | 49 ++++++++++++++++++++++++++++++++ wine.spec | 53 ++++++++++++++++++++++++++--------- 5 files changed, 95 insertions(+), 18 deletions(-) create mode 100644 wine-pulseaudio-winecfg.patch diff --git a/.cvsignore b/.cvsignore index f861725..c0b9309 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-1.1.12-fe.tar.bz2 +wine-1.1.14-fe.tar.bz2 diff --git a/sources b/sources index bf49a49..076ec2e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -038acc9568ecf813ecd0b108e83a946d wine-1.1.12-fe.tar.bz2 +2ba8d6bcddf2b969da0281f867b713dd wine-1.1.14-fe.tar.bz2 diff --git a/wine-desktop-mime.patch b/wine-desktop-mime.patch index 99dfda7..ed87de5 100644 --- a/wine-desktop-mime.patch +++ b/wine-desktop-mime.patch @@ -1,9 +1,10 @@ ---- tools/wine.desktop.orig 2008-07-28 20:36:29.000000000 +0200 -+++ tools/wine.desktop 2008-07-28 20:36:43.000000000 +0200 -@@ -16,5 +16,5 @@ +--- tools/wine.desktop.orig 2009-01-17 09:46:27.000000000 +0100 ++++ tools/wine.desktop 2009-01-17 09:46:59.000000000 +0100 +@@ -16,6 +16,6 @@ Name[nb]=Wine Programlaster for Windowsapplikasjoner Name[nn]=Wine Programlaster for Windowsapplikasjoner Exec=wine start /unix %f -MimeType=application/x-ms-dos-executable;application/x-msdos-program;application/x-msdownload;application/exe;application/x-exe;application/dos-exe;vms/exe;application/x-winexe;application/msdos-windows;application/x-zip-compressed;application/x-executable;application/x-msi; +MimeType=application/x-ms-dos-executable;application/x-msdos-program;application/x-msdownload;application/exe;application/x-exe;application/dos-exe;vms/exe;application/x-winexe;application/msdos-windows;application/x-zip-compressed;application/x-msi; NoDisplay=true + StartupNotify=true diff --git a/wine-pulseaudio-winecfg.patch b/wine-pulseaudio-winecfg.patch new file mode 100644 index 0000000..6c23ae9 --- /dev/null +++ b/wine-pulseaudio-winecfg.patch @@ -0,0 +1,49 @@ +diff --git a/programs/winecfg/En.rc b/programs/winecfg/En.rc +index 1a07d71..7f45434 100644 +--- a/programs/winecfg/En.rc ++++ b/programs/winecfg/En.rc +@@ -276,6 +276,7 @@ BEGIN + IDS_DRIVER_NAS "NAS Driver" + IDS_DRIVER_AUDIOIO "Audio IO (Solaris) Driver" + IDS_DRIVER_COREAUDIO "CoreAudio Driver" ++ IDS_DRIVER_PULSE "PulseAudio Driver" + IDS_OPEN_DRIVER_ERROR "Couldn't open %s!" + IDS_SOUNDDRIVERS "Sound Drivers" + IDS_DEVICES_WAVEOUT "Wave Out Devices" +diff --git a/programs/winecfg/audio.c b/programs/winecfg/audio.c +index 3ce0e25..b716d25 100644 +--- a/programs/winecfg/audio.c ++++ b/programs/winecfg/audio.c +@@ -95,6 +95,7 @@ static const AUDIO_DRIVER sAudioDrivers[] = { + {IDS_DRIVER_NAS, "nas"}, + {IDS_DRIVER_ESOUND, "esd"}, + {IDS_DRIVER_AUDIOIO, "audioio"}, ++ {IDS_DRIVER_PULSE, "pulse"}, + {0, ""} + }; + +diff --git a/programs/winecfg/libraries.c b/programs/winecfg/libraries.c +index 92dd970..42b6e41 100644 +--- a/programs/winecfg/libraries.c ++++ b/programs/winecfg/libraries.c +@@ -79,6 +79,7 @@ static const char * const builtin_only[] = + "wineoss.drv", + "wineps", + "wineps.drv", ++ "winepulse.drv", + "winex11.drv", + "winmm", + "wintab32", +diff --git a/programs/winecfg/resource.h b/programs/winecfg/resource.h +index 2182c29..b8f07fb 100644 +--- a/programs/winecfg/resource.h ++++ b/programs/winecfg/resource.h +@@ -180,6 +180,7 @@ + #define IDS_ACCEL_BASIC 8302 + #define IDS_ACCEL_EMULATION 8303 + #define IDS_DRIVER_ALSA 8304 ++#define IDS_DRIVER_PULSE 8305 + + #define IDS_DRIVER_ESOUND 8306 + #define IDS_DRIVER_OSS 8307 + diff --git a/wine.spec b/wine.spec index 87a206e..1b3b64f 100644 --- a/wine.spec +++ b/wine.spec @@ -1,5 +1,5 @@ Name: wine -Version: 1.1.12 +Version: 1.1.14 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -43,6 +43,7 @@ Source300: wine-mime-msi.desktop # see http://bugs.winehq.org/show_bug.cgi?id=10495 Patch400: wine-pulseaudio.patch Patch401: wine-pulseaudio-waveout.patch +Patch402: wine-pulseaudio-winecfg.patch Source402: README-FEDORA-PULSEAUDIO @@ -53,8 +54,13 @@ Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) ExclusiveArch: i386 +# BR: All builds BuildRequires: bison BuildRequires: flex +BuildRequires: autoconf +BuildRequires: desktop-file-utils + +# x86-32 BR BuildRequires: alsa-lib-devel BuildRequires: audiofile-devel BuildRequires: esound-devel @@ -73,17 +79,17 @@ BuildRequires: unixODBC-devel BuildRequires: openssl-devel BuildRequires: sane-backends-devel BuildRequires: zlib-devel -BuildRequires: desktop-file-utils BuildRequires: fontforge -BuildRequires: gphoto2 gphoto2-devel +BuildRequires: libgphoto2-devel BuildRequires: jack-audio-connection-kit-devel -#217338 +# #217338 BuildRequires: isdn4k-utils-devel # modular x BuildRequires: libX11-devel BuildRequires: mesa-libGL-devel mesa-libGLU-devel BuildRequires: libXxf86dga-devel libXxf86vm-devel -BuildRequires: libXrandr-devel libXrender-devel libXext-devel +BuildRequires: libXrandr-devel libXrender-devel +BuildRequires: libXext-devel BuildRequires: libXinerama-devel BuildRequires: libXcomposite-devel BuildRequires: fontconfig-devel @@ -92,11 +98,9 @@ BuildRequires: cups-devel BuildRequires: libXmu-devel BuildRequires: libXi-devel BuildRequires: libXcursor-devel -# dbus/hal >= FC5 BuildRequires: dbus-devel hal-devel BuildRequires: gnutls-devel BuildRequires: pulseaudio-libs-devel -BuildRequires: autoconf Requires: wine-core = %{version}-%{release} Requires: wine-capi = %{version}-%{release} @@ -108,6 +112,7 @@ Requires: wine-ldap = %{version}-%{release} Requires: wine-nas = %{version}-%{release} Requires: wine-tools = %{version}-%{release} Requires: wine-twain = %{version}-%{release} +Requires: wine-pulseaudio = %{version}-%{release} %description While Wine is usually thought of as a Windows(TM) emulator, the Wine @@ -236,16 +241,17 @@ wine audio driver. Please do not report bugs regarding this driver at winehq.org %patch2 %patch400 -p1 %patch401 -p1 +%patch402 -p1 autoconf -f %build # work around gcc bug see #440139 # this affects more then just dlls/user32/menu.c -%if %{?fedora} > 8 -export CFLAGS="$RPM_OPT_FLAGS -fno-tree-fre -fno-tree-pre" -%else +#%if %{?fedora} > 8 +#export CFLAGS="$RPM_OPT_FLAGS -fno-tree-fre -fno-tree-pre" +#%else export CFLAGS="$RPM_OPT_FLAGS" -%endif +#%endif %configure \ --sysconfdir=%{_sysconfdir}/wine --disable-static \ @@ -407,6 +413,7 @@ update-desktop-database &>/dev/null || : %{_mandir}/man1/wineprefixcreate.1* %{_bindir}/winecfg %{_bindir}/uninstaller +%{_libdir}/wine/cacls.exe.so %{_libdir}/wine/expand.exe.so %{_libdir}/wine/winhelp.exe16 %{_libdir}/wine/winhlp32.exe.so @@ -445,6 +452,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/libwine.so.1* %dir %{_libdir}/wine %{_libdir}/wine/acledit.dll.so +%{_libdir}/wine/aclui.dll.so %{_libdir}/wine/activeds.dll.so %{_libdir}/wine/actxprxy.dll.so %{_libdir}/wine/advapi32.dll.so @@ -452,6 +460,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/amstream.dll.so %{_libdir}/wine/appwiz.cpl.so %{_libdir}/wine/atl.dll.so +%{_libdir}/wine/authz.dll.so %{_libdir}/wine/avicap32.dll.so %{_libdir}/wine/avifil32.dll.so %{_libdir}/wine/avifile.dll16 @@ -527,11 +536,12 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/gphoto2.ds.so %{_libdir}/wine/gpkcsp.dll.so %{_libdir}/wine/hal.dll.so -%{_libdir}/wine/hid.dll.so %{_libdir}/wine/hh.exe.so +%{_libdir}/wine/hhctrl.ocx.so +%{_libdir}/wine/hid.dll.so %{_libdir}/wine/hlink.dll.so %{_libdir}/wine/hnetcfg.dll.so -%{_libdir}/wine/hhctrl.ocx.so +%{_libdir}/wine/httpapi.dll.so %{_libdir}/wine/iccvid.dll.so %{_libdir}/wine/icinfo.exe.so %{_libdir}/wine/icmp.dll.so @@ -553,8 +563,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/kernel32.dll.so %{_libdir}/wine/keyboard.drv16 %{_libdir}/wine/krnl386.exe16 +%{_libdir}/wine/loadperf.dll.so %{_libdir}/wine/localspl.dll.so %{_libdir}/wine/localui.dll.so +%{_libdir}/wine/lodctr.exe.so %{_libdir}/wine/lz32.dll.so %{_libdir}/wine/lzexpand.dll16 %{_libdir}/wine/mapi32.dll.so @@ -577,6 +589,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/msadp32.acm.so %{_libdir}/wine/mscat32.dll.so %{_libdir}/wine/mscoree.dll.so +%{_libdir}/wine/msctf.dll.so %{_libdir}/wine/msdmo.dll.so %{_libdir}/wine/msftedit.dll.so %{_libdir}/wine/msg711.acm.so @@ -588,6 +601,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/msisip.dll.so %{_libdir}/wine/msisys.ocx.so %{_libdir}/wine/msnet32.dll.so +%{_libdir}/wine/mssign32.dll.so %{_libdir}/wine/mssip32.dll.so %{_libdir}/wine/msrle32.dll.so %{_libdir}/wine/mstask.dll.so @@ -642,6 +656,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/query.dll.so %{_libdir}/wine/rasapi16.dll16 %{_libdir}/wine/rasapi32.dll.so +%{_libdir}/wine/rasdlg.dll.so %{_libdir}/wine/resutils.dll.so %{_libdir}/wine/riched20.dll.so %{_libdir}/wine/riched32.dll.so @@ -679,8 +694,11 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/system.drv16 %{_libdir}/wine/tapi32.dll.so %{_libdir}/wine/toolhelp.dll16 +%{_libdir}/wine/traffic.dll.so %{_libdir}/wine/typelib.dll16 %{_libdir}/wine/unicows.dll.so +%{_libdir}/wine/unlodctr.exe.so +%{_libdir}/wine/updspapi.dll.so %{_libdir}/wine/url.dll.so %{_libdir}/wine/urlmon.dll.so %{_libdir}/wine/user.exe16 @@ -856,6 +874,15 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/winepulse.drv.so %changelog +* Sat Jan 31 2009 Andreas Bierfert +- 1.1.14-1 +- version upgrade + +* Sat Jan 17 2009 Andreas Bierfert +- 1.1.13-1 +- version upgrade +- fix gcc compile problems (#440139, #461720) + * Mon Jan 05 2009 Andreas Bierfert - 1.1.12-1 - version upgrade From 8ec558f7d4756f47c198210d1496ef6532b87f19 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Tue, 24 Feb 2009 20:45:09 +0000 Subject: [PATCH 107/715] - version upgrade - update winepulse patches --- .cvsignore | 2 +- README-FEDORA-PULSEAUDIO | 27 +- adding-pulseaudio-to-winecfg.patch | 289 +++ sources | 2 +- wine-alsa-pulseaudio.patch | 27 - wine-pulseaudio-waveout.patch | 1204 ---------- wine-pulseaudio-winecfg.patch | 49 - wine-pulseaudio.patch | 1188 ---------- wine-pulseaudio.sh | 7 - wine.spec | 28 +- winepulse-0.17-configure.ac.patch | 54 + winepulse-0.20.patch | 3436 ++++++++++++++++++++++++++++ 12 files changed, 3818 insertions(+), 2495 deletions(-) create mode 100644 adding-pulseaudio-to-winecfg.patch delete mode 100644 wine-alsa-pulseaudio.patch delete mode 100644 wine-pulseaudio-waveout.patch delete mode 100644 wine-pulseaudio-winecfg.patch delete mode 100644 wine-pulseaudio.patch delete mode 100644 wine-pulseaudio.sh create mode 100644 winepulse-0.17-configure.ac.patch create mode 100644 winepulse-0.20.patch diff --git a/.cvsignore b/.cvsignore index c0b9309..c038f0e 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-1.1.14-fe.tar.bz2 +wine-1.1.15-fe.tar.bz2 diff --git a/README-FEDORA-PULSEAUDIO b/README-FEDORA-PULSEAUDIO index 5704086..41645fb 100644 --- a/README-FEDORA-PULSEAUDIO +++ b/README-FEDORA-PULSEAUDIO @@ -1,10 +1,29 @@ Wine and Pulseaudio Support --------------------------- Currently wine does not have native support for pulseaudio. However, some -patches exist to make wine use a native pulseaudio backend -(see http://bugs.winehq.org/show_bug.cgi?id=10495). These have been included -into the fedora wine package. If you have problems please do _not_ report them -to the wine project. +patches exist to make wine use a native pulseaudio backend (see [1]) +These have been included into the fedora wine package. If you have problems +please do _not_ report them to the wine project. + +Here are some useful configuration options taken from [1]: + +HKCU\Software\Wine\Drivers:Audio +A string which contains a comma seperated list of audio backends for wine to +try, in order of preference. For example “pulse,alsa,esd”. Settable through +winecfg. + +HKCU\Software\Wine\Pulse Driver:MonitorDevices +A string which contains Y or N. If Y, sink monitors will show up as input +devices. If N, only capture sources will be show up as input devices. +Default is Y. + +HKCU\Software\Wine\DirectSound:HardwareAcceleration +A string. Also settable in winecfg. When set to “Emulation” WaveOut will be +used for directsound, which is more likely to work, but will have more latency. +When set to “Full” the directsound driver is tried for directsound support, +resulting in less latency, but possibley failure or bad sound. + +[1] - http://art.ified.ca/?page_id=40 Other ways to get wine working with pulseaudio are described below: diff --git a/adding-pulseaudio-to-winecfg.patch b/adding-pulseaudio-to-winecfg.patch new file mode 100644 index 0000000..f8770eb --- /dev/null +++ b/adding-pulseaudio-to-winecfg.patch @@ -0,0 +1,289 @@ +diff --git a/programs/winecfg/Bg.rc b/programs/winecfg/Bg.rc +index 8861657..cf91012 100644 +--- a/programs/winecfg/Bg.rc ++++ b/programs/winecfg/Bg.rc +@@ -274,6 +274,7 @@ BEGIN + IDS_ACCEL_STANDARD "Standard" + IDS_ACCEL_BASIC "Basic" + IDS_ACCEL_EMULATION "Emulation" ++ IDS_DRIVER_PULSE "PulseAudio Driver" + IDS_DRIVER_ALSA "ALSA Driver" + IDS_DRIVER_ESOUND "EsounD Driver" + IDS_DRIVER_OSS "OSS Driver" +diff --git a/programs/winecfg/Cs.rc b/programs/winecfg/Cs.rc +index 07f035f..8897237 100644 +--- a/programs/winecfg/Cs.rc ++++ b/programs/winecfg/Cs.rc +@@ -273,6 +273,7 @@ BEGIN + IDS_ACCEL_STANDARD "Standardn" + IDS_ACCEL_BASIC "Zkladn" + IDS_ACCEL_EMULATION "Emulace" ++ IDS_DRIVER_PULSE "Ovlada PulseAudio" + IDS_DRIVER_ALSA "Ovlada ALSA" + IDS_DRIVER_ESOUND "Ovlada EsounD" + IDS_DRIVER_OSS "Ovlada OSS" +diff --git a/programs/winecfg/Da.rc b/programs/winecfg/Da.rc +index 1d655ad..a1c9653 100644 +--- a/programs/winecfg/Da.rc ++++ b/programs/winecfg/Da.rc +@@ -268,6 +268,7 @@ BEGIN + IDS_ACCEL_STANDARD "Standard" + IDS_ACCEL_BASIC "Grundlggende" + IDS_ACCEL_EMULATION "Emulring" ++ IDS_DRIVER_PULSE "PulseAudio-driver" + IDS_DRIVER_ALSA "ALSA-driver" + IDS_DRIVER_ESOUND "EsounD-driver" + IDS_DRIVER_OSS "OSS-driver" +diff --git a/programs/winecfg/De.rc b/programs/winecfg/De.rc +index 9ed3d63..614247b 100644 +--- a/programs/winecfg/De.rc ++++ b/programs/winecfg/De.rc +@@ -268,6 +268,7 @@ BEGIN + IDS_ACCEL_STANDARD "Standard" + IDS_ACCEL_BASIC "Einfach" + IDS_ACCEL_EMULATION "Emulation" ++ IDS_DRIVER_PULSE "PulseAudio-Treiber" + IDS_DRIVER_ALSA "ALSA-Treiber" + IDS_DRIVER_ESOUND "EsounD-Treiber" + IDS_DRIVER_OSS "OSS-Treiber" +diff --git a/programs/winecfg/En.rc b/programs/winecfg/En.rc +index 5743ba3..b165a81 100644 +--- a/programs/winecfg/En.rc ++++ b/programs/winecfg/En.rc +@@ -270,6 +270,7 @@ BEGIN + IDS_ACCEL_STANDARD "Standard" + IDS_ACCEL_BASIC "Basic" + IDS_ACCEL_EMULATION "Emulation" ++ IDS_DRIVER_PULSE "PulseAudio Driver" + IDS_DRIVER_ALSA "ALSA Driver" + IDS_DRIVER_ESOUND "EsounD Driver" + IDS_DRIVER_OSS "OSS Driver" +diff --git a/programs/winecfg/Es.rc b/programs/winecfg/Es.rc +index 440ea71..dd1b764 100644 +--- a/programs/winecfg/Es.rc ++++ b/programs/winecfg/Es.rc +@@ -268,6 +268,7 @@ BEGIN + IDS_ACCEL_STANDARD "Estndar" + IDS_ACCEL_BASIC "Bsica" + IDS_ACCEL_EMULATION "Emulacin" ++ IDS_DRIVER_PULSE "Manejador PulseAudio" + IDS_DRIVER_ALSA "Manejador ALSA" + IDS_DRIVER_ESOUND "Manejador EsounD" + IDS_DRIVER_OSS "Manejador OSS" +diff --git a/programs/winecfg/Fi.rc b/programs/winecfg/Fi.rc +index 1d761f8..e1b1583 100644 +--- a/programs/winecfg/Fi.rc ++++ b/programs/winecfg/Fi.rc +@@ -268,6 +268,7 @@ BEGIN + IDS_ACCEL_STANDARD "Standard" + IDS_ACCEL_BASIC "Basic" + IDS_ACCEL_EMULATION "Emulation" ++ IDS_DRIVER_PULSE "PulseAudio Driver" + IDS_DRIVER_ALSA "ALSA Driver" + IDS_DRIVER_ESOUND "EsounD Driver" + IDS_DRIVER_OSS "OSS Driver" +diff --git a/programs/winecfg/Fr.rc b/programs/winecfg/Fr.rc +index 818c50f..97a1f44 100644 +--- a/programs/winecfg/Fr.rc ++++ b/programs/winecfg/Fr.rc +@@ -268,6 +268,7 @@ BEGIN + IDS_ACCEL_STANDARD "Standard" + IDS_ACCEL_BASIC "Basique" + IDS_ACCEL_EMULATION "mulation" ++ IDS_DRIVER_PULSE "Pilote PulseAudio" + IDS_DRIVER_ALSA "Pilote ALSA" + IDS_DRIVER_ESOUND "Pilote EsounD" + IDS_DRIVER_OSS "Pilote OSS" +diff --git a/programs/winecfg/Hu.rc b/programs/winecfg/Hu.rc +index 5afbf91..4131f5f 100644 +--- a/programs/winecfg/Hu.rc ++++ b/programs/winecfg/Hu.rc +@@ -268,6 +268,7 @@ BEGIN + IDS_ACCEL_STANDARD "Standard" + IDS_ACCEL_BASIC "Basic" + IDS_ACCEL_EMULATION "Emulation" ++ IDS_DRIVER_PULSE "PulseAudio Driver" + IDS_DRIVER_ALSA "ALSA Driver" + IDS_DRIVER_ESOUND "EsounD Driver" + IDS_DRIVER_OSS "OSS Driver" +diff --git a/programs/winecfg/Ja.rc b/programs/winecfg/Ja.rc +index 8eaa603..543ed2c 100644 +--- a/programs/winecfg/Ja.rc ++++ b/programs/winecfg/Ja.rc +@@ -273,6 +273,7 @@ BEGIN + IDS_ACCEL_STANDARD "標準" + IDS_ACCEL_BASIC "基本" + IDS_ACCEL_EMULATION "エミュレーション" ++ IDS_DRIVER_PULSE "PulseAudio Driver" + IDS_DRIVER_ALSA "ALSA Driver" + IDS_DRIVER_ESOUND "EsounD Driver" + IDS_DRIVER_OSS "OSS Driver" +diff --git a/programs/winecfg/Ko.rc b/programs/winecfg/Ko.rc +index ca94b5b..a79cc03 100644 +--- a/programs/winecfg/Ko.rc ++++ b/programs/winecfg/Ko.rc +@@ -272,6 +272,7 @@ BEGIN + IDS_ACCEL_STANDARD "ǥ" + IDS_ACCEL_BASIC "⺻" + IDS_ACCEL_EMULATION "ֹķ̼" ++ IDS_DRIVER_PULSE "PulseAudio ̹" + IDS_DRIVER_ALSA "ALSA ̹" + IDS_DRIVER_ESOUND "EsounD ̹" + IDS_DRIVER_OSS "OSS ̹" +diff --git a/programs/winecfg/Nl.rc b/programs/winecfg/Nl.rc +index fb91290..b23e919 100644 +--- a/programs/winecfg/Nl.rc ++++ b/programs/winecfg/Nl.rc +@@ -270,6 +270,7 @@ BEGIN + IDS_ACCEL_STANDARD "Standaard" + IDS_ACCEL_BASIC "Eenvoudig" + IDS_ACCEL_EMULATION "Emulatie" ++ IDS_DRIVER_PULSE "PulseAudio Stuurprogramma" + IDS_DRIVER_ALSA "ALSA Stuurprogramma" + IDS_DRIVER_ESOUND "EsounD Stuurprogramma" + IDS_DRIVER_OSS "OSS Stuurprogramma" +diff --git a/programs/winecfg/No.rc b/programs/winecfg/No.rc +index aaa64c3..9dd3572 100644 +--- a/programs/winecfg/No.rc ++++ b/programs/winecfg/No.rc +@@ -268,6 +268,7 @@ BEGIN + IDS_ACCEL_STANDARD "Standard" + IDS_ACCEL_BASIC "Grunnleggende" + IDS_ACCEL_EMULATION "Emulering" ++ IDS_DRIVER_PULSE "PulseAudio-driver" + IDS_DRIVER_ALSA "ALSA-driver" + IDS_DRIVER_ESOUND "EsounD-driver" + IDS_DRIVER_OSS "OSS-driver" +diff --git a/programs/winecfg/Pl.rc b/programs/winecfg/Pl.rc +index c426443..e3bf093 100644 +--- a/programs/winecfg/Pl.rc ++++ b/programs/winecfg/Pl.rc +@@ -271,6 +271,7 @@ BEGIN + IDS_ACCEL_STANDARD "Standardowe" + IDS_ACCEL_BASIC "Podstawowe" + IDS_ACCEL_EMULATION "Emulacja" ++ IDS_DRIVER_PULSE "Sterownik PulseAudio" + IDS_DRIVER_ALSA "Sterownik ALSA" + IDS_DRIVER_ESOUND "Sterownik EsounD" + IDS_DRIVER_OSS "Sterownik OSS" +diff --git a/programs/winecfg/Pt.rc b/programs/winecfg/Pt.rc +index 830cabf..0ed1dbd 100644 +--- a/programs/winecfg/Pt.rc ++++ b/programs/winecfg/Pt.rc +@@ -465,6 +465,7 @@ BEGIN + IDS_ACCEL_STANDARD "Padro" + IDS_ACCEL_BASIC "Bsico" + IDS_ACCEL_EMULATION "Emulao" ++ IDS_DRIVER_PULSE "Controlador PulseAudio" + IDS_DRIVER_ALSA "Controlador ALSA" + IDS_DRIVER_ESOUND "Controlador EsounD" + IDS_DRIVER_OSS "Controlador OSS" +diff --git a/programs/winecfg/Ro.rc b/programs/winecfg/Ro.rc +index a4b0cad..c065d36 100644 +--- a/programs/winecfg/Ro.rc ++++ b/programs/winecfg/Ro.rc +@@ -270,6 +270,7 @@ BEGIN + IDS_ACCEL_STANDARD "Standard" + IDS_ACCEL_BASIC "De basă" + IDS_ACCEL_EMULATION "Emulare" ++ IDS_DRIVER_PULSE "Driver PulseAudio" + IDS_DRIVER_ALSA "Driver ALSA" + IDS_DRIVER_ESOUND "Driver Esound" + IDS_DRIVER_OSS "Driver OSS" +diff --git a/programs/winecfg/Ru.rc b/programs/winecfg/Ru.rc +index 782e1fd..f516399 100644 +--- a/programs/winecfg/Ru.rc ++++ b/programs/winecfg/Ru.rc +@@ -272,6 +272,7 @@ BEGIN + IDS_ACCEL_STANDARD "" + IDS_ACCEL_BASIC "" + IDS_ACCEL_EMULATION "" ++ IDS_DRIVER_PULSE "PulseAudio " + IDS_DRIVER_ALSA "ALSA " + IDS_DRIVER_ESOUND "EsounD " + IDS_DRIVER_OSS "OSS " +diff --git a/programs/winecfg/Si.rc b/programs/winecfg/Si.rc +index 0bd04ef..c8bd35e 100644 +--- a/programs/winecfg/Si.rc ++++ b/programs/winecfg/Si.rc +@@ -270,6 +270,7 @@ BEGIN + IDS_ACCEL_STANDARD "Standardno" + IDS_ACCEL_BASIC "Osnovno" + IDS_ACCEL_EMULATION "Emulacija" ++ IDS_DRIVER_PULSE "PulseAudio gonilnik" + IDS_DRIVER_ALSA "ALSA gonilnik" + IDS_DRIVER_ESOUND "EsounD gonilnik" + IDS_DRIVER_OSS "OSS gonilnik" +diff --git a/programs/winecfg/Sv.rc b/programs/winecfg/Sv.rc +index 49bb236..7efe2c0 100644 +--- a/programs/winecfg/Sv.rc ++++ b/programs/winecfg/Sv.rc +@@ -268,6 +268,7 @@ BEGIN + IDS_ACCEL_STANDARD "Standard" + IDS_ACCEL_BASIC "Grundlggande" + IDS_ACCEL_EMULATION "Emulering" ++ IDS_DRIVER_PULSE "PulseAudio-drivrutin" + IDS_DRIVER_ALSA "ALSA-drivrutin" + IDS_DRIVER_ESOUND "EsounD-drivrutin" + IDS_DRIVER_OSS "OSS-drivrutin" +diff --git a/programs/winecfg/Tr.rc b/programs/winecfg/Tr.rc +index 4157f86..1be23c5 100644 +--- a/programs/winecfg/Tr.rc ++++ b/programs/winecfg/Tr.rc +@@ -268,6 +268,7 @@ BEGIN + IDS_ACCEL_STANDARD "Standart" + IDS_ACCEL_BASIC "Temel" + IDS_ACCEL_EMULATION "Taklit" ++ IDS_DRIVER_PULSE "PulseAudio Srcs" + IDS_DRIVER_ALSA "ALSA Srcs" + IDS_DRIVER_ESOUND "EsounD Srcs" + IDS_DRIVER_OSS "OSS Srcs" +diff --git a/programs/winecfg/Zh.rc b/programs/winecfg/Zh.rc +index 4c18e99..029a26d 100644 +--- a/programs/winecfg/Zh.rc ++++ b/programs/winecfg/Zh.rc +@@ -271,6 +271,7 @@ BEGIN + IDS_ACCEL_STANDARD "标准" + IDS_ACCEL_BASIC "基本" + IDS_ACCEL_EMULATION "软件模拟" ++ IDS_DRIVER_PULSE "PulseAudio 驱动" + IDS_DRIVER_ALSA "ALSA 驱动" + IDS_DRIVER_ESOUND "EsounD 驱动" + IDS_DRIVER_OSS "OSS 驱动" +diff --git a/programs/winecfg/audio.c b/programs/winecfg/audio.c +index 8e966a5..9c2cde3 100644 +--- a/programs/winecfg/audio.c ++++ b/programs/winecfg/audio.c +@@ -88,6 +88,7 @@ typedef struct + } AUDIO_DRIVER; + + static const AUDIO_DRIVER sAudioDrivers[] = { ++ {IDS_DRIVER_PULSE, "pulse"}, + {IDS_DRIVER_ALSA, "alsa"}, + {IDS_DRIVER_OSS, "oss"}, + {IDS_DRIVER_COREAUDIO, "coreaudio"}, +diff --git a/programs/winecfg/libraries.c b/programs/winecfg/libraries.c +index 6abe04d..2fa6a95 100644 +--- a/programs/winecfg/libraries.c ++++ b/programs/winecfg/libraries.c +@@ -67,6 +67,7 @@ static const char * const builtin_only[] = + "user32", + "vdmdbg", + "w32skrnl", ++ "winepulse.drv", + "winealsa.drv", + "wineaudioio.drv", + "wined3d", +diff --git a/programs/winecfg/resource.h b/programs/winecfg/resource.h +index a18fe76..1c4a1e7 100644 +--- a/programs/winecfg/resource.h ++++ b/programs/winecfg/resource.h +@@ -182,7 +182,7 @@ + #define IDS_ACCEL_BASIC 8302 + #define IDS_ACCEL_EMULATION 8303 + #define IDS_DRIVER_ALSA 8304 +- ++#define IDS_DRIVER_PULSE 8305 + #define IDS_DRIVER_ESOUND 8306 + #define IDS_DRIVER_OSS 8307 + #define IDS_DRIVER_JACK 8308 diff --git a/sources b/sources index 076ec2e..3554a20 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -2ba8d6bcddf2b969da0281f867b713dd wine-1.1.14-fe.tar.bz2 +cfeb6cfd7404c2fed2c9f2623976ea7e wine-1.1.15-fe.tar.bz2 diff --git a/wine-alsa-pulseaudio.patch b/wine-alsa-pulseaudio.patch deleted file mode 100644 index 382edd9..0000000 --- a/wine-alsa-pulseaudio.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff --git a/dlls/winealsa.drv/waveout.c b/dlls/winealsa.drv/waveout.c -index f4452e5..34ab57a 100644 ---- a/dlls/winealsa.drv/waveout.c -+++ b/dlls/winealsa.drv/waveout.c -@@ -570,7 +570,7 @@ static DWORD wodOpen(WORD wDevID, LPWAVEOPENDESC lpDesc, DWORD dwFlags) - snd_pcm_access_t access; - snd_pcm_format_t format = -1; - unsigned int rate; -- unsigned int buffer_time = 500000; -+ unsigned int buffer_time = 120000; - unsigned int period_time = 10000; - snd_pcm_uframes_t buffer_size; - snd_pcm_uframes_t period_size; - -diff --git a/dlls/dsound/dsound_main.c b/dlls/dsound/dsound_main.c -index 31078cb..ad08fae 100644 ---- a/dlls/dsound/dsound_main.c -+++ b/dlls/dsound/dsound_main.c -@@ -91,7 +91,7 @@ HRESULT mmErr(UINT err) - /* All default settings, you most likely don't want to touch these, see wiki on UsefulRegistryKeys */ - int ds_emuldriver = 0; - int ds_hel_buflen = 32768; --int ds_snd_queue_max = 10; -+int ds_snd_queue_max = 12; - int ds_snd_queue_min = 6; - int ds_snd_shadow_maxsize = 2; - int ds_hw_accel = DS_HW_ACCEL_FULL; diff --git a/wine-pulseaudio-waveout.patch b/wine-pulseaudio-waveout.patch deleted file mode 100644 index a85e35c..0000000 --- a/wine-pulseaudio-waveout.patch +++ /dev/null @@ -1,1204 +0,0 @@ -diff --git a/dlls/winepulse.drv/pulse.c b/dlls/winepulse.drv/pulse.c -index 3ef6a03..64274d4 100644 ---- a/dlls/winepulse.drv/pulse.c -+++ b/dlls/winepulse.drv/pulse.c -@@ -251,6 +251,75 @@ int PULSE_RetrieveRingMessage(PULSE_MSG_RING* omr, - */ - - /****************************************************************** -+ * PULSE_setupFormat -+ * -+ * Checks to see if the audio format in wf is supported, and if so set up the -+ * pa_sample_spec at ss to that format. -+ */ -+BOOL PULSE_setupFormat(LPWAVEFORMATEX wf, pa_sample_spec *ss) { -+ -+ if (wf->nSamplesPerSecnSamplesPerSec>DSBFREQUENCY_MAX) -+ return FALSE; -+ -+ ss->channels=wf->nChannels; -+ ss->rate=wf->nSamplesPerSec; -+ -+ if (wf->wFormatTag == WAVE_FORMAT_PCM) { -+ if (ss->channels==1 || ss->channels==2) { -+ switch (wf->wBitsPerSample) { -+ case 8: -+ ss->format = PA_SAMPLE_U8; -+ return TRUE; -+ case 16: -+ ss->format = PA_SAMPLE_S16NE; -+ return TRUE; -+ } -+ } -+ } else if (wf->wFormatTag == WAVE_FORMAT_EXTENSIBLE) { -+ WAVEFORMATEXTENSIBLE * wfex = (WAVEFORMATEXTENSIBLE *)wf; -+ -+ if (wf->cbSize == 22 && -+ (IsEqualGUID(&wfex->SubFormat, &KSDATAFORMAT_SUBTYPE_PCM))) { -+ if (ss->channels>=1 && ss->channels<=6) { -+ if (wf->wBitsPerSample==wfex->Samples.wValidBitsPerSample) { -+ switch (wf->wBitsPerSample) { -+ case 8: -+ ss->format=PA_SAMPLE_U8; -+ return TRUE; -+ case 16: -+ ss->format=PA_SAMPLE_S16NE; -+ return TRUE; -+ case 43: -+ ss->format=PA_SAMPLE_S32NE; -+ return TRUE; -+ } -+ } else -+ WARN("wBitsPerSample != wValidBitsPerSample not supported yet\n"); -+ } -+ } else if (wf->cbSize == 22 && -+ (IsEqualGUID(&wfex->SubFormat, &KSDATAFORMAT_SUBTYPE_IEEE_FLOAT))) { -+ if (ss->channels>=1 && ss->channels<=6) { -+ if (wf->wBitsPerSample==wfex->Samples.wValidBitsPerSample && wf->wBitsPerSample == 32) { -+ ss->format=PA_SAMPLE_FLOAT32NE; -+ return TRUE; -+ } -+ } -+ } else -+ WARN("only KSDATAFORMAT_SUBTYPE_PCM and KSDATAFORMAT_SUBTYPE_IEEE_FLOAT " -+ "supported\n"); -+ } else if (wf->wFormatTag == WAVE_FORMAT_MULAW || wf->wFormatTag == WAVE_FORMAT_ALAW) { -+ if (wf->wBitsPerSample==8) { -+ ss->format= (wf->wFormatTag==WAVE_FORMAT_MULAW) ? PA_SAMPLE_ULAW : PA_SAMPLE_ALAW; -+ return TRUE; -+ } else -+ ERR("WAVE_FORMAT_MULAW and WAVE_FORMAT_ALAW wBitsPerSample must = 8\n"); -+ } else -+ WARN("only WAVE_FORMAT_PCM, WAVE_FORMAT_MULAW, WAVE_FORMAT_ALAW and WAVE_FORMAT_EXTENSIBLE supported\n"); -+ -+ return FALSE; -+} -+ -+/****************************************************************** - * PULSE_free_wavedevs [internal] - * - * Free and deallocated all the wavedevs in the array of size allocated -@@ -328,6 +397,23 @@ void PULSE_wait_for_operation(pa_operation *o, WINE_WAVEINST *wd) { - * Common Callbacks - */ - -+/************************************************************************** -+ * PULSE_stream_request_callback -+ * -+ * Called by the pulse mainloop whenever it wants or has audio data. -+ */ -+void PULSE_stream_request_callback(pa_stream *s, size_t nbytes, void *userdata) { -+ WINE_WAVEINST *ww = (WINE_WAVEINST*)userdata; -+ assert(s && ww); -+ -+ TRACE("Asking to feed.\n"); -+ -+ /* Make sure that the player is running */ -+ if (ww->hThread != INVALID_HANDLE_VALUE && ww->msgRing.messages) { -+ PULSE_AddRingMessage(&ww->msgRing, WINE_WM_FEED, (DWORD)nbytes, FALSE); -+ } -+} -+ - /****************************************************************** - * PULSE_stream_state_callback - * -diff --git a/dlls/winepulse.drv/waveout.c b/dlls/winepulse.drv/waveout.c -index fe7543f..9f0ade5 100644 ---- a/dlls/winepulse.drv/waveout.c -+++ b/dlls/winepulse.drv/waveout.c -@@ -70,6 +70,879 @@ WINE_DEFAULT_DEBUG_CHANNEL(wave); - * +---------+-------------+---------------+---------------------------------+ - */ - -+/* -+ * - It is currently unknown if pausing in a loop works the same as expected. -+ */ -+ -+/*======================================================================* -+ * WAVE OUT specific PulseAudio Callbacks * -+ *======================================================================*/ -+ -+#if HAVE_PULSEAUDIO_0_9_11 -+/************************************************************************** -+ * PULSE_started_callback [internal] -+ * -+ * Called by the pulse mainloop whenever stream playback resumes after an -+ * underflow or an initial start -+ */ -+static void PULSE_started_callback(pa_stream *s, void *userdata) { -+ WINE_WAVEINST *wwo = (WINE_WAVEINST*)userdata; -+ assert(s && wwo); -+ -+ TRACE("Audio flowing.\n"); -+ -+ if (wwo->hThread != INVALID_HANDLE_VALUE && wwo->msgRing.ring_buffer_size) { -+ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_STARTING, 0, FALSE); -+ } -+} -+#else /* HAVE_PULSEAUDIO_0_9_11 */ -+/************************************************************************** -+ * PULSE_timing_info_update_callback [internal] -+ * -+ * Called by the pulse mainloop whenever the timing info gets updated, we -+ * use this to send the started signal */ -+static void PULSE_timing_info_update_callback(pa_stream *s, void *userdata) { -+ WINE_WAVEINST *wwo = (WINE_WAVEINST*)userdata; -+ assert(s && wwo); -+ -+ if (wwo->is_buffering && wwo->timing_info && wwo->timing_info->playing) { -+ TRACE("Audio flowing.\n"); -+ -+ if (wwo->hThread != INVALID_HANDLE_VALUE && wwo->msgRing.ring_buffer_size) -+ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_STARTING, 0, FALSE); -+ } -+} -+#endif -+ -+/************************************************************************** -+ * PULSE_suspended_callback [internal] -+ * -+ * Called by the pulse mainloop any time stream playback is intentionally -+ * suspended or resumed from being suspended. -+ */ -+static void PULSE_suspended_callback(pa_stream *s, void *userdata) { -+ WINE_WAVEINST *wwo = (WINE_WAVEINST*)userdata; -+ assert(s && wwo); -+ -+ /* Currently we handle this kinda like an underrun. Perhaps we should -+ * tell the client somehow so it doesn't just hang? */ -+ -+ if (!pa_stream_is_suspended(s) && wwo->hThread != INVALID_HANDLE_VALUE && wwo->msgRing.ring_buffer_size > 0) -+ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_XRUN, 0, FALSE); -+} -+ -+/************************************************************************** -+ * PULSE_underrun_callback [internal] -+ * -+ * Called by the pulse mainloop when the prebuf runs out of data. -+ */ -+static void PULSE_underrun_callback(pa_stream *s, void *userdata) { -+ WINE_WAVEINST *wwo = (WINE_WAVEINST*)userdata; -+ assert(s && wwo); -+ -+ /* If we aren't playing, don't care ^_^ */ -+ if (wwo->state != WINE_WS_PLAYING) return; -+ -+ TRACE("Underrun occurred.\n"); -+ -+ if (wwo->hThread != INVALID_HANDLE_VALUE && wwo->msgRing.ring_buffer_size > 0); -+ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_XRUN, 0, FALSE); -+} -+ -+/*======================================================================* -+ * "Low level" WAVE OUT implementation * -+ *======================================================================*/ -+ -+/************************************************************************** -+ * wodNotifyClient [internal] -+ */ -+static DWORD wodNotifyClient(WINE_WAVEINST* wwo, WORD wMsg, DWORD dwParam1, DWORD dwParam2) { -+ TRACE("wMsg = 0x%04x dwParm1 = %04X dwParam2 = %04X\n", wMsg, dwParam1, dwParam2); -+ -+ switch (wMsg) { -+ case WOM_OPEN: -+ case WOM_CLOSE: -+ case WOM_DONE: -+ if (wwo->wFlags != DCB_NULL && -+ !DriverCallback(wwo->waveDesc.dwCallback, wwo->wFlags, (HDRVR)wwo->waveDesc.hWave, -+ wMsg, wwo->waveDesc.dwInstance, dwParam1, dwParam2)) { -+ WARN("can't notify client !\n"); -+ return MMSYSERR_ERROR; -+ } -+ break; -+ default: -+ FIXME("Unknown callback message %u\n", wMsg); -+ return MMSYSERR_INVALPARAM; -+ } -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * wodPlayer_BeginWaveHdr [internal] -+ * -+ * Makes the specified lpWaveHdr the currently playing wave header. -+ * If the specified wave header is a begin loop and we're not already in -+ * a loop, setup the loop. -+ */ -+static void wodPlayer_BeginWaveHdr(WINE_WAVEINST* wwo, LPWAVEHDR lpWaveHdr) { -+ wwo->lpPlayPtr = lpWaveHdr; -+ -+ if (!lpWaveHdr) return; -+ -+ if (lpWaveHdr->dwFlags & WHDR_BEGINLOOP) { -+ if (wwo->lpLoopPtr) { -+ WARN("Already in a loop. Discarding loop on this header (%p)\n", lpWaveHdr); -+ } else { -+ TRACE("Starting loop (%dx) with %p\n", lpWaveHdr->dwLoops, lpWaveHdr); -+ wwo->lpLoopPtr = lpWaveHdr; -+ /* Windows does not touch WAVEHDR.dwLoops, -+ * so we need to make an internal copy */ -+ wwo->dwLoops = lpWaveHdr->dwLoops; -+ } -+ } -+ wwo->dwPartialOffset = 0; -+} -+ -+/************************************************************************** -+ * wodPlayer_PlayPtrNext [internal] -+ * -+ * Advance the play pointer to the next waveheader, looping if required. -+ */ -+static LPWAVEHDR wodPlayer_PlayPtrNext(WINE_WAVEINST* wwo) { -+ LPWAVEHDR lpWaveHdr = wwo->lpPlayPtr; -+ -+ wwo->dwPartialOffset = 0; -+ if ((lpWaveHdr->dwFlags & WHDR_ENDLOOP) && wwo->lpLoopPtr) { -+ /* We're at the end of a loop, loop if required */ -+ if (--wwo->dwLoops > 0) { -+ wwo->lpPlayPtr = wwo->lpLoopPtr; -+ } else { -+ /* Handle overlapping loops correctly */ -+ if (wwo->lpLoopPtr != lpWaveHdr && (lpWaveHdr->dwFlags & WHDR_BEGINLOOP)) { -+ FIXME("Correctly handled case ? (ending loop buffer also starts a new loop)\n"); -+ /* shall we consider the END flag for the closing loop or for -+ * the opening one or for both ??? -+ * code assumes for closing loop only -+ */ -+ } else { -+ lpWaveHdr = lpWaveHdr->lpNext; -+ } -+ wwo->lpLoopPtr = NULL; -+ wodPlayer_BeginWaveHdr(wwo, lpWaveHdr); -+ } -+ } else { -+ /* We're not in a loop. Advance to the next wave header */ -+ wodPlayer_BeginWaveHdr(wwo, lpWaveHdr = lpWaveHdr->lpNext); -+ } -+ -+ return lpWaveHdr; -+} -+ -+/************************************************************************** -+ * wodPlayer_CheckReleasing [internal] -+ * -+ * Check to see if data has stopped being fed to us before actual playback -+ * starts. In this case the app wants a smaller buffer than pulse currently is -+ * offering. We ignore this and just start the releasing reference. The -+ * downside is that there is a latency unknown to the app. The upside is that -+ * pulse is good at managing latencies -+ */ -+static void wodPlayer_CheckReleasing(WINE_WAVEINST *wwo) { -+ LPWAVEHDR lpWaveHdr = wwo->lpQueuePtr; -+ -+ /* If we aren't playing, (only valid on pulse >= 0.9.11) and we have -+ * queued data and we aren't relasing, start releasing if either: -+ * - We have stopped being given wavehdrs, or -+ * - We have 2s worth of audio built up.*/ -+ if (wwo->is_buffering && lpWaveHdr && !wwo->is_releasing && -+ (pa_bytes_to_usec(lpWaveHdr->dwBufferLength, &wwo->sample_spec)/2 < pa_timeval_age(&wwo->last_header)|| -+ wwo->timing_info->write_index - lpWaveHdr->reserved > pa_bytes_per_second(&wwo->sample_spec)*2)) { -+ -+ pa_gettimeofday(&wwo->started_releasing); -+ wwo->is_releasing = TRUE; -+ wwo->releasing_offset = wwo->lpQueuePtr->reserved; -+ TRACE("Starting to release early: %u\n", wwo->releasing_offset); -+ } -+} -+ -+/************************************************************************** -+ * wodPlayer_NotifyCompletions [internal] -+ * -+ * Notifies and remove from queue all wavehdrs which have been played to -+ * the speaker based on a reference time of (theoretical) playback start. If -+ * force is true, we notify all wavehdrs and remove them all from the queue -+ * even if they are unplayed or part of a loop. We return the time to wait -+ * until the next wavehdr needs to be freed, or INFINITE if there are no more -+ * wavehdrs. -+ */ -+static DWORD wodPlayer_NotifyCompletions(WINE_WAVEINST* wwo, BOOL force) { -+ LPWAVEHDR lpWaveHdr; -+ pa_usec_t time; -+ pa_usec_t wait; -+ -+ time = pa_bytes_to_usec(wwo->releasing_offset, &wwo->sample_spec); -+ if (wwo->is_releasing) -+ time += pa_timeval_age(&wwo->started_releasing); -+ -+ for (lpWaveHdr = wwo->lpQueuePtr; lpWaveHdr; lpWaveHdr = wwo->lpQueuePtr) { -+ if (!force) { -+ /* Start from lpQueuePtr and keep notifying until: -+ * - we hit an unwritten wavehdr -+ * - we hit the beginning of a running loop -+ * - we hit a wavehdr which hasn't finished playing -+ */ -+ if (lpWaveHdr == wwo->lpPlayPtr) { TRACE("play %p\n", lpWaveHdr); return INFINITE; } -+ if (lpWaveHdr == wwo->lpLoopPtr) { TRACE("loop %p\n", lpWaveHdr); return INFINITE; } -+ -+ /* See if this data has been played, and if not, return when it will have been */ -+ wait = pa_bytes_to_usec(lpWaveHdr->reserved + lpWaveHdr->dwBufferLength, &wwo->sample_spec); -+ if (wait >= time) { -+ wait = (wait - time) / 1000; -+ return wait ?: 1; -+ } -+ } -+ -+ /* return the wavehdr */ -+ wwo->lpQueuePtr = lpWaveHdr->lpNext; -+ lpWaveHdr->dwFlags &= ~WHDR_INQUEUE; -+ lpWaveHdr->dwFlags |= WHDR_DONE; -+ -+ wodNotifyClient(wwo, WOM_DONE, (DWORD)lpWaveHdr, 0); -+ } -+ /* No more wavehdrs */ -+ TRACE("Empty queue\n"); -+ return INFINITE; -+} -+ -+/************************************************************************** -+ * wodPlayer_WriteMax [internal] -+ * Writes either space or the wavehdr's size into pulse's buffer, and -+ * returning how much data was written. -+ */ -+static int wodPlayer_WriteMax(WINE_WAVEINST *wwo, size_t *space) { -+ LPWAVEHDR lpWaveHdr = wwo->lpPlayPtr; -+ size_t toWrite = min(lpWaveHdr->dwBufferLength - wwo->dwPartialOffset, *space); -+ size_t written = 0; -+ -+ if (!wwo->stream || -+ !PULSE_context || -+ pa_context_get_state(PULSE_context) != PA_CONTEXT_READY || -+ pa_stream_get_state(wwo->stream) != PA_STREAM_READY) { -+ return 0; -+ } -+ -+ if (toWrite > 0 && -+ pa_stream_write(wwo->stream, lpWaveHdr->lpData + wwo->dwPartialOffset, toWrite, NULL, 0, PA_SEEK_RELATIVE) >= 0) { -+ TRACE("Writing wavehdr %p.%u[%u]\n", lpWaveHdr, wwo->dwPartialOffset, lpWaveHdr->dwBufferLength); -+ written = toWrite; -+ } -+ -+ /* Check to see if we wrote all of the wavehdr */ -+ if ((wwo->dwPartialOffset += written) >= lpWaveHdr->dwBufferLength) -+ wodPlayer_PlayPtrNext(wwo); -+ *space -= written; -+ -+ return written; -+} -+ -+/************************************************************************** -+ * wodPlayer_Feed [internal] -+ * -+ * Feed as much sound data as we can into pulse using wodPlayer_WriteMax -+ */ -+static void wodPlayer_Feed(WINE_WAVEINST* wwo, size_t space) { -+ /* no more room... no need to try to feed */ -+ if (space > 0) { -+ /* Feed from a partial wavehdr */ -+ if (wwo->lpPlayPtr && wwo->dwPartialOffset != 0) -+ wodPlayer_WriteMax(wwo, &space); -+ -+ /* Feed wavehdrs until we run out of wavehdrs or buffer space */ -+ if (wwo->dwPartialOffset == 0 && wwo->lpPlayPtr) { -+ do { -+ wwo->lpPlayPtr->reserved = wwo->timing_info->write_index; -+ } while (wodPlayer_WriteMax(wwo, &space) > 0 && wwo->lpPlayPtr && space > 0); -+ } -+ } -+} -+ -+/************************************************************************** -+ * wodPlayer_Reset [internal] -+ * -+ * wodPlayer helper. Resets current output stream. -+ */ -+static void wodPlayer_Reset(WINE_WAVEINST* wwo) { -+ enum win_wm_message msg; -+ DWORD param; -+ HANDLE ev; -+ pa_operation *o; -+ -+ TRACE("(%p)\n", wwo); -+ -+ /* remove any buffer */ -+ wodPlayer_NotifyCompletions(wwo, TRUE); -+ -+ wwo->lpPlayPtr = wwo->lpQueuePtr = wwo->lpLoopPtr = NULL; -+ if (wwo->state != WINE_WS_PAUSED) -+ wwo->state = WINE_WS_STOPPED; -+ wwo->dwPartialOffset = 0; -+ -+ if (!wwo->stream || -+ !PULSE_context || -+ pa_context_get_state(PULSE_context) != PA_CONTEXT_READY || -+ pa_stream_get_state(wwo->stream) != PA_STREAM_READY) { -+ return; -+ } -+ -+ pa_threaded_mainloop_lock(PULSE_ml); -+ -+ /* flush the output buffer of written data*/ -+ if ((o = pa_stream_flush(wwo->stream, PULSE_stream_success_callback, NULL))) -+ PULSE_wait_for_operation(o, wwo); -+ -+ /* Ask for the timing info to be updated (sanity, I don't know if we _have_ to) */ -+ if ((o = pa_stream_update_timing_info(wwo->stream, PULSE_stream_success_callback, wwo))) -+ PULSE_wait_for_operation(o, wwo); -+ -+ /* Reset the written byte count as some data may have been flushed */ -+ wwo->releasing_offset = wwo->last_reset = wwo->timing_info->write_index; -+ if (wwo->is_releasing) -+ pa_gettimeofday(&wwo->started_releasing); -+ -+ /* return all pending headers in queue */ -+ EnterCriticalSection(&wwo->msgRing.msg_crst); -+ while (PULSE_RetrieveRingMessage(&wwo->msgRing, &msg, ¶m, &ev)) { -+ if (msg != WINE_WM_HEADER) { -+ SetEvent(ev); -+ continue; -+ } -+ ((LPWAVEHDR)param)->dwFlags &= ~WHDR_INQUEUE; -+ ((LPWAVEHDR)param)->dwFlags |= WHDR_DONE; -+ wodNotifyClient(wwo, WOM_DONE, param, 0); -+ } -+ PULSE_ResetRingMessage(&wwo->msgRing); -+ LeaveCriticalSection(&wwo->msgRing.msg_crst); -+ -+ pa_threaded_mainloop_unlock(PULSE_ml); -+} -+ -+/************************************************************************** -+ * wodPlayer_Underrun [internal] -+ * -+ * wodPlayer helper. Deal with a stream underrun. -+ */ -+static void wodPlayer_Underrun(WINE_WAVEINST* wwo) { -+ size_t space; -+ pa_operation *o; -+ -+ wwo->is_buffering = TRUE; -+ -+ pa_threaded_mainloop_lock(PULSE_ml); -+ -+ if (wwo->lpPlayPtr) { -+ TRACE("There is queued data. Trying to recover.\n"); -+ space = pa_stream_writable_size(wwo->stream); -+ -+ if (!space) { -+ TRACE("No space to feed. Flushing.\n"); -+ if ((o = pa_stream_flush(wwo->stream, PULSE_stream_success_callback, wwo))) -+ PULSE_wait_for_operation(o, wwo); -+ space = pa_stream_writable_size(wwo->stream); -+ } -+ wodPlayer_Feed(wwo, space); -+ } -+ -+ /* Ask for a timing update */ -+ if ((o = pa_stream_update_timing_info(wwo->stream, PULSE_stream_success_callback, wwo))) -+ PULSE_wait_for_operation(o, wwo); -+ -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ -+ if (wwo->timing_info->playing) { -+ TRACE("Recovered.\n"); -+ wwo->is_buffering = FALSE; -+ } else { -+ ERR("Stream underrun! %i\n", wwo->instance_ref); -+ wwo->is_releasing = FALSE; -+ wwo->releasing_offset = wwo->timing_info->write_index; -+ } -+ -+ wwo->releasing_offset = wwo->timing_info->write_index; -+} -+ -+ -+/************************************************************************** -+ * wodPlayer_ProcessMessages [internal] -+ */ -+static void wodPlayer_ProcessMessages(WINE_WAVEINST* wwo) { -+ LPWAVEHDR lpWaveHdr; -+ enum win_wm_message msg; -+ DWORD param; -+ HANDLE ev; -+ pa_operation *o; -+ -+ while (PULSE_RetrieveRingMessage(&wwo->msgRing, &msg, ¶m, &ev)) { -+ TRACE("Received %s %x\n", PULSE_getCmdString(msg), param); -+ -+ switch (msg) { -+ case WINE_WM_PAUSING: -+ wwo->state = WINE_WS_PAUSED; -+ pa_threaded_mainloop_lock(PULSE_ml); -+ if ((o = pa_stream_cork(wwo->stream, 1, PULSE_stream_success_callback, NULL))) -+ PULSE_wait_for_operation(o, wwo); -+ -+ /* save how far we are, as releasing will restart from here */ -+ if (wwo->is_releasing) -+ wwo->releasing_offset = wwo->timing_info->write_index; -+ -+ wwo->is_buffering = TRUE; -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ -+ SetEvent(ev); -+ break; -+ -+ case WINE_WM_RESTARTING: -+ if (wwo->state == WINE_WS_PAUSED) { -+ wwo->state = WINE_WS_PLAYING; -+ if (wwo->is_releasing) -+ pa_gettimeofday(&wwo->started_releasing); -+ pa_threaded_mainloop_lock(PULSE_ml); -+ if ((o = pa_stream_cork(wwo->stream, 0, PULSE_stream_success_callback, NULL))) -+ PULSE_wait_for_operation(o, wwo); -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ } -+ SetEvent(ev); -+ break; -+ -+ case WINE_WM_HEADER: -+ lpWaveHdr = (LPWAVEHDR)param; -+ /* insert buffer at the end of queue */ -+ { -+ LPWAVEHDR* wh; -+ for (wh = &(wwo->lpQueuePtr); *wh; wh = &((*wh)->lpNext)); -+ *wh = lpWaveHdr; -+ } -+ -+ if (!wwo->lpPlayPtr) -+ wodPlayer_BeginWaveHdr(wwo,lpWaveHdr); -+ /* Try and feed now, as we may have missed when pulse first asked */ -+ wodPlayer_Feed(wwo, pa_stream_writable_size(wwo->stream)); -+ if (wwo->state == WINE_WS_STOPPED) -+ wwo->state = WINE_WS_PLAYING; -+ if (wwo->is_buffering && !wwo->is_releasing) -+ pa_gettimeofday(&wwo->last_header); -+ SetEvent(ev); -+ break; -+ -+ case WINE_WM_RESETTING: -+ wodPlayer_Reset(wwo); -+ SetEvent(ev); -+ break; -+ -+ case WINE_WM_BREAKLOOP: -+ if (wwo->state == WINE_WS_PLAYING && wwo->lpLoopPtr != NULL) -+ /* ensure exit at end of current loop */ -+ wwo->dwLoops = 1; -+ SetEvent(ev); -+ break; -+ -+ case WINE_WM_FEED: /* Sent by the pulse thread */ -+ wodPlayer_Feed(wwo, (size_t)param); -+ SetEvent(ev); -+ break; -+ -+ case WINE_WM_XRUN: /* Sent by the pulse thread */ -+ wodPlayer_Underrun(wwo); -+ SetEvent(ev); -+ break; -+ -+ case WINE_WM_STARTING: /* Set by the pulse thread */ -+ wwo->is_buffering = FALSE; -+ /* Start releasing wavehdrs if we haven't already */ -+ if (!wwo->is_releasing) { -+ wwo->is_releasing = TRUE; -+ pa_gettimeofday(&wwo->started_releasing); -+ } -+ SetEvent(ev); -+ break; -+ -+ case WINE_WM_CLOSING: /* If param = 1, close because of a failure */ -+ wwo->hThread = NULL; -+ if ((DWORD)param == 1) { -+ /* If we are here, the stream has failed */ -+ wwo->state = WINE_WS_FAILED; -+ SetEvent(ev); -+ PULSE_DestroyRingMessage(&wwo->msgRing); -+ wodPlayer_NotifyCompletions(wwo, TRUE); -+ wodNotifyClient(wwo, WOM_CLOSE, 0L, 0L); -+ wwo->lpPlayPtr = wwo->lpQueuePtr = wwo->lpLoopPtr = NULL; -+ pa_threaded_mainloop_lock(PULSE_ml); -+ pa_stream_disconnect(wwo->stream); -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ TRACE("Thread exiting because of failure.\n"); -+ ExitThread(1); -+ } -+ wwo->state = WINE_WS_CLOSED; -+ /* sanity check: this should not happen since the device must have been reset before */ -+ if (wwo->lpQueuePtr || wwo->lpPlayPtr) ERR("out of sync\n"); -+ SetEvent(ev); -+ TRACE("Thread exiting.\n"); -+ ExitThread(0); -+ /* shouldn't go here */ -+ -+ default: -+ FIXME("unknown message %d\n", msg); -+ break; -+ } -+ } -+} -+ -+/************************************************************************** -+ * wodPlayer [internal] -+ */ -+static DWORD CALLBACK wodPlayer(LPVOID lpParam) { -+ WINE_WAVEINST *wwo = (WINE_WAVEINST*)lpParam; -+ DWORD dwSleepTime = INFINITE; -+ -+ wwo->state = WINE_WS_STOPPED; -+ SetEvent(wwo->hStartUpEvent); -+ -+ /* Wait for the shortest time before an action is required. If there are -+ * no pending actions, wait forever for a command. */ -+ for (;;) { -+ TRACE("Waiting %u ms\n", dwSleepTime); -+ PULSE_WaitRingMessage(&wwo->msgRing, dwSleepTime); -+ wodPlayer_ProcessMessages(wwo); -+ if (wwo->state == WINE_WS_PLAYING) { -+ wodPlayer_CheckReleasing(wwo); -+ dwSleepTime = wodPlayer_NotifyCompletions(wwo, FALSE); -+ } else -+ dwSleepTime = INFINITE; -+ } -+} -+ -+/************************************************************************** -+ * wodOpen [internal] -+ */ -+static DWORD wodOpen(WORD wDevID, LPDWORD lpdwUser, LPWAVEOPENDESC lpDesc, DWORD dwFlags) { -+ WINE_WAVEDEV *wdo; -+ WINE_WAVEINST *wwo = NULL; -+ pa_operation *o; -+ DWORD x, ret = MMSYSERR_NOERROR; -+ pa_sample_spec test; -+ -+ TRACE("(%u, %p, %08X);\n", wDevID, lpDesc, dwFlags); -+ if (lpDesc == NULL) { -+ WARN("Invalid Parameter !\n"); -+ return MMSYSERR_INVALPARAM; -+ } -+ -+ if (wDevID >= PULSE_WodNumDevs) { -+ TRACE("Asked for device %d, but only %d known!\n", wDevID, PULSE_WodNumDevs); -+ return MMSYSERR_BADDEVICEID; -+ } -+ wdo = &WOutDev[wDevID]; -+ -+ /* check to see if format is supported and make pa_sample_spec struct */ -+ if (!PULSE_setupFormat(lpDesc->lpFormat, &test) && -+ !pa_sample_spec_valid(&test)) { -+ WARN("Bad format: tag=%04X nChannels=%d nSamplesPerSec=%d !\n", -+ lpDesc->lpFormat->wFormatTag, lpDesc->lpFormat->nChannels, -+ lpDesc->lpFormat->nSamplesPerSec); -+ return WAVERR_BADFORMAT; -+ } -+ -+ if (TRACE_ON(wave)) { -+ char t[PA_SAMPLE_SPEC_SNPRINT_MAX]; -+ pa_sample_spec_snprint(t, sizeof(t), &test); -+ TRACE("Sample spec '%s'\n", t); -+ } -+ -+ if (dwFlags & WAVE_FORMAT_QUERY) { -+ TRACE("Query format: tag=%04X nChannels=%d nSamplesPerSec=%d !\n", -+ lpDesc->lpFormat->wFormatTag, lpDesc->lpFormat->nChannels, -+ lpDesc->lpFormat->nSamplesPerSec); -+ return MMSYSERR_NOERROR; -+ } -+ -+ for (x = 0; x < PULSE_MAX_STREAM_INSTANCES; x++) { -+ if (wdo->instance[x] == NULL) { -+ if (!(wdo->instance[x] = wwo = HeapAlloc(GetProcessHeap(), 0, sizeof(WINE_WAVEINST)))) -+ return MMSYSERR_NOMEM; -+ TRACE("Allocated new playback instance %u on device %u.\n", x, wDevID); -+ break; -+ } -+ } -+ if (x >= PULSE_MAX_STREAM_INSTANCES) return MMSYSERR_ALLOCATED; -+ -+ *lpdwUser = (DWORD)wwo; -+ wwo->instance_ref = x; -+ wwo->sample_spec.format = test.format; -+ wwo->sample_spec.rate = test.rate; -+ wwo->sample_spec.channels = test.channels; -+ if (test.channels == 2) { -+ wwo->volume.channels = 2; -+ wwo->volume.values[0] = wdo->left_vol; -+ wwo->volume.values[1] = wdo->right_vol; -+ } else -+ pa_cvolume_set(&wwo->volume, test.channels, (wdo->left_vol + wdo->right_vol)/2); -+ wwo->wFlags = HIWORD(dwFlags & CALLBACK_TYPEMASK); -+ wwo->waveDesc = *lpDesc; -+ wwo->lpQueuePtr = wwo->lpPlayPtr = wwo->lpLoopPtr = NULL; -+ wwo->dwPartialOffset = 0; -+ wwo->is_buffering = TRUE; -+ wwo->is_releasing = FALSE; -+ wwo->releasing_offset = 0; -+ wwo->timing_info = NULL; -+ PULSE_InitRingMessage(&wwo->msgRing); -+ -+ /* FIXME Find a better name for the stream */ -+ wwo->stream = pa_stream_new(PULSE_context, "Wine Playback", &wwo->sample_spec, NULL); -+ assert(wwo->stream); -+ -+ pa_stream_set_state_callback(wwo->stream, PULSE_stream_state_callback, wwo); -+ pa_stream_set_write_callback(wwo->stream, PULSE_stream_request_callback, wwo); -+ pa_stream_set_underflow_callback(wwo->stream, PULSE_underrun_callback, wwo); -+ pa_stream_set_suspended_callback(wwo->stream, PULSE_suspended_callback, wwo); -+#if HAVE_PULSEAUDIO_0_9_11 -+ pa_stream_set_started_callback(wwo->stream, PULSE_started_callback, wwo); -+#else -+ pa_stream_set_latency_update_callback(wwo->stream, PULSE_timing_info_update_callback, wwo); -+#endif -+ -+ /* I don't like this, but... */ -+ wwo->buffer_attr = pa_xmalloc(sizeof(pa_buffer_attr)); -+ wwo->buffer_attr->maxlength = (uint32_t) -1; -+ wwo->buffer_attr->tlength = pa_bytes_per_second(&wwo->sample_spec)/5; -+ wwo->buffer_attr->prebuf = (uint32_t) -1; -+ wwo->buffer_attr->minreq = (uint32_t) -1; -+ -+ TRACE("Connecting stream for playback.\n"); -+ pa_threaded_mainloop_lock(PULSE_ml); -+#if HAVE_PULSEAUDIO_0_9_11 -+ pa_stream_connect_playback(wwo->stream, wdo->device_name, wwo->buffer_attr, PA_STREAM_ADJUST_LATENCY, &wwo->volume, NULL); -+#else -+ pa_stream_connect_playback(wwo->stream, wdo->device_name, wwo->buffer_attr, PA_STREAM_AUTO_TIMING_UPDATE, &wwo->volume, NULL); -+#endif -+ -+ for (;;) { -+ pa_context_state_t cstate = pa_context_get_state(PULSE_context); -+ pa_stream_state_t sstate = pa_stream_get_state(wwo->stream); -+ -+ if (cstate == PA_CONTEXT_FAILED || cstate == PA_CONTEXT_TERMINATED || -+ sstate == PA_STREAM_FAILED || sstate == PA_STREAM_TERMINATED) { -+ ERR("Failed to connect context object: %s\n", pa_strerror(pa_context_errno(PULSE_context))); -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ ret = MMSYSERR_NODRIVER; -+ goto err; -+ } -+ -+ if (sstate == PA_STREAM_READY) -+ break; -+ -+ pa_threaded_mainloop_wait(PULSE_ml); -+ } -+ TRACE("Stream connected for playback.\n"); -+ -+ if ((o = pa_stream_update_timing_info(wwo->stream, PULSE_stream_success_callback, wwo))) -+ PULSE_wait_for_operation(o, wwo); -+ -+ wwo->timing_info = pa_stream_get_timing_info(wwo->stream); -+ assert(wwo->timing_info); -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ -+ wwo->hStartUpEvent = CreateEventW(NULL, FALSE, FALSE, NULL); -+ wwo->hThread = CreateThread(NULL, 0, wodPlayer, (LPVOID)wwo, 0, &(wwo->dwThreadID)); -+ if (wwo->hThread) -+ SetThreadPriority(wwo->hThread, THREAD_PRIORITY_TIME_CRITICAL); -+ else { -+ ERR("Thread creation for the wodPlayer failed!\n"); -+ ret = MMSYSERR_NOMEM; -+ goto err; -+ } -+ WaitForSingleObject(wwo->hStartUpEvent, INFINITE); -+ CloseHandle(wwo->hStartUpEvent); -+ wwo->hStartUpEvent = INVALID_HANDLE_VALUE; -+ -+ -+ return wodNotifyClient (wwo, WOM_OPEN, 0L, 0L); -+ -+err: -+ TRACE("Bailing out...\n"); -+ wdo->instance[x] = NULL; -+ if (!wwo) -+ return ret; -+ -+ if (wwo->hStartUpEvent != INVALID_HANDLE_VALUE) -+ CloseHandle(wwo->hStartUpEvent); -+ -+ if (wwo->msgRing.ring_buffer_size > 0) -+ PULSE_DestroyRingMessage(&wwo->msgRing); -+ -+ if (pa_stream_get_state(wwo->stream) == PA_STREAM_READY) -+ pa_stream_disconnect(wwo->stream); -+ pa_stream_unref(wwo->stream); -+ if (wwo->buffer_attr) -+ pa_xfree(wwo->buffer_attr); -+ HeapFree(GetProcessHeap(), 0, wwo); -+ -+ return ret; -+} -+ -+/************************************************************************** -+ * wodClose [internal] -+ */ -+static DWORD wodClose(WORD wDevID, WINE_WAVEINST *wwo) { -+ pa_operation *o; -+ DWORD ret; -+ -+ TRACE("(%u, %p);\n", wDevID, wwo); -+ if (wDevID >= PULSE_WodNumDevs) { -+ WARN("Asked for device %d, but only %d known!\n", wDevID, PULSE_WodNumDevs); -+ return MMSYSERR_INVALHANDLE; -+ } else if (!wwo) { -+ WARN("Stream instance invalid.\n"); -+ return MMSYSERR_INVALHANDLE; -+ } -+ -+ if (wwo->state != WINE_WS_FAILED) { -+ if (wwo->lpQueuePtr && wwo->lpPlayPtr) { -+ WARN("buffers still playing !\n"); -+ return WAVERR_STILLPLAYING; -+ } -+ -+ pa_threaded_mainloop_lock(PULSE_ml); -+ if ((o = pa_stream_drain(wwo->stream, PULSE_stream_success_callback, NULL))) -+ PULSE_wait_for_operation(o, wwo); -+ pa_stream_disconnect(wwo->stream); -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ -+ if (wwo->hThread != INVALID_HANDLE_VALUE) -+ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_CLOSING, 0, TRUE); -+ -+ PULSE_DestroyRingMessage(&wwo->msgRing); -+ -+ pa_threaded_mainloop_lock(PULSE_ml); -+ pa_stream_disconnect(wwo->stream); -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ } -+ ret = wodNotifyClient(wwo, WOM_CLOSE, 0L, 0L); -+ -+ if (wwo->buffer_attr) -+ pa_xfree(wwo->buffer_attr); -+ pa_stream_unref(wwo->stream); -+ WOutDev[wDevID].instance[wwo->instance_ref] = NULL; -+ TRACE("Deallocating playback instance %u on device %u.\n", wwo->instance_ref, wDevID); -+ HeapFree(GetProcessHeap(), 0, wwo); -+ return ret; -+} -+ -+/************************************************************************** -+ * wodWrite [internal] -+ */ -+static DWORD wodWrite(WINE_WAVEINST *wwo, LPWAVEHDR lpWaveHdr, DWORD dwSize) { -+ if (!wwo || wwo->state == WINE_WS_FAILED) { -+ WARN("Stream instance invalid.\n"); -+ return MMSYSERR_INVALHANDLE; -+ } -+ -+ if (lpWaveHdr->lpData == NULL || !(lpWaveHdr->dwFlags & WHDR_PREPARED)) -+ return WAVERR_UNPREPARED; -+ -+ if (lpWaveHdr->dwFlags & WHDR_INQUEUE) -+ return WAVERR_STILLPLAYING; -+ -+ lpWaveHdr->dwFlags &= ~WHDR_DONE; -+ lpWaveHdr->dwFlags |= WHDR_INQUEUE; -+ lpWaveHdr->lpNext = 0; -+ lpWaveHdr->reserved = 0; -+ -+ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_HEADER, (DWORD)lpWaveHdr, FALSE); -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * wodPause [internal] -+ */ -+static DWORD wodPause(WINE_WAVEINST *wwo) { -+ if (!wwo || wwo->state == WINE_WS_FAILED) { -+ WARN("Stream instance invalid.\n"); -+ return MMSYSERR_INVALHANDLE; -+ } -+ -+ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_PAUSING, 0, TRUE); -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * wodGetPosition [internal] -+ */ -+static DWORD wodGetPosition(WINE_WAVEINST *wwo, LPMMTIME lpTime, DWORD uSize) { -+ pa_usec_t time; -+ -+ if (!wwo || wwo->state == WINE_WS_FAILED) { -+ WARN("Stream instance invalid.\n"); -+ return MMSYSERR_INVALHANDLE; -+ } -+ -+ if (lpTime == NULL) return MMSYSERR_INVALPARAM; -+ -+ time = pa_bytes_to_usec(wwo->releasing_offset, &wwo->sample_spec); -+ -+ if (wwo->is_releasing) -+ time += pa_timeval_age(&wwo->started_releasing); -+ -+ if (wwo->last_reset > wwo->releasing_offset) -+ wwo->last_reset = 0; -+ -+ time -= pa_bytes_to_usec(wwo->last_reset, &wwo->sample_spec); -+ time /= 1000; -+ -+ switch (lpTime->wType) { -+ case TIME_SAMPLES: -+ lpTime->u.sample = (time * wwo->sample_spec.rate) / 1000; -+ break; -+ case TIME_MS: -+ lpTime->u.ms = time; -+ break; -+ case TIME_SMPTE: -+ lpTime->u.smpte.fps = 30; -+ lpTime->u.smpte.sec = time/1000; -+ lpTime->u.smpte.min = lpTime->u.smpte.sec / 60; -+ lpTime->u.smpte.sec -= 60 * lpTime->u.smpte.min; -+ lpTime->u.smpte.hour = lpTime->u.smpte.min / 60; -+ lpTime->u.smpte.min -= 60 * lpTime->u.smpte.hour; -+ lpTime->u.smpte.fps = 30; -+ lpTime->u.smpte.frame = time / lpTime->u.smpte.fps * 1000; -+ TRACE("TIME_SMPTE=%02u:%02u:%02u:%02u\n", -+ lpTime->u.smpte.hour, lpTime->u.smpte.min, -+ lpTime->u.smpte.sec, lpTime->u.smpte.frame); -+ break; -+ default: -+ WARN("Format %d not supported, using TIME_BYTES !\n", lpTime->wType); -+ lpTime->wType = TIME_BYTES; -+ /* fall through */ -+ case TIME_BYTES: -+ lpTime->u.cb = (pa_bytes_per_second(&wwo->sample_spec)*time) / 1000; -+ TRACE("TIME_BYTES=%u\n", lpTime->u.cb); -+ break; -+ } -+ -+ return MMSYSERR_NOERROR; -+} -+/************************************************************************** -+ * wodBreakLoop [internal] -+ */ -+static DWORD wodBreakLoop(WINE_WAVEINST *wwo) { -+ if (!wwo || wwo->state == WINE_WS_FAILED) { -+ WARN("Stream instance invalid.\n"); -+ return MMSYSERR_INVALHANDLE; -+ } -+ -+ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_BREAKLOOP, 0, TRUE); -+ return MMSYSERR_NOERROR; -+} -+ - /************************************************************************** - * wodGetDevCaps [internal] - */ -@@ -88,6 +961,122 @@ static DWORD wodGetDevCaps(DWORD wDevID, LPWAVEOUTCAPSW lpCaps, DWORD dwSize) { - } - - /************************************************************************** -+ * wodGetVolume [internal] -+ */ -+static DWORD wodGetVolume(WORD wDevID, LPDWORD lpdwVol) { -+ DWORD wleft, wright; -+ WINE_WAVEDEV* wdo; -+ -+ TRACE("(%u, %p);\n", wDevID, lpdwVol); -+ -+ if (wDevID >= PULSE_WodNumDevs) { -+ TRACE("Asked for device %d, but only %d known!\n", wDevID, PULSE_WodNumDevs); -+ return MMSYSERR_INVALHANDLE; -+ } -+ -+ if (lpdwVol == NULL) -+ return MMSYSERR_NOTENABLED; -+ -+ wdo = &WOutDev[wDevID]; -+ -+ wleft=(long int)(pa_sw_volume_to_linear(wdo->left_vol)*0xFFFFl); -+ wright=(long int)(pa_sw_volume_to_linear(wdo->right_vol)*0xFFFFl); -+ -+ if (wleft > 0xFFFFl) -+ wleft = 0xFFFFl; -+ if (wright > 0xFFFFl) -+ wright = 0xFFFFl; -+ -+ *lpdwVol = (WORD)wleft + (WORD)(wright << 16); -+ -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * wodSetVolume [internal] -+ */ -+static DWORD wodSetVolume(WORD wDevID, DWORD dwParam1) { -+ WINE_WAVEDEV *wdo; -+ WINE_WAVEINST *current; -+ pa_operation *o; -+ DWORD x; -+ -+ TRACE("(%u, %08X);\n", wDevID, dwParam1); -+ -+ if (wDevID >= PULSE_WodNumDevs) { -+ TRACE("Asked for device %d, but only %d known!\n", wDevID, PULSE_WodNumDevs); -+ return MMSYSERR_INVALHANDLE; -+ } -+ -+ wdo = &WOutDev[wDevID]; -+ -+ wdo->left_vol = pa_sw_volume_from_linear((double)LOWORD(dwParam1)/0xFFFFl); -+ wdo->right_vol = pa_sw_volume_from_linear((double)HIWORD(dwParam1)/0xFFFFl); -+ -+ /* Windows assumes that this volume is for the entire device, so we have to -+ * hunt down all current streams of the device and set their volumes. -+ * Streams which are not stereo (channels!=2) don't pan correctly. */ -+ for (x = 0; (current = wdo->instance[x]); x++) { -+ switch (current->sample_spec.channels) { -+ case 2: -+ current->volume.channels = 2; -+ current->volume.values[0] = wdo->left_vol; -+ current->volume.values[1] = wdo->right_vol; -+ break; -+ case 1: -+ current->volume.channels = 1; -+ current->volume.values[0] = (wdo->left_vol + wdo->right_vol)/2; /* Is this right? */ -+ break; -+ default: -+ /* FIXME How does more than stereo work? */ -+ pa_cvolume_set(¤t->volume, current->sample_spec.channels, (wdo->left_vol + wdo->right_vol)/2); -+ } -+ -+ if (!current->stream || -+ !PULSE_context || -+ pa_context_get_state(PULSE_context) != PA_CONTEXT_READY || -+ pa_stream_get_state(current->stream) != PA_STREAM_READY || -+ !pa_cvolume_valid(¤t->volume)) -+ continue; -+ -+ pa_threaded_mainloop_lock(PULSE_ml); -+ if ((o = pa_context_set_sink_input_volume(PULSE_context, -+ pa_stream_get_index(current->stream), ¤t->volume, -+ PULSE_context_success_callback, current))) -+ PULSE_wait_for_operation(o, current); -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ } -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * wodRestart [internal] -+ */ -+static DWORD wodRestart(WINE_WAVEINST *wwo) { -+ if (!wwo || wwo->state == WINE_WS_FAILED) { -+ WARN("Stream instance invalid.\n"); -+ return MMSYSERR_INVALHANDLE; -+ } -+ -+ if (wwo->state == WINE_WS_PAUSED) -+ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_RESTARTING, 0, TRUE); -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * wodReset [internal] -+ */ -+static DWORD wodReset(WINE_WAVEINST *wwo) { -+ if (!wwo || wwo->state == WINE_WS_FAILED) { -+ WARN("Stream instance invalid.\n"); -+ return MMSYSERR_INVALHANDLE; -+ } -+ -+ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_RESETTING, 0, TRUE); -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** - * wodDevInterfaceSize [internal] - */ - static DWORD wodDevInterfaceSize(UINT wDevID, LPDWORD dwParam1) { -@@ -124,12 +1113,16 @@ static DWORD wodDsDesc(UINT wDevID, PDSDRIVERDESC desc) { - strcpy(desc->szDrvname, "winepulse.drv"); - return MMSYSERR_NOERROR; - } -+ - /************************************************************************** - * wodMessage (WINEPULSE.@) - */ - DWORD WINAPI PULSE_wodMessage(UINT wDevID, UINT wMsg, DWORD dwUser, - DWORD dwParam1, DWORD dwParam2) { -- -+/* -+ TRACE("(%u, %s, %08X, %08X, %08X);\n", -+ wDevID, PULSE_getMessage(wMsg), dwUser, dwParam1, dwParam2); -+*/ - switch (wMsg) { - case DRVM_INIT: - case DRVM_EXIT: -@@ -137,12 +1130,12 @@ DWORD WINAPI PULSE_wodMessage(UINT wDevID, UINT wMsg, DWORD dwUser, - case DRVM_DISABLE: - /* FIXME: Pretend this is supported */ - return 0; -- case WODM_OPEN: return MMSYSERR_NOTSUPPORTED; -- case WODM_CLOSE: return MMSYSERR_NOTSUPPORTED; -- case WODM_WRITE: return MMSYSERR_NOTSUPPORTED; -- case WODM_PAUSE: return MMSYSERR_NOTSUPPORTED; -- case WODM_GETPOS: return MMSYSERR_NOTSUPPORTED; -- case WODM_BREAKLOOP: return MMSYSERR_NOTSUPPORTED; -+ case WODM_OPEN: return wodOpen (wDevID, (LPDWORD)dwUser, (LPWAVEOPENDESC)dwParam1, dwParam2); -+ case WODM_CLOSE: return wodClose (wDevID, (WINE_WAVEINST*)dwUser); -+ case WODM_WRITE: return wodWrite ((WINE_WAVEINST*)dwUser, (LPWAVEHDR)dwParam1, dwParam2); -+ case WODM_PAUSE: return wodPause ((WINE_WAVEINST*)dwUser); -+ case WODM_GETPOS: return wodGetPosition ((WINE_WAVEINST*)dwUser, (LPMMTIME)dwParam1, dwParam2); -+ case WODM_BREAKLOOP: return wodBreakLoop ((WINE_WAVEINST*)dwUser); - case WODM_PREPARE: return MMSYSERR_NOTSUPPORTED; - case WODM_UNPREPARE: return MMSYSERR_NOTSUPPORTED; - case WODM_GETDEVCAPS: return wodGetDevCaps (wDevID, (LPWAVEOUTCAPSW)dwParam1, dwParam2); -@@ -151,13 +1144,13 @@ DWORD WINAPI PULSE_wodMessage(UINT wDevID, UINT wMsg, DWORD dwUser, - case WODM_SETPITCH: return MMSYSERR_NOTSUPPORTED; - case WODM_GETPLAYBACKRATE: return MMSYSERR_NOTSUPPORTED; /* support if theoretically possible */ - case WODM_SETPLAYBACKRATE: return MMSYSERR_NOTSUPPORTED; /* since pulseaudio 0.9.8 */ -- case WODM_GETVOLUME: return MMSYSERR_NOTSUPPORTED; -- case WODM_SETVOLUME: return MMSYSERR_NOTSUPPORTED; -- case WODM_RESTART: return MMSYSERR_NOTSUPPORTED; -- case WODM_RESET: return MMSYSERR_NOTSUPPORTED; -+ case WODM_GETVOLUME: return wodGetVolume (wDevID, (LPDWORD)dwParam1); -+ case WODM_SETVOLUME: return wodSetVolume (wDevID, dwParam1); -+ case WODM_RESTART: return wodRestart ((WINE_WAVEINST*)dwUser); -+ case WODM_RESET: return wodReset ((WINE_WAVEINST*)dwUser); - case DRV_QUERYDEVICEINTERFACESIZE: return wodDevInterfaceSize (wDevID, (LPDWORD)dwParam1); - case DRV_QUERYDEVICEINTERFACE: return wodDevInterface (wDevID, (PWCHAR)dwParam1, dwParam2); -- case DRV_QUERYDSOUNDIFACE: return wodDsCreate (wDevID, (PIDSDRIVER*)dwParam1); -+ case DRV_QUERYDSOUNDIFACE: return wodDsCreate (wDevID, (PIDSDRIVER*)dwParam1); - case DRV_QUERYDSOUNDDESC: return wodDsDesc (wDevID, (PDSDRIVERDESC)dwParam1); - default: - FIXME("unknown message %d!\n", wMsg); -diff --git a/dlls/winepulse.drv/winepulse.h b/dlls/winepulse.drv/winepulse.h -index 277221a..64778ca 100644 ---- a/dlls/winepulse.drv/winepulse.h -+++ b/dlls/winepulse.drv/winepulse.h -@@ -62,7 +62,7 @@ - - #define PULSE_MAX_STREAM_INSTANCES 16 /* Sixteen streams per device should be good enough? */ - --/* events to be send to device */ -+/* events to be sent to device */ - enum win_wm_message { - WINE_WM_PAUSING = WM_USER + 1, WINE_WM_RESTARTING, WINE_WM_RESETTING, WINE_WM_HEADER, - WINE_WM_BREAKLOOP, WINE_WM_CLOSING, WINE_WM_STARTING, WINE_WM_STOPPING, WINE_WM_XRUN, WINE_WM_FEED -@@ -104,7 +104,7 @@ typedef struct { - - /* WavaHdr information */ - LPWAVEHDR lpQueuePtr; /* start of queued WAVEHDRs (waiting to be notified) */ -- LPWAVEHDR lpPlayPtr; /* start of not yet fully played buffers */ -+ LPWAVEHDR lpPlayPtr; /* start of not yet fully written buffers */ - DWORD dwPartialOffset; /* Offset of not yet written bytes in lpPlayPtr */ - LPWAVEHDR lpLoopPtr; /* pointer of first buffer in loop, if any */ - DWORD dwLoops; /* private copy of loop counter */ -@@ -151,13 +151,11 @@ DWORD PULSE_WodNumDevs; - DWORD PULSE_WidNumDevs; - - /* pulse.c */ --void PULSE_set_buffer_attr_callback(pa_stream *stream, int success, void *userdata); - void PULSE_wait_for_operation(pa_operation *o, WINE_WAVEINST *ww); - void PULSE_stream_success_callback(pa_stream *s, int success, void *userdata); - void PULSE_stream_state_callback(pa_stream *s, void *userdata); - void PULSE_context_success_callback(pa_context *c, int success, void *userdata); - void PULSE_stream_request_callback(pa_stream *s, size_t n, void *userdata); --DWORD PULSE_bytes_to_mmtime(LPMMTIME lpTime, DWORD position, pa_sample_spec *ss); - BOOL PULSE_setupFormat(LPWAVEFORMATEX wf, pa_sample_spec *ss); - int PULSE_InitRingMessage(PULSE_MSG_RING* omr); - int PULSE_DestroyRingMessage(PULSE_MSG_RING* omr); - diff --git a/wine-pulseaudio-winecfg.patch b/wine-pulseaudio-winecfg.patch deleted file mode 100644 index 6c23ae9..0000000 --- a/wine-pulseaudio-winecfg.patch +++ /dev/null @@ -1,49 +0,0 @@ -diff --git a/programs/winecfg/En.rc b/programs/winecfg/En.rc -index 1a07d71..7f45434 100644 ---- a/programs/winecfg/En.rc -+++ b/programs/winecfg/En.rc -@@ -276,6 +276,7 @@ BEGIN - IDS_DRIVER_NAS "NAS Driver" - IDS_DRIVER_AUDIOIO "Audio IO (Solaris) Driver" - IDS_DRIVER_COREAUDIO "CoreAudio Driver" -+ IDS_DRIVER_PULSE "PulseAudio Driver" - IDS_OPEN_DRIVER_ERROR "Couldn't open %s!" - IDS_SOUNDDRIVERS "Sound Drivers" - IDS_DEVICES_WAVEOUT "Wave Out Devices" -diff --git a/programs/winecfg/audio.c b/programs/winecfg/audio.c -index 3ce0e25..b716d25 100644 ---- a/programs/winecfg/audio.c -+++ b/programs/winecfg/audio.c -@@ -95,6 +95,7 @@ static const AUDIO_DRIVER sAudioDrivers[] = { - {IDS_DRIVER_NAS, "nas"}, - {IDS_DRIVER_ESOUND, "esd"}, - {IDS_DRIVER_AUDIOIO, "audioio"}, -+ {IDS_DRIVER_PULSE, "pulse"}, - {0, ""} - }; - -diff --git a/programs/winecfg/libraries.c b/programs/winecfg/libraries.c -index 92dd970..42b6e41 100644 ---- a/programs/winecfg/libraries.c -+++ b/programs/winecfg/libraries.c -@@ -79,6 +79,7 @@ static const char * const builtin_only[] = - "wineoss.drv", - "wineps", - "wineps.drv", -+ "winepulse.drv", - "winex11.drv", - "winmm", - "wintab32", -diff --git a/programs/winecfg/resource.h b/programs/winecfg/resource.h -index 2182c29..b8f07fb 100644 ---- a/programs/winecfg/resource.h -+++ b/programs/winecfg/resource.h -@@ -180,6 +180,7 @@ - #define IDS_ACCEL_BASIC 8302 - #define IDS_ACCEL_EMULATION 8303 - #define IDS_DRIVER_ALSA 8304 -+#define IDS_DRIVER_PULSE 8305 - - #define IDS_DRIVER_ESOUND 8306 - #define IDS_DRIVER_OSS 8307 - diff --git a/wine-pulseaudio.patch b/wine-pulseaudio.patch deleted file mode 100644 index 7320c17..0000000 --- a/wine-pulseaudio.patch +++ /dev/null @@ -1,1188 +0,0 @@ -diff --git a/configure.ac b/configure.ac -index 91850de..b21be92 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -55,6 +55,7 @@ AC_ARG_WITH(oss, AS_HELP_STRING([--without-oss],[do not use the OSS sound - [if test "x$withval" = "xno"; then ac_cv_header_soundcard_h=no; ac_cv_header_sys_soundcard_h=no; ac_cv_header_machine_soundcard_h=no; fi]) - AC_ARG_WITH(png, AS_HELP_STRING([--without-png],[do not use PNG]), - [if test "x$withval" = "xno"; then ac_cv_header_png_h=no; fi]) -+AC_ARG_WITH(pulse, AC_HELP_STRING([--without-pulse],[do not use PulseAudio sound support])) - AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)])) - AC_ARG_WITH(xcomposite,AS_HELP_STRING([--without-xcomposite],[do not use the Xcomposite extension]), - [if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_Xcomposite_h=no; fi]) -@@ -1117,6 +1118,29 @@ then - CFLAGS="$save_CFLAGS" - fi - -+dnl **** Check for PulseAudio **** -+if test "x$with_pulse" != "xno"; then -+ if test "$PKG_CONFIG" != "false"; then -+ AC_MSG_CHECKING([for pulseaudio >= 0.9.8]) -+ if "$PKG_CONFIG" --atleast-version=0.9.8 libpulse; then -+ have_pulseaudio="yes" -+ else -+ have_pulseaudio="no" -+ fi -+ AC_MSG_RESULT([$have_pulseaudio]) -+ if test x"$have_pulseaudio" = xyes; then -+ if "$PKG_CONFIG" --atleast-version=0.9.11 libpulse; then -+ AC_DEFINE([HAVE_PULSEAUDIO_0_9_11], 1, [define this if pulseaudio is at least version 0.9.11]) -+ else -+ AC_DEFINE([HAVE_PULSEAUDIO_0_9_11], 0, [define this if pulseaudio is at least version 0.9.11]) -+ fi -+ ac_pulse_libs=`$PKG_CONFIG --libs libpulse` -+ AC_DEFINE([HAVE_PULSEAUDIO], 1, [define this if you have pulseaudio]) -+ AC_SUBST(PULSELIBS, "$ac_pulse_libs") -+ fi -+ fi -+fi -+ - dnl **** Check for ALSA 1.x **** - AC_SUBST(ALSALIBS,"") - if test "$ac_cv_header_sys_asoundlib_h" = "yes" -o "$ac_cv_header_alsa_asoundlib_h" = "yes" -@@ -1222,7 +1246,7 @@ dnl **** Check for libodbc **** - WINE_CHECK_SONAME(odbc,SQLConnect,,[AC_DEFINE_UNQUOTED(SONAME_LIBODBC,["libodbc.$LIBEXT"])]) - - dnl **** Check for any sound system **** --if test "x$ALSALIBS$AUDIOIOLIBS$COREAUDIO$NASLIBS$ESDLIBS$ac_cv_lib_soname_jack" = "x" -a \ -+if test "x$ALSALIBS$AUDIOIOLIBS$COREAUDIO$NASLIBS$ESDLIBS$PULSELIBS$ac_cv_lib_soname_jack" = "x" -a \ - "$ac_cv_header_sys_soundcard_h" != "yes" -a \ - "$ac_cv_header_machine_soundcard_h" != "yes" -a \ - "$ac_cv_header_soundcard_h" != "yes" -a \ -@@ -2064,6 +2088,7 @@ WINE_CONFIG_MAKEFILE([dlls/winemp3.acm/Makefile],[dlls/Makedll.rules],[dlls],[AL - WINE_CONFIG_MAKEFILE([dlls/winenas.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) - WINE_CONFIG_MAKEFILE([dlls/wineoss.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) - WINE_CONFIG_MAKEFILE([dlls/wineps.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) -+WINE_CONFIG_MAKEFILE([dlls/winepulse.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) - WINE_CONFIG_MAKEFILE([dlls/winequartz.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) - WINE_CONFIG_MAKEFILE([dlls/winex11.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) - WINE_CONFIG_MAKEFILE([dlls/wing32/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) -diff --git a/dlls/winepulse.drv/Makefile.in b/dlls/winepulse.drv/Makefile.in -new file mode 100644 -index 0000000..52a6671 ---- /dev/null -+++ b/dlls/winepulse.drv/Makefile.in -@@ -0,0 +1,15 @@ -+TOPSRCDIR = @top_srcdir@ -+TOPOBJDIR = ../.. -+SRCDIR = @srcdir@ -+VPATH = @srcdir@ -+MODULE = winepulse.drv -+IMPORTS = dxguid uuid winmm user32 advapi32 kernel32 -+EXTRALIBS = @PULSELIBS@ -+ -+C_SRCS = \ -+ waveout.c \ -+ pulse.c -+ -+@MAKE_DLL_RULES@ -+ -+@DEPENDENCIES@ # everything below this line is overwritten by make depend -diff --git a/dlls/winepulse.drv/pulse.c b/dlls/winepulse.drv/pulse.c -new file mode 100644 -index 0000000..3ef6a03 ---- /dev/null -+++ b/dlls/winepulse.drv/pulse.c -@@ -0,0 +1,732 @@ -+/* -+ * Wine Driver for PulseAudio -+ * http://pulseaudio.org/ -+ * -+ * Copyright 2008 Arthur Taylor -+ * -+ * Contains code from other wine sound drivers. -+ * -+ * 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, write to the Free Software -+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA -+ */ -+ -+#include "config.h" -+ -+#include -+#include -+ -+#include "windef.h" -+#include "winbase.h" -+#include "wingdi.h" -+#include "winuser.h" -+#include "mmddk.h" -+ -+#ifdef HAVE_UNISTD_H -+# include -+#endif -+#include -+ -+#ifdef HAVE_PULSEAUDIO -+ -+#include "wine/unicode.h" -+#include "wine/debug.h" -+#include "wine/library.h" -+ -+#include -+#include -+WINE_DEFAULT_DEBUG_CHANNEL(wave); -+ -+/* -+ * - Need to subscribe to sink/source events and keep the WInDev and WOutDev -+ * structures updated -+ */ -+ -+/* These strings used only for tracing */ -+const char * PULSE_getCmdString(enum win_wm_message msg) { -+ static char unknown[32]; -+#define MSG_TO_STR(x) case x: return #x -+ switch(msg) { -+ MSG_TO_STR(WINE_WM_PAUSING); -+ MSG_TO_STR(WINE_WM_RESTARTING); -+ MSG_TO_STR(WINE_WM_RESETTING); -+ MSG_TO_STR(WINE_WM_HEADER); -+ MSG_TO_STR(WINE_WM_BREAKLOOP); -+ MSG_TO_STR(WINE_WM_CLOSING); -+ MSG_TO_STR(WINE_WM_STARTING); -+ MSG_TO_STR(WINE_WM_STOPPING); -+ MSG_TO_STR(WINE_WM_XRUN); -+ MSG_TO_STR(WINE_WM_FEED); -+ } -+#undef MSG_TO_STR -+ sprintf(unknown, "UNKNOWN(0x%08x)", msg); -+ return unknown; -+} -+ -+/*======================================================================* -+ * Ring Buffer Functions - copied from winealsa.drv * -+ *======================================================================*/ -+ -+/* unless someone makes a wineserver kernel module, Unix pipes are faster than win32 events */ -+#define USE_PIPE_SYNC -+ -+#ifdef USE_PIPE_SYNC -+#define INIT_OMR(omr) do { if (pipe(omr->msg_pipe) < 0) { omr->msg_pipe[0] = omr->msg_pipe[1] = -1; } } while (0) -+#define CLOSE_OMR(omr) do { close(omr->msg_pipe[0]); close(omr->msg_pipe[1]); } while (0) -+#define SIGNAL_OMR(omr) do { int x = 0; write((omr)->msg_pipe[1], &x, sizeof(x)); } while (0) -+#define CLEAR_OMR(omr) do { int x = 0; read((omr)->msg_pipe[0], &x, sizeof(x)); } while (0) -+#define RESET_OMR(omr) do { } while (0) -+#define WAIT_OMR(omr, sleep) \ -+ do { struct pollfd pfd; pfd.fd = (omr)->msg_pipe[0]; \ -+ pfd.events = POLLIN; poll(&pfd, 1, sleep); } while (0) -+#else -+#define INIT_OMR(omr) do { omr->msg_event = CreateEventW(NULL, FALSE, FALSE, NULL); } while (0) -+#define CLOSE_OMR(omr) do { CloseHandle(omr->msg_event); } while (0) -+#define SIGNAL_OMR(omr) do { SetEvent((omr)->msg_event); } while (0) -+#define CLEAR_OMR(omr) do { } while (0) -+#define RESET_OMR(omr) do { ResetEvent((omr)->msg_event); } while (0) -+#define WAIT_OMR(omr, sleep) \ -+ do { WaitForSingleObject((omr)->msg_event, sleep); } while (0) -+#endif -+ -+#define PULSE_RING_BUFFER_INCREMENT 64 -+ -+/****************************************************************** -+ * PULSE_InitRingMessage -+ * -+ * Initialize the ring of messages for passing between driver's caller -+ * and playback/record thread -+ */ -+int PULSE_InitRingMessage(PULSE_MSG_RING* omr) -+{ -+ omr->msg_toget = 0; -+ omr->msg_tosave = 0; -+ INIT_OMR(omr); -+ omr->ring_buffer_size = PULSE_RING_BUFFER_INCREMENT; -+ omr->messages = HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,omr->ring_buffer_size * sizeof(PULSE_MSG)); -+ -+ InitializeCriticalSection(&omr->msg_crst); -+ omr->msg_crst.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": PULSE_MSG_RING.msg_crst"); -+ return 0; -+} -+ -+/****************************************************************** -+ * PULSE_DestroyRingMessage -+ * -+ */ -+int PULSE_DestroyRingMessage(PULSE_MSG_RING* omr) -+{ -+ CLOSE_OMR(omr); -+ HeapFree(GetProcessHeap(),0,omr->messages); -+ omr->messages = NULL; -+ omr->ring_buffer_size = PULSE_RING_BUFFER_INCREMENT; -+ omr->msg_crst.DebugInfo->Spare[0] = 0; -+ DeleteCriticalSection(&omr->msg_crst); -+ return 0; -+} -+/****************************************************************** -+ * PULSE_ResetRingMessage -+ * -+ */ -+void PULSE_ResetRingMessage(PULSE_MSG_RING* omr) -+{ -+ RESET_OMR(omr); -+} -+ -+/****************************************************************** -+ * PULSE_WaitRingMessage -+ * -+ */ -+void PULSE_WaitRingMessage(PULSE_MSG_RING* omr, DWORD sleep) -+{ -+ WAIT_OMR(omr, sleep); -+} -+ -+/****************************************************************** -+ * PULSE_AddRingMessage -+ * -+ * Inserts a new message into the ring (should be called from DriverProc derived routines) -+ */ -+int PULSE_AddRingMessage(PULSE_MSG_RING* omr, enum win_wm_message msg, DWORD param, BOOL wait) -+{ -+ HANDLE hEvent = INVALID_HANDLE_VALUE; -+ -+ EnterCriticalSection(&omr->msg_crst); -+ if ((omr->msg_toget == ((omr->msg_tosave + 1) % omr->ring_buffer_size))) -+ { -+ int old_ring_buffer_size = omr->ring_buffer_size; -+ omr->ring_buffer_size += PULSE_RING_BUFFER_INCREMENT; -+ omr->messages = HeapReAlloc(GetProcessHeap(),0,omr->messages, omr->ring_buffer_size * sizeof(PULSE_MSG)); -+ /* Now we need to rearrange the ring buffer so that the new -+ buffers just allocated are in between omr->msg_tosave and -+ omr->msg_toget. -+ */ -+ if (omr->msg_tosave < omr->msg_toget) -+ { -+ memmove(&(omr->messages[omr->msg_toget + PULSE_RING_BUFFER_INCREMENT]), -+ &(omr->messages[omr->msg_toget]), -+ sizeof(PULSE_MSG)*(old_ring_buffer_size - omr->msg_toget) -+ ); -+ omr->msg_toget += PULSE_RING_BUFFER_INCREMENT; -+ } -+ } -+ if (wait) -+ { -+ hEvent = CreateEventW(NULL, FALSE, FALSE, NULL); -+ if (hEvent == INVALID_HANDLE_VALUE) -+ { -+ ERR("can't create event !?\n"); -+ LeaveCriticalSection(&omr->msg_crst); -+ return 0; -+ } -+ if (omr->msg_toget != omr->msg_tosave && omr->messages[omr->msg_toget].msg != WINE_WM_HEADER) -+ FIXME("two fast messages in the queue!!!!\n"); /* toget = %d(%s), tosave=%d(%s)\n", -+ omr->msg_toget,ALSA_getCmdString(omr->messages[omr->msg_toget].msg), -+ omr->msg_tosave,ALSA_getCmdString(omr->messages[omr->msg_tosave].msg)); */ -+ -+ /* fast messages have to be added at the start of the queue */ -+ omr->msg_toget = (omr->msg_toget + omr->ring_buffer_size - 1) % omr->ring_buffer_size; -+ -+ omr->messages[omr->msg_toget].msg = msg; -+ omr->messages[omr->msg_toget].param = param; -+ omr->messages[omr->msg_toget].hEvent = hEvent; -+ } -+ else -+ { -+ omr->messages[omr->msg_tosave].msg = msg; -+ omr->messages[omr->msg_tosave].param = param; -+ omr->messages[omr->msg_tosave].hEvent = INVALID_HANDLE_VALUE; -+ omr->msg_tosave = (omr->msg_tosave + 1) % omr->ring_buffer_size; -+ } -+ LeaveCriticalSection(&omr->msg_crst); -+ /* signal a new message */ -+ SIGNAL_OMR(omr); -+ if (wait) -+ { -+ /* wait for playback/record thread to have processed the message */ -+ WaitForSingleObject(hEvent, INFINITE); -+ CloseHandle(hEvent); -+ } -+ return 1; -+} -+ -+/****************************************************************** -+ * PULSE_RetrieveRingMessage -+ * -+ * Get a message from the ring. Should be called by the playback/record thread. -+ */ -+int PULSE_RetrieveRingMessage(PULSE_MSG_RING* omr, -+ enum win_wm_message *msg, DWORD *param, HANDLE *hEvent) -+{ -+ EnterCriticalSection(&omr->msg_crst); -+ -+ if (omr->msg_toget == omr->msg_tosave) /* buffer empty ? */ -+ { -+ LeaveCriticalSection(&omr->msg_crst); -+ return 0; -+ } -+ -+ *msg = omr->messages[omr->msg_toget].msg; -+ omr->messages[omr->msg_toget].msg = 0; -+ *param = omr->messages[omr->msg_toget].param; -+ *hEvent = omr->messages[omr->msg_toget].hEvent; -+ omr->msg_toget = (omr->msg_toget + 1) % omr->ring_buffer_size; -+ CLEAR_OMR(omr); -+ LeaveCriticalSection(&omr->msg_crst); -+ return 1; -+} -+ -+/************************************************************************** -+ * Utility Functions -+ */ -+ -+/****************************************************************** -+ * PULSE_free_wavedevs [internal] -+ * -+ * Free and deallocated all the wavedevs in the array of size allocated -+ */ -+static void PULSE_free_wavedevs(WINE_WAVEDEV *wd, DWORD *allocated) { -+ DWORD y, x = *allocated; -+ WINE_WAVEDEV *current_device; -+ WINE_WAVEINST *current_instance; -+ -+ TRACE("%i\n", *allocated); -+ -+ for (; x>0; ) { -+ current_device = &wd[--x]; -+ -+ pa_xfree(current_device->device_name); -+ -+ for (y = 0; y < PULSE_MAX_STREAM_INSTANCES; y++) { -+ if ((current_instance = current_device->instance[y])) { -+ if (current_instance->hThread != INVALID_HANDLE_VALUE && current_instance->msgRing.messages) { -+ PULSE_AddRingMessage(¤t_instance->msgRing, WINE_WM_CLOSING, 1, TRUE); -+ if (current_instance->hThread != INVALID_HANDLE_VALUE) { -+ /* Overkill? */ -+ TerminateThread(current_instance->hThread, 1); -+ current_instance->hThread = INVALID_HANDLE_VALUE; -+ } -+ if (current_instance->stream) -+ pa_stream_unref(current_instance->stream); -+ PULSE_DestroyRingMessage(¤t_instance->msgRing); -+ current_device->instance[current_instance->instance_ref] = NULL; -+ if (current_instance->buffer_attr) -+ pa_xfree(current_instance->buffer_attr); -+ HeapFree(GetProcessHeap(), 0, current_instance); -+ } -+ } -+ } -+ } -+ -+ HeapFree(GetProcessHeap(), 0, wd); -+ *allocated = 0; -+} -+ -+/****************************************************************** -+ * PULSE_wait_for_operation -+ * -+ * Waits for pa operations to complete, ensures success and dereferences the -+ * operations. -+ */ -+void PULSE_wait_for_operation(pa_operation *o, WINE_WAVEINST *wd) { -+ assert(o && wd); -+ -+ TRACE("Waiting..."); -+ -+ for (;;) { -+ -+ if (!wd->stream || -+ !PULSE_context || -+ pa_context_get_state(PULSE_context) != PA_CONTEXT_READY || -+ pa_stream_get_state(wd->stream) != PA_STREAM_READY) { -+ wd->state = WINE_WS_FAILED; -+ if (wd->hThread != INVALID_HANDLE_VALUE && wd->msgRing.messages) -+ PULSE_AddRingMessage(&wd->msgRing, WINE_WM_CLOSING, 1, FALSE); -+ break; -+ } -+ -+ if (pa_operation_get_state(o) != PA_OPERATION_RUNNING) -+ break; -+ -+ pa_threaded_mainloop_wait(PULSE_ml); -+ } -+ TRACE(" done\n"); -+ pa_operation_unref(o); -+} -+ -+/************************************************************************** -+ * Common Callbacks -+ */ -+ -+/****************************************************************** -+ * PULSE_stream_state_callback -+ * -+ * Called by pulse whenever the state of the stream changes. -+ */ -+void PULSE_stream_state_callback(pa_stream *s, void *userdata) { -+ WINE_WAVEINST *wd = (WINE_WAVEINST*)userdata; -+ assert(s && wd); -+ -+ switch (pa_stream_get_state(s)) { -+ -+ case PA_STREAM_READY: -+ TRACE("Stream ready\n"); -+ break; -+ case PA_STREAM_TERMINATED: -+ TRACE("Stream terminated\n"); -+ break; -+ case PA_STREAM_FAILED: -+ WARN("Stream failed!\n"); -+ wd->state = WINE_WS_FAILED; -+ if (wd->hThread != INVALID_HANDLE_VALUE && wd->msgRing.messages) -+ PULSE_AddRingMessage(&wd->msgRing, WINE_WM_CLOSING, 1, FALSE); -+ break; -+ case PA_STREAM_UNCONNECTED: -+ case PA_STREAM_CREATING: -+ return; -+ } -+ pa_threaded_mainloop_signal(PULSE_ml, 0); -+} -+ -+/************************************************************************** -+ * PULSE_stream_sucess_callback -+ */ -+void PULSE_stream_success_callback(pa_stream *s, int success, void *userdata) { -+ if (!success) -+ WARN("Stream operation failed: %s\n", pa_strerror(pa_context_errno(PULSE_context))); -+ -+ pa_threaded_mainloop_signal(PULSE_ml, 0); -+} -+ -+/************************************************************************** -+ * PULSE_context_success_callback -+ */ -+void PULSE_context_success_callback(pa_context *c, int success, void *userdata) { -+ if (!success) -+ WARN("Context operation failed: %s\n", pa_strerror(pa_context_errno(c))); -+ -+ pa_threaded_mainloop_signal(PULSE_ml, 0); -+} -+ -+/************************************************************************** -+ * Connection management and sink / source management. -+ */ -+ -+/************************************************************************** -+ * PULSE_context_state_callback [internal] -+ */ -+static void PULSE_context_state_callback(pa_context *c, void *userdata) { -+ assert(c); -+ -+ switch (pa_context_get_state(c)) { -+ case PA_CONTEXT_CONNECTING: -+ case PA_CONTEXT_AUTHORIZING: -+ case PA_CONTEXT_SETTING_NAME: -+ break; -+ -+ case PA_CONTEXT_READY: -+ case PA_CONTEXT_TERMINATED: -+ pa_threaded_mainloop_signal(PULSE_ml, 0); -+ break; -+ -+ case PA_CONTEXT_FAILED: -+ default: -+ ERR("Conneciton failure: %s\n", pa_strerror(pa_context_errno(c))); -+ -+ if (PULSE_context) { -+ pa_context_disconnect(PULSE_context); -+ } -+ -+ PULSE_free_wavedevs(WOutDev, &PULSE_WodNumDevs); -+ PULSE_free_wavedevs(WInDev, &PULSE_WidNumDevs); -+ -+ pa_threaded_mainloop_signal(PULSE_ml, 0); -+ } -+} -+ -+/************************************************************************** -+ * PULSE_add_input_device [internal] -+ * -+ * Creates or adds a device to WInDev based on the pa_source_info, or if -+ * pa_source_info is null, a default. -+ */ -+static void PULSE_add_input_device(pa_source_info *i, DWORD *allocated) { -+ WINE_WAVEDEV *wwi; -+ const char *description; -+ int x; -+ -+ if (WInDev) -+ wwi = HeapReAlloc(GetProcessHeap(), 0, WInDev, sizeof(WINE_WAVEDEV) * ((*allocated)+1)); -+ else -+ wwi = HeapAlloc(GetProcessHeap(), 0, sizeof(WINE_WAVEDEV)); -+ -+ if (!wwi) -+ return; -+ -+ WInDev = wwi; -+ wwi = &WInDev[(*allocated)++]; -+ -+ if (i) { -+ description = i->description; -+ wwi->device_name = pa_xstrdup(i->name); -+ strcpy(wwi->interface_name, "winepulse: "); -+ memcpy(wwi->interface_name + strlen(wwi->interface_name), -+ i->name, min(strlen(i->name), -+ sizeof(wwi->interface_name) - strlen("winepulse: "))); -+ } else { -+ description = pa_xstrdup("PulseAudio Server Default"); -+ wwi->device_name = NULL; -+ strcpy(wwi->interface_name, "winepulse: default"); -+ } -+ -+ memset(wwi, 0, sizeof(WINE_WAVEDEV)); -+ memset(&(wwi->caps.in), 0, sizeof(wwi->caps.in)); -+ MultiByteToWideChar(CP_ACP, 0, description, -1, wwi->caps.in.szPname, sizeof(wwi->caps.in.szPname)/sizeof(WCHAR)); -+ wwi->caps.in.szPname[sizeof(wwi->caps.in.szPname)/sizeof(WCHAR) - 1] = '\0'; -+ wwi->caps.in.wMid = MM_CREATIVE; -+ wwi->caps.in.wPid = MM_CREATIVE_SBP16_WAVEOUT; -+ wwi->caps.in.vDriverVersion = 0x0100; -+ wwi->caps.in.wChannels = 2; -+ wwi->caps.in.dwFormats |= -+ WAVE_FORMAT_1M08 | /* Mono 11025Hz 8-bit */ -+ WAVE_FORMAT_1M16 | /* Mono 11025Hz 16-bit */ -+ WAVE_FORMAT_1S08 | /* Stereo 11025Hz 8-bit */ -+ WAVE_FORMAT_1S16 | /* Stereo 11025Hz 16-bit */ -+ WAVE_FORMAT_2M08 | /* Mono 22050Hz 8-bit */ -+ WAVE_FORMAT_2M16 | /* Mono 22050Hz 16-bit */ -+ WAVE_FORMAT_2S08 | /* Stereo 22050Hz 8-bit */ -+ WAVE_FORMAT_2S16 | /* Stereo 22050Hz 16-bit */ -+ WAVE_FORMAT_4M08 | /* Mono 44100Hz 8-bit */ -+ WAVE_FORMAT_4M16 | /* Mono 44100Hz 16-bit */ -+ WAVE_FORMAT_4S08 | /* Stereo 44100Hz 8-bit */ -+ WAVE_FORMAT_4S16 | /* Stereo 44100Hz 16-bit */ -+ WAVE_FORMAT_48M08 | /* Mono 48000Hz 8-bit */ -+ WAVE_FORMAT_48S08 | /* Stereo 48000Hz 8-bit */ -+ WAVE_FORMAT_48M16 | /* Mono 48000Hz 16-bit */ -+ WAVE_FORMAT_48S16 | /* Stereo 48000Hz 16-bit */ -+ WAVE_FORMAT_96M08 | /* Mono 96000Hz 8-bit */ -+ WAVE_FORMAT_96S08 | /* Stereo 96000Hz 8-bit */ -+ WAVE_FORMAT_96M16 | /* Mono 96000Hz 16-bit */ -+ WAVE_FORMAT_96S16 ; /* Stereo 96000Hz 16-bit */ -+ -+ /* NULL out the instance pointers */ -+ for (x = 0; x < PULSE_MAX_STREAM_INSTANCES; x++) wwi->instance[x] = NULL; -+} -+ -+/************************************************************************** -+ * PULSE_add_output_device [internal] -+ * -+ * Creates or adds a device to WOutDev based on the pa_sinl_info, or if -+ * pa_sink_info is null, a default. -+ */ -+static void PULSE_add_output_device(pa_sink_info *i, DWORD *allocated) { -+ WINE_WAVEDEV *wwo; -+ const char *description; -+ int x; -+ -+ if (WOutDev) -+ wwo = HeapReAlloc(GetProcessHeap(), 0, WOutDev, sizeof(WINE_WAVEDEV) * ((*allocated)+1)); -+ else -+ wwo = HeapAlloc(GetProcessHeap(), 0, sizeof(WINE_WAVEDEV)); -+ -+ if (!wwo) -+ return; -+ -+ WOutDev = wwo; -+ wwo = &WOutDev[(*allocated)++]; -+ -+ if (i) { -+ description = i->description; -+ wwo->device_name = pa_xstrdup(i->name); -+ strcpy(wwo->interface_name, "winepulse: "); -+ memcpy(wwo->interface_name + strlen(wwo->interface_name), -+ wwo->device_name, min(strlen(wwo->device_name), -+ sizeof(wwo->interface_name) - strlen("winepulse: "))); -+ } else { -+ description = pa_xstrdup("PulseAudio Server Default"); -+ wwo->device_name = NULL; -+ strcpy(wwo->interface_name, "winepulse: default"); -+ } -+ -+ memset(wwo, 0, sizeof(WINE_WAVEDEV)); -+ memset(&(wwo->caps.out), 0, sizeof(wwo->caps.out)); -+ MultiByteToWideChar(CP_ACP, 0, description, -1, wwo->caps.out.szPname, sizeof(wwo->caps.out.szPname)/sizeof(WCHAR)); -+ wwo->caps.out.szPname[sizeof(wwo->caps.out.szPname)/sizeof(WCHAR) - 1] = '\0'; -+ wwo->caps.out.wMid = MM_CREATIVE; -+ wwo->caps.out.wPid = MM_CREATIVE_SBP16_WAVEOUT; -+ wwo->caps.out.vDriverVersion = 0x0100; -+ wwo->caps.out.dwSupport |= WAVECAPS_VOLUME | WAVECAPS_LRVOLUME; -+ wwo->caps.out.wChannels = 2; -+ wwo->caps.out.dwFormats |= -+ WAVE_FORMAT_1M08 | /* Mono 11025Hz 8-bit */ -+ WAVE_FORMAT_1M16 | /* Mono 11025Hz 16-bit */ -+ WAVE_FORMAT_1S08 | /* Stereo 11025Hz 8-bit */ -+ WAVE_FORMAT_1S16 | /* Stereo 11025Hz 16-bit */ -+ WAVE_FORMAT_2M08 | /* Mono 22050Hz 8-bit */ -+ WAVE_FORMAT_2M16 | /* Mono 22050Hz 16-bit */ -+ WAVE_FORMAT_2S08 | /* Stereo 22050Hz 8-bit */ -+ WAVE_FORMAT_2S16 | /* Stereo 22050Hz 16-bit */ -+ WAVE_FORMAT_4M08 | /* Mono 44100Hz 8-bit */ -+ WAVE_FORMAT_4M16 | /* Mono 44100Hz 16-bit */ -+ WAVE_FORMAT_4S08 | /* Stereo 44100Hz 8-bit */ -+ WAVE_FORMAT_4S16 | /* Stereo 44100Hz 16-bit */ -+ WAVE_FORMAT_48M08 | /* Mono 48000Hz 8-bit */ -+ WAVE_FORMAT_48S08 | /* Stereo 48000Hz 8-bit */ -+ WAVE_FORMAT_48M16 | /* Mono 48000Hz 16-bit */ -+ WAVE_FORMAT_48S16 | /* Stereo 48000Hz 16-bit */ -+ WAVE_FORMAT_96M08 | /* Mono 96000Hz 8-bit */ -+ WAVE_FORMAT_96S08 | /* Stereo 96000Hz 8-bit */ -+ WAVE_FORMAT_96M16 | /* Mono 96000HZ 16-bit */ -+ WAVE_FORMAT_96S16 ; /* Stereo 96000Hz 16-bit */ -+ -+ wwo->left_vol = PA_VOLUME_NORM; -+ wwo->right_vol = PA_VOLUME_NORM; -+ -+ /* NULL out the instance pointers */ -+ for (x = 0; x < PULSE_MAX_STREAM_INSTANCES; x++) wwo->instance[x] = NULL; -+} -+ -+/************************************************************************** -+ * PULSE_source_info_callback [internal] -+ * -+ * Calls PULSE_add_input_device to add the source to the list of devices -+ */ -+static void PULSE_source_info_callback(pa_context *c, pa_source_info *i, int eol, void *userdata) { -+ assert(c); -+ if (!eol && i) -+ if (i->monitor_of_sink == PA_INVALID_INDEX) /* For now only add non-montior sources */ -+ PULSE_add_input_device(i, (DWORD*)userdata); -+ -+ pa_threaded_mainloop_signal(PULSE_ml, 0); -+} -+ -+/************************************************************************** -+ * PULSE_sink_info_callback [internal] -+ * -+ * Calls PULSE_add_output_device to add the sink to the list of devices -+ */ -+static void PULSE_sink_info_callback(pa_context *c, pa_sink_info *i, int eol, void *userdata) { -+ assert(c); -+ if (!eol && i) -+ PULSE_add_output_device(i, (DWORD*)userdata); -+ -+ pa_threaded_mainloop_signal(PULSE_ml, 0); -+} -+ -+/************************************************************************** -+ * PULSE_WaveInit [internal] -+ * -+ * Connects to the pulseaudio server, tries to discover sinks and sources and -+ * allocates the WaveIn/WaveOut devices. -+ */ -+LONG PULSE_WaveInit(void) { -+ pa_operation *o = NULL; -+ DWORD allocated; -+ -+ WOutDev = NULL; -+ WInDev = NULL; -+ PULSE_WodNumDevs = 0; -+ PULSE_WidNumDevs = 0; -+ PULSE_context = NULL; -+ PULSE_ml = NULL; -+ -+ if (!(PULSE_ml = pa_threaded_mainloop_new())) { -+ WARN("Failed to create mainloop object."); -+ return -1; -+ } -+ -+ pa_threaded_mainloop_start(PULSE_ml); -+ -+ /* FIXME: better name? */ -+ PULSE_context = pa_context_new(pa_threaded_mainloop_get_api(PULSE_ml), "Wine Application"); -+ assert(PULSE_context); -+ -+ pa_context_set_state_callback(PULSE_context, PULSE_context_state_callback, NULL); -+ -+ if (pa_context_get_state(PULSE_context) != PA_CONTEXT_UNCONNECTED) -+ return 0; -+ -+ pa_threaded_mainloop_lock(PULSE_ml); -+ -+ TRACE("Attempting to connect to pulseaudio server.\n"); -+ if (pa_context_connect(PULSE_context, NULL, 0, NULL) < 0) { -+ WARN("failed to connect context object %s\n", pa_strerror(pa_context_errno(PULSE_context))); -+ return -1; -+ } -+ -+ /* Wait for connection */ -+ for (;;) { -+ pa_context_state_t state = pa_context_get_state(PULSE_context); -+ -+ if (state == PA_CONTEXT_FAILED || state == PA_CONTEXT_TERMINATED) { -+ ERR("Failed to connect to pulseaudio server.\n"); -+ pa_context_unref(PULSE_context); -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ pa_threaded_mainloop_stop(PULSE_ml); -+ pa_threaded_mainloop_free(PULSE_ml); -+ return -1; -+ } -+ -+ if (state == PA_CONTEXT_READY) { -+ TRACE("Connection succeeded!\n"); -+ break; -+ } -+ -+ pa_threaded_mainloop_wait(PULSE_ml); -+ } -+ -+ /* Ask for all the sinks and create objects in the WOutDev array */ -+ allocated=0; -+ /* add a fake output (server default sink) */ -+ PULSE_add_output_device(NULL, &allocated); -+ o = pa_context_get_sink_info_list(PULSE_context, (pa_sink_info_cb_t)PULSE_sink_info_callback, &allocated); -+ assert(o); -+ while (pa_operation_get_state(o) != PA_OPERATION_DONE) -+ pa_threaded_mainloop_wait(PULSE_ml); -+ pa_operation_unref(o); -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ TRACE("Allocated %i output device(s).\n",allocated); -+ PULSE_WodNumDevs=allocated; -+ if (PULSE_WodNumDevs == 1) /* Only the fake sink exists */ -+ PULSE_free_wavedevs(WOutDev, &PULSE_WodNumDevs); -+ -+ /* Repeate for all the sources */ -+ allocated=0; -+ /* add a fake input (server default source) */ -+ PULSE_add_input_device(NULL, &allocated); -+ pa_threaded_mainloop_lock(PULSE_ml); -+ o = pa_context_get_source_info_list(PULSE_context, (pa_source_info_cb_t)PULSE_source_info_callback, &allocated); -+ assert(o); -+ while (pa_operation_get_state(o) != PA_OPERATION_DONE) -+ pa_threaded_mainloop_wait(PULSE_ml); -+ pa_operation_unref(o); -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ TRACE("Allocated %i input device(s).\n", allocated); -+ PULSE_WidNumDevs=allocated; -+ if (PULSE_WidNumDevs == 1) /* Only the fake source exists */ -+ PULSE_free_wavedevs(WInDev, &PULSE_WidNumDevs); -+ -+ return 1; -+} -+ -+/************************************************************************** -+ * PULSE_WaveClose [internal] -+ * -+ * Disconnect from the server, deallocated the WaveIn/WaveOut devices, stop and -+ * free the mainloop. -+ */ -+ -+LONG PULSE_WaveClose(void) { -+ pa_threaded_mainloop_lock(PULSE_ml); -+ if (PULSE_context) { -+ pa_context_disconnect(PULSE_context); -+ pa_context_unref(PULSE_context); -+ PULSE_context = NULL; -+ } -+ -+ PULSE_free_wavedevs(WOutDev, &PULSE_WodNumDevs); -+ PULSE_free_wavedevs(WInDev, &PULSE_WidNumDevs); -+ -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ pa_threaded_mainloop_stop(PULSE_ml); -+ pa_threaded_mainloop_free(PULSE_ml); -+ -+ return 1; -+} -+ -+#endif /* HAVE_PULSEAUDIO */ -+ -+/************************************************************************** -+ * DriverProc (WINEPULSE.@) -+ */ -+LRESULT CALLBACK PULSE_DriverProc(DWORD_PTR dwDevID, HDRVR hDriv, UINT wMsg, -+ LPARAM dwParam1, LPARAM dwParam2) { -+ -+ switch(wMsg) { -+#ifdef HAVE_PULSEAUDIO -+ case DRV_LOAD: PULSE_WaveInit(); -+ return 1; -+ case DRV_FREE: return PULSE_WaveClose(); -+ case DRV_OPEN: return 1; -+ case DRV_CLOSE: return 1; -+ case DRV_ENABLE: return 1; -+ case DRV_DISABLE: return 1; -+ case DRV_QUERYCONFIGURE: return 1; -+ case DRV_CONFIGURE: MessageBoxA(0, "PulseAudio MultiMedia Driver !", "PulseAudio Driver", MB_OK); return 1; -+ case DRV_INSTALL: return DRVCNF_RESTART; -+ case DRV_REMOVE: return DRVCNF_RESTART; -+#endif -+ default: -+ return DefDriverProc(dwDevID, hDriv, wMsg, dwParam1, dwParam2); -+ } -+} -diff --git a/dlls/winepulse.drv/waveout.c b/dlls/winepulse.drv/waveout.c -new file mode 100644 -index 0000000..fe7543f ---- /dev/null -+++ b/dlls/winepulse.drv/waveout.c -@@ -0,0 +1,180 @@ -+/* -+ * Wine Driver for PulseAudio - WaveOut Functionality -+ * http://pulseaudio.org/ -+ * -+ * Copyright 2002 Eric Pouech -+ * 2002 Marco Pietrobono -+ * 2003 Christian Costa -+ * 2006-2007 Maarten Lankhorst -+ * 2008 Arthur Taylor (PulseAudio version) -+ * -+ * 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, write to the Free Software -+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA -+ */ -+ -+#include "config.h" -+ -+#include -+#include -+#include -+#include -+ -+#include "windef.h" -+#include "winbase.h" -+#include "wingdi.h" -+#include "winuser.h" -+#include "winnls.h" -+#include "winerror.h" -+#include "mmddk.h" -+#include "mmreg.h" -+#include "ks.h" -+#include "ksguid.h" -+#include "ksmedia.h" -+#include "dsound.h" -+#include "dsdriver.h" -+ -+#include -+ -+#include "wine/debug.h" -+ -+WINE_DEFAULT_DEBUG_CHANNEL(wave); -+ -+#if HAVE_PULSEAUDIO -+ -+/* state diagram for waveOut writing: -+ * -+ * +---------+-------------+---------------+---------------------------------+ -+ * | state | function | event | new state | -+ * +---------+-------------+---------------+---------------------------------+ -+ * | | open() | | STOPPED | -+ * | PAUSED | write() | | PAUSED | -+ * | STOPPED | write() | | PLAYING | -+ * | PLAYING | write() | HEADER | PLAYING | -+ * | (other) | write() | | | -+ * | (any) | pause() | PAUSING | PAUSED | -+ * | PAUSED | restart() | RESTARTING | PLAYING (if no thrd => STOPPED) | -+ * | PAUSED | reset() | RESETTING | PAUSED | -+ * | (other) | reset() | RESETTING | STOPPED | -+ * | (any) | close() | CLOSING | CLOSED | -+ * +---------+-------------+---------------+---------------------------------+ -+ */ -+ -+/************************************************************************** -+ * wodGetDevCaps [internal] -+ */ -+static DWORD wodGetDevCaps(DWORD wDevID, LPWAVEOUTCAPSW lpCaps, DWORD dwSize) { -+ TRACE("(%u, %p, %u);\n", wDevID, lpCaps, dwSize); -+ -+ if (lpCaps == NULL) return MMSYSERR_NOTENABLED; -+ -+ if (wDevID >= PULSE_WodNumDevs) { -+ TRACE("Asked for device %d, but only %d known!\n", wDevID, PULSE_WodNumDevs); -+ return MMSYSERR_INVALHANDLE; -+ } -+ -+ memcpy(lpCaps, &(WOutDev[wDevID].caps.out), min(dwSize, sizeof(*lpCaps))); -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * wodDevInterfaceSize [internal] -+ */ -+static DWORD wodDevInterfaceSize(UINT wDevID, LPDWORD dwParam1) { -+ -+ *dwParam1 = MultiByteToWideChar(CP_ACP, 0, WOutDev[wDevID].interface_name, -1, NULL, 0) * sizeof(WCHAR); -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * wodDevInterface [internal] -+ */ -+static DWORD wodDevInterface(UINT wDevID, PWCHAR dwParam1, DWORD dwParam2) { -+ if (dwParam2 >= MultiByteToWideChar(CP_ACP, 0, WOutDev[wDevID].interface_name, -1, -+ NULL, 0 ) * sizeof(WCHAR)) -+ { -+ MultiByteToWideChar(CP_ACP, 0, WOutDev[wDevID].interface_name, -1, -+ dwParam1, dwParam2 / sizeof(WCHAR)); -+ return MMSYSERR_NOERROR; -+ } -+ return MMSYSERR_INVALPARAM; -+} -+ -+/*======================================================================* -+ * Low level DSOUND implementation * -+ *======================================================================*/ -+static DWORD wodDsCreate(UINT wDevID, PIDSDRIVER* drv) { -+ /* Is this possible ?*/ -+ return MMSYSERR_NOTSUPPORTED; -+} -+ -+static DWORD wodDsDesc(UINT wDevID, PDSDRIVERDESC desc) { -+ memset(desc, 0, sizeof(*desc)); -+ strcpy(desc->szDesc, "Wine PulseAudio DirectSound Driver"); -+ strcpy(desc->szDrvname, "winepulse.drv"); -+ return MMSYSERR_NOERROR; -+} -+/************************************************************************** -+ * wodMessage (WINEPULSE.@) -+ */ -+DWORD WINAPI PULSE_wodMessage(UINT wDevID, UINT wMsg, DWORD dwUser, -+ DWORD dwParam1, DWORD dwParam2) { -+ -+ switch (wMsg) { -+ case DRVM_INIT: -+ case DRVM_EXIT: -+ case DRVM_ENABLE: -+ case DRVM_DISABLE: -+ /* FIXME: Pretend this is supported */ -+ return 0; -+ case WODM_OPEN: return MMSYSERR_NOTSUPPORTED; -+ case WODM_CLOSE: return MMSYSERR_NOTSUPPORTED; -+ case WODM_WRITE: return MMSYSERR_NOTSUPPORTED; -+ case WODM_PAUSE: return MMSYSERR_NOTSUPPORTED; -+ case WODM_GETPOS: return MMSYSERR_NOTSUPPORTED; -+ case WODM_BREAKLOOP: return MMSYSERR_NOTSUPPORTED; -+ case WODM_PREPARE: return MMSYSERR_NOTSUPPORTED; -+ case WODM_UNPREPARE: return MMSYSERR_NOTSUPPORTED; -+ case WODM_GETDEVCAPS: return wodGetDevCaps (wDevID, (LPWAVEOUTCAPSW)dwParam1, dwParam2); -+ case WODM_GETNUMDEVS: return PULSE_WodNumDevs; -+ case WODM_GETPITCH: return MMSYSERR_NOTSUPPORTED; -+ case WODM_SETPITCH: return MMSYSERR_NOTSUPPORTED; -+ case WODM_GETPLAYBACKRATE: return MMSYSERR_NOTSUPPORTED; /* support if theoretically possible */ -+ case WODM_SETPLAYBACKRATE: return MMSYSERR_NOTSUPPORTED; /* since pulseaudio 0.9.8 */ -+ case WODM_GETVOLUME: return MMSYSERR_NOTSUPPORTED; -+ case WODM_SETVOLUME: return MMSYSERR_NOTSUPPORTED; -+ case WODM_RESTART: return MMSYSERR_NOTSUPPORTED; -+ case WODM_RESET: return MMSYSERR_NOTSUPPORTED; -+ case DRV_QUERYDEVICEINTERFACESIZE: return wodDevInterfaceSize (wDevID, (LPDWORD)dwParam1); -+ case DRV_QUERYDEVICEINTERFACE: return wodDevInterface (wDevID, (PWCHAR)dwParam1, dwParam2); -+ case DRV_QUERYDSOUNDIFACE: return wodDsCreate (wDevID, (PIDSDRIVER*)dwParam1); -+ case DRV_QUERYDSOUNDDESC: return wodDsDesc (wDevID, (PDSDRIVERDESC)dwParam1); -+ default: -+ FIXME("unknown message %d!\n", wMsg); -+ } -+ return MMSYSERR_NOTSUPPORTED; -+} -+ -+#else /* !HAVE_PULSEAUDIO */ -+ -+/************************************************************************** -+ * wodMessage (WINEPULSE.@) -+ */ -+DWORD WINAPI PULSE_wodMessage(WORD wDevID, WORD wMsg, DWORD dwUser, -+ DWORD dwParam1, DWORD dwParam2) { -+ FIXME("(%u, %04X, %08X, %08X, %08X):stub\n", wDevID, wMsg, dwUser, -+ dwParam1, dwParam2); -+ return MMSYSERR_NOTENABLED; -+} -+ -+#endif /* HAVE_PULSEAUDIO */ -diff --git a/dlls/winepulse.drv/winepulse.drv.spec b/dlls/winepulse.drv/winepulse.drv.spec -new file mode 100644 -index 0000000..1707969 ---- /dev/null -+++ b/dlls/winepulse.drv/winepulse.drv.spec -@@ -0,0 +1,2 @@ -+@ stdcall -private DriverProc(long long long long long long) PULSE_DriverProc -+@ stdcall -private wodMessage(long long long long long long) PULSE_wodMessage -diff --git a/dlls/winepulse.drv/winepulse.h b/dlls/winepulse.drv/winepulse.h -new file mode 100644 -index 0000000..277221a ---- /dev/null -+++ b/dlls/winepulse.drv/winepulse.h -@@ -0,0 +1,169 @@ -+/* Definitions for PulseAudio Wine Driver -+ * -+ * Copyright 2008 Arthur Taylor -+ * -+ * 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, write to the Free Software -+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA -+ */ -+ -+#ifndef __WINE_CONFIG_H -+# error You must include config.h to use this header -+#endif -+ -+#if defined(HAVE_PULSEAUDIO) && !defined(__WINEPULSE_H) -+#define __WINEPULSE_H -+ -+#include "mmreg.h" -+#include "dsound.h" -+#include "dsdriver.h" -+ -+#include "ks.h" -+#include "ksmedia.h" -+#include "ksguid.h" -+ -+#include -+ -+/* state diagram for waveOut writing: -+ * -+ * +---------+-------------+---------------+---------------------------------+ -+ * | state | function | event | new state | -+ * +---------+-------------+---------------+---------------------------------+ -+ * | | open() | | STOPPED | -+ * | PAUSED | write() | | PAUSED | -+ * | STOPPED | write() | | PLAYING | -+ * | PLAYING | write() | HEADER | PLAYING | -+ * | (other) | write() | | | -+ * | (any) | pause() | PAUSING | PAUSED | -+ * | PAUSED | restart() | RESTARTING | PLAYING (if no thrd => STOPPED) | -+ * | (any) | reset() | RESETTING | STOPPED | -+ * | (any) | close() | CLOSING | CLOSED | -+ * +---------+-------------+---------------+---------------------------------+ -+ */ -+ -+#undef PULSE_VERBOSE -+ -+/* states of the playing device */ -+#define WINE_WS_PLAYING 1 -+#define WINE_WS_PAUSED 2 -+#define WINE_WS_STOPPED 3 -+#define WINE_WS_CLOSED 4 -+#define WINE_WS_FAILED 5 -+ -+#define PULSE_MAX_STREAM_INSTANCES 16 /* Sixteen streams per device should be good enough? */ -+ -+/* events to be send to device */ -+enum win_wm_message { -+ WINE_WM_PAUSING = WM_USER + 1, WINE_WM_RESTARTING, WINE_WM_RESETTING, WINE_WM_HEADER, -+ WINE_WM_BREAKLOOP, WINE_WM_CLOSING, WINE_WM_STARTING, WINE_WM_STOPPING, WINE_WM_XRUN, WINE_WM_FEED -+}; -+ -+typedef struct { -+ enum win_wm_message msg; /* message identifier */ -+ DWORD param; /* parameter for this message */ -+ HANDLE hEvent; /* if message is synchronous, handle of event for synchro */ -+} PULSE_MSG; -+ -+/* implement an in-process message ring for better performance -+ * (compared to passing thru the server) -+ * this ring will be used by the input (resp output) record (resp playback) routine -+ */ -+typedef struct { -+ PULSE_MSG * messages; -+ int ring_buffer_size; -+ int msg_tosave; -+ int msg_toget; -+/* Either pipe or event is used, but that is defined in pulse.c, -+ * since this is a global header we define both here */ -+ int msg_pipe[2]; -+ HANDLE msg_event; -+ CRITICAL_SECTION msg_crst; -+} PULSE_MSG_RING; -+ -+/* Per-playback/record instance */ -+typedef struct { -+ int instance_ref; /* The array index of WINE_WAVEDEV->instance[] that this is */ -+ volatile int state; /* one of the WINE_WS_ manifest constants */ -+ WAVEOPENDESC waveDesc; -+ WORD wFlags; -+ pa_stream *stream; /* The PulseAudio stream */ -+ const pa_timing_info *timing_info; -+ pa_buffer_attr *buffer_attr; -+ pa_sample_spec sample_spec; /* Sample spec of this stream / device */ -+ pa_cvolume volume; -+ -+ /* WavaHdr information */ -+ LPWAVEHDR lpQueuePtr; /* start of queued WAVEHDRs (waiting to be notified) */ -+ LPWAVEHDR lpPlayPtr; /* start of not yet fully played buffers */ -+ DWORD dwPartialOffset; /* Offset of not yet written bytes in lpPlayPtr */ -+ LPWAVEHDR lpLoopPtr; /* pointer of first buffer in loop, if any */ -+ DWORD dwLoops; /* private copy of loop counter */ -+ -+ /* Virtual stream positioning information */ -+ DWORD last_reset; /* When the last reset occured, as pa stream time doesn't reset */ -+ BOOL is_buffering; /* !is_playing */ -+ struct timeval last_header; /* When the last wavehdr was received, only updated when is_buffering is true */ -+ BOOL is_releasing; /* Whether we are releasing wavehdrs, may not always be the inverse of is_buffering */ -+ struct timeval started_releasing; /* When wavehdr releasing started, for comparison to queued written wavehdrs */ -+ DWORD releasing_offset; /* How much audio has been released prior when releasing started in this instance */ -+ -+ /* Thread communication and synchronization stuff */ -+ HANDLE hStartUpEvent; -+ HANDLE hThread; -+ DWORD dwThreadID; -+ PULSE_MSG_RING msgRing; -+} WINE_WAVEINST; -+ -+/* Per-playback/record device */ -+typedef struct { -+ char *device_name; /* Name of the device used as an identifer on the server */ -+ char interface_name[MAXPNAMELEN * 2]; -+ -+ pa_volume_t left_vol; /* Volume is per device and always stereo */ -+ pa_volume_t right_vol; -+ -+ union { -+ WAVEOUTCAPSW out; -+ WAVEINCAPSW in; -+ } caps; -+ -+ WINE_WAVEINST *instance[PULSE_MAX_STREAM_INSTANCES]; -+} WINE_WAVEDEV; -+ -+/* We establish one context per instance, so make it global to the lib */ -+pa_context *PULSE_context; /* Connection Context */ -+pa_threaded_mainloop *PULSE_ml; /* PA Runtime information */ -+ -+/* WaveIn / WaveOut devices */ -+WINE_WAVEDEV *WOutDev; -+WINE_WAVEDEV *WInDev; -+DWORD PULSE_WodNumDevs; -+DWORD PULSE_WidNumDevs; -+ -+/* pulse.c */ -+void PULSE_set_buffer_attr_callback(pa_stream *stream, int success, void *userdata); -+void PULSE_wait_for_operation(pa_operation *o, WINE_WAVEINST *ww); -+void PULSE_stream_success_callback(pa_stream *s, int success, void *userdata); -+void PULSE_stream_state_callback(pa_stream *s, void *userdata); -+void PULSE_context_success_callback(pa_context *c, int success, void *userdata); -+void PULSE_stream_request_callback(pa_stream *s, size_t n, void *userdata); -+DWORD PULSE_bytes_to_mmtime(LPMMTIME lpTime, DWORD position, pa_sample_spec *ss); -+BOOL PULSE_setupFormat(LPWAVEFORMATEX wf, pa_sample_spec *ss); -+int PULSE_InitRingMessage(PULSE_MSG_RING* omr); -+int PULSE_DestroyRingMessage(PULSE_MSG_RING* omr); -+void PULSE_ResetRingMessage(PULSE_MSG_RING* omr); -+void PULSE_WaitRingMessage(PULSE_MSG_RING* omr, DWORD sleep); -+int PULSE_AddRingMessage(PULSE_MSG_RING* omr, enum win_wm_message msg, DWORD param, BOOL wait); -+int PULSE_RetrieveRingMessage(PULSE_MSG_RING* omr, enum win_wm_message *msg, DWORD *param, HANDLE *hEvent); -+const char * PULSE_getCmdString(enum win_wm_message msg); -+#endif - diff --git a/wine-pulseaudio.sh b/wine-pulseaudio.sh deleted file mode 100644 index e73d7c4..0000000 --- a/wine-pulseaudio.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh -if [ -x /usr/lib*/alsa-lib/libasound_module_pcm_pulse.so ] && [ -x "/usr/bin/padsp" ] ; then - echo "Running padsp as pulseaudio wrapper for wine" - exec padsp -n Wine -- /usr/bin/wine_bin "$@" -else - exec /usr/bin/wine_bin "$@" -fi diff --git a/wine.spec b/wine.spec index 1b3b64f..e780def 100644 --- a/wine.spec +++ b/wine.spec @@ -1,5 +1,5 @@ Name: wine -Version: 1.1.14 +Version: 1.1.15 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -41,9 +41,10 @@ Source300: wine-mime-msi.desktop # explain how to use wine with pulseaudio # see http://bugs.winehq.org/show_bug.cgi?id=10495 -Patch400: wine-pulseaudio.patch -Patch401: wine-pulseaudio-waveout.patch -Patch402: wine-pulseaudio-winecfg.patch +# and http://art.ified.ca/?page_id=40 +Patch400: http://art.ified.ca/downloads/winepulse-0.17-configure.ac.patch +Patch401: http://art.ified.ca/downloads/winepulse-0.20.patch +Patch402: http://art.ified.ca/downloads/adding-pulseaudio-to-winecfg.patch Source402: README-FEDORA-PULSEAUDIO @@ -242,25 +243,19 @@ wine audio driver. Please do not report bugs regarding this driver at winehq.org %patch400 -p1 %patch401 -p1 %patch402 -p1 -autoconf -f +autoreconf %build -# work around gcc bug see #440139 -# this affects more then just dlls/user32/menu.c -#%if %{?fedora} > 8 -#export CFLAGS="$RPM_OPT_FLAGS -fno-tree-fre -fno-tree-pre" -#%else export CFLAGS="$RPM_OPT_FLAGS" -#%endif %configure \ - --sysconfdir=%{_sysconfdir}/wine --disable-static \ + --sysconfdir=%{_sysconfdir}/wine \ --x-includes=%{_includedir} --x-libraries=%{_libdir} \ --with-pulse %{__make} depend -%{__make} %{?_smp_mflags} +%{__make} TARGETFLAGS="" %{?_smp_mflags} %install rm -rf %{buildroot} @@ -869,11 +864,16 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %files pulseaudio -# pulseaudio workaround documentation +# winepulse documentation %doc README-FEDORA-PULSEAUDIO %{_libdir}/wine/winepulse.drv.so %changelog +* Sun Feb 15 2009 Andreas Bierfert +- 1.1.15-1 +- version upgrade +- new pulse patches + * Sat Jan 31 2009 Andreas Bierfert - 1.1.14-1 - version upgrade diff --git a/winepulse-0.17-configure.ac.patch b/winepulse-0.17-configure.ac.patch new file mode 100644 index 0000000..776d724 --- /dev/null +++ b/winepulse-0.17-configure.ac.patch @@ -0,0 +1,54 @@ +diff --git a/configure.ac b/configure.ac +index 57ec39d..2ca94ca 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -58,6 +58,7 @@ AC_ARG_WITH(png, AS_HELP_STRING([--without-png],[do not use PNG]), + [if test "x$withval" = "xno"; then ac_cv_header_png_h=no; fi]) + AC_ARG_WITH(pthread, AS_HELP_STRING([--without-pthread],[do not use the pthread library]), + [if test "x$withval" = "xno"; then ac_cv_header_pthread_h=no; fi]) ++AC_ARG_WITH(pulse, AC_HELP_STRING([--without-pulse],[do not use PulseAudio sound support])) + AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)])) + AC_ARG_WITH(xcomposite,AS_HELP_STRING([--without-xcomposite],[do not use the Xcomposite extension]), + [if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_Xcomposite_h=no; fi]) +@@ -1186,6 +1187,24 @@ then + CFLAGS="$save_CFLAGS" + fi + ++dnl **** Check for PulseAudio **** ++if test "x$with_pulse" != "xno"; then ++ if test "$PKG_CONFIG" != "false"; then ++ AC_MSG_CHECKING([for pulseaudio >= 0.9.8]) ++ if "$PKG_CONFIG" --atleast-version=0.9.8 libpulse; then ++ have_pulseaudio="yes" ++ else ++ have_pulseaudio="no" ++ fi ++ AC_MSG_RESULT([$have_pulseaudio]) ++ if test x"$have_pulseaudio" = xyes; then ++ ac_pulse_libs=`$PKG_CONFIG --libs libpulse` ++ AC_DEFINE([HAVE_PULSEAUDIO], 1, [define this if you have pulseaudio]) ++ AC_SUBST(PULSELIBS, "$ac_pulse_libs") ++ fi ++ fi ++fi ++ + dnl **** Check for ALSA 1.x **** + AC_SUBST(ALSALIBS,"") + if test "$ac_cv_header_sys_asoundlib_h" = "yes" -o "$ac_cv_header_alsa_asoundlib_h" = "yes" +@@ -1291,7 +1310,7 @@ dnl **** Check for libodbc **** + WINE_CHECK_SONAME(odbc,SQLConnect,,[AC_DEFINE_UNQUOTED(SONAME_LIBODBC,["libodbc.$LIBEXT"])]) + + dnl **** Check for any sound system **** +-if test "x$ALSALIBS$AUDIOIOLIBS$COREAUDIO$NASLIBS$ESDLIBS$ac_cv_lib_soname_jack" = "x" -a \ ++if test "x$ALSALIBS$AUDIOIOLIBS$COREAUDIO$NASLIBS$ESDLIBS$PULSELIBS$ac_cv_lib_soname_jack" = "x" -a \ + "$ac_cv_header_sys_soundcard_h" != "yes" -a \ + "$ac_cv_header_machine_soundcard_h" != "yes" -a \ + "$ac_cv_header_soundcard_h" != "yes" -a \ +@@ -2223,6 +2242,7 @@ WINE_CONFIG_MAKEFILE([dlls/winemp3.acm/Makefile],[dlls/Makedll.rules],[dlls],[AL + WINE_CONFIG_MAKEFILE([dlls/winenas.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) + WINE_CONFIG_MAKEFILE([dlls/wineoss.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) + WINE_CONFIG_MAKEFILE([dlls/wineps.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) ++WINE_CONFIG_MAKEFILE([dlls/winepulse.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) + WINE_CONFIG_MAKEFILE([dlls/winequartz.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) + WINE_CONFIG_MAKEFILE([dlls/winex11.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) + WINE_CONFIG_MAKEFILE([dlls/wing32/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) diff --git a/winepulse-0.20.patch b/winepulse-0.20.patch new file mode 100644 index 0000000..97de6d9 --- /dev/null +++ b/winepulse-0.20.patch @@ -0,0 +1,3436 @@ +diff --git a/dlls/winepulse.drv/Makefile.in b/dlls/winepulse.drv/Makefile.in +new file mode 100644 +index 0000000..327f225 +--- /dev/null ++++ b/dlls/winepulse.drv/Makefile.in +@@ -0,0 +1,16 @@ ++TOPSRCDIR = @top_srcdir@ ++TOPOBJDIR = ../.. ++SRCDIR = @srcdir@ ++VPATH = @srcdir@ ++MODULE = winepulse.drv ++IMPORTS = dxguid uuid winmm user32 advapi32 kernel32 ++EXTRALIBS = @PULSELIBS@ ++ ++C_SRCS = dsoutput.c \ ++ waveout.c \ ++ wavein.c \ ++ pulse.c ++ ++@MAKE_DLL_RULES@ ++ ++@DEPENDENCIES@ # everything below this line is overwritten by make depend +diff --git a/dlls/winepulse.drv/dsoutput.c b/dlls/winepulse.drv/dsoutput.c +new file mode 100644 +index 0000000..5086917 +--- /dev/null ++++ b/dlls/winepulse.drv/dsoutput.c +@@ -0,0 +1,568 @@ ++/* ++ * Wine Driver for PulseAudio - DSound Output Functionality ++ * http://pulseaudio.org/ ++ * ++ * Copyright 2009 Arthur Talyor ++ * ++ * Conatins code from other wine multimedia drivers. ++ * ++ * 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, write to the Free Software ++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA ++ */ ++ ++#include "config.h" ++ ++#include ++ ++#include "windef.h" ++#include "winbase.h" ++#include "wingdi.h" ++#include "winuser.h" ++#include "winerror.h" ++#include "mmddk.h" ++#include "dsound.h" ++#include "dsdriver.h" ++#include "winreg.h" ++ ++#include ++#include "wine/debug.h" ++ ++WINE_DEFAULT_DEBUG_CHANNEL(dspulse); ++ ++#if HAVE_PULSEAUDIO ++ ++/*======================================================================* ++ * Low level DSOUND implementation * ++ *======================================================================*/ ++ ++/* Fragment lengths try to be a power of two close to 10ms worth of data. See ++ * dlls/dsound/mixer.c ++ */ ++static int fragment_length(pa_sample_spec *s) { ++ if (s->rate <= 12800) ++ return 128 * pa_frame_size(s); ++ ++ if (s->rate <= 25600) ++ return 256 * pa_frame_size(s); ++ ++ if (s->rate <= 51200) ++ return 512 * pa_frame_size(s); ++ ++ return 1024 * pa_frame_size(s); ++} ++ ++/* Callback from the pulse thread for stream data */ ++static void DSPULSE_BufferReadCallback(pa_stream *s, size_t nbytes, void *userdata) { ++ IDsDriverBufferImpl *This = (IDsDriverBufferImpl *)userdata; ++ ++ if (!This->buffer) ++ return; ++ ++ /* Fraglens are always powers of 2 */ ++ nbytes+= This->fraglen - 1; ++ nbytes&= ~(This->fraglen - 1); ++ /* If we advance more than 10 fragments at a time it appears that the buffer ++ * pointer is never advancing because of wrap-around. Evil magic numbers. */ ++ if (nbytes > This->fraglen * 6) ++ nbytes = This->fraglen * 6; ++ ++ TRACE("Reading %u bytes.\n", nbytes); ++ ++ if (This->buffer_read_offset + nbytes > This->buffer_length) { ++ size_t write_length = This->buffer_length - This->buffer_read_offset; ++ if (nbytes > This->buffer_length) ++ nbytes = This->buffer_length; ++ nbytes -= write_length; ++ pa_stream_write(s, This->buffer + This->buffer_read_offset, write_length, NULL, 0, PA_SEEK_RELATIVE); ++ pa_stream_write(s, This->buffer, nbytes, NULL, 0, PA_SEEK_RELATIVE); ++ This->buffer_read_offset = nbytes; ++ } else { ++ pa_stream_write(s, This->buffer + This->buffer_read_offset, nbytes, NULL, 0, PA_SEEK_RELATIVE); ++ This->buffer_read_offset += nbytes; ++ } ++ ++ This->buffer_read_offset %= This->buffer_length; ++} ++ ++/* Called when the stream underruns. Just for information */ ++static void DSPULSE_BufferUnderflowCallback(pa_stream *s, void *userdata) { ++ WARN("(%p) underrun.\n", userdata); ++} ++ ++/* Connects a stream to the server for use in setting the sample format or ++ * stream creation. Does not update IDsDriverBufferImpl->fraglen */ ++static HRESULT DSPULSE_ConnectStream(IDsDriverBufferImpl* This) { ++ pa_buffer_attr ba_request; ++ const pa_buffer_attr *ba_obtained; ++ char c[PA_SAMPLE_SPEC_SNPRINT_MAX]; ++ pa_stream_flags_t flags = PA_STREAM_START_CORKED; ++ ++#if PA_API_VERSION >= 12 ++ flags |= PA_STREAM_EARLY_REQUESTS; ++#endif ++ ++ pa_sample_spec_snprint(c, PA_SAMPLE_SPEC_SNPRINT_MAX, &This->sample_spec); ++ TRACE("Sample spec %s fragment size %u.\n", c, This->fraglen); ++ ++ ba_request.tlength = This->fraglen * 4; ++ ba_request.minreq = This->fraglen / 2; ++ ba_request.prebuf = (uint32_t) -1; /* same as tlength */ ++ ba_request.maxlength = This->buffer_length; ++ ++ TRACE("Asking for buffer tlength:%u (%llums) minreq:%u (%llums)\n", ++ ba_request.tlength, pa_bytes_to_usec(ba_request.tlength, &This->sample_spec)/1000, ++ ba_request.minreq, pa_bytes_to_usec(ba_request.minreq, &This->sample_spec)/1000); ++ ++ This->stream = pa_stream_new(PULSE_context, "DirectSound Buffer", &This->sample_spec, NULL); ++ if (!This->stream) return DSERR_BADFORMAT; ++ ++ pa_stream_set_state_callback(This->stream, PULSE_StreamStateCallback, This); ++ pa_stream_set_write_callback(This->stream, DSPULSE_BufferReadCallback, This); ++ pa_stream_set_underflow_callback(This->stream, DSPULSE_BufferUnderflowCallback, This); ++ ++ TRACE("Attempting to connect (%p)->stream for playback on %s\n", This, WOutDev[This->drv->wDevID].device_name); ++ pa_stream_connect_playback(This->stream, WOutDev[This->drv->wDevID].device_name, &ba_request, flags, NULL, NULL); ++ for (;;) { ++ pa_context_state_t cstate = pa_context_get_state(PULSE_context); ++ pa_stream_state_t sstate = pa_stream_get_state(This->stream); ++ ++ if (cstate == PA_CONTEXT_FAILED || cstate == PA_CONTEXT_TERMINATED || ++ sstate == PA_STREAM_FAILED || sstate == PA_STREAM_TERMINATED) { ++ ERR("Failed to connect stream context object: %s\n", pa_strerror(pa_context_errno(PULSE_context))); ++ return DSERR_BUFFERLOST; ++ } ++ ++ if (sstate == PA_STREAM_READY) ++ break; ++ ++ pa_threaded_mainloop_wait(PULSE_ml); ++ } ++ TRACE("(%p)->stream connected for playback.\n", This); ++ ba_obtained = pa_stream_get_buffer_attr(This->stream); ++ ++ TRACE("Obtained buffer tlength:%u (%llums) minreq:%u (%llums)\n", ++ ba_obtained->tlength, pa_bytes_to_usec(ba_obtained->tlength, &This->sample_spec)/1000, ++ ba_obtained->minreq, pa_bytes_to_usec(ba_obtained->minreq, &This->sample_spec)/1000); ++ ++ return DS_OK; ++} ++ ++static HRESULT WINAPI IDsDriverBufferImpl_QueryInterface(PIDSDRIVERBUFFER iface, REFIID riid, LPVOID *ppobj) { ++ /* IDsDriverBufferImpl *This = (IDsDriverBufferImpl *)iface; */ ++ FIXME("(): stub!\n"); ++ return DSERR_UNSUPPORTED; ++} ++ ++static ULONG WINAPI IDsDriverBufferImpl_AddRef(PIDSDRIVERBUFFER iface) { ++ IDsDriverBufferImpl *This = (IDsDriverBufferImpl *)iface; ++ ULONG refCount = InterlockedIncrement(&This->ref); ++ ++ TRACE("(%p)->(ref before=%u)\n",This, refCount - 1); ++ ++ return refCount; ++} ++ ++static ULONG WINAPI IDsDriverBufferImpl_Release(PIDSDRIVERBUFFER iface) { ++ IDsDriverBufferImpl *This = (IDsDriverBufferImpl *)iface; ++ ULONG refCount = InterlockedDecrement(&This->ref); ++ ++ TRACE("(%p)->(ref before=%u)\n",This, refCount + 1); ++ ++ if (refCount) ++ return refCount; ++ ++ TRACE("mmap buffer %p destroyed\n", This->buffer); ++ ++ pa_threaded_mainloop_lock(PULSE_ml); ++ PULSE_WaitForOperation(pa_stream_cork(This->stream, 1, PULSE_StreamSuccessCallback, This)); ++ pa_stream_disconnect(This->stream); ++ ++ if (This == This->drv->primary) ++ This->drv->primary = NULL; ++ ++ HeapFree(GetProcessHeap(), 0, This->buffer); ++ This->buffer = NULL; ++ ++ pa_stream_unref(This->stream); ++ This->stream = NULL; ++ ++ HeapFree(GetProcessHeap(), 0, This); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ ++ return 0; ++} ++ ++static HRESULT WINAPI IDsDriverBufferImpl_Lock(PIDSDRIVERBUFFER iface, ++ LPVOID*ppvAudio1,LPDWORD pdwLen1, ++ LPVOID*ppvAudio2,LPDWORD pdwLen2, ++ DWORD dwWritePosition,DWORD dwWriteLen, ++ DWORD dwFlags) ++{ ++ /* We set DSDDESC_DONTNEEDPRIMARYLOCK so this should never be called */ ++ TRACE("(%p): stub", iface); ++ return DSERR_UNSUPPORTED; ++} ++ ++static HRESULT WINAPI IDsDriverBufferImpl_Unlock(PIDSDRIVERBUFFER iface, ++ LPVOID pvAudio1,DWORD dwLen1, ++ LPVOID pvAudio2,DWORD dwLen2) ++{ ++ /* We set DSDDESC_DONTNEEDPRIMARYLOCK so this should never be called */ ++ TRACE("(%p): stub", iface); ++ return DSERR_UNSUPPORTED; ++} ++ ++/* You cannot change the sample format of a connected stream, so we need to ++ * destroy and re-create the stream if the sample spec is different */ ++static HRESULT WINAPI IDsDriverBufferImpl_SetFormat(PIDSDRIVERBUFFER iface, LPWAVEFORMATEX pwfx) { ++ IDsDriverBufferImpl *This = (IDsDriverBufferImpl *)iface; ++ HRESULT ret = DS_OK; ++ pa_sample_spec old_spec; ++ ++ TRACE("(%p, %p)\n", iface, pwfx); ++ ++ old_spec.rate = This->sample_spec.rate; ++ old_spec.format = This->sample_spec.format; ++ old_spec.channels = This->sample_spec.channels; ++ ++ if (!PULSE_SetupFormat(pwfx, &This->sample_spec)) ++ return DSERR_BADFORMAT; ++ ++ pa_threaded_mainloop_lock(PULSE_ml); ++ if (old_spec.rate == This->sample_spec.rate && ++ old_spec.format == This->sample_spec.format && ++ old_spec.channels == This->sample_spec.channels) { ++ TRACE("same as original sample spec, exiting.\n"); ++ ret = DS_OK; ++ goto leave; ++ } ++ ++ This->fraglen = fragment_length(&This->sample_spec); ++ ++ TRACE("Disconnecting old stream.\n"); ++ pa_stream_disconnect(This->stream); ++ pa_stream_unref(This->stream); ++ ret = DSPULSE_ConnectStream(This); ++ ++leave: ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ ++ TRACE("Exiting\n"); ++ return ret; ++} ++ ++static HRESULT WINAPI IDsDriverBufferImpl_SetFrequency(PIDSDRIVERBUFFER iface, DWORD dwFreq) ++{ ++ /* IDsDriverBufferImpl *This = (IDsDriverBufferImpl *)iface; */ ++ /* You can't do for primary buffers anyways */ ++ return S_OK; ++} ++ ++static HRESULT WINAPI IDsDriverBufferImpl_SetVolumePan(PIDSDRIVERBUFFER iface, PDSVOLUMEPAN pVolPan) { ++ IDsDriverBufferImpl *This = (IDsDriverBufferImpl *)iface; ++ ++ if (This->sample_spec.channels == 2) { ++ This->volume.channels = 2; ++ if (pVolPan->lPan < 0) { ++ This->volume.values[0] = pa_sw_volume_from_dB(pVolPan->lVolume/-10.0 + pVolPan->lPan/10.0); ++ This->volume.values[1] = pa_sw_volume_from_dB(pVolPan->lVolume/-10.0); ++ } else { ++ This->volume.values[0] = pa_sw_volume_from_dB(pVolPan->lVolume/-10.0); ++ This->volume.values[1] = pa_sw_volume_from_dB(pVolPan->lVolume/-10.0 - pVolPan->lPan/10.0); ++ } ++ } else { ++ WARN("Panning non-stereo streams not supported yet!\n"); ++ pa_cvolume_set(&This->volume, This->sample_spec.channels, pa_sw_volume_from_dB(pVolPan->lVolume/-10.0)); ++ /* Would be nice to return DSERR_CONTROLUNAVAIL, but that isn't up to us ++ * here */ ++ } ++ ++ pa_threaded_mainloop_lock(PULSE_ml); ++ if (This->stream && PULSE_context && pa_context_get_state(PULSE_context) == PA_CONTEXT_READY && ++ pa_stream_get_state(This->stream) == PA_STREAM_READY && pa_cvolume_valid(&This->volume)) ++ PULSE_WaitForOperation( ++ pa_context_set_sink_input_volume( ++ PULSE_context, pa_stream_get_index(This->stream), ++ &This->volume, PULSE_ContextSuccessCallback, This)); ++ ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ ++ return DS_OK; ++} ++ ++static HRESULT WINAPI IDsDriverBufferImpl_SetPosition(PIDSDRIVERBUFFER iface, DWORD dwNewPos) ++{ ++ /* IDsDriverBufferImpl *This = (IDsDriverBufferImpl *)iface; */ ++ /* Not allowed on primary buffers */ ++ return DSERR_UNSUPPORTED; ++} ++ ++static HRESULT WINAPI IDsDriverBufferImpl_GetPosition(PIDSDRIVERBUFFER iface, ++ LPDWORD lpdwPlay, LPDWORD lpdwWrite) ++{ ++ IDsDriverBufferImpl *This = (IDsDriverBufferImpl *)iface; ++ ++ pa_threaded_mainloop_lock(PULSE_ml); ++ ++ if (!This->buffer || pa_stream_get_state(This->stream) != PA_STREAM_READY) { ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ return DSERR_UNINITIALIZED; ++ } ++ ++ /* These values are fake, and must remain so */ ++ if (lpdwPlay) ++ *lpdwPlay = (This->buffer_read_offset + This->buffer_length - This->fraglen * 2) % This->buffer_length; ++ if (lpdwWrite) ++ *lpdwWrite = This->buffer_read_offset; ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ ++ return DS_OK; ++} ++ ++static HRESULT WINAPI IDsDriverBufferImpl_Play(PIDSDRIVERBUFFER iface, DWORD dwRes1, DWORD dwRes2, DWORD dwFlags) { ++ IDsDriverBufferImpl *This = (IDsDriverBufferImpl *)iface; ++ TRACE("(%p,%x,%x,%x)\n",iface,dwRes1,dwRes2,dwFlags); ++ ++ pa_threaded_mainloop_lock(PULSE_ml); ++ PULSE_WaitForOperation(pa_stream_cork(This->stream, 0, PULSE_StreamSuccessCallback, This)); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ return DS_OK; ++} ++ ++static HRESULT WINAPI IDsDriverBufferImpl_Stop(PIDSDRIVERBUFFER iface) { ++ IDsDriverBufferImpl *This = (IDsDriverBufferImpl *)iface; ++ TRACE("(%p)\n",iface); ++ ++ pa_threaded_mainloop_lock(PULSE_ml); ++ PULSE_WaitForOperation(pa_stream_cork(This->stream, 1, PULSE_StreamSuccessCallback, This)); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ return DS_OK; ++} ++ ++/*****************************************************************************/ ++ ++static const IDsDriverBufferVtbl dsdbvt = ++{ ++ IDsDriverBufferImpl_QueryInterface, ++ IDsDriverBufferImpl_AddRef, ++ IDsDriverBufferImpl_Release, ++ IDsDriverBufferImpl_Lock, ++ IDsDriverBufferImpl_Unlock, ++ IDsDriverBufferImpl_SetFormat, ++ IDsDriverBufferImpl_SetFrequency, ++ IDsDriverBufferImpl_SetVolumePan, ++ IDsDriverBufferImpl_SetPosition, ++ IDsDriverBufferImpl_GetPosition, ++ IDsDriverBufferImpl_Play, ++ IDsDriverBufferImpl_Stop ++}; ++ ++static HRESULT WINAPI IDsDriverImpl_CreateSoundBuffer(PIDSDRIVER iface, ++ LPWAVEFORMATEX pwfx, ++ DWORD dwFlags, DWORD dwCardAddress, ++ LPDWORD pdwcbBufferSize, ++ LPBYTE *ppbBuffer, ++ LPVOID *ppvObj) { ++ IDsDriverImpl *This = (IDsDriverImpl *)iface; ++ IDsDriverBufferImpl** ippdsdb = (IDsDriverBufferImpl**)ppvObj; ++ IDsDriverBufferImpl *That; ++ HRESULT ret; ++ ++ TRACE("(%p,%p,%x,%x)\n",iface,pwfx,dwFlags,dwCardAddress); ++ /* we only support primary buffers */ ++ if (!(dwFlags & DSBCAPS_PRIMARYBUFFER)) ++ return DSERR_UNSUPPORTED; ++ if (This->primary) ++ return DSERR_ALLOCATED; ++ This->primary = *ippdsdb; ++ ++ *ippdsdb = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDsDriverBufferImpl)); ++ ++ if (!*ippdsdb) { ++ ERR("Out of memory\n"); ++ return DSERR_OUTOFMEMORY; ++ } ++ ++ That = *ippdsdb; ++ That->lpVtbl = &dsdbvt; ++ That->ref = 1; ++ That->drv = This; ++ ++ if (!PULSE_SetupFormat(pwfx, &That->sample_spec)) { ++ WARN("Bad audio format.\n"); ++ ret = DSERR_BADFORMAT; ++ goto err; ++ } ++ ++ /* The buffer length has to be greater than fraglen * 20 or else logic in ++ * dlls/dsound/mixer.c fails to correctly understand buffer wrap around. */ ++ That->fraglen = fragment_length(&That->sample_spec); ++ That->buffer_length = That->fraglen * 32; ++ That->buffer = pa_xmalloc0(That->buffer_length); ++ That->buffer_read_offset = 0; ++ ++ pa_threaded_mainloop_lock(PULSE_ml); ++ ret = DSPULSE_ConnectStream(That); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ ++ if (ret != DS_OK) ++ goto err; ++ ++ *pdwcbBufferSize = That->buffer_length; ++ *ppbBuffer = That->buffer; ++ ++ TRACE("Exiting with success. Have buffer %p of length %u\n", That->buffer, That->buffer_length); ++ return DS_OK; ++ ++err: ++ pa_threaded_mainloop_lock(PULSE_ml); ++ if (That->stream) { ++ if (pa_stream_get_state(That->stream) == PA_STREAM_READY) ++ pa_stream_disconnect(That->stream); ++ pa_stream_unref(That->stream); ++ That->stream = NULL; ++ } ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ if (That->buffer) ++ HeapFree(GetProcessHeap(), 0, That->buffer); ++ ++ if (*ippdsdb) ++ HeapFree(GetProcessHeap(), 0, That); ++ *ippdsdb = NULL; ++ TRACE("exiting with failure\n"); ++ return ret; ++} ++ ++static HRESULT WINAPI IDsDriverImpl_QueryInterface(PIDSDRIVER iface, REFIID riid, LPVOID *ppobj) { ++ /* IDsDriverImpl *This = (IDsDriverImpl *)iface; */ ++ FIXME("(%p): stub!\n",iface); ++ return DSERR_UNSUPPORTED; ++} ++ ++static ULONG WINAPI IDsDriverImpl_AddRef(PIDSDRIVER iface) { ++ IDsDriverImpl *This = (IDsDriverImpl *)iface; ++ ULONG refCount = InterlockedIncrement(&This->ref); ++ ++ TRACE("(%p)->(ref before=%u)\n",This, refCount - 1); ++ ++ return refCount; ++} ++ ++static ULONG WINAPI IDsDriverImpl_Release(PIDSDRIVER iface) { ++ IDsDriverImpl *This = (IDsDriverImpl *)iface; ++ ULONG refCount = InterlockedDecrement(&This->ref); ++ ++ TRACE("(%p)->(ref before=%u)\n",This, refCount + 1); ++ ++ if (refCount) ++ return refCount; ++ ++ HeapFree(GetProcessHeap(), 0, This); ++ return 0; ++} ++ ++static HRESULT WINAPI IDsDriverImpl_GetDriverDesc(PIDSDRIVER iface, PDSDRIVERDESC pDesc) { ++ IDsDriverImpl *This = (IDsDriverImpl *)iface; ++ TRACE("(%p,%p)\n",iface,pDesc); ++ *pDesc = WOutDev[This->wDevID].ds_desc; ++ pDesc->dwFlags = DSDDESC_DONTNEEDSECONDARYLOCK | DSDDESC_DONTNEEDPRIMARYLOCK; ++ pDesc->dnDevNode = 0; /*TODO: Bwah? */ ++ pDesc->wVxdId = 0; ++ pDesc->wReserved = 0; ++ pDesc->ulDeviceNum = This->wDevID; ++ pDesc->dwHeapType = DSDHEAP_NOHEAP; ++ pDesc->pvDirectDrawHeap = NULL; ++ pDesc->dwMemStartAddress = 0xDEAD0000; ++ pDesc->dwMemEndAddress = 0xDEAF0000; ++ pDesc->dwMemAllocExtra = 0; ++ pDesc->pvReserved1 = NULL; ++ pDesc->pvReserved2 = NULL; ++ return DS_OK; ++} ++ ++static HRESULT WINAPI IDsDriverImpl_Close(PIDSDRIVER iface) { ++ IDsDriverImpl *This = (IDsDriverImpl *)iface; ++ TRACE("(%p) stub, harmless\n",This); ++ return DS_OK; ++} ++ ++static HRESULT WINAPI IDsDriverImpl_Open(PIDSDRIVER iface) { ++ IDsDriverImpl *This = (IDsDriverImpl *)iface; ++ TRACE("(%p) stub, harmless\n",This); ++ return S_OK; ++} ++ ++static HRESULT WINAPI IDsDriverImpl_GetCaps(PIDSDRIVER iface, PDSDRIVERCAPS pCaps) { ++ IDsDriverImpl *This = (IDsDriverImpl *)iface; ++ ++ if (pa_context_get_state(PULSE_context) != PA_CONTEXT_READY) { ++ ERR("Context failure.\n"); ++ return DSERR_GENERIC; ++ } ++ ++ TRACE("(%p,%p)\n",iface,pCaps); ++ *pCaps = WOutDev[This->wDevID].ds_caps; ++ return DS_OK; ++} ++ ++static HRESULT WINAPI IDsDriverImpl_DuplicateSoundBuffer(PIDSDRIVER iface, ++ PIDSDRIVERBUFFER pBuffer, ++ LPVOID *ppvObj) ++{ ++ IDsDriverImpl *This = (IDsDriverImpl *)iface; ++ FIXME("(%p,%p): stub\n",This,pBuffer); ++ return DSERR_INVALIDCALL; ++} ++ ++static const IDsDriverVtbl dsdvt = ++{ ++ IDsDriverImpl_QueryInterface, ++ IDsDriverImpl_AddRef, ++ IDsDriverImpl_Release, ++ IDsDriverImpl_GetDriverDesc, ++ IDsDriverImpl_Open, ++ IDsDriverImpl_Close, ++ IDsDriverImpl_GetCaps, ++ IDsDriverImpl_CreateSoundBuffer, ++ IDsDriverImpl_DuplicateSoundBuffer ++}; ++ ++DWORD wodDsCreate(UINT wDevID, PIDSDRIVER* drv) { ++ IDsDriverImpl** idrv = (IDsDriverImpl**)drv; ++ ++ if (pa_context_get_state(PULSE_context) != PA_CONTEXT_READY || pa_context_is_local(PULSE_context) != 1) { ++ WARN("Connection failure or server is not local, falling back to WaveOut HEL.\n"); ++ return MMSYSERR_NOTSUPPORTED; ++ } ++ ++ *idrv = HeapAlloc(GetProcessHeap(), 0, sizeof(IDsDriverImpl)); ++ if (!*idrv) ++ return MMSYSERR_NOMEM; ++ ++ TRACE("driver created\n"); ++ ++ (*idrv)->lpVtbl = &dsdvt; ++ (*idrv)->ref = 1; ++ (*idrv)->wDevID = wDevID; ++ (*idrv)->primary = NULL; ++ ++ return MMSYSERR_NOERROR; ++} ++ ++DWORD wodDsDesc(UINT wDevID, PDSDRIVERDESC desc) { ++ TRACE("(%u, %p)\n", wDevID, desc); ++ *desc = WOutDev[wDevID].ds_desc; ++ return MMSYSERR_NOERROR; ++} ++#endif /* HAVE_PULSEAUDIO */ +diff --git a/dlls/winepulse.drv/pulse.c b/dlls/winepulse.drv/pulse.c +new file mode 100644 +index 0000000..337814d +--- /dev/null ++++ b/dlls/winepulse.drv/pulse.c +@@ -0,0 +1,922 @@ ++/* ++ * Wine Driver for PulseAudio ++ * http://pulseaudio.org/ ++ * ++ * Copyright 2008 Arthur Taylor ++ * ++ * Contains code from other wine sound drivers. ++ * ++ * 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, write to the Free Software ++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA ++ */ ++ ++#include "config.h" ++ ++#include ++#include ++ ++#include "windef.h" ++#include "winbase.h" ++#include "wingdi.h" ++#include "winuser.h" ++#include "winreg.h" ++#include "mmddk.h" ++#include "ks.h" ++#include "ksguid.h" ++#include "ksmedia.h" ++ ++#ifdef HAVE_UNISTD_H ++# include ++#endif ++#include ++ ++#ifdef HAVE_PULSEAUDIO ++ ++#include "wine/unicode.h" ++#include "wine/debug.h" ++#include "wine/library.h" ++ ++#include ++#include ++WINE_DEFAULT_DEBUG_CHANNEL(wave); ++ ++/* ++ * - Need to subscribe to sink/source events and keep the WInDev and WOutDev ++ * structures updated ++ */ ++ ++/* These strings used only for tracing */ ++const char * PULSE_getCmdString(enum win_wm_message msg) { ++ static char unknown[32]; ++#define MSG_TO_STR(x) case x: return #x ++ switch(msg) { ++ MSG_TO_STR(WINE_WM_PAUSING); ++ MSG_TO_STR(WINE_WM_RESTARTING); ++ MSG_TO_STR(WINE_WM_RESETTING); ++ MSG_TO_STR(WINE_WM_HEADER); ++ MSG_TO_STR(WINE_WM_BREAKLOOP); ++ MSG_TO_STR(WINE_WM_CLOSING); ++ MSG_TO_STR(WINE_WM_STARTING); ++ MSG_TO_STR(WINE_WM_STOPPING); ++ MSG_TO_STR(WINE_WM_XRUN); ++ MSG_TO_STR(WINE_WM_FEED); ++ } ++#undef MSG_TO_STR ++ sprintf(unknown, "UNKNOWN(0x%08x)", msg); ++ return unknown; ++} ++ ++/*======================================================================* ++ * Ring Buffer Functions - copied from winealsa.drv * ++ *======================================================================*/ ++ ++/* unless someone makes a wineserver kernel module, Unix pipes are faster than win32 events */ ++#define USE_PIPE_SYNC ++ ++#ifdef USE_PIPE_SYNC ++#define INIT_OMR(omr) do { if (pipe(omr->msg_pipe) < 0) { omr->msg_pipe[0] = omr->msg_pipe[1] = -1; } } while (0) ++#define CLOSE_OMR(omr) do { close(omr->msg_pipe[0]); close(omr->msg_pipe[1]); } while (0) ++#define SIGNAL_OMR(omr) do { int x = 0; int foo; foo = write((omr)->msg_pipe[1], &x, sizeof(x)); } while (0) ++#define CLEAR_OMR(omr) do { int x = 0; int foo; foo = read((omr)->msg_pipe[0], &x, sizeof(x)); } while (0) ++#define RESET_OMR(omr) do { } while (0) ++#define WAIT_OMR(omr, sleep) \ ++ do { struct pollfd pfd; pfd.fd = (omr)->msg_pipe[0]; \ ++ pfd.events = POLLIN; poll(&pfd, 1, sleep); } while (0) ++#else ++#define INIT_OMR(omr) do { omr->msg_event = CreateEventW(NULL, FALSE, FALSE, NULL); } while (0) ++#define CLOSE_OMR(omr) do { CloseHandle(omr->msg_event); } while (0) ++#define SIGNAL_OMR(omr) do { SetEvent((omr)->msg_event); } while (0) ++#define CLEAR_OMR(omr) do { } while (0) ++#define RESET_OMR(omr) do { ResetEvent((omr)->msg_event); } while (0) ++#define WAIT_OMR(omr, sleep) \ ++ do { WaitForSingleObject((omr)->msg_event, sleep); } while (0) ++#endif ++ ++#define PULSE_RING_BUFFER_INCREMENT 64 ++ ++/****************************************************************** ++ * PULSE_InitRingMessage ++ * ++ * Initialize the ring of messages for passing between driver's caller ++ * and playback/record thread ++ */ ++int PULSE_InitRingMessage(PULSE_MSG_RING* omr) ++{ ++ omr->msg_toget = 0; ++ omr->msg_tosave = 0; ++ INIT_OMR(omr); ++ omr->ring_buffer_size = PULSE_RING_BUFFER_INCREMENT; ++ omr->messages = HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,omr->ring_buffer_size * sizeof(PULSE_MSG)); ++ ++ InitializeCriticalSection(&omr->msg_crst); ++ omr->msg_crst.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": PULSE_MSG_RING.msg_crst"); ++ return 0; ++} ++ ++/****************************************************************** ++ * PULSE_DestroyRingMessage ++ * ++ */ ++int PULSE_DestroyRingMessage(PULSE_MSG_RING* omr) ++{ ++ CLOSE_OMR(omr); ++ HeapFree(GetProcessHeap(),0,omr->messages); ++ omr->messages = NULL; ++ omr->ring_buffer_size = PULSE_RING_BUFFER_INCREMENT; ++ omr->msg_crst.DebugInfo->Spare[0] = 0; ++ DeleteCriticalSection(&omr->msg_crst); ++ return 0; ++} ++/****************************************************************** ++ * PULSE_ResetRingMessage ++ * ++ */ ++void PULSE_ResetRingMessage(PULSE_MSG_RING* omr) ++{ ++ RESET_OMR(omr); ++} ++ ++/****************************************************************** ++ * PULSE_WaitRingMessage ++ * ++ */ ++void PULSE_WaitRingMessage(PULSE_MSG_RING* omr, DWORD sleep) ++{ ++ WAIT_OMR(omr, sleep); ++} ++ ++/****************************************************************** ++ * PULSE_AddRingMessage ++ * ++ * Inserts a new message into the ring (should be called from DriverProc derived routines) ++ */ ++int PULSE_AddRingMessage(PULSE_MSG_RING* omr, enum win_wm_message msg, DWORD param, BOOL wait) ++{ ++ HANDLE hEvent = INVALID_HANDLE_VALUE; ++ ++ EnterCriticalSection(&omr->msg_crst); ++ if ((omr->msg_toget == ((omr->msg_tosave + 1) % omr->ring_buffer_size))) ++ { ++ int old_ring_buffer_size = omr->ring_buffer_size; ++ omr->ring_buffer_size += PULSE_RING_BUFFER_INCREMENT; ++ omr->messages = HeapReAlloc(GetProcessHeap(),0,omr->messages, omr->ring_buffer_size * sizeof(PULSE_MSG)); ++ /* Now we need to rearrange the ring buffer so that the new ++ buffers just allocated are in between omr->msg_tosave and ++ omr->msg_toget. ++ */ ++ if (omr->msg_tosave < omr->msg_toget) ++ { ++ memmove(&(omr->messages[omr->msg_toget + PULSE_RING_BUFFER_INCREMENT]), ++ &(omr->messages[omr->msg_toget]), ++ sizeof(PULSE_MSG)*(old_ring_buffer_size - omr->msg_toget) ++ ); ++ omr->msg_toget += PULSE_RING_BUFFER_INCREMENT; ++ } ++ } ++ if (wait) ++ { ++ hEvent = CreateEventW(NULL, FALSE, FALSE, NULL); ++ if (hEvent == INVALID_HANDLE_VALUE) ++ { ++ ERR("can't create event !?\n"); ++ LeaveCriticalSection(&omr->msg_crst); ++ return 0; ++ } ++ /* fast messages have to be added at the start of the queue */ ++ omr->msg_toget = (omr->msg_toget + omr->ring_buffer_size - 1) % omr->ring_buffer_size; ++ ++ omr->messages[omr->msg_toget].msg = msg; ++ omr->messages[omr->msg_toget].param = param; ++ omr->messages[omr->msg_toget].hEvent = hEvent; ++ } ++ else ++ { ++ omr->messages[omr->msg_tosave].msg = msg; ++ omr->messages[omr->msg_tosave].param = param; ++ omr->messages[omr->msg_tosave].hEvent = INVALID_HANDLE_VALUE; ++ omr->msg_tosave = (omr->msg_tosave + 1) % omr->ring_buffer_size; ++ } ++ LeaveCriticalSection(&omr->msg_crst); ++ /* signal a new message */ ++ SIGNAL_OMR(omr); ++ if (wait) ++ { ++ /* wait for playback/record thread to have processed the message */ ++ WaitForSingleObject(hEvent, INFINITE); ++ CloseHandle(hEvent); ++ } ++ return 1; ++} ++ ++/****************************************************************** ++ * PULSE_RetrieveRingMessage ++ * ++ * Get a message from the ring. Should be called by the playback/record thread. ++ */ ++int PULSE_RetrieveRingMessage(PULSE_MSG_RING* omr, ++ enum win_wm_message *msg, DWORD *param, HANDLE *hEvent) ++{ ++ EnterCriticalSection(&omr->msg_crst); ++ ++ if (omr->msg_toget == omr->msg_tosave) /* buffer empty ? */ ++ { ++ LeaveCriticalSection(&omr->msg_crst); ++ return 0; ++ } ++ ++ *msg = omr->messages[omr->msg_toget].msg; ++ omr->messages[omr->msg_toget].msg = 0; ++ *param = omr->messages[omr->msg_toget].param; ++ *hEvent = omr->messages[omr->msg_toget].hEvent; ++ omr->msg_toget = (omr->msg_toget + 1) % omr->ring_buffer_size; ++ CLEAR_OMR(omr); ++ LeaveCriticalSection(&omr->msg_crst); ++ return 1; ++} ++ ++/************************************************************************** ++ * Utility Functions ++ *************************************************************************/ ++ ++/****************************************************************** ++ * PULSE_SetupFormat ++ * ++ * Checks to see if the audio format in wf is supported, and if so set up the ++ * pa_sample_spec at ss to that format. ++ */ ++BOOL PULSE_SetupFormat(LPWAVEFORMATEX wf, pa_sample_spec *ss) { ++ WAVEFORMATEXTENSIBLE *wfex; ++ ++ ss->channels = wf->nChannels; ++ ss->rate = wf->nSamplesPerSec; ++ ss->format = PA_SAMPLE_INVALID; ++ ++ if (ss->rate < DSBFREQUENCY_MIN || ss->rate > DSBFREQUENCY_MAX) return FALSE; ++ ++ switch (wf->wFormatTag) { ++ case WAVE_FORMAT_PCM: ++ if (ss->channels > 2 || ss->channels < 1) return FALSE; ++ ss->format = wf->wBitsPerSample == 8 ? PA_SAMPLE_U8 ++ : wf->wBitsPerSample == 16 ? PA_SAMPLE_S16NE ++ : PA_SAMPLE_INVALID; ++ break; ++ ++ case WAVE_FORMAT_MULAW: ++ if (wf->wBitsPerSample == 8) ss->format = PA_SAMPLE_ULAW; ++ break; ++ ++ case WAVE_FORMAT_ALAW: ++ if (wf->wBitsPerSample == 8) ss->format = PA_SAMPLE_ALAW; ++ break; ++ ++ case WAVE_FORMAT_EXTENSIBLE: ++ if (wf->cbSize > 22) return FALSE; ++ if (ss->channels < 1 || ss->channels > 6) return FALSE; ++ wfex = (WAVEFORMATEXTENSIBLE *)wf; ++ if (IsEqualGUID(&wfex->SubFormat, &KSDATAFORMAT_SUBTYPE_PCM)) { ++ if (wf->wBitsPerSample == wfex->Samples.wValidBitsPerSample) { ++ ss->format = wf->wBitsPerSample == 8 ? PA_SAMPLE_U8 ++ : wf->wBitsPerSample == 16 ? PA_SAMPLE_S16NE ++#if PA_PROTOCOL_VERSION >= 15 ++ : wf->wBitsPerSample == 24 ? PA_SAMPLE_S24NE ++#endif ++ : wf->wBitsPerSample == 32 ? PA_SAMPLE_S32NE ++ : PA_SAMPLE_INVALID; ++ } else { ++#if PA_PROTOCOL_VERSION >= 15 ++ if (wf->wBitsPerSample == 32 && wfex->Samples.wValidBitsPerSample == 24) ++ ss->format = PA_SAMPLE_S24_32NE; ++ else ++#endif ++ return FALSE; ++ } ++ } else if (wf->wBitsPerSample != wfex->Samples.wValidBitsPerSample) { ++ return FALSE; ++ } else if ((IsEqualGUID(&wfex->SubFormat, &KSDATAFORMAT_SUBTYPE_IEEE_FLOAT))) { ++ ss->format = PA_SAMPLE_FLOAT32NE; ++ } else { ++ WARN("only KSDATAFORMAT_SUBTYPE_PCM and KSDATAFORMAT_SUBTYPE_IEEE_FLOAT of WAVE_FORMAT_EXTENSIBLE supported\n"); ++ return FALSE; ++ } ++ break; ++ ++ default: ++ WARN("only WAVE_FORMAT_PCM, WAVE_FORMAT_MULAW, WAVE_FORMAT_ALAW and WAVE_FORMAT_EXTENSIBLE supported\n"); ++ return FALSE; ++ } ++ ++ if (!pa_sample_spec_valid(ss)) return FALSE; ++ if (wf->nBlockAlign != pa_frame_size(ss)) { ++ ERR("wf->nBlockAlign != the format frame size!\n"); ++ return FALSE; ++ } ++ ++ return TRUE; ++} ++ ++/************************************************************************** ++ * PULSE_GetMMTime [internal] ++ */ ++void PULSE_GetMMTime(const pa_timing_info *t, pa_sample_spec *s, size_t last_reset, LPMMTIME lpTime) { ++ pa_usec_t time, time_temp; ++ size_t bytes, bytes_temp; ++ ++ /* If this is a recording stream we want the write_index and not the read index */ ++ if (last_reset == (size_t) -1) { ++ bytes = t->write_index; ++ last_reset = 0; ++ } else { ++ bytes = t->read_index; ++ if (last_reset > bytes) ++ last_reset = 0; ++ } ++ time = pa_bytes_to_usec(bytes, s); ++ time += pa_timeval_age(&t->timestamp); ++ ++ if (t->playing) { ++ bytes += ((pa_timeval_age(&t->timestamp) / 1000) * pa_bytes_per_second(s)) / 1000; ++ bytes_temp = (time_temp = t->sink_usec + t->transport_usec)/1000 * pa_bytes_per_second(s)/1000; ++ } else { ++ time = 0; ++ time_temp = 0; ++ bytes_temp = 0; ++ } ++ ++ time -= pa_bytes_to_usec(last_reset, s); ++ bytes -= last_reset; ++ if (bytes > bytes_temp) ++ bytes -= bytes_temp; ++ else ++ bytes = 0; ++ ++ if (time > time_temp) ++ time -= time_temp; ++ else ++ time = 0; ++ ++ bytes -= bytes % pa_frame_size(s); ++ time /= 1000; /* In milliseconds now */ ++ ++ switch (lpTime->wType) { ++ case TIME_SAMPLES: ++ lpTime->u.sample = bytes / pa_frame_size(s); ++ TRACE("TIME_SAMPLES=%u\n", lpTime->u.sample); ++ break; ++ case TIME_MS: ++ lpTime->u.ms = time; ++ TRACE("TIME_MS=%u\n", lpTime->u.ms); ++ break; ++ case TIME_SMPTE: ++ lpTime->u.smpte.fps = 30; ++ lpTime->u.smpte.sec = time/1000; ++ lpTime->u.smpte.min = lpTime->u.smpte.sec / 60; ++ lpTime->u.smpte.sec -= 60 * lpTime->u.smpte.min; ++ lpTime->u.smpte.hour = lpTime->u.smpte.min / 60; ++ lpTime->u.smpte.min -= 60 * lpTime->u.smpte.hour; ++ lpTime->u.smpte.frame = time / lpTime->u.smpte.fps * 1000; ++ TRACE("TIME_SMPTE=%02u:%02u:%02u:%02u\n", ++ lpTime->u.smpte.hour, lpTime->u.smpte.min, ++ lpTime->u.smpte.sec, lpTime->u.smpte.frame); ++ break; ++ default: ++ WARN("Format %d not supported, using TIME_BYTES !\n", lpTime->wType); ++ lpTime->wType = TIME_BYTES; ++ /* fall through */ ++ case TIME_BYTES: ++ lpTime->u.cb = bytes; ++ TRACE("TIME_BYTES=%u\n", lpTime->u.cb); ++ break; ++ } ++} ++ ++/************************************************************************** ++ * PULSE_WaitForOperation ++ * ++ * Waits for pa operations to complete, and dereferences the operation. ++ */ ++void PULSE_WaitForOperation(pa_operation *o) { ++ if (!o) return; ++ ++ for (;;) { ++ if (pa_operation_get_state(o) != PA_OPERATION_RUNNING) ++ break; ++ pa_threaded_mainloop_wait(PULSE_ml); ++ } ++ pa_operation_unref(o); ++} ++ ++/************************************************************************** ++ * Common Callbacks ++ */ ++ ++/************************************************************************** ++ * PULSE_StreamRequestCallback ++ * ++ * Called by the pulse mainloop whenever it wants or has audio data. ++ */ ++void PULSE_StreamRequestCallback(pa_stream *s, size_t nbytes, void *userdata) { ++ WINE_WAVEINST *ww = (WINE_WAVEINST*)userdata; ++ assert(s && ww); ++ ++ TRACE("Asking to feed/be fed %u bytes\n", nbytes); ++ ++ /* Make sure that the player/recorder is running */ ++ if (ww->hThread != INVALID_HANDLE_VALUE && ww->msgRing.messages) { ++ PULSE_AddRingMessage(&ww->msgRing, WINE_WM_FEED, (DWORD)nbytes, FALSE); ++ } ++} ++/************************************************************************** ++ * PULSE_StreamSuspendedCallback [internal] ++ * ++ * Called by the pulse mainloop any time stream playback is intentionally ++ * suspended or resumed from being suspended. ++ */ ++void PULSE_StreamSuspendedCallback(pa_stream *s, void *userdata) { ++ WINE_WAVEINST *wwo = (WINE_WAVEINST*)userdata; ++ assert(s && wwo); ++ ++ /* Currently we handle this kinda like an underrun. Perhaps we should ++ * tell the client somehow so it doesn't just hang? */ ++ ++ if (!pa_stream_is_suspended(s) && wwo->hThread != INVALID_HANDLE_VALUE && wwo->msgRing.ring_buffer_size > 0) ++ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_XRUN, 0, FALSE); ++} ++ ++/************************************************************************** ++ * PULSE_StreamUnderflowCallback [internal] ++ * ++ * Called by the pulse mainloop when the prebuf runs out of data. ++ */ ++void PULSE_StreamUnderflowCallback(pa_stream *s, void *userdata) { ++ WINE_WAVEINST *wwo = (WINE_WAVEINST*)userdata; ++ assert(s && wwo); ++ ++ /* If we aren't playing, don't care ^_^ */ ++ if (wwo->state != WINE_WS_PLAYING) return; ++ ++ TRACE("Underrun occurred.\n"); ++ ++ if (wwo->hThread != INVALID_HANDLE_VALUE && wwo->msgRing.ring_buffer_size > 0); ++ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_XRUN, 0, FALSE); ++} ++ ++/************************************************************************** ++ * PULSE_StreamOverflowCallback [internal] ++ * ++ * Called by the pulse mainloop when the write buffer was overflowed and data ++ * was lost. ++ */ ++void PULSE_StreamOverflowCallback(pa_stream *s, void *userdata) { ++ WINE_WAVEINST *wwo = (WINE_WAVEINST*)userdata; ++ assert(s && wwo); ++ ++ ERR("Overflow occurred!?!\n"); ++ ++ if (wwo->hThread != INVALID_HANDLE_VALUE && wwo->msgRing.ring_buffer_size > 0); ++ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_XRUN, 1, FALSE); ++} ++ ++/************************************************************************** ++ * PULSE_StreamMovedCallback [internal] ++ * ++ * Called by the pulse mainloop when the stream gets moved, resulting in ++ * possibly different metrics. ++ */ ++void PULSE_StreamMovedCallback(pa_stream *s, void *userdata) { ++ FIXME("stub"); ++} ++ ++ ++/****************************************************************** ++ * PULSE_StreamStateCallback ++ * ++ * Called by pulse whenever the state of the stream changes. ++ * ++ * void *userdata is either the dsound or wave instance ++ */ ++void PULSE_StreamStateCallback(pa_stream *s, void *userdata) { ++ assert(s); ++ ++ switch (pa_stream_get_state(s)) { ++ case PA_STREAM_READY: ++ TRACE("Stream %p ready\n", userdata); ++ break; ++ ++ case PA_STREAM_TERMINATED: ++ TRACE("Stream %p terminated\n", userdata); ++ break; ++ ++ case PA_STREAM_FAILED: ++ ERR("Stream %p failed!\n", userdata); ++ break; ++ ++ case PA_STREAM_UNCONNECTED: ++ case PA_STREAM_CREATING: ++ return; ++ } ++ pa_threaded_mainloop_signal(PULSE_ml, 0); ++} ++ ++/************************************************************************** ++ * PULSE_StreamSucessCallback ++ */ ++void PULSE_StreamSuccessCallback(pa_stream *s, int success, void *userdata) { ++ if (!success) ++ WARN("Stream %p operation failed: %s\n", userdata, pa_strerror(pa_context_errno(PULSE_context))); ++ ++ pa_threaded_mainloop_signal(PULSE_ml, 0); ++} ++ ++/************************************************************************** ++ * PULSE_ContextSuccessCallback ++ */ ++void PULSE_ContextSuccessCallback(pa_context *c, int success, void *userdata) { ++ if (!success) ERR("Context operation failed: %s\n", pa_strerror(pa_context_errno(c))); ++ pa_threaded_mainloop_signal(PULSE_ml, 0); ++} ++ ++/************************************************************************** ++ * Connection management and sink / source management. ++ */ ++ ++/************************************************************************** ++ * PULSE_ContextStateCallback [internal] ++ */ ++static void PULSE_ContextStateCallback(pa_context *c, void *userdata) { ++ assert(c); ++ ++ switch (pa_context_get_state(c)) { ++ case PA_CONTEXT_CONNECTING: ++ case PA_CONTEXT_AUTHORIZING: ++ case PA_CONTEXT_SETTING_NAME: ++ break; ++ ++ case PA_CONTEXT_READY: ++ case PA_CONTEXT_TERMINATED: ++ pa_threaded_mainloop_signal(PULSE_ml, 0); ++ break; ++ ++ case PA_CONTEXT_FAILED: ++ default: ++ ERR("Context failure: %s\n", pa_strerror(pa_context_errno(c))); ++ pa_threaded_mainloop_signal(PULSE_ml, 0); ++ } ++} ++ ++/************************************************************************** ++ * PULSE_SourceInfoCallback [internal] ++ * ++ * Creates or adds a device to WInDev based on the pa_source_info. ++ */ ++ ++static void PULSE_SourceInfoCallback(pa_context *c, const pa_source_info *i, int eol, void *userdata) { ++ DWORD *allocated = (DWORD*)userdata; ++ WINE_WAVEDEV *wdi; ++ ++ if (eol || !i) { ++ pa_threaded_mainloop_signal(PULSE_ml, 0); ++ return; ++ } ++ ++ if (WInDev) ++ wdi = HeapReAlloc(GetProcessHeap(), 0, WInDev, sizeof(WINE_WAVEDEV) * (*allocated + 1)); ++ else ++ wdi = HeapAlloc(GetProcessHeap(), 0, sizeof(WINE_WAVEDEV)); ++ ++ if (!wdi) return; ++ ++ WInDev = wdi; ++ wdi = &WInDev[(*allocated)++]; ++ memset(wdi, 0, sizeof(WINE_WAVEDEV)); ++ memset(&(wdi->caps.in), 0, sizeof(wdi->caps.in)); ++ ++ wdi->device_name = pa_xstrdup(i->name); ++ strcpy(wdi->interface_name, "winepulse: "); ++ memcpy(wdi->interface_name + strlen(wdi->interface_name), ++ i->name, min(strlen(i->name), sizeof(wdi->interface_name) - strlen("winepulse: "))); ++ MultiByteToWideChar(CP_ACP, 0, i->description, -1, wdi->caps.in.szPname, sizeof(wdi->caps.in.szPname)/sizeof(WCHAR)); ++ wdi->caps.in.szPname[sizeof(wdi->caps.in.szPname)/sizeof(WCHAR) - 1] = '\0'; ++ wdi->caps.in.wMid = MM_CREATIVE; ++ wdi->caps.in.wPid = MM_CREATIVE_SBP16_WAVEOUT; ++ wdi->caps.in.vDriverVersion = 0x0100; ++ wdi->caps.in.wChannels = i->sample_spec.channels == 1 ? 1 : 2; ++ wdi->caps.in.dwFormats = PULSE_ALL_FORMATS; ++ pa_threaded_mainloop_signal(PULSE_ml, 0); ++} ++ ++/************************************************************************** ++ * PULSE_SinkInfoCallback [internal] ++ * ++ * Creates or adds a sink to the WOutDev array. ++ */ ++static void PULSE_SinkInfoCallback(pa_context *c, const pa_sink_info *i, int eol, void *userdata) { ++ DWORD *allocated = (DWORD*)userdata; ++ WINE_WAVEDEV *wdo; ++ int x; ++ ++ if (eol || !i) { ++ pa_threaded_mainloop_signal(PULSE_ml, 0); ++ return; ++ } ++ ++ if (WOutDev) ++ wdo = HeapReAlloc(GetProcessHeap(), 0, WOutDev, sizeof(WINE_WAVEDEV) * (*allocated + 1)); ++ else ++ wdo = HeapAlloc(GetProcessHeap(), 0, sizeof(WINE_WAVEDEV)); ++ ++ if (!wdo) return; ++ ++ WOutDev = wdo; ++ wdo = &WOutDev[(*allocated)++]; ++ memset(wdo, 0, sizeof(WINE_WAVEDEV)); ++ ++ wdo->device_name = pa_xstrdup(i->name); ++ wdo->volume.channels = i->volume.channels; ++ for (x = 0; x < i->volume.channels; x++) wdo->volume.values[x] = i->volume.values[x]; ++ strcpy(wdo->interface_name, "winepulse: "); ++ memcpy(wdo->interface_name + strlen(wdo->interface_name), ++ i->name, min(strlen(i->name), ++ sizeof(wdo->interface_name) - strlen("winepulse: "))); ++ MultiByteToWideChar(CP_ACP, 0, i->description, -1, wdo->caps.out.szPname, sizeof(wdo->caps.out.szPname)/sizeof(WCHAR)); ++ wdo->caps.out.szPname[sizeof(wdo->caps.out.szPname)/sizeof(WCHAR) - 1] = '\0'; ++ wdo->caps.out.wMid = MM_CREATIVE; ++ wdo->caps.out.wPid = MM_CREATIVE_SBP16_WAVEOUT; ++ wdo->caps.out.vDriverVersion = 0x0100; ++ wdo->caps.out.dwSupport = WAVECAPS_VOLUME | WAVECAPS_SAMPLEACCURATE; ++ if (i->sample_spec.channels == 2) { ++ wdo->caps.out.wChannels = 2; ++ wdo->caps.out.dwSupport |= WAVECAPS_LRVOLUME; ++ } else ++ wdo->caps.out.wChannels = i->sample_spec.channels == 1 ? 1 : 2; ++ wdo->caps.out.dwFormats = PULSE_ALL_FORMATS; ++ memset(&wdo->ds_desc, 0, sizeof(DSDRIVERDESC)); ++ memcpy(wdo->ds_desc.szDesc, i->description, min(sizeof(wdo->ds_desc.szDesc) - 1, strlen(i->description))); ++ strcpy(wdo->ds_desc.szDrvname, "winepulse.drv"); ++ wdo->ds_caps.dwMinSecondarySampleRate = DSBFREQUENCY_MIN; ++ wdo->ds_caps.dwMaxSecondarySampleRate = DSBFREQUENCY_MAX; ++ wdo->ds_caps.dwPrimaryBuffers = 1; ++ ++ pa_threaded_mainloop_signal(PULSE_ml, 0); ++} ++ ++/************************************************************************** ++ * PULSE_UpdateWavedevs [internal] ++ * ++ * Calls PULSE_add_output_device to add the sink to the list of devices ++ */ ++BOOL PULSE_UpdateWavedevs(int devices) { ++ WINE_WAVEDEV *old_devs; ++ DWORD old_numdevs; ++ DWORD rc; ++ HKEY key; ++ BOOL show_monitor_sources = TRUE; ++ ++ rc = RegOpenKeyExA(HKEY_CURRENT_USER, "Software\\Wine\\Pulse Driver", 0, KEY_QUERY_VALUE, &key); ++ if (rc == ERROR_SUCCESS) { ++ DWORD type; ++ DWORD bufsize; ++ char *bufp; ++ ++ rc = RegQueryValueExA(key, "MonitorDevices", NULL, &type, NULL, &bufsize); ++ if (rc == ERROR_SUCCESS || type == REG_SZ) { ++ bufp = HeapAlloc(GetProcessHeap(), 0, bufsize); ++ if (bufp) { ++ rc = RegQueryValueExA(key, "MonitorDevices", NULL, NULL, (LPBYTE)bufp, &bufsize); ++ if (rc == ERROR_SUCCESS && ( ++ *bufp == 'n' || *bufp == 'N' || ++ *bufp == 'f' || *bufp == 'F' || ++ *bufp == 'd' || *bufp == 'D' || ++ *bufp == '0')) ++ show_monitor_sources = FALSE; ++ HeapFree(GetProcessHeap(), 0, bufp); ++ } ++ } ++ } ++ if (key) ++ RegCloseKey(key); ++ ++ pa_threaded_mainloop_lock(PULSE_ml); ++ if (devices & PULSE_OUT_DEVS) { ++ old_devs = WOutDev; ++ old_numdevs = PULSE_WodNumDevs; ++ WOutDev = NULL; ++ PULSE_WodNumDevs = 0; ++ ++ /* Ask for all the sinks and create objects in the WOutDev array */ ++ PULSE_WaitForOperation(pa_context_get_sink_info_list(PULSE_context, PULSE_SinkInfoCallback, &PULSE_WodNumDevs)); ++ if (PULSE_WodNumDevs) { ++ if (old_devs) ++ HeapFree(GetProcessHeap(), 0, old_devs); ++ TRACE("Allocated %i output device%s.\n", PULSE_WodNumDevs, PULSE_WodNumDevs > 1 ? "s" : ""); ++ } else { ++ WARN("Didn't seem to find any waveout devices upon update, not updating!\n"); ++ if (WOutDev) ++ HeapFree(GetProcessHeap(), 0, WOutDev); ++ WOutDev = old_devs; ++ PULSE_WodNumDevs = old_numdevs; ++ } ++ } ++ ++ if (devices & PULSE_IN_DEVS) { ++ old_devs = WInDev; ++ old_numdevs = PULSE_WidNumDevs; ++ WInDev = NULL; ++ PULSE_WidNumDevs = 0; ++ ++ /* Ask for all the sources and create objects in the WOutDev array */ ++ PULSE_WaitForOperation(pa_context_get_source_info_list(PULSE_context, PULSE_SourceInfoCallback, &PULSE_WidNumDevs)); ++ if (PULSE_WidNumDevs) { ++ if (old_devs) ++ HeapFree(GetProcessHeap(), 0, old_devs); ++ TRACE("Allocated %i input device%s.\n", PULSE_WidNumDevs, PULSE_WidNumDevs > 1 ? "s" : ""); ++ } else { ++ WARN("Didn't seem to find any wavein devices upon update, not updating!\n"); ++ if (WInDev) ++ HeapFree(GetProcessHeap(), 0, WInDev); ++ WInDev = old_devs; ++ PULSE_WidNumDevs = old_numdevs; ++ } ++ ++ /* Swap around the devices so monitor streams come last. */ ++ { ++ int x; ++ int count = 0; ++ WINE_WAVEDEV tmp[PULSE_WidNumDevs]; ++ ++ memcpy(tmp, WInDev, sizeof(WINE_WAVEDEV) * PULSE_WidNumDevs); ++ for (x = 0; x < PULSE_WidNumDevs; x++) { ++ if (!strstr(tmp[x].device_name, ".monitor")) { ++ memcpy(&WInDev[count++], &tmp[x], sizeof(WINE_WAVEDEV)); ++ } ++ } ++ if (show_monitor_sources) { ++ for (x = 0; x < PULSE_WidNumDevs; x++) { ++ if (strstr(tmp[x].device_name, ".monitor")) { ++ memcpy(&WInDev[count++], &tmp[x], sizeof(WINE_WAVEDEV)); ++ } ++ } ++ } ++ if (PULSE_WidNumDevs != count) { ++ TRACE("Removed monitors sources, now have %u input devices.\n", count); ++ WInDev = HeapReAlloc(GetProcessHeap(), 0, WInDev, sizeof(WINE_WAVEDEV) * count); ++ PULSE_WidNumDevs = count; ++ } ++ } ++ } ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ ++ return TRUE; ++} ++ ++static void PULSE_ContextNotifyCallback(pa_context *c, void *userdata) { ++ pa_threaded_mainloop_signal(PULSE_ml, 0); ++} ++ ++/************************************************************************** ++ * PULSE_WaveClose [internal] ++ * ++ * Disconnect from the server, deallocated the WaveIn/WaveOut devices, stop and ++ * free the mainloop. ++ */ ++ ++static LONG PULSE_WaveClose(void) { ++ TRACE("()\n"); ++ if (!PULSE_ml) return 1; ++ ++ pa_threaded_mainloop_lock(PULSE_ml); ++ HeapFree(GetProcessHeap(), 0, WOutDev); ++ HeapFree(GetProcessHeap(), 0, WInDev); ++ if (PULSE_context) { ++ PULSE_WaitForOperation(pa_context_drain(PULSE_context, PULSE_ContextNotifyCallback, NULL)); ++ pa_context_disconnect(PULSE_context); ++ pa_context_unref(PULSE_context); ++ PULSE_context = NULL; ++ } ++ ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ pa_threaded_mainloop_stop(PULSE_ml); ++ pa_threaded_mainloop_free(PULSE_ml); ++ PULSE_ml = NULL; ++ ++ return DRV_SUCCESS; ++} ++ ++/************************************************************************** ++ * PULSE_WaveInit [internal] ++ * ++ * Connects to the pulseaudio server, tries to discover sinks and sources and ++ * allocates the WaveIn/WaveOut devices. ++ */ ++static LONG PULSE_WaveInit(void) { ++ char *app_name; ++ char path[PATH_MAX]; ++ char *offset = NULL; ++ int x = 0; ++ ++ WOutDev = NULL; ++ WInDev = NULL; ++ PULSE_WodNumDevs = 0; ++ PULSE_WidNumDevs = 0; ++ PULSE_context = NULL; ++ PULSE_ml = NULL; ++ ++ if (!(PULSE_ml = pa_threaded_mainloop_new())) { ++ WARN("Failed to create mainloop object."); ++ return -1; ++ } ++ ++ /* Application name giving to pulse should be unique to the binary so that ++ * pulse-*-restore can be useful */ ++ ++ /* Get binary path, and remove path a-la strrchr */ ++ if (GetModuleFileNameA(NULL, path, PATH_MAX)) ++ for (offset = path; *offset; offset++) ++ if (*offset == '\\') x = offset - path + 1; ++ ++ if (offset || path[x]) { ++ app_name = pa_xmalloc(strlen(path + x) + 8); ++ snprintf(app_name, strlen(path + x) + 8, "WINE [%s]", path + x); ++ } else ++ app_name = pa_xstrdup("WINE Application"); ++ ++ TRACE("App name is \"%s\"\n", app_name); ++ ++ pa_threaded_mainloop_start(PULSE_ml); ++ PULSE_context = pa_context_new(pa_threaded_mainloop_get_api(PULSE_ml), app_name); ++ assert(PULSE_context); ++ pa_xfree(app_name); ++ ++ pa_context_set_state_callback(PULSE_context, PULSE_ContextStateCallback, NULL); ++ ++ pa_threaded_mainloop_lock(PULSE_ml); ++ ++ TRACE("libpulse protocol version: %u.\n", pa_context_get_protocol_version(PULSE_context)); ++ TRACE("Attempting to connect to pulseaudio server.\n"); ++ if (pa_context_connect(PULSE_context, NULL, 0, NULL) < 0) ++ goto fail; ++ ++ /* Wait for connection */ ++ for (;;) { ++ pa_context_state_t state = pa_context_get_state(PULSE_context); ++ ++ if (state == PA_CONTEXT_FAILED || state == PA_CONTEXT_TERMINATED) ++ goto fail; ++ ++ if (state == PA_CONTEXT_READY) ++ break; ++ ++ pa_threaded_mainloop_wait(PULSE_ml); ++ } ++ ++ x = pa_context_get_server_protocol_version(PULSE_context); ++ TRACE("Connected to server %s with protocol version: %i.\n", pa_context_get_server(PULSE_context), x); ++ if (x < 14) ++ WARN("Server is old, expect poor latency or bugginess!\n"); ++ ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ ++ return DRV_SUCCESS; ++ ++fail: ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ ERR("Failed to connect to server\n"); ++ return DRV_FAILURE; ++} ++ ++#endif /* HAVE_PULSEAUDIO */ ++ ++/************************************************************************** ++ * DriverProc (WINEPULSE.@) ++ */ ++LRESULT CALLBACK PULSE_DriverProc(DWORD_PTR dwDevID, HDRVR hDriv, UINT wMsg, ++ LPARAM dwParam1, LPARAM dwParam2) { ++ ++ switch(wMsg) { ++#ifdef HAVE_PULSEAUDIO ++ case DRV_LOAD: PULSE_WaveInit(); ++ return 1; ++ case DRV_FREE: return PULSE_WaveClose(); ++ case DRV_OPEN: return 1; ++ case DRV_CLOSE: return 1; ++ case DRV_ENABLE: return 1; ++ case DRV_DISABLE: return 1; ++ case DRV_QUERYCONFIGURE: return 1; ++ case DRV_CONFIGURE: MessageBoxA(0, "PulseAudio MultiMedia Driver !", "PulseAudio Driver", MB_OK); return 1; ++ case DRV_INSTALL: return DRVCNF_RESTART; ++ case DRV_REMOVE: return DRVCNF_RESTART; ++#endif ++ default: ++ return DefDriverProc(dwDevID, hDriv, wMsg, dwParam1, dwParam2); ++ } ++} +diff --git a/dlls/winepulse.drv/wavein.c b/dlls/winepulse.drv/wavein.c +new file mode 100644 +index 0000000..7024ccd +--- /dev/null ++++ b/dlls/winepulse.drv/wavein.c +@@ -0,0 +1,555 @@ ++/* ++ * Wine Driver for PulseAudio - WaveIn Functionality ++ * http://pulseaudio.org/ ++ * ++ * Copyright 2009 Arthur Taylor ++ * ++ * Contains code from other wine multimedia drivers. ++ * ++ * 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, write to the Free Software ++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA ++ */ ++ ++#include "config.h" ++ ++#include ++ ++#include "windef.h" ++#include "winbase.h" ++#include "wingdi.h" ++#include "winuser.h" ++#include "winnls.h" ++#include "mmddk.h" ++ ++#include ++ ++#include "wine/debug.h" ++ ++WINE_DEFAULT_DEBUG_CHANNEL(wave); ++ ++#if HAVE_PULSEAUDIO ++ ++/*======================================================================* ++ * WAVE IN specific PulseAudio Callbacks * ++ *======================================================================*/ ++ ++/************************************************************************** ++* widNotifyClient [internal] ++*/ ++static DWORD widNotifyClient(WINE_WAVEINST* wwi, WORD wMsg, DWORD dwParam1, DWORD dwParam2) { ++ TRACE("wMsg = 0x%04x dwParm1 = %04X dwParam2 = %04X\n", wMsg, dwParam1, dwParam2); ++ ++ switch (wMsg) { ++ case WIM_OPEN: ++ case WIM_CLOSE: ++ case WIM_DATA: ++ if (wwi->wFlags != DCB_NULL && ++ !DriverCallback(wwi->waveDesc.dwCallback, wwi->wFlags, (HDRVR)wwi->waveDesc.hWave, ++ wMsg, wwi->waveDesc.dwInstance, dwParam1, dwParam2)) { ++ WARN("can't notify client !\n"); ++ return MMSYSERR_ERROR; ++ } ++ break; ++ default: ++ FIXME("Unknown callback message %u\n", wMsg); ++ return MMSYSERR_INVALPARAM; ++ } ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * widRecorder_CopyData [internal] ++ * ++ * Copys data from the fragments pulse returns to queued buffers. ++ */ ++static void widRecorder_CopyData(WINE_WAVEINST *wwi) { ++ LPWAVEHDR lpWaveHdr = wwi->lpQueuePtr; ++ size_t size; ++ while (lpWaveHdr && wwi->state == WINE_WS_PLAYING && wwi->buffer) { ++ size = min(wwi->buffer_length - wwi->buffer_read_offset, lpWaveHdr->dwBufferLength - lpWaveHdr->dwBytesRecorded); ++ if (size == 0) { ERR("Size is 0! buffer is full but not freed?\n"); continue; } ++ memcpy(lpWaveHdr->lpData + lpWaveHdr->dwBytesRecorded, (PBYTE)wwi->buffer + wwi->buffer_read_offset, size); ++ wwi->buffer_read_offset += size; ++ if (wwi->buffer_read_offset == wwi->buffer_length) { ++ pa_stream_drop(wwi->stream); ++ wwi->buffer = NULL; ++ wwi->buffer_length = 0; ++ wwi->buffer_read_offset = 0; ++ } ++ lpWaveHdr->dwBytesRecorded += size; ++ if (lpWaveHdr->dwBytesRecorded == lpWaveHdr->dwBufferLength) { ++ wwi->lpQueuePtr = lpWaveHdr->lpNext; ++ lpWaveHdr->dwFlags &= ~WHDR_INQUEUE; ++ lpWaveHdr->dwFlags |= WHDR_DONE; ++ widNotifyClient(wwi, WIM_DATA, (DWORD)lpWaveHdr, 0); ++ lpWaveHdr = wwi->lpQueuePtr; ++ } ++ } ++} ++ ++/************************************************************************** ++* widRecorder_NextFragment [internal] ++* ++* Switches the current fragment to the next based upon a message from the ++* server. ++*/ ++static void widRecorder_NextFragment(WINE_WAVEINST *wwi, size_t size) { ++ widRecorder_CopyData(wwi); ++ if (wwi->buffer) { ++ if (wwi->buffer_read_offset != wwi->buffer_length) ++ ERR("We didn't read all of the data, there will be gaps. FO:%u, FS: %u\n", wwi->buffer_read_offset, wwi->buffer_length); ++ pa_stream_drop(wwi->stream); ++ wwi->buffer = NULL; ++ wwi->buffer_length = 0; ++ wwi->buffer_read_offset = 0; ++ } ++ pa_stream_peek(wwi->stream, &wwi->buffer, &size); ++ wwi->buffer_length = size; ++ wwi->buffer_read_offset = 0; ++} ++ ++/************************************************************************** ++ * widRecorder [internal] ++ */ ++static DWORD CALLBACK widRecorder(LPVOID lpParam) { ++ WINE_WAVEINST *wwi = (WINE_WAVEINST*)lpParam; ++ LPWAVEHDR lpWaveHdr; ++ enum win_wm_message msg; ++ DWORD param; ++ HANDLE ev; ++ ++ wwi->state = WINE_WS_STOPPED; ++ SetEvent(wwi->hStartUpEvent); ++ ++ for (;;) { ++ PULSE_WaitRingMessage(&wwi->msgRing, INFINITE); ++ while (PULSE_RetrieveRingMessage(&wwi->msgRing, &msg, ¶m, &ev)) { ++ TRACE("Received %s %x\n", PULSE_getCmdString(msg), param); ++ ++ switch (msg) { ++ case WINE_WM_FEED: ++ SetEvent(ev); ++ if (wwi->state == WINE_WS_PLAYING) ++ widRecorder_NextFragment(wwi, param); ++ else ++ (pa_stream_drop(wwi->stream)); ++ break; ++ case WINE_WM_STARTING: ++ wwi->state = WINE_WS_PLAYING; ++ PULSE_WaitForOperation(pa_stream_cork(wwi->stream, 0, PULSE_StreamSuccessCallback, NULL)); ++ SetEvent(ev); ++ break; ++ case WINE_WM_HEADER: ++ lpWaveHdr = (LPWAVEHDR)param; ++ lpWaveHdr->lpNext = 0; ++ ++ /* insert buffer at the end of queue */ ++ { ++ LPWAVEHDR* wh; ++ for (wh = &(wwi->lpQueuePtr); *wh; wh = &((*wh)->lpNext)); ++ *wh = lpWaveHdr; ++ } ++ break; ++ case WINE_WM_STOPPING: ++ if (wwi->state != WINE_WS_STOPPED) { ++ PULSE_WaitForOperation(pa_stream_cork(wwi->stream, 1, PULSE_StreamSuccessCallback, NULL)); ++ pa_stream_drop(wwi->stream); ++ ++ /* return current buffer to app */ ++ lpWaveHdr = wwi->lpQueuePtr; ++ if (lpWaveHdr) { ++ LPWAVEHDR lpNext = lpWaveHdr->lpNext; ++ TRACE("stop %p %p\n", lpWaveHdr, lpWaveHdr->lpNext); ++ lpWaveHdr->dwFlags &= ~WHDR_INQUEUE; ++ lpWaveHdr->dwFlags |= WHDR_DONE; ++ wwi->lpQueuePtr = lpNext; ++ widNotifyClient(wwi, WIM_DATA, (DWORD)lpWaveHdr, 0); ++ } ++ } ++ wwi->state = WINE_WS_STOPPED; ++ SetEvent(ev); ++ break; ++ case WINE_WM_RESETTING: ++ if (wwi->state != WINE_WS_STOPPED) ++ pa_stream_drop(wwi->stream); ++ wwi->state = WINE_WS_STOPPED; ++ ++ /* return all buffers to the app */ ++ for (lpWaveHdr = wwi->lpQueuePtr; lpWaveHdr; lpWaveHdr = lpWaveHdr->lpNext) { ++ TRACE("reset %p %p\n", lpWaveHdr, lpWaveHdr->lpNext); ++ lpWaveHdr->dwFlags &= ~WHDR_INQUEUE; ++ lpWaveHdr->dwFlags |= WHDR_DONE; ++ wwi->lpQueuePtr = lpWaveHdr->lpNext; ++ widNotifyClient(wwi, WIM_DATA, (DWORD)lpWaveHdr, 0); ++ } ++ ++ wwi->lpQueuePtr = NULL; ++ SetEvent(ev); ++ break; ++ case WINE_WM_XRUN: ++ pa_stream_drop(wwi->stream); ++ wwi->buffer_read_offset = 0; ++ break; ++ case WINE_WM_CLOSING: ++ wwi->hThread = 0; ++ if ((DWORD)param == 1) { ++ wwi->state = WINE_WS_FAILED; ++ SetEvent(ev); ++ PULSE_DestroyRingMessage(&wwi->msgRing); ++ widNotifyClient(wwi, WIM_CLOSE, 0L, 0L); ++ wwi->lpPlayPtr = wwi->lpQueuePtr = NULL; ++ pa_threaded_mainloop_lock(PULSE_ml); ++ pa_stream_disconnect(wwi->stream); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ TRACE("Thread exiting because of failure.\n"); ++ ExitThread(1); ++ } ++ wwi->state = WINE_WS_CLOSED; ++ SetEvent(ev); ++ ExitThread(0); ++ /* shouldn't go here */ ++ default: ++ FIXME("unknown message %d\n", msg); ++ break; ++ } ++ } ++ ++ widRecorder_CopyData(wwi); ++ ++} /* for (;;) */ ++} ++ ++/************************************************************************** ++ * widOpen [internal] ++ */ ++static DWORD widOpen(WORD wDevID, LPDWORD lpdwUser, LPWAVEOPENDESC lpDesc, DWORD dwFlags) { ++ WINE_WAVEDEV *wdi; ++ WINE_WAVEINST *wwi = NULL; ++ DWORD ret = MMSYSERR_NOERROR; ++ ++ TRACE("(%u, %p, %08X);\n", wDevID, lpDesc, dwFlags); ++ if (lpDesc == NULL) { ++ WARN("Invalid Parameter !\n"); ++ return MMSYSERR_INVALPARAM; ++ } ++ ++ if (wDevID >= PULSE_WidNumDevs) { ++ TRACE("Asked for device %d, but only %d known!\n", wDevID, PULSE_WidNumDevs); ++ return MMSYSERR_BADDEVICEID; ++ } ++ wdi = &WInDev[wDevID]; ++ ++ wwi = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(WINE_WAVEINST)); ++ if (!wwi) return MMSYSERR_NOMEM; ++ *lpdwUser = (DWORD)wwi; ++ ++ /* check to see if format is supported and make pa_sample_spec struct */ ++ if (!PULSE_SetupFormat(lpDesc->lpFormat, &wwi->sample_spec)) { ++ WARN("Bad format: tag=%04X nChannels=%d nSamplesPerSec=%d !\n", ++ lpDesc->lpFormat->wFormatTag, lpDesc->lpFormat->nChannels, ++ lpDesc->lpFormat->nSamplesPerSec); ++ ret = WAVERR_BADFORMAT; ++ goto exit; ++ } ++ ++ if (TRACE_ON(wave)) { ++ char t[PA_SAMPLE_SPEC_SNPRINT_MAX]; ++ pa_sample_spec_snprint(t, sizeof(t), &wwi->sample_spec); ++ TRACE("Sample spec '%s'\n", t); ++ } ++ ++ if (dwFlags & WAVE_FORMAT_QUERY) { ++ TRACE("Query format: tag=%04X nChannels=%d nSamplesPerSec=%d !\n", ++ lpDesc->lpFormat->wFormatTag, lpDesc->lpFormat->nChannels, ++ lpDesc->lpFormat->nSamplesPerSec); ++ ret = MMSYSERR_NOERROR; ++ goto exit; ++ } ++ ++ wwi->wFlags = HIWORD(dwFlags & CALLBACK_TYPEMASK); ++ wwi->waveDesc = *lpDesc; ++ PULSE_InitRingMessage(&wwi->msgRing); ++ ++ wwi->stream = pa_stream_new(PULSE_context, "WaveIn", &wwi->sample_spec, NULL); ++ if (!wwi->stream) { ++ ret = WAVERR_BADFORMAT; ++ goto exit; ++ } ++ ++ pa_stream_set_state_callback(wwi->stream, PULSE_StreamStateCallback, wwi); ++ pa_stream_set_read_callback(wwi->stream, PULSE_StreamRequestCallback, wwi); ++ ++ pa_threaded_mainloop_lock(PULSE_ml); ++ TRACE("Asking to open %s for recording.\n", wdi->device_name); ++ pa_stream_connect_record(wwi->stream, wdi->device_name, NULL, PA_STREAM_START_CORKED | PA_STREAM_AUTO_TIMING_UPDATE | PA_STREAM_INTERPOLATE_TIMING); ++ for (;;) { ++ pa_context_state_t cstate = pa_context_get_state(PULSE_context); ++ pa_stream_state_t sstate = pa_stream_get_state(wwi->stream); ++ ++ if (cstate == PA_CONTEXT_FAILED || cstate == PA_CONTEXT_TERMINATED || ++ sstate == PA_STREAM_FAILED || sstate == PA_STREAM_TERMINATED) { ++ ERR("Failed to connect context object: %s\n", pa_strerror(pa_context_errno(PULSE_context))); ++ ret = MMSYSERR_NODRIVER; ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ goto exit; ++ } ++ ++ if (sstate == PA_STREAM_READY) ++ break; ++ ++ pa_threaded_mainloop_wait(PULSE_ml); ++ } ++ TRACE("(%p)->stream connected for recording.\n", wwi); ++ ++ PULSE_WaitForOperation(pa_stream_update_timing_info(wwi->stream, PULSE_StreamSuccessCallback, wwi)); ++ ++ wwi->timing_info = pa_stream_get_timing_info(wwi->stream); ++ assert(wwi->timing_info); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ ++ wwi->hStartUpEvent = CreateEventW(NULL, FALSE, FALSE, NULL); ++ wwi->hThread = CreateThread(NULL, 0, widRecorder, (LPVOID)wwi, 0, &(wwi->dwThreadID)); ++ if (wwi->hThread) ++ SetThreadPriority(wwi->hThread, THREAD_PRIORITY_TIME_CRITICAL); ++ else { ++ ERR("Thread creation for the widRecorder failed!\n"); ++ ret = MMSYSERR_NOMEM; ++ goto exit; ++ } ++ WaitForSingleObject(wwi->hStartUpEvent, INFINITE); ++ CloseHandle(wwi->hStartUpEvent); ++ wwi->hStartUpEvent = INVALID_HANDLE_VALUE; ++ ++ return widNotifyClient(wwi, WIM_OPEN, 0L, 0L); ++ ++exit: ++ if (!wwi) ++ return ret; ++ ++ if (wwi->hStartUpEvent != INVALID_HANDLE_VALUE) ++ CloseHandle(wwi->hStartUpEvent); ++ ++ if (wwi->msgRing.ring_buffer_size > 0) ++ PULSE_DestroyRingMessage(&wwi->msgRing); ++ ++ if (wwi->stream) { ++ if (pa_stream_get_state(wwi->stream) == PA_STREAM_READY) ++ pa_stream_disconnect(wwi->stream); ++ pa_stream_unref(wwi->stream); ++ } ++ HeapFree(GetProcessHeap(), 0, wwi); ++ ++ return ret; ++} ++/************************************************************************** ++ * widClose [internal] ++ */ ++static DWORD widClose(WORD wDevID, WINE_WAVEINST *wwi) { ++ DWORD ret; ++ ++ TRACE("(%u, %p);\n", wDevID, wwi); ++ if (wDevID >= PULSE_WidNumDevs) { ++ WARN("Asked for device %d, but only %d known!\n", wDevID, PULSE_WodNumDevs); ++ return MMSYSERR_INVALHANDLE; ++ } else if (!wwi) { ++ WARN("Stream instance invalid.\n"); ++ return MMSYSERR_INVALHANDLE; ++ } ++ ++ if (wwi->state != WINE_WS_FAILED) { ++ if (wwi->lpQueuePtr) { ++ WARN("buffers recording recording !\n"); ++ return WAVERR_STILLPLAYING; ++ } ++ ++ pa_threaded_mainloop_lock(PULSE_ml); ++ if (pa_stream_get_state(wwi->stream) == PA_STREAM_READY) ++ pa_stream_drop(wwi->stream); ++ pa_stream_disconnect(wwi->stream); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ ++ if (wwi->hThread != INVALID_HANDLE_VALUE) ++ PULSE_AddRingMessage(&wwi->msgRing, WINE_WM_CLOSING, 0, TRUE); ++ ++ PULSE_DestroyRingMessage(&wwi->msgRing); ++ } ++ ret = widNotifyClient(wwi, WIM_CLOSE, 0L, 0L); ++ ++ pa_stream_unref(wwi->stream); ++ TRACE("Deallocating record instance.\n"); ++ HeapFree(GetProcessHeap(), 0, wwi); ++ return ret; ++} ++ ++/************************************************************************** ++ * widAddBuffer [internal] ++ * ++ */ ++static DWORD widAddBuffer(WINE_WAVEINST* wwi, LPWAVEHDR lpWaveHdr, DWORD dwSize) { ++ TRACE("(%p, %p, %08X);\n", wwi, lpWaveHdr, dwSize); ++ ++ if (!wwi || wwi->state == WINE_WS_FAILED) { ++ WARN("Stream instance invalid.\n"); ++ return MMSYSERR_INVALHANDLE; ++ } ++ ++ if (lpWaveHdr->lpData == NULL || !(lpWaveHdr->dwFlags & WHDR_PREPARED)) ++ return WAVERR_UNPREPARED; ++ ++ if (lpWaveHdr->dwFlags & WHDR_INQUEUE) ++ return WAVERR_STILLPLAYING; ++ ++ lpWaveHdr->dwFlags &= ~WHDR_DONE; ++ lpWaveHdr->dwFlags |= WHDR_INQUEUE; ++ lpWaveHdr->dwBytesRecorded = 0; ++ lpWaveHdr->lpNext = 0; ++ ++ PULSE_AddRingMessage(&wwi->msgRing, WINE_WM_HEADER, (DWORD)lpWaveHdr, FALSE); ++ ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * widRecorderMessage [internal] ++ */ ++static DWORD widRecorderMessage(WINE_WAVEINST *wwi, enum win_wm_message message) { ++ if (!wwi || wwi->state == WINE_WS_FAILED) { ++ WARN("Stream instance invalid.\n"); ++ return MMSYSERR_INVALHANDLE; ++ } ++ ++ PULSE_AddRingMessage(&wwi->msgRing, message, 0, TRUE); ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * widGetPosition [internal] ++ */ ++static DWORD widGetPosition(WINE_WAVEINST *wwi, LPMMTIME lpTime, DWORD uSize) { ++ if (!wwi || wwi->state == WINE_WS_FAILED) { ++ WARN("Stream instance invalid.\n"); ++ return MMSYSERR_INVALHANDLE; ++ } ++ ++ if (lpTime == NULL) return MMSYSERR_INVALPARAM; ++ ++ pa_threaded_mainloop_lock(PULSE_ml); ++ PULSE_GetMMTime(wwi->timing_info, &wwi->sample_spec, (size_t)-1, lpTime); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * widGetDevCaps [internal] ++ */ ++static DWORD widGetDevCaps(DWORD wDevID, LPWAVEINCAPSW lpCaps, DWORD dwSize) { ++ TRACE("(%u, %p, %u);\n", wDevID, lpCaps, dwSize); ++ ++ if (lpCaps == NULL) return MMSYSERR_NOTENABLED; ++ ++ if (wDevID >= PULSE_WidNumDevs) { ++ TRACE("Asked for device %d, but only %d known!\n", wDevID, PULSE_WidNumDevs); ++ return MMSYSERR_INVALHANDLE; ++ } ++ ++ memcpy(lpCaps, &(WInDev[wDevID].caps.in), min(dwSize, sizeof(*lpCaps))); ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * widGetNumDevs [internal] ++ * Context-sanity check here, as if we respond with 0, WINE will move on ++ * to the next wavein driver. ++ */ ++static DWORD widGetNumDevs() { ++ if (pa_context_get_state(PULSE_context) != PA_CONTEXT_READY) ++ return 0; ++ ++ PULSE_UpdateWavedevs(PULSE_IN_DEVS); ++ ++ return PULSE_WidNumDevs; ++} ++ ++/************************************************************************** ++ * widDevInterfaceSize [internal] ++ */ ++static DWORD widDevInterfaceSize(UINT wDevID, LPDWORD dwParam1) { ++ TRACE("(%u, %p)\n", wDevID, dwParam1); ++ ++ *dwParam1 = MultiByteToWideChar(CP_UNIXCP, 0, WInDev[wDevID].interface_name, -1, ++ NULL, 0 ) * sizeof(WCHAR); ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * widDevInterface [internal] ++ */ ++static DWORD widDevInterface(UINT wDevID, PWCHAR dwParam1, DWORD dwParam2) { ++ if (dwParam2 >= MultiByteToWideChar(CP_UNIXCP, 0, WInDev[wDevID].interface_name, -1, ++ NULL, 0 ) * sizeof(WCHAR)) ++ { ++ MultiByteToWideChar(CP_UNIXCP, 0, WInDev[wDevID].interface_name, -1, ++ dwParam1, dwParam2 / sizeof(WCHAR)); ++ return MMSYSERR_NOERROR; ++ } ++ return MMSYSERR_INVALPARAM; ++} ++ ++/************************************************************************** ++ * widMessage (WINEPULSE.@) ++ */ ++DWORD WINAPI PULSE_widMessage(UINT wDevID, UINT wMsg, DWORD dwUser, ++ DWORD dwParam1, DWORD dwParam2) { ++ ++ switch (wMsg) { ++ case DRVM_INIT: ++ case DRVM_EXIT: ++ case DRVM_ENABLE: ++ case DRVM_DISABLE: ++ /* FIXME: Pretend this is supported */ ++ return 0; ++ case WIDM_OPEN: return widOpen (wDevID, (LPDWORD)dwUser, (LPWAVEOPENDESC)dwParam1, dwParam2); ++ case WIDM_CLOSE: return widClose (wDevID, (WINE_WAVEINST*)dwUser); ++ case WIDM_ADDBUFFER: return widAddBuffer ((WINE_WAVEINST*)dwUser, (LPWAVEHDR)dwParam1, dwParam2); ++ case WIDM_PREPARE: return MMSYSERR_NOTSUPPORTED; ++ case WIDM_UNPREPARE: return MMSYSERR_NOTSUPPORTED; ++ case WIDM_GETDEVCAPS: return widGetDevCaps (wDevID, (LPWAVEINCAPSW)dwParam1, dwParam2); ++ case WIDM_GETNUMDEVS: return widGetNumDevs (); ++ case WIDM_GETPOS: return widGetPosition ((WINE_WAVEINST*)dwUser, (LPMMTIME)dwParam1, dwParam2); ++ case WIDM_RESET: return widRecorderMessage((WINE_WAVEINST*)dwUser, WINE_WM_RESETTING); ++ case WIDM_START: return widRecorderMessage((WINE_WAVEINST*)dwUser, WINE_WM_STARTING); ++ case WIDM_STOP: return widRecorderMessage((WINE_WAVEINST*)dwUser, WINE_WM_STOPPING); ++ case DRV_QUERYDEVICEINTERFACESIZE: return widDevInterfaceSize (wDevID, (LPDWORD)dwParam1); ++ case DRV_QUERYDEVICEINTERFACE: return widDevInterface (wDevID, (PWCHAR)dwParam1, dwParam2); ++ case DRV_QUERYDSOUNDIFACE: return 0; ++ case DRV_QUERYDSOUNDDESC: return 0; ++ default: ++ FIXME("unknown message %d!\n", wMsg); ++ } ++ return MMSYSERR_NOTSUPPORTED; ++} ++ ++#else /* HAVE_PULSEAUDIO */ ++ ++/************************************************************************** ++ * widMessage (WINEPULSE.@) ++ */ ++DWORD WINAPI PULSE_widMessage(WORD wDevID, WORD wMsg, DWORD dwUser, ++ DWORD dwParam1, DWORD dwParam2) { ++// FIXME("(%u, %04X, %08X, %08X, %08X):stub\n", wDevID, wMsg, dwUser, dwParam1, dwParam2); ++ return MMSYSERR_NOTENABLED; ++} ++ ++#endif /* HAVE_PULSEAUDIO */ +diff --git a/dlls/winepulse.drv/waveout.c b/dlls/winepulse.drv/waveout.c +new file mode 100644 +index 0000000..968d1bd +--- /dev/null ++++ b/dlls/winepulse.drv/waveout.c +@@ -0,0 +1,1098 @@ ++/* ++ * Wine Driver for PulseAudio - WaveOut Functionality ++ * http://pulseaudio.org/ ++ * ++ * Copyright 2009 Arthur Taylor ++ * ++ * Contains code from other wine multimedia drivers. ++ * ++ * 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, write to the Free Software ++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA ++ */ ++ ++#include "config.h" ++ ++#include ++ ++#include "windef.h" ++#include "winbase.h" ++#include "wingdi.h" ++#include "winuser.h" ++#include "winnls.h" ++#include "winerror.h" ++#include "mmddk.h" ++#include "mmreg.h" ++ ++#include ++ ++#include "wine/debug.h" ++ ++WINE_DEFAULT_DEBUG_CHANNEL(wave); ++ ++#if HAVE_PULSEAUDIO ++ ++/* state diagram for waveOut writing: ++ * ++ * +---------+-------------+---------------+---------------------------------+ ++ * | state | function | event | new state | ++ * +---------+-------------+---------------+---------------------------------+ ++ * | | open() | | STOPPED | ++ * | PAUSED | write() | | PAUSED | ++ * | STOPPED | write() | | PLAYING | ++ * | PLAYING | write() | HEADER | PLAYING | ++ * | (other) | write() | | | ++ * | (any) | pause() | PAUSING | PAUSED | ++ * | PAUSED | restart() | RESTARTING | PLAYING (if no thrd => STOPPED) | ++ * | PAUSED | reset() | RESETTING | PAUSED | ++ * | (other) | reset() | RESETTING | STOPPED | ++ * | (any) | close() | CLOSING | CLOSED | ++ * +---------+-------------+---------------+---------------------------------+ ++ */ ++ ++/* ++ * - It is currently unknown if pausing in a loop works the same as expected. ++ */ ++ ++/*======================================================================* ++ * WAVE OUT specific PulseAudio Callbacks * ++ *======================================================================*/ ++ ++/************************************************************************** ++ * WAVEOUT_StreamStartedCallback [internal] ++ * ++ * Called by the pulse mainloop whenever stream playback resumes after an ++ * underflow or an initial start. Requires libpulse >= 0.9.11 ++ */ ++#if PA_API_VERSION >= 12 ++static void WAVEOUT_StreamStartedCallback(pa_stream *s, void *userdata) { ++ WINE_WAVEINST *wwo = (WINE_WAVEINST*)userdata; ++ assert(s && wwo); ++ ++ TRACE("Audio flowing.\n"); ++ ++ if (wwo->buffer_attr.tlength == 0) ++ wwo->buffer_attr.tlength = (uint32_t) -1; ++ ++ if (wwo->hThread != INVALID_HANDLE_VALUE && wwo->msgRing.ring_buffer_size) { ++ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_STARTING, 0, FALSE); ++ } ++} ++#endif ++/************************************************************************** ++ * WAVEOUT_StreamTimingInfoUpdateCallback [internal] ++ * ++ * Called by the pulse mainloop whenever the timing info gets updated, we ++ * use this to send the started signal */ ++static void WAVEOUT_StreamTimingInfoUpdateCallback(pa_stream *s, void *userdata) { ++ WINE_WAVEINST *wwo = (WINE_WAVEINST*)userdata; ++ assert(s && wwo); ++ ++ if (!wwo->is_releasing && wwo->timing_info && wwo->timing_info->playing) { ++ TRACE("Audio flowing.\n"); ++ ++ if (wwo->buffer_attr.tlength == 0) ++ wwo->buffer_attr.tlength = (uint32_t) -1; ++ ++ if (wwo->hThread != INVALID_HANDLE_VALUE && wwo->msgRing.ring_buffer_size) ++ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_STARTING, 0, FALSE); ++ } ++} ++ ++ ++static void WAVEOUT_SinkInputInfoCallback(pa_context *c, const pa_sink_input_info *i, int eol, void *userdata) { ++ WINE_WAVEINST* wwo = (WINE_WAVEINST*)userdata; ++ if (!eol && i) { ++ for (wwo->volume.channels = 0; wwo->volume.channels != i->volume.channels; wwo->volume.channels++) ++ wwo->volume.values[wwo->volume.channels] = i->volume.values[wwo->volume.channels]; ++ pa_threaded_mainloop_signal(PULSE_ml, 0); ++ } ++} ++ ++/*======================================================================* ++ * "Low level" WAVE OUT implementation * ++ *======================================================================*/ ++ ++/************************************************************************** ++ * wodPlayer_NotifyClient [internal] ++ */ ++static DWORD wodPlayer_NotifyClient(WINE_WAVEINST* wwi, WORD wMsg, DWORD dwParam1, DWORD dwParam2) { ++ TRACE("wMsg = 0x%04x dwParm1 = %04X dwParam2 = %04X\n", wMsg, dwParam1, dwParam2); ++ ++ switch (wMsg) { ++ case WOM_OPEN: ++ case WOM_CLOSE: ++ case WOM_DONE: ++ if (wwi->wFlags != DCB_NULL && ++ !DriverCallback(wwi->waveDesc.dwCallback, wwi->wFlags, (HDRVR)wwi->waveDesc.hWave, ++ wMsg, wwi->waveDesc.dwInstance, dwParam1, dwParam2)) { ++ WARN("can't notify client !\n"); ++ return MMSYSERR_ERROR; ++ } ++ break; ++ default: ++ FIXME("Unknown callback message %u\n", wMsg); ++ return MMSYSERR_INVALPARAM; ++ } ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * wodPlayer_BeginWaveHdr [internal] ++ * ++ * Makes the specified lpWaveHdr the currently playing wave header. ++ * If the specified wave header is a begin loop and we're not already in ++ * a loop, setup the loop. ++ */ ++static void wodPlayer_BeginWaveHdr(WINE_WAVEINST* wwo, LPWAVEHDR lpWaveHdr) { ++ wwo->lpPlayPtr = lpWaveHdr; ++ ++ if (!lpWaveHdr) return; ++ ++ if (lpWaveHdr->dwFlags & WHDR_BEGINLOOP) { ++ if (wwo->lpLoopPtr) { ++ WARN("Already in a loop. Discarding loop on this header (%p)\n", lpWaveHdr); ++ } else { ++ TRACE("Starting loop (%dx) with %p\n", lpWaveHdr->dwLoops, lpWaveHdr); ++ wwo->lpLoopPtr = lpWaveHdr; ++ /* Windows does not touch WAVEHDR.dwLoops, ++ * so we need to make an internal copy */ ++ wwo->dwLoops = lpWaveHdr->dwLoops; ++ } ++ } ++ wwo->dwPartialOffset = 0; ++} ++ ++/************************************************************************** ++ * wodPlayer_PlayPtrNext [internal] ++ * ++ * Advance the play pointer to the next waveheader, looping if required. ++ */ ++static LPWAVEHDR wodPlayer_PlayPtrNext(WINE_WAVEINST* wwo) { ++ LPWAVEHDR lpWaveHdr = wwo->lpPlayPtr; ++ ++ wwo->dwPartialOffset = 0; ++ if ((lpWaveHdr->dwFlags & WHDR_ENDLOOP) && wwo->lpLoopPtr) { ++ /* We're at the end of a loop, loop if required */ ++ if (--wwo->dwLoops > 0) { ++ wwo->lpPlayPtr = wwo->lpLoopPtr; ++ } else { ++ /* Handle overlapping loops correctly */ ++ if (wwo->lpLoopPtr != lpWaveHdr && (lpWaveHdr->dwFlags & WHDR_BEGINLOOP)) { ++ FIXME("Correctly handled case ? (ending loop buffer also starts a new loop)\n"); ++ /* shall we consider the END flag for the closing loop or for ++ * the opening one or for both ??? ++ * code assumes for closing loop only ++ */ ++ } else { ++ lpWaveHdr = lpWaveHdr->lpNext; ++ } ++ wwo->lpLoopPtr = NULL; ++ wodPlayer_BeginWaveHdr(wwo, lpWaveHdr); ++ } ++ } else { ++ /* We're not in a loop. Advance to the next wave header */ ++ wodPlayer_BeginWaveHdr(wwo, lpWaveHdr = lpWaveHdr->lpNext); ++ } ++ ++ return lpWaveHdr; ++} ++ ++/************************************************************************** ++ * wodPlayer_CheckReleasing [internal] ++ * ++ * Check to make sure that playback has not stalled ++ */ ++static void wodPlayer_CheckReleasing(WINE_WAVEINST *wwo) { ++ LPWAVEHDR lpWaveHdr = wwo->lpQueuePtr; ++ ++ /* If we aren't playing, and we have queued data and we aren't relasing, ++ * start releasing if either: ++ * - We have stopped being given wavehdrs, or ++ * - We have 2s worth of audio built up.*/ ++ ++ pa_threaded_mainloop_lock(PULSE_ml); ++ if (!wwo->timing_info->playing && ++ (pa_bytes_to_usec(lpWaveHdr->dwBufferLength, &wwo->sample_spec)/2 < pa_timeval_age(&wwo->last_header)|| ++ wwo->timing_info->write_index - wwo->releasing_offset > pa_bytes_per_second(&wwo->sample_spec)*2)) { ++ ++ /* Try and adjust the buffer attributes so there is less latency. ++ * Because of bugs this call does not work on older servers. Once ++ * new version of pulseaudio become ubiquitous we will drop support for ++ * versions before 0.9.15 because they have too many bugs.*/ ++ if (wwo->buffer_attr.tlength == 0 && ++ pa_context_get_server_protocol_version(PULSE_context) >= 15) { ++ wwo->buffer_attr.tlength = wwo->timing_info->write_index; ++ wwo->buffer_attr.prebuf = (uint32_t) -1; ++ wwo->buffer_attr.minreq = (uint32_t) -1; ++ wwo->buffer_attr.maxlength = (uint32_t) -1; ++ WARN("Asking for new buffer tlength of %u.\n", wwo->buffer_attr.tlength); ++ pa_stream_set_buffer_attr(wwo->stream, &wwo->buffer_attr, PULSE_StreamSuccessCallback, wwo); ++ } else { ++ /* Fake playback start earlier, introducing latency */ ++ pa_gettimeofday(&wwo->started_releasing); ++ wwo->is_releasing = TRUE; ++ wwo->releasing_offset = wwo->lpQueuePtr->reserved; ++ TRACE("Starting to release early: %u\n", wwo->releasing_offset); ++ } ++ } ++ pa_threaded_mainloop_unlock(PULSE_ml); ++} ++ ++/************************************************************************** ++ * wodPlayer_NotifyCompletions [internal] ++ * ++ * Notifies and remove from queue all wavehdrs which have been played to ++ * the speaker based on a reference time of (theoretical) playback start. If ++ * force is true, we notify all wavehdrs and remove them all from the queue ++ * even if they are unplayed or part of a loop. We return the time to wait ++ * until the next wavehdr needs to be freed, or INFINITE if there are no more ++ * wavehdrs. We use timevals rather than the stream position data that pulse ++ * gives us as realeasing needs to be constant and smooth for good application ++ * behaviour. ++ */ ++static DWORD wodPlayer_NotifyCompletions(WINE_WAVEINST* wwo, BOOL force) { ++ LPWAVEHDR lpWaveHdr; ++ pa_usec_t time; ++ pa_usec_t wait; ++ ++ time = pa_bytes_to_usec(wwo->releasing_offset, &wwo->sample_spec); ++ if (wwo->is_releasing) ++ time += pa_timeval_age(&wwo->started_releasing); ++ ++ for (lpWaveHdr = wwo->lpQueuePtr; lpWaveHdr;) { ++ if (!force) { ++ /* Start from lpQueuePtr and keep notifying until: ++ * - we hit an unwritten wavehdr ++ * - we hit the beginning of a running loop ++ * - we hit a wavehdr which hasn't finished playing ++ */ ++ if (lpWaveHdr == wwo->lpPlayPtr) { TRACE("play %p\n", lpWaveHdr); return INFINITE; } ++ if (lpWaveHdr == wwo->lpLoopPtr) { TRACE("loop %p\n", lpWaveHdr); return INFINITE; } ++ ++ /* See if this data has been played, and if not, return when it will have been */ ++ wait = pa_bytes_to_usec(lpWaveHdr->reserved + lpWaveHdr->dwBufferLength, &wwo->sample_spec); ++ if (wait >= time) { ++ wait = ((wait - time) + 999) / 1000; ++ return wait ?: 1; ++ } ++ } ++ ++ /* return the wavehdr */ ++ wwo->lpQueuePtr = lpWaveHdr->lpNext; ++ lpWaveHdr->dwFlags &= ~WHDR_INQUEUE; ++ lpWaveHdr->dwFlags |= WHDR_DONE; ++ ++ wodPlayer_NotifyClient(wwo, WOM_DONE, (DWORD)lpWaveHdr, 0); ++ lpWaveHdr = wwo->lpQueuePtr; ++ } ++ /* No more wavehdrs */ ++ TRACE("Empty queue\n"); ++ return INFINITE; ++} ++ ++/************************************************************************** ++ * wodPlayer_WriteMax [internal] ++ * ++ * Write either how much free space or how much data we have, depending on ++ * which is less ++ */ ++static int wodPlayer_WriteMax(WINE_WAVEINST *wwo, size_t *space) { ++ LPWAVEHDR lpWaveHdr = wwo->lpPlayPtr; ++ size_t toWrite = min(lpWaveHdr->dwBufferLength - wwo->dwPartialOffset, *space); ++ ++ if (toWrite > 0 && pa_stream_write(wwo->stream, lpWaveHdr->lpData + wwo->dwPartialOffset, toWrite, NULL, 0, PA_SEEK_RELATIVE) >= 0) ++ TRACE("Writing wavehdr %p.%u[%u]\n", lpWaveHdr, wwo->dwPartialOffset, lpWaveHdr->dwBufferLength); ++ else ++ return 0; ++ ++ /* Check to see if we wrote all of the wavehdr */ ++ if ((wwo->dwPartialOffset += toWrite) >= lpWaveHdr->dwBufferLength) ++ wodPlayer_PlayPtrNext(wwo); ++ ++ *space -= toWrite; ++ ++ return toWrite; ++} ++ ++/************************************************************************** ++ * wodPlayer_Feed [internal] ++ * ++ * Feed as much sound data as we can into pulse using wodPlayer_WriteMax. ++ * size_t space _must_ have come from either pa_stream_writable_size() or ++ * the value from a stream write callback, as if it isn't you run the risk ++ * of a buffer overflow in which audio data will be lost. ++ */ ++static void wodPlayer_Feed(WINE_WAVEINST* wwo, size_t space) { ++ ++ /* no more room... no need to try to feed */ ++ if (space == 0) return; ++ ++ if (!wwo->stream || !PULSE_context || ++ pa_context_get_state(PULSE_context) != PA_CONTEXT_READY || ++ pa_stream_get_state(wwo->stream) != PA_STREAM_READY) ++ return; ++ ++ pa_threaded_mainloop_lock(PULSE_ml); ++ /* Feed from a partial wavehdr */ ++ if (wwo->lpPlayPtr && wwo->dwPartialOffset != 0) ++ wodPlayer_WriteMax(wwo, &space); ++ ++ /* Feed wavehdrs until we run out of wavehdrs or buffer space */ ++ if (wwo->dwPartialOffset == 0 && wwo->lpPlayPtr) { ++ do { ++ wwo->lpPlayPtr->reserved = wwo->timing_info->write_index; ++ } while (wodPlayer_WriteMax(wwo, &space) > 0 && wwo->lpPlayPtr && space > 0); ++ } ++ pa_threaded_mainloop_unlock(PULSE_ml); ++} ++ ++/************************************************************************** ++ * wodPlayer_Reset [internal] ++ * ++ * wodPlayer helper. Resets current output stream. ++ */ ++static void wodPlayer_Reset(WINE_WAVEINST* wwo) { ++ enum win_wm_message msg; ++ DWORD param; ++ HANDLE ev; ++ ++ TRACE("(%p)\n", wwo); ++ ++ /* remove any buffer */ ++ wodPlayer_NotifyCompletions(wwo, TRUE); ++ ++ wwo->lpPlayPtr = wwo->lpQueuePtr = wwo->lpLoopPtr = NULL; ++ if (wwo->state != WINE_WS_PAUSED) ++ wwo->state = WINE_WS_STOPPED; ++ wwo->dwPartialOffset = 0; ++ ++ if (!wwo->stream || ++ !PULSE_context || ++ pa_context_get_state(PULSE_context) != PA_CONTEXT_READY || ++ pa_stream_get_state(wwo->stream) != PA_STREAM_READY) { ++ return; ++ } ++ ++ pa_threaded_mainloop_lock(PULSE_ml); ++ ++ /* flush the output buffer of written data*/ ++ PULSE_WaitForOperation(pa_stream_flush(wwo->stream, PULSE_StreamSuccessCallback, NULL)); ++ ++ /* Reset the written byte count as some data may have been flushed */ ++ if (wwo->timing_info->write_index_corrupt) ++ PULSE_WaitForOperation(pa_stream_update_timing_info(wwo->stream, PULSE_StreamSuccessCallback, wwo)); ++ wwo->releasing_offset = wwo->last_reset = wwo->timing_info->write_index; ++ if (wwo->is_releasing) ++ pa_gettimeofday(&wwo->started_releasing); ++ ++ /* return all pending headers in queue */ ++ EnterCriticalSection(&wwo->msgRing.msg_crst); ++ while (PULSE_RetrieveRingMessage(&wwo->msgRing, &msg, ¶m, &ev)) { ++ if (msg != WINE_WM_HEADER) { ++ SetEvent(ev); ++ continue; ++ } ++ ((LPWAVEHDR)param)->dwFlags &= ~WHDR_INQUEUE; ++ ((LPWAVEHDR)param)->dwFlags |= WHDR_DONE; ++ wodPlayer_NotifyClient(wwo, WOM_DONE, param, 0); ++ } ++ PULSE_ResetRingMessage(&wwo->msgRing); ++ LeaveCriticalSection(&wwo->msgRing.msg_crst); ++ ++ pa_threaded_mainloop_unlock(PULSE_ml); ++} ++ ++/************************************************************************** ++ * wodPlayer_Underrun [internal] ++ * ++ * wodPlayer helper. Deal with a stream underrun. ++ */ ++static void wodPlayer_Underrun(WINE_WAVEINST* wwo) { ++ ++ pa_threaded_mainloop_lock(PULSE_ml); ++ ++ /* Ask for a timing update */ ++ PULSE_WaitForOperation(pa_stream_update_timing_info(wwo->stream, PULSE_StreamSuccessCallback, wwo)); ++ ++ /* See if we recovered while the message was waiting in the queue */ ++ if (wwo->timing_info->playing) { ++ TRACE("False alarm\n"); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ return; ++ } ++ ++ if (wwo->lpPlayPtr) { ++ size_t space; ++ ++ TRACE("There is queued data. Trying to recover.\n"); ++ ++ /* Ask for a timing update */ ++ if (wwo->timing_info->write_index_corrupt) ++ PULSE_WaitForOperation(pa_stream_update_timing_info(wwo->stream, PULSE_StreamSuccessCallback, wwo)); ++ space = pa_stream_writable_size(wwo->stream); ++ wodPlayer_Feed(wwo, space); ++ } ++ WARN("Stream underrun!\n"); ++ wwo->is_releasing = FALSE; ++ wwo->releasing_offset = wwo->timing_info->write_index; ++ pa_threaded_mainloop_unlock(PULSE_ml); ++} ++ ++ ++/************************************************************************** ++ * wodPlayer_ProcessMessages [internal] ++ */ ++static void wodPlayer_ProcessMessages(WINE_WAVEINST* wwo) { ++ LPWAVEHDR lpWaveHdr; ++ enum win_wm_message msg; ++ DWORD param; ++ HANDLE ev; ++ ++ while (PULSE_RetrieveRingMessage(&wwo->msgRing, &msg, ¶m, &ev)) { ++ TRACE("Received %s %x\n", PULSE_getCmdString(msg), param); ++ ++ switch (msg) { ++ case WINE_WM_PAUSING: ++ wwo->state = WINE_WS_PAUSED; ++ ++ pa_threaded_mainloop_lock(PULSE_ml); ++ PULSE_WaitForOperation(pa_stream_cork(wwo->stream, 1, PULSE_StreamSuccessCallback, wwo)); ++ /* save how far we are, as releasing will restart from here */ ++ if (wwo->is_releasing) ++ wwo->releasing_offset = wwo->timing_info->write_index; ++ wwo->is_releasing = FALSE; ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ SetEvent(ev); ++ break; ++ ++ case WINE_WM_RESTARTING: ++ if (wwo->state == WINE_WS_PAUSED) { ++ wwo->state = WINE_WS_PLAYING; ++ pa_threaded_mainloop_lock(PULSE_ml); ++ PULSE_WaitForOperation(pa_stream_cork(wwo->stream, 0, PULSE_StreamSuccessCallback, wwo)); ++ /* If the serverside buffer was near full before pause, we need to ++ * have space to write soon, so force playback start */ ++ PULSE_WaitForOperation(pa_stream_trigger(wwo->stream, PULSE_StreamSuccessCallback, wwo)); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ } ++ SetEvent(ev); ++ break; ++ ++ case WINE_WM_HEADER: ++ lpWaveHdr = (LPWAVEHDR)param; ++ /* insert buffer at the end of queue */ ++ { ++ LPWAVEHDR* wh; ++ for (wh = &(wwo->lpQueuePtr); *wh; wh = &((*wh)->lpNext)); ++ *wh = lpWaveHdr; ++ } ++ ++ if (!wwo->lpPlayPtr) ++ wodPlayer_BeginWaveHdr(wwo,lpWaveHdr); ++ if (wwo->state == WINE_WS_STOPPED) ++ wwo->state = WINE_WS_PLAYING; ++ ++ wodPlayer_Feed(wwo, pa_stream_writable_size(wwo->stream)); ++ if (!wwo->timing_info->playing && !wwo->is_releasing) ++ pa_gettimeofday(&wwo->last_header); ++ SetEvent(ev); ++ break; ++ ++ case WINE_WM_RESETTING: ++ wodPlayer_Reset(wwo); ++ SetEvent(ev); ++ break; ++ ++ case WINE_WM_BREAKLOOP: ++ if (wwo->state == WINE_WS_PLAYING && wwo->lpLoopPtr != NULL) ++ /* ensure exit at end of current loop */ ++ wwo->dwLoops = 1; ++ SetEvent(ev); ++ break; ++ ++ case WINE_WM_FEED: /* Sent by the pulse thread */ ++ wodPlayer_Feed(wwo, pa_stream_writable_size(wwo->stream)); ++ SetEvent(ev); ++ break; ++ ++ case WINE_WM_XRUN: /* Sent by the pulse thread */ ++ if ((DWORD)param == 1) { ++ ERR("Buffer overflow!\n"); ++ pa_threaded_mainloop_lock(PULSE_ml); ++ PULSE_WaitForOperation(pa_stream_drain(wwo->stream, PULSE_StreamSuccessCallback, wwo)); ++ wwo->is_releasing = FALSE; ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ } else ++ wodPlayer_Underrun(wwo); ++ SetEvent(ev); ++ break; ++ ++ case WINE_WM_STARTING: /* Sent by the pulse thread */ ++ /* Start releasing wavehdrs if we haven't already */ ++ if (!wwo->is_releasing) { ++ wwo->is_releasing = TRUE; ++ pa_gettimeofday(&wwo->started_releasing); ++ } ++ SetEvent(ev); ++ break; ++ ++ case WINE_WM_CLOSING: /* If param = 1, close because of a failure */ ++ wwo->hThread = NULL; ++ if ((DWORD)param == 1) { ++ /* If we are here, the stream has failed */ ++ wwo->state = WINE_WS_FAILED; ++ SetEvent(ev); ++ PULSE_DestroyRingMessage(&wwo->msgRing); ++ wodPlayer_NotifyCompletions(wwo, TRUE); ++ wodPlayer_NotifyClient(wwo, WOM_CLOSE, 0L, 0L); ++ wwo->lpPlayPtr = wwo->lpQueuePtr = wwo->lpLoopPtr = NULL; ++ pa_threaded_mainloop_lock(PULSE_ml); ++ pa_stream_disconnect(wwo->stream); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ TRACE("Thread exiting because of failure.\n"); ++ ExitThread(1); ++ /* Stream instance will get de-refferenced upon close */ ++ } ++ wwo->state = WINE_WS_CLOSED; ++ /* sanity check: this should not happen since the device must have been reset before */ ++ if (wwo->lpQueuePtr || wwo->lpPlayPtr) ERR("out of sync\n"); ++ SetEvent(ev); ++ TRACE("Thread exiting.\n"); ++ ExitThread(0); ++ /* shouldn't go here */ ++ ++ default: ++ FIXME("unknown message %d\n", msg); ++ break; ++ } ++ } ++} ++ ++/************************************************************************** ++ * wodPlayer [internal] ++ */ ++static DWORD CALLBACK wodPlayer(LPVOID lpParam) { ++ WINE_WAVEINST *wwo = (WINE_WAVEINST*)lpParam; ++ DWORD dwSleepTime = INFINITE; ++ ++ wwo->state = WINE_WS_STOPPED; ++ SetEvent(wwo->hStartUpEvent); ++ ++ /* Wait for the shortest time before an action is required. If there are ++ * no pending actions, wait forever for a command. */ ++ for (;;) { ++ TRACE("Waiting %u ms\n", dwSleepTime); ++ PULSE_WaitRingMessage(&wwo->msgRing, dwSleepTime); ++ wodPlayer_ProcessMessages(wwo); ++ if (wwo->state == WINE_WS_PLAYING) { ++ if (!wwo->is_releasing && wwo->lpQueuePtr) ++ wodPlayer_CheckReleasing(wwo); ++ dwSleepTime = wodPlayer_NotifyCompletions(wwo, FALSE); ++ } else ++ dwSleepTime = INFINITE; ++ } ++} ++ ++/************************************************************************** ++ * wodOpen [internal] ++ */ ++static DWORD wodOpen(WORD wDevID, LPDWORD lpdwUser, LPWAVEOPENDESC lpDesc, DWORD dwFlags) { ++ WINE_WAVEDEV *wdo; ++ WINE_WAVEINST *wwo = NULL; ++ DWORD ret = MMSYSERR_NOERROR; ++ ++ TRACE("(%u, %p, %08X);\n", wDevID, lpDesc, dwFlags); ++ if (lpDesc == NULL) { ++ WARN("Invalid Parameter !\n"); ++ return MMSYSERR_INVALPARAM; ++ } ++ ++ if (wDevID >= PULSE_WodNumDevs) { ++ WARN("Asked for device %d, but only %d known!\n", wDevID, PULSE_WodNumDevs); ++ return MMSYSERR_BADDEVICEID; ++ } ++ wdo = &WOutDev[wDevID]; ++ ++ wwo = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(WINE_WAVEINST)); ++ if (!wwo) return MMSYSERR_NOMEM; ++ *lpdwUser = (DWORD)wwo; ++ ++ /* check to see if format is supported and make pa_sample_spec struct */ ++ if (!PULSE_SetupFormat(lpDesc->lpFormat, &wwo->sample_spec)) { ++ WARN("Bad format: tag=%04X nChannels=%d nSamplesPerSec=%d !\n", ++ lpDesc->lpFormat->wFormatTag, lpDesc->lpFormat->nChannels, ++ lpDesc->lpFormat->nSamplesPerSec); ++ ret = WAVERR_BADFORMAT; ++ goto exit; ++ } ++ ++ if (TRACE_ON(wave)) { ++ char t[PA_SAMPLE_SPEC_SNPRINT_MAX]; ++ pa_sample_spec_snprint(t, sizeof(t), &wwo->sample_spec); ++ TRACE("Sample spec '%s'\n", t); ++ } ++ ++ if (dwFlags & WAVE_FORMAT_QUERY) { ++ TRACE("Query format: tag=%04X nChannels=%d nSamplesPerSec=%d !\n", ++ lpDesc->lpFormat->wFormatTag, lpDesc->lpFormat->nChannels, ++ lpDesc->lpFormat->nSamplesPerSec); ++ ret = MMSYSERR_NOERROR; ++ goto exit; ++ } ++ ++ wwo->wFlags = HIWORD(dwFlags & CALLBACK_TYPEMASK); ++ wwo->waveDesc = *lpDesc; ++ PULSE_InitRingMessage(&wwo->msgRing); ++ ++ wwo->stream = pa_stream_new(PULSE_context, "WaveOut", &wwo->sample_spec, NULL); ++ /* If server doesn't support sample_spec, we will error out here */ ++ if (!wwo->stream) { ++ ret = WAVERR_BADFORMAT; ++ goto exit; ++ } ++ ++ pa_stream_set_state_callback (wwo->stream, PULSE_StreamStateCallback, wwo); ++ pa_stream_set_write_callback (wwo->stream, PULSE_StreamRequestCallback, wwo); ++ pa_stream_set_underflow_callback (wwo->stream, PULSE_StreamUnderflowCallback, wwo); ++ pa_stream_set_overflow_callback (wwo->stream, PULSE_StreamOverflowCallback, wwo); ++ pa_stream_set_moved_callback (wwo->stream, PULSE_StreamMovedCallback, wwo); ++ pa_stream_set_suspended_callback (wwo->stream, PULSE_StreamSuspendedCallback, wwo); ++ ++#if PA_API_VERSION >= 12 ++ if (pa_context_get_server_protocol_version(PULSE_context) >= 15) { ++ pa_stream_set_started_callback(wwo->stream, WAVEOUT_StreamStartedCallback, wwo); ++ } else ++#endif ++ pa_stream_set_latency_update_callback(wwo->stream, WAVEOUT_StreamTimingInfoUpdateCallback, wwo); ++ ++ ++ TRACE("Connecting stream for playback on %s.\n", wdo->device_name); ++ pa_threaded_mainloop_lock(PULSE_ml); ++ pa_stream_connect_playback(wwo->stream, ++ /* Use WAVE_FORMAT_DIRECT to detect if we are being called by the ++ * wavemapper, in which case don't specify a device so that libpulse ++ * chooses based upon environment variables, x11 root window info, etc. If ++ * WAVE_FORMAT_DIRECT is inappropriate, maybe winmm could stop eating ++ * WAVE_MAPPER? */ ++ dwFlags & WAVE_FORMAT_DIRECT ? NULL : wdo->device_name, ++ NULL, ++ PA_STREAM_AUTO_TIMING_UPDATE, ++ NULL, ++ NULL); ++ ++ for (;;) { ++ pa_context_state_t cstate = pa_context_get_state(PULSE_context); ++ pa_stream_state_t sstate = pa_stream_get_state(wwo->stream); ++ ++ if (cstate == PA_CONTEXT_FAILED || cstate == PA_CONTEXT_TERMINATED || ++ sstate == PA_STREAM_FAILED || sstate == PA_STREAM_TERMINATED) { ++ ERR("Failed to connect stream context object: %s\n", pa_strerror(pa_context_errno(PULSE_context))); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ ret = MMSYSERR_NODRIVER; ++ goto exit; ++ } ++ ++ if (sstate == PA_STREAM_READY) ++ break; ++ ++ pa_threaded_mainloop_wait(PULSE_ml); ++ } ++ TRACE("(%p)->stream connected for playback.\n", wwo); ++ ++ PULSE_WaitForOperation(pa_stream_update_timing_info(wwo->stream, PULSE_StreamSuccessCallback, wwo)); ++ ++ wwo->timing_info = pa_stream_get_timing_info(wwo->stream); ++ assert(wwo->timing_info); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ ++ wwo->hStartUpEvent = CreateEventW(NULL, FALSE, FALSE, NULL); ++ wwo->hThread = CreateThread(NULL, 0, wodPlayer, (LPVOID)wwo, 0, &(wwo->dwThreadID)); ++ if (wwo->hThread) ++ SetThreadPriority(wwo->hThread, THREAD_PRIORITY_TIME_CRITICAL); ++ else { ++ ERR("Thread creation for the wodPlayer failed!\n"); ++ ret = MMSYSERR_NOMEM; ++ goto exit; ++ } ++ WaitForSingleObject(wwo->hStartUpEvent, INFINITE); ++ CloseHandle(wwo->hStartUpEvent); ++ wwo->hStartUpEvent = INVALID_HANDLE_VALUE; ++ ++ ++ return wodPlayer_NotifyClient (wwo, WOM_OPEN, 0L, 0L); ++ ++exit: ++ if (!wwo) ++ return ret; ++ ++ if (wwo->hStartUpEvent != INVALID_HANDLE_VALUE) ++ CloseHandle(wwo->hStartUpEvent); ++ ++ if (wwo->msgRing.ring_buffer_size > 0) ++ PULSE_DestroyRingMessage(&wwo->msgRing); ++ ++ if (wwo->stream) { ++ if (pa_stream_get_state(wwo->stream) == PA_STREAM_READY) ++ pa_stream_disconnect(wwo->stream); ++ pa_stream_unref(wwo->stream); ++ wwo->stream = NULL; ++ } ++ HeapFree(GetProcessHeap(), 0, wwo); ++ ++ return ret; ++} ++ ++/************************************************************************** ++ * wodClose [internal] ++ */ ++static DWORD wodClose(WINE_WAVEINST *wwo) { ++ DWORD ret; ++ ++ TRACE("(%p);\n", wwo); ++ if (!wwo) { ++ WARN("Stream instance invalid.\n"); ++ return MMSYSERR_INVALHANDLE; ++ } ++ ++ if (wwo->state != WINE_WS_FAILED) { ++ if (wwo->lpQueuePtr && wwo->lpPlayPtr) { ++ WARN("buffers still playing !\n"); ++ return WAVERR_STILLPLAYING; ++ } ++ ++ pa_threaded_mainloop_lock(PULSE_ml); ++ PULSE_WaitForOperation(pa_stream_drain(wwo->stream, PULSE_StreamSuccessCallback, NULL)); ++ pa_stream_disconnect(wwo->stream); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ ++ if (wwo->hThread != INVALID_HANDLE_VALUE) ++ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_CLOSING, 0, TRUE); ++ ++ PULSE_DestroyRingMessage(&wwo->msgRing); ++ } ++ ++ if (wwo->stream) ++ pa_stream_unref(wwo->stream); ++ ret = wodPlayer_NotifyClient(wwo, WOM_CLOSE, 0L, 0L); ++ ++ HeapFree(GetProcessHeap(), 0, wwo); ++ ++ return ret; ++} ++ ++/************************************************************************** ++ * wodWrite [internal] ++ */ ++static DWORD wodWrite(WINE_WAVEINST *wwo, LPWAVEHDR lpWaveHdr, DWORD dwSize) { ++ if (!wwo || wwo->state == WINE_WS_FAILED) { ++ WARN("Stream instance invalid.\n"); ++ return MMSYSERR_INVALHANDLE; ++ } ++ ++ if (lpWaveHdr->lpData == NULL || !(lpWaveHdr->dwFlags & WHDR_PREPARED)) ++ return WAVERR_UNPREPARED; ++ ++ if (lpWaveHdr->dwFlags & WHDR_INQUEUE) ++ return WAVERR_STILLPLAYING; ++ ++ lpWaveHdr->dwFlags &= ~WHDR_DONE; ++ lpWaveHdr->dwFlags |= WHDR_INQUEUE; ++ lpWaveHdr->lpNext = 0; ++ lpWaveHdr->reserved = 0; ++ ++ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_HEADER, (DWORD)lpWaveHdr, FALSE); ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * wodPause [internal] ++ */ ++static DWORD wodPause(WINE_WAVEINST *wwo) { ++ if (!wwo || wwo->state == WINE_WS_FAILED) { ++ WARN("Stream instance invalid.\n"); ++ return MMSYSERR_INVALHANDLE; ++ } ++ ++ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_PAUSING, 0, TRUE); ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * wodGetPosition [internal] ++ */ ++static DWORD wodGetPosition(WINE_WAVEINST *wwo, LPMMTIME lpTime, DWORD uSize) { ++ if (!wwo || wwo->state == WINE_WS_FAILED) { ++ WARN("Stream instance invalid.\n"); ++ return MMSYSERR_INVALHANDLE; ++ } ++ ++ if (lpTime == NULL) return MMSYSERR_INVALPARAM; ++ ++ pa_threaded_mainloop_lock(PULSE_ml); ++ if (wwo->timing_info->read_index_corrupt || wwo->timing_info->write_index_corrupt) ++ PULSE_WaitForOperation(pa_stream_update_timing_info(wwo->stream, PULSE_StreamSuccessCallback, wwo)); ++ ++ PULSE_GetMMTime(wwo->timing_info, &wwo->sample_spec, wwo->last_reset, lpTime); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ ++ return MMSYSERR_NOERROR; ++} ++/************************************************************************** ++ * wodBreakLoop [internal] ++ */ ++static DWORD wodBreakLoop(WINE_WAVEINST *wwo) { ++ if (!wwo || wwo->state == WINE_WS_FAILED) { ++ WARN("Stream instance invalid.\n"); ++ return MMSYSERR_INVALHANDLE; ++ } ++ ++ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_BREAKLOOP, 0, TRUE); ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * wodGetDevCaps [internal] ++ */ ++static DWORD wodGetDevCaps(DWORD wDevID, LPWAVEOUTCAPSW lpCaps, DWORD dwSize) { ++ TRACE("(%u, %p, %u);\n", wDevID, lpCaps, dwSize); ++ ++ if (lpCaps == NULL) return MMSYSERR_NOTENABLED; ++ ++ if (wDevID >= PULSE_WodNumDevs) { ++ TRACE("Asked for device %d, but only %d known!\n", wDevID, PULSE_WodNumDevs); ++ return MMSYSERR_INVALHANDLE; ++ } ++ ++ memcpy(lpCaps, &(WOutDev[wDevID].caps.out), min(dwSize, sizeof(*lpCaps))); ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * wodGetNumDevs [internal] ++ * Context-sanity check here, as if we respond with 0, WINE will move on ++ * to the next waveout driver. ++ */ ++static DWORD wodGetNumDevs() { ++ if (!PULSE_ml || !PULSE_context || pa_context_get_state(PULSE_context) != PA_CONTEXT_READY) ++ return 0; ++ ++ PULSE_UpdateWavedevs(PULSE_OUT_DEVS); ++ return PULSE_WodNumDevs; ++} ++ ++/************************************************************************** ++ * wodGetVolume [internal] ++ */ ++static DWORD wodGetVolume(WINE_WAVEINST *wwo, LPDWORD lpdwVol) { ++ float value1, value2; ++ DWORD wleft, wright; ++ ++ if (!wwo || wwo->state == WINE_WS_FAILED) { ++ WARN("Stream instance invalid.\n"); ++ return MMSYSERR_INVALHANDLE; ++ } ++ ++ TRACE("(%p, %p);\n", wwo, lpdwVol); ++ ++ if (lpdwVol == NULL) ++ return MMSYSERR_NOTENABLED; ++ ++ pa_threaded_mainloop_lock(PULSE_ml); ++ if (wwo->stream && PULSE_context && pa_context_get_state(PULSE_context) == PA_CONTEXT_READY && ++ pa_stream_get_state(wwo->stream) == PA_STREAM_READY) { ++ PULSE_WaitForOperation(pa_context_get_sink_input_info(PULSE_context, pa_stream_get_index(wwo->stream), WAVEOUT_SinkInputInfoCallback, wwo)); ++ } ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ ++ ++ if (wwo->volume.channels == 2) { ++ value1 = pa_sw_volume_to_dB(wwo->volume.values[0]); ++ value2 = pa_sw_volume_to_dB(wwo->volume.values[1]); ++ } else { ++ value1 = pa_sw_volume_to_dB(pa_cvolume_avg(&wwo->volume)); ++ value2 = 0; ++ } ++ ++ if (value1 < -60) ++ wleft = 0; ++ else ++ ++ if (value2 < -60) ++ wright = 0; ++ else ++ wright = 0xFFFFl - ((value2 / -60)*(float)0xFFFFl); ++ ++ if (wleft > 0xFFFFl) ++ wleft = 0xFFFFl; ++ if (wright > 0xFFFFl) ++ wright = 0xFFFFl; ++ ++ *lpdwVol = (WORD)wleft + (WORD)(wright << 16); ++ ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * wodSetVolume [internal] ++ */ ++static DWORD wodSetVolume(WINE_WAVEINST *wwo, DWORD dwParam1) { ++ double value1, value2; ++ ++ TRACE("(%p, %08X);\n", wwo, dwParam1); ++ if (!wwo || wwo->state == WINE_WS_FAILED) { ++ WARN("Stream instance invalid.\n"); ++ return MMSYSERR_INVALHANDLE; ++ } ++ ++ /* waveOut volumes are /supposed/ to be logarithmic */ ++ value1 = LOWORD(dwParam1) == 0 ? PA_DECIBEL_MININFTY : ((float)(0xFFFFl - LOWORD(dwParam1))/0xFFFFl) * -60.0; ++ value2 = HIWORD(dwParam1) == 0 ? PA_DECIBEL_MININFTY : ((float)(0xFFFFl - HIWORD(dwParam1))/0xFFFFl) * -60.0; ++ ++ if (wwo->sample_spec.channels == 2) { ++ wwo->volume.channels = 2; ++ wwo->volume.values[0] = pa_sw_volume_from_dB(value1); ++ wwo->volume.values[1] = pa_sw_volume_from_dB(value2); ++ } else { ++ if (value1 != value2) FIXME("Non-stereo streams can't pan!\n"); ++ wwo->volume.channels = wwo->sample_spec.channels; ++ pa_cvolume_set(&wwo->volume, wwo->volume.channels, pa_sw_volume_from_dB(MAX(value1, value2))); ++ } ++ ++ if (TRACE_ON(wave)) { ++ char s[PA_CVOLUME_SNPRINT_MAX]; ++ pa_cvolume_snprint(s, PA_CVOLUME_SNPRINT_MAX, &wwo->volume); ++ TRACE("%s\n", s); ++ } ++ ++ pa_threaded_mainloop_lock(PULSE_ml); ++ if (!wwo->stream || !PULSE_context || pa_context_get_state(PULSE_context) != PA_CONTEXT_READY || ++ pa_stream_get_state(wwo->stream) != PA_STREAM_READY || !pa_cvolume_valid(&wwo->volume)) { ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ return MMSYSERR_NOERROR; ++ } ++ ++ PULSE_WaitForOperation(pa_context_set_sink_input_volume(PULSE_context, ++ pa_stream_get_index(wwo->stream), &wwo->volume, ++ PULSE_ContextSuccessCallback, wwo)); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * wodRestart [internal] ++ */ ++static DWORD wodRestart(WINE_WAVEINST *wwo) { ++ if (!wwo || wwo->state == WINE_WS_FAILED) { ++ WARN("Stream instance invalid.\n"); ++ return MMSYSERR_INVALHANDLE; ++ } ++ ++ if (wwo->state == WINE_WS_PAUSED) ++ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_RESTARTING, 0, TRUE); ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * wodReset [internal] ++ */ ++static DWORD wodReset(WINE_WAVEINST *wwo) { ++ if (!wwo || wwo->state == WINE_WS_FAILED) { ++ WARN("Stream instance invalid.\n"); ++ return MMSYSERR_INVALHANDLE; ++ } ++ ++ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_RESETTING, 0, TRUE); ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * wodDevInterfaceSize [internal] ++ */ ++static DWORD wodDevInterfaceSize(UINT wDevID, LPDWORD dwParam1) { ++ ++ *dwParam1 = MultiByteToWideChar(CP_ACP, 0, WOutDev[wDevID].interface_name, -1, NULL, 0) * sizeof(WCHAR); ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * wodDevInterface [internal] ++ */ ++static DWORD wodDevInterface(UINT wDevID, PWCHAR dwParam1, DWORD dwParam2) { ++ if (dwParam2 >= MultiByteToWideChar(CP_ACP, 0, WOutDev[wDevID].interface_name, -1, ++ NULL, 0 ) * sizeof(WCHAR)) ++ { ++ MultiByteToWideChar(CP_ACP, 0, WOutDev[wDevID].interface_name, -1, ++ dwParam1, dwParam2 / sizeof(WCHAR)); ++ return MMSYSERR_NOERROR; ++ } ++ return MMSYSERR_INVALPARAM; ++} ++ ++/************************************************************************** ++ * wodMessage (WINEPULSE.@) ++ */ ++DWORD WINAPI PULSE_wodMessage(UINT wDevID, UINT wMsg, DWORD dwUser, ++ DWORD dwParam1, DWORD dwParam2) { ++/* ++ TRACE("(%u, %s, %08X, %08X, %08X);\n", ++ wDevID, PULSE_getMessage(wMsg), dwUser, dwParam1, dwParam2); ++*/ ++ switch (wMsg) { ++ case DRVM_INIT: ++ case DRVM_EXIT: ++ case DRVM_ENABLE: ++ case DRVM_DISABLE: ++ /* FIXME: Pretend this is supported */ ++ return 0; ++ case WODM_OPEN: return wodOpen (wDevID, (LPDWORD)dwUser, (LPWAVEOPENDESC)dwParam1, dwParam2); ++ case WODM_CLOSE: return wodClose ((WINE_WAVEINST*)dwUser); ++ case WODM_WRITE: return wodWrite ((WINE_WAVEINST*)dwUser, (LPWAVEHDR)dwParam1, dwParam2); ++ case WODM_PAUSE: return wodPause ((WINE_WAVEINST*)dwUser); ++ case WODM_GETPOS: return wodGetPosition ((WINE_WAVEINST*)dwUser, (LPMMTIME)dwParam1, dwParam2); ++ case WODM_BREAKLOOP: return wodBreakLoop ((WINE_WAVEINST*)dwUser); ++ case WODM_PREPARE: return MMSYSERR_NOTSUPPORTED; ++ case WODM_UNPREPARE: return MMSYSERR_NOTSUPPORTED; ++ case WODM_GETDEVCAPS: return wodGetDevCaps (wDevID, (LPWAVEOUTCAPSW)dwParam1, dwParam2); ++ case WODM_GETNUMDEVS: return wodGetNumDevs (); ++ case WODM_GETPITCH: return MMSYSERR_NOTSUPPORTED; ++ case WODM_SETPITCH: return MMSYSERR_NOTSUPPORTED; ++ case WODM_GETPLAYBACKRATE: return MMSYSERR_NOTSUPPORTED; /* support if theoretically possible */ ++ case WODM_SETPLAYBACKRATE: return MMSYSERR_NOTSUPPORTED; /* since pulseaudio 0.9.8 */ ++ case WODM_GETVOLUME: return wodGetVolume ((WINE_WAVEINST*)dwUser, (LPDWORD)dwParam1); ++ case WODM_SETVOLUME: return wodSetVolume ((WINE_WAVEINST*)dwUser, dwParam1); ++ case WODM_RESTART: return wodRestart ((WINE_WAVEINST*)dwUser); ++ case WODM_RESET: return wodReset ((WINE_WAVEINST*)dwUser); ++ case DRV_QUERYDEVICEINTERFACESIZE: return wodDevInterfaceSize (wDevID, (LPDWORD)dwParam1); ++ case DRV_QUERYDEVICEINTERFACE: return wodDevInterface (wDevID, (PWCHAR)dwParam1, dwParam2); ++ case DRV_QUERYDSOUNDIFACE: return wodDsCreate (wDevID, (PIDSDRIVER*)dwParam1); ++ case DRV_QUERYDSOUNDDESC: return wodDsDesc (wDevID, (PDSDRIVERDESC)dwParam1); ++ default: ++ FIXME("unknown message %d!\n", wMsg); ++ } ++ return MMSYSERR_NOTSUPPORTED; ++} ++ ++#else /* !HAVE_PULSEAUDIO */ ++ ++/************************************************************************** ++ * wodMessage (WINEPULSE.@) ++ */ ++DWORD WINAPI PULSE_wodMessage(WORD wDevID, WORD wMsg, DWORD dwUser, ++ DWORD dwParam1, DWORD dwParam2) { ++ FIXME("(%u, %04X, %08X, %08X, %08X):stub\n", wDevID, wMsg, dwUser, ++ dwParam1, dwParam2); ++ return MMSYSERR_NOTENABLED; ++} ++ ++#endif /* HAVE_PULSEAUDIO */ +diff --git a/dlls/winepulse.drv/winepulse.drv.spec b/dlls/winepulse.drv/winepulse.drv.spec +new file mode 100644 +index 0000000..1b49460 +--- /dev/null ++++ b/dlls/winepulse.drv/winepulse.drv.spec +@@ -0,0 +1,3 @@ ++@ stdcall -private DriverProc(long long long long long long) PULSE_DriverProc ++@ stdcall -private wodMessage(long long long long long long) PULSE_wodMessage ++@ stdcall -private widMessage(long long long long long long) PULSE_widMessage +diff --git a/dlls/winepulse.drv/winepulse.h b/dlls/winepulse.drv/winepulse.h +new file mode 100644 +index 0000000..27690d3 +--- /dev/null ++++ b/dlls/winepulse.drv/winepulse.h +@@ -0,0 +1,232 @@ ++/* Definitions for PulseAudio Wine Driver ++ * ++ * Copyright 2008 Arthur Taylor ++ * ++ * 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, write to the Free Software ++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA ++ */ ++ ++#ifndef __WINE_CONFIG_H ++# error You must include config.h to use this header ++#endif ++ ++#if defined(HAVE_PULSEAUDIO) && !defined(__WINEPULSE_H) ++#define __WINEPULSE_H ++ ++#include "mmreg.h" ++#include "dsound.h" ++#include "dsdriver.h" ++ ++#include "ks.h" ++#include "ksmedia.h" ++#include "ksguid.h" ++ ++#include ++ ++/* state diagram for waveOut writing: ++ * ++ * +---------+-------------+---------------+---------------------------------+ ++ * | state | function | event | new state | ++ * +---------+-------------+---------------+---------------------------------+ ++ * | | open() | | STOPPED | ++ * | PAUSED | write() | | PAUSED | ++ * | STOPPED | write() | | PLAYING | ++ * | PLAYING | write() | HEADER | PLAYING | ++ * | (other) | write() | | | ++ * | (any) | pause() | PAUSING | PAUSED | ++ * | PAUSED | restart() | RESTARTING | PLAYING (if no thrd => STOPPED) | ++ * | (any) | reset() | RESETTING | STOPPED | ++ * | (any) | close() | CLOSING | CLOSED | ++ * +---------+-------------+---------------+---------------------------------+ ++ */ ++ ++/* states of the playing device */ ++#define WINE_WS_PLAYING 1 ++#define WINE_WS_PAUSED 2 ++#define WINE_WS_STOPPED 3 ++#define WINE_WS_CLOSED 4 ++#define WINE_WS_FAILED 5 ++ ++#define PULSE_OUT_DEVS 0x1 ++#define PULSE_IN_DEVS 0x2 ++#define PULSE_ALL_DEVS PULSE_IN_DEVS | PULSE_OUT_DEVS ++ ++#define PULSE_ALL_FORMATS \ ++ WAVE_FORMAT_1M08 | /* Mono 11025Hz 8-bit */\ ++ WAVE_FORMAT_1M16 | /* Mono 11025Hz 16-bit */\ ++ WAVE_FORMAT_1S08 | /* Stereo 11025Hz 8-bit */\ ++ WAVE_FORMAT_1S16 | /* Stereo 11025Hz 16-bit */\ ++ WAVE_FORMAT_2M08 | /* Mono 22050Hz 8-bit */\ ++ WAVE_FORMAT_2M16 | /* Mono 22050Hz 16-bit */\ ++ WAVE_FORMAT_2S08 | /* Stereo 22050Hz 8-bit */\ ++ WAVE_FORMAT_2S16 | /* Stereo 22050Hz 16-bit */\ ++ WAVE_FORMAT_4M08 | /* Mono 44100Hz 8-bit */\ ++ WAVE_FORMAT_4M16 | /* Mono 44100Hz 16-bit */\ ++ WAVE_FORMAT_4S08 | /* Stereo 44100Hz 8-bit */\ ++ WAVE_FORMAT_4S16 | /* Stereo 44100Hz 16-bit */\ ++ WAVE_FORMAT_48M08 | /* Mono 48000Hz 8-bit */\ ++ WAVE_FORMAT_48S08 | /* Stereo 48000Hz 8-bit */\ ++ WAVE_FORMAT_48M16 | /* Mono 48000Hz 16-bit */\ ++ WAVE_FORMAT_48S16 | /* Stereo 48000Hz 16-bit */\ ++ WAVE_FORMAT_96M08 | /* Mono 96000Hz 8-bit */\ ++ WAVE_FORMAT_96S08 | /* Stereo 96000Hz 8-bit */\ ++ WAVE_FORMAT_96M16 | /* Mono 96000Hz 16-bit */\ ++ WAVE_FORMAT_96S16 /* Stereo 96000Hz 16-bit */ ++ ++/* events to be sent to device */ ++enum win_wm_message { ++ WINE_WM_PAUSING = WM_USER + 1, WINE_WM_RESTARTING, WINE_WM_RESETTING, WINE_WM_HEADER, ++ WINE_WM_BREAKLOOP, WINE_WM_CLOSING, WINE_WM_STARTING, WINE_WM_STOPPING, WINE_WM_XRUN, WINE_WM_FEED ++}; ++ ++typedef struct { ++ enum win_wm_message msg; /* message identifier */ ++ DWORD param; /* parameter for this message */ ++ HANDLE hEvent; /* if message is synchronous, handle of event for synchro */ ++} PULSE_MSG; ++ ++/* implement an in-process message ring for better performance ++ * (compared to passing thru the server) ++ * this ring will be used by the input (resp output) record (resp playback) routine ++ */ ++typedef struct { ++ PULSE_MSG * messages; ++ int ring_buffer_size; ++ int msg_tosave; ++ int msg_toget; ++/* Either pipe or event is used, but that is defined in pulse.c, ++ * since this is a global header we define both here */ ++ int msg_pipe[2]; ++ HANDLE msg_event; ++ CRITICAL_SECTION msg_crst; ++} PULSE_MSG_RING; ++ ++typedef struct WINE_WAVEDEV WINE_WAVEDEV; ++typedef struct WINE_WAVEINST WINE_WAVEINST; ++typedef struct IDsDriverImpl IDsDriverImpl; ++typedef struct IDsDriverBufferImpl IDsDriverBufferImpl; ++ ++struct IDsDriverImpl { ++ /* IUnknown fields */ ++ const IDsDriverVtbl *lpVtbl; ++ LONG ref; ++ ++ IDsDriverBufferImpl *primary; ++ UINT wDevID; ++}; ++ ++struct IDsDriverBufferImpl { ++ const IDsDriverBufferVtbl *lpVtbl; ++ IDsDriverImpl* drv; ++ LONG ref; ++ pa_stream *stream; ++ pa_sample_spec sample_spec; ++ pa_cvolume volume; ++ ++ PBYTE buffer; /* Pointer to the latest data fragment for recording streams */ ++ size_t buffer_length; /* How large the latest data fragment is */ ++ size_t buffer_read_offset; /* How far into latest data fragment we last read */ ++ size_t fraglen; ++}; ++ ++/* Per-playback/record device */ ++struct WINE_WAVEDEV { ++ char interface_name[MAXPNAMELEN * 2]; ++ char *device_name; ++ pa_cvolume volume; ++ ++ union { ++ WAVEOUTCAPSW out; ++ WAVEINCAPSW in; ++ } caps; ++ ++ /* DirectSound stuff */ ++ DSDRIVERDESC ds_desc; ++ DSDRIVERCAPS ds_caps; ++}; ++ ++/* Per-playback/record instance */ ++struct WINE_WAVEINST { ++ volatile INT state; /* one of the WINE_WS_ manifest constants */ ++ WAVEOPENDESC waveDesc; ++ WORD wFlags; ++ ++ pa_stream *stream; /* The PulseAudio stream */ ++ const pa_timing_info *timing_info; ++ pa_sample_spec sample_spec; /* Sample spec of this stream / device */ ++ pa_cvolume volume; ++ pa_buffer_attr buffer_attr; ++ ++ /* waveIn / waveOut wavaHdr information */ ++ LPWAVEHDR lpQueuePtr; /* start of queued WAVEHDRs (waiting to be notified) */ ++ LPWAVEHDR lpPlayPtr; /* start of not yet fully written buffers */ ++ DWORD dwPartialOffset; /* Offset of not yet written bytes in lpPlayPtr */ ++ LPWAVEHDR lpLoopPtr; /* pointer of first buffer in loop, if any */ ++ DWORD dwLoops; /* private copy of loop counter */ ++ ++ /* Virtual stream positioning information */ ++ DWORD last_reset; /* When the last reset occured, as pa stream time doesn't reset */ ++ struct timeval last_header; /* When the last wavehdr was received, only updated when audio is not playing yet */ ++ BOOL is_releasing; /* Whether we are releasing wavehdrs */ ++ struct timeval started_releasing; /* When wavehdr releasing started, for comparison to queued written wavehdrs */ ++ DWORD releasing_offset; /* How much audio has been released prior when releasing started in this instance */ ++ ++ /* waveIn */ ++ const void *buffer; /* Pointer to the latest data fragment for recording streams */ ++ size_t buffer_length; /* How large the latest data fragment is */ ++ size_t buffer_read_offset; /* How far into latest data fragment we last read */ ++ size_t fraglen; ++ ++ /* Thread communication and synchronization stuff */ ++ HANDLE hStartUpEvent; ++ HANDLE hThread; ++ DWORD dwThreadID; ++ PULSE_MSG_RING msgRing; ++}; ++ ++/* We establish one context per instance, so make it global to the lib */ ++pa_context *PULSE_context; /* Connection Context */ ++pa_threaded_mainloop *PULSE_ml; /* PA Runtime information */ ++ ++/* WaveIn / WaveOut devices */ ++WINE_WAVEDEV *WOutDev; ++WINE_WAVEDEV *WInDev; ++DWORD PULSE_WodNumDevs; ++DWORD PULSE_WidNumDevs; ++ ++/* pulse.c */ ++void PULSE_WaitForOperation(pa_operation *o); ++void PULSE_StreamSuccessCallback(pa_stream *s, int success, void *userdata); ++void PULSE_StreamStateCallback(pa_stream *s, void *userdata); ++void PULSE_StreamRequestCallback(pa_stream *s, size_t n, void *userdata); ++void PULSE_StreamUnderflowCallback(pa_stream *s, void *userdata); ++void PULSE_StreamOverflowCallback(pa_stream *s, void *userdata); ++void PULSE_StreamSuspendedCallback(pa_stream *s, void *userdata); ++void PULSE_StreamMovedCallback(pa_stream *s, void *userdata); ++void PULSE_ContextSuccessCallback(pa_context *c, int success, void *userdata); ++BOOL PULSE_SetupFormat(LPWAVEFORMATEX wf, pa_sample_spec *ss); ++void PULSE_GetMMTime(const pa_timing_info *t, pa_sample_spec *s, size_t last_reset, LPMMTIME lpTime); ++int PULSE_InitRingMessage(PULSE_MSG_RING* omr); ++int PULSE_DestroyRingMessage(PULSE_MSG_RING* omr); ++void PULSE_ResetRingMessage(PULSE_MSG_RING* omr); ++void PULSE_WaitRingMessage(PULSE_MSG_RING* omr, DWORD sleep); ++int PULSE_AddRingMessage(PULSE_MSG_RING* omr, enum win_wm_message msg, DWORD param, BOOL wait); ++int PULSE_RetrieveRingMessage(PULSE_MSG_RING* omr, enum win_wm_message *msg, DWORD *param, HANDLE *hEvent); ++const char * PULSE_getCmdString(enum win_wm_message msg); ++BOOL PULSE_UpdateWavedevs(int devices); ++ ++/* dsoutput.c */ ++DWORD wodDsCreate(UINT wDevID, PIDSDRIVER* drv); ++DWORD wodDsDesc(UINT wDevID, PDSDRIVERDESC desc); ++#endif From bc5a723ff21145f75bf19b2d18fe8547900eb9f0 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Tue, 24 Feb 2009 21:09:01 +0000 Subject: [PATCH 108/715] - switch from i386 to ix86 --- wine.spec | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/wine.spec b/wine.spec index e780def..7b2a09f 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ Name: wine Version: 1.1.15 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -53,7 +53,7 @@ Patch1: wine-rpath.patch Patch2: wine-desktop-mime.patch Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -ExclusiveArch: i386 +ExclusiveArch: %{ix86} # BR: All builds BuildRequires: bison @@ -869,6 +869,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/winepulse.drv.so %changelog +* Tue Feb 24 2009 Andreas Bierfert +- 1.1.15-2 +- switch from i386 to ix86 + * Sun Feb 15 2009 Andreas Bierfert - 1.1.15-1 - version upgrade From 656e3cbce1d383d87ae08a801cde57a5876dd7e4 Mon Sep 17 00:00:00 2001 From: nim Date: Sun, 15 Mar 2009 19:43:11 +0000 Subject: [PATCH 109/715] Try to build with F11 fontforge --- import.log | 1 + wine-prefixfonts.patch | 12 ------------ wine-wineshelllink.patch | 9 --------- wine.spec | 5 ++++- wineshelllink-fedora | 6 ------ 5 files changed, 5 insertions(+), 28 deletions(-) create mode 100644 import.log delete mode 100644 wine-prefixfonts.patch delete mode 100644 wine-wineshelllink.patch delete mode 100644 wineshelllink-fedora diff --git a/import.log b/import.log new file mode 100644 index 0000000..bb8668c --- /dev/null +++ b/import.log @@ -0,0 +1 @@ +wine-1_1_15-3_fc11:HEAD:wine-1.1.15-3.fc11.src.rpm:1237145709 diff --git a/wine-prefixfonts.patch b/wine-prefixfonts.patch deleted file mode 100644 index 885c56a..0000000 --- a/wine-prefixfonts.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- tools/wineprefixcreate.in.orig 2006-04-03 10:04:18.000000000 +0200 -+++ tools/wineprefixcreate.in 2006-04-03 10:06:20.000000000 +0200 -@@ -170,6 +170,9 @@ - export WINEPREFIX - "${WINELOADER:-wine}" rundll32.exe setupapi.dll,InstallHinfSection DefaultInstall 128 wine.inf - -+# Copy the font files -+cp /usr/share/wine/fonts/* "$CROOT/windows/fonts/" -+ - # Wait for the wineserver to finish - - if [ $do_wait = 1 ] diff --git a/wine-wineshelllink.patch b/wine-wineshelllink.patch deleted file mode 100644 index 0dd020c..0000000 --- a/wine-wineshelllink.patch +++ /dev/null @@ -1,9 +0,0 @@ ---- tools/wineshelllink.orig 2007-06-03 12:56:07.000000000 +0200 -+++ tools/wineshelllink 2007-06-03 12:57:27.000000000 +0200 -@@ -231,4 +231,6 @@ - desktop_entry > "$desktop_target" - fi - -+exec /usr/bin/wineshelllink-fedora -+ - exit 0 diff --git a/wine.spec b/wine.spec index 7b2a09f..8e8df01 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ Name: wine Version: 1.1.15 -Release: 2%{?dist} +Release: 3%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -869,6 +869,9 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/winepulse.drv.so %changelog +* Sun Mar 15 2009 Nicolas Mailhot - 1.1.15-3 +— Make sure F11 font packages have been built with F11 fontforge + * Tue Feb 24 2009 Andreas Bierfert - 1.1.15-2 - switch from i386 to ix86 diff --git a/wineshelllink-fedora b/wineshelllink-fedora deleted file mode 100644 index 6473493..0000000 --- a/wineshelllink-fedora +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -for i in $HOME/.config/menus/applications-merged/*menu ; do - sed -i -e 's:wine-wine:Wine:g' \ - -e ':wine-wine:wine:g' "$i" -done From 0ff522185f283ccc7ce76540d944a05de927d4d3 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Tue, 7 Apr 2009 13:40:40 +0000 Subject: [PATCH 110/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 90 +-- winepulse-0.20.patch => winepulse-0.24.patch | 758 +++++++++---------- 4 files changed, 403 insertions(+), 449 deletions(-) rename winepulse-0.20.patch => winepulse-0.24.patch (87%) diff --git a/.cvsignore b/.cvsignore index c038f0e..8cff2a6 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-1.1.15-fe.tar.bz2 +wine-1.1.18-fe.tar.bz2 diff --git a/sources b/sources index 3554a20..4efaac4 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -cfeb6cfd7404c2fed2c9f2623976ea7e wine-1.1.15-fe.tar.bz2 +1933049a7cc725bcb488c6669fa5ca9e wine-1.1.18-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index 8e8df01..41197b9 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ Name: wine -Version: 1.1.15 -Release: 3%{?dist} +Version: 1.1.18 +Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -43,7 +43,7 @@ Source300: wine-mime-msi.desktop # see http://bugs.winehq.org/show_bug.cgi?id=10495 # and http://art.ified.ca/?page_id=40 Patch400: http://art.ified.ca/downloads/winepulse-0.17-configure.ac.patch -Patch401: http://art.ified.ca/downloads/winepulse-0.20.patch +Patch401: http://art.ified.ca/downloads/winepulse-0.24.patch Patch402: http://art.ified.ca/downloads/adding-pulseaudio-to-winecfg.patch Source402: README-FEDORA-PULSEAUDIO @@ -402,15 +402,12 @@ update-desktop-database &>/dev/null || : %{_bindir}/regsvr32 %{_bindir}/wine %{_bindir}/wineboot -%{_bindir}/winebrowser %{_bindir}/wineconsole %{_bindir}/wineprefixcreate %{_mandir}/man1/wineprefixcreate.1* %{_bindir}/winecfg -%{_bindir}/uninstaller %{_libdir}/wine/cacls.exe.so %{_libdir}/wine/expand.exe.so -%{_libdir}/wine/winhelp.exe16 %{_libdir}/wine/winhlp32.exe.so %{_libdir}/wine/msiexec.exe.so %{_libdir}/wine/net.exe.so @@ -438,11 +435,7 @@ update-desktop-database &>/dev/null || : %lang(fr) %{_mandir}/fr.UTF-8/man1/* %{_datadir}/wine/generic.ppd %{_datadir}/wine/wine.inf -%{_bindir}/wine-kthread %{_bindir}/wine-preloader -%{_bindir}/wine-pthread -# < 0.9.60 -#%{_bindir}/winelauncher %{_bindir}/wineserver %{_libdir}/libwine.so.1* %dir %{_libdir}/wine @@ -458,7 +451,6 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/authz.dll.so %{_libdir}/wine/avicap32.dll.so %{_libdir}/wine/avifil32.dll.so -%{_libdir}/wine/avifile.dll16 %{_libdir}/wine/browseui.dll.so %{_libdir}/wine/cabinet.dll.so %{_libdir}/wine/cards.dll.so @@ -468,9 +460,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/comcat.dll.so %{_libdir}/wine/comctl32.dll.so %{_libdir}/wine/comdlg32.dll.so -%{_libdir}/wine/comm.drv16 %{_libdir}/wine/commdlg.dll16 -%{_libdir}/wine/compobj.dll16 %{_libdir}/wine/compstui.dll.so %{_libdir}/wine/credui.dll.so %{_libdir}/wine/crtdll.dll.so @@ -480,9 +470,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/cryptnet.dll.so %{_libdir}/wine/cryptui.dll.so %{_libdir}/wine/ctapi32.dll.so -%{_libdir}/wine/ctl3d.dll16 %{_libdir}/wine/ctl3d32.dll.so -%{_libdir}/wine/ctl3dv2.dll16 %{_libdir}/wine/d3d10.dll.so %{_libdir}/wine/d3d10core.dll.so %{_libdir}/wine/d3dim.dll.so @@ -497,8 +485,6 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/devenum.dll.so %{_libdir}/wine/dinput.dll.so %{_libdir}/wine/dinput8.dll.so -%{_libdir}/wine/dispdib.dll16 -%{_libdir}/wine/display.drv16 %{_libdir}/wine/dmband.dll.so %{_libdir}/wine/dmcompos.dll.so %{_libdir}/wine/dmime.dll.so @@ -543,7 +529,6 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/ifsmgr.vxd.so %{_libdir}/wine/imaadp32.acm.so %{_libdir}/wine/imagehlp.dll.so -%{_libdir}/wine/imm.dll16 %{_libdir}/wine/imm32.dll.so %{_libdir}/wine/inetcomm.dll.so %{_libdir}/wine/inetmib1.dll.so @@ -556,14 +541,12 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/itss.dll.so %{_libdir}/wine/jscript.dll.so %{_libdir}/wine/kernel32.dll.so -%{_libdir}/wine/keyboard.drv16 %{_libdir}/wine/krnl386.exe16 %{_libdir}/wine/loadperf.dll.so %{_libdir}/wine/localspl.dll.so %{_libdir}/wine/localui.dll.so %{_libdir}/wine/lodctr.exe.so %{_libdir}/wine/lz32.dll.so -%{_libdir}/wine/lzexpand.dll16 %{_libdir}/wine/mapi32.dll.so %{_libdir}/wine/mciavi32.dll.so %{_libdir}/wine/mcicda.dll.so @@ -575,10 +558,8 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/mmsystem.dll16 %{_libdir}/wine/monodebg.vxd.so %{_libdir}/wine/mountmgr.sys.so -%{_libdir}/wine/mouse.drv16 %{_libdir}/wine/mpr.dll.so %{_libdir}/wine/mprapi.dll.so -%{_libdir}/wine/msacm.dll16 %{_libdir}/wine/msacm32.dll.so %{_libdir}/wine/msacm32.drv.so %{_libdir}/wine/msadp32.acm.so @@ -620,20 +601,12 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/objsel.dll.so %{_libdir}/wine/odbc32.dll.so %{_libdir}/wine/odbccp32.dll.so -%{_libdir}/wine/ole2.dll16 -%{_libdir}/wine/ole2conv.dll16 -%{_libdir}/wine/ole2disp.dll16 -%{_libdir}/wine/ole2nls.dll16 -%{_libdir}/wine/ole2prox.dll16 -%{_libdir}/wine/ole2thk.dll16 %{_libdir}/wine/ole32.dll.so %{_libdir}/wine/oleacc.dll.so %{_libdir}/wine/oleaut32.dll.so -%{_libdir}/wine/olecli.dll16 %{_libdir}/wine/olecli32.dll.so %{_libdir}/wine/oledlg.dll.so %{_libdir}/wine/olepro32.dll.so -%{_libdir}/wine/olesvr.dll16 %{_libdir}/wine/olesvr32.dll.so %{_libdir}/wine/olethk32.dll.so %{_libdir}/wine/pdh.dll.so @@ -649,7 +622,6 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/qmgrprxy.dll.so %{_libdir}/wine/quartz.dll.so %{_libdir}/wine/query.dll.so -%{_libdir}/wine/rasapi16.dll16 %{_libdir}/wine/rasapi32.dll.so %{_libdir}/wine/rasdlg.dll.so %{_libdir}/wine/resutils.dll.so @@ -676,13 +648,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/slc.dll.so %{_libdir}/wine/snmpapi.dll.so %{_libdir}/wine/softpub.dll.so -%{_libdir}/wine/sound.drv16 %{_libdir}/wine/spoolsv.exe.so %{_libdir}/wine/stdole2.tlb.so %{_libdir}/wine/stdole32.tlb.so %{_libdir}/wine/sti.dll.so -%{_libdir}/wine/storage.dll16 -%{_libdir}/wine/stress.dll16 %{_libdir}/wine/svchost.exe.so %{_libdir}/wine/svrapi.dll.so %{_libdir}/wine/sxs.dll.so @@ -690,7 +659,6 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/tapi32.dll.so %{_libdir}/wine/toolhelp.dll16 %{_libdir}/wine/traffic.dll.so -%{_libdir}/wine/typelib.dll16 %{_libdir}/wine/unicows.dll.so %{_libdir}/wine/unlodctr.exe.so %{_libdir}/wine/updspapi.dll.so @@ -711,11 +679,6 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/vtdapi.vxd.so %{_libdir}/wine/vwin32.vxd.so %{_libdir}/wine/w32skrnl.dll.so -%{_libdir}/wine/w32sys.dll16 -%{_libdir}/wine/win32s16.dll16 -%{_libdir}/wine/win87em.dll16 -%{_libdir}/wine/winaspi.dll16 -%{_libdir}/wine/windebug.dll16 %{_libdir}/wine/wineaudioio.drv.so %{_libdir}/wine/winedos.dll.so %{_libdir}/wine/wineoss.drv.so @@ -727,15 +690,12 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/winhttp.dll.so %{_libdir}/wine/wininet.dll.so %{_libdir}/wine/winmm.dll.so -%{_libdir}/wine/winnls.dll16 %{_libdir}/wine/winnls32.dll.so %{_libdir}/wine/winsock.dll16 %{_libdir}/wine/winspool.drv.so %{_libdir}/wine/wmi.dll.so %{_libdir}/wine/spoolss.dll.so -%{_libdir}/wine/winoldap.mod16 %{_libdir}/wine/winscard.dll.so -%{_libdir}/wine/wintab.dll16 %{_libdir}/wine/wintab32.dll.so %{_libdir}/wine/wintrust.dll.so %{_libdir}/wine/wnaspi32.dll.so @@ -764,11 +724,47 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/xinput1_3.dll.so %{_libdir}/wine/xinput9_1_0.dll.so %{_sysconfdir}/ld.so.conf.d/wine-32.conf +# 16bit +%{_libdir}/wine/avifile.dll16.so +%{_libdir}/wine/comm.drv16.so +%{_libdir}/wine/compobj.dll16.so +%{_libdir}/wine/ctl3d.dll16.so +%{_libdir}/wine/ctl3dv2.dll16.so +%{_libdir}/wine/dispdib.dll16.so +%{_libdir}/wine/display.drv16.so +%{_libdir}/wine/imm.dll16.so +%{_libdir}/wine/keyboard.drv16.so +%{_libdir}/wine/lzexpand.dll16.so +%{_libdir}/wine/mciqtz32.dll.so +%{_libdir}/wine/mouse.drv16.so +%{_libdir}/wine/msacm.dll16.so +%{_libdir}/wine/ole2.dll16.so +%{_libdir}/wine/ole2conv.dll16.so +%{_libdir}/wine/ole2disp.dll16.so +%{_libdir}/wine/ole2nls.dll16.so +%{_libdir}/wine/ole2prox.dll16.so +%{_libdir}/wine/ole2thk.dll16.so +%{_libdir}/wine/olecli.dll16.so +%{_libdir}/wine/olesvr.dll16.so +%{_libdir}/wine/rasapi16.dll16.so +%{_libdir}/wine/sound.drv16.so +%{_libdir}/wine/storage.dll16.so +%{_libdir}/wine/stress.dll16.so +%{_libdir}/wine/twain.dll16.so +%{_libdir}/wine/typelib.dll16.so +%{_libdir}/wine/w32sys.dll16.so +%{_libdir}/wine/win32s16.dll16.so +%{_libdir}/wine/win87em.dll16.so +%{_libdir}/wine/winaspi.dll16.so +%{_libdir}/wine/windebug.dll16.so +%{_libdir}/wine/winhelp.exe16.so +%{_libdir}/wine/winnls.dll16.so +%{_libdir}/wine/winoldap.mod16.so +%{_libdir}/wine/wintab.dll16.so %files tools %defattr(-,root,root,-) %{_bindir}/notepad -%{_bindir}/progman %{_bindir}/winedbg %{_bindir}/winedump %{_bindir}/winefile @@ -826,7 +822,6 @@ update-desktop-database &>/dev/null || : %files twain %defattr(-,root,root,-) -%{_libdir}/wine/twain.dll16 %{_libdir}/wine/twain_32.dll.so %{_libdir}/wine/sane.ds.so @@ -869,6 +864,11 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/winepulse.drv.so %changelog +* Mon Mar 30 2009 Andreas Bierfert +- 1.1.18-1 +- version upgrade (#490672, #491321) +- winepulse update + * Sun Mar 15 2009 Nicolas Mailhot - 1.1.15-3 — Make sure F11 font packages have been built with F11 fontforge diff --git a/winepulse-0.20.patch b/winepulse-0.24.patch similarity index 87% rename from winepulse-0.20.patch rename to winepulse-0.24.patch index 97de6d9..97466a4 100644 --- a/winepulse-0.20.patch +++ b/winepulse-0.24.patch @@ -22,10 +22,10 @@ index 0000000..327f225 +@DEPENDENCIES@ # everything below this line is overwritten by make depend diff --git a/dlls/winepulse.drv/dsoutput.c b/dlls/winepulse.drv/dsoutput.c new file mode 100644 -index 0000000..5086917 +index 0000000..b37313a --- /dev/null +++ b/dlls/winepulse.drv/dsoutput.c -@@ -0,0 +1,568 @@ +@@ -0,0 +1,576 @@ +/* + * Wine Driver for PulseAudio - DSound Output Functionality + * http://pulseaudio.org/ @@ -74,6 +74,22 @@ index 0000000..5086917 + * Low level DSOUND implementation * + *======================================================================*/ + ++/* A buffer is allocated with a pointer indicating the read position in the ++ * buffer. The pulse write callback reads data from the buffer, updating the ++ * read pointer to the location at the end of the read. Upon reaching the end ++ * or attempting to read past the end of buffer the read pointer wraps around ++ * to the beginning again. DirectSound applications can write anywhere in the ++ * buffer at anytime without locking and can know the location of the read ++ * pointer. The position of the read pointer cannot be changed by the ++ * application and access to it uses a locking scheme. A fake pointer ++ * indicating estimated playback position is also available to the application. ++ * Applications can potentially write to the same area of memory which is also ++ * being read by the pulse thread. However, this is uncommon as directsound ++ * applications know where pulse should be reading from via the pointer ++ * locations and MSDN says that such an operation should be avoided with the ++ * results being undefined. ++ */ ++ +/* Fragment lengths try to be a power of two close to 10ms worth of data. See + * dlls/dsound/mixer.c + */ @@ -100,24 +116,25 @@ index 0000000..5086917 + /* Fraglens are always powers of 2 */ + nbytes+= This->fraglen - 1; + nbytes&= ~(This->fraglen - 1); ++ + /* If we advance more than 10 fragments at a time it appears that the buffer + * pointer is never advancing because of wrap-around. Evil magic numbers. */ -+ if (nbytes > This->fraglen * 6) -+ nbytes = This->fraglen * 6; ++ if (nbytes > This->fraglen * 5) ++ nbytes = This->fraglen * 5; + + TRACE("Reading %u bytes.\n", nbytes); + -+ if (This->buffer_read_offset + nbytes > This->buffer_length) { -+ size_t write_length = This->buffer_length - This->buffer_read_offset; -+ if (nbytes > This->buffer_length) -+ nbytes = This->buffer_length; -+ nbytes -= write_length; -+ pa_stream_write(s, This->buffer + This->buffer_read_offset, write_length, NULL, 0, PA_SEEK_RELATIVE); -+ pa_stream_write(s, This->buffer, nbytes, NULL, 0, PA_SEEK_RELATIVE); -+ This->buffer_read_offset = nbytes; ++ if (This->buffer_read_offset + nbytes <= This->buffer_length) { ++ pa_stream_write(s, This->buffer + This->buffer_read_offset, nbytes, NULL, 0, PA_SEEK_RELATIVE); ++ This->buffer_play_offset = This->buffer_read_offset; ++ This->buffer_read_offset += nbytes; + } else { -+ pa_stream_write(s, This->buffer + This->buffer_read_offset, nbytes, NULL, 0, PA_SEEK_RELATIVE); -+ This->buffer_read_offset += nbytes; ++ size_t write_length = This->buffer_length - This->buffer_read_offset; ++ nbytes -= write_length; ++ pa_stream_write(s, This->buffer + This->buffer_read_offset, write_length, NULL, 0, PA_SEEK_RELATIVE); ++ pa_stream_write(s, This->buffer, nbytes, NULL, 0, PA_SEEK_RELATIVE); ++ This->buffer_play_offset = This->buffer_read_offset; ++ This->buffer_read_offset = nbytes; + } + + This->buffer_read_offset %= This->buffer_length; @@ -128,25 +145,31 @@ index 0000000..5086917 + WARN("(%p) underrun.\n", userdata); +} + -+/* Connects a stream to the server for use in setting the sample format or -+ * stream creation. Does not update IDsDriverBufferImpl->fraglen */ ++/* Connects a stream to the server. Does not update ++ * IDsDriverBufferImpl->fraglen. Does not lock the pulse mainloop or free ++ * objects in case of failure. This should be handled by the calling function. ++ */ +static HRESULT DSPULSE_ConnectStream(IDsDriverBufferImpl* This) { + pa_buffer_attr ba_request; + const pa_buffer_attr *ba_obtained; + char c[PA_SAMPLE_SPEC_SNPRINT_MAX]; -+ pa_stream_flags_t flags = PA_STREAM_START_CORKED; -+ -+#if PA_API_VERSION >= 12 -+ flags |= PA_STREAM_EARLY_REQUESTS; ++ pa_stream_flags_t stream_flags = PA_STREAM_START_CORKED; ++ ++#if PA_PROTOCOL_VERSION >= 14 ++ /* We are a "fragment wait based" application, so this flag should be ++ * acceptable. */ ++ stream_flags |= PA_STREAM_EARLY_REQUESTS; ++#elif PA_PROTOCOL_VERSION >= 13 && PA_API_VERSION >= 12 ++ stream_flags |= PA_STREAM_ADJUST_LATENCY; +#endif + + pa_sample_spec_snprint(c, PA_SAMPLE_SPEC_SNPRINT_MAX, &This->sample_spec); + TRACE("Sample spec %s fragment size %u.\n", c, This->fraglen); + -+ ba_request.tlength = This->fraglen * 4; -+ ba_request.minreq = This->fraglen / 2; -+ ba_request.prebuf = (uint32_t) -1; /* same as tlength */ -+ ba_request.maxlength = This->buffer_length; ++ ba_request.tlength = This->fraglen * 4; // ~40ms ++ ba_request.minreq = This->fraglen; // ~10ms ++ ba_request.prebuf = (uint32_t)-1; // same as tlength ++ ba_request.maxlength = This->buffer_length; // 2^x = ~3s + + TRACE("Asking for buffer tlength:%u (%llums) minreq:%u (%llums)\n", + ba_request.tlength, pa_bytes_to_usec(ba_request.tlength, &This->sample_spec)/1000, @@ -160,21 +183,21 @@ index 0000000..5086917 + pa_stream_set_underflow_callback(This->stream, DSPULSE_BufferUnderflowCallback, This); + + TRACE("Attempting to connect (%p)->stream for playback on %s\n", This, WOutDev[This->drv->wDevID].device_name); -+ pa_stream_connect_playback(This->stream, WOutDev[This->drv->wDevID].device_name, &ba_request, flags, NULL, NULL); ++ pa_stream_connect_playback(This->stream, WOutDev[This->drv->wDevID].device_name, &ba_request, stream_flags, NULL, NULL); + for (;;) { + pa_context_state_t cstate = pa_context_get_state(PULSE_context); + pa_stream_state_t sstate = pa_stream_get_state(This->stream); + -+ if (cstate == PA_CONTEXT_FAILED || cstate == PA_CONTEXT_TERMINATED || -+ sstate == PA_STREAM_FAILED || sstate == PA_STREAM_TERMINATED) { -+ ERR("Failed to connect stream context object: %s\n", pa_strerror(pa_context_errno(PULSE_context))); -+ return DSERR_BUFFERLOST; -+ } ++ if (cstate == PA_CONTEXT_FAILED || cstate == PA_CONTEXT_TERMINATED || ++ sstate == PA_STREAM_FAILED || sstate == PA_STREAM_TERMINATED) { ++ ERR("Failed to connect stream context object: %s\n", pa_strerror(pa_context_errno(PULSE_context))); ++ return DSERR_BUFFERLOST; ++ } + -+ if (sstate == PA_STREAM_READY) -+ break; ++ if (sstate == PA_STREAM_READY) ++ break; + -+ pa_threaded_mainloop_wait(PULSE_ml); ++ pa_threaded_mainloop_wait(PULSE_ml); + } + TRACE("(%p)->stream connected for playback.\n", This); + ba_obtained = pa_stream_get_buffer_attr(This->stream); @@ -211,20 +234,15 @@ index 0000000..5086917 + return refCount; + + TRACE("mmap buffer %p destroyed\n", This->buffer); -+ + pa_threaded_mainloop_lock(PULSE_ml); + PULSE_WaitForOperation(pa_stream_cork(This->stream, 1, PULSE_StreamSuccessCallback, This)); + pa_stream_disconnect(This->stream); -+ + if (This == This->drv->primary) + This->drv->primary = NULL; -+ + HeapFree(GetProcessHeap(), 0, This->buffer); + This->buffer = NULL; -+ + pa_stream_unref(This->stream); + This->stream = NULL; -+ + HeapFree(GetProcessHeap(), 0, This); + pa_threaded_mainloop_unlock(PULSE_ml); + @@ -255,7 +273,6 @@ index 0000000..5086917 + * destroy and re-create the stream if the sample spec is different */ +static HRESULT WINAPI IDsDriverBufferImpl_SetFormat(PIDSDRIVERBUFFER iface, LPWAVEFORMATEX pwfx) { + IDsDriverBufferImpl *This = (IDsDriverBufferImpl *)iface; -+ HRESULT ret = DS_OK; + pa_sample_spec old_spec; + + TRACE("(%p, %p)\n", iface, pwfx); @@ -265,29 +282,18 @@ index 0000000..5086917 + old_spec.channels = This->sample_spec.channels; + + if (!PULSE_SetupFormat(pwfx, &This->sample_spec)) -+ return DSERR_BADFORMAT; ++ return DSERR_BADFORMAT; + -+ pa_threaded_mainloop_lock(PULSE_ml); + if (old_spec.rate == This->sample_spec.rate && -+ old_spec.format == This->sample_spec.format && -+ old_spec.channels == This->sample_spec.channels) { -+ TRACE("same as original sample spec, exiting.\n"); -+ ret = DS_OK; -+ goto leave; ++ old_spec.format == This->sample_spec.format && ++ old_spec.channels == This->sample_spec.channels) { ++ TRACE("same as original sample spec, exiting.\n"); ++ return DS_OK; + } + -+ This->fraglen = fragment_length(&This->sample_spec); -+ -+ TRACE("Disconnecting old stream.\n"); -+ pa_stream_disconnect(This->stream); -+ pa_stream_unref(This->stream); -+ ret = DSPULSE_ConnectStream(This); -+ -+leave: -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ -+ TRACE("Exiting\n"); -+ return ret; ++ /* If the format doesn't match, return an error and the buffer will be remade */ ++ TRACE("Formats don't match, failing causing re-creation.\n"); ++ return DSERR_BUFFERLOST; +} + +static HRESULT WINAPI IDsDriverBufferImpl_SetFrequency(PIDSDRIVERBUFFER iface, DWORD dwFreq) @@ -301,19 +307,19 @@ index 0000000..5086917 + IDsDriverBufferImpl *This = (IDsDriverBufferImpl *)iface; + + if (This->sample_spec.channels == 2) { -+ This->volume.channels = 2; -+ if (pVolPan->lPan < 0) { -+ This->volume.values[0] = pa_sw_volume_from_dB(pVolPan->lVolume/-10.0 + pVolPan->lPan/10.0); -+ This->volume.values[1] = pa_sw_volume_from_dB(pVolPan->lVolume/-10.0); -+ } else { -+ This->volume.values[0] = pa_sw_volume_from_dB(pVolPan->lVolume/-10.0); -+ This->volume.values[1] = pa_sw_volume_from_dB(pVolPan->lVolume/-10.0 - pVolPan->lPan/10.0); -+ } ++ This->volume.channels = 2; ++ if (pVolPan->lPan < 0) { ++ This->volume.values[0] = pa_sw_volume_from_dB(pVolPan->lVolume/-10.0 + pVolPan->lPan/10.0); ++ This->volume.values[1] = pa_sw_volume_from_dB(pVolPan->lVolume/-10.0); ++ } else { ++ This->volume.values[0] = pa_sw_volume_from_dB(pVolPan->lVolume/-10.0); ++ This->volume.values[1] = pa_sw_volume_from_dB(pVolPan->lVolume/-10.0 - pVolPan->lPan/10.0); ++ } + } else { -+ WARN("Panning non-stereo streams not supported yet!\n"); -+ pa_cvolume_set(&This->volume, This->sample_spec.channels, pa_sw_volume_from_dB(pVolPan->lVolume/-10.0)); -+ /* Would be nice to return DSERR_CONTROLUNAVAIL, but that isn't up to us -+ * here */ ++ WARN("Panning non-stereo streams not supported yet!\n"); ++ pa_cvolume_set(&This->volume, This->sample_spec.channels, pa_sw_volume_from_dB(pVolPan->lVolume/-10.0)); ++ /* Would be nice to return DSERR_CONTROLUNAVAIL, but that isn't up to us ++ * here */ + } + + pa_threaded_mainloop_lock(PULSE_ml); @@ -342,17 +348,15 @@ index 0000000..5086917 + IDsDriverBufferImpl *This = (IDsDriverBufferImpl *)iface; + + pa_threaded_mainloop_lock(PULSE_ml); -+ + if (!This->buffer || pa_stream_get_state(This->stream) != PA_STREAM_READY) { -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ return DSERR_UNINITIALIZED; ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ return DSERR_UNINITIALIZED; + } + -+ /* These values are fake, and must remain so */ + if (lpdwPlay) -+ *lpdwPlay = (This->buffer_read_offset + This->buffer_length - This->fraglen * 2) % This->buffer_length; ++ *lpdwPlay = This->buffer_play_offset; + if (lpdwWrite) -+ *lpdwWrite = This->buffer_read_offset; ++ *lpdwWrite = This->buffer_read_offset; + pa_threaded_mainloop_unlock(PULSE_ml); + + return DS_OK; @@ -409,6 +413,7 @@ index 0000000..5086917 + + TRACE("(%p,%p,%x,%x)\n",iface,pwfx,dwFlags,dwCardAddress); + /* we only support primary buffers */ ++ + if (!(dwFlags & DSBCAPS_PRIMARYBUFFER)) + return DSERR_UNSUPPORTED; + if (This->primary) @@ -418,18 +423,20 @@ index 0000000..5086917 + *ippdsdb = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDsDriverBufferImpl)); + + if (!*ippdsdb) { -+ ERR("Out of memory\n"); -+ return DSERR_OUTOFMEMORY; ++ ERR("Out of memory\n"); ++ return DSERR_OUTOFMEMORY; + } + + That = *ippdsdb; + That->lpVtbl = &dsdbvt; + That->ref = 1; ++ + That->drv = This; ++ TRACE("IdsDriverBufferImpl %p created.\n", That); + + if (!PULSE_SetupFormat(pwfx, &That->sample_spec)) { -+ WARN("Bad audio format.\n"); -+ ret = DSERR_BADFORMAT; ++ WARN("Bad audio format.\n"); ++ ret = DSERR_BADFORMAT; + goto err; + } + @@ -437,15 +444,20 @@ index 0000000..5086917 + * dlls/dsound/mixer.c fails to correctly understand buffer wrap around. */ + That->fraglen = fragment_length(&That->sample_spec); + That->buffer_length = That->fraglen * 32; -+ That->buffer = pa_xmalloc0(That->buffer_length); ++ That->buffer = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, That->buffer_length); ++ if (!That->buffer) { ++ ret = DSERR_OUTOFMEMORY; ++ goto err; ++ } + That->buffer_read_offset = 0; ++ That->buffer_play_offset = 0; + + pa_threaded_mainloop_lock(PULSE_ml); + ret = DSPULSE_ConnectStream(That); + pa_threaded_mainloop_unlock(PULSE_ml); + + if (ret != DS_OK) -+ goto err; ++ goto err; + + *pdwcbBufferSize = That->buffer_length; + *ppbBuffer = That->buffer; @@ -456,19 +468,15 @@ index 0000000..5086917 +err: + pa_threaded_mainloop_lock(PULSE_ml); + if (That->stream) { -+ if (pa_stream_get_state(That->stream) == PA_STREAM_READY) -+ pa_stream_disconnect(That->stream); -+ pa_stream_unref(That->stream); -+ That->stream = NULL; ++ if (pa_stream_get_state(That->stream) == PA_STREAM_READY) ++ pa_stream_disconnect(That->stream); ++ pa_stream_unref(That->stream); ++ That->stream = NULL; + } + pa_threaded_mainloop_unlock(PULSE_ml); -+ if (That->buffer) -+ HeapFree(GetProcessHeap(), 0, That->buffer); -+ -+ if (*ippdsdb) -+ HeapFree(GetProcessHeap(), 0, That); -+ *ippdsdb = NULL; -+ TRACE("exiting with failure\n"); ++ HeapFree(GetProcessHeap(), 0, That->buffer); ++ HeapFree(GetProcessHeap(), 0, *ippdsdb); ++ WARN("exiting with failure.\n"); + return ret; +} + @@ -506,7 +514,7 @@ index 0000000..5086917 + *pDesc = WOutDev[This->wDevID].ds_desc; + pDesc->dwFlags = DSDDESC_DONTNEEDSECONDARYLOCK | DSDDESC_DONTNEEDPRIMARYLOCK; + pDesc->dnDevNode = 0; /*TODO: Bwah? */ -+ pDesc->wVxdId = 0; ++ pDesc->wVxdId = 0; + pDesc->wReserved = 0; + pDesc->ulDeviceNum = This->wDevID; + pDesc->dwHeapType = DSDHEAP_NOHEAP; @@ -535,8 +543,8 @@ index 0000000..5086917 + IDsDriverImpl *This = (IDsDriverImpl *)iface; + + if (pa_context_get_state(PULSE_context) != PA_CONTEXT_READY) { -+ ERR("Context failure.\n"); -+ return DSERR_GENERIC; ++ ERR("Context failure.\n"); ++ return DSERR_GENERIC; + } + + TRACE("(%p,%p)\n",iface,pCaps); @@ -570,15 +578,15 @@ index 0000000..5086917 + IDsDriverImpl** idrv = (IDsDriverImpl**)drv; + + if (pa_context_get_state(PULSE_context) != PA_CONTEXT_READY || pa_context_is_local(PULSE_context) != 1) { -+ WARN("Connection failure or server is not local, falling back to WaveOut HEL.\n"); -+ return MMSYSERR_NOTSUPPORTED; ++ WARN("Connection failure or server is not local, falling back to WaveOut HEL.\n"); ++ return MMSYSERR_NOTSUPPORTED; + } + + *idrv = HeapAlloc(GetProcessHeap(), 0, sizeof(IDsDriverImpl)); + if (!*idrv) -+ return MMSYSERR_NOMEM; ++ return MMSYSERR_NOMEM; + -+ TRACE("driver created\n"); ++ TRACE("IDsDriverImpl %p created.\n", *idrv); + + (*idrv)->lpVtbl = &dsdvt; + (*idrv)->ref = 1; @@ -596,15 +604,15 @@ index 0000000..5086917 +#endif /* HAVE_PULSEAUDIO */ diff --git a/dlls/winepulse.drv/pulse.c b/dlls/winepulse.drv/pulse.c new file mode 100644 -index 0000000..337814d +index 0000000..aa84c9b --- /dev/null +++ b/dlls/winepulse.drv/pulse.c -@@ -0,0 +1,922 @@ +@@ -0,0 +1,861 @@ +/* + * Wine Driver for PulseAudio + * http://pulseaudio.org/ + * -+ * Copyright 2008 Arthur Taylor ++ * Copyright 2009 Arthur Taylor + * + * Contains code from other wine sound drivers. + * @@ -653,11 +661,6 @@ index 0000000..337814d +#include +WINE_DEFAULT_DEBUG_CHANNEL(wave); + -+/* -+ * - Need to subscribe to sink/source events and keep the WInDev and WOutDev -+ * structures updated -+ */ -+ +/* These strings used only for tracing */ +const char * PULSE_getCmdString(enum win_wm_message msg) { + static char unknown[32]; @@ -868,9 +871,16 @@ index 0000000..337814d + + switch (wf->wFormatTag) { + case WAVE_FORMAT_PCM: -+ if (ss->channels > 2 || ss->channels < 1) return FALSE; ++ /* MSDN says that for WAVE_FORMAT_PCM, nChannels must be 1 or 2 and ++ * wBitsPerSample must be 8 or 16, yet other values are used by some ++ * applications in the wild for surround. */ ++ if (ss->channels > 6 || ss->channels < 1) return FALSE; + ss->format = wf->wBitsPerSample == 8 ? PA_SAMPLE_U8 + : wf->wBitsPerSample == 16 ? PA_SAMPLE_S16NE ++#if PA_PROTOCOL_VERSION >= 15 ++ : wf->wBitsPerSample == 24 ? PA_SAMPLE_S24NE ++#endif ++ : wf->wBitsPerSample == 32 ? PA_SAMPLE_S32NE + : PA_SAMPLE_INVALID; + break; + @@ -1160,6 +1170,7 @@ index 0000000..337814d + + switch (pa_context_get_state(c)) { + case PA_CONTEXT_CONNECTING: ++ case PA_CONTEXT_UNCONNECTED: + case PA_CONTEXT_AUTHORIZING: + case PA_CONTEXT_SETTING_NAME: + break; @@ -1170,217 +1181,141 @@ index 0000000..337814d + break; + + case PA_CONTEXT_FAILED: -+ default: + ERR("Context failure: %s\n", pa_strerror(pa_context_errno(c))); + pa_threaded_mainloop_signal(PULSE_ml, 0); ++ break; + } +} + +/************************************************************************** -+ * PULSE_SourceInfoCallback [internal] ++ * PULSE_AllocateWaveinDevice [internal] + * + * Creates or adds a device to WInDev based on the pa_source_info. + */ -+ -+static void PULSE_SourceInfoCallback(pa_context *c, const pa_source_info *i, int eol, void *userdata) { -+ DWORD *allocated = (DWORD*)userdata; ++static void PULSE_AllocateWaveinDevice(const char *name, const char *device, const char *description, const pa_cvolume *v) { + WINE_WAVEDEV *wdi; + -+ if (eol || !i) { -+ pa_threaded_mainloop_signal(PULSE_ml, 0); -+ return; -+ } -+ + if (WInDev) -+ wdi = HeapReAlloc(GetProcessHeap(), 0, WInDev, sizeof(WINE_WAVEDEV) * (*allocated + 1)); ++ wdi = HeapReAlloc(GetProcessHeap(), 0, WInDev, sizeof(WINE_WAVEDEV) * (PULSE_WidNumDevs + 1)); + else + wdi = HeapAlloc(GetProcessHeap(), 0, sizeof(WINE_WAVEDEV)); + + if (!wdi) return; + + WInDev = wdi; -+ wdi = &WInDev[(*allocated)++]; ++ wdi = &WInDev[PULSE_WidNumDevs++]; + memset(wdi, 0, sizeof(WINE_WAVEDEV)); + memset(&(wdi->caps.in), 0, sizeof(wdi->caps.in)); -+ -+ wdi->device_name = pa_xstrdup(i->name); ++ snprintf(wdi->interface_name, MAXPNAMELEN * 2, "winepulse: %s", name); ++ wdi->device_name = pa_xstrdup(device); + strcpy(wdi->interface_name, "winepulse: "); -+ memcpy(wdi->interface_name + strlen(wdi->interface_name), -+ i->name, min(strlen(i->name), sizeof(wdi->interface_name) - strlen("winepulse: "))); -+ MultiByteToWideChar(CP_ACP, 0, i->description, -1, wdi->caps.in.szPname, sizeof(wdi->caps.in.szPname)/sizeof(WCHAR)); ++ MultiByteToWideChar(CP_ACP, 0, description, -1, wdi->caps.in.szPname, sizeof(wdi->caps.in.szPname)/sizeof(WCHAR)); + wdi->caps.in.szPname[sizeof(wdi->caps.in.szPname)/sizeof(WCHAR) - 1] = '\0'; + wdi->caps.in.wMid = MM_CREATIVE; + wdi->caps.in.wPid = MM_CREATIVE_SBP16_WAVEOUT; + wdi->caps.in.vDriverVersion = 0x0100; -+ wdi->caps.in.wChannels = i->sample_spec.channels == 1 ? 1 : 2; ++ wdi->caps.in.wChannels = v->channels == 1 ? 1 : 2; + wdi->caps.in.dwFormats = PULSE_ALL_FORMATS; -+ pa_threaded_mainloop_signal(PULSE_ml, 0); ++ memset(&wdi->ds_desc, 0, sizeof(DSDRIVERDESC)); ++ memcpy(wdi->ds_desc.szDesc, description, min(sizeof(wdi->ds_desc.szDesc) - 1, strlen(description))); ++ memcpy(wdi->ds_desc.szDrvname, "winepulse.drv", 14); ++ wdi->ds_caps.dwMinSecondarySampleRate = DSBFREQUENCY_MIN; ++ wdi->ds_caps.dwMaxSecondarySampleRate = DSBFREQUENCY_MAX; ++ wdi->ds_caps.dwPrimaryBuffers = 1; ++ wdi->ds_caps.dwFlags = \ ++ DSCAPS_PRIMARYMONO | ++ DSCAPS_PRIMARYSTEREO | ++ DSCAPS_PRIMARY8BIT | ++ DSCAPS_PRIMARY16BIT | ++ DSCAPS_SECONDARYMONO | ++ DSCAPS_SECONDARYSTEREO | ++ DSCAPS_SECONDARY8BIT | ++ DSCAPS_SECONDARY16BIT | ++ DSCCAPS_MULTIPLECAPTURE | ++ DSCAPS_CERTIFIED | /* Useful? */ ++ DSCAPS_EMULDRIVER; /* Useful? */ ++ +} + +/************************************************************************** -+ * PULSE_SinkInfoCallback [internal] ++ * PULSE_AllocateWaveoutDevice [internal] + * + * Creates or adds a sink to the WOutDev array. + */ -+static void PULSE_SinkInfoCallback(pa_context *c, const pa_sink_info *i, int eol, void *userdata) { -+ DWORD *allocated = (DWORD*)userdata; ++static void PULSE_AllocateWaveoutDevice(const char *name, const char *device, const char *description, const pa_cvolume *v) { + WINE_WAVEDEV *wdo; + int x; + -+ if (eol || !i) { -+ pa_threaded_mainloop_signal(PULSE_ml, 0); -+ return; -+ } -+ + if (WOutDev) -+ wdo = HeapReAlloc(GetProcessHeap(), 0, WOutDev, sizeof(WINE_WAVEDEV) * (*allocated + 1)); ++ wdo = HeapReAlloc(GetProcessHeap(), 0, WOutDev, sizeof(WINE_WAVEDEV) * (PULSE_WodNumDevs + 1)); + else + wdo = HeapAlloc(GetProcessHeap(), 0, sizeof(WINE_WAVEDEV)); + + if (!wdo) return; + + WOutDev = wdo; -+ wdo = &WOutDev[(*allocated)++]; ++ wdo = &WOutDev[PULSE_WodNumDevs++]; + memset(wdo, 0, sizeof(WINE_WAVEDEV)); + -+ wdo->device_name = pa_xstrdup(i->name); -+ wdo->volume.channels = i->volume.channels; -+ for (x = 0; x < i->volume.channels; x++) wdo->volume.values[x] = i->volume.values[x]; -+ strcpy(wdo->interface_name, "winepulse: "); -+ memcpy(wdo->interface_name + strlen(wdo->interface_name), -+ i->name, min(strlen(i->name), -+ sizeof(wdo->interface_name) - strlen("winepulse: "))); -+ MultiByteToWideChar(CP_ACP, 0, i->description, -1, wdo->caps.out.szPname, sizeof(wdo->caps.out.szPname)/sizeof(WCHAR)); ++ wdo->device_name = pa_xstrdup(device); ++ wdo->volume.channels = v->channels; ++ for (x = 0; x < v->channels; x++) wdo->volume.values[x] = v->values[x]; ++ snprintf(wdo->interface_name, MAXPNAMELEN * 2, "winepulse: %s", name); ++ MultiByteToWideChar(CP_ACP, 0, description, -1, wdo->caps.out.szPname, sizeof(wdo->caps.out.szPname)/sizeof(WCHAR)); + wdo->caps.out.szPname[sizeof(wdo->caps.out.szPname)/sizeof(WCHAR) - 1] = '\0'; + wdo->caps.out.wMid = MM_CREATIVE; + wdo->caps.out.wPid = MM_CREATIVE_SBP16_WAVEOUT; + wdo->caps.out.vDriverVersion = 0x0100; -+ wdo->caps.out.dwSupport = WAVECAPS_VOLUME | WAVECAPS_SAMPLEACCURATE; -+ if (i->sample_spec.channels == 2) { ++ wdo->caps.out.dwSupport = WAVECAPS_VOLUME | WAVECAPS_SAMPLEACCURATE | WAVECAPS_DIRECTSOUND; ++ if (v->channels >= 2) { + wdo->caps.out.wChannels = 2; + wdo->caps.out.dwSupport |= WAVECAPS_LRVOLUME; + } else -+ wdo->caps.out.wChannels = i->sample_spec.channels == 1 ? 1 : 2; ++ wdo->caps.out.wChannels = 1; + wdo->caps.out.dwFormats = PULSE_ALL_FORMATS; + memset(&wdo->ds_desc, 0, sizeof(DSDRIVERDESC)); -+ memcpy(wdo->ds_desc.szDesc, i->description, min(sizeof(wdo->ds_desc.szDesc) - 1, strlen(i->description))); -+ strcpy(wdo->ds_desc.szDrvname, "winepulse.drv"); ++ memcpy(wdo->ds_desc.szDesc, description, min(sizeof(wdo->ds_desc.szDesc) - 1, strlen(description))); ++ memcpy(wdo->ds_desc.szDrvname, "winepulse.drv", 14); + wdo->ds_caps.dwMinSecondarySampleRate = DSBFREQUENCY_MIN; + wdo->ds_caps.dwMaxSecondarySampleRate = DSBFREQUENCY_MAX; + wdo->ds_caps.dwPrimaryBuffers = 1; -+ -+ pa_threaded_mainloop_signal(PULSE_ml, 0); ++ wdo->ds_caps.dwFlags = \ ++ DSCAPS_PRIMARYMONO | ++ DSCAPS_PRIMARYSTEREO | ++ DSCAPS_PRIMARY8BIT | ++ DSCAPS_PRIMARY16BIT | ++ DSCAPS_SECONDARYMONO | ++ DSCAPS_SECONDARYSTEREO | ++ DSCAPS_SECONDARY8BIT | ++ DSCAPS_SECONDARY16BIT | ++ DSCAPS_CERTIFIED; +} + +/************************************************************************** -+ * PULSE_UpdateWavedevs [internal] -+ * -+ * Calls PULSE_add_output_device to add the sink to the list of devices -+ */ -+BOOL PULSE_UpdateWavedevs(int devices) { -+ WINE_WAVEDEV *old_devs; -+ DWORD old_numdevs; -+ DWORD rc; -+ HKEY key; -+ BOOL show_monitor_sources = TRUE; -+ -+ rc = RegOpenKeyExA(HKEY_CURRENT_USER, "Software\\Wine\\Pulse Driver", 0, KEY_QUERY_VALUE, &key); -+ if (rc == ERROR_SUCCESS) { -+ DWORD type; -+ DWORD bufsize; -+ char *bufp; -+ -+ rc = RegQueryValueExA(key, "MonitorDevices", NULL, &type, NULL, &bufsize); -+ if (rc == ERROR_SUCCESS || type == REG_SZ) { -+ bufp = HeapAlloc(GetProcessHeap(), 0, bufsize); -+ if (bufp) { -+ rc = RegQueryValueExA(key, "MonitorDevices", NULL, NULL, (LPBYTE)bufp, &bufsize); -+ if (rc == ERROR_SUCCESS && ( -+ *bufp == 'n' || *bufp == 'N' || -+ *bufp == 'f' || *bufp == 'F' || -+ *bufp == 'd' || *bufp == 'D' || -+ *bufp == '0')) -+ show_monitor_sources = FALSE; -+ HeapFree(GetProcessHeap(), 0, bufp); -+ } -+ } -+ } -+ if (key) -+ RegCloseKey(key); ++ * PULSE_SourceInfoCallback [internal] ++ */ ++static void PULSE_SourceInfoCallback(pa_context *c, const pa_source_info *i, int eol, void *userdata) { + -+ pa_threaded_mainloop_lock(PULSE_ml); -+ if (devices & PULSE_OUT_DEVS) { -+ old_devs = WOutDev; -+ old_numdevs = PULSE_WodNumDevs; -+ WOutDev = NULL; -+ PULSE_WodNumDevs = 0; -+ -+ /* Ask for all the sinks and create objects in the WOutDev array */ -+ PULSE_WaitForOperation(pa_context_get_sink_info_list(PULSE_context, PULSE_SinkInfoCallback, &PULSE_WodNumDevs)); -+ if (PULSE_WodNumDevs) { -+ if (old_devs) -+ HeapFree(GetProcessHeap(), 0, old_devs); -+ TRACE("Allocated %i output device%s.\n", PULSE_WodNumDevs, PULSE_WodNumDevs > 1 ? "s" : ""); -+ } else { -+ WARN("Didn't seem to find any waveout devices upon update, not updating!\n"); -+ if (WOutDev) -+ HeapFree(GetProcessHeap(), 0, WOutDev); -+ WOutDev = old_devs; -+ PULSE_WodNumDevs = old_numdevs; -+ } -+ } ++ if (!eol && i) ++ PULSE_AllocateWaveinDevice(i->name, i->name, i->description, &i->volume); + -+ if (devices & PULSE_IN_DEVS) { -+ old_devs = WInDev; -+ old_numdevs = PULSE_WidNumDevs; -+ WInDev = NULL; -+ PULSE_WidNumDevs = 0; ++ pa_threaded_mainloop_signal(PULSE_ml, 0); ++} + -+ /* Ask for all the sources and create objects in the WOutDev array */ -+ PULSE_WaitForOperation(pa_context_get_source_info_list(PULSE_context, PULSE_SourceInfoCallback, &PULSE_WidNumDevs)); -+ if (PULSE_WidNumDevs) { -+ if (old_devs) -+ HeapFree(GetProcessHeap(), 0, old_devs); -+ TRACE("Allocated %i input device%s.\n", PULSE_WidNumDevs, PULSE_WidNumDevs > 1 ? "s" : ""); -+ } else { -+ WARN("Didn't seem to find any wavein devices upon update, not updating!\n"); -+ if (WInDev) -+ HeapFree(GetProcessHeap(), 0, WInDev); -+ WInDev = old_devs; -+ PULSE_WidNumDevs = old_numdevs; -+ } ++/************************************************************************** ++ * PULSE_SinkInfoCallback [internal] ++ */ ++static void PULSE_SinkInfoCallback(pa_context *c, const pa_sink_info *i, int eol, void *userdata) { + -+ /* Swap around the devices so monitor streams come last. */ -+ { -+ int x; -+ int count = 0; -+ WINE_WAVEDEV tmp[PULSE_WidNumDevs]; -+ -+ memcpy(tmp, WInDev, sizeof(WINE_WAVEDEV) * PULSE_WidNumDevs); -+ for (x = 0; x < PULSE_WidNumDevs; x++) { -+ if (!strstr(tmp[x].device_name, ".monitor")) { -+ memcpy(&WInDev[count++], &tmp[x], sizeof(WINE_WAVEDEV)); -+ } -+ } -+ if (show_monitor_sources) { -+ for (x = 0; x < PULSE_WidNumDevs; x++) { -+ if (strstr(tmp[x].device_name, ".monitor")) { -+ memcpy(&WInDev[count++], &tmp[x], sizeof(WINE_WAVEDEV)); -+ } -+ } -+ } -+ if (PULSE_WidNumDevs != count) { -+ TRACE("Removed monitors sources, now have %u input devices.\n", count); -+ WInDev = HeapReAlloc(GetProcessHeap(), 0, WInDev, sizeof(WINE_WAVEDEV) * count); -+ PULSE_WidNumDevs = count; -+ } -+ } -+ } -+ pa_threaded_mainloop_unlock(PULSE_ml); ++ if (!eol && i) ++ PULSE_AllocateWaveoutDevice(i->name, i->name, i->description, &i->volume); + -+ return TRUE; ++ pa_threaded_mainloop_signal(PULSE_ml, 0); +} + ++/************************************************************************** ++ * PULSE_ContextNotifyCallback [internal] ++ */ +static void PULSE_ContextNotifyCallback(pa_context *c, void *userdata) { + pa_threaded_mainloop_signal(PULSE_ml, 0); +} @@ -1393,10 +1328,14 @@ index 0000000..337814d + */ + +static LONG PULSE_WaveClose(void) { ++ int x; + TRACE("()\n"); -+ if (!PULSE_ml) return 1; ++ if (!PULSE_ml) return DRV_FAILURE; + + pa_threaded_mainloop_lock(PULSE_ml); ++ /* device_name is allocated with pa_xstrdup, free with pa_xfree */ ++ for (x = 0; x < PULSE_WodNumDevs; x++) pa_xfree(WOutDev[x].device_name); ++ for (x = 0; x < PULSE_WidNumDevs; x++) pa_xfree(WInDev[x].device_name); + HeapFree(GetProcessHeap(), 0, WOutDev); + HeapFree(GetProcessHeap(), 0, WInDev); + if (PULSE_context) { @@ -1425,7 +1364,8 @@ index 0000000..337814d + char path[PATH_MAX]; + char *offset = NULL; + int x = 0; -+ ++ pa_cvolume fake_cvolume; ++ + WOutDev = NULL; + WInDev = NULL; + PULSE_WodNumDevs = 0; @@ -1443,12 +1383,11 @@ index 0000000..337814d + + /* Get binary path, and remove path a-la strrchr */ + if (GetModuleFileNameA(NULL, path, PATH_MAX)) -+ for (offset = path; *offset; offset++) -+ if (*offset == '\\') x = offset - path + 1; ++ offset = strrchr(path, '\\'); + -+ if (offset || path[x]) { -+ app_name = pa_xmalloc(strlen(path + x) + 8); -+ snprintf(app_name, strlen(path + x) + 8, "WINE [%s]", path + x); ++ if (offset && ++offset && offset < path + PATH_MAX) { ++ app_name = pa_xmalloc(strlen(offset) + 8); ++ snprintf(app_name, strlen(offset) + 8, "WINE [%s]", offset); + } else + app_name = pa_xstrdup("WINE Application"); + @@ -1463,7 +1402,7 @@ index 0000000..337814d + + pa_threaded_mainloop_lock(PULSE_ml); + -+ TRACE("libpulse protocol version: %u.\n", pa_context_get_protocol_version(PULSE_context)); ++ TRACE("libpulse protocol version: %u. API Version %u\n", pa_context_get_protocol_version(PULSE_context), PA_API_VERSION); + TRACE("Attempting to connect to pulseaudio server.\n"); + if (pa_context_connect(PULSE_context, NULL, 0, NULL) < 0) + goto fail; @@ -1480,11 +1419,20 @@ index 0000000..337814d + + pa_threaded_mainloop_wait(PULSE_ml); + } -+ ++ + x = pa_context_get_server_protocol_version(PULSE_context); + TRACE("Connected to server %s with protocol version: %i.\n", pa_context_get_server(PULSE_context), x); + if (x < 14) -+ WARN("Server is old, expect poor latency or bugginess!\n"); ++ WARN("Server is old, expect poor latency or buggy-ness!\n"); ++ ++ fake_cvolume.channels = 2; ++ pa_cvolume_reset(&fake_cvolume, 2); ++ /* FIXME Translations? */ ++ PULSE_AllocateWaveoutDevice("default", NULL, "Default", &fake_cvolume); ++ PULSE_AllocateWaveinDevice("default", NULL, "Default", &fake_cvolume); ++ PULSE_WaitForOperation(pa_context_get_sink_info_list(PULSE_context, PULSE_SinkInfoCallback, &PULSE_WodNumDevs)); ++ PULSE_WaitForOperation(pa_context_get_source_info_list(PULSE_context, PULSE_SourceInfoCallback, &PULSE_WidNumDevs)); ++ TRACE("Found %u output and %u input device(s).\n", PULSE_WodNumDevs - 1, PULSE_WidNumDevs - 1); + + pa_threaded_mainloop_unlock(PULSE_ml); + @@ -1506,8 +1454,7 @@ index 0000000..337814d + + switch(wMsg) { +#ifdef HAVE_PULSEAUDIO -+ case DRV_LOAD: PULSE_WaveInit(); -+ return 1; ++ case DRV_LOAD: return PULSE_WaveInit(); + case DRV_FREE: return PULSE_WaveClose(); + case DRV_OPEN: return 1; + case DRV_CLOSE: return 1; @@ -1524,10 +1471,10 @@ index 0000000..337814d +} diff --git a/dlls/winepulse.drv/wavein.c b/dlls/winepulse.drv/wavein.c new file mode 100644 -index 0000000..7024ccd +index 0000000..1534d6e --- /dev/null +++ b/dlls/winepulse.drv/wavein.c -@@ -0,0 +1,555 @@ +@@ -0,0 +1,572 @@ +/* + * Wine Driver for PulseAudio - WaveIn Functionality + * http://pulseaudio.org/ @@ -1608,11 +1555,13 @@ index 0000000..7024ccd + size_t size; + while (lpWaveHdr && wwi->state == WINE_WS_PLAYING && wwi->buffer) { + size = min(wwi->buffer_length - wwi->buffer_read_offset, lpWaveHdr->dwBufferLength - lpWaveHdr->dwBytesRecorded); -+ if (size == 0) { ERR("Size is 0! buffer is full but not freed?\n"); continue; } ++ if (size == 0) ERR("Size is 0! buffer is full but not freed?\n"); + memcpy(lpWaveHdr->lpData + lpWaveHdr->dwBytesRecorded, (PBYTE)wwi->buffer + wwi->buffer_read_offset, size); + wwi->buffer_read_offset += size; + if (wwi->buffer_read_offset == wwi->buffer_length) { ++ pa_threaded_mainloop_lock(PULSE_ml); + pa_stream_drop(wwi->stream); ++ pa_threaded_mainloop_unlock(PULSE_ml); + wwi->buffer = NULL; + wwi->buffer_length = 0; + wwi->buffer_read_offset = 0; @@ -1634,19 +1583,20 @@ index 0000000..7024ccd +* Switches the current fragment to the next based upon a message from the +* server. +*/ -+static void widRecorder_NextFragment(WINE_WAVEINST *wwi, size_t size) { ++static void widRecorder_NextFragment(WINE_WAVEINST *wwi, size_t sizer) { ++ LPWAVEHDR lpWaveHdr = wwi->lpQueuePtr; ++ size_t request = 0; ++ ++ for (;lpWaveHdr; lpWaveHdr = lpWaveHdr->lpNext) ++ request += lpWaveHdr->dwBufferLength; ++ ++ lpWaveHdr = wwi->lpQueuePtr; ++ pa_threaded_mainloop_lock(PULSE_ml); ++ pa_stream_peek(wwi->stream, &wwi->buffer, &request); ++ wwi->buffer_length = request; ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ + widRecorder_CopyData(wwi); -+ if (wwi->buffer) { -+ if (wwi->buffer_read_offset != wwi->buffer_length) -+ ERR("We didn't read all of the data, there will be gaps. FO:%u, FS: %u\n", wwi->buffer_read_offset, wwi->buffer_length); -+ pa_stream_drop(wwi->stream); -+ wwi->buffer = NULL; -+ wwi->buffer_length = 0; -+ wwi->buffer_read_offset = 0; -+ } -+ pa_stream_peek(wwi->stream, &wwi->buffer, &size); -+ wwi->buffer_length = size; -+ wwi->buffer_read_offset = 0; +} + +/************************************************************************** @@ -1663,101 +1613,104 @@ index 0000000..7024ccd + SetEvent(wwi->hStartUpEvent); + + for (;;) { -+ PULSE_WaitRingMessage(&wwi->msgRing, INFINITE); -+ while (PULSE_RetrieveRingMessage(&wwi->msgRing, &msg, ¶m, &ev)) { -+ TRACE("Received %s %x\n", PULSE_getCmdString(msg), param); ++ PULSE_WaitRingMessage(&wwi->msgRing, INFINITE); ++ while (PULSE_RetrieveRingMessage(&wwi->msgRing, &msg, ¶m, &ev)) { ++ TRACE("Received %s %x\n", PULSE_getCmdString(msg), param); + -+ switch (msg) { -+ case WINE_WM_FEED: -+ SetEvent(ev); -+ if (wwi->state == WINE_WS_PLAYING) -+ widRecorder_NextFragment(wwi, param); -+ else -+ (pa_stream_drop(wwi->stream)); -+ break; -+ case WINE_WM_STARTING: -+ wwi->state = WINE_WS_PLAYING; -+ PULSE_WaitForOperation(pa_stream_cork(wwi->stream, 0, PULSE_StreamSuccessCallback, NULL)); -+ SetEvent(ev); -+ break; -+ case WINE_WM_HEADER: -+ lpWaveHdr = (LPWAVEHDR)param; -+ lpWaveHdr->lpNext = 0; -+ -+ /* insert buffer at the end of queue */ -+ { -+ LPWAVEHDR* wh; -+ for (wh = &(wwi->lpQueuePtr); *wh; wh = &((*wh)->lpNext)); -+ *wh = lpWaveHdr; -+ } -+ break; -+ case WINE_WM_STOPPING: -+ if (wwi->state != WINE_WS_STOPPED) { -+ PULSE_WaitForOperation(pa_stream_cork(wwi->stream, 1, PULSE_StreamSuccessCallback, NULL)); -+ pa_stream_drop(wwi->stream); ++ switch (msg) { ++ case WINE_WM_FEED: ++ SetEvent(ev); ++ if (wwi->state == WINE_WS_PLAYING) ++ widRecorder_NextFragment(wwi, param); ++ break; ++ case WINE_WM_STARTING: ++ wwi->state = WINE_WS_PLAYING; ++ pa_threaded_mainloop_lock(PULSE_ml); ++ PULSE_WaitForOperation(pa_stream_cork(wwi->stream, 0, PULSE_StreamSuccessCallback, NULL)); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ SetEvent(ev); ++ break; ++ case WINE_WM_HEADER: ++ lpWaveHdr = (LPWAVEHDR)param; ++ lpWaveHdr->lpNext = 0; ++ ++ /* insert buffer at the end of queue */ ++ { ++ LPWAVEHDR* wh; ++ for (wh = &(wwi->lpQueuePtr); *wh; wh = &((*wh)->lpNext)); ++ *wh = lpWaveHdr; ++ } ++ break; ++ case WINE_WM_STOPPING: ++ if (wwi->state != WINE_WS_STOPPED) { ++ pa_threaded_mainloop_lock(PULSE_ml); ++ PULSE_WaitForOperation(pa_stream_cork(wwi->stream, 1, PULSE_StreamSuccessCallback, NULL)); ++ pa_stream_drop(wwi->stream); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ ++ /* return current buffer to app */ ++ lpWaveHdr = wwi->lpQueuePtr; ++ if (lpWaveHdr) { ++ LPWAVEHDR lpNext = lpWaveHdr->lpNext; ++ TRACE("stop %p %p\n", lpWaveHdr, lpWaveHdr->lpNext); ++ lpWaveHdr->dwFlags &= ~WHDR_INQUEUE; ++ lpWaveHdr->dwFlags |= WHDR_DONE; ++ wwi->lpQueuePtr = lpNext; ++ widNotifyClient(wwi, WIM_DATA, (DWORD)lpWaveHdr, 0); ++ } ++ } ++ wwi->state = WINE_WS_STOPPED; ++ SetEvent(ev); ++ break; ++ case WINE_WM_RESETTING: ++ if (wwi->state != WINE_WS_STOPPED) { ++ pa_threaded_mainloop_lock(PULSE_ml); ++ pa_stream_drop(wwi->stream); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ } ++ wwi->state = WINE_WS_STOPPED; + -+ /* return current buffer to app */ -+ lpWaveHdr = wwi->lpQueuePtr; -+ if (lpWaveHdr) { -+ LPWAVEHDR lpNext = lpWaveHdr->lpNext; -+ TRACE("stop %p %p\n", lpWaveHdr, lpWaveHdr->lpNext); ++ /* return all buffers to the app */ ++ for (lpWaveHdr = wwi->lpQueuePtr; lpWaveHdr; lpWaveHdr = wwi->lpQueuePtr) { ++ TRACE("reset %p %p\n", lpWaveHdr, lpWaveHdr->lpNext); + lpWaveHdr->dwFlags &= ~WHDR_INQUEUE; + lpWaveHdr->dwFlags |= WHDR_DONE; -+ wwi->lpQueuePtr = lpNext; ++ wwi->lpQueuePtr = lpWaveHdr->lpNext; + widNotifyClient(wwi, WIM_DATA, (DWORD)lpWaveHdr, 0); + } -+ } -+ wwi->state = WINE_WS_STOPPED; -+ SetEvent(ev); -+ break; -+ case WINE_WM_RESETTING: -+ if (wwi->state != WINE_WS_STOPPED) -+ pa_stream_drop(wwi->stream); -+ wwi->state = WINE_WS_STOPPED; -+ -+ /* return all buffers to the app */ -+ for (lpWaveHdr = wwi->lpQueuePtr; lpWaveHdr; lpWaveHdr = lpWaveHdr->lpNext) { -+ TRACE("reset %p %p\n", lpWaveHdr, lpWaveHdr->lpNext); -+ lpWaveHdr->dwFlags &= ~WHDR_INQUEUE; -+ lpWaveHdr->dwFlags |= WHDR_DONE; -+ wwi->lpQueuePtr = lpWaveHdr->lpNext; -+ widNotifyClient(wwi, WIM_DATA, (DWORD)lpWaveHdr, 0); -+ } -+ -+ wwi->lpQueuePtr = NULL; -+ SetEvent(ev); -+ break; -+ case WINE_WM_XRUN: -+ pa_stream_drop(wwi->stream); -+ wwi->buffer_read_offset = 0; -+ break; -+ case WINE_WM_CLOSING: -+ wwi->hThread = 0; -+ if ((DWORD)param == 1) { -+ wwi->state = WINE_WS_FAILED; ++ wwi->lpQueuePtr = NULL; + SetEvent(ev); -+ PULSE_DestroyRingMessage(&wwi->msgRing); -+ widNotifyClient(wwi, WIM_CLOSE, 0L, 0L); -+ wwi->lpPlayPtr = wwi->lpQueuePtr = NULL; ++ break; ++ case WINE_WM_XRUN: + pa_threaded_mainloop_lock(PULSE_ml); -+ pa_stream_disconnect(wwi->stream); ++ pa_stream_drop(wwi->stream); + pa_threaded_mainloop_unlock(PULSE_ml); -+ TRACE("Thread exiting because of failure.\n"); -+ ExitThread(1); ++ wwi->buffer_read_offset = 0; ++ break; ++ case WINE_WM_CLOSING: ++ wwi->hThread = 0; ++ if ((DWORD)param == 1) { ++ wwi->state = WINE_WS_FAILED; ++ SetEvent(ev); ++ PULSE_DestroyRingMessage(&wwi->msgRing); ++ widNotifyClient(wwi, WIM_CLOSE, 0L, 0L); ++ wwi->lpPlayPtr = wwi->lpQueuePtr = NULL; ++ pa_threaded_mainloop_lock(PULSE_ml); ++ pa_stream_disconnect(wwi->stream); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ TRACE("Thread exiting because of failure.\n"); ++ ExitThread(1); ++ } ++ wwi->state = WINE_WS_CLOSED; ++ SetEvent(ev); ++ ExitThread(0); ++ /* shouldn't go here */ ++ default: ++ FIXME("unknown message %d\n", msg); ++ break; + } -+ wwi->state = WINE_WS_CLOSED; -+ SetEvent(ev); -+ ExitThread(0); -+ /* shouldn't go here */ -+ default: -+ FIXME("unknown message %d\n", msg); -+ break; + } -+ } -+ -+ widRecorder_CopyData(wwi); -+ -+} /* for (;;) */ ++ } /* for (;;) */ +} + +/************************************************************************** @@ -1822,7 +1775,11 @@ index 0000000..7024ccd + + pa_threaded_mainloop_lock(PULSE_ml); + TRACE("Asking to open %s for recording.\n", wdi->device_name); -+ pa_stream_connect_record(wwi->stream, wdi->device_name, NULL, PA_STREAM_START_CORKED | PA_STREAM_AUTO_TIMING_UPDATE | PA_STREAM_INTERPOLATE_TIMING); ++ pa_stream_connect_record(wwi->stream, wdi->device_name, NULL, ++ PA_STREAM_START_CORKED | ++ PA_STREAM_AUTO_TIMING_UPDATE | ++ PA_STREAM_INTERPOLATE_TIMING); ++ + for (;;) { + pa_context_state_t cstate = pa_context_get_state(PULSE_context); + pa_stream_state_t sstate = pa_stream_get_state(wwi->stream); @@ -2006,8 +1963,6 @@ index 0000000..7024ccd +static DWORD widGetNumDevs() { + if (pa_context_get_state(PULSE_context) != PA_CONTEXT_READY) + return 0; -+ -+ PULSE_UpdateWavedevs(PULSE_IN_DEVS); + + return PULSE_WidNumDevs; +} @@ -2038,6 +1993,15 @@ index 0000000..7024ccd +} + +/************************************************************************** ++ * widDsDesc [internal] ++ */ ++DWORD widDsDesc(UINT wDevID, PDSDRIVERDESC desc) ++{ ++ *desc = WInDev[wDevID].ds_desc; ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** + * widMessage (WINEPULSE.@) + */ +DWORD WINAPI PULSE_widMessage(UINT wDevID, UINT wMsg, DWORD dwUser, @@ -2063,8 +2027,8 @@ index 0000000..7024ccd + case WIDM_STOP: return widRecorderMessage((WINE_WAVEINST*)dwUser, WINE_WM_STOPPING); + case DRV_QUERYDEVICEINTERFACESIZE: return widDevInterfaceSize (wDevID, (LPDWORD)dwParam1); + case DRV_QUERYDEVICEINTERFACE: return widDevInterface (wDevID, (PWCHAR)dwParam1, dwParam2); -+ case DRV_QUERYDSOUNDIFACE: return 0; -+ case DRV_QUERYDSOUNDDESC: return 0; ++ case DRV_QUERYDSOUNDIFACE: return MMSYSERR_NOTSUPPORTED; /* Use emulation, as there is no advantage */ ++ case DRV_QUERYDSOUNDDESC: return widDsDesc (wDevID, (PDSDRIVERDESC)dwParam1); + default: + FIXME("unknown message %d!\n", wMsg); + } @@ -2085,10 +2049,10 @@ index 0000000..7024ccd +#endif /* HAVE_PULSEAUDIO */ diff --git a/dlls/winepulse.drv/waveout.c b/dlls/winepulse.drv/waveout.c new file mode 100644 -index 0000000..968d1bd +index 0000000..4539103 --- /dev/null +++ b/dlls/winepulse.drv/waveout.c -@@ -0,0 +1,1098 @@ +@@ -0,0 +1,1092 @@ +/* + * Wine Driver for PulseAudio - WaveOut Functionality + * http://pulseaudio.org/ @@ -2327,7 +2291,7 @@ index 0000000..968d1bd + wwo->buffer_attr.prebuf = (uint32_t) -1; + wwo->buffer_attr.minreq = (uint32_t) -1; + wwo->buffer_attr.maxlength = (uint32_t) -1; -+ WARN("Asking for new buffer tlength of %u.\n", wwo->buffer_attr.tlength); ++ WARN("Asking for new buffer tlength of %ums (%u bytes)\n", (unsigned int)(pa_bytes_to_usec(wwo->buffer_attr.tlength, &wwo->sample_spec)/1000), wwo->buffer_attr.tlength); + pa_stream_set_buffer_attr(wwo->stream, &wwo->buffer_attr, PULSE_StreamSuccessCallback, wwo); + } else { + /* Fake playback start earlier, introducing latency */ @@ -2702,6 +2666,7 @@ index 0000000..968d1bd + WINE_WAVEDEV *wdo; + WINE_WAVEINST *wwo = NULL; + DWORD ret = MMSYSERR_NOERROR; ++ pa_stream_flags_t stream_flags; + + TRACE("(%u, %p, %08X);\n", wDevID, lpDesc, dwFlags); + if (lpDesc == NULL) { @@ -2760,27 +2725,21 @@ index 0000000..968d1bd + pa_stream_set_moved_callback (wwo->stream, PULSE_StreamMovedCallback, wwo); + pa_stream_set_suspended_callback (wwo->stream, PULSE_StreamSuspendedCallback, wwo); + ++ stream_flags = PA_STREAM_AUTO_TIMING_UPDATE; ++ +#if PA_API_VERSION >= 12 + if (pa_context_get_server_protocol_version(PULSE_context) >= 15) { + pa_stream_set_started_callback(wwo->stream, WAVEOUT_StreamStartedCallback, wwo); ++ stream_flags |= PA_STREAM_ADJUST_LATENCY; + } else +#endif ++ { + pa_stream_set_latency_update_callback(wwo->stream, WAVEOUT_StreamTimingInfoUpdateCallback, wwo); -+ ++ } + + TRACE("Connecting stream for playback on %s.\n", wdo->device_name); + pa_threaded_mainloop_lock(PULSE_ml); -+ pa_stream_connect_playback(wwo->stream, -+ /* Use WAVE_FORMAT_DIRECT to detect if we are being called by the -+ * wavemapper, in which case don't specify a device so that libpulse -+ * chooses based upon environment variables, x11 root window info, etc. If -+ * WAVE_FORMAT_DIRECT is inappropriate, maybe winmm could stop eating -+ * WAVE_MAPPER? */ -+ dwFlags & WAVE_FORMAT_DIRECT ? NULL : wdo->device_name, -+ NULL, -+ PA_STREAM_AUTO_TIMING_UPDATE, -+ NULL, -+ NULL); ++ pa_stream_connect_playback(wwo->stream, wdo->device_name, NULL, stream_flags, NULL, NULL); + + for (;;) { + pa_context_state_t cstate = pa_context_get_state(PULSE_context); @@ -2978,7 +2937,6 @@ index 0000000..968d1bd + if (!PULSE_ml || !PULSE_context || pa_context_get_state(PULSE_context) != PA_CONTEXT_READY) + return 0; + -+ PULSE_UpdateWavedevs(PULSE_OUT_DEVS); + return PULSE_WodNumDevs; +} + @@ -3057,7 +3015,7 @@ index 0000000..968d1bd + } else { + if (value1 != value2) FIXME("Non-stereo streams can't pan!\n"); + wwo->volume.channels = wwo->sample_spec.channels; -+ pa_cvolume_set(&wwo->volume, wwo->volume.channels, pa_sw_volume_from_dB(MAX(value1, value2))); ++ pa_cvolume_set(&wwo->volume, wwo->volume.channels, pa_sw_volume_from_dB(max(value1, value2))); + } + + if (TRACE_ON(wave)) { @@ -3198,13 +3156,13 @@ index 0000000..1b49460 +@ stdcall -private widMessage(long long long long long long) PULSE_widMessage diff --git a/dlls/winepulse.drv/winepulse.h b/dlls/winepulse.drv/winepulse.h new file mode 100644 -index 0000000..27690d3 +index 0000000..59fbb38 --- /dev/null +++ b/dlls/winepulse.drv/winepulse.h -@@ -0,0 +1,232 @@ +@@ -0,0 +1,228 @@ +/* Definitions for PulseAudio Wine Driver + * -+ * Copyright 2008 Arthur Taylor ++ * Copyright 2009 Arthur Taylor + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public @@ -3262,10 +3220,6 @@ index 0000000..27690d3 +#define WINE_WS_CLOSED 4 +#define WINE_WS_FAILED 5 + -+#define PULSE_OUT_DEVS 0x1 -+#define PULSE_IN_DEVS 0x2 -+#define PULSE_ALL_DEVS PULSE_IN_DEVS | PULSE_OUT_DEVS -+ +#define PULSE_ALL_FORMATS \ + WAVE_FORMAT_1M08 | /* Mono 11025Hz 8-bit */\ + WAVE_FORMAT_1M16 | /* Mono 11025Hz 16-bit */\ @@ -3338,10 +3292,11 @@ index 0000000..27690d3 + pa_sample_spec sample_spec; + pa_cvolume volume; + -+ PBYTE buffer; /* Pointer to the latest data fragment for recording streams */ -+ size_t buffer_length; /* How large the latest data fragment is */ -+ size_t buffer_read_offset; /* How far into latest data fragment we last read */ -+ size_t fraglen; ++ PBYTE buffer; ++ DWORD buffer_length; ++ DWORD buffer_read_offset; ++ DWORD buffer_play_offset; ++ DWORD fraglen; +}; + +/* Per-playback/record device */ @@ -3388,9 +3343,9 @@ index 0000000..27690d3 + + /* waveIn */ + const void *buffer; /* Pointer to the latest data fragment for recording streams */ -+ size_t buffer_length; /* How large the latest data fragment is */ -+ size_t buffer_read_offset; /* How far into latest data fragment we last read */ -+ size_t fraglen; ++ DWORD buffer_length; /* How large the latest data fragment is */ ++ DWORD buffer_read_offset; /* How far into latest data fragment we last read */ ++ DWORD fraglen; + + /* Thread communication and synchronization stuff */ + HANDLE hStartUpEvent; @@ -3428,7 +3383,6 @@ index 0000000..27690d3 +int PULSE_AddRingMessage(PULSE_MSG_RING* omr, enum win_wm_message msg, DWORD param, BOOL wait); +int PULSE_RetrieveRingMessage(PULSE_MSG_RING* omr, enum win_wm_message *msg, DWORD *param, HANDLE *hEvent); +const char * PULSE_getCmdString(enum win_wm_message msg); -+BOOL PULSE_UpdateWavedevs(int devices); + +/* dsoutput.c */ +DWORD wodDsCreate(UINT wDevID, PIDSDRIVER* drv); From 15c44a7b2beaf8a0117b3f1afae3ca67c33f3702 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Tue, 12 May 2009 14:43:26 +0000 Subject: [PATCH 111/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine-desktop-mime.patch | 10 - wine.spec | 22 +- winepulse-0.24.patch => winepulse-0.25.patch | 448 ++++++++++--------- 5 files changed, 258 insertions(+), 226 deletions(-) delete mode 100644 wine-desktop-mime.patch rename winepulse-0.24.patch => winepulse-0.25.patch (94%) diff --git a/.cvsignore b/.cvsignore index 8cff2a6..ba3a325 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-1.1.18-fe.tar.bz2 +wine-1.1.21-fe.tar.bz2 diff --git a/sources b/sources index 4efaac4..6e93402 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -1933049a7cc725bcb488c6669fa5ca9e wine-1.1.18-fe.tar.bz2 +5b062451ee5e21189eea49cffd9bc0d8 wine-1.1.21-fe.tar.bz2 diff --git a/wine-desktop-mime.patch b/wine-desktop-mime.patch deleted file mode 100644 index ed87de5..0000000 --- a/wine-desktop-mime.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- tools/wine.desktop.orig 2009-01-17 09:46:27.000000000 +0100 -+++ tools/wine.desktop 2009-01-17 09:46:59.000000000 +0100 -@@ -16,6 +16,6 @@ - Name[nb]=Wine Programlaster for Windowsapplikasjoner - Name[nn]=Wine Programlaster for Windowsapplikasjoner - Exec=wine start /unix %f --MimeType=application/x-ms-dos-executable;application/x-msdos-program;application/x-msdownload;application/exe;application/x-exe;application/dos-exe;vms/exe;application/x-winexe;application/msdos-windows;application/x-zip-compressed;application/x-executable;application/x-msi; -+MimeType=application/x-ms-dos-executable;application/x-msdos-program;application/x-msdownload;application/exe;application/x-exe;application/dos-exe;vms/exe;application/x-winexe;application/msdos-windows;application/x-zip-compressed;application/x-msi; - NoDisplay=true - StartupNotify=true diff --git a/wine.spec b/wine.spec index 41197b9..ddfc967 100644 --- a/wine.spec +++ b/wine.spec @@ -1,5 +1,5 @@ Name: wine -Version: 1.1.18 +Version: 1.1.21 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -43,14 +43,12 @@ Source300: wine-mime-msi.desktop # see http://bugs.winehq.org/show_bug.cgi?id=10495 # and http://art.ified.ca/?page_id=40 Patch400: http://art.ified.ca/downloads/winepulse-0.17-configure.ac.patch -Patch401: http://art.ified.ca/downloads/winepulse-0.24.patch +Patch401: http://art.ified.ca/downloads/winepulse-0.25.patch Patch402: http://art.ified.ca/downloads/adding-pulseaudio-to-winecfg.patch Source402: README-FEDORA-PULSEAUDIO Patch1: wine-rpath.patch -# fix #448338 -Patch2: wine-desktop-mime.patch Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) ExclusiveArch: %{ix86} @@ -239,7 +237,6 @@ wine audio driver. Please do not report bugs regarding this driver at winehq.org %prep %setup -q -n %{name}-%{version}-fe %patch1 -%patch2 %patch400 -p1 %patch401 -p1 %patch402 -p1 @@ -421,6 +418,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/secedit.exe.so %{_libdir}/wine/services.exe.so %{_libdir}/wine/start.exe.so +%{_libdir}/wine/termsv.exe.so %{_libdir}/wine/wineboot.exe.so %{_libdir}/wine/winebrowser.exe.so %{_libdir}/wine/wineconsole.exe.so @@ -451,6 +449,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/authz.dll.so %{_libdir}/wine/avicap32.dll.so %{_libdir}/wine/avifil32.dll.so +%{_libdir}/wine/bcrypt.dll.so %{_libdir}/wine/browseui.dll.so %{_libdir}/wine/cabinet.dll.so %{_libdir}/wine/cards.dll.so @@ -479,7 +478,6 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/d3dxof.dll.so %{_libdir}/wine/dbghelp.dll.so %{_libdir}/wine/dciman32.dll.so -%{_libdir}/wine/ddeml.dll16 %{_libdir}/wine/ddraw.dll.so %{_libdir}/wine/ddrawex.dll.so %{_libdir}/wine/devenum.dll.so @@ -640,7 +638,6 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/sfc_os.dll.so %{_libdir}/wine/shdoclc.dll.so %{_libdir}/wine/shdocvw.dll.so -%{_libdir}/wine/shell.dll16 %{_libdir}/wine/shell32.dll.so %{_libdir}/wine/shfolder.dll.so %{_libdir}/wine/shlwapi.dll.so @@ -723,6 +720,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/xinput1_2.dll.so %{_libdir}/wine/xinput1_3.dll.so %{_libdir}/wine/xinput9_1_0.dll.so +%{_libdir}/wine/xmllite.dll.so %{_sysconfdir}/ld.so.conf.d/wine-32.conf # 16bit %{_libdir}/wine/avifile.dll16.so @@ -730,6 +728,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/compobj.dll16.so %{_libdir}/wine/ctl3d.dll16.so %{_libdir}/wine/ctl3dv2.dll16.so +%{_libdir}/wine/ddeml.dll16.so %{_libdir}/wine/dispdib.dll16.so %{_libdir}/wine/display.drv16.so %{_libdir}/wine/imm.dll16.so @@ -747,6 +746,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/olecli.dll16.so %{_libdir}/wine/olesvr.dll16.so %{_libdir}/wine/rasapi16.dll16.so +%{_libdir}/wine/shell.dll16.so %{_libdir}/wine/sound.drv16.so %{_libdir}/wine/storage.dll16.so %{_libdir}/wine/stress.dll16.so @@ -864,6 +864,14 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/winepulse.drv.so %changelog +* Tue May 12 2009 Andreas Bierfert +- 1.1.21-1 +- version upgrade + +* Mon Apr 27 2009 Andreas Bierfert +- 1.1.20-1 +- version upgrade + * Mon Mar 30 2009 Andreas Bierfert - 1.1.18-1 - version upgrade (#490672, #491321) diff --git a/winepulse-0.24.patch b/winepulse-0.25.patch similarity index 94% rename from winepulse-0.24.patch rename to winepulse-0.25.patch index 97466a4..3c73118 100644 --- a/winepulse-0.24.patch +++ b/winepulse-0.25.patch @@ -22,10 +22,10 @@ index 0000000..327f225 +@DEPENDENCIES@ # everything below this line is overwritten by make depend diff --git a/dlls/winepulse.drv/dsoutput.c b/dlls/winepulse.drv/dsoutput.c new file mode 100644 -index 0000000..b37313a +index 0000000..203fac0 --- /dev/null +++ b/dlls/winepulse.drv/dsoutput.c -@@ -0,0 +1,576 @@ +@@ -0,0 +1,578 @@ +/* + * Wine Driver for PulseAudio - DSound Output Functionality + * http://pulseaudio.org/ @@ -288,6 +288,7 @@ index 0000000..b37313a + old_spec.format == This->sample_spec.format && + old_spec.channels == This->sample_spec.channels) { + TRACE("same as original sample spec, exiting.\n"); ++ PULSE_WaitForOperation(pa_stream_flush(This->stream, PULSE_StreamSuccessCallback, This)); + return DS_OK; + } + @@ -369,6 +370,7 @@ index 0000000..b37313a + pa_threaded_mainloop_lock(PULSE_ml); + PULSE_WaitForOperation(pa_stream_cork(This->stream, 0, PULSE_StreamSuccessCallback, This)); + pa_threaded_mainloop_unlock(PULSE_ml); ++ + return DS_OK; +} + @@ -604,10 +606,10 @@ index 0000000..b37313a +#endif /* HAVE_PULSEAUDIO */ diff --git a/dlls/winepulse.drv/pulse.c b/dlls/winepulse.drv/pulse.c new file mode 100644 -index 0000000..aa84c9b +index 0000000..b68fb05 --- /dev/null +++ b/dlls/winepulse.drv/pulse.c -@@ -0,0 +1,861 @@ +@@ -0,0 +1,770 @@ +/* + * Wine Driver for PulseAudio + * http://pulseaudio.org/ @@ -692,8 +694,8 @@ index 0000000..aa84c9b +#ifdef USE_PIPE_SYNC +#define INIT_OMR(omr) do { if (pipe(omr->msg_pipe) < 0) { omr->msg_pipe[0] = omr->msg_pipe[1] = -1; } } while (0) +#define CLOSE_OMR(omr) do { close(omr->msg_pipe[0]); close(omr->msg_pipe[1]); } while (0) -+#define SIGNAL_OMR(omr) do { int x = 0; int foo; foo = write((omr)->msg_pipe[1], &x, sizeof(x)); } while (0) -+#define CLEAR_OMR(omr) do { int x = 0; int foo; foo = read((omr)->msg_pipe[0], &x, sizeof(x)); } while (0) ++#define SIGNAL_OMR(omr) do { int x = 0; write((omr)->msg_pipe[1], &x, sizeof(x)); } while (0) ++#define CLEAR_OMR(omr) do { int x = 0; read((omr)->msg_pipe[0], &x, sizeof(x)); } while (0) +#define RESET_OMR(omr) do { } while (0) +#define WAIT_OMR(omr, sleep) \ + do { struct pollfd pfd; pfd.fd = (omr)->msg_pipe[0]; \ @@ -938,81 +940,6 @@ index 0000000..aa84c9b +} + +/************************************************************************** -+ * PULSE_GetMMTime [internal] -+ */ -+void PULSE_GetMMTime(const pa_timing_info *t, pa_sample_spec *s, size_t last_reset, LPMMTIME lpTime) { -+ pa_usec_t time, time_temp; -+ size_t bytes, bytes_temp; -+ -+ /* If this is a recording stream we want the write_index and not the read index */ -+ if (last_reset == (size_t) -1) { -+ bytes = t->write_index; -+ last_reset = 0; -+ } else { -+ bytes = t->read_index; -+ if (last_reset > bytes) -+ last_reset = 0; -+ } -+ time = pa_bytes_to_usec(bytes, s); -+ time += pa_timeval_age(&t->timestamp); -+ -+ if (t->playing) { -+ bytes += ((pa_timeval_age(&t->timestamp) / 1000) * pa_bytes_per_second(s)) / 1000; -+ bytes_temp = (time_temp = t->sink_usec + t->transport_usec)/1000 * pa_bytes_per_second(s)/1000; -+ } else { -+ time = 0; -+ time_temp = 0; -+ bytes_temp = 0; -+ } -+ -+ time -= pa_bytes_to_usec(last_reset, s); -+ bytes -= last_reset; -+ if (bytes > bytes_temp) -+ bytes -= bytes_temp; -+ else -+ bytes = 0; -+ -+ if (time > time_temp) -+ time -= time_temp; -+ else -+ time = 0; -+ -+ bytes -= bytes % pa_frame_size(s); -+ time /= 1000; /* In milliseconds now */ -+ -+ switch (lpTime->wType) { -+ case TIME_SAMPLES: -+ lpTime->u.sample = bytes / pa_frame_size(s); -+ TRACE("TIME_SAMPLES=%u\n", lpTime->u.sample); -+ break; -+ case TIME_MS: -+ lpTime->u.ms = time; -+ TRACE("TIME_MS=%u\n", lpTime->u.ms); -+ break; -+ case TIME_SMPTE: -+ lpTime->u.smpte.fps = 30; -+ lpTime->u.smpte.sec = time/1000; -+ lpTime->u.smpte.min = lpTime->u.smpte.sec / 60; -+ lpTime->u.smpte.sec -= 60 * lpTime->u.smpte.min; -+ lpTime->u.smpte.hour = lpTime->u.smpte.min / 60; -+ lpTime->u.smpte.min -= 60 * lpTime->u.smpte.hour; -+ lpTime->u.smpte.frame = time / lpTime->u.smpte.fps * 1000; -+ TRACE("TIME_SMPTE=%02u:%02u:%02u:%02u\n", -+ lpTime->u.smpte.hour, lpTime->u.smpte.min, -+ lpTime->u.smpte.sec, lpTime->u.smpte.frame); -+ break; -+ default: -+ WARN("Format %d not supported, using TIME_BYTES !\n", lpTime->wType); -+ lpTime->wType = TIME_BYTES; -+ /* fall through */ -+ case TIME_BYTES: -+ lpTime->u.cb = bytes; -+ TRACE("TIME_BYTES=%u\n", lpTime->u.cb); -+ break; -+ } -+} -+ -+/************************************************************************** + * PULSE_WaitForOperation + * + * Waits for pa operations to complete, and dereferences the operation. @@ -1033,22 +960,6 @@ index 0000000..aa84c9b + */ + +/************************************************************************** -+ * PULSE_StreamRequestCallback -+ * -+ * Called by the pulse mainloop whenever it wants or has audio data. -+ */ -+void PULSE_StreamRequestCallback(pa_stream *s, size_t nbytes, void *userdata) { -+ WINE_WAVEINST *ww = (WINE_WAVEINST*)userdata; -+ assert(s && ww); -+ -+ TRACE("Asking to feed/be fed %u bytes\n", nbytes); -+ -+ /* Make sure that the player/recorder is running */ -+ if (ww->hThread != INVALID_HANDLE_VALUE && ww->msgRing.messages) { -+ PULSE_AddRingMessage(&ww->msgRing, WINE_WM_FEED, (DWORD)nbytes, FALSE); -+ } -+} -+/************************************************************************** + * PULSE_StreamSuspendedCallback [internal] + * + * Called by the pulse mainloop any time stream playback is intentionally @@ -1471,10 +1382,10 @@ index 0000000..aa84c9b +} diff --git a/dlls/winepulse.drv/wavein.c b/dlls/winepulse.drv/wavein.c new file mode 100644 -index 0000000..1534d6e +index 0000000..5495b2a --- /dev/null +++ b/dlls/winepulse.drv/wavein.c -@@ -0,0 +1,572 @@ +@@ -0,0 +1,614 @@ +/* + * Wine Driver for PulseAudio - WaveIn Functionality + * http://pulseaudio.org/ @@ -1546,31 +1457,58 @@ index 0000000..1534d6e +} + +/************************************************************************** ++ * widRecorder_NextFragment [internal] ++ * ++ * Gets the next fragment of data from the server. ++ */ ++static size_t widRecorder_NextFragment(WINE_WAVEINST *wwi) { ++ size_t nbytes; ++ ++ pa_stream_peek(wwi->stream, &wwi->buffer, &nbytes); ++ wwi->buffer_length = nbytes; ++ wwi->buffer_read_offset = 0; ++ ++ return nbytes; ++} ++ ++ ++/************************************************************************** + * widRecorder_CopyData [internal] + * + * Copys data from the fragments pulse returns to queued buffers. + */ +static void widRecorder_CopyData(WINE_WAVEINST *wwi) { + LPWAVEHDR lpWaveHdr = wwi->lpQueuePtr; -+ size_t size; -+ while (lpWaveHdr && wwi->state == WINE_WS_PLAYING && wwi->buffer) { -+ size = min(wwi->buffer_length - wwi->buffer_read_offset, lpWaveHdr->dwBufferLength - lpWaveHdr->dwBytesRecorded); -+ if (size == 0) ERR("Size is 0! buffer is full but not freed?\n"); -+ memcpy(lpWaveHdr->lpData + lpWaveHdr->dwBytesRecorded, (PBYTE)wwi->buffer + wwi->buffer_read_offset, size); -+ wwi->buffer_read_offset += size; ++ size_t nbytes; ++ ++ while (lpWaveHdr && wwi->state == WINE_WS_PLAYING) { ++ ++ nbytes = min(wwi->buffer_length - wwi->buffer_read_offset, lpWaveHdr->dwBufferLength - lpWaveHdr->dwBytesRecorded); ++ if (nbytes == 0) break; ++ ++ TRACE("%u bytes from %p to %p\n", nbytes, (PBYTE)wwi->buffer + wwi->buffer_read_offset, lpWaveHdr->lpData + lpWaveHdr->dwBytesRecorded); ++ memcpy(lpWaveHdr->lpData + lpWaveHdr->dwBytesRecorded, (PBYTE)wwi->buffer + wwi->buffer_read_offset, nbytes); ++ ++ lpWaveHdr->dwBytesRecorded += nbytes; ++ wwi->buffer_read_offset += nbytes; ++ + if (wwi->buffer_read_offset == wwi->buffer_length) { + pa_threaded_mainloop_lock(PULSE_ml); + pa_stream_drop(wwi->stream); ++ if (pa_stream_readable_size(wwi->stream)) ++ widRecorder_NextFragment(wwi); ++ else { ++ wwi->buffer = NULL; ++ wwi->buffer_length = 0; ++ wwi->buffer_read_offset = 0; ++ } + pa_threaded_mainloop_unlock(PULSE_ml); -+ wwi->buffer = NULL; -+ wwi->buffer_length = 0; -+ wwi->buffer_read_offset = 0; + } -+ lpWaveHdr->dwBytesRecorded += size; ++ + if (lpWaveHdr->dwBytesRecorded == lpWaveHdr->dwBufferLength) { -+ wwi->lpQueuePtr = lpWaveHdr->lpNext; + lpWaveHdr->dwFlags &= ~WHDR_INQUEUE; -+ lpWaveHdr->dwFlags |= WHDR_DONE; ++ lpWaveHdr->dwFlags |= WHDR_DONE; ++ wwi->lpQueuePtr = lpWaveHdr->lpNext; + widNotifyClient(wwi, WIM_DATA, (DWORD)lpWaveHdr, 0); + lpWaveHdr = wwi->lpQueuePtr; + } @@ -1578,28 +1516,6 @@ index 0000000..1534d6e +} + +/************************************************************************** -+* widRecorder_NextFragment [internal] -+* -+* Switches the current fragment to the next based upon a message from the -+* server. -+*/ -+static void widRecorder_NextFragment(WINE_WAVEINST *wwi, size_t sizer) { -+ LPWAVEHDR lpWaveHdr = wwi->lpQueuePtr; -+ size_t request = 0; -+ -+ for (;lpWaveHdr; lpWaveHdr = lpWaveHdr->lpNext) -+ request += lpWaveHdr->dwBufferLength; -+ -+ lpWaveHdr = wwi->lpQueuePtr; -+ pa_threaded_mainloop_lock(PULSE_ml); -+ pa_stream_peek(wwi->stream, &wwi->buffer, &request); -+ wwi->buffer_length = request; -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ -+ widRecorder_CopyData(wwi); -+} -+ -+/************************************************************************** + * widRecorder [internal] + */ +static DWORD CALLBACK widRecorder(LPVOID lpParam) { @@ -1608,23 +1524,38 @@ index 0000000..1534d6e + enum win_wm_message msg; + DWORD param; + HANDLE ev; ++ DWORD wait; + + wwi->state = WINE_WS_STOPPED; + SetEvent(wwi->hStartUpEvent); + + for (;;) { -+ PULSE_WaitRingMessage(&wwi->msgRing, INFINITE); ++ ++ if (wwi->state != WINE_WS_PLAYING) { ++ wait = INFINITE; ++ } else { ++ if (wwi->buffer == NULL && pa_stream_readable_size(wwi->stream)) { ++ pa_threaded_mainloop_lock(PULSE_ml); ++ wait = pa_bytes_to_usec(widRecorder_NextFragment(wwi), &wwi->sample_spec)/1000; ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ } ++ } ++ ++ widRecorder_CopyData(wwi); ++ ++ PULSE_WaitRingMessage(&wwi->msgRing, wait); ++ + while (PULSE_RetrieveRingMessage(&wwi->msgRing, &msg, ¶m, &ev)) { + TRACE("Received %s %x\n", PULSE_getCmdString(msg), param); + + switch (msg) { + case WINE_WM_FEED: + SetEvent(ev); -+ if (wwi->state == WINE_WS_PLAYING) -+ widRecorder_NextFragment(wwi, param); + break; + case WINE_WM_STARTING: + wwi->state = WINE_WS_PLAYING; ++ wait = pa_bytes_to_usec(wwi->lpQueuePtr->dwBufferLength, &wwi->sample_spec)/1000; ++ wwi->last_reset = wwi->timing_info->read_index; + pa_threaded_mainloop_lock(PULSE_ml); + PULSE_WaitForOperation(pa_stream_cork(wwi->stream, 0, PULSE_StreamSuccessCallback, NULL)); + pa_threaded_mainloop_unlock(PULSE_ml); @@ -1643,9 +1574,9 @@ index 0000000..1534d6e + break; + case WINE_WM_STOPPING: + if (wwi->state != WINE_WS_STOPPED) { ++ wwi->state = WINE_WS_STOPPED; + pa_threaded_mainloop_lock(PULSE_ml); + PULSE_WaitForOperation(pa_stream_cork(wwi->stream, 1, PULSE_StreamSuccessCallback, NULL)); -+ pa_stream_drop(wwi->stream); + pa_threaded_mainloop_unlock(PULSE_ml); + + /* return current buffer to app */ @@ -1659,37 +1590,30 @@ index 0000000..1534d6e + widNotifyClient(wwi, WIM_DATA, (DWORD)lpWaveHdr, 0); + } + } -+ wwi->state = WINE_WS_STOPPED; + SetEvent(ev); + break; + case WINE_WM_RESETTING: + if (wwi->state != WINE_WS_STOPPED) { ++ wwi->state = WINE_WS_STOPPED; + pa_threaded_mainloop_lock(PULSE_ml); -+ pa_stream_drop(wwi->stream); ++ PULSE_WaitForOperation(pa_stream_cork(wwi->stream, 1, PULSE_StreamSuccessCallback, NULL)); + pa_threaded_mainloop_unlock(PULSE_ml); + } -+ wwi->state = WINE_WS_STOPPED; + + /* return all buffers to the app */ -+ for (lpWaveHdr = wwi->lpQueuePtr; lpWaveHdr; lpWaveHdr = wwi->lpQueuePtr) { -+ TRACE("reset %p %p\n", lpWaveHdr, lpWaveHdr->lpNext); ++ for (lpWaveHdr = wwi->lpPlayPtr ? wwi->lpPlayPtr : wwi->lpQueuePtr; lpWaveHdr; lpWaveHdr = wwi->lpQueuePtr) { + lpWaveHdr->dwFlags &= ~WHDR_INQUEUE; + lpWaveHdr->dwFlags |= WHDR_DONE; + wwi->lpQueuePtr = lpWaveHdr->lpNext; + widNotifyClient(wwi, WIM_DATA, (DWORD)lpWaveHdr, 0); + } -+ wwi->lpQueuePtr = NULL; ++ + SetEvent(ev); + break; -+ case WINE_WM_XRUN: -+ pa_threaded_mainloop_lock(PULSE_ml); -+ pa_stream_drop(wwi->stream); -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ wwi->buffer_read_offset = 0; -+ break; + case WINE_WM_CLOSING: + wwi->hThread = 0; + if ((DWORD)param == 1) { ++ /* If we are here, the stream failed */ + wwi->state = WINE_WS_FAILED; + SetEvent(ev); + PULSE_DestroyRingMessage(&wwi->msgRing); @@ -1708,8 +1632,8 @@ index 0000000..1534d6e + default: + FIXME("unknown message %d\n", msg); + break; -+ } -+ } ++ } /* switch(msg) */ ++ } /* while(PULSE_RetrieveRingMessage()) */ + } /* for (;;) */ +} + @@ -1771,7 +1695,6 @@ index 0000000..1534d6e + } + + pa_stream_set_state_callback(wwi->stream, PULSE_StreamStateCallback, wwi); -+ pa_stream_set_read_callback(wwi->stream, PULSE_StreamRequestCallback, wwi); + + pa_threaded_mainloop_lock(PULSE_ml); + TRACE("Asking to open %s for recording.\n", wdi->device_name); @@ -1924,6 +1847,7 @@ index 0000000..1534d6e + * widGetPosition [internal] + */ +static DWORD widGetPosition(WINE_WAVEINST *wwi, LPMMTIME lpTime, DWORD uSize) { ++ DWORD bytes, time; + if (!wwi || wwi->state == WINE_WS_FAILED) { + WARN("Stream instance invalid.\n"); + return MMSYSERR_INVALHANDLE; @@ -1931,10 +1855,39 @@ index 0000000..1534d6e + + if (lpTime == NULL) return MMSYSERR_INVALPARAM; + -+ pa_threaded_mainloop_lock(PULSE_ml); -+ PULSE_GetMMTime(wwi->timing_info, &wwi->sample_spec, (size_t)-1, lpTime); -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ ++ bytes = wwi->timing_info->read_index - wwi->last_reset; ++ time = pa_bytes_to_usec(bytes, &wwi->sample_spec) / 1000; ++ ++ switch (lpTime->wType) { ++ case TIME_SAMPLES: ++ lpTime->u.sample = bytes / pa_frame_size(&wwi->sample_spec); ++ TRACE("TIME_SAMPLES=%u\n", lpTime->u.sample); ++ break; ++ case TIME_MS: ++ lpTime->u.ms = time; ++ TRACE("TIME_MS=%u\n", lpTime->u.ms); ++ break; ++ case TIME_SMPTE: ++ lpTime->u.smpte.fps = 30; ++ lpTime->u.smpte.sec = time/1000; ++ lpTime->u.smpte.min = lpTime->u.smpte.sec / 60; ++ lpTime->u.smpte.sec -= 60 * lpTime->u.smpte.min; ++ lpTime->u.smpte.hour = lpTime->u.smpte.min / 60; ++ lpTime->u.smpte.min -= 60 * lpTime->u.smpte.hour; ++ lpTime->u.smpte.frame = time / lpTime->u.smpte.fps * 1000; ++ TRACE("TIME_SMPTE=%02u:%02u:%02u:%02u\n", ++ lpTime->u.smpte.hour, lpTime->u.smpte.min, ++ lpTime->u.smpte.sec, lpTime->u.smpte.frame); ++ break; ++ default: ++ WARN("Format %d not supported, using TIME_BYTES !\n", lpTime->wType); ++ lpTime->wType = TIME_BYTES; ++ /* fall through */ ++ case TIME_BYTES: ++ lpTime->u.cb = bytes; ++ TRACE("TIME_BYTES=%u\n", lpTime->u.cb); ++ break; ++ } + return MMSYSERR_NOERROR; +} + @@ -2049,10 +2002,10 @@ index 0000000..1534d6e +#endif /* HAVE_PULSEAUDIO */ diff --git a/dlls/winepulse.drv/waveout.c b/dlls/winepulse.drv/waveout.c new file mode 100644 -index 0000000..4539103 +index 0000000..b531ee2 --- /dev/null +++ b/dlls/winepulse.drv/waveout.c -@@ -0,0 +1,1092 @@ +@@ -0,0 +1,1176 @@ +/* + * Wine Driver for PulseAudio - WaveOut Functionality + * http://pulseaudio.org/ @@ -2144,6 +2097,23 @@ index 0000000..4539103 + } +} +#endif ++ ++/************************************************************************** ++ * WAVEOUT_StreamRequestCallback ++ * ++ * Called by the pulse mainloop whenever it wants audio data. ++ */ ++static void WAVEOUT_StreamRequestCallback(pa_stream *s, size_t nbytes, void *userdata) { ++ WINE_WAVEINST *ww = (WINE_WAVEINST*)userdata; ++ ++ TRACE("Asking to be fed %u bytes\n", nbytes); ++ ++ /* Make sure that the player/recorder is running */ ++ if (ww->hThread != INVALID_HANDLE_VALUE && ww->msgRing.messages) { ++ PULSE_AddRingMessage(&ww->msgRing, WINE_WM_FEED, (DWORD)nbytes, FALSE); ++ } ++} ++ +/************************************************************************** + * WAVEOUT_StreamTimingInfoUpdateCallback [internal] + * @@ -2164,7 +2134,11 @@ index 0000000..4539103 + } +} + -+ ++/************************************************************************** ++ * WAVEOUT_SinkInputInfoCallback [internal] ++ * ++ * Called by the pulse thread. Used for wodGetVolume. ++ */ +static void WAVEOUT_SinkInputInfoCallback(pa_context *c, const pa_sink_input_info *i, int eol, void *userdata) { + WINE_WAVEINST* wwo = (WINE_WAVEINST*)userdata; + if (!eol && i) { @@ -2181,16 +2155,16 @@ index 0000000..4539103 +/************************************************************************** + * wodPlayer_NotifyClient [internal] + */ -+static DWORD wodPlayer_NotifyClient(WINE_WAVEINST* wwi, WORD wMsg, DWORD dwParam1, DWORD dwParam2) { ++static DWORD wodPlayer_NotifyClient(WINE_WAVEINST* wwo, WORD wMsg, DWORD dwParam1, DWORD dwParam2) { + TRACE("wMsg = 0x%04x dwParm1 = %04X dwParam2 = %04X\n", wMsg, dwParam1, dwParam2); + + switch (wMsg) { + case WOM_OPEN: + case WOM_CLOSE: + case WOM_DONE: -+ if (wwi->wFlags != DCB_NULL && -+ !DriverCallback(wwi->waveDesc.dwCallback, wwi->wFlags, (HDRVR)wwi->waveDesc.hWave, -+ wMsg, wwi->waveDesc.dwInstance, dwParam1, dwParam2)) { ++ if (wwo->wFlags != DCB_NULL && ++ !DriverCallback(wwo->waveDesc.dwCallback, wwo->wFlags, (HDRVR)wwo->waveDesc.hWave, ++ wMsg, wwo->waveDesc.dwInstance, dwParam1, dwParam2)) { + WARN("can't notify client !\n"); + return MMSYSERR_ERROR; + } @@ -2271,17 +2245,10 @@ index 0000000..4539103 +static void wodPlayer_CheckReleasing(WINE_WAVEINST *wwo) { + LPWAVEHDR lpWaveHdr = wwo->lpQueuePtr; + -+ /* If we aren't playing, and we have queued data and we aren't relasing, -+ * start releasing if either: -+ * - We have stopped being given wavehdrs, or -+ * - We have 2s worth of audio built up.*/ -+ + pa_threaded_mainloop_lock(PULSE_ml); -+ if (!wwo->timing_info->playing && -+ (pa_bytes_to_usec(lpWaveHdr->dwBufferLength, &wwo->sample_spec)/2 < pa_timeval_age(&wwo->last_header)|| -+ wwo->timing_info->write_index - wwo->releasing_offset > pa_bytes_per_second(&wwo->sample_spec)*2)) { ++ if (!wwo->timing_info->playing && !wwo->is_releasing && lpWaveHdr && !wwo->lpPlayPtr && wwo->state == WINE_WS_PLAYING) { + -+ /* Try and adjust the buffer attributes so there is less latency. ++ /* Try and adjust the buffer attributes so there is less latency. + * Because of bugs this call does not work on older servers. Once + * new version of pulseaudio become ubiquitous we will drop support for + * versions before 0.9.15 because they have too many bugs.*/ @@ -2294,11 +2261,11 @@ index 0000000..4539103 + WARN("Asking for new buffer tlength of %ums (%u bytes)\n", (unsigned int)(pa_bytes_to_usec(wwo->buffer_attr.tlength, &wwo->sample_spec)/1000), wwo->buffer_attr.tlength); + pa_stream_set_buffer_attr(wwo->stream, &wwo->buffer_attr, PULSE_StreamSuccessCallback, wwo); + } else { -+ /* Fake playback start earlier, introducing latency */ ++ /* Fake playback start earlier, introducing unknown latency */ + pa_gettimeofday(&wwo->started_releasing); + wwo->is_releasing = TRUE; + wwo->releasing_offset = wwo->lpQueuePtr->reserved; -+ TRACE("Starting to release early: %u\n", wwo->releasing_offset); ++ WARN("Starting to release early.\n"); + } + } + pa_threaded_mainloop_unlock(PULSE_ml); @@ -2317,7 +2284,7 @@ index 0000000..4539103 + * behaviour. + */ +static DWORD wodPlayer_NotifyCompletions(WINE_WAVEINST* wwo, BOOL force) { -+ LPWAVEHDR lpWaveHdr; ++ LPWAVEHDR lpWaveHdr = wwo->lpQueuePtr; + pa_usec_t time; + pa_usec_t wait; + @@ -2325,7 +2292,7 @@ index 0000000..4539103 + if (wwo->is_releasing) + time += pa_timeval_age(&wwo->started_releasing); + -+ for (lpWaveHdr = wwo->lpQueuePtr; lpWaveHdr;) { ++ while (lpWaveHdr) { + if (!force) { + /* Start from lpQueuePtr and keep notifying until: + * - we hit an unwritten wavehdr @@ -2390,7 +2357,7 @@ index 0000000..4539103 + */ +static void wodPlayer_Feed(WINE_WAVEINST* wwo, size_t space) { + -+ /* no more room... no need to try to feed */ ++ /* No more room... no need to try to feed */ + if (space == 0) return; + + if (!wwo->stream || !PULSE_context || @@ -2508,14 +2475,15 @@ index 0000000..4539103 +/************************************************************************** + * wodPlayer_ProcessMessages [internal] + */ -+static void wodPlayer_ProcessMessages(WINE_WAVEINST* wwo) { ++static DWORD wodPlayer_ProcessMessages(WINE_WAVEINST* wwo) { + LPWAVEHDR lpWaveHdr; + enum win_wm_message msg; -+ DWORD param; ++ DWORD param, msgcount = 0; + HANDLE ev; + + while (PULSE_RetrieveRingMessage(&wwo->msgRing, &msg, ¶m, &ev)) { + TRACE("Received %s %x\n", PULSE_getCmdString(msg), param); ++ msgcount++; + + switch (msg) { + case WINE_WM_PAUSING: @@ -2559,8 +2527,6 @@ index 0000000..4539103 + wwo->state = WINE_WS_PLAYING; + + wodPlayer_Feed(wwo, pa_stream_writable_size(wwo->stream)); -+ if (!wwo->timing_info->playing && !wwo->is_releasing) -+ pa_gettimeofday(&wwo->last_header); + SetEvent(ev); + break; + @@ -2632,10 +2598,15 @@ index 0000000..4539103 + break; + } + } ++ ++ return msgcount; +} + +/************************************************************************** + * wodPlayer [internal] ++ * ++ * The thread which is responsible for returning WaveHdrs via DriverCallback, ++ * the writing of queued WaveHdrs, and all pause / reset stream management. + */ +static DWORD CALLBACK wodPlayer(LPVOID lpParam) { + WINE_WAVEINST *wwo = (WINE_WAVEINST*)lpParam; @@ -2644,17 +2615,21 @@ index 0000000..4539103 + wwo->state = WINE_WS_STOPPED; + SetEvent(wwo->hStartUpEvent); + -+ /* Wait for the shortest time before an action is required. If there are -+ * no pending actions, wait forever for a command. */ ++/* Wait for the shortest time before an action is required. If there are no ++ * pending actions, wait forever for a command. */ + for (;;) { + TRACE("Waiting %u ms\n", dwSleepTime); + PULSE_WaitRingMessage(&wwo->msgRing, dwSleepTime); -+ wodPlayer_ProcessMessages(wwo); -+ if (wwo->state == WINE_WS_PLAYING) { -+ if (!wwo->is_releasing && wwo->lpQueuePtr) -+ wodPlayer_CheckReleasing(wwo); ++ ++/* If no messages were processed during the timeout it might be because audio ++ * is not flowing yet, so check. */ ++ if (wodPlayer_ProcessMessages(wwo) == 0) ++ wodPlayer_CheckReleasing(wwo); ++ ++/* If there is audio playing, return headers and get next timeout */ ++ if (wwo->state == WINE_WS_PLAYING) + dwSleepTime = wodPlayer_NotifyCompletions(wwo, FALSE); -+ } else ++ else + dwSleepTime = INFINITE; + } +} @@ -2718,8 +2693,8 @@ index 0000000..4539103 + goto exit; + } + ++ pa_stream_set_write_callback (wwo->stream, WAVEOUT_StreamRequestCallback, wwo); + pa_stream_set_state_callback (wwo->stream, PULSE_StreamStateCallback, wwo); -+ pa_stream_set_write_callback (wwo->stream, PULSE_StreamRequestCallback, wwo); + pa_stream_set_underflow_callback (wwo->stream, PULSE_StreamUnderflowCallback, wwo); + pa_stream_set_overflow_callback (wwo->stream, PULSE_StreamOverflowCallback, wwo); + pa_stream_set_moved_callback (wwo->stream, PULSE_StreamMovedCallback, wwo); @@ -2882,6 +2857,9 @@ index 0000000..4539103 + * wodGetPosition [internal] + */ +static DWORD wodGetPosition(WINE_WAVEINST *wwo, LPMMTIME lpTime, DWORD uSize) { ++ pa_usec_t time, time_temp; ++ size_t bytes, bytes_temp; ++ + if (!wwo || wwo->state == WINE_WS_FAILED) { + WARN("Stream instance invalid.\n"); + return MMSYSERR_INVALHANDLE; @@ -2893,9 +2871,68 @@ index 0000000..4539103 + if (wwo->timing_info->read_index_corrupt || wwo->timing_info->write_index_corrupt) + PULSE_WaitForOperation(pa_stream_update_timing_info(wwo->stream, PULSE_StreamSuccessCallback, wwo)); + -+ PULSE_GetMMTime(wwo->timing_info, &wwo->sample_spec, wwo->last_reset, lpTime); ++ bytes = wwo->timing_info->read_index; ++ time = pa_bytes_to_usec(bytes, &wwo->sample_spec); ++ ++ if (wwo->timing_info->playing) { ++ bytes += ((pa_timeval_age(&wwo->timing_info->timestamp) / 1000) * pa_bytes_per_second(&wwo->sample_spec)) / 1000; ++ bytes_temp = (time_temp = wwo->timing_info->sink_usec + wwo->timing_info->transport_usec)/1000 * pa_bytes_per_second(&wwo->sample_spec)/1000; ++ time += pa_timeval_age(&wwo->timing_info->timestamp); ++ } else { ++ time = 0; ++ time_temp = 0; ++ bytes_temp = 0; ++ } ++ + pa_threaded_mainloop_unlock(PULSE_ml); + ++ if (wwo->last_reset < bytes) { ++ time -= pa_bytes_to_usec(wwo->last_reset, &wwo->sample_spec); ++ bytes -= wwo->last_reset; ++ } ++ if (bytes > bytes_temp) ++ bytes -= bytes_temp; ++ else ++ bytes = 0; ++ ++ if (time > time_temp) ++ time -= time_temp; ++ else ++ time = 0; ++ ++ bytes -= bytes % pa_frame_size(&wwo->sample_spec); ++ time /= 1000; /* In milliseconds now */ ++ ++ switch (lpTime->wType) { ++ case TIME_SAMPLES: ++ lpTime->u.sample = bytes / pa_frame_size(&wwo->sample_spec); ++ TRACE("TIME_SAMPLES=%u\n", lpTime->u.sample); ++ break; ++ case TIME_MS: ++ lpTime->u.ms = time; ++ TRACE("TIME_MS=%u\n", lpTime->u.ms); ++ break; ++ case TIME_SMPTE: ++ lpTime->u.smpte.fps = 30; ++ lpTime->u.smpte.sec = time/1000; ++ lpTime->u.smpte.min = lpTime->u.smpte.sec / 60; ++ lpTime->u.smpte.sec -= 60 * lpTime->u.smpte.min; ++ lpTime->u.smpte.hour = lpTime->u.smpte.min / 60; ++ lpTime->u.smpte.min -= 60 * lpTime->u.smpte.hour; ++ lpTime->u.smpte.frame = time / lpTime->u.smpte.fps * 1000; ++ TRACE("TIME_SMPTE=%02u:%02u:%02u:%02u\n", ++ lpTime->u.smpte.hour, lpTime->u.smpte.min, ++ lpTime->u.smpte.sec, lpTime->u.smpte.frame); ++ break; ++ default: ++ WARN("Format %d not supported, using TIME_BYTES !\n", lpTime->wType); ++ lpTime->wType = TIME_BYTES; ++ /* fall through */ ++ case TIME_BYTES: ++ lpTime->u.cb = bytes; ++ TRACE("TIME_BYTES=%u\n", lpTime->u.cb); ++ break; ++ } + return MMSYSERR_NOERROR; +} +/************************************************************************** @@ -3156,10 +3193,10 @@ index 0000000..1b49460 +@ stdcall -private widMessage(long long long long long long) PULSE_widMessage diff --git a/dlls/winepulse.drv/winepulse.h b/dlls/winepulse.drv/winepulse.h new file mode 100644 -index 0000000..59fbb38 +index 0000000..6270e04 --- /dev/null +++ b/dlls/winepulse.drv/winepulse.h -@@ -0,0 +1,228 @@ +@@ -0,0 +1,225 @@ +/* Definitions for PulseAudio Wine Driver + * + * Copyright 2009 Arthur Taylor @@ -3321,31 +3358,30 @@ index 0000000..59fbb38 + WAVEOPENDESC waveDesc; + WORD wFlags; + ++ /* PulseAudio specific data */ + pa_stream *stream; /* The PulseAudio stream */ -+ const pa_timing_info *timing_info; ++ const pa_timing_info *timing_info; /* The timing info structure for the stream */ + pa_sample_spec sample_spec; /* Sample spec of this stream / device */ -+ pa_cvolume volume; -+ pa_buffer_attr buffer_attr; ++ pa_cvolume volume; /* Software volume of the stream */ ++ pa_buffer_attr buffer_attr; /* Buffer attribute, may not be used */ + -+ /* waveIn / waveOut wavaHdr information */ -+ LPWAVEHDR lpQueuePtr; /* start of queued WAVEHDRs (waiting to be notified) */ -+ LPWAVEHDR lpPlayPtr; /* start of not yet fully written buffers */ ++ /* waveIn / waveOut wavaHdr */ ++ LPWAVEHDR lpQueuePtr; /* Start of queued WAVEHDRs (waiting to be notified) */ ++ LPWAVEHDR lpPlayPtr; /* Start of not yet fully written buffers */ + DWORD dwPartialOffset; /* Offset of not yet written bytes in lpPlayPtr */ -+ LPWAVEHDR lpLoopPtr; /* pointer of first buffer in loop, if any */ -+ DWORD dwLoops; /* private copy of loop counter */ ++ LPWAVEHDR lpLoopPtr; /* Pointer of first buffer in loop, if any */ ++ DWORD dwLoops; /* Private copy of loop counter */ + -+ /* Virtual stream positioning information */ -+ DWORD last_reset; /* When the last reset occured, as pa stream time doesn't reset */ -+ struct timeval last_header; /* When the last wavehdr was received, only updated when audio is not playing yet */ ++ /* Virtual stream positioning */ ++ DWORD last_reset; /* When the last reset occured, as pa stream time isn't reset */ + BOOL is_releasing; /* Whether we are releasing wavehdrs */ + struct timeval started_releasing; /* When wavehdr releasing started, for comparison to queued written wavehdrs */ + DWORD releasing_offset; /* How much audio has been released prior when releasing started in this instance */ + -+ /* waveIn */ ++ /* waveIn specific */ + const void *buffer; /* Pointer to the latest data fragment for recording streams */ + DWORD buffer_length; /* How large the latest data fragment is */ + DWORD buffer_read_offset; /* How far into latest data fragment we last read */ -+ DWORD fraglen; + + /* Thread communication and synchronization stuff */ + HANDLE hStartUpEvent; @@ -3368,14 +3404,12 @@ index 0000000..59fbb38 +void PULSE_WaitForOperation(pa_operation *o); +void PULSE_StreamSuccessCallback(pa_stream *s, int success, void *userdata); +void PULSE_StreamStateCallback(pa_stream *s, void *userdata); -+void PULSE_StreamRequestCallback(pa_stream *s, size_t n, void *userdata); +void PULSE_StreamUnderflowCallback(pa_stream *s, void *userdata); +void PULSE_StreamOverflowCallback(pa_stream *s, void *userdata); +void PULSE_StreamSuspendedCallback(pa_stream *s, void *userdata); +void PULSE_StreamMovedCallback(pa_stream *s, void *userdata); +void PULSE_ContextSuccessCallback(pa_context *c, int success, void *userdata); +BOOL PULSE_SetupFormat(LPWAVEFORMATEX wf, pa_sample_spec *ss); -+void PULSE_GetMMTime(const pa_timing_info *t, pa_sample_spec *s, size_t last_reset, LPMMTIME lpTime); +int PULSE_InitRingMessage(PULSE_MSG_RING* omr); +int PULSE_DestroyRingMessage(PULSE_MSG_RING* omr); +void PULSE_ResetRingMessage(PULSE_MSG_RING* omr); From ca583f10edbdd2731db9f66bbd10f32b1b13e5f5 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Tue, 12 May 2009 15:13:26 +0000 Subject: [PATCH 112/715] - add missing dlls --- wine.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/wine.spec b/wine.spec index ddfc967..ea81989 100644 --- a/wine.spec +++ b/wine.spec @@ -653,6 +653,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/svrapi.dll.so %{_libdir}/wine/sxs.dll.so %{_libdir}/wine/system.drv16 +%{_libdir}/wine/t2embed.dll.so %{_libdir}/wine/tapi32.dll.so %{_libdir}/wine/toolhelp.dll16 %{_libdir}/wine/traffic.dll.so @@ -676,6 +677,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/vtdapi.vxd.so %{_libdir}/wine/vwin32.vxd.so %{_libdir}/wine/w32skrnl.dll.so +%{_libdir}/wine/wbemprox.dll.so %{_libdir}/wine/wineaudioio.drv.so %{_libdir}/wine/winedos.dll.so %{_libdir}/wine/wineoss.drv.so From 2236eff560d30795f96f0d981bce0e8fadfeccd1 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Thu, 14 May 2009 13:25:11 +0000 Subject: [PATCH 113/715] - version upgrade - fix uninstaller --- wine-uninstaller.desktop | 2 +- wine.spec | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/wine-uninstaller.desktop b/wine-uninstaller.desktop index b14fc70..8c16fdb 100644 --- a/wine-uninstaller.desktop +++ b/wine-uninstaller.desktop @@ -1,7 +1,7 @@ [Desktop Entry] Name=Wine Software Uninstaller Comment=Interface to uninstall software -Exec=uninstaller +Exec=wine uninstaller Terminal=false Type=Application Encoding=UTF-8 diff --git a/wine.spec b/wine.spec index ea81989..847c127 100644 --- a/wine.spec +++ b/wine.spec @@ -866,6 +866,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/winepulse.drv.so %changelog +* Wed May 13 2009 Andreas Bierfert +- 1.1.21-2 +- fix uninstaller (#500479) + * Tue May 12 2009 Andreas Bierfert - 1.1.21-1 - version upgrade From 04a0566beb0f4856db6f615994b7b39461066de0 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Thu, 14 May 2009 13:31:04 +0000 Subject: [PATCH 114/715] - bump --- wine.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 847c127..0a9d89e 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ Name: wine Version: 1.1.21 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators From d793dd7e39efd87a0b497a5738d58f5b84c13a3b Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Thu, 11 Jun 2009 21:17:26 +0000 Subject: [PATCH 115/715] - version upgrade --- .cvsignore | 2 +- adding-pulseaudio-to-winecfg.patch | 24 ++++++++++++------------ sources | 2 +- wine.spec | 11 ++++++++--- 4 files changed, 22 insertions(+), 17 deletions(-) diff --git a/.cvsignore b/.cvsignore index ba3a325..80b2d9b 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-1.1.21-fe.tar.bz2 +wine-1.1.23-fe.tar.bz2 diff --git a/adding-pulseaudio-to-winecfg.patch b/adding-pulseaudio-to-winecfg.patch index f8770eb..eb1ffd6 100644 --- a/adding-pulseaudio-to-winecfg.patch +++ b/adding-pulseaudio-to-winecfg.patch @@ -178,18 +178,6 @@ index 830cabf..0ed1dbd 100644 IDS_DRIVER_ALSA "Controlador ALSA" IDS_DRIVER_ESOUND "Controlador EsounD" IDS_DRIVER_OSS "Controlador OSS" -diff --git a/programs/winecfg/Ro.rc b/programs/winecfg/Ro.rc -index a4b0cad..c065d36 100644 ---- a/programs/winecfg/Ro.rc -+++ b/programs/winecfg/Ro.rc -@@ -270,6 +270,7 @@ BEGIN - IDS_ACCEL_STANDARD "Standard" - IDS_ACCEL_BASIC "De basă" - IDS_ACCEL_EMULATION "Emulare" -+ IDS_DRIVER_PULSE "Driver PulseAudio" - IDS_DRIVER_ALSA "Driver ALSA" - IDS_DRIVER_ESOUND "Driver Esound" - IDS_DRIVER_OSS "Driver OSS" diff --git a/programs/winecfg/Ru.rc b/programs/winecfg/Ru.rc index 782e1fd..f516399 100644 --- a/programs/winecfg/Ru.rc @@ -287,3 +275,15 @@ index a18fe76..1c4a1e7 100644 #define IDS_DRIVER_ESOUND 8306 #define IDS_DRIVER_OSS 8307 #define IDS_DRIVER_JACK 8308 +diff --git a/programs/winecfg/Ro.rc b/programs/winecfg/Ro.rc +index a4b0cad..c065d36 100644 +--- a/programs/winecfg/Ro.rc ++++ b/programs/winecfg/Ro.rc +@@ -270,6 +270,7 @@ + IDS_ACCEL_STANDARD "Standard" + IDS_ACCEL_BASIC "De bază" + IDS_ACCEL_EMULATION "Emulare" ++ IDS_DRIVER_PULSE "Driver PulseAudio" + IDS_DRIVER_ALSA "Driver ALSA" + IDS_DRIVER_ESOUND "Driver Esound" + IDS_DRIVER_OSS "Driver OSS" diff --git a/sources b/sources index 6e93402..db75873 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -5b062451ee5e21189eea49cffd9bc0d8 wine-1.1.21-fe.tar.bz2 +eb26fea9e52e1cbbe48b107b23564988 wine-1.1.23-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index 0a9d89e..600a8c5 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ Name: wine -Version: 1.1.21 -Release: 2%{?dist} +Version: 1.1.23 +Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -587,7 +587,6 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/msvcrtd.dll.so %{_libdir}/wine/msvfw32.dll.so %{_libdir}/wine/msvidc32.dll.so -%{_libdir}/wine/msvideo.dll16 %{_libdir}/wine/mswsock.dll.so %{_libdir}/wine/msxml3.dll.so %{_libdir}/wine/nddeapi.dll.so @@ -739,6 +738,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/mciqtz32.dll.so %{_libdir}/wine/mouse.drv16.so %{_libdir}/wine/msacm.dll16.so +%{_libdir}/wine/msvideo.dll16.so %{_libdir}/wine/ole2.dll16.so %{_libdir}/wine/ole2conv.dll16.so %{_libdir}/wine/ole2disp.dll16.so @@ -866,6 +866,11 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/winepulse.drv.so %changelog +* Wed Jun 10 2009 Andreas Bierfert +- 1.1.23-1 +- version upgrade (#491321) +- rediff pulseaudio patch (Michael Cronenworth) + * Wed May 13 2009 Andreas Bierfert - 1.1.21-2 - fix uninstaller (#500479) From 0de5d773ad1588327903e97c0b3527197551df42 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 20 Jun 2009 08:02:47 +0000 Subject: [PATCH 116/715] - version upgrade - WinePulse update - drop requires for esd and jack in meta package --- .cvsignore | 2 +- sources | 2 +- wine.spec | 13 +- winepulse-0.25.patch | 3424 ------------------------------------------ winepulse-0.28.patch | 2725 +++++++++++++++++++++++++++++++++ 5 files changed, 2736 insertions(+), 3430 deletions(-) delete mode 100644 winepulse-0.25.patch create mode 100644 winepulse-0.28.patch diff --git a/.cvsignore b/.cvsignore index 80b2d9b..ab65448 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-1.1.23-fe.tar.bz2 +wine-1.1.24-fe.tar.bz2 diff --git a/sources b/sources index db75873..3ed9b0a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -eb26fea9e52e1cbbe48b107b23564988 wine-1.1.23-fe.tar.bz2 +6879c4fbd2e8cf3c4589465868b021a1 wine-1.1.24-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index 600a8c5..aa0ec3c 100644 --- a/wine.spec +++ b/wine.spec @@ -1,5 +1,5 @@ Name: wine -Version: 1.1.23 +Version: 1.1.24 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -43,7 +43,7 @@ Source300: wine-mime-msi.desktop # see http://bugs.winehq.org/show_bug.cgi?id=10495 # and http://art.ified.ca/?page_id=40 Patch400: http://art.ified.ca/downloads/winepulse-0.17-configure.ac.patch -Patch401: http://art.ified.ca/downloads/winepulse-0.25.patch +Patch401: http://art.ified.ca/downloads/winepulse-0.28.patch Patch402: http://art.ified.ca/downloads/adding-pulseaudio-to-winecfg.patch Source402: README-FEDORA-PULSEAUDIO @@ -105,8 +105,6 @@ Requires: wine-core = %{version}-%{release} Requires: wine-capi = %{version}-%{release} Requires: wine-cms = %{version}-%{release} Requires: wine-desktop = %{version}-%{release} -Requires: wine-esd = %{version}-%{release} -Requires: wine-jack = %{version}-%{release} Requires: wine-ldap = %{version}-%{release} Requires: wine-nas = %{version}-%{release} Requires: wine-tools = %{version}-%{release} @@ -677,6 +675,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/vwin32.vxd.so %{_libdir}/wine/w32skrnl.dll.so %{_libdir}/wine/wbemprox.dll.so +%{_libdir}/wine/windowscodecs.dll.so %{_libdir}/wine/wineaudioio.drv.so %{_libdir}/wine/winedos.dll.so %{_libdir}/wine/wineoss.drv.so @@ -866,6 +865,12 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/winepulse.drv.so %changelog +* Fri Jun 19 2009 Andreas Bierfert +- 1.1.24-1 +- version upgrade +- WinePulse 0.28 +- drop meta package requires for jack and esd + * Wed Jun 10 2009 Andreas Bierfert - 1.1.23-1 - version upgrade (#491321) diff --git a/winepulse-0.25.patch b/winepulse-0.25.patch deleted file mode 100644 index 3c73118..0000000 --- a/winepulse-0.25.patch +++ /dev/null @@ -1,3424 +0,0 @@ -diff --git a/dlls/winepulse.drv/Makefile.in b/dlls/winepulse.drv/Makefile.in -new file mode 100644 -index 0000000..327f225 ---- /dev/null -+++ b/dlls/winepulse.drv/Makefile.in -@@ -0,0 +1,16 @@ -+TOPSRCDIR = @top_srcdir@ -+TOPOBJDIR = ../.. -+SRCDIR = @srcdir@ -+VPATH = @srcdir@ -+MODULE = winepulse.drv -+IMPORTS = dxguid uuid winmm user32 advapi32 kernel32 -+EXTRALIBS = @PULSELIBS@ -+ -+C_SRCS = dsoutput.c \ -+ waveout.c \ -+ wavein.c \ -+ pulse.c -+ -+@MAKE_DLL_RULES@ -+ -+@DEPENDENCIES@ # everything below this line is overwritten by make depend -diff --git a/dlls/winepulse.drv/dsoutput.c b/dlls/winepulse.drv/dsoutput.c -new file mode 100644 -index 0000000..203fac0 ---- /dev/null -+++ b/dlls/winepulse.drv/dsoutput.c -@@ -0,0 +1,578 @@ -+/* -+ * Wine Driver for PulseAudio - DSound Output Functionality -+ * http://pulseaudio.org/ -+ * -+ * Copyright 2009 Arthur Talyor -+ * -+ * Conatins code from other wine multimedia drivers. -+ * -+ * 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, write to the Free Software -+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA -+ */ -+ -+#include "config.h" -+ -+#include -+ -+#include "windef.h" -+#include "winbase.h" -+#include "wingdi.h" -+#include "winuser.h" -+#include "winerror.h" -+#include "mmddk.h" -+#include "dsound.h" -+#include "dsdriver.h" -+#include "winreg.h" -+ -+#include -+#include "wine/debug.h" -+ -+WINE_DEFAULT_DEBUG_CHANNEL(dspulse); -+ -+#if HAVE_PULSEAUDIO -+ -+/*======================================================================* -+ * Low level DSOUND implementation * -+ *======================================================================*/ -+ -+/* A buffer is allocated with a pointer indicating the read position in the -+ * buffer. The pulse write callback reads data from the buffer, updating the -+ * read pointer to the location at the end of the read. Upon reaching the end -+ * or attempting to read past the end of buffer the read pointer wraps around -+ * to the beginning again. DirectSound applications can write anywhere in the -+ * buffer at anytime without locking and can know the location of the read -+ * pointer. The position of the read pointer cannot be changed by the -+ * application and access to it uses a locking scheme. A fake pointer -+ * indicating estimated playback position is also available to the application. -+ * Applications can potentially write to the same area of memory which is also -+ * being read by the pulse thread. However, this is uncommon as directsound -+ * applications know where pulse should be reading from via the pointer -+ * locations and MSDN says that such an operation should be avoided with the -+ * results being undefined. -+ */ -+ -+/* Fragment lengths try to be a power of two close to 10ms worth of data. See -+ * dlls/dsound/mixer.c -+ */ -+static int fragment_length(pa_sample_spec *s) { -+ if (s->rate <= 12800) -+ return 128 * pa_frame_size(s); -+ -+ if (s->rate <= 25600) -+ return 256 * pa_frame_size(s); -+ -+ if (s->rate <= 51200) -+ return 512 * pa_frame_size(s); -+ -+ return 1024 * pa_frame_size(s); -+} -+ -+/* Callback from the pulse thread for stream data */ -+static void DSPULSE_BufferReadCallback(pa_stream *s, size_t nbytes, void *userdata) { -+ IDsDriverBufferImpl *This = (IDsDriverBufferImpl *)userdata; -+ -+ if (!This->buffer) -+ return; -+ -+ /* Fraglens are always powers of 2 */ -+ nbytes+= This->fraglen - 1; -+ nbytes&= ~(This->fraglen - 1); -+ -+ /* If we advance more than 10 fragments at a time it appears that the buffer -+ * pointer is never advancing because of wrap-around. Evil magic numbers. */ -+ if (nbytes > This->fraglen * 5) -+ nbytes = This->fraglen * 5; -+ -+ TRACE("Reading %u bytes.\n", nbytes); -+ -+ if (This->buffer_read_offset + nbytes <= This->buffer_length) { -+ pa_stream_write(s, This->buffer + This->buffer_read_offset, nbytes, NULL, 0, PA_SEEK_RELATIVE); -+ This->buffer_play_offset = This->buffer_read_offset; -+ This->buffer_read_offset += nbytes; -+ } else { -+ size_t write_length = This->buffer_length - This->buffer_read_offset; -+ nbytes -= write_length; -+ pa_stream_write(s, This->buffer + This->buffer_read_offset, write_length, NULL, 0, PA_SEEK_RELATIVE); -+ pa_stream_write(s, This->buffer, nbytes, NULL, 0, PA_SEEK_RELATIVE); -+ This->buffer_play_offset = This->buffer_read_offset; -+ This->buffer_read_offset = nbytes; -+ } -+ -+ This->buffer_read_offset %= This->buffer_length; -+} -+ -+/* Called when the stream underruns. Just for information */ -+static void DSPULSE_BufferUnderflowCallback(pa_stream *s, void *userdata) { -+ WARN("(%p) underrun.\n", userdata); -+} -+ -+/* Connects a stream to the server. Does not update -+ * IDsDriverBufferImpl->fraglen. Does not lock the pulse mainloop or free -+ * objects in case of failure. This should be handled by the calling function. -+ */ -+static HRESULT DSPULSE_ConnectStream(IDsDriverBufferImpl* This) { -+ pa_buffer_attr ba_request; -+ const pa_buffer_attr *ba_obtained; -+ char c[PA_SAMPLE_SPEC_SNPRINT_MAX]; -+ pa_stream_flags_t stream_flags = PA_STREAM_START_CORKED; -+ -+#if PA_PROTOCOL_VERSION >= 14 -+ /* We are a "fragment wait based" application, so this flag should be -+ * acceptable. */ -+ stream_flags |= PA_STREAM_EARLY_REQUESTS; -+#elif PA_PROTOCOL_VERSION >= 13 && PA_API_VERSION >= 12 -+ stream_flags |= PA_STREAM_ADJUST_LATENCY; -+#endif -+ -+ pa_sample_spec_snprint(c, PA_SAMPLE_SPEC_SNPRINT_MAX, &This->sample_spec); -+ TRACE("Sample spec %s fragment size %u.\n", c, This->fraglen); -+ -+ ba_request.tlength = This->fraglen * 4; // ~40ms -+ ba_request.minreq = This->fraglen; // ~10ms -+ ba_request.prebuf = (uint32_t)-1; // same as tlength -+ ba_request.maxlength = This->buffer_length; // 2^x = ~3s -+ -+ TRACE("Asking for buffer tlength:%u (%llums) minreq:%u (%llums)\n", -+ ba_request.tlength, pa_bytes_to_usec(ba_request.tlength, &This->sample_spec)/1000, -+ ba_request.minreq, pa_bytes_to_usec(ba_request.minreq, &This->sample_spec)/1000); -+ -+ This->stream = pa_stream_new(PULSE_context, "DirectSound Buffer", &This->sample_spec, NULL); -+ if (!This->stream) return DSERR_BADFORMAT; -+ -+ pa_stream_set_state_callback(This->stream, PULSE_StreamStateCallback, This); -+ pa_stream_set_write_callback(This->stream, DSPULSE_BufferReadCallback, This); -+ pa_stream_set_underflow_callback(This->stream, DSPULSE_BufferUnderflowCallback, This); -+ -+ TRACE("Attempting to connect (%p)->stream for playback on %s\n", This, WOutDev[This->drv->wDevID].device_name); -+ pa_stream_connect_playback(This->stream, WOutDev[This->drv->wDevID].device_name, &ba_request, stream_flags, NULL, NULL); -+ for (;;) { -+ pa_context_state_t cstate = pa_context_get_state(PULSE_context); -+ pa_stream_state_t sstate = pa_stream_get_state(This->stream); -+ -+ if (cstate == PA_CONTEXT_FAILED || cstate == PA_CONTEXT_TERMINATED || -+ sstate == PA_STREAM_FAILED || sstate == PA_STREAM_TERMINATED) { -+ ERR("Failed to connect stream context object: %s\n", pa_strerror(pa_context_errno(PULSE_context))); -+ return DSERR_BUFFERLOST; -+ } -+ -+ if (sstate == PA_STREAM_READY) -+ break; -+ -+ pa_threaded_mainloop_wait(PULSE_ml); -+ } -+ TRACE("(%p)->stream connected for playback.\n", This); -+ ba_obtained = pa_stream_get_buffer_attr(This->stream); -+ -+ TRACE("Obtained buffer tlength:%u (%llums) minreq:%u (%llums)\n", -+ ba_obtained->tlength, pa_bytes_to_usec(ba_obtained->tlength, &This->sample_spec)/1000, -+ ba_obtained->minreq, pa_bytes_to_usec(ba_obtained->minreq, &This->sample_spec)/1000); -+ -+ return DS_OK; -+} -+ -+static HRESULT WINAPI IDsDriverBufferImpl_QueryInterface(PIDSDRIVERBUFFER iface, REFIID riid, LPVOID *ppobj) { -+ /* IDsDriverBufferImpl *This = (IDsDriverBufferImpl *)iface; */ -+ FIXME("(): stub!\n"); -+ return DSERR_UNSUPPORTED; -+} -+ -+static ULONG WINAPI IDsDriverBufferImpl_AddRef(PIDSDRIVERBUFFER iface) { -+ IDsDriverBufferImpl *This = (IDsDriverBufferImpl *)iface; -+ ULONG refCount = InterlockedIncrement(&This->ref); -+ -+ TRACE("(%p)->(ref before=%u)\n",This, refCount - 1); -+ -+ return refCount; -+} -+ -+static ULONG WINAPI IDsDriverBufferImpl_Release(PIDSDRIVERBUFFER iface) { -+ IDsDriverBufferImpl *This = (IDsDriverBufferImpl *)iface; -+ ULONG refCount = InterlockedDecrement(&This->ref); -+ -+ TRACE("(%p)->(ref before=%u)\n",This, refCount + 1); -+ -+ if (refCount) -+ return refCount; -+ -+ TRACE("mmap buffer %p destroyed\n", This->buffer); -+ pa_threaded_mainloop_lock(PULSE_ml); -+ PULSE_WaitForOperation(pa_stream_cork(This->stream, 1, PULSE_StreamSuccessCallback, This)); -+ pa_stream_disconnect(This->stream); -+ if (This == This->drv->primary) -+ This->drv->primary = NULL; -+ HeapFree(GetProcessHeap(), 0, This->buffer); -+ This->buffer = NULL; -+ pa_stream_unref(This->stream); -+ This->stream = NULL; -+ HeapFree(GetProcessHeap(), 0, This); -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ -+ return 0; -+} -+ -+static HRESULT WINAPI IDsDriverBufferImpl_Lock(PIDSDRIVERBUFFER iface, -+ LPVOID*ppvAudio1,LPDWORD pdwLen1, -+ LPVOID*ppvAudio2,LPDWORD pdwLen2, -+ DWORD dwWritePosition,DWORD dwWriteLen, -+ DWORD dwFlags) -+{ -+ /* We set DSDDESC_DONTNEEDPRIMARYLOCK so this should never be called */ -+ TRACE("(%p): stub", iface); -+ return DSERR_UNSUPPORTED; -+} -+ -+static HRESULT WINAPI IDsDriverBufferImpl_Unlock(PIDSDRIVERBUFFER iface, -+ LPVOID pvAudio1,DWORD dwLen1, -+ LPVOID pvAudio2,DWORD dwLen2) -+{ -+ /* We set DSDDESC_DONTNEEDPRIMARYLOCK so this should never be called */ -+ TRACE("(%p): stub", iface); -+ return DSERR_UNSUPPORTED; -+} -+ -+/* You cannot change the sample format of a connected stream, so we need to -+ * destroy and re-create the stream if the sample spec is different */ -+static HRESULT WINAPI IDsDriverBufferImpl_SetFormat(PIDSDRIVERBUFFER iface, LPWAVEFORMATEX pwfx) { -+ IDsDriverBufferImpl *This = (IDsDriverBufferImpl *)iface; -+ pa_sample_spec old_spec; -+ -+ TRACE("(%p, %p)\n", iface, pwfx); -+ -+ old_spec.rate = This->sample_spec.rate; -+ old_spec.format = This->sample_spec.format; -+ old_spec.channels = This->sample_spec.channels; -+ -+ if (!PULSE_SetupFormat(pwfx, &This->sample_spec)) -+ return DSERR_BADFORMAT; -+ -+ if (old_spec.rate == This->sample_spec.rate && -+ old_spec.format == This->sample_spec.format && -+ old_spec.channels == This->sample_spec.channels) { -+ TRACE("same as original sample spec, exiting.\n"); -+ PULSE_WaitForOperation(pa_stream_flush(This->stream, PULSE_StreamSuccessCallback, This)); -+ return DS_OK; -+ } -+ -+ /* If the format doesn't match, return an error and the buffer will be remade */ -+ TRACE("Formats don't match, failing causing re-creation.\n"); -+ return DSERR_BUFFERLOST; -+} -+ -+static HRESULT WINAPI IDsDriverBufferImpl_SetFrequency(PIDSDRIVERBUFFER iface, DWORD dwFreq) -+{ -+ /* IDsDriverBufferImpl *This = (IDsDriverBufferImpl *)iface; */ -+ /* You can't do for primary buffers anyways */ -+ return S_OK; -+} -+ -+static HRESULT WINAPI IDsDriverBufferImpl_SetVolumePan(PIDSDRIVERBUFFER iface, PDSVOLUMEPAN pVolPan) { -+ IDsDriverBufferImpl *This = (IDsDriverBufferImpl *)iface; -+ -+ if (This->sample_spec.channels == 2) { -+ This->volume.channels = 2; -+ if (pVolPan->lPan < 0) { -+ This->volume.values[0] = pa_sw_volume_from_dB(pVolPan->lVolume/-10.0 + pVolPan->lPan/10.0); -+ This->volume.values[1] = pa_sw_volume_from_dB(pVolPan->lVolume/-10.0); -+ } else { -+ This->volume.values[0] = pa_sw_volume_from_dB(pVolPan->lVolume/-10.0); -+ This->volume.values[1] = pa_sw_volume_from_dB(pVolPan->lVolume/-10.0 - pVolPan->lPan/10.0); -+ } -+ } else { -+ WARN("Panning non-stereo streams not supported yet!\n"); -+ pa_cvolume_set(&This->volume, This->sample_spec.channels, pa_sw_volume_from_dB(pVolPan->lVolume/-10.0)); -+ /* Would be nice to return DSERR_CONTROLUNAVAIL, but that isn't up to us -+ * here */ -+ } -+ -+ pa_threaded_mainloop_lock(PULSE_ml); -+ if (This->stream && PULSE_context && pa_context_get_state(PULSE_context) == PA_CONTEXT_READY && -+ pa_stream_get_state(This->stream) == PA_STREAM_READY && pa_cvolume_valid(&This->volume)) -+ PULSE_WaitForOperation( -+ pa_context_set_sink_input_volume( -+ PULSE_context, pa_stream_get_index(This->stream), -+ &This->volume, PULSE_ContextSuccessCallback, This)); -+ -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ -+ return DS_OK; -+} -+ -+static HRESULT WINAPI IDsDriverBufferImpl_SetPosition(PIDSDRIVERBUFFER iface, DWORD dwNewPos) -+{ -+ /* IDsDriverBufferImpl *This = (IDsDriverBufferImpl *)iface; */ -+ /* Not allowed on primary buffers */ -+ return DSERR_UNSUPPORTED; -+} -+ -+static HRESULT WINAPI IDsDriverBufferImpl_GetPosition(PIDSDRIVERBUFFER iface, -+ LPDWORD lpdwPlay, LPDWORD lpdwWrite) -+{ -+ IDsDriverBufferImpl *This = (IDsDriverBufferImpl *)iface; -+ -+ pa_threaded_mainloop_lock(PULSE_ml); -+ if (!This->buffer || pa_stream_get_state(This->stream) != PA_STREAM_READY) { -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ return DSERR_UNINITIALIZED; -+ } -+ -+ if (lpdwPlay) -+ *lpdwPlay = This->buffer_play_offset; -+ if (lpdwWrite) -+ *lpdwWrite = This->buffer_read_offset; -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ -+ return DS_OK; -+} -+ -+static HRESULT WINAPI IDsDriverBufferImpl_Play(PIDSDRIVERBUFFER iface, DWORD dwRes1, DWORD dwRes2, DWORD dwFlags) { -+ IDsDriverBufferImpl *This = (IDsDriverBufferImpl *)iface; -+ TRACE("(%p,%x,%x,%x)\n",iface,dwRes1,dwRes2,dwFlags); -+ -+ pa_threaded_mainloop_lock(PULSE_ml); -+ PULSE_WaitForOperation(pa_stream_cork(This->stream, 0, PULSE_StreamSuccessCallback, This)); -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ -+ return DS_OK; -+} -+ -+static HRESULT WINAPI IDsDriverBufferImpl_Stop(PIDSDRIVERBUFFER iface) { -+ IDsDriverBufferImpl *This = (IDsDriverBufferImpl *)iface; -+ TRACE("(%p)\n",iface); -+ -+ pa_threaded_mainloop_lock(PULSE_ml); -+ PULSE_WaitForOperation(pa_stream_cork(This->stream, 1, PULSE_StreamSuccessCallback, This)); -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ return DS_OK; -+} -+ -+/*****************************************************************************/ -+ -+static const IDsDriverBufferVtbl dsdbvt = -+{ -+ IDsDriverBufferImpl_QueryInterface, -+ IDsDriverBufferImpl_AddRef, -+ IDsDriverBufferImpl_Release, -+ IDsDriverBufferImpl_Lock, -+ IDsDriverBufferImpl_Unlock, -+ IDsDriverBufferImpl_SetFormat, -+ IDsDriverBufferImpl_SetFrequency, -+ IDsDriverBufferImpl_SetVolumePan, -+ IDsDriverBufferImpl_SetPosition, -+ IDsDriverBufferImpl_GetPosition, -+ IDsDriverBufferImpl_Play, -+ IDsDriverBufferImpl_Stop -+}; -+ -+static HRESULT WINAPI IDsDriverImpl_CreateSoundBuffer(PIDSDRIVER iface, -+ LPWAVEFORMATEX pwfx, -+ DWORD dwFlags, DWORD dwCardAddress, -+ LPDWORD pdwcbBufferSize, -+ LPBYTE *ppbBuffer, -+ LPVOID *ppvObj) { -+ IDsDriverImpl *This = (IDsDriverImpl *)iface; -+ IDsDriverBufferImpl** ippdsdb = (IDsDriverBufferImpl**)ppvObj; -+ IDsDriverBufferImpl *That; -+ HRESULT ret; -+ -+ TRACE("(%p,%p,%x,%x)\n",iface,pwfx,dwFlags,dwCardAddress); -+ /* we only support primary buffers */ -+ -+ if (!(dwFlags & DSBCAPS_PRIMARYBUFFER)) -+ return DSERR_UNSUPPORTED; -+ if (This->primary) -+ return DSERR_ALLOCATED; -+ This->primary = *ippdsdb; -+ -+ *ippdsdb = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDsDriverBufferImpl)); -+ -+ if (!*ippdsdb) { -+ ERR("Out of memory\n"); -+ return DSERR_OUTOFMEMORY; -+ } -+ -+ That = *ippdsdb; -+ That->lpVtbl = &dsdbvt; -+ That->ref = 1; -+ -+ That->drv = This; -+ TRACE("IdsDriverBufferImpl %p created.\n", That); -+ -+ if (!PULSE_SetupFormat(pwfx, &That->sample_spec)) { -+ WARN("Bad audio format.\n"); -+ ret = DSERR_BADFORMAT; -+ goto err; -+ } -+ -+ /* The buffer length has to be greater than fraglen * 20 or else logic in -+ * dlls/dsound/mixer.c fails to correctly understand buffer wrap around. */ -+ That->fraglen = fragment_length(&That->sample_spec); -+ That->buffer_length = That->fraglen * 32; -+ That->buffer = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, That->buffer_length); -+ if (!That->buffer) { -+ ret = DSERR_OUTOFMEMORY; -+ goto err; -+ } -+ That->buffer_read_offset = 0; -+ That->buffer_play_offset = 0; -+ -+ pa_threaded_mainloop_lock(PULSE_ml); -+ ret = DSPULSE_ConnectStream(That); -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ -+ if (ret != DS_OK) -+ goto err; -+ -+ *pdwcbBufferSize = That->buffer_length; -+ *ppbBuffer = That->buffer; -+ -+ TRACE("Exiting with success. Have buffer %p of length %u\n", That->buffer, That->buffer_length); -+ return DS_OK; -+ -+err: -+ pa_threaded_mainloop_lock(PULSE_ml); -+ if (That->stream) { -+ if (pa_stream_get_state(That->stream) == PA_STREAM_READY) -+ pa_stream_disconnect(That->stream); -+ pa_stream_unref(That->stream); -+ That->stream = NULL; -+ } -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ HeapFree(GetProcessHeap(), 0, That->buffer); -+ HeapFree(GetProcessHeap(), 0, *ippdsdb); -+ WARN("exiting with failure.\n"); -+ return ret; -+} -+ -+static HRESULT WINAPI IDsDriverImpl_QueryInterface(PIDSDRIVER iface, REFIID riid, LPVOID *ppobj) { -+ /* IDsDriverImpl *This = (IDsDriverImpl *)iface; */ -+ FIXME("(%p): stub!\n",iface); -+ return DSERR_UNSUPPORTED; -+} -+ -+static ULONG WINAPI IDsDriverImpl_AddRef(PIDSDRIVER iface) { -+ IDsDriverImpl *This = (IDsDriverImpl *)iface; -+ ULONG refCount = InterlockedIncrement(&This->ref); -+ -+ TRACE("(%p)->(ref before=%u)\n",This, refCount - 1); -+ -+ return refCount; -+} -+ -+static ULONG WINAPI IDsDriverImpl_Release(PIDSDRIVER iface) { -+ IDsDriverImpl *This = (IDsDriverImpl *)iface; -+ ULONG refCount = InterlockedDecrement(&This->ref); -+ -+ TRACE("(%p)->(ref before=%u)\n",This, refCount + 1); -+ -+ if (refCount) -+ return refCount; -+ -+ HeapFree(GetProcessHeap(), 0, This); -+ return 0; -+} -+ -+static HRESULT WINAPI IDsDriverImpl_GetDriverDesc(PIDSDRIVER iface, PDSDRIVERDESC pDesc) { -+ IDsDriverImpl *This = (IDsDriverImpl *)iface; -+ TRACE("(%p,%p)\n",iface,pDesc); -+ *pDesc = WOutDev[This->wDevID].ds_desc; -+ pDesc->dwFlags = DSDDESC_DONTNEEDSECONDARYLOCK | DSDDESC_DONTNEEDPRIMARYLOCK; -+ pDesc->dnDevNode = 0; /*TODO: Bwah? */ -+ pDesc->wVxdId = 0; -+ pDesc->wReserved = 0; -+ pDesc->ulDeviceNum = This->wDevID; -+ pDesc->dwHeapType = DSDHEAP_NOHEAP; -+ pDesc->pvDirectDrawHeap = NULL; -+ pDesc->dwMemStartAddress = 0xDEAD0000; -+ pDesc->dwMemEndAddress = 0xDEAF0000; -+ pDesc->dwMemAllocExtra = 0; -+ pDesc->pvReserved1 = NULL; -+ pDesc->pvReserved2 = NULL; -+ return DS_OK; -+} -+ -+static HRESULT WINAPI IDsDriverImpl_Close(PIDSDRIVER iface) { -+ IDsDriverImpl *This = (IDsDriverImpl *)iface; -+ TRACE("(%p) stub, harmless\n",This); -+ return DS_OK; -+} -+ -+static HRESULT WINAPI IDsDriverImpl_Open(PIDSDRIVER iface) { -+ IDsDriverImpl *This = (IDsDriverImpl *)iface; -+ TRACE("(%p) stub, harmless\n",This); -+ return S_OK; -+} -+ -+static HRESULT WINAPI IDsDriverImpl_GetCaps(PIDSDRIVER iface, PDSDRIVERCAPS pCaps) { -+ IDsDriverImpl *This = (IDsDriverImpl *)iface; -+ -+ if (pa_context_get_state(PULSE_context) != PA_CONTEXT_READY) { -+ ERR("Context failure.\n"); -+ return DSERR_GENERIC; -+ } -+ -+ TRACE("(%p,%p)\n",iface,pCaps); -+ *pCaps = WOutDev[This->wDevID].ds_caps; -+ return DS_OK; -+} -+ -+static HRESULT WINAPI IDsDriverImpl_DuplicateSoundBuffer(PIDSDRIVER iface, -+ PIDSDRIVERBUFFER pBuffer, -+ LPVOID *ppvObj) -+{ -+ IDsDriverImpl *This = (IDsDriverImpl *)iface; -+ FIXME("(%p,%p): stub\n",This,pBuffer); -+ return DSERR_INVALIDCALL; -+} -+ -+static const IDsDriverVtbl dsdvt = -+{ -+ IDsDriverImpl_QueryInterface, -+ IDsDriverImpl_AddRef, -+ IDsDriverImpl_Release, -+ IDsDriverImpl_GetDriverDesc, -+ IDsDriverImpl_Open, -+ IDsDriverImpl_Close, -+ IDsDriverImpl_GetCaps, -+ IDsDriverImpl_CreateSoundBuffer, -+ IDsDriverImpl_DuplicateSoundBuffer -+}; -+ -+DWORD wodDsCreate(UINT wDevID, PIDSDRIVER* drv) { -+ IDsDriverImpl** idrv = (IDsDriverImpl**)drv; -+ -+ if (pa_context_get_state(PULSE_context) != PA_CONTEXT_READY || pa_context_is_local(PULSE_context) != 1) { -+ WARN("Connection failure or server is not local, falling back to WaveOut HEL.\n"); -+ return MMSYSERR_NOTSUPPORTED; -+ } -+ -+ *idrv = HeapAlloc(GetProcessHeap(), 0, sizeof(IDsDriverImpl)); -+ if (!*idrv) -+ return MMSYSERR_NOMEM; -+ -+ TRACE("IDsDriverImpl %p created.\n", *idrv); -+ -+ (*idrv)->lpVtbl = &dsdvt; -+ (*idrv)->ref = 1; -+ (*idrv)->wDevID = wDevID; -+ (*idrv)->primary = NULL; -+ -+ return MMSYSERR_NOERROR; -+} -+ -+DWORD wodDsDesc(UINT wDevID, PDSDRIVERDESC desc) { -+ TRACE("(%u, %p)\n", wDevID, desc); -+ *desc = WOutDev[wDevID].ds_desc; -+ return MMSYSERR_NOERROR; -+} -+#endif /* HAVE_PULSEAUDIO */ -diff --git a/dlls/winepulse.drv/pulse.c b/dlls/winepulse.drv/pulse.c -new file mode 100644 -index 0000000..b68fb05 ---- /dev/null -+++ b/dlls/winepulse.drv/pulse.c -@@ -0,0 +1,770 @@ -+/* -+ * Wine Driver for PulseAudio -+ * http://pulseaudio.org/ -+ * -+ * Copyright 2009 Arthur Taylor -+ * -+ * Contains code from other wine sound drivers. -+ * -+ * 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, write to the Free Software -+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA -+ */ -+ -+#include "config.h" -+ -+#include -+#include -+ -+#include "windef.h" -+#include "winbase.h" -+#include "wingdi.h" -+#include "winuser.h" -+#include "winreg.h" -+#include "mmddk.h" -+#include "ks.h" -+#include "ksguid.h" -+#include "ksmedia.h" -+ -+#ifdef HAVE_UNISTD_H -+# include -+#endif -+#include -+ -+#ifdef HAVE_PULSEAUDIO -+ -+#include "wine/unicode.h" -+#include "wine/debug.h" -+#include "wine/library.h" -+ -+#include -+#include -+WINE_DEFAULT_DEBUG_CHANNEL(wave); -+ -+/* These strings used only for tracing */ -+const char * PULSE_getCmdString(enum win_wm_message msg) { -+ static char unknown[32]; -+#define MSG_TO_STR(x) case x: return #x -+ switch(msg) { -+ MSG_TO_STR(WINE_WM_PAUSING); -+ MSG_TO_STR(WINE_WM_RESTARTING); -+ MSG_TO_STR(WINE_WM_RESETTING); -+ MSG_TO_STR(WINE_WM_HEADER); -+ MSG_TO_STR(WINE_WM_BREAKLOOP); -+ MSG_TO_STR(WINE_WM_CLOSING); -+ MSG_TO_STR(WINE_WM_STARTING); -+ MSG_TO_STR(WINE_WM_STOPPING); -+ MSG_TO_STR(WINE_WM_XRUN); -+ MSG_TO_STR(WINE_WM_FEED); -+ } -+#undef MSG_TO_STR -+ sprintf(unknown, "UNKNOWN(0x%08x)", msg); -+ return unknown; -+} -+ -+/*======================================================================* -+ * Ring Buffer Functions - copied from winealsa.drv * -+ *======================================================================*/ -+ -+/* unless someone makes a wineserver kernel module, Unix pipes are faster than win32 events */ -+#define USE_PIPE_SYNC -+ -+#ifdef USE_PIPE_SYNC -+#define INIT_OMR(omr) do { if (pipe(omr->msg_pipe) < 0) { omr->msg_pipe[0] = omr->msg_pipe[1] = -1; } } while (0) -+#define CLOSE_OMR(omr) do { close(omr->msg_pipe[0]); close(omr->msg_pipe[1]); } while (0) -+#define SIGNAL_OMR(omr) do { int x = 0; write((omr)->msg_pipe[1], &x, sizeof(x)); } while (0) -+#define CLEAR_OMR(omr) do { int x = 0; read((omr)->msg_pipe[0], &x, sizeof(x)); } while (0) -+#define RESET_OMR(omr) do { } while (0) -+#define WAIT_OMR(omr, sleep) \ -+ do { struct pollfd pfd; pfd.fd = (omr)->msg_pipe[0]; \ -+ pfd.events = POLLIN; poll(&pfd, 1, sleep); } while (0) -+#else -+#define INIT_OMR(omr) do { omr->msg_event = CreateEventW(NULL, FALSE, FALSE, NULL); } while (0) -+#define CLOSE_OMR(omr) do { CloseHandle(omr->msg_event); } while (0) -+#define SIGNAL_OMR(omr) do { SetEvent((omr)->msg_event); } while (0) -+#define CLEAR_OMR(omr) do { } while (0) -+#define RESET_OMR(omr) do { ResetEvent((omr)->msg_event); } while (0) -+#define WAIT_OMR(omr, sleep) \ -+ do { WaitForSingleObject((omr)->msg_event, sleep); } while (0) -+#endif -+ -+#define PULSE_RING_BUFFER_INCREMENT 64 -+ -+/****************************************************************** -+ * PULSE_InitRingMessage -+ * -+ * Initialize the ring of messages for passing between driver's caller -+ * and playback/record thread -+ */ -+int PULSE_InitRingMessage(PULSE_MSG_RING* omr) -+{ -+ omr->msg_toget = 0; -+ omr->msg_tosave = 0; -+ INIT_OMR(omr); -+ omr->ring_buffer_size = PULSE_RING_BUFFER_INCREMENT; -+ omr->messages = HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,omr->ring_buffer_size * sizeof(PULSE_MSG)); -+ -+ InitializeCriticalSection(&omr->msg_crst); -+ omr->msg_crst.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": PULSE_MSG_RING.msg_crst"); -+ return 0; -+} -+ -+/****************************************************************** -+ * PULSE_DestroyRingMessage -+ * -+ */ -+int PULSE_DestroyRingMessage(PULSE_MSG_RING* omr) -+{ -+ CLOSE_OMR(omr); -+ HeapFree(GetProcessHeap(),0,omr->messages); -+ omr->messages = NULL; -+ omr->ring_buffer_size = PULSE_RING_BUFFER_INCREMENT; -+ omr->msg_crst.DebugInfo->Spare[0] = 0; -+ DeleteCriticalSection(&omr->msg_crst); -+ return 0; -+} -+/****************************************************************** -+ * PULSE_ResetRingMessage -+ * -+ */ -+void PULSE_ResetRingMessage(PULSE_MSG_RING* omr) -+{ -+ RESET_OMR(omr); -+} -+ -+/****************************************************************** -+ * PULSE_WaitRingMessage -+ * -+ */ -+void PULSE_WaitRingMessage(PULSE_MSG_RING* omr, DWORD sleep) -+{ -+ WAIT_OMR(omr, sleep); -+} -+ -+/****************************************************************** -+ * PULSE_AddRingMessage -+ * -+ * Inserts a new message into the ring (should be called from DriverProc derived routines) -+ */ -+int PULSE_AddRingMessage(PULSE_MSG_RING* omr, enum win_wm_message msg, DWORD param, BOOL wait) -+{ -+ HANDLE hEvent = INVALID_HANDLE_VALUE; -+ -+ EnterCriticalSection(&omr->msg_crst); -+ if ((omr->msg_toget == ((omr->msg_tosave + 1) % omr->ring_buffer_size))) -+ { -+ int old_ring_buffer_size = omr->ring_buffer_size; -+ omr->ring_buffer_size += PULSE_RING_BUFFER_INCREMENT; -+ omr->messages = HeapReAlloc(GetProcessHeap(),0,omr->messages, omr->ring_buffer_size * sizeof(PULSE_MSG)); -+ /* Now we need to rearrange the ring buffer so that the new -+ buffers just allocated are in between omr->msg_tosave and -+ omr->msg_toget. -+ */ -+ if (omr->msg_tosave < omr->msg_toget) -+ { -+ memmove(&(omr->messages[omr->msg_toget + PULSE_RING_BUFFER_INCREMENT]), -+ &(omr->messages[omr->msg_toget]), -+ sizeof(PULSE_MSG)*(old_ring_buffer_size - omr->msg_toget) -+ ); -+ omr->msg_toget += PULSE_RING_BUFFER_INCREMENT; -+ } -+ } -+ if (wait) -+ { -+ hEvent = CreateEventW(NULL, FALSE, FALSE, NULL); -+ if (hEvent == INVALID_HANDLE_VALUE) -+ { -+ ERR("can't create event !?\n"); -+ LeaveCriticalSection(&omr->msg_crst); -+ return 0; -+ } -+ /* fast messages have to be added at the start of the queue */ -+ omr->msg_toget = (omr->msg_toget + omr->ring_buffer_size - 1) % omr->ring_buffer_size; -+ -+ omr->messages[omr->msg_toget].msg = msg; -+ omr->messages[omr->msg_toget].param = param; -+ omr->messages[omr->msg_toget].hEvent = hEvent; -+ } -+ else -+ { -+ omr->messages[omr->msg_tosave].msg = msg; -+ omr->messages[omr->msg_tosave].param = param; -+ omr->messages[omr->msg_tosave].hEvent = INVALID_HANDLE_VALUE; -+ omr->msg_tosave = (omr->msg_tosave + 1) % omr->ring_buffer_size; -+ } -+ LeaveCriticalSection(&omr->msg_crst); -+ /* signal a new message */ -+ SIGNAL_OMR(omr); -+ if (wait) -+ { -+ /* wait for playback/record thread to have processed the message */ -+ WaitForSingleObject(hEvent, INFINITE); -+ CloseHandle(hEvent); -+ } -+ return 1; -+} -+ -+/****************************************************************** -+ * PULSE_RetrieveRingMessage -+ * -+ * Get a message from the ring. Should be called by the playback/record thread. -+ */ -+int PULSE_RetrieveRingMessage(PULSE_MSG_RING* omr, -+ enum win_wm_message *msg, DWORD *param, HANDLE *hEvent) -+{ -+ EnterCriticalSection(&omr->msg_crst); -+ -+ if (omr->msg_toget == omr->msg_tosave) /* buffer empty ? */ -+ { -+ LeaveCriticalSection(&omr->msg_crst); -+ return 0; -+ } -+ -+ *msg = omr->messages[omr->msg_toget].msg; -+ omr->messages[omr->msg_toget].msg = 0; -+ *param = omr->messages[omr->msg_toget].param; -+ *hEvent = omr->messages[omr->msg_toget].hEvent; -+ omr->msg_toget = (omr->msg_toget + 1) % omr->ring_buffer_size; -+ CLEAR_OMR(omr); -+ LeaveCriticalSection(&omr->msg_crst); -+ return 1; -+} -+ -+/************************************************************************** -+ * Utility Functions -+ *************************************************************************/ -+ -+/****************************************************************** -+ * PULSE_SetupFormat -+ * -+ * Checks to see if the audio format in wf is supported, and if so set up the -+ * pa_sample_spec at ss to that format. -+ */ -+BOOL PULSE_SetupFormat(LPWAVEFORMATEX wf, pa_sample_spec *ss) { -+ WAVEFORMATEXTENSIBLE *wfex; -+ -+ ss->channels = wf->nChannels; -+ ss->rate = wf->nSamplesPerSec; -+ ss->format = PA_SAMPLE_INVALID; -+ -+ if (ss->rate < DSBFREQUENCY_MIN || ss->rate > DSBFREQUENCY_MAX) return FALSE; -+ -+ switch (wf->wFormatTag) { -+ case WAVE_FORMAT_PCM: -+ /* MSDN says that for WAVE_FORMAT_PCM, nChannels must be 1 or 2 and -+ * wBitsPerSample must be 8 or 16, yet other values are used by some -+ * applications in the wild for surround. */ -+ if (ss->channels > 6 || ss->channels < 1) return FALSE; -+ ss->format = wf->wBitsPerSample == 8 ? PA_SAMPLE_U8 -+ : wf->wBitsPerSample == 16 ? PA_SAMPLE_S16NE -+#if PA_PROTOCOL_VERSION >= 15 -+ : wf->wBitsPerSample == 24 ? PA_SAMPLE_S24NE -+#endif -+ : wf->wBitsPerSample == 32 ? PA_SAMPLE_S32NE -+ : PA_SAMPLE_INVALID; -+ break; -+ -+ case WAVE_FORMAT_MULAW: -+ if (wf->wBitsPerSample == 8) ss->format = PA_SAMPLE_ULAW; -+ break; -+ -+ case WAVE_FORMAT_ALAW: -+ if (wf->wBitsPerSample == 8) ss->format = PA_SAMPLE_ALAW; -+ break; -+ -+ case WAVE_FORMAT_EXTENSIBLE: -+ if (wf->cbSize > 22) return FALSE; -+ if (ss->channels < 1 || ss->channels > 6) return FALSE; -+ wfex = (WAVEFORMATEXTENSIBLE *)wf; -+ if (IsEqualGUID(&wfex->SubFormat, &KSDATAFORMAT_SUBTYPE_PCM)) { -+ if (wf->wBitsPerSample == wfex->Samples.wValidBitsPerSample) { -+ ss->format = wf->wBitsPerSample == 8 ? PA_SAMPLE_U8 -+ : wf->wBitsPerSample == 16 ? PA_SAMPLE_S16NE -+#if PA_PROTOCOL_VERSION >= 15 -+ : wf->wBitsPerSample == 24 ? PA_SAMPLE_S24NE -+#endif -+ : wf->wBitsPerSample == 32 ? PA_SAMPLE_S32NE -+ : PA_SAMPLE_INVALID; -+ } else { -+#if PA_PROTOCOL_VERSION >= 15 -+ if (wf->wBitsPerSample == 32 && wfex->Samples.wValidBitsPerSample == 24) -+ ss->format = PA_SAMPLE_S24_32NE; -+ else -+#endif -+ return FALSE; -+ } -+ } else if (wf->wBitsPerSample != wfex->Samples.wValidBitsPerSample) { -+ return FALSE; -+ } else if ((IsEqualGUID(&wfex->SubFormat, &KSDATAFORMAT_SUBTYPE_IEEE_FLOAT))) { -+ ss->format = PA_SAMPLE_FLOAT32NE; -+ } else { -+ WARN("only KSDATAFORMAT_SUBTYPE_PCM and KSDATAFORMAT_SUBTYPE_IEEE_FLOAT of WAVE_FORMAT_EXTENSIBLE supported\n"); -+ return FALSE; -+ } -+ break; -+ -+ default: -+ WARN("only WAVE_FORMAT_PCM, WAVE_FORMAT_MULAW, WAVE_FORMAT_ALAW and WAVE_FORMAT_EXTENSIBLE supported\n"); -+ return FALSE; -+ } -+ -+ if (!pa_sample_spec_valid(ss)) return FALSE; -+ if (wf->nBlockAlign != pa_frame_size(ss)) { -+ ERR("wf->nBlockAlign != the format frame size!\n"); -+ return FALSE; -+ } -+ -+ return TRUE; -+} -+ -+/************************************************************************** -+ * PULSE_WaitForOperation -+ * -+ * Waits for pa operations to complete, and dereferences the operation. -+ */ -+void PULSE_WaitForOperation(pa_operation *o) { -+ if (!o) return; -+ -+ for (;;) { -+ if (pa_operation_get_state(o) != PA_OPERATION_RUNNING) -+ break; -+ pa_threaded_mainloop_wait(PULSE_ml); -+ } -+ pa_operation_unref(o); -+} -+ -+/************************************************************************** -+ * Common Callbacks -+ */ -+ -+/************************************************************************** -+ * PULSE_StreamSuspendedCallback [internal] -+ * -+ * Called by the pulse mainloop any time stream playback is intentionally -+ * suspended or resumed from being suspended. -+ */ -+void PULSE_StreamSuspendedCallback(pa_stream *s, void *userdata) { -+ WINE_WAVEINST *wwo = (WINE_WAVEINST*)userdata; -+ assert(s && wwo); -+ -+ /* Currently we handle this kinda like an underrun. Perhaps we should -+ * tell the client somehow so it doesn't just hang? */ -+ -+ if (!pa_stream_is_suspended(s) && wwo->hThread != INVALID_HANDLE_VALUE && wwo->msgRing.ring_buffer_size > 0) -+ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_XRUN, 0, FALSE); -+} -+ -+/************************************************************************** -+ * PULSE_StreamUnderflowCallback [internal] -+ * -+ * Called by the pulse mainloop when the prebuf runs out of data. -+ */ -+void PULSE_StreamUnderflowCallback(pa_stream *s, void *userdata) { -+ WINE_WAVEINST *wwo = (WINE_WAVEINST*)userdata; -+ assert(s && wwo); -+ -+ /* If we aren't playing, don't care ^_^ */ -+ if (wwo->state != WINE_WS_PLAYING) return; -+ -+ TRACE("Underrun occurred.\n"); -+ -+ if (wwo->hThread != INVALID_HANDLE_VALUE && wwo->msgRing.ring_buffer_size > 0); -+ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_XRUN, 0, FALSE); -+} -+ -+/************************************************************************** -+ * PULSE_StreamOverflowCallback [internal] -+ * -+ * Called by the pulse mainloop when the write buffer was overflowed and data -+ * was lost. -+ */ -+void PULSE_StreamOverflowCallback(pa_stream *s, void *userdata) { -+ WINE_WAVEINST *wwo = (WINE_WAVEINST*)userdata; -+ assert(s && wwo); -+ -+ ERR("Overflow occurred!?!\n"); -+ -+ if (wwo->hThread != INVALID_HANDLE_VALUE && wwo->msgRing.ring_buffer_size > 0); -+ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_XRUN, 1, FALSE); -+} -+ -+/************************************************************************** -+ * PULSE_StreamMovedCallback [internal] -+ * -+ * Called by the pulse mainloop when the stream gets moved, resulting in -+ * possibly different metrics. -+ */ -+void PULSE_StreamMovedCallback(pa_stream *s, void *userdata) { -+ FIXME("stub"); -+} -+ -+ -+/****************************************************************** -+ * PULSE_StreamStateCallback -+ * -+ * Called by pulse whenever the state of the stream changes. -+ * -+ * void *userdata is either the dsound or wave instance -+ */ -+void PULSE_StreamStateCallback(pa_stream *s, void *userdata) { -+ assert(s); -+ -+ switch (pa_stream_get_state(s)) { -+ case PA_STREAM_READY: -+ TRACE("Stream %p ready\n", userdata); -+ break; -+ -+ case PA_STREAM_TERMINATED: -+ TRACE("Stream %p terminated\n", userdata); -+ break; -+ -+ case PA_STREAM_FAILED: -+ ERR("Stream %p failed!\n", userdata); -+ break; -+ -+ case PA_STREAM_UNCONNECTED: -+ case PA_STREAM_CREATING: -+ return; -+ } -+ pa_threaded_mainloop_signal(PULSE_ml, 0); -+} -+ -+/************************************************************************** -+ * PULSE_StreamSucessCallback -+ */ -+void PULSE_StreamSuccessCallback(pa_stream *s, int success, void *userdata) { -+ if (!success) -+ WARN("Stream %p operation failed: %s\n", userdata, pa_strerror(pa_context_errno(PULSE_context))); -+ -+ pa_threaded_mainloop_signal(PULSE_ml, 0); -+} -+ -+/************************************************************************** -+ * PULSE_ContextSuccessCallback -+ */ -+void PULSE_ContextSuccessCallback(pa_context *c, int success, void *userdata) { -+ if (!success) ERR("Context operation failed: %s\n", pa_strerror(pa_context_errno(c))); -+ pa_threaded_mainloop_signal(PULSE_ml, 0); -+} -+ -+/************************************************************************** -+ * Connection management and sink / source management. -+ */ -+ -+/************************************************************************** -+ * PULSE_ContextStateCallback [internal] -+ */ -+static void PULSE_ContextStateCallback(pa_context *c, void *userdata) { -+ assert(c); -+ -+ switch (pa_context_get_state(c)) { -+ case PA_CONTEXT_CONNECTING: -+ case PA_CONTEXT_UNCONNECTED: -+ case PA_CONTEXT_AUTHORIZING: -+ case PA_CONTEXT_SETTING_NAME: -+ break; -+ -+ case PA_CONTEXT_READY: -+ case PA_CONTEXT_TERMINATED: -+ pa_threaded_mainloop_signal(PULSE_ml, 0); -+ break; -+ -+ case PA_CONTEXT_FAILED: -+ ERR("Context failure: %s\n", pa_strerror(pa_context_errno(c))); -+ pa_threaded_mainloop_signal(PULSE_ml, 0); -+ break; -+ } -+} -+ -+/************************************************************************** -+ * PULSE_AllocateWaveinDevice [internal] -+ * -+ * Creates or adds a device to WInDev based on the pa_source_info. -+ */ -+static void PULSE_AllocateWaveinDevice(const char *name, const char *device, const char *description, const pa_cvolume *v) { -+ WINE_WAVEDEV *wdi; -+ -+ if (WInDev) -+ wdi = HeapReAlloc(GetProcessHeap(), 0, WInDev, sizeof(WINE_WAVEDEV) * (PULSE_WidNumDevs + 1)); -+ else -+ wdi = HeapAlloc(GetProcessHeap(), 0, sizeof(WINE_WAVEDEV)); -+ -+ if (!wdi) return; -+ -+ WInDev = wdi; -+ wdi = &WInDev[PULSE_WidNumDevs++]; -+ memset(wdi, 0, sizeof(WINE_WAVEDEV)); -+ memset(&(wdi->caps.in), 0, sizeof(wdi->caps.in)); -+ snprintf(wdi->interface_name, MAXPNAMELEN * 2, "winepulse: %s", name); -+ wdi->device_name = pa_xstrdup(device); -+ strcpy(wdi->interface_name, "winepulse: "); -+ MultiByteToWideChar(CP_ACP, 0, description, -1, wdi->caps.in.szPname, sizeof(wdi->caps.in.szPname)/sizeof(WCHAR)); -+ wdi->caps.in.szPname[sizeof(wdi->caps.in.szPname)/sizeof(WCHAR) - 1] = '\0'; -+ wdi->caps.in.wMid = MM_CREATIVE; -+ wdi->caps.in.wPid = MM_CREATIVE_SBP16_WAVEOUT; -+ wdi->caps.in.vDriverVersion = 0x0100; -+ wdi->caps.in.wChannels = v->channels == 1 ? 1 : 2; -+ wdi->caps.in.dwFormats = PULSE_ALL_FORMATS; -+ memset(&wdi->ds_desc, 0, sizeof(DSDRIVERDESC)); -+ memcpy(wdi->ds_desc.szDesc, description, min(sizeof(wdi->ds_desc.szDesc) - 1, strlen(description))); -+ memcpy(wdi->ds_desc.szDrvname, "winepulse.drv", 14); -+ wdi->ds_caps.dwMinSecondarySampleRate = DSBFREQUENCY_MIN; -+ wdi->ds_caps.dwMaxSecondarySampleRate = DSBFREQUENCY_MAX; -+ wdi->ds_caps.dwPrimaryBuffers = 1; -+ wdi->ds_caps.dwFlags = \ -+ DSCAPS_PRIMARYMONO | -+ DSCAPS_PRIMARYSTEREO | -+ DSCAPS_PRIMARY8BIT | -+ DSCAPS_PRIMARY16BIT | -+ DSCAPS_SECONDARYMONO | -+ DSCAPS_SECONDARYSTEREO | -+ DSCAPS_SECONDARY8BIT | -+ DSCAPS_SECONDARY16BIT | -+ DSCCAPS_MULTIPLECAPTURE | -+ DSCAPS_CERTIFIED | /* Useful? */ -+ DSCAPS_EMULDRIVER; /* Useful? */ -+ -+} -+ -+/************************************************************************** -+ * PULSE_AllocateWaveoutDevice [internal] -+ * -+ * Creates or adds a sink to the WOutDev array. -+ */ -+static void PULSE_AllocateWaveoutDevice(const char *name, const char *device, const char *description, const pa_cvolume *v) { -+ WINE_WAVEDEV *wdo; -+ int x; -+ -+ if (WOutDev) -+ wdo = HeapReAlloc(GetProcessHeap(), 0, WOutDev, sizeof(WINE_WAVEDEV) * (PULSE_WodNumDevs + 1)); -+ else -+ wdo = HeapAlloc(GetProcessHeap(), 0, sizeof(WINE_WAVEDEV)); -+ -+ if (!wdo) return; -+ -+ WOutDev = wdo; -+ wdo = &WOutDev[PULSE_WodNumDevs++]; -+ memset(wdo, 0, sizeof(WINE_WAVEDEV)); -+ -+ wdo->device_name = pa_xstrdup(device); -+ wdo->volume.channels = v->channels; -+ for (x = 0; x < v->channels; x++) wdo->volume.values[x] = v->values[x]; -+ snprintf(wdo->interface_name, MAXPNAMELEN * 2, "winepulse: %s", name); -+ MultiByteToWideChar(CP_ACP, 0, description, -1, wdo->caps.out.szPname, sizeof(wdo->caps.out.szPname)/sizeof(WCHAR)); -+ wdo->caps.out.szPname[sizeof(wdo->caps.out.szPname)/sizeof(WCHAR) - 1] = '\0'; -+ wdo->caps.out.wMid = MM_CREATIVE; -+ wdo->caps.out.wPid = MM_CREATIVE_SBP16_WAVEOUT; -+ wdo->caps.out.vDriverVersion = 0x0100; -+ wdo->caps.out.dwSupport = WAVECAPS_VOLUME | WAVECAPS_SAMPLEACCURATE | WAVECAPS_DIRECTSOUND; -+ if (v->channels >= 2) { -+ wdo->caps.out.wChannels = 2; -+ wdo->caps.out.dwSupport |= WAVECAPS_LRVOLUME; -+ } else -+ wdo->caps.out.wChannels = 1; -+ wdo->caps.out.dwFormats = PULSE_ALL_FORMATS; -+ memset(&wdo->ds_desc, 0, sizeof(DSDRIVERDESC)); -+ memcpy(wdo->ds_desc.szDesc, description, min(sizeof(wdo->ds_desc.szDesc) - 1, strlen(description))); -+ memcpy(wdo->ds_desc.szDrvname, "winepulse.drv", 14); -+ wdo->ds_caps.dwMinSecondarySampleRate = DSBFREQUENCY_MIN; -+ wdo->ds_caps.dwMaxSecondarySampleRate = DSBFREQUENCY_MAX; -+ wdo->ds_caps.dwPrimaryBuffers = 1; -+ wdo->ds_caps.dwFlags = \ -+ DSCAPS_PRIMARYMONO | -+ DSCAPS_PRIMARYSTEREO | -+ DSCAPS_PRIMARY8BIT | -+ DSCAPS_PRIMARY16BIT | -+ DSCAPS_SECONDARYMONO | -+ DSCAPS_SECONDARYSTEREO | -+ DSCAPS_SECONDARY8BIT | -+ DSCAPS_SECONDARY16BIT | -+ DSCAPS_CERTIFIED; -+} -+ -+/************************************************************************** -+ * PULSE_SourceInfoCallback [internal] -+ */ -+static void PULSE_SourceInfoCallback(pa_context *c, const pa_source_info *i, int eol, void *userdata) { -+ -+ if (!eol && i) -+ PULSE_AllocateWaveinDevice(i->name, i->name, i->description, &i->volume); -+ -+ pa_threaded_mainloop_signal(PULSE_ml, 0); -+} -+ -+/************************************************************************** -+ * PULSE_SinkInfoCallback [internal] -+ */ -+static void PULSE_SinkInfoCallback(pa_context *c, const pa_sink_info *i, int eol, void *userdata) { -+ -+ if (!eol && i) -+ PULSE_AllocateWaveoutDevice(i->name, i->name, i->description, &i->volume); -+ -+ pa_threaded_mainloop_signal(PULSE_ml, 0); -+} -+ -+/************************************************************************** -+ * PULSE_ContextNotifyCallback [internal] -+ */ -+static void PULSE_ContextNotifyCallback(pa_context *c, void *userdata) { -+ pa_threaded_mainloop_signal(PULSE_ml, 0); -+} -+ -+/************************************************************************** -+ * PULSE_WaveClose [internal] -+ * -+ * Disconnect from the server, deallocated the WaveIn/WaveOut devices, stop and -+ * free the mainloop. -+ */ -+ -+static LONG PULSE_WaveClose(void) { -+ int x; -+ TRACE("()\n"); -+ if (!PULSE_ml) return DRV_FAILURE; -+ -+ pa_threaded_mainloop_lock(PULSE_ml); -+ /* device_name is allocated with pa_xstrdup, free with pa_xfree */ -+ for (x = 0; x < PULSE_WodNumDevs; x++) pa_xfree(WOutDev[x].device_name); -+ for (x = 0; x < PULSE_WidNumDevs; x++) pa_xfree(WInDev[x].device_name); -+ HeapFree(GetProcessHeap(), 0, WOutDev); -+ HeapFree(GetProcessHeap(), 0, WInDev); -+ if (PULSE_context) { -+ PULSE_WaitForOperation(pa_context_drain(PULSE_context, PULSE_ContextNotifyCallback, NULL)); -+ pa_context_disconnect(PULSE_context); -+ pa_context_unref(PULSE_context); -+ PULSE_context = NULL; -+ } -+ -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ pa_threaded_mainloop_stop(PULSE_ml); -+ pa_threaded_mainloop_free(PULSE_ml); -+ PULSE_ml = NULL; -+ -+ return DRV_SUCCESS; -+} -+ -+/************************************************************************** -+ * PULSE_WaveInit [internal] -+ * -+ * Connects to the pulseaudio server, tries to discover sinks and sources and -+ * allocates the WaveIn/WaveOut devices. -+ */ -+static LONG PULSE_WaveInit(void) { -+ char *app_name; -+ char path[PATH_MAX]; -+ char *offset = NULL; -+ int x = 0; -+ pa_cvolume fake_cvolume; -+ -+ WOutDev = NULL; -+ WInDev = NULL; -+ PULSE_WodNumDevs = 0; -+ PULSE_WidNumDevs = 0; -+ PULSE_context = NULL; -+ PULSE_ml = NULL; -+ -+ if (!(PULSE_ml = pa_threaded_mainloop_new())) { -+ WARN("Failed to create mainloop object."); -+ return -1; -+ } -+ -+ /* Application name giving to pulse should be unique to the binary so that -+ * pulse-*-restore can be useful */ -+ -+ /* Get binary path, and remove path a-la strrchr */ -+ if (GetModuleFileNameA(NULL, path, PATH_MAX)) -+ offset = strrchr(path, '\\'); -+ -+ if (offset && ++offset && offset < path + PATH_MAX) { -+ app_name = pa_xmalloc(strlen(offset) + 8); -+ snprintf(app_name, strlen(offset) + 8, "WINE [%s]", offset); -+ } else -+ app_name = pa_xstrdup("WINE Application"); -+ -+ TRACE("App name is \"%s\"\n", app_name); -+ -+ pa_threaded_mainloop_start(PULSE_ml); -+ PULSE_context = pa_context_new(pa_threaded_mainloop_get_api(PULSE_ml), app_name); -+ assert(PULSE_context); -+ pa_xfree(app_name); -+ -+ pa_context_set_state_callback(PULSE_context, PULSE_ContextStateCallback, NULL); -+ -+ pa_threaded_mainloop_lock(PULSE_ml); -+ -+ TRACE("libpulse protocol version: %u. API Version %u\n", pa_context_get_protocol_version(PULSE_context), PA_API_VERSION); -+ TRACE("Attempting to connect to pulseaudio server.\n"); -+ if (pa_context_connect(PULSE_context, NULL, 0, NULL) < 0) -+ goto fail; -+ -+ /* Wait for connection */ -+ for (;;) { -+ pa_context_state_t state = pa_context_get_state(PULSE_context); -+ -+ if (state == PA_CONTEXT_FAILED || state == PA_CONTEXT_TERMINATED) -+ goto fail; -+ -+ if (state == PA_CONTEXT_READY) -+ break; -+ -+ pa_threaded_mainloop_wait(PULSE_ml); -+ } -+ -+ x = pa_context_get_server_protocol_version(PULSE_context); -+ TRACE("Connected to server %s with protocol version: %i.\n", pa_context_get_server(PULSE_context), x); -+ if (x < 14) -+ WARN("Server is old, expect poor latency or buggy-ness!\n"); -+ -+ fake_cvolume.channels = 2; -+ pa_cvolume_reset(&fake_cvolume, 2); -+ /* FIXME Translations? */ -+ PULSE_AllocateWaveoutDevice("default", NULL, "Default", &fake_cvolume); -+ PULSE_AllocateWaveinDevice("default", NULL, "Default", &fake_cvolume); -+ PULSE_WaitForOperation(pa_context_get_sink_info_list(PULSE_context, PULSE_SinkInfoCallback, &PULSE_WodNumDevs)); -+ PULSE_WaitForOperation(pa_context_get_source_info_list(PULSE_context, PULSE_SourceInfoCallback, &PULSE_WidNumDevs)); -+ TRACE("Found %u output and %u input device(s).\n", PULSE_WodNumDevs - 1, PULSE_WidNumDevs - 1); -+ -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ -+ return DRV_SUCCESS; -+ -+fail: -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ ERR("Failed to connect to server\n"); -+ return DRV_FAILURE; -+} -+ -+#endif /* HAVE_PULSEAUDIO */ -+ -+/************************************************************************** -+ * DriverProc (WINEPULSE.@) -+ */ -+LRESULT CALLBACK PULSE_DriverProc(DWORD_PTR dwDevID, HDRVR hDriv, UINT wMsg, -+ LPARAM dwParam1, LPARAM dwParam2) { -+ -+ switch(wMsg) { -+#ifdef HAVE_PULSEAUDIO -+ case DRV_LOAD: return PULSE_WaveInit(); -+ case DRV_FREE: return PULSE_WaveClose(); -+ case DRV_OPEN: return 1; -+ case DRV_CLOSE: return 1; -+ case DRV_ENABLE: return 1; -+ case DRV_DISABLE: return 1; -+ case DRV_QUERYCONFIGURE: return 1; -+ case DRV_CONFIGURE: MessageBoxA(0, "PulseAudio MultiMedia Driver !", "PulseAudio Driver", MB_OK); return 1; -+ case DRV_INSTALL: return DRVCNF_RESTART; -+ case DRV_REMOVE: return DRVCNF_RESTART; -+#endif -+ default: -+ return DefDriverProc(dwDevID, hDriv, wMsg, dwParam1, dwParam2); -+ } -+} -diff --git a/dlls/winepulse.drv/wavein.c b/dlls/winepulse.drv/wavein.c -new file mode 100644 -index 0000000..5495b2a ---- /dev/null -+++ b/dlls/winepulse.drv/wavein.c -@@ -0,0 +1,614 @@ -+/* -+ * Wine Driver for PulseAudio - WaveIn Functionality -+ * http://pulseaudio.org/ -+ * -+ * Copyright 2009 Arthur Taylor -+ * -+ * Contains code from other wine multimedia drivers. -+ * -+ * 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, write to the Free Software -+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA -+ */ -+ -+#include "config.h" -+ -+#include -+ -+#include "windef.h" -+#include "winbase.h" -+#include "wingdi.h" -+#include "winuser.h" -+#include "winnls.h" -+#include "mmddk.h" -+ -+#include -+ -+#include "wine/debug.h" -+ -+WINE_DEFAULT_DEBUG_CHANNEL(wave); -+ -+#if HAVE_PULSEAUDIO -+ -+/*======================================================================* -+ * WAVE IN specific PulseAudio Callbacks * -+ *======================================================================*/ -+ -+/************************************************************************** -+* widNotifyClient [internal] -+*/ -+static DWORD widNotifyClient(WINE_WAVEINST* wwi, WORD wMsg, DWORD dwParam1, DWORD dwParam2) { -+ TRACE("wMsg = 0x%04x dwParm1 = %04X dwParam2 = %04X\n", wMsg, dwParam1, dwParam2); -+ -+ switch (wMsg) { -+ case WIM_OPEN: -+ case WIM_CLOSE: -+ case WIM_DATA: -+ if (wwi->wFlags != DCB_NULL && -+ !DriverCallback(wwi->waveDesc.dwCallback, wwi->wFlags, (HDRVR)wwi->waveDesc.hWave, -+ wMsg, wwi->waveDesc.dwInstance, dwParam1, dwParam2)) { -+ WARN("can't notify client !\n"); -+ return MMSYSERR_ERROR; -+ } -+ break; -+ default: -+ FIXME("Unknown callback message %u\n", wMsg); -+ return MMSYSERR_INVALPARAM; -+ } -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * widRecorder_NextFragment [internal] -+ * -+ * Gets the next fragment of data from the server. -+ */ -+static size_t widRecorder_NextFragment(WINE_WAVEINST *wwi) { -+ size_t nbytes; -+ -+ pa_stream_peek(wwi->stream, &wwi->buffer, &nbytes); -+ wwi->buffer_length = nbytes; -+ wwi->buffer_read_offset = 0; -+ -+ return nbytes; -+} -+ -+ -+/************************************************************************** -+ * widRecorder_CopyData [internal] -+ * -+ * Copys data from the fragments pulse returns to queued buffers. -+ */ -+static void widRecorder_CopyData(WINE_WAVEINST *wwi) { -+ LPWAVEHDR lpWaveHdr = wwi->lpQueuePtr; -+ size_t nbytes; -+ -+ while (lpWaveHdr && wwi->state == WINE_WS_PLAYING) { -+ -+ nbytes = min(wwi->buffer_length - wwi->buffer_read_offset, lpWaveHdr->dwBufferLength - lpWaveHdr->dwBytesRecorded); -+ if (nbytes == 0) break; -+ -+ TRACE("%u bytes from %p to %p\n", nbytes, (PBYTE)wwi->buffer + wwi->buffer_read_offset, lpWaveHdr->lpData + lpWaveHdr->dwBytesRecorded); -+ memcpy(lpWaveHdr->lpData + lpWaveHdr->dwBytesRecorded, (PBYTE)wwi->buffer + wwi->buffer_read_offset, nbytes); -+ -+ lpWaveHdr->dwBytesRecorded += nbytes; -+ wwi->buffer_read_offset += nbytes; -+ -+ if (wwi->buffer_read_offset == wwi->buffer_length) { -+ pa_threaded_mainloop_lock(PULSE_ml); -+ pa_stream_drop(wwi->stream); -+ if (pa_stream_readable_size(wwi->stream)) -+ widRecorder_NextFragment(wwi); -+ else { -+ wwi->buffer = NULL; -+ wwi->buffer_length = 0; -+ wwi->buffer_read_offset = 0; -+ } -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ } -+ -+ if (lpWaveHdr->dwBytesRecorded == lpWaveHdr->dwBufferLength) { -+ lpWaveHdr->dwFlags &= ~WHDR_INQUEUE; -+ lpWaveHdr->dwFlags |= WHDR_DONE; -+ wwi->lpQueuePtr = lpWaveHdr->lpNext; -+ widNotifyClient(wwi, WIM_DATA, (DWORD)lpWaveHdr, 0); -+ lpWaveHdr = wwi->lpQueuePtr; -+ } -+ } -+} -+ -+/************************************************************************** -+ * widRecorder [internal] -+ */ -+static DWORD CALLBACK widRecorder(LPVOID lpParam) { -+ WINE_WAVEINST *wwi = (WINE_WAVEINST*)lpParam; -+ LPWAVEHDR lpWaveHdr; -+ enum win_wm_message msg; -+ DWORD param; -+ HANDLE ev; -+ DWORD wait; -+ -+ wwi->state = WINE_WS_STOPPED; -+ SetEvent(wwi->hStartUpEvent); -+ -+ for (;;) { -+ -+ if (wwi->state != WINE_WS_PLAYING) { -+ wait = INFINITE; -+ } else { -+ if (wwi->buffer == NULL && pa_stream_readable_size(wwi->stream)) { -+ pa_threaded_mainloop_lock(PULSE_ml); -+ wait = pa_bytes_to_usec(widRecorder_NextFragment(wwi), &wwi->sample_spec)/1000; -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ } -+ } -+ -+ widRecorder_CopyData(wwi); -+ -+ PULSE_WaitRingMessage(&wwi->msgRing, wait); -+ -+ while (PULSE_RetrieveRingMessage(&wwi->msgRing, &msg, ¶m, &ev)) { -+ TRACE("Received %s %x\n", PULSE_getCmdString(msg), param); -+ -+ switch (msg) { -+ case WINE_WM_FEED: -+ SetEvent(ev); -+ break; -+ case WINE_WM_STARTING: -+ wwi->state = WINE_WS_PLAYING; -+ wait = pa_bytes_to_usec(wwi->lpQueuePtr->dwBufferLength, &wwi->sample_spec)/1000; -+ wwi->last_reset = wwi->timing_info->read_index; -+ pa_threaded_mainloop_lock(PULSE_ml); -+ PULSE_WaitForOperation(pa_stream_cork(wwi->stream, 0, PULSE_StreamSuccessCallback, NULL)); -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ SetEvent(ev); -+ break; -+ case WINE_WM_HEADER: -+ lpWaveHdr = (LPWAVEHDR)param; -+ lpWaveHdr->lpNext = 0; -+ -+ /* insert buffer at the end of queue */ -+ { -+ LPWAVEHDR* wh; -+ for (wh = &(wwi->lpQueuePtr); *wh; wh = &((*wh)->lpNext)); -+ *wh = lpWaveHdr; -+ } -+ break; -+ case WINE_WM_STOPPING: -+ if (wwi->state != WINE_WS_STOPPED) { -+ wwi->state = WINE_WS_STOPPED; -+ pa_threaded_mainloop_lock(PULSE_ml); -+ PULSE_WaitForOperation(pa_stream_cork(wwi->stream, 1, PULSE_StreamSuccessCallback, NULL)); -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ -+ /* return current buffer to app */ -+ lpWaveHdr = wwi->lpQueuePtr; -+ if (lpWaveHdr) { -+ LPWAVEHDR lpNext = lpWaveHdr->lpNext; -+ TRACE("stop %p %p\n", lpWaveHdr, lpWaveHdr->lpNext); -+ lpWaveHdr->dwFlags &= ~WHDR_INQUEUE; -+ lpWaveHdr->dwFlags |= WHDR_DONE; -+ wwi->lpQueuePtr = lpNext; -+ widNotifyClient(wwi, WIM_DATA, (DWORD)lpWaveHdr, 0); -+ } -+ } -+ SetEvent(ev); -+ break; -+ case WINE_WM_RESETTING: -+ if (wwi->state != WINE_WS_STOPPED) { -+ wwi->state = WINE_WS_STOPPED; -+ pa_threaded_mainloop_lock(PULSE_ml); -+ PULSE_WaitForOperation(pa_stream_cork(wwi->stream, 1, PULSE_StreamSuccessCallback, NULL)); -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ } -+ -+ /* return all buffers to the app */ -+ for (lpWaveHdr = wwi->lpPlayPtr ? wwi->lpPlayPtr : wwi->lpQueuePtr; lpWaveHdr; lpWaveHdr = wwi->lpQueuePtr) { -+ lpWaveHdr->dwFlags &= ~WHDR_INQUEUE; -+ lpWaveHdr->dwFlags |= WHDR_DONE; -+ wwi->lpQueuePtr = lpWaveHdr->lpNext; -+ widNotifyClient(wwi, WIM_DATA, (DWORD)lpWaveHdr, 0); -+ } -+ -+ SetEvent(ev); -+ break; -+ case WINE_WM_CLOSING: -+ wwi->hThread = 0; -+ if ((DWORD)param == 1) { -+ /* If we are here, the stream failed */ -+ wwi->state = WINE_WS_FAILED; -+ SetEvent(ev); -+ PULSE_DestroyRingMessage(&wwi->msgRing); -+ widNotifyClient(wwi, WIM_CLOSE, 0L, 0L); -+ wwi->lpPlayPtr = wwi->lpQueuePtr = NULL; -+ pa_threaded_mainloop_lock(PULSE_ml); -+ pa_stream_disconnect(wwi->stream); -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ TRACE("Thread exiting because of failure.\n"); -+ ExitThread(1); -+ } -+ wwi->state = WINE_WS_CLOSED; -+ SetEvent(ev); -+ ExitThread(0); -+ /* shouldn't go here */ -+ default: -+ FIXME("unknown message %d\n", msg); -+ break; -+ } /* switch(msg) */ -+ } /* while(PULSE_RetrieveRingMessage()) */ -+ } /* for (;;) */ -+} -+ -+/************************************************************************** -+ * widOpen [internal] -+ */ -+static DWORD widOpen(WORD wDevID, LPDWORD lpdwUser, LPWAVEOPENDESC lpDesc, DWORD dwFlags) { -+ WINE_WAVEDEV *wdi; -+ WINE_WAVEINST *wwi = NULL; -+ DWORD ret = MMSYSERR_NOERROR; -+ -+ TRACE("(%u, %p, %08X);\n", wDevID, lpDesc, dwFlags); -+ if (lpDesc == NULL) { -+ WARN("Invalid Parameter !\n"); -+ return MMSYSERR_INVALPARAM; -+ } -+ -+ if (wDevID >= PULSE_WidNumDevs) { -+ TRACE("Asked for device %d, but only %d known!\n", wDevID, PULSE_WidNumDevs); -+ return MMSYSERR_BADDEVICEID; -+ } -+ wdi = &WInDev[wDevID]; -+ -+ wwi = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(WINE_WAVEINST)); -+ if (!wwi) return MMSYSERR_NOMEM; -+ *lpdwUser = (DWORD)wwi; -+ -+ /* check to see if format is supported and make pa_sample_spec struct */ -+ if (!PULSE_SetupFormat(lpDesc->lpFormat, &wwi->sample_spec)) { -+ WARN("Bad format: tag=%04X nChannels=%d nSamplesPerSec=%d !\n", -+ lpDesc->lpFormat->wFormatTag, lpDesc->lpFormat->nChannels, -+ lpDesc->lpFormat->nSamplesPerSec); -+ ret = WAVERR_BADFORMAT; -+ goto exit; -+ } -+ -+ if (TRACE_ON(wave)) { -+ char t[PA_SAMPLE_SPEC_SNPRINT_MAX]; -+ pa_sample_spec_snprint(t, sizeof(t), &wwi->sample_spec); -+ TRACE("Sample spec '%s'\n", t); -+ } -+ -+ if (dwFlags & WAVE_FORMAT_QUERY) { -+ TRACE("Query format: tag=%04X nChannels=%d nSamplesPerSec=%d !\n", -+ lpDesc->lpFormat->wFormatTag, lpDesc->lpFormat->nChannels, -+ lpDesc->lpFormat->nSamplesPerSec); -+ ret = MMSYSERR_NOERROR; -+ goto exit; -+ } -+ -+ wwi->wFlags = HIWORD(dwFlags & CALLBACK_TYPEMASK); -+ wwi->waveDesc = *lpDesc; -+ PULSE_InitRingMessage(&wwi->msgRing); -+ -+ wwi->stream = pa_stream_new(PULSE_context, "WaveIn", &wwi->sample_spec, NULL); -+ if (!wwi->stream) { -+ ret = WAVERR_BADFORMAT; -+ goto exit; -+ } -+ -+ pa_stream_set_state_callback(wwi->stream, PULSE_StreamStateCallback, wwi); -+ -+ pa_threaded_mainloop_lock(PULSE_ml); -+ TRACE("Asking to open %s for recording.\n", wdi->device_name); -+ pa_stream_connect_record(wwi->stream, wdi->device_name, NULL, -+ PA_STREAM_START_CORKED | -+ PA_STREAM_AUTO_TIMING_UPDATE | -+ PA_STREAM_INTERPOLATE_TIMING); -+ -+ for (;;) { -+ pa_context_state_t cstate = pa_context_get_state(PULSE_context); -+ pa_stream_state_t sstate = pa_stream_get_state(wwi->stream); -+ -+ if (cstate == PA_CONTEXT_FAILED || cstate == PA_CONTEXT_TERMINATED || -+ sstate == PA_STREAM_FAILED || sstate == PA_STREAM_TERMINATED) { -+ ERR("Failed to connect context object: %s\n", pa_strerror(pa_context_errno(PULSE_context))); -+ ret = MMSYSERR_NODRIVER; -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ goto exit; -+ } -+ -+ if (sstate == PA_STREAM_READY) -+ break; -+ -+ pa_threaded_mainloop_wait(PULSE_ml); -+ } -+ TRACE("(%p)->stream connected for recording.\n", wwi); -+ -+ PULSE_WaitForOperation(pa_stream_update_timing_info(wwi->stream, PULSE_StreamSuccessCallback, wwi)); -+ -+ wwi->timing_info = pa_stream_get_timing_info(wwi->stream); -+ assert(wwi->timing_info); -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ -+ wwi->hStartUpEvent = CreateEventW(NULL, FALSE, FALSE, NULL); -+ wwi->hThread = CreateThread(NULL, 0, widRecorder, (LPVOID)wwi, 0, &(wwi->dwThreadID)); -+ if (wwi->hThread) -+ SetThreadPriority(wwi->hThread, THREAD_PRIORITY_TIME_CRITICAL); -+ else { -+ ERR("Thread creation for the widRecorder failed!\n"); -+ ret = MMSYSERR_NOMEM; -+ goto exit; -+ } -+ WaitForSingleObject(wwi->hStartUpEvent, INFINITE); -+ CloseHandle(wwi->hStartUpEvent); -+ wwi->hStartUpEvent = INVALID_HANDLE_VALUE; -+ -+ return widNotifyClient(wwi, WIM_OPEN, 0L, 0L); -+ -+exit: -+ if (!wwi) -+ return ret; -+ -+ if (wwi->hStartUpEvent != INVALID_HANDLE_VALUE) -+ CloseHandle(wwi->hStartUpEvent); -+ -+ if (wwi->msgRing.ring_buffer_size > 0) -+ PULSE_DestroyRingMessage(&wwi->msgRing); -+ -+ if (wwi->stream) { -+ if (pa_stream_get_state(wwi->stream) == PA_STREAM_READY) -+ pa_stream_disconnect(wwi->stream); -+ pa_stream_unref(wwi->stream); -+ } -+ HeapFree(GetProcessHeap(), 0, wwi); -+ -+ return ret; -+} -+/************************************************************************** -+ * widClose [internal] -+ */ -+static DWORD widClose(WORD wDevID, WINE_WAVEINST *wwi) { -+ DWORD ret; -+ -+ TRACE("(%u, %p);\n", wDevID, wwi); -+ if (wDevID >= PULSE_WidNumDevs) { -+ WARN("Asked for device %d, but only %d known!\n", wDevID, PULSE_WodNumDevs); -+ return MMSYSERR_INVALHANDLE; -+ } else if (!wwi) { -+ WARN("Stream instance invalid.\n"); -+ return MMSYSERR_INVALHANDLE; -+ } -+ -+ if (wwi->state != WINE_WS_FAILED) { -+ if (wwi->lpQueuePtr) { -+ WARN("buffers recording recording !\n"); -+ return WAVERR_STILLPLAYING; -+ } -+ -+ pa_threaded_mainloop_lock(PULSE_ml); -+ if (pa_stream_get_state(wwi->stream) == PA_STREAM_READY) -+ pa_stream_drop(wwi->stream); -+ pa_stream_disconnect(wwi->stream); -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ -+ if (wwi->hThread != INVALID_HANDLE_VALUE) -+ PULSE_AddRingMessage(&wwi->msgRing, WINE_WM_CLOSING, 0, TRUE); -+ -+ PULSE_DestroyRingMessage(&wwi->msgRing); -+ } -+ ret = widNotifyClient(wwi, WIM_CLOSE, 0L, 0L); -+ -+ pa_stream_unref(wwi->stream); -+ TRACE("Deallocating record instance.\n"); -+ HeapFree(GetProcessHeap(), 0, wwi); -+ return ret; -+} -+ -+/************************************************************************** -+ * widAddBuffer [internal] -+ * -+ */ -+static DWORD widAddBuffer(WINE_WAVEINST* wwi, LPWAVEHDR lpWaveHdr, DWORD dwSize) { -+ TRACE("(%p, %p, %08X);\n", wwi, lpWaveHdr, dwSize); -+ -+ if (!wwi || wwi->state == WINE_WS_FAILED) { -+ WARN("Stream instance invalid.\n"); -+ return MMSYSERR_INVALHANDLE; -+ } -+ -+ if (lpWaveHdr->lpData == NULL || !(lpWaveHdr->dwFlags & WHDR_PREPARED)) -+ return WAVERR_UNPREPARED; -+ -+ if (lpWaveHdr->dwFlags & WHDR_INQUEUE) -+ return WAVERR_STILLPLAYING; -+ -+ lpWaveHdr->dwFlags &= ~WHDR_DONE; -+ lpWaveHdr->dwFlags |= WHDR_INQUEUE; -+ lpWaveHdr->dwBytesRecorded = 0; -+ lpWaveHdr->lpNext = 0; -+ -+ PULSE_AddRingMessage(&wwi->msgRing, WINE_WM_HEADER, (DWORD)lpWaveHdr, FALSE); -+ -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * widRecorderMessage [internal] -+ */ -+static DWORD widRecorderMessage(WINE_WAVEINST *wwi, enum win_wm_message message) { -+ if (!wwi || wwi->state == WINE_WS_FAILED) { -+ WARN("Stream instance invalid.\n"); -+ return MMSYSERR_INVALHANDLE; -+ } -+ -+ PULSE_AddRingMessage(&wwi->msgRing, message, 0, TRUE); -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * widGetPosition [internal] -+ */ -+static DWORD widGetPosition(WINE_WAVEINST *wwi, LPMMTIME lpTime, DWORD uSize) { -+ DWORD bytes, time; -+ if (!wwi || wwi->state == WINE_WS_FAILED) { -+ WARN("Stream instance invalid.\n"); -+ return MMSYSERR_INVALHANDLE; -+ } -+ -+ if (lpTime == NULL) return MMSYSERR_INVALPARAM; -+ -+ bytes = wwi->timing_info->read_index - wwi->last_reset; -+ time = pa_bytes_to_usec(bytes, &wwi->sample_spec) / 1000; -+ -+ switch (lpTime->wType) { -+ case TIME_SAMPLES: -+ lpTime->u.sample = bytes / pa_frame_size(&wwi->sample_spec); -+ TRACE("TIME_SAMPLES=%u\n", lpTime->u.sample); -+ break; -+ case TIME_MS: -+ lpTime->u.ms = time; -+ TRACE("TIME_MS=%u\n", lpTime->u.ms); -+ break; -+ case TIME_SMPTE: -+ lpTime->u.smpte.fps = 30; -+ lpTime->u.smpte.sec = time/1000; -+ lpTime->u.smpte.min = lpTime->u.smpte.sec / 60; -+ lpTime->u.smpte.sec -= 60 * lpTime->u.smpte.min; -+ lpTime->u.smpte.hour = lpTime->u.smpte.min / 60; -+ lpTime->u.smpte.min -= 60 * lpTime->u.smpte.hour; -+ lpTime->u.smpte.frame = time / lpTime->u.smpte.fps * 1000; -+ TRACE("TIME_SMPTE=%02u:%02u:%02u:%02u\n", -+ lpTime->u.smpte.hour, lpTime->u.smpte.min, -+ lpTime->u.smpte.sec, lpTime->u.smpte.frame); -+ break; -+ default: -+ WARN("Format %d not supported, using TIME_BYTES !\n", lpTime->wType); -+ lpTime->wType = TIME_BYTES; -+ /* fall through */ -+ case TIME_BYTES: -+ lpTime->u.cb = bytes; -+ TRACE("TIME_BYTES=%u\n", lpTime->u.cb); -+ break; -+ } -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * widGetDevCaps [internal] -+ */ -+static DWORD widGetDevCaps(DWORD wDevID, LPWAVEINCAPSW lpCaps, DWORD dwSize) { -+ TRACE("(%u, %p, %u);\n", wDevID, lpCaps, dwSize); -+ -+ if (lpCaps == NULL) return MMSYSERR_NOTENABLED; -+ -+ if (wDevID >= PULSE_WidNumDevs) { -+ TRACE("Asked for device %d, but only %d known!\n", wDevID, PULSE_WidNumDevs); -+ return MMSYSERR_INVALHANDLE; -+ } -+ -+ memcpy(lpCaps, &(WInDev[wDevID].caps.in), min(dwSize, sizeof(*lpCaps))); -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * widGetNumDevs [internal] -+ * Context-sanity check here, as if we respond with 0, WINE will move on -+ * to the next wavein driver. -+ */ -+static DWORD widGetNumDevs() { -+ if (pa_context_get_state(PULSE_context) != PA_CONTEXT_READY) -+ return 0; -+ -+ return PULSE_WidNumDevs; -+} -+ -+/************************************************************************** -+ * widDevInterfaceSize [internal] -+ */ -+static DWORD widDevInterfaceSize(UINT wDevID, LPDWORD dwParam1) { -+ TRACE("(%u, %p)\n", wDevID, dwParam1); -+ -+ *dwParam1 = MultiByteToWideChar(CP_UNIXCP, 0, WInDev[wDevID].interface_name, -1, -+ NULL, 0 ) * sizeof(WCHAR); -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * widDevInterface [internal] -+ */ -+static DWORD widDevInterface(UINT wDevID, PWCHAR dwParam1, DWORD dwParam2) { -+ if (dwParam2 >= MultiByteToWideChar(CP_UNIXCP, 0, WInDev[wDevID].interface_name, -1, -+ NULL, 0 ) * sizeof(WCHAR)) -+ { -+ MultiByteToWideChar(CP_UNIXCP, 0, WInDev[wDevID].interface_name, -1, -+ dwParam1, dwParam2 / sizeof(WCHAR)); -+ return MMSYSERR_NOERROR; -+ } -+ return MMSYSERR_INVALPARAM; -+} -+ -+/************************************************************************** -+ * widDsDesc [internal] -+ */ -+DWORD widDsDesc(UINT wDevID, PDSDRIVERDESC desc) -+{ -+ *desc = WInDev[wDevID].ds_desc; -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * widMessage (WINEPULSE.@) -+ */ -+DWORD WINAPI PULSE_widMessage(UINT wDevID, UINT wMsg, DWORD dwUser, -+ DWORD dwParam1, DWORD dwParam2) { -+ -+ switch (wMsg) { -+ case DRVM_INIT: -+ case DRVM_EXIT: -+ case DRVM_ENABLE: -+ case DRVM_DISABLE: -+ /* FIXME: Pretend this is supported */ -+ return 0; -+ case WIDM_OPEN: return widOpen (wDevID, (LPDWORD)dwUser, (LPWAVEOPENDESC)dwParam1, dwParam2); -+ case WIDM_CLOSE: return widClose (wDevID, (WINE_WAVEINST*)dwUser); -+ case WIDM_ADDBUFFER: return widAddBuffer ((WINE_WAVEINST*)dwUser, (LPWAVEHDR)dwParam1, dwParam2); -+ case WIDM_PREPARE: return MMSYSERR_NOTSUPPORTED; -+ case WIDM_UNPREPARE: return MMSYSERR_NOTSUPPORTED; -+ case WIDM_GETDEVCAPS: return widGetDevCaps (wDevID, (LPWAVEINCAPSW)dwParam1, dwParam2); -+ case WIDM_GETNUMDEVS: return widGetNumDevs (); -+ case WIDM_GETPOS: return widGetPosition ((WINE_WAVEINST*)dwUser, (LPMMTIME)dwParam1, dwParam2); -+ case WIDM_RESET: return widRecorderMessage((WINE_WAVEINST*)dwUser, WINE_WM_RESETTING); -+ case WIDM_START: return widRecorderMessage((WINE_WAVEINST*)dwUser, WINE_WM_STARTING); -+ case WIDM_STOP: return widRecorderMessage((WINE_WAVEINST*)dwUser, WINE_WM_STOPPING); -+ case DRV_QUERYDEVICEINTERFACESIZE: return widDevInterfaceSize (wDevID, (LPDWORD)dwParam1); -+ case DRV_QUERYDEVICEINTERFACE: return widDevInterface (wDevID, (PWCHAR)dwParam1, dwParam2); -+ case DRV_QUERYDSOUNDIFACE: return MMSYSERR_NOTSUPPORTED; /* Use emulation, as there is no advantage */ -+ case DRV_QUERYDSOUNDDESC: return widDsDesc (wDevID, (PDSDRIVERDESC)dwParam1); -+ default: -+ FIXME("unknown message %d!\n", wMsg); -+ } -+ return MMSYSERR_NOTSUPPORTED; -+} -+ -+#else /* HAVE_PULSEAUDIO */ -+ -+/************************************************************************** -+ * widMessage (WINEPULSE.@) -+ */ -+DWORD WINAPI PULSE_widMessage(WORD wDevID, WORD wMsg, DWORD dwUser, -+ DWORD dwParam1, DWORD dwParam2) { -+// FIXME("(%u, %04X, %08X, %08X, %08X):stub\n", wDevID, wMsg, dwUser, dwParam1, dwParam2); -+ return MMSYSERR_NOTENABLED; -+} -+ -+#endif /* HAVE_PULSEAUDIO */ -diff --git a/dlls/winepulse.drv/waveout.c b/dlls/winepulse.drv/waveout.c -new file mode 100644 -index 0000000..b531ee2 ---- /dev/null -+++ b/dlls/winepulse.drv/waveout.c -@@ -0,0 +1,1176 @@ -+/* -+ * Wine Driver for PulseAudio - WaveOut Functionality -+ * http://pulseaudio.org/ -+ * -+ * Copyright 2009 Arthur Taylor -+ * -+ * Contains code from other wine multimedia drivers. -+ * -+ * 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, write to the Free Software -+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA -+ */ -+ -+#include "config.h" -+ -+#include -+ -+#include "windef.h" -+#include "winbase.h" -+#include "wingdi.h" -+#include "winuser.h" -+#include "winnls.h" -+#include "winerror.h" -+#include "mmddk.h" -+#include "mmreg.h" -+ -+#include -+ -+#include "wine/debug.h" -+ -+WINE_DEFAULT_DEBUG_CHANNEL(wave); -+ -+#if HAVE_PULSEAUDIO -+ -+/* state diagram for waveOut writing: -+ * -+ * +---------+-------------+---------------+---------------------------------+ -+ * | state | function | event | new state | -+ * +---------+-------------+---------------+---------------------------------+ -+ * | | open() | | STOPPED | -+ * | PAUSED | write() | | PAUSED | -+ * | STOPPED | write() | | PLAYING | -+ * | PLAYING | write() | HEADER | PLAYING | -+ * | (other) | write() | | | -+ * | (any) | pause() | PAUSING | PAUSED | -+ * | PAUSED | restart() | RESTARTING | PLAYING (if no thrd => STOPPED) | -+ * | PAUSED | reset() | RESETTING | PAUSED | -+ * | (other) | reset() | RESETTING | STOPPED | -+ * | (any) | close() | CLOSING | CLOSED | -+ * +---------+-------------+---------------+---------------------------------+ -+ */ -+ -+/* -+ * - It is currently unknown if pausing in a loop works the same as expected. -+ */ -+ -+/*======================================================================* -+ * WAVE OUT specific PulseAudio Callbacks * -+ *======================================================================*/ -+ -+/************************************************************************** -+ * WAVEOUT_StreamStartedCallback [internal] -+ * -+ * Called by the pulse mainloop whenever stream playback resumes after an -+ * underflow or an initial start. Requires libpulse >= 0.9.11 -+ */ -+#if PA_API_VERSION >= 12 -+static void WAVEOUT_StreamStartedCallback(pa_stream *s, void *userdata) { -+ WINE_WAVEINST *wwo = (WINE_WAVEINST*)userdata; -+ assert(s && wwo); -+ -+ TRACE("Audio flowing.\n"); -+ -+ if (wwo->buffer_attr.tlength == 0) -+ wwo->buffer_attr.tlength = (uint32_t) -1; -+ -+ if (wwo->hThread != INVALID_HANDLE_VALUE && wwo->msgRing.ring_buffer_size) { -+ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_STARTING, 0, FALSE); -+ } -+} -+#endif -+ -+/************************************************************************** -+ * WAVEOUT_StreamRequestCallback -+ * -+ * Called by the pulse mainloop whenever it wants audio data. -+ */ -+static void WAVEOUT_StreamRequestCallback(pa_stream *s, size_t nbytes, void *userdata) { -+ WINE_WAVEINST *ww = (WINE_WAVEINST*)userdata; -+ -+ TRACE("Asking to be fed %u bytes\n", nbytes); -+ -+ /* Make sure that the player/recorder is running */ -+ if (ww->hThread != INVALID_HANDLE_VALUE && ww->msgRing.messages) { -+ PULSE_AddRingMessage(&ww->msgRing, WINE_WM_FEED, (DWORD)nbytes, FALSE); -+ } -+} -+ -+/************************************************************************** -+ * WAVEOUT_StreamTimingInfoUpdateCallback [internal] -+ * -+ * Called by the pulse mainloop whenever the timing info gets updated, we -+ * use this to send the started signal */ -+static void WAVEOUT_StreamTimingInfoUpdateCallback(pa_stream *s, void *userdata) { -+ WINE_WAVEINST *wwo = (WINE_WAVEINST*)userdata; -+ assert(s && wwo); -+ -+ if (!wwo->is_releasing && wwo->timing_info && wwo->timing_info->playing) { -+ TRACE("Audio flowing.\n"); -+ -+ if (wwo->buffer_attr.tlength == 0) -+ wwo->buffer_attr.tlength = (uint32_t) -1; -+ -+ if (wwo->hThread != INVALID_HANDLE_VALUE && wwo->msgRing.ring_buffer_size) -+ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_STARTING, 0, FALSE); -+ } -+} -+ -+/************************************************************************** -+ * WAVEOUT_SinkInputInfoCallback [internal] -+ * -+ * Called by the pulse thread. Used for wodGetVolume. -+ */ -+static void WAVEOUT_SinkInputInfoCallback(pa_context *c, const pa_sink_input_info *i, int eol, void *userdata) { -+ WINE_WAVEINST* wwo = (WINE_WAVEINST*)userdata; -+ if (!eol && i) { -+ for (wwo->volume.channels = 0; wwo->volume.channels != i->volume.channels; wwo->volume.channels++) -+ wwo->volume.values[wwo->volume.channels] = i->volume.values[wwo->volume.channels]; -+ pa_threaded_mainloop_signal(PULSE_ml, 0); -+ } -+} -+ -+/*======================================================================* -+ * "Low level" WAVE OUT implementation * -+ *======================================================================*/ -+ -+/************************************************************************** -+ * wodPlayer_NotifyClient [internal] -+ */ -+static DWORD wodPlayer_NotifyClient(WINE_WAVEINST* wwo, WORD wMsg, DWORD dwParam1, DWORD dwParam2) { -+ TRACE("wMsg = 0x%04x dwParm1 = %04X dwParam2 = %04X\n", wMsg, dwParam1, dwParam2); -+ -+ switch (wMsg) { -+ case WOM_OPEN: -+ case WOM_CLOSE: -+ case WOM_DONE: -+ if (wwo->wFlags != DCB_NULL && -+ !DriverCallback(wwo->waveDesc.dwCallback, wwo->wFlags, (HDRVR)wwo->waveDesc.hWave, -+ wMsg, wwo->waveDesc.dwInstance, dwParam1, dwParam2)) { -+ WARN("can't notify client !\n"); -+ return MMSYSERR_ERROR; -+ } -+ break; -+ default: -+ FIXME("Unknown callback message %u\n", wMsg); -+ return MMSYSERR_INVALPARAM; -+ } -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * wodPlayer_BeginWaveHdr [internal] -+ * -+ * Makes the specified lpWaveHdr the currently playing wave header. -+ * If the specified wave header is a begin loop and we're not already in -+ * a loop, setup the loop. -+ */ -+static void wodPlayer_BeginWaveHdr(WINE_WAVEINST* wwo, LPWAVEHDR lpWaveHdr) { -+ wwo->lpPlayPtr = lpWaveHdr; -+ -+ if (!lpWaveHdr) return; -+ -+ if (lpWaveHdr->dwFlags & WHDR_BEGINLOOP) { -+ if (wwo->lpLoopPtr) { -+ WARN("Already in a loop. Discarding loop on this header (%p)\n", lpWaveHdr); -+ } else { -+ TRACE("Starting loop (%dx) with %p\n", lpWaveHdr->dwLoops, lpWaveHdr); -+ wwo->lpLoopPtr = lpWaveHdr; -+ /* Windows does not touch WAVEHDR.dwLoops, -+ * so we need to make an internal copy */ -+ wwo->dwLoops = lpWaveHdr->dwLoops; -+ } -+ } -+ wwo->dwPartialOffset = 0; -+} -+ -+/************************************************************************** -+ * wodPlayer_PlayPtrNext [internal] -+ * -+ * Advance the play pointer to the next waveheader, looping if required. -+ */ -+static LPWAVEHDR wodPlayer_PlayPtrNext(WINE_WAVEINST* wwo) { -+ LPWAVEHDR lpWaveHdr = wwo->lpPlayPtr; -+ -+ wwo->dwPartialOffset = 0; -+ if ((lpWaveHdr->dwFlags & WHDR_ENDLOOP) && wwo->lpLoopPtr) { -+ /* We're at the end of a loop, loop if required */ -+ if (--wwo->dwLoops > 0) { -+ wwo->lpPlayPtr = wwo->lpLoopPtr; -+ } else { -+ /* Handle overlapping loops correctly */ -+ if (wwo->lpLoopPtr != lpWaveHdr && (lpWaveHdr->dwFlags & WHDR_BEGINLOOP)) { -+ FIXME("Correctly handled case ? (ending loop buffer also starts a new loop)\n"); -+ /* shall we consider the END flag for the closing loop or for -+ * the opening one or for both ??? -+ * code assumes for closing loop only -+ */ -+ } else { -+ lpWaveHdr = lpWaveHdr->lpNext; -+ } -+ wwo->lpLoopPtr = NULL; -+ wodPlayer_BeginWaveHdr(wwo, lpWaveHdr); -+ } -+ } else { -+ /* We're not in a loop. Advance to the next wave header */ -+ wodPlayer_BeginWaveHdr(wwo, lpWaveHdr = lpWaveHdr->lpNext); -+ } -+ -+ return lpWaveHdr; -+} -+ -+/************************************************************************** -+ * wodPlayer_CheckReleasing [internal] -+ * -+ * Check to make sure that playback has not stalled -+ */ -+static void wodPlayer_CheckReleasing(WINE_WAVEINST *wwo) { -+ LPWAVEHDR lpWaveHdr = wwo->lpQueuePtr; -+ -+ pa_threaded_mainloop_lock(PULSE_ml); -+ if (!wwo->timing_info->playing && !wwo->is_releasing && lpWaveHdr && !wwo->lpPlayPtr && wwo->state == WINE_WS_PLAYING) { -+ -+ /* Try and adjust the buffer attributes so there is less latency. -+ * Because of bugs this call does not work on older servers. Once -+ * new version of pulseaudio become ubiquitous we will drop support for -+ * versions before 0.9.15 because they have too many bugs.*/ -+ if (wwo->buffer_attr.tlength == 0 && -+ pa_context_get_server_protocol_version(PULSE_context) >= 15) { -+ wwo->buffer_attr.tlength = wwo->timing_info->write_index; -+ wwo->buffer_attr.prebuf = (uint32_t) -1; -+ wwo->buffer_attr.minreq = (uint32_t) -1; -+ wwo->buffer_attr.maxlength = (uint32_t) -1; -+ WARN("Asking for new buffer tlength of %ums (%u bytes)\n", (unsigned int)(pa_bytes_to_usec(wwo->buffer_attr.tlength, &wwo->sample_spec)/1000), wwo->buffer_attr.tlength); -+ pa_stream_set_buffer_attr(wwo->stream, &wwo->buffer_attr, PULSE_StreamSuccessCallback, wwo); -+ } else { -+ /* Fake playback start earlier, introducing unknown latency */ -+ pa_gettimeofday(&wwo->started_releasing); -+ wwo->is_releasing = TRUE; -+ wwo->releasing_offset = wwo->lpQueuePtr->reserved; -+ WARN("Starting to release early.\n"); -+ } -+ } -+ pa_threaded_mainloop_unlock(PULSE_ml); -+} -+ -+/************************************************************************** -+ * wodPlayer_NotifyCompletions [internal] -+ * -+ * Notifies and remove from queue all wavehdrs which have been played to -+ * the speaker based on a reference time of (theoretical) playback start. If -+ * force is true, we notify all wavehdrs and remove them all from the queue -+ * even if they are unplayed or part of a loop. We return the time to wait -+ * until the next wavehdr needs to be freed, or INFINITE if there are no more -+ * wavehdrs. We use timevals rather than the stream position data that pulse -+ * gives us as realeasing needs to be constant and smooth for good application -+ * behaviour. -+ */ -+static DWORD wodPlayer_NotifyCompletions(WINE_WAVEINST* wwo, BOOL force) { -+ LPWAVEHDR lpWaveHdr = wwo->lpQueuePtr; -+ pa_usec_t time; -+ pa_usec_t wait; -+ -+ time = pa_bytes_to_usec(wwo->releasing_offset, &wwo->sample_spec); -+ if (wwo->is_releasing) -+ time += pa_timeval_age(&wwo->started_releasing); -+ -+ while (lpWaveHdr) { -+ if (!force) { -+ /* Start from lpQueuePtr and keep notifying until: -+ * - we hit an unwritten wavehdr -+ * - we hit the beginning of a running loop -+ * - we hit a wavehdr which hasn't finished playing -+ */ -+ if (lpWaveHdr == wwo->lpPlayPtr) { TRACE("play %p\n", lpWaveHdr); return INFINITE; } -+ if (lpWaveHdr == wwo->lpLoopPtr) { TRACE("loop %p\n", lpWaveHdr); return INFINITE; } -+ -+ /* See if this data has been played, and if not, return when it will have been */ -+ wait = pa_bytes_to_usec(lpWaveHdr->reserved + lpWaveHdr->dwBufferLength, &wwo->sample_spec); -+ if (wait >= time) { -+ wait = ((wait - time) + 999) / 1000; -+ return wait ?: 1; -+ } -+ } -+ -+ /* return the wavehdr */ -+ wwo->lpQueuePtr = lpWaveHdr->lpNext; -+ lpWaveHdr->dwFlags &= ~WHDR_INQUEUE; -+ lpWaveHdr->dwFlags |= WHDR_DONE; -+ -+ wodPlayer_NotifyClient(wwo, WOM_DONE, (DWORD)lpWaveHdr, 0); -+ lpWaveHdr = wwo->lpQueuePtr; -+ } -+ /* No more wavehdrs */ -+ TRACE("Empty queue\n"); -+ return INFINITE; -+} -+ -+/************************************************************************** -+ * wodPlayer_WriteMax [internal] -+ * -+ * Write either how much free space or how much data we have, depending on -+ * which is less -+ */ -+static int wodPlayer_WriteMax(WINE_WAVEINST *wwo, size_t *space) { -+ LPWAVEHDR lpWaveHdr = wwo->lpPlayPtr; -+ size_t toWrite = min(lpWaveHdr->dwBufferLength - wwo->dwPartialOffset, *space); -+ -+ if (toWrite > 0 && pa_stream_write(wwo->stream, lpWaveHdr->lpData + wwo->dwPartialOffset, toWrite, NULL, 0, PA_SEEK_RELATIVE) >= 0) -+ TRACE("Writing wavehdr %p.%u[%u]\n", lpWaveHdr, wwo->dwPartialOffset, lpWaveHdr->dwBufferLength); -+ else -+ return 0; -+ -+ /* Check to see if we wrote all of the wavehdr */ -+ if ((wwo->dwPartialOffset += toWrite) >= lpWaveHdr->dwBufferLength) -+ wodPlayer_PlayPtrNext(wwo); -+ -+ *space -= toWrite; -+ -+ return toWrite; -+} -+ -+/************************************************************************** -+ * wodPlayer_Feed [internal] -+ * -+ * Feed as much sound data as we can into pulse using wodPlayer_WriteMax. -+ * size_t space _must_ have come from either pa_stream_writable_size() or -+ * the value from a stream write callback, as if it isn't you run the risk -+ * of a buffer overflow in which audio data will be lost. -+ */ -+static void wodPlayer_Feed(WINE_WAVEINST* wwo, size_t space) { -+ -+ /* No more room... no need to try to feed */ -+ if (space == 0) return; -+ -+ if (!wwo->stream || !PULSE_context || -+ pa_context_get_state(PULSE_context) != PA_CONTEXT_READY || -+ pa_stream_get_state(wwo->stream) != PA_STREAM_READY) -+ return; -+ -+ pa_threaded_mainloop_lock(PULSE_ml); -+ /* Feed from a partial wavehdr */ -+ if (wwo->lpPlayPtr && wwo->dwPartialOffset != 0) -+ wodPlayer_WriteMax(wwo, &space); -+ -+ /* Feed wavehdrs until we run out of wavehdrs or buffer space */ -+ if (wwo->dwPartialOffset == 0 && wwo->lpPlayPtr) { -+ do { -+ wwo->lpPlayPtr->reserved = wwo->timing_info->write_index; -+ } while (wodPlayer_WriteMax(wwo, &space) > 0 && wwo->lpPlayPtr && space > 0); -+ } -+ pa_threaded_mainloop_unlock(PULSE_ml); -+} -+ -+/************************************************************************** -+ * wodPlayer_Reset [internal] -+ * -+ * wodPlayer helper. Resets current output stream. -+ */ -+static void wodPlayer_Reset(WINE_WAVEINST* wwo) { -+ enum win_wm_message msg; -+ DWORD param; -+ HANDLE ev; -+ -+ TRACE("(%p)\n", wwo); -+ -+ /* remove any buffer */ -+ wodPlayer_NotifyCompletions(wwo, TRUE); -+ -+ wwo->lpPlayPtr = wwo->lpQueuePtr = wwo->lpLoopPtr = NULL; -+ if (wwo->state != WINE_WS_PAUSED) -+ wwo->state = WINE_WS_STOPPED; -+ wwo->dwPartialOffset = 0; -+ -+ if (!wwo->stream || -+ !PULSE_context || -+ pa_context_get_state(PULSE_context) != PA_CONTEXT_READY || -+ pa_stream_get_state(wwo->stream) != PA_STREAM_READY) { -+ return; -+ } -+ -+ pa_threaded_mainloop_lock(PULSE_ml); -+ -+ /* flush the output buffer of written data*/ -+ PULSE_WaitForOperation(pa_stream_flush(wwo->stream, PULSE_StreamSuccessCallback, NULL)); -+ -+ /* Reset the written byte count as some data may have been flushed */ -+ if (wwo->timing_info->write_index_corrupt) -+ PULSE_WaitForOperation(pa_stream_update_timing_info(wwo->stream, PULSE_StreamSuccessCallback, wwo)); -+ wwo->releasing_offset = wwo->last_reset = wwo->timing_info->write_index; -+ if (wwo->is_releasing) -+ pa_gettimeofday(&wwo->started_releasing); -+ -+ /* return all pending headers in queue */ -+ EnterCriticalSection(&wwo->msgRing.msg_crst); -+ while (PULSE_RetrieveRingMessage(&wwo->msgRing, &msg, ¶m, &ev)) { -+ if (msg != WINE_WM_HEADER) { -+ SetEvent(ev); -+ continue; -+ } -+ ((LPWAVEHDR)param)->dwFlags &= ~WHDR_INQUEUE; -+ ((LPWAVEHDR)param)->dwFlags |= WHDR_DONE; -+ wodPlayer_NotifyClient(wwo, WOM_DONE, param, 0); -+ } -+ PULSE_ResetRingMessage(&wwo->msgRing); -+ LeaveCriticalSection(&wwo->msgRing.msg_crst); -+ -+ pa_threaded_mainloop_unlock(PULSE_ml); -+} -+ -+/************************************************************************** -+ * wodPlayer_Underrun [internal] -+ * -+ * wodPlayer helper. Deal with a stream underrun. -+ */ -+static void wodPlayer_Underrun(WINE_WAVEINST* wwo) { -+ -+ pa_threaded_mainloop_lock(PULSE_ml); -+ -+ /* Ask for a timing update */ -+ PULSE_WaitForOperation(pa_stream_update_timing_info(wwo->stream, PULSE_StreamSuccessCallback, wwo)); -+ -+ /* See if we recovered while the message was waiting in the queue */ -+ if (wwo->timing_info->playing) { -+ TRACE("False alarm\n"); -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ return; -+ } -+ -+ if (wwo->lpPlayPtr) { -+ size_t space; -+ -+ TRACE("There is queued data. Trying to recover.\n"); -+ -+ /* Ask for a timing update */ -+ if (wwo->timing_info->write_index_corrupt) -+ PULSE_WaitForOperation(pa_stream_update_timing_info(wwo->stream, PULSE_StreamSuccessCallback, wwo)); -+ space = pa_stream_writable_size(wwo->stream); -+ wodPlayer_Feed(wwo, space); -+ } -+ WARN("Stream underrun!\n"); -+ wwo->is_releasing = FALSE; -+ wwo->releasing_offset = wwo->timing_info->write_index; -+ pa_threaded_mainloop_unlock(PULSE_ml); -+} -+ -+ -+/************************************************************************** -+ * wodPlayer_ProcessMessages [internal] -+ */ -+static DWORD wodPlayer_ProcessMessages(WINE_WAVEINST* wwo) { -+ LPWAVEHDR lpWaveHdr; -+ enum win_wm_message msg; -+ DWORD param, msgcount = 0; -+ HANDLE ev; -+ -+ while (PULSE_RetrieveRingMessage(&wwo->msgRing, &msg, ¶m, &ev)) { -+ TRACE("Received %s %x\n", PULSE_getCmdString(msg), param); -+ msgcount++; -+ -+ switch (msg) { -+ case WINE_WM_PAUSING: -+ wwo->state = WINE_WS_PAUSED; -+ -+ pa_threaded_mainloop_lock(PULSE_ml); -+ PULSE_WaitForOperation(pa_stream_cork(wwo->stream, 1, PULSE_StreamSuccessCallback, wwo)); -+ /* save how far we are, as releasing will restart from here */ -+ if (wwo->is_releasing) -+ wwo->releasing_offset = wwo->timing_info->write_index; -+ wwo->is_releasing = FALSE; -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ SetEvent(ev); -+ break; -+ -+ case WINE_WM_RESTARTING: -+ if (wwo->state == WINE_WS_PAUSED) { -+ wwo->state = WINE_WS_PLAYING; -+ pa_threaded_mainloop_lock(PULSE_ml); -+ PULSE_WaitForOperation(pa_stream_cork(wwo->stream, 0, PULSE_StreamSuccessCallback, wwo)); -+ /* If the serverside buffer was near full before pause, we need to -+ * have space to write soon, so force playback start */ -+ PULSE_WaitForOperation(pa_stream_trigger(wwo->stream, PULSE_StreamSuccessCallback, wwo)); -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ } -+ SetEvent(ev); -+ break; -+ -+ case WINE_WM_HEADER: -+ lpWaveHdr = (LPWAVEHDR)param; -+ /* insert buffer at the end of queue */ -+ { -+ LPWAVEHDR* wh; -+ for (wh = &(wwo->lpQueuePtr); *wh; wh = &((*wh)->lpNext)); -+ *wh = lpWaveHdr; -+ } -+ -+ if (!wwo->lpPlayPtr) -+ wodPlayer_BeginWaveHdr(wwo,lpWaveHdr); -+ if (wwo->state == WINE_WS_STOPPED) -+ wwo->state = WINE_WS_PLAYING; -+ -+ wodPlayer_Feed(wwo, pa_stream_writable_size(wwo->stream)); -+ SetEvent(ev); -+ break; -+ -+ case WINE_WM_RESETTING: -+ wodPlayer_Reset(wwo); -+ SetEvent(ev); -+ break; -+ -+ case WINE_WM_BREAKLOOP: -+ if (wwo->state == WINE_WS_PLAYING && wwo->lpLoopPtr != NULL) -+ /* ensure exit at end of current loop */ -+ wwo->dwLoops = 1; -+ SetEvent(ev); -+ break; -+ -+ case WINE_WM_FEED: /* Sent by the pulse thread */ -+ wodPlayer_Feed(wwo, pa_stream_writable_size(wwo->stream)); -+ SetEvent(ev); -+ break; -+ -+ case WINE_WM_XRUN: /* Sent by the pulse thread */ -+ if ((DWORD)param == 1) { -+ ERR("Buffer overflow!\n"); -+ pa_threaded_mainloop_lock(PULSE_ml); -+ PULSE_WaitForOperation(pa_stream_drain(wwo->stream, PULSE_StreamSuccessCallback, wwo)); -+ wwo->is_releasing = FALSE; -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ } else -+ wodPlayer_Underrun(wwo); -+ SetEvent(ev); -+ break; -+ -+ case WINE_WM_STARTING: /* Sent by the pulse thread */ -+ /* Start releasing wavehdrs if we haven't already */ -+ if (!wwo->is_releasing) { -+ wwo->is_releasing = TRUE; -+ pa_gettimeofday(&wwo->started_releasing); -+ } -+ SetEvent(ev); -+ break; -+ -+ case WINE_WM_CLOSING: /* If param = 1, close because of a failure */ -+ wwo->hThread = NULL; -+ if ((DWORD)param == 1) { -+ /* If we are here, the stream has failed */ -+ wwo->state = WINE_WS_FAILED; -+ SetEvent(ev); -+ PULSE_DestroyRingMessage(&wwo->msgRing); -+ wodPlayer_NotifyCompletions(wwo, TRUE); -+ wodPlayer_NotifyClient(wwo, WOM_CLOSE, 0L, 0L); -+ wwo->lpPlayPtr = wwo->lpQueuePtr = wwo->lpLoopPtr = NULL; -+ pa_threaded_mainloop_lock(PULSE_ml); -+ pa_stream_disconnect(wwo->stream); -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ TRACE("Thread exiting because of failure.\n"); -+ ExitThread(1); -+ /* Stream instance will get de-refferenced upon close */ -+ } -+ wwo->state = WINE_WS_CLOSED; -+ /* sanity check: this should not happen since the device must have been reset before */ -+ if (wwo->lpQueuePtr || wwo->lpPlayPtr) ERR("out of sync\n"); -+ SetEvent(ev); -+ TRACE("Thread exiting.\n"); -+ ExitThread(0); -+ /* shouldn't go here */ -+ -+ default: -+ FIXME("unknown message %d\n", msg); -+ break; -+ } -+ } -+ -+ return msgcount; -+} -+ -+/************************************************************************** -+ * wodPlayer [internal] -+ * -+ * The thread which is responsible for returning WaveHdrs via DriverCallback, -+ * the writing of queued WaveHdrs, and all pause / reset stream management. -+ */ -+static DWORD CALLBACK wodPlayer(LPVOID lpParam) { -+ WINE_WAVEINST *wwo = (WINE_WAVEINST*)lpParam; -+ DWORD dwSleepTime = INFINITE; -+ -+ wwo->state = WINE_WS_STOPPED; -+ SetEvent(wwo->hStartUpEvent); -+ -+/* Wait for the shortest time before an action is required. If there are no -+ * pending actions, wait forever for a command. */ -+ for (;;) { -+ TRACE("Waiting %u ms\n", dwSleepTime); -+ PULSE_WaitRingMessage(&wwo->msgRing, dwSleepTime); -+ -+/* If no messages were processed during the timeout it might be because audio -+ * is not flowing yet, so check. */ -+ if (wodPlayer_ProcessMessages(wwo) == 0) -+ wodPlayer_CheckReleasing(wwo); -+ -+/* If there is audio playing, return headers and get next timeout */ -+ if (wwo->state == WINE_WS_PLAYING) -+ dwSleepTime = wodPlayer_NotifyCompletions(wwo, FALSE); -+ else -+ dwSleepTime = INFINITE; -+ } -+} -+ -+/************************************************************************** -+ * wodOpen [internal] -+ */ -+static DWORD wodOpen(WORD wDevID, LPDWORD lpdwUser, LPWAVEOPENDESC lpDesc, DWORD dwFlags) { -+ WINE_WAVEDEV *wdo; -+ WINE_WAVEINST *wwo = NULL; -+ DWORD ret = MMSYSERR_NOERROR; -+ pa_stream_flags_t stream_flags; -+ -+ TRACE("(%u, %p, %08X);\n", wDevID, lpDesc, dwFlags); -+ if (lpDesc == NULL) { -+ WARN("Invalid Parameter !\n"); -+ return MMSYSERR_INVALPARAM; -+ } -+ -+ if (wDevID >= PULSE_WodNumDevs) { -+ WARN("Asked for device %d, but only %d known!\n", wDevID, PULSE_WodNumDevs); -+ return MMSYSERR_BADDEVICEID; -+ } -+ wdo = &WOutDev[wDevID]; -+ -+ wwo = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(WINE_WAVEINST)); -+ if (!wwo) return MMSYSERR_NOMEM; -+ *lpdwUser = (DWORD)wwo; -+ -+ /* check to see if format is supported and make pa_sample_spec struct */ -+ if (!PULSE_SetupFormat(lpDesc->lpFormat, &wwo->sample_spec)) { -+ WARN("Bad format: tag=%04X nChannels=%d nSamplesPerSec=%d !\n", -+ lpDesc->lpFormat->wFormatTag, lpDesc->lpFormat->nChannels, -+ lpDesc->lpFormat->nSamplesPerSec); -+ ret = WAVERR_BADFORMAT; -+ goto exit; -+ } -+ -+ if (TRACE_ON(wave)) { -+ char t[PA_SAMPLE_SPEC_SNPRINT_MAX]; -+ pa_sample_spec_snprint(t, sizeof(t), &wwo->sample_spec); -+ TRACE("Sample spec '%s'\n", t); -+ } -+ -+ if (dwFlags & WAVE_FORMAT_QUERY) { -+ TRACE("Query format: tag=%04X nChannels=%d nSamplesPerSec=%d !\n", -+ lpDesc->lpFormat->wFormatTag, lpDesc->lpFormat->nChannels, -+ lpDesc->lpFormat->nSamplesPerSec); -+ ret = MMSYSERR_NOERROR; -+ goto exit; -+ } -+ -+ wwo->wFlags = HIWORD(dwFlags & CALLBACK_TYPEMASK); -+ wwo->waveDesc = *lpDesc; -+ PULSE_InitRingMessage(&wwo->msgRing); -+ -+ wwo->stream = pa_stream_new(PULSE_context, "WaveOut", &wwo->sample_spec, NULL); -+ /* If server doesn't support sample_spec, we will error out here */ -+ if (!wwo->stream) { -+ ret = WAVERR_BADFORMAT; -+ goto exit; -+ } -+ -+ pa_stream_set_write_callback (wwo->stream, WAVEOUT_StreamRequestCallback, wwo); -+ pa_stream_set_state_callback (wwo->stream, PULSE_StreamStateCallback, wwo); -+ pa_stream_set_underflow_callback (wwo->stream, PULSE_StreamUnderflowCallback, wwo); -+ pa_stream_set_overflow_callback (wwo->stream, PULSE_StreamOverflowCallback, wwo); -+ pa_stream_set_moved_callback (wwo->stream, PULSE_StreamMovedCallback, wwo); -+ pa_stream_set_suspended_callback (wwo->stream, PULSE_StreamSuspendedCallback, wwo); -+ -+ stream_flags = PA_STREAM_AUTO_TIMING_UPDATE; -+ -+#if PA_API_VERSION >= 12 -+ if (pa_context_get_server_protocol_version(PULSE_context) >= 15) { -+ pa_stream_set_started_callback(wwo->stream, WAVEOUT_StreamStartedCallback, wwo); -+ stream_flags |= PA_STREAM_ADJUST_LATENCY; -+ } else -+#endif -+ { -+ pa_stream_set_latency_update_callback(wwo->stream, WAVEOUT_StreamTimingInfoUpdateCallback, wwo); -+ } -+ -+ TRACE("Connecting stream for playback on %s.\n", wdo->device_name); -+ pa_threaded_mainloop_lock(PULSE_ml); -+ pa_stream_connect_playback(wwo->stream, wdo->device_name, NULL, stream_flags, NULL, NULL); -+ -+ for (;;) { -+ pa_context_state_t cstate = pa_context_get_state(PULSE_context); -+ pa_stream_state_t sstate = pa_stream_get_state(wwo->stream); -+ -+ if (cstate == PA_CONTEXT_FAILED || cstate == PA_CONTEXT_TERMINATED || -+ sstate == PA_STREAM_FAILED || sstate == PA_STREAM_TERMINATED) { -+ ERR("Failed to connect stream context object: %s\n", pa_strerror(pa_context_errno(PULSE_context))); -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ ret = MMSYSERR_NODRIVER; -+ goto exit; -+ } -+ -+ if (sstate == PA_STREAM_READY) -+ break; -+ -+ pa_threaded_mainloop_wait(PULSE_ml); -+ } -+ TRACE("(%p)->stream connected for playback.\n", wwo); -+ -+ PULSE_WaitForOperation(pa_stream_update_timing_info(wwo->stream, PULSE_StreamSuccessCallback, wwo)); -+ -+ wwo->timing_info = pa_stream_get_timing_info(wwo->stream); -+ assert(wwo->timing_info); -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ -+ wwo->hStartUpEvent = CreateEventW(NULL, FALSE, FALSE, NULL); -+ wwo->hThread = CreateThread(NULL, 0, wodPlayer, (LPVOID)wwo, 0, &(wwo->dwThreadID)); -+ if (wwo->hThread) -+ SetThreadPriority(wwo->hThread, THREAD_PRIORITY_TIME_CRITICAL); -+ else { -+ ERR("Thread creation for the wodPlayer failed!\n"); -+ ret = MMSYSERR_NOMEM; -+ goto exit; -+ } -+ WaitForSingleObject(wwo->hStartUpEvent, INFINITE); -+ CloseHandle(wwo->hStartUpEvent); -+ wwo->hStartUpEvent = INVALID_HANDLE_VALUE; -+ -+ -+ return wodPlayer_NotifyClient (wwo, WOM_OPEN, 0L, 0L); -+ -+exit: -+ if (!wwo) -+ return ret; -+ -+ if (wwo->hStartUpEvent != INVALID_HANDLE_VALUE) -+ CloseHandle(wwo->hStartUpEvent); -+ -+ if (wwo->msgRing.ring_buffer_size > 0) -+ PULSE_DestroyRingMessage(&wwo->msgRing); -+ -+ if (wwo->stream) { -+ if (pa_stream_get_state(wwo->stream) == PA_STREAM_READY) -+ pa_stream_disconnect(wwo->stream); -+ pa_stream_unref(wwo->stream); -+ wwo->stream = NULL; -+ } -+ HeapFree(GetProcessHeap(), 0, wwo); -+ -+ return ret; -+} -+ -+/************************************************************************** -+ * wodClose [internal] -+ */ -+static DWORD wodClose(WINE_WAVEINST *wwo) { -+ DWORD ret; -+ -+ TRACE("(%p);\n", wwo); -+ if (!wwo) { -+ WARN("Stream instance invalid.\n"); -+ return MMSYSERR_INVALHANDLE; -+ } -+ -+ if (wwo->state != WINE_WS_FAILED) { -+ if (wwo->lpQueuePtr && wwo->lpPlayPtr) { -+ WARN("buffers still playing !\n"); -+ return WAVERR_STILLPLAYING; -+ } -+ -+ pa_threaded_mainloop_lock(PULSE_ml); -+ PULSE_WaitForOperation(pa_stream_drain(wwo->stream, PULSE_StreamSuccessCallback, NULL)); -+ pa_stream_disconnect(wwo->stream); -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ -+ if (wwo->hThread != INVALID_HANDLE_VALUE) -+ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_CLOSING, 0, TRUE); -+ -+ PULSE_DestroyRingMessage(&wwo->msgRing); -+ } -+ -+ if (wwo->stream) -+ pa_stream_unref(wwo->stream); -+ ret = wodPlayer_NotifyClient(wwo, WOM_CLOSE, 0L, 0L); -+ -+ HeapFree(GetProcessHeap(), 0, wwo); -+ -+ return ret; -+} -+ -+/************************************************************************** -+ * wodWrite [internal] -+ */ -+static DWORD wodWrite(WINE_WAVEINST *wwo, LPWAVEHDR lpWaveHdr, DWORD dwSize) { -+ if (!wwo || wwo->state == WINE_WS_FAILED) { -+ WARN("Stream instance invalid.\n"); -+ return MMSYSERR_INVALHANDLE; -+ } -+ -+ if (lpWaveHdr->lpData == NULL || !(lpWaveHdr->dwFlags & WHDR_PREPARED)) -+ return WAVERR_UNPREPARED; -+ -+ if (lpWaveHdr->dwFlags & WHDR_INQUEUE) -+ return WAVERR_STILLPLAYING; -+ -+ lpWaveHdr->dwFlags &= ~WHDR_DONE; -+ lpWaveHdr->dwFlags |= WHDR_INQUEUE; -+ lpWaveHdr->lpNext = 0; -+ lpWaveHdr->reserved = 0; -+ -+ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_HEADER, (DWORD)lpWaveHdr, FALSE); -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * wodPause [internal] -+ */ -+static DWORD wodPause(WINE_WAVEINST *wwo) { -+ if (!wwo || wwo->state == WINE_WS_FAILED) { -+ WARN("Stream instance invalid.\n"); -+ return MMSYSERR_INVALHANDLE; -+ } -+ -+ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_PAUSING, 0, TRUE); -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * wodGetPosition [internal] -+ */ -+static DWORD wodGetPosition(WINE_WAVEINST *wwo, LPMMTIME lpTime, DWORD uSize) { -+ pa_usec_t time, time_temp; -+ size_t bytes, bytes_temp; -+ -+ if (!wwo || wwo->state == WINE_WS_FAILED) { -+ WARN("Stream instance invalid.\n"); -+ return MMSYSERR_INVALHANDLE; -+ } -+ -+ if (lpTime == NULL) return MMSYSERR_INVALPARAM; -+ -+ pa_threaded_mainloop_lock(PULSE_ml); -+ if (wwo->timing_info->read_index_corrupt || wwo->timing_info->write_index_corrupt) -+ PULSE_WaitForOperation(pa_stream_update_timing_info(wwo->stream, PULSE_StreamSuccessCallback, wwo)); -+ -+ bytes = wwo->timing_info->read_index; -+ time = pa_bytes_to_usec(bytes, &wwo->sample_spec); -+ -+ if (wwo->timing_info->playing) { -+ bytes += ((pa_timeval_age(&wwo->timing_info->timestamp) / 1000) * pa_bytes_per_second(&wwo->sample_spec)) / 1000; -+ bytes_temp = (time_temp = wwo->timing_info->sink_usec + wwo->timing_info->transport_usec)/1000 * pa_bytes_per_second(&wwo->sample_spec)/1000; -+ time += pa_timeval_age(&wwo->timing_info->timestamp); -+ } else { -+ time = 0; -+ time_temp = 0; -+ bytes_temp = 0; -+ } -+ -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ -+ if (wwo->last_reset < bytes) { -+ time -= pa_bytes_to_usec(wwo->last_reset, &wwo->sample_spec); -+ bytes -= wwo->last_reset; -+ } -+ if (bytes > bytes_temp) -+ bytes -= bytes_temp; -+ else -+ bytes = 0; -+ -+ if (time > time_temp) -+ time -= time_temp; -+ else -+ time = 0; -+ -+ bytes -= bytes % pa_frame_size(&wwo->sample_spec); -+ time /= 1000; /* In milliseconds now */ -+ -+ switch (lpTime->wType) { -+ case TIME_SAMPLES: -+ lpTime->u.sample = bytes / pa_frame_size(&wwo->sample_spec); -+ TRACE("TIME_SAMPLES=%u\n", lpTime->u.sample); -+ break; -+ case TIME_MS: -+ lpTime->u.ms = time; -+ TRACE("TIME_MS=%u\n", lpTime->u.ms); -+ break; -+ case TIME_SMPTE: -+ lpTime->u.smpte.fps = 30; -+ lpTime->u.smpte.sec = time/1000; -+ lpTime->u.smpte.min = lpTime->u.smpte.sec / 60; -+ lpTime->u.smpte.sec -= 60 * lpTime->u.smpte.min; -+ lpTime->u.smpte.hour = lpTime->u.smpte.min / 60; -+ lpTime->u.smpte.min -= 60 * lpTime->u.smpte.hour; -+ lpTime->u.smpte.frame = time / lpTime->u.smpte.fps * 1000; -+ TRACE("TIME_SMPTE=%02u:%02u:%02u:%02u\n", -+ lpTime->u.smpte.hour, lpTime->u.smpte.min, -+ lpTime->u.smpte.sec, lpTime->u.smpte.frame); -+ break; -+ default: -+ WARN("Format %d not supported, using TIME_BYTES !\n", lpTime->wType); -+ lpTime->wType = TIME_BYTES; -+ /* fall through */ -+ case TIME_BYTES: -+ lpTime->u.cb = bytes; -+ TRACE("TIME_BYTES=%u\n", lpTime->u.cb); -+ break; -+ } -+ return MMSYSERR_NOERROR; -+} -+/************************************************************************** -+ * wodBreakLoop [internal] -+ */ -+static DWORD wodBreakLoop(WINE_WAVEINST *wwo) { -+ if (!wwo || wwo->state == WINE_WS_FAILED) { -+ WARN("Stream instance invalid.\n"); -+ return MMSYSERR_INVALHANDLE; -+ } -+ -+ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_BREAKLOOP, 0, TRUE); -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * wodGetDevCaps [internal] -+ */ -+static DWORD wodGetDevCaps(DWORD wDevID, LPWAVEOUTCAPSW lpCaps, DWORD dwSize) { -+ TRACE("(%u, %p, %u);\n", wDevID, lpCaps, dwSize); -+ -+ if (lpCaps == NULL) return MMSYSERR_NOTENABLED; -+ -+ if (wDevID >= PULSE_WodNumDevs) { -+ TRACE("Asked for device %d, but only %d known!\n", wDevID, PULSE_WodNumDevs); -+ return MMSYSERR_INVALHANDLE; -+ } -+ -+ memcpy(lpCaps, &(WOutDev[wDevID].caps.out), min(dwSize, sizeof(*lpCaps))); -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * wodGetNumDevs [internal] -+ * Context-sanity check here, as if we respond with 0, WINE will move on -+ * to the next waveout driver. -+ */ -+static DWORD wodGetNumDevs() { -+ if (!PULSE_ml || !PULSE_context || pa_context_get_state(PULSE_context) != PA_CONTEXT_READY) -+ return 0; -+ -+ return PULSE_WodNumDevs; -+} -+ -+/************************************************************************** -+ * wodGetVolume [internal] -+ */ -+static DWORD wodGetVolume(WINE_WAVEINST *wwo, LPDWORD lpdwVol) { -+ float value1, value2; -+ DWORD wleft, wright; -+ -+ if (!wwo || wwo->state == WINE_WS_FAILED) { -+ WARN("Stream instance invalid.\n"); -+ return MMSYSERR_INVALHANDLE; -+ } -+ -+ TRACE("(%p, %p);\n", wwo, lpdwVol); -+ -+ if (lpdwVol == NULL) -+ return MMSYSERR_NOTENABLED; -+ -+ pa_threaded_mainloop_lock(PULSE_ml); -+ if (wwo->stream && PULSE_context && pa_context_get_state(PULSE_context) == PA_CONTEXT_READY && -+ pa_stream_get_state(wwo->stream) == PA_STREAM_READY) { -+ PULSE_WaitForOperation(pa_context_get_sink_input_info(PULSE_context, pa_stream_get_index(wwo->stream), WAVEOUT_SinkInputInfoCallback, wwo)); -+ } -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ -+ -+ if (wwo->volume.channels == 2) { -+ value1 = pa_sw_volume_to_dB(wwo->volume.values[0]); -+ value2 = pa_sw_volume_to_dB(wwo->volume.values[1]); -+ } else { -+ value1 = pa_sw_volume_to_dB(pa_cvolume_avg(&wwo->volume)); -+ value2 = 0; -+ } -+ -+ if (value1 < -60) -+ wleft = 0; -+ else -+ -+ if (value2 < -60) -+ wright = 0; -+ else -+ wright = 0xFFFFl - ((value2 / -60)*(float)0xFFFFl); -+ -+ if (wleft > 0xFFFFl) -+ wleft = 0xFFFFl; -+ if (wright > 0xFFFFl) -+ wright = 0xFFFFl; -+ -+ *lpdwVol = (WORD)wleft + (WORD)(wright << 16); -+ -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * wodSetVolume [internal] -+ */ -+static DWORD wodSetVolume(WINE_WAVEINST *wwo, DWORD dwParam1) { -+ double value1, value2; -+ -+ TRACE("(%p, %08X);\n", wwo, dwParam1); -+ if (!wwo || wwo->state == WINE_WS_FAILED) { -+ WARN("Stream instance invalid.\n"); -+ return MMSYSERR_INVALHANDLE; -+ } -+ -+ /* waveOut volumes are /supposed/ to be logarithmic */ -+ value1 = LOWORD(dwParam1) == 0 ? PA_DECIBEL_MININFTY : ((float)(0xFFFFl - LOWORD(dwParam1))/0xFFFFl) * -60.0; -+ value2 = HIWORD(dwParam1) == 0 ? PA_DECIBEL_MININFTY : ((float)(0xFFFFl - HIWORD(dwParam1))/0xFFFFl) * -60.0; -+ -+ if (wwo->sample_spec.channels == 2) { -+ wwo->volume.channels = 2; -+ wwo->volume.values[0] = pa_sw_volume_from_dB(value1); -+ wwo->volume.values[1] = pa_sw_volume_from_dB(value2); -+ } else { -+ if (value1 != value2) FIXME("Non-stereo streams can't pan!\n"); -+ wwo->volume.channels = wwo->sample_spec.channels; -+ pa_cvolume_set(&wwo->volume, wwo->volume.channels, pa_sw_volume_from_dB(max(value1, value2))); -+ } -+ -+ if (TRACE_ON(wave)) { -+ char s[PA_CVOLUME_SNPRINT_MAX]; -+ pa_cvolume_snprint(s, PA_CVOLUME_SNPRINT_MAX, &wwo->volume); -+ TRACE("%s\n", s); -+ } -+ -+ pa_threaded_mainloop_lock(PULSE_ml); -+ if (!wwo->stream || !PULSE_context || pa_context_get_state(PULSE_context) != PA_CONTEXT_READY || -+ pa_stream_get_state(wwo->stream) != PA_STREAM_READY || !pa_cvolume_valid(&wwo->volume)) { -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ return MMSYSERR_NOERROR; -+ } -+ -+ PULSE_WaitForOperation(pa_context_set_sink_input_volume(PULSE_context, -+ pa_stream_get_index(wwo->stream), &wwo->volume, -+ PULSE_ContextSuccessCallback, wwo)); -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * wodRestart [internal] -+ */ -+static DWORD wodRestart(WINE_WAVEINST *wwo) { -+ if (!wwo || wwo->state == WINE_WS_FAILED) { -+ WARN("Stream instance invalid.\n"); -+ return MMSYSERR_INVALHANDLE; -+ } -+ -+ if (wwo->state == WINE_WS_PAUSED) -+ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_RESTARTING, 0, TRUE); -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * wodReset [internal] -+ */ -+static DWORD wodReset(WINE_WAVEINST *wwo) { -+ if (!wwo || wwo->state == WINE_WS_FAILED) { -+ WARN("Stream instance invalid.\n"); -+ return MMSYSERR_INVALHANDLE; -+ } -+ -+ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_RESETTING, 0, TRUE); -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * wodDevInterfaceSize [internal] -+ */ -+static DWORD wodDevInterfaceSize(UINT wDevID, LPDWORD dwParam1) { -+ -+ *dwParam1 = MultiByteToWideChar(CP_ACP, 0, WOutDev[wDevID].interface_name, -1, NULL, 0) * sizeof(WCHAR); -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * wodDevInterface [internal] -+ */ -+static DWORD wodDevInterface(UINT wDevID, PWCHAR dwParam1, DWORD dwParam2) { -+ if (dwParam2 >= MultiByteToWideChar(CP_ACP, 0, WOutDev[wDevID].interface_name, -1, -+ NULL, 0 ) * sizeof(WCHAR)) -+ { -+ MultiByteToWideChar(CP_ACP, 0, WOutDev[wDevID].interface_name, -1, -+ dwParam1, dwParam2 / sizeof(WCHAR)); -+ return MMSYSERR_NOERROR; -+ } -+ return MMSYSERR_INVALPARAM; -+} -+ -+/************************************************************************** -+ * wodMessage (WINEPULSE.@) -+ */ -+DWORD WINAPI PULSE_wodMessage(UINT wDevID, UINT wMsg, DWORD dwUser, -+ DWORD dwParam1, DWORD dwParam2) { -+/* -+ TRACE("(%u, %s, %08X, %08X, %08X);\n", -+ wDevID, PULSE_getMessage(wMsg), dwUser, dwParam1, dwParam2); -+*/ -+ switch (wMsg) { -+ case DRVM_INIT: -+ case DRVM_EXIT: -+ case DRVM_ENABLE: -+ case DRVM_DISABLE: -+ /* FIXME: Pretend this is supported */ -+ return 0; -+ case WODM_OPEN: return wodOpen (wDevID, (LPDWORD)dwUser, (LPWAVEOPENDESC)dwParam1, dwParam2); -+ case WODM_CLOSE: return wodClose ((WINE_WAVEINST*)dwUser); -+ case WODM_WRITE: return wodWrite ((WINE_WAVEINST*)dwUser, (LPWAVEHDR)dwParam1, dwParam2); -+ case WODM_PAUSE: return wodPause ((WINE_WAVEINST*)dwUser); -+ case WODM_GETPOS: return wodGetPosition ((WINE_WAVEINST*)dwUser, (LPMMTIME)dwParam1, dwParam2); -+ case WODM_BREAKLOOP: return wodBreakLoop ((WINE_WAVEINST*)dwUser); -+ case WODM_PREPARE: return MMSYSERR_NOTSUPPORTED; -+ case WODM_UNPREPARE: return MMSYSERR_NOTSUPPORTED; -+ case WODM_GETDEVCAPS: return wodGetDevCaps (wDevID, (LPWAVEOUTCAPSW)dwParam1, dwParam2); -+ case WODM_GETNUMDEVS: return wodGetNumDevs (); -+ case WODM_GETPITCH: return MMSYSERR_NOTSUPPORTED; -+ case WODM_SETPITCH: return MMSYSERR_NOTSUPPORTED; -+ case WODM_GETPLAYBACKRATE: return MMSYSERR_NOTSUPPORTED; /* support if theoretically possible */ -+ case WODM_SETPLAYBACKRATE: return MMSYSERR_NOTSUPPORTED; /* since pulseaudio 0.9.8 */ -+ case WODM_GETVOLUME: return wodGetVolume ((WINE_WAVEINST*)dwUser, (LPDWORD)dwParam1); -+ case WODM_SETVOLUME: return wodSetVolume ((WINE_WAVEINST*)dwUser, dwParam1); -+ case WODM_RESTART: return wodRestart ((WINE_WAVEINST*)dwUser); -+ case WODM_RESET: return wodReset ((WINE_WAVEINST*)dwUser); -+ case DRV_QUERYDEVICEINTERFACESIZE: return wodDevInterfaceSize (wDevID, (LPDWORD)dwParam1); -+ case DRV_QUERYDEVICEINTERFACE: return wodDevInterface (wDevID, (PWCHAR)dwParam1, dwParam2); -+ case DRV_QUERYDSOUNDIFACE: return wodDsCreate (wDevID, (PIDSDRIVER*)dwParam1); -+ case DRV_QUERYDSOUNDDESC: return wodDsDesc (wDevID, (PDSDRIVERDESC)dwParam1); -+ default: -+ FIXME("unknown message %d!\n", wMsg); -+ } -+ return MMSYSERR_NOTSUPPORTED; -+} -+ -+#else /* !HAVE_PULSEAUDIO */ -+ -+/************************************************************************** -+ * wodMessage (WINEPULSE.@) -+ */ -+DWORD WINAPI PULSE_wodMessage(WORD wDevID, WORD wMsg, DWORD dwUser, -+ DWORD dwParam1, DWORD dwParam2) { -+ FIXME("(%u, %04X, %08X, %08X, %08X):stub\n", wDevID, wMsg, dwUser, -+ dwParam1, dwParam2); -+ return MMSYSERR_NOTENABLED; -+} -+ -+#endif /* HAVE_PULSEAUDIO */ -diff --git a/dlls/winepulse.drv/winepulse.drv.spec b/dlls/winepulse.drv/winepulse.drv.spec -new file mode 100644 -index 0000000..1b49460 ---- /dev/null -+++ b/dlls/winepulse.drv/winepulse.drv.spec -@@ -0,0 +1,3 @@ -+@ stdcall -private DriverProc(long long long long long long) PULSE_DriverProc -+@ stdcall -private wodMessage(long long long long long long) PULSE_wodMessage -+@ stdcall -private widMessage(long long long long long long) PULSE_widMessage -diff --git a/dlls/winepulse.drv/winepulse.h b/dlls/winepulse.drv/winepulse.h -new file mode 100644 -index 0000000..6270e04 ---- /dev/null -+++ b/dlls/winepulse.drv/winepulse.h -@@ -0,0 +1,225 @@ -+/* Definitions for PulseAudio Wine Driver -+ * -+ * Copyright 2009 Arthur Taylor -+ * -+ * 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, write to the Free Software -+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA -+ */ -+ -+#ifndef __WINE_CONFIG_H -+# error You must include config.h to use this header -+#endif -+ -+#if defined(HAVE_PULSEAUDIO) && !defined(__WINEPULSE_H) -+#define __WINEPULSE_H -+ -+#include "mmreg.h" -+#include "dsound.h" -+#include "dsdriver.h" -+ -+#include "ks.h" -+#include "ksmedia.h" -+#include "ksguid.h" -+ -+#include -+ -+/* state diagram for waveOut writing: -+ * -+ * +---------+-------------+---------------+---------------------------------+ -+ * | state | function | event | new state | -+ * +---------+-------------+---------------+---------------------------------+ -+ * | | open() | | STOPPED | -+ * | PAUSED | write() | | PAUSED | -+ * | STOPPED | write() | | PLAYING | -+ * | PLAYING | write() | HEADER | PLAYING | -+ * | (other) | write() | | | -+ * | (any) | pause() | PAUSING | PAUSED | -+ * | PAUSED | restart() | RESTARTING | PLAYING (if no thrd => STOPPED) | -+ * | (any) | reset() | RESETTING | STOPPED | -+ * | (any) | close() | CLOSING | CLOSED | -+ * +---------+-------------+---------------+---------------------------------+ -+ */ -+ -+/* states of the playing device */ -+#define WINE_WS_PLAYING 1 -+#define WINE_WS_PAUSED 2 -+#define WINE_WS_STOPPED 3 -+#define WINE_WS_CLOSED 4 -+#define WINE_WS_FAILED 5 -+ -+#define PULSE_ALL_FORMATS \ -+ WAVE_FORMAT_1M08 | /* Mono 11025Hz 8-bit */\ -+ WAVE_FORMAT_1M16 | /* Mono 11025Hz 16-bit */\ -+ WAVE_FORMAT_1S08 | /* Stereo 11025Hz 8-bit */\ -+ WAVE_FORMAT_1S16 | /* Stereo 11025Hz 16-bit */\ -+ WAVE_FORMAT_2M08 | /* Mono 22050Hz 8-bit */\ -+ WAVE_FORMAT_2M16 | /* Mono 22050Hz 16-bit */\ -+ WAVE_FORMAT_2S08 | /* Stereo 22050Hz 8-bit */\ -+ WAVE_FORMAT_2S16 | /* Stereo 22050Hz 16-bit */\ -+ WAVE_FORMAT_4M08 | /* Mono 44100Hz 8-bit */\ -+ WAVE_FORMAT_4M16 | /* Mono 44100Hz 16-bit */\ -+ WAVE_FORMAT_4S08 | /* Stereo 44100Hz 8-bit */\ -+ WAVE_FORMAT_4S16 | /* Stereo 44100Hz 16-bit */\ -+ WAVE_FORMAT_48M08 | /* Mono 48000Hz 8-bit */\ -+ WAVE_FORMAT_48S08 | /* Stereo 48000Hz 8-bit */\ -+ WAVE_FORMAT_48M16 | /* Mono 48000Hz 16-bit */\ -+ WAVE_FORMAT_48S16 | /* Stereo 48000Hz 16-bit */\ -+ WAVE_FORMAT_96M08 | /* Mono 96000Hz 8-bit */\ -+ WAVE_FORMAT_96S08 | /* Stereo 96000Hz 8-bit */\ -+ WAVE_FORMAT_96M16 | /* Mono 96000Hz 16-bit */\ -+ WAVE_FORMAT_96S16 /* Stereo 96000Hz 16-bit */ -+ -+/* events to be sent to device */ -+enum win_wm_message { -+ WINE_WM_PAUSING = WM_USER + 1, WINE_WM_RESTARTING, WINE_WM_RESETTING, WINE_WM_HEADER, -+ WINE_WM_BREAKLOOP, WINE_WM_CLOSING, WINE_WM_STARTING, WINE_WM_STOPPING, WINE_WM_XRUN, WINE_WM_FEED -+}; -+ -+typedef struct { -+ enum win_wm_message msg; /* message identifier */ -+ DWORD param; /* parameter for this message */ -+ HANDLE hEvent; /* if message is synchronous, handle of event for synchro */ -+} PULSE_MSG; -+ -+/* implement an in-process message ring for better performance -+ * (compared to passing thru the server) -+ * this ring will be used by the input (resp output) record (resp playback) routine -+ */ -+typedef struct { -+ PULSE_MSG * messages; -+ int ring_buffer_size; -+ int msg_tosave; -+ int msg_toget; -+/* Either pipe or event is used, but that is defined in pulse.c, -+ * since this is a global header we define both here */ -+ int msg_pipe[2]; -+ HANDLE msg_event; -+ CRITICAL_SECTION msg_crst; -+} PULSE_MSG_RING; -+ -+typedef struct WINE_WAVEDEV WINE_WAVEDEV; -+typedef struct WINE_WAVEINST WINE_WAVEINST; -+typedef struct IDsDriverImpl IDsDriverImpl; -+typedef struct IDsDriverBufferImpl IDsDriverBufferImpl; -+ -+struct IDsDriverImpl { -+ /* IUnknown fields */ -+ const IDsDriverVtbl *lpVtbl; -+ LONG ref; -+ -+ IDsDriverBufferImpl *primary; -+ UINT wDevID; -+}; -+ -+struct IDsDriverBufferImpl { -+ const IDsDriverBufferVtbl *lpVtbl; -+ IDsDriverImpl* drv; -+ LONG ref; -+ pa_stream *stream; -+ pa_sample_spec sample_spec; -+ pa_cvolume volume; -+ -+ PBYTE buffer; -+ DWORD buffer_length; -+ DWORD buffer_read_offset; -+ DWORD buffer_play_offset; -+ DWORD fraglen; -+}; -+ -+/* Per-playback/record device */ -+struct WINE_WAVEDEV { -+ char interface_name[MAXPNAMELEN * 2]; -+ char *device_name; -+ pa_cvolume volume; -+ -+ union { -+ WAVEOUTCAPSW out; -+ WAVEINCAPSW in; -+ } caps; -+ -+ /* DirectSound stuff */ -+ DSDRIVERDESC ds_desc; -+ DSDRIVERCAPS ds_caps; -+}; -+ -+/* Per-playback/record instance */ -+struct WINE_WAVEINST { -+ volatile INT state; /* one of the WINE_WS_ manifest constants */ -+ WAVEOPENDESC waveDesc; -+ WORD wFlags; -+ -+ /* PulseAudio specific data */ -+ pa_stream *stream; /* The PulseAudio stream */ -+ const pa_timing_info *timing_info; /* The timing info structure for the stream */ -+ pa_sample_spec sample_spec; /* Sample spec of this stream / device */ -+ pa_cvolume volume; /* Software volume of the stream */ -+ pa_buffer_attr buffer_attr; /* Buffer attribute, may not be used */ -+ -+ /* waveIn / waveOut wavaHdr */ -+ LPWAVEHDR lpQueuePtr; /* Start of queued WAVEHDRs (waiting to be notified) */ -+ LPWAVEHDR lpPlayPtr; /* Start of not yet fully written buffers */ -+ DWORD dwPartialOffset; /* Offset of not yet written bytes in lpPlayPtr */ -+ LPWAVEHDR lpLoopPtr; /* Pointer of first buffer in loop, if any */ -+ DWORD dwLoops; /* Private copy of loop counter */ -+ -+ /* Virtual stream positioning */ -+ DWORD last_reset; /* When the last reset occured, as pa stream time isn't reset */ -+ BOOL is_releasing; /* Whether we are releasing wavehdrs */ -+ struct timeval started_releasing; /* When wavehdr releasing started, for comparison to queued written wavehdrs */ -+ DWORD releasing_offset; /* How much audio has been released prior when releasing started in this instance */ -+ -+ /* waveIn specific */ -+ const void *buffer; /* Pointer to the latest data fragment for recording streams */ -+ DWORD buffer_length; /* How large the latest data fragment is */ -+ DWORD buffer_read_offset; /* How far into latest data fragment we last read */ -+ -+ /* Thread communication and synchronization stuff */ -+ HANDLE hStartUpEvent; -+ HANDLE hThread; -+ DWORD dwThreadID; -+ PULSE_MSG_RING msgRing; -+}; -+ -+/* We establish one context per instance, so make it global to the lib */ -+pa_context *PULSE_context; /* Connection Context */ -+pa_threaded_mainloop *PULSE_ml; /* PA Runtime information */ -+ -+/* WaveIn / WaveOut devices */ -+WINE_WAVEDEV *WOutDev; -+WINE_WAVEDEV *WInDev; -+DWORD PULSE_WodNumDevs; -+DWORD PULSE_WidNumDevs; -+ -+/* pulse.c */ -+void PULSE_WaitForOperation(pa_operation *o); -+void PULSE_StreamSuccessCallback(pa_stream *s, int success, void *userdata); -+void PULSE_StreamStateCallback(pa_stream *s, void *userdata); -+void PULSE_StreamUnderflowCallback(pa_stream *s, void *userdata); -+void PULSE_StreamOverflowCallback(pa_stream *s, void *userdata); -+void PULSE_StreamSuspendedCallback(pa_stream *s, void *userdata); -+void PULSE_StreamMovedCallback(pa_stream *s, void *userdata); -+void PULSE_ContextSuccessCallback(pa_context *c, int success, void *userdata); -+BOOL PULSE_SetupFormat(LPWAVEFORMATEX wf, pa_sample_spec *ss); -+int PULSE_InitRingMessage(PULSE_MSG_RING* omr); -+int PULSE_DestroyRingMessage(PULSE_MSG_RING* omr); -+void PULSE_ResetRingMessage(PULSE_MSG_RING* omr); -+void PULSE_WaitRingMessage(PULSE_MSG_RING* omr, DWORD sleep); -+int PULSE_AddRingMessage(PULSE_MSG_RING* omr, enum win_wm_message msg, DWORD param, BOOL wait); -+int PULSE_RetrieveRingMessage(PULSE_MSG_RING* omr, enum win_wm_message *msg, DWORD *param, HANDLE *hEvent); -+const char * PULSE_getCmdString(enum win_wm_message msg); -+ -+/* dsoutput.c */ -+DWORD wodDsCreate(UINT wDevID, PIDSDRIVER* drv); -+DWORD wodDsDesc(UINT wDevID, PDSDRIVERDESC desc); -+#endif diff --git a/winepulse-0.28.patch b/winepulse-0.28.patch new file mode 100644 index 0000000..b70484f --- /dev/null +++ b/winepulse-0.28.patch @@ -0,0 +1,2725 @@ +diff --git a/dlls/winepulse.drv/Makefile.in b/dlls/winepulse.drv/Makefile.in +new file mode 100644 +index 0000000..c99c1da +--- /dev/null ++++ b/dlls/winepulse.drv/Makefile.in +@@ -0,0 +1,15 @@ ++TOPSRCDIR = @top_srcdir@ ++TOPOBJDIR = ../.. ++SRCDIR = @srcdir@ ++VPATH = @srcdir@ ++MODULE = winepulse.drv ++IMPORTS = winmm user32 kernel32 ++EXTRALIBS = @PULSELIBS@ ++ ++C_SRCS = waveout.c \ ++ wavein.c \ ++ pulse.c ++ ++@MAKE_DLL_RULES@ ++ ++@DEPENDENCIES@ # everything below this line is overwritten by make depend +diff --git a/dlls/winepulse.drv/pulse.c b/dlls/winepulse.drv/pulse.c +new file mode 100644 +index 0000000..392ac0b +--- /dev/null ++++ b/dlls/winepulse.drv/pulse.c +@@ -0,0 +1,794 @@ ++/* ++ * Wine Driver for PulseAudio ++ * http://pulseaudio.org/ ++ * ++ * Copyright 2009 Arthur Taylor ++ * ++ * Contains code from other wine sound drivers. ++ * ++ * 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, write to the Free Software ++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA ++ */ ++ ++#include "config.h" ++ ++#include ++#include ++ ++#include "windef.h" ++#include "winbase.h" ++#include "wingdi.h" ++#include "winuser.h" ++#include "winreg.h" ++#include "mmddk.h" ++#include "ks.h" ++#include "ksguid.h" ++#include "ksmedia.h" ++ ++#ifdef HAVE_UNISTD_H ++# include ++#endif ++#include ++ ++#ifdef HAVE_PULSEAUDIO ++ ++#include "wine/unicode.h" ++#include "wine/debug.h" ++#include "wine/library.h" ++ ++#include ++#include ++WINE_DEFAULT_DEBUG_CHANNEL(wave); ++ ++/* These strings used only for tracing */ ++const char * PULSE_getCmdString(enum win_wm_message msg) { ++ static char unknown[32]; ++#define MSG_TO_STR(x) case x: return #x ++ switch(msg) { ++ MSG_TO_STR(WINE_WM_PAUSING); ++ MSG_TO_STR(WINE_WM_RESTARTING); ++ MSG_TO_STR(WINE_WM_RESETTING); ++ MSG_TO_STR(WINE_WM_HEADER); ++ MSG_TO_STR(WINE_WM_BREAKLOOP); ++ MSG_TO_STR(WINE_WM_CLOSING); ++ MSG_TO_STR(WINE_WM_STARTING); ++ MSG_TO_STR(WINE_WM_STOPPING); ++ MSG_TO_STR(WINE_WM_XRUN); ++ MSG_TO_STR(WINE_WM_FEED); ++ } ++#undef MSG_TO_STR ++ sprintf(unknown, "UNKNOWN(0x%08x)", msg); ++ return unknown; ++} ++ ++/*======================================================================* ++ * Ring Buffer Functions - copied from winealsa.drv * ++ *======================================================================*/ ++ ++/* unless someone makes a wineserver kernel module, Unix pipes are faster than win32 events */ ++#define USE_PIPE_SYNC ++ ++#ifdef USE_PIPE_SYNC ++#define INIT_OMR(omr) do { if (pipe(omr->msg_pipe) < 0) { omr->msg_pipe[0] = omr->msg_pipe[1] = -1; } } while (0) ++#define CLOSE_OMR(omr) do { close(omr->msg_pipe[0]); close(omr->msg_pipe[1]); } while (0) ++#define SIGNAL_OMR(omr) do { int x = 0; write((omr)->msg_pipe[1], &x, sizeof(x)); } while (0) ++#define CLEAR_OMR(omr) do { int x = 0; read((omr)->msg_pipe[0], &x, sizeof(x)); } while (0) ++#define RESET_OMR(omr) do { } while (0) ++#define WAIT_OMR(omr, sleep) \ ++ do { struct pollfd pfd; pfd.fd = (omr)->msg_pipe[0]; \ ++ pfd.events = POLLIN; poll(&pfd, 1, sleep); } while (0) ++#else ++#define INIT_OMR(omr) do { omr->msg_event = CreateEventW(NULL, FALSE, FALSE, NULL); } while (0) ++#define CLOSE_OMR(omr) do { CloseHandle(omr->msg_event); } while (0) ++#define SIGNAL_OMR(omr) do { SetEvent((omr)->msg_event); } while (0) ++#define CLEAR_OMR(omr) do { } while (0) ++#define RESET_OMR(omr) do { ResetEvent((omr)->msg_event); } while (0) ++#define WAIT_OMR(omr, sleep) \ ++ do { WaitForSingleObject((omr)->msg_event, sleep); } while (0) ++#endif ++ ++#define PULSE_RING_BUFFER_INCREMENT 64 ++ ++/****************************************************************** ++ * PULSE_InitRingMessage ++ * ++ * Initialize the ring of messages for passing between driver's caller ++ * and playback/record thread ++ */ ++int PULSE_InitRingMessage(PULSE_MSG_RING* omr) ++{ ++ omr->msg_toget = 0; ++ omr->msg_tosave = 0; ++ INIT_OMR(omr); ++ omr->ring_buffer_size = PULSE_RING_BUFFER_INCREMENT; ++ omr->messages = HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,omr->ring_buffer_size * sizeof(PULSE_MSG)); ++ ++ InitializeCriticalSection(&omr->msg_crst); ++ omr->msg_crst.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": PULSE_MSG_RING.msg_crst"); ++ return 0; ++} ++ ++/****************************************************************** ++ * PULSE_DestroyRingMessage ++ * ++ */ ++int PULSE_DestroyRingMessage(PULSE_MSG_RING* omr) ++{ ++ CLOSE_OMR(omr); ++ HeapFree(GetProcessHeap(),0,omr->messages); ++ omr->messages = NULL; ++ omr->ring_buffer_size = PULSE_RING_BUFFER_INCREMENT; ++ omr->msg_crst.DebugInfo->Spare[0] = 0; ++ DeleteCriticalSection(&omr->msg_crst); ++ return 0; ++} ++/****************************************************************** ++ * PULSE_ResetRingMessage ++ * ++ */ ++void PULSE_ResetRingMessage(PULSE_MSG_RING* omr) ++{ ++ RESET_OMR(omr); ++} ++ ++/****************************************************************** ++ * PULSE_WaitRingMessage ++ * ++ */ ++void PULSE_WaitRingMessage(PULSE_MSG_RING* omr, DWORD sleep) ++{ ++ WAIT_OMR(omr, sleep); ++} ++ ++/****************************************************************** ++ * PULSE_AddRingMessage ++ * ++ * Inserts a new message into the ring (should be called from DriverProc derived routines) ++ */ ++int PULSE_AddRingMessage(PULSE_MSG_RING* omr, enum win_wm_message msg, DWORD param, BOOL wait) ++{ ++ HANDLE hEvent = INVALID_HANDLE_VALUE; ++ ++ EnterCriticalSection(&omr->msg_crst); ++ if ((omr->msg_toget == ((omr->msg_tosave + 1) % omr->ring_buffer_size))) ++ { ++ int old_ring_buffer_size = omr->ring_buffer_size; ++ omr->ring_buffer_size += PULSE_RING_BUFFER_INCREMENT; ++ omr->messages = HeapReAlloc(GetProcessHeap(),0,omr->messages, omr->ring_buffer_size * sizeof(PULSE_MSG)); ++ /* Now we need to rearrange the ring buffer so that the new ++ buffers just allocated are in between omr->msg_tosave and ++ omr->msg_toget. ++ */ ++ if (omr->msg_tosave < omr->msg_toget) ++ { ++ memmove(&(omr->messages[omr->msg_toget + PULSE_RING_BUFFER_INCREMENT]), ++ &(omr->messages[omr->msg_toget]), ++ sizeof(PULSE_MSG)*(old_ring_buffer_size - omr->msg_toget) ++ ); ++ omr->msg_toget += PULSE_RING_BUFFER_INCREMENT; ++ } ++ } ++ if (wait) ++ { ++ hEvent = CreateEventW(NULL, FALSE, FALSE, NULL); ++ if (hEvent == INVALID_HANDLE_VALUE) ++ { ++ ERR("can't create event !?\n"); ++ LeaveCriticalSection(&omr->msg_crst); ++ return 0; ++ } ++ /* fast messages have to be added at the start of the queue */ ++ omr->msg_toget = (omr->msg_toget + omr->ring_buffer_size - 1) % omr->ring_buffer_size; ++ ++ omr->messages[omr->msg_toget].msg = msg; ++ omr->messages[omr->msg_toget].param = param; ++ omr->messages[omr->msg_toget].hEvent = hEvent; ++ } ++ else ++ { ++ omr->messages[omr->msg_tosave].msg = msg; ++ omr->messages[omr->msg_tosave].param = param; ++ omr->messages[omr->msg_tosave].hEvent = INVALID_HANDLE_VALUE; ++ omr->msg_tosave = (omr->msg_tosave + 1) % omr->ring_buffer_size; ++ } ++ LeaveCriticalSection(&omr->msg_crst); ++ /* signal a new message */ ++ SIGNAL_OMR(omr); ++ if (wait) ++ { ++ /* wait for playback/record thread to have processed the message */ ++ WaitForSingleObject(hEvent, INFINITE); ++ CloseHandle(hEvent); ++ } ++ return 1; ++} ++ ++/****************************************************************** ++ * PULSE_RetrieveRingMessage ++ * ++ * Get a message from the ring. Should be called by the playback/record thread. ++ */ ++int PULSE_RetrieveRingMessage(PULSE_MSG_RING* omr, ++ enum win_wm_message *msg, DWORD *param, HANDLE *hEvent) ++{ ++ EnterCriticalSection(&omr->msg_crst); ++ ++ if (omr->msg_toget == omr->msg_tosave) /* buffer empty ? */ ++ { ++ LeaveCriticalSection(&omr->msg_crst); ++ return 0; ++ } ++ ++ *msg = omr->messages[omr->msg_toget].msg; ++ omr->messages[omr->msg_toget].msg = 0; ++ *param = omr->messages[omr->msg_toget].param; ++ *hEvent = omr->messages[omr->msg_toget].hEvent; ++ omr->msg_toget = (omr->msg_toget + 1) % omr->ring_buffer_size; ++ CLEAR_OMR(omr); ++ LeaveCriticalSection(&omr->msg_crst); ++ return 1; ++} ++ ++/************************************************************************** ++ * Utility Functions ++ *************************************************************************/ ++ ++/****************************************************************** ++ * PULSE_SetupFormat ++ * ++ * Checks to see if the audio format in wf is supported, and if so set up the ++ * pa_sample_spec at ss to that format. ++ */ ++BOOL PULSE_SetupFormat(LPWAVEFORMATEX wf, pa_sample_spec *ss) { ++ WAVEFORMATEXTENSIBLE *wfex; ++ ++ ss->channels = wf->nChannels; ++ ss->rate = wf->nSamplesPerSec; ++ ss->format = PA_SAMPLE_INVALID; ++ ++ if (ss->rate < DSBFREQUENCY_MIN || ss->rate > DSBFREQUENCY_MAX) return FALSE; ++ ++ switch (wf->wFormatTag) { ++ case WAVE_FORMAT_PCM: ++ /* MSDN says that for WAVE_FORMAT_PCM, nChannels must be 1 or 2 and ++ * wBitsPerSample must be 8 or 16, yet other values are used by some ++ * applications in the wild for surround. */ ++ if (ss->channels > 6 || ss->channels < 1) return FALSE; ++ ss->format = wf->wBitsPerSample == 8 ? PA_SAMPLE_U8 ++ : wf->wBitsPerSample == 16 ? PA_SAMPLE_S16NE ++ : wf->wBitsPerSample == 32 ? PA_SAMPLE_S32NE ++ : PA_SAMPLE_INVALID; ++ break; ++ ++ case WAVE_FORMAT_MULAW: ++ if (wf->wBitsPerSample == 8) ss->format = PA_SAMPLE_ULAW; ++ break; ++ ++ case WAVE_FORMAT_ALAW: ++ if (wf->wBitsPerSample == 8) ss->format = PA_SAMPLE_ALAW; ++ break; ++ ++ case WAVE_FORMAT_EXTENSIBLE: ++ if (wf->cbSize > 22) return FALSE; ++ if (ss->channels < 1 || ss->channels > 6) return FALSE; ++ wfex = (WAVEFORMATEXTENSIBLE *)wf; ++ if (IsEqualGUID(&wfex->SubFormat, &KSDATAFORMAT_SUBTYPE_PCM)) { ++ if (wf->wBitsPerSample == wfex->Samples.wValidBitsPerSample) { ++ ss->format = wf->wBitsPerSample == 8 ? PA_SAMPLE_U8 ++ : wf->wBitsPerSample == 16 ? PA_SAMPLE_S16NE ++ : wf->wBitsPerSample == 32 ? PA_SAMPLE_S32NE ++ : PA_SAMPLE_INVALID; ++ } else { ++ return FALSE; ++ } ++ } else if (wf->wBitsPerSample != wfex->Samples.wValidBitsPerSample) { ++ return FALSE; ++ } else if ((IsEqualGUID(&wfex->SubFormat, &KSDATAFORMAT_SUBTYPE_IEEE_FLOAT))) { ++ ss->format = PA_SAMPLE_FLOAT32NE; ++ } else { ++ WARN("only KSDATAFORMAT_SUBTYPE_PCM and KSDATAFORMAT_SUBTYPE_IEEE_FLOAT of WAVE_FORMAT_EXTENSIBLE supported\n"); ++ return FALSE; ++ } ++ break; ++ ++ default: ++ WARN("only WAVE_FORMAT_PCM, WAVE_FORMAT_MULAW, WAVE_FORMAT_ALAW and WAVE_FORMAT_EXTENSIBLE supported\n"); ++ return FALSE; ++ } ++ ++ if (!pa_sample_spec_valid(ss)) return FALSE; ++ if (wf->nBlockAlign != pa_frame_size(ss)) { ++ ERR("wf->nBlockAlign != the format frame size!\n"); ++ return FALSE; ++ } ++ ++ return TRUE; ++} ++ ++/****************************************************************** ++ * PULSE_SetupFormat ++ * ++ * Converts the current time to a MMTIME structure. lpTime shold be validated ++ * before calling. ++ */ ++HRESULT PULSE_UsecToMMTime(pa_usec_t time, LPMMTIME lpTime, const pa_sample_spec *ss) { ++ pa_usec_t temp; ++ size_t bytes; ++ ++ /* Convert to milliseconds */ ++ time /= 1000; ++ ++ bytes = time * pa_bytes_per_second(ss) / 1000; ++ /* Align to frame size */ ++ bytes -= bytes % pa_frame_size(ss); ++ ++ switch (lpTime->wType) { ++ case TIME_SAMPLES: ++ lpTime->u.sample = bytes / pa_frame_size(ss); ++ TRACE("TIME_SAMPLES=%u\n", lpTime->u.sample); ++ break; ++ case TIME_MS: ++ lpTime->u.ms = time; ++ TRACE("TIME_MS=%u\n", lpTime->u.ms); ++ break; ++ case TIME_SMPTE: ++ lpTime->u.smpte.fps = 30; ++ temp = bytes / pa_frame_size(ss); ++ temp += ss->rate / lpTime->u.smpte.fps - 1; ++ lpTime->u.smpte.sec = time/1000; ++ temp -= lpTime->u.smpte.sec * ss->rate; ++ lpTime->u.smpte.min = lpTime->u.smpte.sec / 60; ++ lpTime->u.smpte.sec -= 60 * lpTime->u.smpte.min; ++ lpTime->u.smpte.hour = lpTime->u.smpte.min / 60; ++ lpTime->u.smpte.min -= 60 * lpTime->u.smpte.hour; ++ lpTime->u.smpte.frame = temp * lpTime->u.smpte.fps / ss->rate; ++ TRACE("TIME_SMPTE=%02u:%02u:%02u:%02u\n", ++ lpTime->u.smpte.hour, lpTime->u.smpte.min, ++ lpTime->u.smpte.sec, lpTime->u.smpte.frame); ++ break; ++ default: ++ WARN("Format %d not supported, using TIME_BYTES !\n", lpTime->wType); ++ lpTime->wType = TIME_BYTES; ++ /* fall through */ ++ case TIME_BYTES: ++ lpTime->u.cb = bytes; ++ TRACE("TIME_BYTES=%u\n", lpTime->u.cb); ++ break; ++ } ++ ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * PULSE_WaitForOperation ++ * ++ * Waits for pa operations to complete, and dereferences the operation. ++ */ ++void PULSE_WaitForOperation(pa_operation *o) { ++ if (!o) return; ++ ++ for (;;) { ++ if (pa_operation_get_state(o) != PA_OPERATION_RUNNING) ++ break; ++ pa_threaded_mainloop_wait(PULSE_ml); ++ } ++ pa_operation_unref(o); ++} ++ ++/************************************************************************** ++ * Common Callbacks ++ */ ++ ++/************************************************************************** ++ * PULSE_StreamSuspendedCallback [internal] ++ * ++ * Called by the pulse mainloop any time stream playback is intentionally ++ * suspended or resumed from being suspended. ++ */ ++void PULSE_StreamSuspendedCallback(pa_stream *s, void *userdata) { ++ WINE_WAVEINST *wwo = (WINE_WAVEINST*)userdata; ++ assert(s && wwo); ++ ++ /* Currently we handle this kinda like an underrun. Perhaps we should ++ * tell the client somehow so it doesn't just hang? */ ++ ++ if (!pa_stream_is_suspended(s) && wwo->hThread != INVALID_HANDLE_VALUE && wwo->msgRing.ring_buffer_size > 0) ++ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_XRUN, 0, FALSE); ++} ++ ++/************************************************************************** ++ * PULSE_StreamUnderflowCallback [internal] ++ * ++ * Called by the pulse mainloop when the prebuf runs out of data. ++ */ ++void PULSE_StreamUnderflowCallback(pa_stream *s, void *userdata) { ++ WINE_WAVEINST *wwo = (WINE_WAVEINST*)userdata; ++ assert(s && wwo); ++ ++ /* If we aren't playing, don't care ^_^ */ ++ if (wwo->state != WINE_WS_PLAYING) return; ++ ++ TRACE("Underrun occurred.\n"); ++ ++ if (wwo->hThread != INVALID_HANDLE_VALUE && wwo->msgRing.ring_buffer_size > 0); ++ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_XRUN, 0, FALSE); ++} ++ ++/************************************************************************** ++ * PULSE_StreamMovedCallback [internal] ++ * ++ * Called by the pulse mainloop when the stream gets moved, resulting in ++ * possibly different metrics. ++ */ ++void PULSE_StreamMovedCallback(pa_stream *s, void *userdata) { ++ FIXME("stub"); ++} ++ ++ ++/****************************************************************** ++ * PULSE_StreamStateCallback ++ * ++ * Called by pulse whenever the state of the stream changes. ++ */ ++void PULSE_StreamStateCallback(pa_stream *s, void *userdata) { ++ assert(s); ++ ++ switch (pa_stream_get_state(s)) { ++ case PA_STREAM_READY: ++ TRACE("Stream %p ready\n", userdata); ++ break; ++ ++ case PA_STREAM_TERMINATED: ++ TRACE("Stream %p terminated\n", userdata); ++ break; ++ ++ case PA_STREAM_FAILED: ++ ERR("Stream %p failed!\n", userdata); ++ break; ++ ++ case PA_STREAM_UNCONNECTED: ++ case PA_STREAM_CREATING: ++ return; ++ } ++ pa_threaded_mainloop_signal(PULSE_ml, 0); ++} ++ ++/************************************************************************** ++ * PULSE_StreamSucessCallback ++ */ ++void PULSE_StreamSuccessCallback(pa_stream *s, int success, void *userdata) { ++ if (!success) ++ WARN("Stream %p operation failed: %s\n", userdata, pa_strerror(pa_context_errno(PULSE_context))); ++ ++ pa_threaded_mainloop_signal(PULSE_ml, 0); ++} ++ ++/************************************************************************** ++ * PULSE_ContextSuccessCallback ++ */ ++void PULSE_ContextSuccessCallback(pa_context *c, int success, void *userdata) { ++ if (!success) ERR("Context operation failed: %s\n", pa_strerror(pa_context_errno(c))); ++ pa_threaded_mainloop_signal(PULSE_ml, 0); ++} ++ ++/************************************************************************** ++ * Connection management and sink / source management. ++ */ ++ ++/************************************************************************** ++ * PULSE_ContextStateCallback [internal] ++ */ ++static void PULSE_ContextStateCallback(pa_context *c, void *userdata) { ++ assert(c); ++ ++ switch (pa_context_get_state(c)) { ++ case PA_CONTEXT_CONNECTING: ++ case PA_CONTEXT_UNCONNECTED: ++ case PA_CONTEXT_AUTHORIZING: ++ case PA_CONTEXT_SETTING_NAME: ++ break; ++ ++ case PA_CONTEXT_READY: ++ case PA_CONTEXT_TERMINATED: ++ pa_threaded_mainloop_signal(PULSE_ml, 0); ++ break; ++ ++ case PA_CONTEXT_FAILED: ++ ERR("Context failure: %s\n", pa_strerror(pa_context_errno(c))); ++ pa_threaded_mainloop_signal(PULSE_ml, 0); ++ break; ++ } ++} ++ ++/************************************************************************** ++ * PULSE_AllocateWaveinDevice [internal] ++ * ++ * Creates or adds a device to WInDev based on the pa_source_info. ++ */ ++static void PULSE_AllocateWaveinDevice(const char *name, const char *device, const char *description, const pa_cvolume *v) { ++ WINE_WAVEDEV *wdi; ++ ++ if (WInDev) ++ wdi = HeapReAlloc(GetProcessHeap(), 0, WInDev, sizeof(WINE_WAVEDEV) * (PULSE_WidNumDevs + 1)); ++ else ++ wdi = HeapAlloc(GetProcessHeap(), 0, sizeof(WINE_WAVEDEV)); ++ ++ if (!wdi) return; ++ ++ WInDev = wdi; ++ wdi = &WInDev[PULSE_WidNumDevs++]; ++ memset(wdi, 0, sizeof(WINE_WAVEDEV)); ++ memset(&(wdi->caps.in), 0, sizeof(wdi->caps.in)); ++ snprintf(wdi->interface_name, MAXPNAMELEN * 2, "winepulse: %s", name); ++ wdi->device_name = pa_xstrdup(device); ++ MultiByteToWideChar(CP_ACP, 0, description, -1, wdi->caps.in.szPname, sizeof(wdi->caps.in.szPname)/sizeof(WCHAR)); ++ wdi->caps.in.szPname[sizeof(wdi->caps.in.szPname)/sizeof(WCHAR) - 1] = '\0'; ++ wdi->caps.in.wMid = MM_CREATIVE; ++ wdi->caps.in.wPid = MM_CREATIVE_SBP16_WAVEOUT; ++ wdi->caps.in.vDriverVersion = 0x0100; ++ wdi->caps.in.wChannels = v->channels == 1 ? 1 : 2; ++ wdi->caps.in.dwFormats = PULSE_ALL_FORMATS; ++ memset(&wdi->ds_desc, 0, sizeof(DSDRIVERDESC)); ++ memcpy(wdi->ds_desc.szDesc, description, min(sizeof(wdi->ds_desc.szDesc) - 1, strlen(description))); ++ memcpy(wdi->ds_desc.szDrvname, "winepulse.drv", 14); ++ wdi->ds_caps.dwMinSecondarySampleRate = DSBFREQUENCY_MIN; ++ wdi->ds_caps.dwMaxSecondarySampleRate = DSBFREQUENCY_MAX; ++ wdi->ds_caps.dwPrimaryBuffers = 1; ++ wdi->ds_caps.dwFlags = \ ++ DSCAPS_PRIMARYMONO | ++ DSCAPS_PRIMARYSTEREO | ++ DSCAPS_PRIMARY8BIT | ++ DSCAPS_PRIMARY16BIT | ++ DSCAPS_SECONDARYMONO | ++ DSCAPS_SECONDARYSTEREO | ++ DSCAPS_SECONDARY8BIT | ++ DSCAPS_SECONDARY16BIT | ++ DSCCAPS_MULTIPLECAPTURE | ++ DSCAPS_CERTIFIED | /* Useful? */ ++ DSCAPS_EMULDRIVER; /* Useful? */ ++ ++} ++ ++/************************************************************************** ++ * PULSE_AllocateWaveoutDevice [internal] ++ * ++ * Creates or adds a sink to the WOutDev array. ++ */ ++static void PULSE_AllocateWaveoutDevice(const char *name, const char *device, const char *description, const pa_cvolume *v) { ++ WINE_WAVEDEV *wdo; ++ int x; ++ ++ if (WOutDev) ++ wdo = HeapReAlloc(GetProcessHeap(), 0, WOutDev, sizeof(WINE_WAVEDEV) * (PULSE_WodNumDevs + 1)); ++ else ++ wdo = HeapAlloc(GetProcessHeap(), 0, sizeof(WINE_WAVEDEV)); ++ ++ if (!wdo) return; ++ ++ WOutDev = wdo; ++ wdo = &WOutDev[PULSE_WodNumDevs++]; ++ memset(wdo, 0, sizeof(WINE_WAVEDEV)); ++ ++ wdo->device_name = pa_xstrdup(device); ++ wdo->volume.channels = v->channels; ++ for (x = 0; x < v->channels; x++) wdo->volume.values[x] = v->values[x]; ++ snprintf(wdo->interface_name, MAXPNAMELEN * 2, "winepulse: %s", name); ++ MultiByteToWideChar(CP_ACP, 0, description, -1, wdo->caps.out.szPname, sizeof(wdo->caps.out.szPname)/sizeof(WCHAR)); ++ wdo->caps.out.szPname[sizeof(wdo->caps.out.szPname)/sizeof(WCHAR) - 1] = '\0'; ++ wdo->caps.out.wMid = MM_CREATIVE; ++ wdo->caps.out.wPid = MM_CREATIVE_SBP16_WAVEOUT; ++ wdo->caps.out.vDriverVersion = 0x0100; ++ wdo->caps.out.dwSupport = WAVECAPS_VOLUME | WAVECAPS_SAMPLEACCURATE | WAVECAPS_DIRECTSOUND; ++ if (v->channels >= 2) { ++ wdo->caps.out.wChannels = 2; ++ wdo->caps.out.dwSupport |= WAVECAPS_LRVOLUME; ++ } else ++ wdo->caps.out.wChannels = 1; ++ wdo->caps.out.dwFormats = PULSE_ALL_FORMATS; ++ memset(&wdo->ds_desc, 0, sizeof(DSDRIVERDESC)); ++ memcpy(wdo->ds_desc.szDesc, description, min(sizeof(wdo->ds_desc.szDesc) - 1, strlen(description))); ++ memcpy(wdo->ds_desc.szDrvname, "winepulse.drv", 14); ++ wdo->ds_caps.dwMinSecondarySampleRate = DSBFREQUENCY_MIN; ++ wdo->ds_caps.dwMaxSecondarySampleRate = DSBFREQUENCY_MAX; ++ wdo->ds_caps.dwPrimaryBuffers = 1; ++ wdo->ds_caps.dwFlags = \ ++ DSCAPS_PRIMARYMONO | ++ DSCAPS_PRIMARYSTEREO | ++ DSCAPS_PRIMARY8BIT | ++ DSCAPS_PRIMARY16BIT | ++ DSCAPS_SECONDARYMONO | ++ DSCAPS_SECONDARYSTEREO | ++ DSCAPS_SECONDARY8BIT | ++ DSCAPS_SECONDARY16BIT | ++ DSCAPS_CERTIFIED | ++ DSCAPS_EMULDRIVER; /* Useful? */ ++} ++ ++/************************************************************************** ++ * PULSE_SourceInfoCallback [internal] ++ */ ++static void PULSE_SourceInfoCallback(pa_context *c, const pa_source_info *i, int eol, void *userdata) { ++ ++ if (!eol && i) ++ PULSE_AllocateWaveinDevice(i->name, i->name, i->description, &i->volume); ++ ++ pa_threaded_mainloop_signal(PULSE_ml, 0); ++} ++ ++/************************************************************************** ++ * PULSE_SinkInfoCallback [internal] ++ */ ++static void PULSE_SinkInfoCallback(pa_context *c, const pa_sink_info *i, int eol, void *userdata) { ++ ++ if (!eol && i) ++ PULSE_AllocateWaveoutDevice(i->name, i->name, i->description, &i->volume); ++ ++ pa_threaded_mainloop_signal(PULSE_ml, 0); ++} ++ ++/************************************************************************** ++ * PULSE_ContextNotifyCallback [internal] ++ */ ++static void PULSE_ContextNotifyCallback(pa_context *c, void *userdata) { ++ pa_threaded_mainloop_signal(PULSE_ml, 0); ++} ++ ++/************************************************************************** ++ * PULSE_WaveClose [internal] ++ * ++ * Disconnect from the server, deallocated the WaveIn/WaveOut devices, stop and ++ * free the mainloop. ++ */ ++static LONG PULSE_WaveClose(void) { ++ int x; ++ TRACE("()\n"); ++ if (!PULSE_ml) return DRV_FAILURE; ++ ++ pa_threaded_mainloop_lock(PULSE_ml); ++ /* device_name is allocated with pa_xstrdup, free with pa_xfree */ ++ for (x = 0; x < PULSE_WodNumDevs; x++) pa_xfree(WOutDev[x].device_name); ++ for (x = 0; x < PULSE_WidNumDevs; x++) pa_xfree(WInDev[x].device_name); ++ HeapFree(GetProcessHeap(), 0, WOutDev); ++ HeapFree(GetProcessHeap(), 0, WInDev); ++ if (PULSE_context) { ++ PULSE_WaitForOperation(pa_context_drain(PULSE_context, PULSE_ContextNotifyCallback, NULL)); ++ pa_context_disconnect(PULSE_context); ++ pa_context_unref(PULSE_context); ++ PULSE_context = NULL; ++ } ++ ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ pa_threaded_mainloop_stop(PULSE_ml); ++ pa_threaded_mainloop_free(PULSE_ml); ++ PULSE_ml = NULL; ++ ++ return DRV_SUCCESS; ++} ++ ++/************************************************************************** ++ * PULSE_WaveInit [internal] ++ * ++ * Connects to the pulseaudio server, tries to discover sinks and sources and ++ * allocates the WaveIn/WaveOut devices. ++ */ ++static LONG PULSE_WaveInit(void) { ++ char *app_name; ++ char path[PATH_MAX]; ++ char *offset = NULL; ++ int x = 0; ++ pa_cvolume fake_cvolume; ++ ++ WOutDev = NULL; ++ WInDev = NULL; ++ PULSE_WodNumDevs = 0; ++ PULSE_WidNumDevs = 0; ++ PULSE_context = NULL; ++ PULSE_ml = NULL; ++ ++ if (!(PULSE_ml = pa_threaded_mainloop_new())) { ++ WARN("Failed to create mainloop object."); ++ return DRV_FAILURE; ++ } ++ ++ /* Application name giving to pulse should be unique to the binary so that ++ * pulse-*-restore can be useful */ ++ ++ /* Get binary path, and remove path a-la strrchr */ ++ if (GetModuleFileNameA(NULL, path, PATH_MAX)) ++ offset = strrchr(path, '\\'); ++ ++ if (offset && ++offset && offset < path + PATH_MAX) { ++ app_name = pa_xmalloc(strlen(offset) + 8); ++ snprintf(app_name, strlen(offset) + 8, "WINE [%s]", offset); ++ } else ++ app_name = pa_xstrdup("WINE Application"); ++ ++ TRACE("App name is \"%s\"\n", app_name); ++ ++ pa_threaded_mainloop_start(PULSE_ml); ++ PULSE_context = pa_context_new(pa_threaded_mainloop_get_api(PULSE_ml), app_name); ++ assert(PULSE_context); ++ pa_xfree(app_name); ++ ++ pa_context_set_state_callback(PULSE_context, PULSE_ContextStateCallback, NULL); ++ ++ pa_threaded_mainloop_lock(PULSE_ml); ++ ++ TRACE("libpulse protocol version: %u. API Version %u\n", pa_context_get_protocol_version(PULSE_context), PA_API_VERSION); ++ TRACE("Attempting to connect to pulseaudio server.\n"); ++ if (pa_context_connect(PULSE_context, NULL, 0, NULL) < 0) ++ goto fail; ++ ++ /* Wait for connection */ ++ for (;;) { ++ pa_context_state_t state = pa_context_get_state(PULSE_context); ++ ++ if (state == PA_CONTEXT_FAILED || state == PA_CONTEXT_TERMINATED) ++ goto fail; ++ ++ if (state == PA_CONTEXT_READY) ++ break; ++ ++ pa_threaded_mainloop_wait(PULSE_ml); ++ } ++ ++ x = pa_context_get_server_protocol_version(PULSE_context); ++ TRACE("Connected to server %s with protocol version: %i.\n", pa_context_get_server(PULSE_context), x); ++ if (x < 14) ++ WARN("Server is old, expect poor latency or buggy-ness!\n"); ++ ++ fake_cvolume.channels = 2; ++ pa_cvolume_reset(&fake_cvolume, 2); ++ /* FIXME Translations? */ ++ PULSE_AllocateWaveoutDevice("default", NULL, "Default", &fake_cvolume); ++ PULSE_AllocateWaveinDevice("default", NULL, "Default", &fake_cvolume); ++ PULSE_WaitForOperation(pa_context_get_sink_info_list(PULSE_context, PULSE_SinkInfoCallback, &PULSE_WodNumDevs)); ++ PULSE_WaitForOperation(pa_context_get_source_info_list(PULSE_context, PULSE_SourceInfoCallback, &PULSE_WidNumDevs)); ++ TRACE("Found %u output and %u input device(s).\n", PULSE_WodNumDevs - 1, PULSE_WidNumDevs - 1); ++ ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ ++ return DRV_SUCCESS; ++ ++fail: ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ ERR("Failed to connect to server\n"); ++ return DRV_FAILURE; ++} ++ ++#endif /* HAVE_PULSEAUDIO */ ++ ++/************************************************************************** ++ * DriverProc (WINEPULSE.@) ++ */ ++LRESULT CALLBACK PULSE_DriverProc(DWORD_PTR dwDevID, HDRVR hDriv, UINT wMsg, ++ LPARAM dwParam1, LPARAM dwParam2) { ++ ++ switch(wMsg) { ++#ifdef HAVE_PULSEAUDIO ++ case DRV_LOAD: return PULSE_WaveInit(); ++ case DRV_FREE: return PULSE_WaveClose(); ++ case DRV_OPEN: return 1; ++ case DRV_CLOSE: return 1; ++ case DRV_ENABLE: return 1; ++ case DRV_DISABLE: return 1; ++ case DRV_QUERYCONFIGURE: return 1; ++ case DRV_CONFIGURE: MessageBoxA(0, "PulseAudio MultiMedia Driver !", "PulseAudio Driver", MB_OK); return 1; ++ case DRV_INSTALL: return DRVCNF_RESTART; ++ case DRV_REMOVE: return DRVCNF_RESTART; ++#endif ++ default: ++ return DefDriverProc(dwDevID, hDriv, wMsg, dwParam1, dwParam2); ++ } ++} +diff --git a/dlls/winepulse.drv/wavein.c b/dlls/winepulse.drv/wavein.c +new file mode 100644 +index 0000000..7cbc781 +--- /dev/null ++++ b/dlls/winepulse.drv/wavein.c +@@ -0,0 +1,595 @@ ++/* ++ * Wine Driver for PulseAudio - WaveIn Functionality ++ * http://pulseaudio.org/ ++ * ++ * Copyright 2009 Arthur Taylor ++ * ++ * Contains code from other wine multimedia drivers. ++ * ++ * 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, write to the Free Software ++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA ++ */ ++ ++#include "config.h" ++ ++#include ++ ++#include "windef.h" ++#include "winbase.h" ++#include "wingdi.h" ++#include "winuser.h" ++#include "winnls.h" ++#include "mmddk.h" ++ ++#include ++ ++#include "wine/debug.h" ++ ++WINE_DEFAULT_DEBUG_CHANNEL(wave); ++ ++#if HAVE_PULSEAUDIO ++ ++/*======================================================================* ++ * WAVE IN specific PulseAudio Callbacks * ++ *======================================================================*/ ++ ++/************************************************************************** ++ * widNotifyClient [internal] ++*/ ++static DWORD widNotifyClient(WINE_WAVEINST* wwi, WORD wMsg, DWORD dwParam1, DWORD dwParam2) { ++ TRACE("wMsg = 0x%04x dwParm1 = %04X dwParam2 = %04X\n", wMsg, dwParam1, dwParam2); ++ ++ switch (wMsg) { ++ case WIM_OPEN: ++ case WIM_CLOSE: ++ case WIM_DATA: ++ if (wwi->wFlags != DCB_NULL && ++ !DriverCallback(wwi->waveDesc.dwCallback, wwi->wFlags, (HDRVR)wwi->waveDesc.hWave, ++ wMsg, wwi->waveDesc.dwInstance, dwParam1, dwParam2)) { ++ WARN("can't notify client !\n"); ++ return MMSYSERR_ERROR; ++ } ++ break; ++ default: ++ FIXME("Unknown callback message %u\n", wMsg); ++ return MMSYSERR_INVALPARAM; ++ } ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * widRecorder_NextFragment [internal] ++ * ++ * Gets the next fragment of data from the server. ++ */ ++static size_t widRecorder_NextFragment(WINE_WAVEINST *wwi) { ++ size_t nbytes; ++ ++ TRACE("()\n"); ++ ++ if (wwi->buffer) ++ pa_stream_drop(wwi->stream); ++ ++ pa_stream_peek(wwi->stream, &wwi->buffer, &nbytes); ++ wwi->buffer_length = nbytes; ++ wwi->buffer_read_offset = 0; ++ ++ return nbytes; ++} ++ ++ ++/************************************************************************** ++ * widRecorder_CopyData [internal] ++ * ++ * Copys data from the fragments pulse returns to queued buffers. ++ */ ++static void widRecorder_CopyData(WINE_WAVEINST *wwi) { ++ LPWAVEHDR lpWaveHdr = wwi->lpQueuePtr; ++ size_t nbytes; ++ ++ while (lpWaveHdr && wwi->state == WINE_WS_PLAYING) { ++ ++ nbytes = min(wwi->buffer_length - wwi->buffer_read_offset, lpWaveHdr->dwBufferLength - lpWaveHdr->dwBytesRecorded); ++ if (nbytes == 0) break; ++ ++ TRACE("%u bytes from %p to %p\n", ++ nbytes, ++ (PBYTE)wwi->buffer + wwi->buffer_read_offset, ++ lpWaveHdr->lpData + lpWaveHdr->dwBytesRecorded); ++ ++ memcpy(lpWaveHdr->lpData + lpWaveHdr->dwBytesRecorded, (PBYTE)wwi->buffer + wwi->buffer_read_offset, nbytes); ++ ++ lpWaveHdr->dwBytesRecorded += nbytes; ++ wwi->buffer_read_offset += nbytes; ++ ++ if (wwi->buffer_read_offset == wwi->buffer_length) { ++ pa_threaded_mainloop_lock(PULSE_ml); ++ pa_stream_drop(wwi->stream); ++ if (pa_stream_readable_size(wwi->stream)) ++ widRecorder_NextFragment(wwi); ++ else { ++ wwi->buffer = NULL; ++ wwi->buffer_length = 0; ++ wwi->buffer_read_offset = 0; ++ } ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ } ++ ++ if (lpWaveHdr->dwBytesRecorded == lpWaveHdr->dwBufferLength) { ++ lpWaveHdr->dwFlags &= ~WHDR_INQUEUE; ++ lpWaveHdr->dwFlags |= WHDR_DONE; ++ wwi->lpQueuePtr = lpWaveHdr->lpNext; ++ widNotifyClient(wwi, WIM_DATA, (DWORD)lpWaveHdr, 0); ++ lpWaveHdr = wwi->lpQueuePtr; ++ } ++ } ++} ++ ++/************************************************************************** ++ * widRecorder [internal] ++ */ ++static DWORD CALLBACK widRecorder(LPVOID lpParam) { ++ WINE_WAVEINST *wwi = (WINE_WAVEINST*)lpParam; ++ LPWAVEHDR lpWaveHdr; ++ enum win_wm_message msg; ++ DWORD param; ++ HANDLE ev; ++ DWORD wait = INFINITE; ++ ++ wwi->state = WINE_WS_STOPPED; ++ SetEvent(wwi->hStartUpEvent); ++ ++ for (;;) { ++ ++ if (wwi->state != WINE_WS_PLAYING) { ++ wait = INFINITE; ++ } else { ++ if (wwi->buffer == NULL && pa_stream_readable_size(wwi->stream)) { ++ pa_threaded_mainloop_lock(PULSE_ml); ++ wait = pa_bytes_to_usec(widRecorder_NextFragment(wwi), &wwi->sample_spec)/1000; ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ } ++ } ++ ++ widRecorder_CopyData(wwi); ++ ++ PULSE_WaitRingMessage(&wwi->msgRing, wait); ++ ++ while (PULSE_RetrieveRingMessage(&wwi->msgRing, &msg, ¶m, &ev)) { ++ TRACE("Received %s %x\n", PULSE_getCmdString(msg), param); ++ ++ switch (msg) { ++ case WINE_WM_FEED: ++ SetEvent(ev); ++ break; ++ case WINE_WM_STARTING: ++ wwi->state = WINE_WS_PLAYING; ++ if (wwi->lpQueuePtr) ++ wait = pa_bytes_to_usec(wwi->lpQueuePtr->dwBufferLength, &wwi->sample_spec)/1000; ++ else ++ wait = INFINITE; ++ wwi->dwLastReset = wwi->timing_info->read_index; ++ pa_threaded_mainloop_lock(PULSE_ml); ++ PULSE_WaitForOperation(pa_stream_cork(wwi->stream, 0, PULSE_StreamSuccessCallback, NULL)); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ SetEvent(ev); ++ break; ++ case WINE_WM_HEADER: ++ lpWaveHdr = (LPWAVEHDR)param; ++ lpWaveHdr->lpNext = 0; ++ ++ /* insert buffer at the end of queue */ ++ { ++ LPWAVEHDR *wh; ++ for (wh = &(wwi->lpQueuePtr); *wh; wh = &((*wh)->lpNext)); ++ *wh = lpWaveHdr; ++ } ++ break; ++ case WINE_WM_STOPPING: ++ if (wwi->state != WINE_WS_STOPPED) { ++ wwi->state = WINE_WS_STOPPED; ++ pa_threaded_mainloop_lock(PULSE_ml); ++ PULSE_WaitForOperation(pa_stream_cork(wwi->stream, 1, PULSE_StreamSuccessCallback, NULL)); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ ++ /* return current buffer to app */ ++ lpWaveHdr = wwi->lpQueuePtr; ++ if (lpWaveHdr) { ++ LPWAVEHDR lpNext = lpWaveHdr->lpNext; ++ TRACE("stop %p %p\n", lpWaveHdr, lpWaveHdr->lpNext); ++ lpWaveHdr->dwFlags &= ~WHDR_INQUEUE; ++ lpWaveHdr->dwFlags |= WHDR_DONE; ++ wwi->lpQueuePtr = lpNext; ++ widNotifyClient(wwi, WIM_DATA, (DWORD)lpWaveHdr, 0); ++ } ++ } ++ SetEvent(ev); ++ break; ++ case WINE_WM_RESETTING: ++ if (wwi->state != WINE_WS_STOPPED) { ++ wwi->state = WINE_WS_STOPPED; ++ pa_threaded_mainloop_lock(PULSE_ml); ++ PULSE_WaitForOperation(pa_stream_cork(wwi->stream, 1, PULSE_StreamSuccessCallback, NULL)); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ } ++ ++ /* return all buffers to the app */ ++ for (lpWaveHdr = wwi->lpPlayPtr ? wwi->lpPlayPtr : wwi->lpQueuePtr; lpWaveHdr; lpWaveHdr = wwi->lpQueuePtr) { ++ lpWaveHdr->dwFlags &= ~WHDR_INQUEUE; ++ lpWaveHdr->dwFlags |= WHDR_DONE; ++ wwi->lpQueuePtr = lpWaveHdr->lpNext; ++ widNotifyClient(wwi, WIM_DATA, (DWORD)lpWaveHdr, 0); ++ } ++ ++ SetEvent(ev); ++ break; ++ case WINE_WM_CLOSING: ++ wwi->hThread = 0; ++ if ((DWORD)param == 1) { ++ /* If we are here, the stream failed */ ++ wwi->state = WINE_WS_FAILED; ++ SetEvent(ev); ++ PULSE_DestroyRingMessage(&wwi->msgRing); ++ widNotifyClient(wwi, WIM_CLOSE, 0L, 0L); ++ wwi->lpPlayPtr = wwi->lpQueuePtr = NULL; ++ pa_threaded_mainloop_lock(PULSE_ml); ++ pa_stream_disconnect(wwi->stream); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ TRACE("Thread exiting because of failure.\n"); ++ ExitThread(1); ++ } ++ wwi->state = WINE_WS_CLOSED; ++ SetEvent(ev); ++ ExitThread(0); ++ /* shouldn't go here */ ++ default: ++ FIXME("unknown message %d\n", msg); ++ break; ++ } /* switch(msg) */ ++ } /* while(PULSE_RetrieveRingMessage()) */ ++ } /* for (;;) */ ++} ++ ++/************************************************************************** ++ * widOpen [internal] ++ */ ++static DWORD widOpen(WORD wDevID, DWORD_PTR *lpdwUser, LPWAVEOPENDESC lpDesc, DWORD dwFlags) { ++ WINE_WAVEDEV *wdi; ++ WINE_WAVEINST *wwi = NULL; ++ DWORD ret = MMSYSERR_NOERROR; ++ ++ TRACE("(%u, %p, %08X);\n", wDevID, lpDesc, dwFlags); ++ if (lpDesc == NULL) { ++ WARN("Invalid Parameter !\n"); ++ return MMSYSERR_INVALPARAM; ++ } ++ ++ if (wDevID >= PULSE_WidNumDevs) { ++ TRACE("Asked for device %d, but only %d known!\n", wDevID, PULSE_WidNumDevs); ++ return MMSYSERR_BADDEVICEID; ++ } ++ wdi = &WInDev[wDevID]; ++ ++ wwi = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(WINE_WAVEINST)); ++ if (!wwi) return MMSYSERR_NOMEM; ++ *lpdwUser = (DWORD_PTR)wwi; ++ ++ /* check to see if format is supported and make pa_sample_spec struct */ ++ if (!PULSE_SetupFormat(lpDesc->lpFormat, &wwi->sample_spec)) { ++ WARN("Bad format: tag=%04X nChannels=%d nSamplesPerSec=%d !\n", ++ lpDesc->lpFormat->wFormatTag, lpDesc->lpFormat->nChannels, ++ lpDesc->lpFormat->nSamplesPerSec); ++ ret = WAVERR_BADFORMAT; ++ goto exit; ++ } ++ ++ if (TRACE_ON(wave)) { ++ char t[PA_SAMPLE_SPEC_SNPRINT_MAX]; ++ pa_sample_spec_snprint(t, sizeof(t), &wwi->sample_spec); ++ TRACE("Sample spec '%s'\n", t); ++ } ++ ++ if (dwFlags & WAVE_FORMAT_QUERY) { ++ TRACE("Query format: tag=%04X nChannels=%d nSamplesPerSec=%d !\n", ++ lpDesc->lpFormat->wFormatTag, lpDesc->lpFormat->nChannels, ++ lpDesc->lpFormat->nSamplesPerSec); ++ ret = MMSYSERR_NOERROR; ++ goto exit; ++ } ++ ++ wwi->wFlags = HIWORD(dwFlags & CALLBACK_TYPEMASK); ++ wwi->waveDesc = *lpDesc; ++ PULSE_InitRingMessage(&wwi->msgRing); ++ ++ wwi->stream = pa_stream_new(PULSE_context, "WaveIn", &wwi->sample_spec, NULL); ++ if (!wwi->stream) { ++ ret = WAVERR_BADFORMAT; ++ goto exit; ++ } ++ ++ pa_stream_set_state_callback(wwi->stream, PULSE_StreamStateCallback, wwi); ++ ++ wwi->buffer_attr.maxlength = (uint32_t)-1; ++ wwi->buffer_attr.fragsize = pa_bytes_per_second(&wwi->sample_spec) / 100; ++ ++ pa_threaded_mainloop_lock(PULSE_ml); ++ TRACE("Asking to open %s for recording.\n", wdi->device_name); ++ pa_stream_connect_record(wwi->stream, wdi->device_name, &wwi->buffer_attr, ++ PA_STREAM_START_CORKED | ++ PA_STREAM_AUTO_TIMING_UPDATE); ++ ++ for (;;) { ++ pa_context_state_t cstate = pa_context_get_state(PULSE_context); ++ pa_stream_state_t sstate = pa_stream_get_state(wwi->stream); ++ ++ if (cstate == PA_CONTEXT_FAILED || cstate == PA_CONTEXT_TERMINATED || ++ sstate == PA_STREAM_FAILED || sstate == PA_STREAM_TERMINATED) { ++ ERR("Failed to connect context object: %s\n", pa_strerror(pa_context_errno(PULSE_context))); ++ ret = MMSYSERR_NODRIVER; ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ goto exit; ++ } ++ ++ if (sstate == PA_STREAM_READY) ++ break; ++ ++ pa_threaded_mainloop_wait(PULSE_ml); ++ } ++ TRACE("(%p)->stream connected for recording.\n", wwi); ++ ++ PULSE_WaitForOperation(pa_stream_update_timing_info(wwi->stream, PULSE_StreamSuccessCallback, wwi)); ++ ++ wwi->timing_info = pa_stream_get_timing_info(wwi->stream); ++ assert(wwi->timing_info); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ ++ wwi->hStartUpEvent = CreateEventW(NULL, FALSE, FALSE, NULL); ++ wwi->hThread = CreateThread(NULL, 0, widRecorder, (LPVOID)wwi, 0, &(wwi->dwThreadID)); ++ if (wwi->hThread) ++ SetThreadPriority(wwi->hThread, THREAD_PRIORITY_TIME_CRITICAL); ++ else { ++ ERR("Thread creation for the widRecorder failed!\n"); ++ ret = MMSYSERR_NOMEM; ++ goto exit; ++ } ++ WaitForSingleObject(wwi->hStartUpEvent, INFINITE); ++ CloseHandle(wwi->hStartUpEvent); ++ wwi->hStartUpEvent = INVALID_HANDLE_VALUE; ++ ++ return widNotifyClient(wwi, WIM_OPEN, 0L, 0L); ++ ++exit: ++ if (!wwi) ++ return ret; ++ ++ if (wwi->hStartUpEvent != INVALID_HANDLE_VALUE) ++ CloseHandle(wwi->hStartUpEvent); ++ ++ if (wwi->msgRing.ring_buffer_size > 0) ++ PULSE_DestroyRingMessage(&wwi->msgRing); ++ ++ if (wwi->stream) { ++ if (pa_stream_get_state(wwi->stream) == PA_STREAM_READY) ++ pa_stream_disconnect(wwi->stream); ++ pa_stream_unref(wwi->stream); ++ } ++ HeapFree(GetProcessHeap(), 0, wwi); ++ ++ return ret; ++} ++/************************************************************************** ++ * widClose [internal] ++ */ ++static DWORD widClose(WORD wDevID, WINE_WAVEINST *wwi) { ++ DWORD ret; ++ ++ TRACE("(%u, %p);\n", wDevID, wwi); ++ if (wDevID >= PULSE_WidNumDevs) { ++ WARN("Asked for device %d, but only %d known!\n", wDevID, PULSE_WodNumDevs); ++ return MMSYSERR_INVALHANDLE; ++ } else if (!wwi) { ++ WARN("Stream instance invalid.\n"); ++ return MMSYSERR_INVALHANDLE; ++ } ++ ++ if (wwi->state != WINE_WS_FAILED) { ++ if (wwi->lpQueuePtr) { ++ WARN("buffers recording recording !\n"); ++ return WAVERR_STILLPLAYING; ++ } ++ ++ pa_threaded_mainloop_lock(PULSE_ml); ++ if (pa_stream_get_state(wwi->stream) == PA_STREAM_READY) ++ pa_stream_drop(wwi->stream); ++ pa_stream_disconnect(wwi->stream); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ ++ if (wwi->hThread != INVALID_HANDLE_VALUE) ++ PULSE_AddRingMessage(&wwi->msgRing, WINE_WM_CLOSING, 0, TRUE); ++ ++ PULSE_DestroyRingMessage(&wwi->msgRing); ++ } ++ ret = widNotifyClient(wwi, WIM_CLOSE, 0L, 0L); ++ ++ pa_stream_unref(wwi->stream); ++ TRACE("Deallocating record instance.\n"); ++ HeapFree(GetProcessHeap(), 0, wwi); ++ return ret; ++} ++ ++/************************************************************************** ++ * widAddBuffer [internal] ++ * ++ */ ++static DWORD widAddBuffer(WINE_WAVEINST* wwi, LPWAVEHDR lpWaveHdr, DWORD dwSize) { ++ TRACE("(%p, %p, %08X);\n", wwi, lpWaveHdr, dwSize); ++ ++ if (!wwi || wwi->state == WINE_WS_FAILED) { ++ WARN("Stream instance invalid.\n"); ++ return MMSYSERR_INVALHANDLE; ++ } ++ ++ if (lpWaveHdr->lpData == NULL || !(lpWaveHdr->dwFlags & WHDR_PREPARED)) ++ return WAVERR_UNPREPARED; ++ ++ if (lpWaveHdr->dwFlags & WHDR_INQUEUE) ++ return WAVERR_STILLPLAYING; ++ ++ lpWaveHdr->dwFlags &= ~WHDR_DONE; ++ lpWaveHdr->dwFlags |= WHDR_INQUEUE; ++ lpWaveHdr->dwBytesRecorded = 0; ++ lpWaveHdr->lpNext = 0; ++ ++ PULSE_AddRingMessage(&wwi->msgRing, WINE_WM_HEADER, (DWORD)lpWaveHdr, FALSE); ++ ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * widRecorderMessage [internal] ++ */ ++static DWORD widRecorderMessage(WINE_WAVEINST *wwi, enum win_wm_message message) { ++ if (!wwi || wwi->state == WINE_WS_FAILED) { ++ WARN("Stream instance invalid.\n"); ++ return MMSYSERR_INVALHANDLE; ++ } ++ ++ PULSE_AddRingMessage(&wwi->msgRing, message, 0, TRUE); ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * widGetPosition [internal] ++ */ ++static DWORD widGetPosition(WINE_WAVEINST *wwi, LPMMTIME lpTime, DWORD uSize) { ++ ++ if (!wwi || wwi->state == WINE_WS_FAILED) { ++ WARN("Stream instance invalid.\n"); ++ return MMSYSERR_INVALHANDLE; ++ } ++ ++ if (lpTime == NULL) return MMSYSERR_INVALPARAM; ++ ++ return PULSE_UsecToMMTime(pa_bytes_to_usec(wwi->timing_info->read_index - wwi->dwLastReset, &wwi->sample_spec), lpTime, &wwi->sample_spec); ++} ++ ++/************************************************************************** ++ * widGetDevCaps [internal] ++ */ ++static DWORD widGetDevCaps(DWORD wDevID, LPWAVEINCAPSW lpCaps, DWORD dwSize) { ++ TRACE("(%u, %p, %u);\n", wDevID, lpCaps, dwSize); ++ ++ if (lpCaps == NULL) return MMSYSERR_NOTENABLED; ++ ++ if (wDevID >= PULSE_WidNumDevs) { ++ TRACE("Asked for device %d, but only %d known!\n", wDevID, PULSE_WidNumDevs); ++ return MMSYSERR_INVALHANDLE; ++ } ++ ++ memcpy(lpCaps, &(WInDev[wDevID].caps.in), min(dwSize, sizeof(*lpCaps))); ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * widGetNumDevs [internal] ++ * Context-sanity check here, as if we respond with 0, WINE will move on ++ * to the next wavein driver. ++ */ ++static DWORD widGetNumDevs() { ++ if (pa_context_get_state(PULSE_context) != PA_CONTEXT_READY) ++ return 0; ++ ++ return PULSE_WidNumDevs; ++} ++ ++/************************************************************************** ++ * widDevInterfaceSize [internal] ++ */ ++static DWORD widDevInterfaceSize(UINT wDevID, LPDWORD dwParam1) { ++ TRACE("(%u, %p)\n", wDevID, dwParam1); ++ ++ *dwParam1 = MultiByteToWideChar(CP_UNIXCP, 0, WInDev[wDevID].interface_name, -1, ++ NULL, 0 ) * sizeof(WCHAR); ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * widDevInterface [internal] ++ */ ++static DWORD widDevInterface(UINT wDevID, PWCHAR dwParam1, DWORD dwParam2) { ++ if (dwParam2 >= MultiByteToWideChar(CP_UNIXCP, 0, WInDev[wDevID].interface_name, -1, ++ NULL, 0 ) * sizeof(WCHAR)) ++ { ++ MultiByteToWideChar(CP_UNIXCP, 0, WInDev[wDevID].interface_name, -1, ++ dwParam1, dwParam2 / sizeof(WCHAR)); ++ return MMSYSERR_NOERROR; ++ } ++ return MMSYSERR_INVALPARAM; ++} ++ ++/************************************************************************** ++ * widDsDesc [internal] ++ */ ++DWORD widDsDesc(UINT wDevID, PDSDRIVERDESC desc) ++{ ++ *desc = WInDev[wDevID].ds_desc; ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * widMessage (WINEPULSE.@) ++ */ ++DWORD WINAPI PULSE_widMessage(UINT wDevID, UINT wMsg, DWORD_PTR dwUser, ++ DWORD_PTR dwParam1, DWORD_PTR dwParam2) { ++ ++ switch (wMsg) { ++ case DRVM_INIT: ++ case DRVM_EXIT: ++ case DRVM_ENABLE: ++ case DRVM_DISABLE: ++ /* FIXME: Pretend this is supported */ ++ return 0; ++ case WIDM_OPEN: return widOpen (wDevID, (DWORD_PTR*)dwUser, (LPWAVEOPENDESC)dwParam1, dwParam2); ++ case WIDM_CLOSE: return widClose (wDevID, (WINE_WAVEINST*)dwUser); ++ case WIDM_ADDBUFFER: return widAddBuffer ((WINE_WAVEINST*)dwUser, (LPWAVEHDR)dwParam1, dwParam2); ++ case WIDM_PREPARE: return MMSYSERR_NOTSUPPORTED; ++ case WIDM_UNPREPARE: return MMSYSERR_NOTSUPPORTED; ++ case WIDM_GETDEVCAPS: return widGetDevCaps(wDevID, (LPWAVEINCAPSW)dwParam1, dwParam2); ++ case WIDM_GETNUMDEVS: return widGetNumDevs(); ++ case WIDM_GETPOS: return widGetPosition ((WINE_WAVEINST*)dwUser, (LPMMTIME)dwParam1, dwParam2); ++ case WIDM_RESET: return widRecorderMessage((WINE_WAVEINST*)dwUser, WINE_WM_RESETTING); ++ case WIDM_START: return widRecorderMessage((WINE_WAVEINST*)dwUser, WINE_WM_STARTING); ++ case WIDM_STOP: return widRecorderMessage((WINE_WAVEINST*)dwUser, WINE_WM_STOPPING); ++ case DRV_QUERYDEVICEINTERFACESIZE: return widDevInterfaceSize(wDevID, (LPDWORD)dwParam1); ++ case DRV_QUERYDEVICEINTERFACE: return widDevInterface(wDevID, (PWCHAR)dwParam1, dwParam2); ++ case DRV_QUERYDSOUNDIFACE: return MMSYSERR_NOTSUPPORTED; /* Use emulation, as there is no advantage */ ++ case DRV_QUERYDSOUNDDESC: return widDsDesc(wDevID, (PDSDRIVERDESC)dwParam1); ++ default: ++ FIXME("unknown message %d!\n", wMsg); ++ } ++ return MMSYSERR_NOTSUPPORTED; ++} ++ ++#else /* HAVE_PULSEAUDIO */ ++ ++/************************************************************************** ++ * widMessage (WINEPULSE.@) ++ */ ++DWORD WINAPI PULSE_widMessage(WORD wDevID, WORD wMsg, DWORD dwUser, ++ DWORD dwParam1, DWORD dwParam2) { ++ FIXME("(%u, %04X, %08X, %08X, %08X):stub\n", wDevID, wMsg, dwUser, dwParam1, dwParam2); ++ return MMSYSERR_NOTENABLED; ++} ++ ++#endif /* HAVE_PULSEAUDIO */ +diff --git a/dlls/winepulse.drv/waveout.c b/dlls/winepulse.drv/waveout.c +new file mode 100644 +index 0000000..db2c892 +--- /dev/null ++++ b/dlls/winepulse.drv/waveout.c +@@ -0,0 +1,1086 @@ ++/* ++ * Wine Driver for PulseAudio - WaveOut Functionality ++ * http://pulseaudio.org/ ++ * ++ * Copyright 2009 Arthur Taylor ++ * ++ * Contains code from other wine multimedia drivers. ++ * ++ * 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, write to the Free Software ++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA ++ */ ++ ++#include "config.h" ++ ++#include ++ ++#include "windef.h" ++#include "winbase.h" ++#include "wingdi.h" ++#include "winuser.h" ++#include "winnls.h" ++#include "winerror.h" ++#include "mmddk.h" ++ ++#include ++ ++#include "wine/debug.h" ++ ++WINE_DEFAULT_DEBUG_CHANNEL(wave); ++ ++#if HAVE_PULSEAUDIO ++ ++/* state diagram for waveOut writing: ++ * ++ * +---------+-------------+---------------+---------------------------------+ ++ * | state | function | event | new state | ++ * +---------+-------------+---------------+---------------------------------+ ++ * | | open() | | STOPPED | ++ * | PAUSED | write() | | PAUSED | ++ * | STOPPED | write() | | PLAYING | ++ * | PLAYING | write() | HEADER | PLAYING | ++ * | (other) | write() | | | ++ * | (any) | pause() | PAUSING | PAUSED | ++ * | PAUSED | restart() | RESTARTING | PLAYING (if no thrd => STOPPED) | ++ * | PAUSED | reset() | RESETTING | PAUSED | ++ * | (other) | reset() | RESETTING | STOPPED | ++ * | (any) | close() | CLOSING | CLOSED | ++ * +---------+-------------+---------------+---------------------------------+ ++ */ ++ ++/* ++ * - It is currently unknown if pausing in a loop works the same as expected. ++ */ ++ ++/*======================================================================* ++ * WAVE OUT specific PulseAudio Callbacks * ++ *======================================================================*/ ++ ++/************************************************************************** ++ * WAVEOUT_StreamRequestCallback ++ * ++ * Called by the pulse mainloop whenever it wants audio data. ++ */ ++static void WAVEOUT_StreamRequestCallback(pa_stream *s, size_t nbytes, void *userdata) { ++ WINE_WAVEINST *ww = (WINE_WAVEINST*)userdata; ++ ++ TRACE("Asking to be fed %u bytes\n", nbytes); ++ ++ /* Make sure that the player/recorder is running */ ++ if (ww->hThread != INVALID_HANDLE_VALUE && ww->msgRing.messages) { ++ PULSE_AddRingMessage(&ww->msgRing, WINE_WM_FEED, (DWORD)nbytes, FALSE); ++ } ++} ++ ++/************************************************************************** ++ * WAVEOUT_SinkInputInfoCallback [internal] ++ * ++ * Called by the pulse thread. Used for wodGetVolume. ++ */ ++static void WAVEOUT_SinkInputInfoCallback(pa_context *c, const pa_sink_input_info *i, int eol, void *userdata) { ++ WINE_WAVEINST* wwo = (WINE_WAVEINST*)userdata; ++ if (!eol && i) { ++ for (wwo->volume.channels = 0; wwo->volume.channels != i->volume.channels; wwo->volume.channels++) ++ wwo->volume.values[wwo->volume.channels] = i->volume.values[wwo->volume.channels]; ++ pa_threaded_mainloop_signal(PULSE_ml, 0); ++ } ++} ++ ++/*======================================================================* ++ * "Low level" WAVE OUT implementation * ++ *======================================================================*/ ++ ++/************************************************************************** ++ * wodPlayer_NotifyClient [internal] ++ */ ++static DWORD wodPlayer_NotifyClient(WINE_WAVEINST* wwo, WORD wMsg, DWORD dwParam1, DWORD dwParam2) { ++ TRACE("wMsg = 0x%04x dwParm1 = %04X dwParam2 = %04X\n", wMsg, dwParam1, dwParam2); ++ ++ switch (wMsg) { ++ case WOM_OPEN: ++ case WOM_CLOSE: ++ case WOM_DONE: ++ if (wwo->wFlags != DCB_NULL && ++ !DriverCallback(wwo->waveDesc.dwCallback, wwo->wFlags, (HDRVR)wwo->waveDesc.hWave, ++ wMsg, wwo->waveDesc.dwInstance, dwParam1, dwParam2)) { ++ WARN("can't notify client !\n"); ++ return MMSYSERR_ERROR; ++ } ++ break; ++ default: ++ FIXME("Unknown callback message %u\n", wMsg); ++ return MMSYSERR_INVALPARAM; ++ } ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * wodPlayer_BeginWaveHdr [internal] ++ * ++ * Makes the specified lpWaveHdr the currently playing wave header. ++ * If the specified wave header is a begin loop and we're not already in ++ * a loop, setup the loop. ++ */ ++static void wodPlayer_BeginWaveHdr(WINE_WAVEINST* wwo, LPWAVEHDR lpWaveHdr) { ++ wwo->lpPlayPtr = lpWaveHdr; ++ ++ if (!lpWaveHdr) return; ++ ++ if (lpWaveHdr->dwFlags & WHDR_BEGINLOOP) { ++ if (wwo->lpLoopPtr) { ++ WARN("Already in a loop. Discarding loop on this header (%p)\n", lpWaveHdr); ++ } else { ++ TRACE("Starting loop (%dx) with %p\n", lpWaveHdr->dwLoops, lpWaveHdr); ++ wwo->lpLoopPtr = lpWaveHdr; ++ /* Windows does not touch WAVEHDR.dwLoops, ++ * so we need to make an internal copy */ ++ wwo->dwLoops = lpWaveHdr->dwLoops; ++ } ++ } ++ wwo->dwPartialOffset = 0; ++} ++ ++/************************************************************************** ++ * wodPlayer_PlayPtrNext [internal] ++ * ++ * Advance the play pointer to the next waveheader, looping if required. ++ */ ++static LPWAVEHDR wodPlayer_PlayPtrNext(WINE_WAVEINST* wwo) { ++ LPWAVEHDR lpWaveHdr = wwo->lpPlayPtr; ++ ++ wwo->dwPartialOffset = 0; ++ if ((lpWaveHdr->dwFlags & WHDR_ENDLOOP) && wwo->lpLoopPtr) { ++ /* We're at the end of a loop, loop if required */ ++ if (--wwo->dwLoops > 0) { ++ wwo->lpPlayPtr = wwo->lpLoopPtr; ++ } else { ++ /* Handle overlapping loops correctly */ ++ if (wwo->lpLoopPtr != lpWaveHdr && (lpWaveHdr->dwFlags & WHDR_BEGINLOOP)) { ++ FIXME("Correctly handled case ? (ending loop buffer also starts a new loop)\n"); ++ /* shall we consider the END flag for the closing loop or for ++ * the opening one or for both ??? ++ * code assumes for closing loop only ++ */ ++ } else { ++ lpWaveHdr = lpWaveHdr->lpNext; ++ } ++ wwo->lpLoopPtr = NULL; ++ wodPlayer_BeginWaveHdr(wwo, lpWaveHdr); ++ } ++ } else { ++ /* We're not in a loop. Advance to the next wave header */ ++ wodPlayer_BeginWaveHdr(wwo, lpWaveHdr = lpWaveHdr->lpNext); ++ } ++ ++ return lpWaveHdr; ++} ++ ++/************************************************************************** ++ * wodPlayer_CheckReleasing [internal] ++ * ++ * Check to make sure that playback has not stalled. If stalled ask to reduce ++ * the size of the buffer on the pulse server side. ++ */ ++static void wodPlayer_CheckReleasing(WINE_WAVEINST *wwo) { ++ ++ if (wwo->buffer_attr.tlength == -1 && wwo->lpQueuePtr && !wwo->lpPlayPtr && wwo->state == WINE_WS_PLAYING) { ++ const pa_buffer_attr *returned; ++ ++ pa_threaded_mainloop_lock(PULSE_ml); ++ ++ if (wwo->timing_info->playing) { ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ return; ++ } ++ ++ /* Try and adjust the buffer attributes so that playback can start. ++ * Because of bugs this call does not work on servers 0.9.11 to 0.9.14. ++ * Once new version of pulseaudio become ubiquitous we will drop ++ * support for versions before 0.9.15 because they have too many bugs. ++ */ ++ ++ wwo->buffer_attr.tlength = wwo->timing_info->write_index; ++ WARN("Asking for new buffer tlength of %llums (%u bytes)\n", ++ pa_bytes_to_usec(wwo->buffer_attr.tlength, &wwo->sample_spec) / 1000, ++ wwo->buffer_attr.tlength); ++ ++ if (pa_context_get_server_protocol_version(PULSE_context) < 15) ++ ERR("Might get disconnected because of a bug in this pulseaudio server version.\n"); ++ ++ PULSE_WaitForOperation(pa_stream_set_buffer_attr(wwo->stream, &wwo->buffer_attr, PULSE_StreamSuccessCallback, wwo)); ++ ++ returned = pa_stream_get_buffer_attr(wwo->stream); ++ ++ if (returned->tlength > wwo->timing_info->write_index) { ++ WARN("Can't get the buffer size needed. Triggering and hoping for the best.\n"); ++ PULSE_WaitForOperation(pa_stream_trigger(wwo->stream, PULSE_StreamSuccessCallback, wwo)); ++ } ++ ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ } ++} ++ ++/************************************************************************** ++ * wodPlayer_NotifyCompletions [internal] ++ * ++ * Notifies the client of wavehdr completion starting from lpQueuePtr and ++ * stopping when hitting an unwritten wavehdr, the beginning of a loop or a ++ * wavehdr that has not been played, when referenced to the time parameter. ++ */ ++static DWORD wodPlayer_NotifyCompletions(WINE_WAVEINST* wwo, BOOL force, pa_usec_t time) { ++ LPWAVEHDR lpWaveHdr = wwo->lpQueuePtr; ++ pa_usec_t wait; ++ ++ while (lpWaveHdr) { ++ if (!force) { ++ /* Start from lpQueuePtr and keep notifying until: ++ * - we hit an unwritten wavehdr ++ * - we hit the beginning of a running loop ++ * - we hit a wavehdr which hasn't finished playing ++ */ ++ if (lpWaveHdr == wwo->lpLoopPtr) { TRACE("loop %p\n", lpWaveHdr); return INFINITE; } ++ if (lpWaveHdr == wwo->lpPlayPtr) { TRACE("play %p\n", lpWaveHdr); return INFINITE; } ++ ++ /* See if this data has been played, and if not, return when it will have been */ ++ wait = pa_bytes_to_usec(lpWaveHdr->reserved + lpWaveHdr->dwBufferLength, &wwo->sample_spec); ++ if (wait >= time) { ++ wait = ((wait - time) + 999) / 1000; ++ return wait ?: 1; ++ } ++ } ++ ++ /* return the wavehdr */ ++ wwo->lpQueuePtr = lpWaveHdr->lpNext; ++ lpWaveHdr->dwFlags &= ~WHDR_INQUEUE; ++ lpWaveHdr->dwFlags |= WHDR_DONE; ++ ++ wodPlayer_NotifyClient(wwo, WOM_DONE, (DWORD)lpWaveHdr, 0); ++ lpWaveHdr = wwo->lpQueuePtr; ++ } ++ /* No more wavehdrs */ ++ TRACE("Empty queue\n"); ++ return INFINITE; ++} ++ ++/************************************************************************** ++ * wodPlayer_WriteMax [internal] ++ * ++ * Write either how much free space or how much data we have, depending on ++ * which is less ++ */ ++static int wodPlayer_WriteMax(WINE_WAVEINST *wwo, size_t *space) { ++ LPWAVEHDR lpWaveHdr = wwo->lpPlayPtr; ++ size_t nbytes; ++ ++ nbytes = min(lpWaveHdr->dwBufferLength - wwo->dwPartialOffset, *space); ++ ++ TRACE("Writing wavehdr %p.%u[%u]\n", lpWaveHdr, wwo->dwPartialOffset, lpWaveHdr->dwBufferLength); ++ pa_stream_write(wwo->stream, lpWaveHdr->lpData + wwo->dwPartialOffset, nbytes, NULL, 0, PA_SEEK_RELATIVE); ++ ++ /* Check to see if we wrote all of the wavehdr */ ++ if ((wwo->dwPartialOffset += nbytes) >= lpWaveHdr->dwBufferLength) ++ wodPlayer_PlayPtrNext(wwo); ++ ++ *space -= nbytes; ++ ++ return nbytes; ++} ++ ++/************************************************************************** ++ * wodPlayer_Feed [internal] ++ * ++ * Feed as much sound data as we can into pulse using wodPlayer_WriteMax. ++ * size_t space _must_ have come from either pa_stream_writable_size() or ++ * the value from a stream write callback, as if it isn't you run the risk ++ * of a buffer overflow in which audio data will be lost. ++ */ ++static void wodPlayer_Feed(WINE_WAVEINST* wwo, size_t space) { ++ ++ /* No more room... no need to try to feed */ ++ if (space == 0) return; ++ ++ if (!wwo->stream || !PULSE_context || ++ pa_context_get_state(PULSE_context) != PA_CONTEXT_READY || ++ pa_stream_get_state(wwo->stream) != PA_STREAM_READY) ++ return; ++ ++ pa_threaded_mainloop_lock(PULSE_ml); ++ /* Feed from a partial wavehdr */ ++ if (wwo->lpPlayPtr && wwo->dwPartialOffset != 0) ++ wodPlayer_WriteMax(wwo, &space); ++ ++ /* Feed wavehdrs until we run out of wavehdrs or buffer space */ ++ if (wwo->dwPartialOffset == 0 && wwo->lpPlayPtr) { ++ do { ++ wwo->lpPlayPtr->reserved = wwo->timing_info->write_index; ++ } while (wodPlayer_WriteMax(wwo, &space) > 0 && wwo->lpPlayPtr && space > 0); ++ } ++ pa_threaded_mainloop_unlock(PULSE_ml); ++} ++ ++/************************************************************************** ++ * wodPlayer_Reset [internal] ++ * ++ * wodPlayer helper. Resets current output stream. ++ */ ++static void wodPlayer_Reset(WINE_WAVEINST* wwo) { ++ enum win_wm_message msg; ++ DWORD param; ++ HANDLE ev; ++ ++ TRACE("(%p)\n", wwo); ++ ++ /* Remove any buffer */ ++ wodPlayer_NotifyCompletions(wwo, TRUE, 0); ++ ++ wwo->lpPlayPtr = wwo->lpQueuePtr = wwo->lpLoopPtr = NULL; ++ if (wwo->state != WINE_WS_PAUSED) ++ wwo->state = WINE_WS_STOPPED; ++ ++ wwo->dwPartialOffset = 0; ++ ++ if (!wwo->stream || ++ !PULSE_context || ++ pa_context_get_state(PULSE_context) != PA_CONTEXT_READY || ++ pa_stream_get_state(wwo->stream) != PA_STREAM_READY) { ++ return; ++ } ++ ++ pa_threaded_mainloop_lock(PULSE_ml); ++ ++ /* Flush the output buffer of written data*/ ++ PULSE_WaitForOperation(pa_stream_flush(wwo->stream, PULSE_StreamSuccessCallback, NULL)); ++ ++ /* Reset the written byte count as some data may have been flushed */ ++ if (wwo->timing_info->write_index_corrupt) ++ PULSE_WaitForOperation(pa_stream_update_timing_info(wwo->stream, PULSE_StreamSuccessCallback, wwo)); ++ ++ wwo->dwLastReset = wwo->timing_info->write_index; ++ ++ /* Return all pending headers in queue */ ++ EnterCriticalSection(&wwo->msgRing.msg_crst); ++ while (PULSE_RetrieveRingMessage(&wwo->msgRing, &msg, ¶m, &ev)) { ++ if (msg != WINE_WM_HEADER) { ++ SetEvent(ev); ++ continue; ++ } ++ ((LPWAVEHDR)param)->dwFlags &= ~WHDR_INQUEUE; ++ ((LPWAVEHDR)param)->dwFlags |= WHDR_DONE; ++ wodPlayer_NotifyClient(wwo, WOM_DONE, param, 0); ++ } ++ PULSE_ResetRingMessage(&wwo->msgRing); ++ LeaveCriticalSection(&wwo->msgRing.msg_crst); ++ ++ pa_threaded_mainloop_unlock(PULSE_ml); ++} ++ ++/************************************************************************** ++ * wodPlayer_GetStreamTime [internal] ++ * ++ * Returns how many microseconds into the playback the audio stream is. Does ++ * not reset to 0 on Reset() calls. Better than pa_stream_get_time() as it is ++ * more constant. ++ */ ++static pa_usec_t WAVEOUT_GetStreamTime(WINE_WAVEINST *wwo) { ++ pa_usec_t time, temp; ++ const pa_timing_info *t; ++ ++ t = wwo->timing_info; ++ ++ pa_threaded_mainloop_lock(PULSE_ml); ++ ++ time = pa_bytes_to_usec(t->read_index, &wwo->sample_spec); ++ if (t->read_index_corrupt) { ++ WARN("Read index corrupt?!\n"); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ return time; ++ } ++ ++ if (t->playing) { ++ time += pa_timeval_age(&t->timestamp); ++ ++ temp = t->transport_usec + t->configured_sink_usec; ++ if (temp > wwo->buffer_attr.tlength) temp = wwo->buffer_attr.tlength; ++ if (temp < time) time -= temp; else time = 0; ++ } ++ ++ /* Make sure we haven't claimed to have played more than we have written */ ++ temp = pa_bytes_to_usec(t->write_index, &wwo->sample_spec); ++ if (time > temp) time = temp; ++ ++ /* No queued buffer shows an underrun, so we lie */ ++ if (!wwo->lpQueuePtr) time = temp; ++ ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ ++ return time; ++} ++ ++/************************************************************************** ++ * wodPlayer_ProcessMessages [internal] ++ */ ++static DWORD wodPlayer_ProcessMessages(WINE_WAVEINST* wwo) { ++ LPWAVEHDR lpWaveHdr; ++ enum win_wm_message msg; ++ DWORD param, msgcount = 0; ++ HANDLE ev; ++ ++ while (PULSE_RetrieveRingMessage(&wwo->msgRing, &msg, ¶m, &ev)) { ++ TRACE("Received %s %x\n", PULSE_getCmdString(msg), param); ++ msgcount++; ++ ++ switch (msg) { ++ case WINE_WM_PAUSING: ++ wwo->state = WINE_WS_PAUSED; ++ pa_threaded_mainloop_lock(PULSE_ml); ++ PULSE_WaitForOperation(pa_stream_cork(wwo->stream, 1, PULSE_StreamSuccessCallback, wwo)); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ SetEvent(ev); ++ break; ++ ++ case WINE_WM_RESTARTING: ++ if (wwo->state == WINE_WS_PAUSED) { ++ wwo->state = WINE_WS_PLAYING; ++ pa_threaded_mainloop_lock(PULSE_ml); ++ PULSE_WaitForOperation(pa_stream_cork(wwo->stream, 0, PULSE_StreamSuccessCallback, wwo)); ++ /* If the serverside buffer was near full before pause, we need to ++ * have space to write soon, so force playback start */ ++ PULSE_WaitForOperation(pa_stream_trigger(wwo->stream, PULSE_StreamSuccessCallback, wwo)); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ } ++ SetEvent(ev); ++ break; ++ ++ case WINE_WM_HEADER: ++ lpWaveHdr = (LPWAVEHDR)param; ++ /* insert buffer at the end of queue */ ++ { ++ LPWAVEHDR *wh; ++ for (wh = &(wwo->lpQueuePtr); *wh; wh = &((*wh)->lpNext)); ++ *wh = lpWaveHdr; ++ } ++ ++ if (!wwo->lpPlayPtr) ++ wodPlayer_BeginWaveHdr(wwo,lpWaveHdr); ++ if (wwo->state == WINE_WS_STOPPED) ++ wwo->state = WINE_WS_PLAYING; ++ ++ wodPlayer_Feed(wwo, pa_stream_writable_size(wwo->stream)); ++ SetEvent(ev); ++ break; ++ ++ case WINE_WM_RESETTING: ++ wodPlayer_Reset(wwo); ++ SetEvent(ev); ++ break; ++ ++ case WINE_WM_BREAKLOOP: ++ if (wwo->state == WINE_WS_PLAYING && wwo->lpLoopPtr != NULL) ++ /* ensure exit at end of current loop */ ++ wwo->dwLoops = 1; ++ SetEvent(ev); ++ break; ++ ++ case WINE_WM_FEED: /* Sent by the pulse thread */ ++ wodPlayer_Feed(wwo, pa_stream_writable_size(wwo->stream)); ++ SetEvent(ev); ++ break; ++ ++ case WINE_WM_XRUN: /* Sent by the pulse thread */ ++ WARN("Trying to recover from underrun.\n"); ++ /* Return all the queued wavehdrs, so the app will send more data */ ++ wodPlayer_NotifyCompletions(wwo, FALSE, (pa_usec_t)-1); ++ ++ /* Underrun means playback started, so don't allow future setting of the buffer attributes */ ++ if (wwo->buffer_attr.tlength == (uint32_t)-1) wwo->buffer_attr.tlength = 0; ++ ++ SetEvent(ev); ++ break; ++ ++ case WINE_WM_CLOSING: /* If param = 1, close because of a failure */ ++ wwo->hThread = NULL; ++ if ((DWORD)param == 1) { ++ /* If we are here, the stream has failed */ ++ wwo->state = WINE_WS_FAILED; ++ SetEvent(ev); ++ PULSE_DestroyRingMessage(&wwo->msgRing); ++ wodPlayer_NotifyCompletions(wwo, TRUE, 0); ++ wodPlayer_NotifyClient(wwo, WOM_CLOSE, 0L, 0L); ++ wwo->lpPlayPtr = wwo->lpQueuePtr = wwo->lpLoopPtr = NULL; ++ pa_threaded_mainloop_lock(PULSE_ml); ++ pa_stream_disconnect(wwo->stream); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ TRACE("Thread exiting because of failure.\n"); ++ ExitThread(1); ++ /* Stream instance will get dereferenced in wod_Close */ ++ } ++ wwo->state = WINE_WS_CLOSED; ++ /* sanity check: this should not happen since the device must have been reset before */ ++ if (wwo->lpQueuePtr || wwo->lpPlayPtr) ERR("out of sync\n"); ++ SetEvent(ev); ++ TRACE("Thread exiting.\n"); ++ ExitThread(0); ++ /* shouldn't go here */ ++ ++ default: ++ FIXME("unknown message %d\n", msg); ++ break; ++ } ++ } ++ ++ return msgcount; ++} ++ ++/************************************************************************** ++ * wodPlayer [internal] ++ * ++ * The thread which is responsible for returning WaveHdrs via DriverCallback, ++ * the writing of queued WaveHdrs, and all pause / reset stream management. ++ */ ++static DWORD CALLBACK wodPlayer(LPVOID lpParam) { ++ WINE_WAVEINST *wwo = (WINE_WAVEINST*)lpParam; ++ DWORD dwSleepTime = INFINITE; ++ ++ wwo->state = WINE_WS_STOPPED; ++ SetEvent(wwo->hStartUpEvent); ++ ++ /* Wait for the shortest time before an action is required. If there are ++ * no pending actions, wait forever for a command. */ ++ for (;;) { ++ TRACE("Waiting %u ms\n", dwSleepTime); ++ PULSE_WaitRingMessage(&wwo->msgRing, dwSleepTime); ++ ++ /* If no messages were processed during the timeout it might be because ++ * audio is not flowing yet, so check. */ ++ if (wodPlayer_ProcessMessages(wwo) == 0) ++ wodPlayer_CheckReleasing(wwo); ++ ++ /* If there is audio playing, return headers and get next timeout */ ++ if (wwo->state == WINE_WS_PLAYING) { ++ dwSleepTime = wodPlayer_NotifyCompletions(wwo, FALSE, WAVEOUT_GetStreamTime(wwo)); ++ } else ++ dwSleepTime = INFINITE; ++ } ++} ++ ++/************************************************************************** ++ * wodOpen [internal] ++ * ++ * Create a new pa_stream and connect it to a sink while creating a new ++ * WINE_WAVEINST to represent the device to the windows application. ++ */ ++static DWORD wodOpen(WORD wDevID, DWORD_PTR *lpdwUser, LPWAVEOPENDESC lpDesc, DWORD dwFlags) { ++ WINE_WAVEDEV *wdo; ++ WINE_WAVEINST *wwo = NULL; ++ DWORD ret = MMSYSERR_NOERROR; ++ pa_stream_flags_t stream_flags; ++ ++ TRACE("(%u, %p, %08X);\n", wDevID, lpDesc, dwFlags); ++ if (lpDesc == NULL) { ++ WARN("Invalid Parameter!\n"); ++ return MMSYSERR_INVALPARAM; ++ } ++ ++ if (wDevID >= PULSE_WodNumDevs) { ++ WARN("Asked for device %d, but only %d known!\n", wDevID, PULSE_WodNumDevs); ++ return MMSYSERR_BADDEVICEID; ++ } ++ wdo = &WOutDev[wDevID]; ++ ++ wwo = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(WINE_WAVEINST)); ++ if (!wwo) { ++ WARN("Out of memory?!\n"); ++ return MMSYSERR_NOMEM; ++ } ++ *lpdwUser = (DWORD_PTR)wwo; ++ ++ /* check to see if format is supported and make pa_sample_spec struct */ ++ if (!PULSE_SetupFormat(lpDesc->lpFormat, &wwo->sample_spec)) { ++ WARN("Bad format: tag=%04X nChannels=%d nSamplesPerSec=%d !\n", ++ lpDesc->lpFormat->wFormatTag, lpDesc->lpFormat->nChannels, ++ lpDesc->lpFormat->nSamplesPerSec); ++ ret = WAVERR_BADFORMAT; ++ goto exit; ++ } ++ ++ /* Check to see if this was just a query */ ++ if (dwFlags & WAVE_FORMAT_QUERY) { ++ TRACE("Query format: tag=%04X nChannels=%d nSamplesPerSec=%d !\n", ++ lpDesc->lpFormat->wFormatTag, lpDesc->lpFormat->nChannels, ++ lpDesc->lpFormat->nSamplesPerSec); ++ ret = MMSYSERR_NOERROR; ++ goto exit; ++ } ++ ++ if (TRACE_ON(wave)) { ++ char t[PA_SAMPLE_SPEC_SNPRINT_MAX]; ++ pa_sample_spec_snprint(t, sizeof(t), &wwo->sample_spec); ++ TRACE("Sample spec '%s'\n", t); ++ } ++ ++ wwo->wFlags = HIWORD(dwFlags & CALLBACK_TYPEMASK); ++ wwo->waveDesc = *lpDesc; ++ PULSE_InitRingMessage(&wwo->msgRing); ++ ++ wwo->stream = pa_stream_new(PULSE_context, "WaveOut", &wwo->sample_spec, NULL); ++ /* If server doesn't support sample_spec, it will error out here (re: 24bit) */ ++ if (!wwo->stream) { ++ ret = WAVERR_BADFORMAT; ++ goto exit; ++ } ++ ++ /* Setup callbacks */ ++ pa_stream_set_write_callback (wwo->stream, WAVEOUT_StreamRequestCallback, wwo); ++ pa_stream_set_state_callback (wwo->stream, PULSE_StreamStateCallback, wwo); ++ pa_stream_set_underflow_callback (wwo->stream, PULSE_StreamUnderflowCallback, wwo); ++ pa_stream_set_moved_callback (wwo->stream, PULSE_StreamMovedCallback, wwo); ++ pa_stream_set_suspended_callback (wwo->stream, PULSE_StreamSuspendedCallback, wwo); ++ ++ /* Setup Stream Flags */ ++ stream_flags = PA_STREAM_AUTO_TIMING_UPDATE; ++#if PA_API_VERSION >= 12 ++ stream_flags |= PA_STREAM_ADJUST_LATENCY; ++#endif ++ ++ /* Blank (but don't send) Buffer Attributes ++ * Note the maxlength bug on old servers */ ++ wwo->buffer_attr.prebuf = (uint32_t)-1; ++ wwo->buffer_attr.tlength = (uint32_t)-1; ++ wwo->buffer_attr.minreq = (uint32_t)-1; ++ wwo->buffer_attr.maxlength = ++ pa_context_get_server_protocol_version(PULSE_context) > 12 ? ++ (uint32_t)-1 : 1048576; /* 2^20 */ ++ ++ /* Try and connect */ ++ TRACE("Connecting stream for playback on %s.\n", wdo->device_name); ++ pa_threaded_mainloop_lock(PULSE_ml); ++ pa_stream_connect_playback(wwo->stream, wdo->device_name, NULL, stream_flags, NULL, NULL); ++ ++ /* Wait for connection */ ++ for (;;) { ++ pa_context_state_t cstate = pa_context_get_state(PULSE_context); ++ pa_stream_state_t sstate = pa_stream_get_state(wwo->stream); ++ ++ if (cstate == PA_CONTEXT_FAILED || cstate == PA_CONTEXT_TERMINATED || ++ sstate == PA_STREAM_FAILED || sstate == PA_STREAM_TERMINATED) { ++ ERR("Failed to connect stream context object: %s\n", pa_strerror(pa_context_errno(PULSE_context))); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ ret = MMSYSERR_NODRIVER; ++ goto exit; ++ } ++ ++ if (sstate == PA_STREAM_READY) ++ break; ++ ++ pa_threaded_mainloop_wait(PULSE_ml); ++ } ++ TRACE("(%p)->stream connected for playback.\n", wwo); ++ ++ /* Get the pa_timing_info structure */ ++ PULSE_WaitForOperation(pa_stream_update_timing_info(wwo->stream, PULSE_StreamSuccessCallback, wwo)); ++ wwo->timing_info = pa_stream_get_timing_info(wwo->stream); ++ assert(wwo->timing_info); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ ++ /* Create and start the wodPlayer() thread to manage playback */ ++ wwo->hStartUpEvent = CreateEventW(NULL, FALSE, FALSE, NULL); ++ wwo->hThread = CreateThread(NULL, 0, wodPlayer, (LPVOID)wwo, 0, &(wwo->dwThreadID)); ++ if (wwo->hThread) ++ SetThreadPriority(wwo->hThread, THREAD_PRIORITY_TIME_CRITICAL); ++ else { ++ ERR("Thread creation for the wodPlayer failed!\n"); ++ ret = MMSYSERR_NOMEM; ++ goto exit; ++ } ++ WaitForSingleObject(wwo->hStartUpEvent, INFINITE); ++ CloseHandle(wwo->hStartUpEvent); ++ wwo->hStartUpEvent = INVALID_HANDLE_VALUE; ++ ++ return wodPlayer_NotifyClient (wwo, WOM_OPEN, 0L, 0L); ++ ++exit: ++ if (!wwo) ++ return ret; ++ ++ if (wwo->hStartUpEvent != INVALID_HANDLE_VALUE) ++ CloseHandle(wwo->hStartUpEvent); ++ ++ if (wwo->msgRing.ring_buffer_size > 0) ++ PULSE_DestroyRingMessage(&wwo->msgRing); ++ ++ if (wwo->stream) { ++ if (pa_stream_get_state(wwo->stream) == PA_STREAM_READY) ++ pa_stream_disconnect(wwo->stream); ++ pa_stream_unref(wwo->stream); ++ wwo->stream = NULL; ++ } ++ HeapFree(GetProcessHeap(), 0, wwo); ++ ++ return ret; ++} ++ ++/************************************************************************** ++ * wodClose [internal] ++ */ ++static DWORD wodClose(WINE_WAVEINST *wwo) { ++ DWORD ret; ++ ++ TRACE("(%p);\n", wwo); ++ if (!wwo) { ++ WARN("Stream instance invalid.\n"); ++ return MMSYSERR_INVALHANDLE; ++ } ++ ++ if (wwo->state != WINE_WS_FAILED) { ++ if (wwo->lpQueuePtr && wwo->lpPlayPtr) { ++ WARN("buffers still playing !\n"); ++ return WAVERR_STILLPLAYING; ++ } ++ ++ pa_threaded_mainloop_lock(PULSE_ml); ++ PULSE_WaitForOperation(pa_stream_drain(wwo->stream, PULSE_StreamSuccessCallback, NULL)); ++ pa_stream_disconnect(wwo->stream); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ ++ if (wwo->hThread != INVALID_HANDLE_VALUE) ++ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_CLOSING, 0, TRUE); ++ ++ PULSE_DestroyRingMessage(&wwo->msgRing); ++ } ++ ++ if (wwo->stream) ++ pa_stream_unref(wwo->stream); ++ ret = wodPlayer_NotifyClient(wwo, WOM_CLOSE, 0L, 0L); ++ ++ HeapFree(GetProcessHeap(), 0, wwo); ++ ++ return ret; ++} ++ ++/************************************************************************** ++ * wodWrite [internal] ++ */ ++static DWORD wodWrite(WINE_WAVEINST *wwo, LPWAVEHDR lpWaveHdr, DWORD dwSize) { ++ if (!wwo || wwo->state == WINE_WS_FAILED) { ++ WARN("Stream instance invalid.\n"); ++ return MMSYSERR_INVALHANDLE; ++ } ++ ++ if (lpWaveHdr->lpData == NULL || !(lpWaveHdr->dwFlags & WHDR_PREPARED)) ++ return WAVERR_UNPREPARED; ++ ++ if (lpWaveHdr->dwFlags & WHDR_INQUEUE) ++ return WAVERR_STILLPLAYING; ++ ++ lpWaveHdr->dwFlags &= ~WHDR_DONE; ++ lpWaveHdr->dwFlags |= WHDR_INQUEUE; ++ lpWaveHdr->lpNext = 0; ++ lpWaveHdr->reserved = 0; ++ ++ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_HEADER, (DWORD)lpWaveHdr, FALSE); ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * wodPause [internal] ++ */ ++static DWORD wodPause(WINE_WAVEINST *wwo) { ++ if (!wwo || wwo->state == WINE_WS_FAILED) { ++ WARN("Stream instance invalid.\n"); ++ return MMSYSERR_INVALHANDLE; ++ } ++ ++ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_PAUSING, 0, TRUE); ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * wodGetPosition [internal] ++ */ ++static DWORD wodGetPosition(WINE_WAVEINST *wwo, LPMMTIME lpTime, DWORD uSize) { ++ pa_usec_t time, temp; ++ ++ if (!wwo || wwo->state == WINE_WS_FAILED) { ++ WARN("Stream instance invalid.\n"); ++ return MMSYSERR_INVALHANDLE; ++ } ++ ++ if (lpTime == NULL) return MMSYSERR_INVALPARAM; ++ ++ time = WAVEOUT_GetStreamTime(wwo); ++ ++ temp = pa_bytes_to_usec(wwo->dwLastReset, &wwo->sample_spec); ++ if (time > temp) time -= temp; else time = 0; ++ ++ return PULSE_UsecToMMTime(time, lpTime, &wwo->sample_spec); ++} ++/************************************************************************** ++ * wodBreakLoop [internal] ++ */ ++static DWORD wodBreakLoop(WINE_WAVEINST *wwo) { ++ if (!wwo || wwo->state == WINE_WS_FAILED) { ++ WARN("Stream instance invalid.\n"); ++ return MMSYSERR_INVALHANDLE; ++ } ++ ++ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_BREAKLOOP, 0, TRUE); ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * wodGetDevCaps [internal] ++ */ ++static DWORD wodGetDevCaps(DWORD wDevID, LPWAVEOUTCAPSW lpCaps, DWORD dwSize) { ++ TRACE("(%u, %p, %u);\n", wDevID, lpCaps, dwSize); ++ ++ if (lpCaps == NULL) return MMSYSERR_NOTENABLED; ++ ++ if (wDevID >= PULSE_WodNumDevs) { ++ TRACE("Asked for device %d, but only %d known!\n", wDevID, PULSE_WodNumDevs); ++ return MMSYSERR_INVALHANDLE; ++ } ++ ++ memcpy(lpCaps, &(WOutDev[wDevID].caps.out), min(dwSize, sizeof(*lpCaps))); ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * wodGetNumDevs [internal] ++ * Context-sanity check here, as if we respond with 0, WINE will move on ++ * to the next waveout driver. ++ */ ++static DWORD wodGetNumDevs() { ++ if (!PULSE_ml || !PULSE_context || pa_context_get_state(PULSE_context) != PA_CONTEXT_READY) ++ return 0; ++ ++ return PULSE_WodNumDevs; ++} ++ ++/************************************************************************** ++ * wodGetVolume [internal] ++ */ ++static DWORD wodGetVolume(WINE_WAVEINST *wwo, LPDWORD lpdwVol) { ++ float value1, value2; ++ DWORD wleft, wright; ++ ++ if (!wwo || wwo->state == WINE_WS_FAILED) { ++ WARN("Stream instance invalid.\n"); ++ return MMSYSERR_INVALHANDLE; ++ } ++ ++ TRACE("(%p, %p);\n", wwo, lpdwVol); ++ ++ if (lpdwVol == NULL) ++ return MMSYSERR_NOTENABLED; ++ ++ pa_threaded_mainloop_lock(PULSE_ml); ++ if (wwo->stream && PULSE_context && pa_context_get_state(PULSE_context) == PA_CONTEXT_READY && ++ pa_stream_get_state(wwo->stream) == PA_STREAM_READY) { ++ PULSE_WaitForOperation(pa_context_get_sink_input_info(PULSE_context, pa_stream_get_index(wwo->stream), WAVEOUT_SinkInputInfoCallback, wwo)); ++ } ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ ++ ++ if (wwo->volume.channels == 2) { ++ value1 = pa_sw_volume_to_dB(wwo->volume.values[0]); ++ value2 = pa_sw_volume_to_dB(wwo->volume.values[1]); ++ } else { ++ value1 = pa_sw_volume_to_dB(pa_cvolume_avg(&wwo->volume)); ++ value2 = value1; ++ } ++ ++ if (value1 < -60) ++ wleft = 0; ++ else ++ ++ if (value2 < -60) ++ wright = 0; ++ else ++ wright = 0xFFFFl - ((value2 / -60)*(float)0xFFFFl); ++ ++ if (wleft > 0xFFFFl) ++ wleft = 0xFFFFl; ++ if (wright > 0xFFFFl) ++ wright = 0xFFFFl; ++ ++ *lpdwVol = (WORD)wleft + (WORD)(wright << 16); ++ ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * wodSetVolume [internal] ++ */ ++static DWORD wodSetVolume(WINE_WAVEINST *wwo, DWORD dwParam1) { ++ double value1, value2; ++ ++ TRACE("(%p, %08X);\n", wwo, dwParam1); ++ if (!wwo || wwo->state == WINE_WS_FAILED) { ++ WARN("Stream instance invalid.\n"); ++ return MMSYSERR_INVALHANDLE; ++ } ++ ++ /* waveOut volumes are /supposed/ to be logarithmic */ ++ value1 = LOWORD(dwParam1) == 0 ? PA_DECIBEL_MININFTY : ((float)(0xFFFFl - LOWORD(dwParam1))/0xFFFFl) * -60.0; ++ value2 = HIWORD(dwParam1) == 0 ? PA_DECIBEL_MININFTY : ((float)(0xFFFFl - HIWORD(dwParam1))/0xFFFFl) * -60.0; ++ ++ if (wwo->sample_spec.channels == 2) { ++ wwo->volume.channels = 2; ++ wwo->volume.values[0] = pa_sw_volume_from_dB(value1); ++ wwo->volume.values[1] = pa_sw_volume_from_dB(value2); ++ } else { ++ if (value1 != value2) FIXME("Non-stereo streams can't pan!\n"); ++ wwo->volume.channels = wwo->sample_spec.channels; ++ pa_cvolume_set(&wwo->volume, wwo->volume.channels, pa_sw_volume_from_dB(max(value1, value2))); ++ } ++ ++ if (TRACE_ON(wave)) { ++ char s[PA_CVOLUME_SNPRINT_MAX]; ++ pa_cvolume_snprint(s, PA_CVOLUME_SNPRINT_MAX, &wwo->volume); ++ TRACE("%s\n", s); ++ } ++ ++ pa_threaded_mainloop_lock(PULSE_ml); ++ if (!wwo->stream || !PULSE_context || pa_context_get_state(PULSE_context) != PA_CONTEXT_READY || ++ pa_stream_get_state(wwo->stream) != PA_STREAM_READY || !pa_cvolume_valid(&wwo->volume)) { ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ return MMSYSERR_NOERROR; ++ } ++ ++ PULSE_WaitForOperation(pa_context_set_sink_input_volume(PULSE_context, ++ pa_stream_get_index(wwo->stream), &wwo->volume, ++ PULSE_ContextSuccessCallback, wwo)); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * wodRestart [internal] ++ */ ++static DWORD wodRestart(WINE_WAVEINST *wwo) { ++ if (!wwo || wwo->state == WINE_WS_FAILED) { ++ WARN("Stream instance invalid.\n"); ++ return MMSYSERR_INVALHANDLE; ++ } ++ ++ if (wwo->state == WINE_WS_PAUSED) ++ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_RESTARTING, 0, TRUE); ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * wodReset [internal] ++ */ ++static DWORD wodReset(WINE_WAVEINST *wwo) { ++ if (!wwo || wwo->state == WINE_WS_FAILED) { ++ WARN("Stream instance invalid.\n"); ++ return MMSYSERR_INVALHANDLE; ++ } ++ ++ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_RESETTING, 0, TRUE); ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * wodDevInterfaceSize [internal] ++ */ ++static DWORD wodDevInterfaceSize(UINT wDevID, LPDWORD dwParam1) { ++ ++ *dwParam1 = MultiByteToWideChar(CP_ACP, 0, WOutDev[wDevID].interface_name, -1, NULL, 0) * sizeof(WCHAR); ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * wodDevInterface [internal] ++ */ ++static DWORD wodDevInterface(UINT wDevID, PWCHAR dwParam1, DWORD dwParam2) { ++ if (dwParam2 >= MultiByteToWideChar(CP_ACP, 0, WOutDev[wDevID].interface_name, -1, ++ NULL, 0 ) * sizeof(WCHAR)) ++ { ++ MultiByteToWideChar(CP_ACP, 0, WOutDev[wDevID].interface_name, -1, ++ dwParam1, dwParam2 / sizeof(WCHAR)); ++ return MMSYSERR_NOERROR; ++ } ++ return MMSYSERR_INVALPARAM; ++} ++ ++DWORD wodDsDesc(UINT wDevID, PDSDRIVERDESC desc) { ++ TRACE("(%u, %p)\n", wDevID, desc); ++ *desc = WOutDev[wDevID].ds_desc; ++ return MMSYSERR_NOERROR; ++} ++ ++/************************************************************************** ++ * wodMessage (WINEPULSE.@) ++ */ ++DWORD WINAPI PULSE_wodMessage(UINT wDevID, UINT wMsg, DWORD_PTR dwUser, DWORD_PTR dwParam1, DWORD_PTR dwParam2) { ++ ++ switch (wMsg) { ++ ++ case DRVM_INIT: ++ case DRVM_EXIT: ++ case DRVM_ENABLE: ++ case DRVM_DISABLE: ++ return 0; ++ ++ /* WaveOut Playback related functions */ ++ case WODM_OPEN: return wodOpen (wDevID, (DWORD_PTR*)dwUser, (LPWAVEOPENDESC)dwParam1, dwParam2); ++ case WODM_CLOSE: return wodClose ((WINE_WAVEINST*)dwUser); ++ case WODM_WRITE: return wodWrite ((WINE_WAVEINST*)dwUser, (LPWAVEHDR)dwParam1, dwParam2); ++ case WODM_PAUSE: return wodPause ((WINE_WAVEINST*)dwUser); ++ case WODM_GETPOS: return wodGetPosition ((WINE_WAVEINST*)dwUser, (LPMMTIME)dwParam1, dwParam2); ++ case WODM_BREAKLOOP: return wodBreakLoop ((WINE_WAVEINST*)dwUser); ++ case WODM_RESTART: return wodRestart ((WINE_WAVEINST*)dwUser); ++ case WODM_RESET: return wodReset ((WINE_WAVEINST*)dwUser); ++ ++ case WODM_GETVOLUME: return wodGetVolume ((WINE_WAVEINST*)dwUser, (LPDWORD)dwParam1); ++ case WODM_SETVOLUME: return wodSetVolume ((WINE_WAVEINST*)dwUser, dwParam1); ++ ++ case WODM_PREPARE: ++ case WODM_UNPREPARE: ++ ++ case WODM_GETPITCH: ++ case WODM_SETPITCH: ++ ++ case WODM_GETPLAYBACKRATE: ++ case WODM_SETPLAYBACKRATE: ++ return MMSYSERR_NOTSUPPORTED; ++ ++ /* Device enumeration, directsound and capabilities */ ++ case WODM_GETDEVCAPS: return wodGetDevCaps (wDevID, (LPWAVEOUTCAPSW)dwParam1, dwParam2); ++ case WODM_GETNUMDEVS: return wodGetNumDevs (); ++ case DRV_QUERYDEVICEINTERFACESIZE: return wodDevInterfaceSize (wDevID, (LPDWORD)dwParam1); ++ case DRV_QUERYDEVICEINTERFACE: return wodDevInterface (wDevID, (PWCHAR)dwParam1, dwParam2); ++ case DRV_QUERYDSOUNDIFACE: return MMSYSERR_NOTSUPPORTED; ++ case DRV_QUERYDSOUNDDESC: return wodDsDesc (wDevID, (PDSDRIVERDESC)dwParam1); ++ ++ default: ++ FIXME("unknown message %d!\n", wMsg); ++ } ++ return MMSYSERR_NOTSUPPORTED; ++} ++ ++#else /* !HAVE_PULSEAUDIO */ ++ ++/************************************************************************** ++ * wodMessage (WINEPULSE.@) ++ */ ++DWORD WINAPI PULSE_wodMessage(WORD wDevID, WORD wMsg, DWORD dwUser, ++ DWORD dwParam1, DWORD dwParam2) { ++ FIXME("(%u, %04X, %08X, %08X, %08X):stub\n", wDevID, wMsg, dwUser, ++ dwParam1, dwParam2); ++ return MMSYSERR_NOTENABLED; ++} ++ ++#endif /* HAVE_PULSEAUDIO */ +diff --git a/dlls/winepulse.drv/winepulse.drv.spec b/dlls/winepulse.drv/winepulse.drv.spec +new file mode 100644 +index 0000000..1b49460 +--- /dev/null ++++ b/dlls/winepulse.drv/winepulse.drv.spec +@@ -0,0 +1,3 @@ ++@ stdcall -private DriverProc(long long long long long long) PULSE_DriverProc ++@ stdcall -private wodMessage(long long long long long long) PULSE_wodMessage ++@ stdcall -private widMessage(long long long long long long) PULSE_widMessage +diff --git a/dlls/winepulse.drv/winepulse.h b/dlls/winepulse.drv/winepulse.h +new file mode 100644 +index 0000000..4a834cd +--- /dev/null ++++ b/dlls/winepulse.drv/winepulse.h +@@ -0,0 +1,196 @@ ++/* Definitions for PulseAudio Wine Driver ++ * ++ * Copyright 2009 Arthur Taylor ++ * ++ * 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, write to the Free Software ++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA ++ */ ++ ++#ifndef __WINE_CONFIG_H ++# error You must include config.h to use this header ++#endif ++ ++#if defined(HAVE_PULSEAUDIO) && !defined(__WINEPULSE_H) ++#define __WINEPULSE_H ++ ++#include "mmreg.h" ++#include "dsound.h" ++#include "dsdriver.h" ++ ++#include "ks.h" ++#include "ksmedia.h" ++#include "ksguid.h" ++ ++#include ++ ++/* state diagram for waveOut writing: ++ * ++ * +---------+-------------+---------------+---------------------------------+ ++ * | state | function | event | new state | ++ * +---------+-------------+---------------+---------------------------------+ ++ * | | open() | | STOPPED | ++ * | PAUSED | write() | | PAUSED | ++ * | STOPPED | write() | | PLAYING | ++ * | PLAYING | write() | HEADER | PLAYING | ++ * | (other) | write() | | | ++ * | (any) | pause() | PAUSING | PAUSED | ++ * | PAUSED | restart() | RESTARTING | PLAYING (if no thrd => STOPPED) | ++ * | (any) | reset() | RESETTING | STOPPED | ++ * | (any) | close() | CLOSING | CLOSED | ++ * +---------+-------------+---------------+---------------------------------+ ++ */ ++ ++/* states of the playing device */ ++#define WINE_WS_PLAYING 1 ++#define WINE_WS_PAUSED 2 ++#define WINE_WS_STOPPED 3 ++#define WINE_WS_CLOSED 4 ++#define WINE_WS_FAILED 5 ++ ++#define PULSE_ALL_FORMATS \ ++ WAVE_FORMAT_1M08 | /* Mono 11025Hz 8-bit */\ ++ WAVE_FORMAT_1M16 | /* Mono 11025Hz 16-bit */\ ++ WAVE_FORMAT_1S08 | /* Stereo 11025Hz 8-bit */\ ++ WAVE_FORMAT_1S16 | /* Stereo 11025Hz 16-bit */\ ++ WAVE_FORMAT_2M08 | /* Mono 22050Hz 8-bit */\ ++ WAVE_FORMAT_2M16 | /* Mono 22050Hz 16-bit */\ ++ WAVE_FORMAT_2S08 | /* Stereo 22050Hz 8-bit */\ ++ WAVE_FORMAT_2S16 | /* Stereo 22050Hz 16-bit */\ ++ WAVE_FORMAT_4M08 | /* Mono 44100Hz 8-bit */\ ++ WAVE_FORMAT_4M16 | /* Mono 44100Hz 16-bit */\ ++ WAVE_FORMAT_4S08 | /* Stereo 44100Hz 8-bit */\ ++ WAVE_FORMAT_4S16 | /* Stereo 44100Hz 16-bit */\ ++ WAVE_FORMAT_48M08 | /* Mono 48000Hz 8-bit */\ ++ WAVE_FORMAT_48S08 | /* Stereo 48000Hz 8-bit */\ ++ WAVE_FORMAT_48M16 | /* Mono 48000Hz 16-bit */\ ++ WAVE_FORMAT_48S16 | /* Stereo 48000Hz 16-bit */\ ++ WAVE_FORMAT_96M08 | /* Mono 96000Hz 8-bit */\ ++ WAVE_FORMAT_96S08 | /* Stereo 96000Hz 8-bit */\ ++ WAVE_FORMAT_96M16 | /* Mono 96000Hz 16-bit */\ ++ WAVE_FORMAT_96S16 /* Stereo 96000Hz 16-bit */ ++ ++/* events to be sent to device */ ++enum win_wm_message { ++ WINE_WM_PAUSING = WM_USER + 1, WINE_WM_RESTARTING, WINE_WM_RESETTING, WINE_WM_HEADER, ++ WINE_WM_BREAKLOOP, WINE_WM_CLOSING, WINE_WM_STARTING, WINE_WM_STOPPING, WINE_WM_XRUN, WINE_WM_FEED ++}; ++ ++typedef struct { ++ enum win_wm_message msg; /* message identifier */ ++ DWORD param; /* parameter for this message */ ++ HANDLE hEvent; /* if message is synchronous, handle of event for synchro */ ++} PULSE_MSG; ++ ++/* implement an in-process message ring for better performance ++ * (compared to passing thru the server) ++ * this ring will be used by the input (resp output) record (resp playback) routine ++ */ ++typedef struct { ++ PULSE_MSG * messages; ++ int ring_buffer_size; ++ int msg_tosave; ++ int msg_toget; ++/* Either pipe or event is used, but that is defined in pulse.c, ++ * since this is a global header we define both here */ ++ int msg_pipe[2]; ++ HANDLE msg_event; ++ CRITICAL_SECTION msg_crst; ++} PULSE_MSG_RING; ++ ++typedef struct WINE_WAVEDEV WINE_WAVEDEV; ++typedef struct WINE_WAVEINST WINE_WAVEINST; ++ ++/* Per-playback/record device */ ++struct WINE_WAVEDEV { ++ char interface_name[MAXPNAMELEN * 2]; ++ char *device_name; ++ pa_cvolume volume; ++ ++ union { ++ WAVEOUTCAPSW out; ++ WAVEINCAPSW in; ++ } caps; ++ ++ /* DirectSound stuff */ ++ DSDRIVERDESC ds_desc; ++ DSDRIVERCAPS ds_caps; ++}; ++ ++/* Per-playback/record instance */ ++struct WINE_WAVEINST { ++ volatile INT state; /* one of the WINE_WS_ manifest constants */ ++ WAVEOPENDESC waveDesc; ++ WORD wFlags; ++ ++ /* PulseAudio specific data */ ++ pa_stream *stream; /* The PulseAudio stream */ ++ const pa_timing_info *timing_info; /* The timing info structure for the stream */ ++ pa_sample_spec sample_spec; /* Sample spec of this stream / device */ ++ pa_cvolume volume; /* Software volume of the stream */ ++ pa_buffer_attr buffer_attr; /* Buffer attribute, may not be used */ ++ ++ /* waveIn / waveOut wavaHdr */ ++ LPWAVEHDR lpQueuePtr; /* Start of queued WAVEHDRs (waiting to be notified) */ ++ LPWAVEHDR lpPlayPtr; /* Start of not yet fully written buffers */ ++ DWORD dwPartialOffset; /* Offset of not yet written bytes in lpPlayPtr */ ++ LPWAVEHDR lpLoopPtr; /* Pointer of first buffer in loop, if any */ ++ DWORD dwLoops; /* Private copy of loop counter */ ++ DWORD dwLastReset; /* When the last reset occured, as pa stream time doesn't reset */ ++ ++ /* waveIn specific */ ++ const void *buffer; /* Pointer to the latest data fragment for recording streams */ ++ DWORD buffer_length; /* How large the latest data fragment is */ ++ DWORD buffer_read_offset; /* How far into latest data fragment we last read */ ++ ++ /* Thread communication and synchronization stuff */ ++ HANDLE hStartUpEvent; ++ HANDLE hThread; ++ DWORD dwThreadID; ++ PULSE_MSG_RING msgRing; ++}; ++ ++/* We establish one context per instance, so make it global to the lib */ ++pa_context *PULSE_context; /* Connection Context */ ++pa_threaded_mainloop *PULSE_ml; /* PA Runtime information */ ++ ++/* WaveIn / WaveOut devices */ ++WINE_WAVEDEV *WOutDev; ++WINE_WAVEDEV *WInDev; ++DWORD PULSE_WodNumDevs; ++DWORD PULSE_WidNumDevs; ++ ++/* pulse.c: PulseAudio Async Callbacks */ ++void PULSE_StreamSuccessCallback(pa_stream *s, int success, void *userdata); ++void PULSE_StreamStateCallback(pa_stream *s, void *userdata); ++void PULSE_StreamUnderflowCallback(pa_stream *s, void *userdata); ++void PULSE_StreamSuspendedCallback(pa_stream *s, void *userdata); ++void PULSE_StreamMovedCallback(pa_stream *s, void *userdata); ++void PULSE_ContextSuccessCallback(pa_context *c, int success, void *userdata); ++ ++/* pulse.c: General Functions */ ++void PULSE_WaitForOperation(pa_operation *o); ++BOOL PULSE_SetupFormat(LPWAVEFORMATEX wf, pa_sample_spec *ss); ++HRESULT PULSE_UsecToMMTime(pa_usec_t time, LPMMTIME lpTime, const pa_sample_spec *ss); ++ ++/* pulse.c: Message Ring */ ++int PULSE_InitRingMessage(PULSE_MSG_RING* omr); ++int PULSE_DestroyRingMessage(PULSE_MSG_RING* omr); ++void PULSE_ResetRingMessage(PULSE_MSG_RING* omr); ++void PULSE_WaitRingMessage(PULSE_MSG_RING* omr, DWORD sleep); ++int PULSE_AddRingMessage(PULSE_MSG_RING* omr, enum win_wm_message msg, DWORD param, BOOL wait); ++int PULSE_RetrieveRingMessage(PULSE_MSG_RING* omr, enum win_wm_message *msg, DWORD *param, HANDLE *hEvent); ++ ++/* pulse.c: Tracing */ ++const char * PULSE_getCmdString(enum win_wm_message msg); ++#endif From 4bb94d8fc364fd12079c8827f3f8b22a15d5644a Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Wed, 24 Jun 2009 10:53:30 +0000 Subject: [PATCH 117/715] - various fixes --- wine-notepad.desktop | 2 +- wine-oleview.desktop | 8 +++++ wine-regedit.desktop | 2 +- wine-wineboot.desktop | 2 +- wine-winhelp.desktop | 4 +-- wine-wordpad.desktop | 8 +++++ wine.menu | 2 +- wine.spec | 71 +++++++++++++++++++++++++++++++++++++++---- 8 files changed, 87 insertions(+), 12 deletions(-) create mode 100644 wine-oleview.desktop create mode 100644 wine-wordpad.desktop diff --git a/wine-notepad.desktop b/wine-notepad.desktop index f341041..fa5a1b1 100644 --- a/wine-notepad.desktop +++ b/wine-notepad.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Name=notepad +Name=Notepad Comment=Text Editor Exec=notepad Terminal=false diff --git a/wine-oleview.desktop b/wine-oleview.desktop new file mode 100644 index 0000000..906f084 --- /dev/null +++ b/wine-oleview.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Name=Wine OLE View +Comment=Windows OLE View +Exec=wine oleview +Terminal=false +Type=Application +Encoding=UTF-8 +Categories=X-Wine; diff --git a/wine-regedit.desktop b/wine-regedit.desktop index 4b81843..7fb1c96 100644 --- a/wine-regedit.desktop +++ b/wine-regedit.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Name=regedit +Name=Regedit Comment=Wine registry editor Exec=regedit Terminal=false diff --git a/wine-wineboot.desktop b/wine-wineboot.desktop index 3b29f99..a29a3f6 100644 --- a/wine-wineboot.desktop +++ b/wine-wineboot.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Name=wineboot +Name=Wine Boot Comment=Simulate restart Exec=wineboot Terminal=false diff --git a/wine-winhelp.desktop b/wine-winhelp.desktop index c439c8a..b9f5285 100644 --- a/wine-winhelp.desktop +++ b/wine-winhelp.desktop @@ -1,7 +1,7 @@ [Desktop Entry] -Name=winhelp +Name=Wine Help Comment=Windows Help Browser -Exec=winhelp +Exec=wine winhlp32 Terminal=false Type=Application Encoding=UTF-8 diff --git a/wine-wordpad.desktop b/wine-wordpad.desktop new file mode 100644 index 0000000..d535956 --- /dev/null +++ b/wine-wordpad.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Name=Wine Wordpad +Comment=Text Editor +Exec=wine wordpad +Terminal=false +Type=Application +Encoding=UTF-8 +Categories=X-Wine; diff --git a/wine.menu b/wine.menu index 8cfd94c..5fdb60f 100644 --- a/wine.menu +++ b/wine.menu @@ -4,7 +4,7 @@ Applications - Wine + wine-wine Wine.directory X-Wine diff --git a/wine.spec b/wine.spec index aa0ec3c..5113816 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ Name: wine Version: 1.1.24 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -31,6 +31,8 @@ Source104: wine-winefile.desktop Source105: wine-winemine.desktop Source106: wine-winhelp.desktop Source107: wine-wineboot.desktop +Source108: wine-wordpad.desktop +Source109: wine-oleview.desktop # desktop dir Source200: wine.menu @@ -106,7 +108,6 @@ Requires: wine-capi = %{version}-%{release} Requires: wine-cms = %{version}-%{release} Requires: wine-desktop = %{version}-%{release} Requires: wine-ldap = %{version}-%{release} -Requires: wine-nas = %{version}-%{release} Requires: wine-tools = %{version}-%{release} Requires: wine-twain = %{version}-%{release} Requires: wine-pulseaudio = %{version}-%{release} @@ -132,6 +133,8 @@ Requires(post): /sbin/ldconfig Requires(postun): /sbin/ldconfig Obsoletes: wine <= 0.9.15-1%{?dist} Obsoletes: wine-arts < 0.9.34 +# fix dns resolution (#492700) +Requires: nss-mdns%{_isa} %description core Wine core package includes the basic wine stuff needed by all other packages. @@ -232,6 +235,22 @@ Requires: wine-core = %{version}-%{release} This package adds a native pulseaudio driver for wine. This is not an official wine audio driver. Please do not report bugs regarding this driver at winehq.org. +%package alsa +Summary: Alsa support for wine +Group: System Environment/Libraries +Requires: wine-core = %{version}-%{release} + +%description alsa +This package adds an alsa driver for wine. + +%package oss +Summary: OSS support for wine +Group: System Environment/Libraries +Requires: wine-core = %{version}-%{release} + +%description oss +This package adds an oss driver for wine. + %prep %setup -q -n %{name}-%{version}-fe %patch1 @@ -318,6 +337,16 @@ desktop-file-install \ --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ %{SOURCE107} +desktop-file-install \ + --vendor=fedora \ + --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ + %{SOURCE108} + +desktop-file-install \ + --vendor=fedora \ + --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ + %{SOURCE109} + desktop-file-install \ --vendor=fedora \ --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ @@ -383,8 +412,18 @@ update-desktop-database &>/dev/null || : %post capi -p /sbin/ldconfig %postun capi -p /sbin/ldconfig +%post pulseaudio -p /sbin/ldconfig +%postun pulseaudio -p /sbin/ldconfig + +%post alsa -p /sbin/ldconfig +%postun alsa -p /sbin/ldconfig + +%post oss -p /sbin/ldconfig +%postun oss -p /sbin/ldconfig + %files %defattr(-,root,root,-) +# meta package %files core %defattr(-,root,root,-) @@ -678,7 +717,6 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/windowscodecs.dll.so %{_libdir}/wine/wineaudioio.drv.so %{_libdir}/wine/winedos.dll.so -%{_libdir}/wine/wineoss.drv.so %{_libdir}/wine/winecoreaudio.drv.so %{_libdir}/wine/winejoystick.drv.so %{_libdir}/wine/winex11.drv.so @@ -705,7 +743,6 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/security.dll.so %{_libdir}/wine/sfc.dll.so %{_datadir}/wine/fonts/ -%{_libdir}/wine/winealsa.drv.so %{_libdir}/wine/wineps.drv.so %{_libdir}/wine/wineps16.drv16 %{_libdir}/wine/d3d8.dll.so @@ -787,16 +824,19 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/write.exe.so %files desktop +%defattr(-,root,root,-) %{_datadir}/applications/fedora-wine-notepad.desktop %{_datadir}/applications/fedora-wine-winefile.desktop %{_datadir}/applications/fedora-wine-winemine.desktop -%{_datadir}/applications/fedora-wine-winhelp.desktop %{_datadir}/applications/fedora-wine-mime-msi.desktop %{_datadir}/applications/fedora-wine.desktop %{_datadir}/applications/fedora-wine-regedit.desktop %{_datadir}/applications/fedora-wine-uninstaller.desktop %{_datadir}/applications/fedora-wine-winecfg.desktop %{_datadir}/applications/fedora-wine-wineboot.desktop +%{_datadir}/applications/fedora-wine-winhelp.desktop +%{_datadir}/applications/fedora-wine-wordpad.desktop +%{_datadir}/applications/fedora-wine-oleview.desktop %{_datadir}/desktop-directories/Wine.directory %{_sysconfdir}/xdg/menus/applications-merged/wine.menu %{_initrddir}/wine @@ -860,16 +900,35 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/*.def %files pulseaudio +%defattr(-,root,root,-) # winepulse documentation %doc README-FEDORA-PULSEAUDIO %{_libdir}/wine/winepulse.drv.so +%files alsa +%defattr(-,root,root,-) +%{_libdir}/wine/winealsa.drv.so + +%files oss +%defattr(-,root,root,-) +%{_libdir}/wine/wineoss.drv.so + %changelog +* Sun Jun 21 2009 Andreas Bierfert +- 1.1.24-2 +- adjust wine-menu to follow wine behavior (wine-wine instead of Wine) + (fixes #479649, #495953) +- fix wine help desktop entry (#495953, #507154) +- add some more wine application desktop entries (#495953) +- split alsa/oss support into wine-alsa/wine-oss +- drop nas require from wine meta package +- fix dns resolution (#492700) + * Fri Jun 19 2009 Andreas Bierfert - 1.1.24-1 - version upgrade - WinePulse 0.28 -- drop meta package requires for jack and esd +- drop meta package requires for jack and esd (#492983) * Wed Jun 10 2009 Andreas Bierfert - 1.1.23-1 From ed7dae3c4e38ee907291315827610195bd843c93 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Fri, 10 Jul 2009 04:43:04 +0000 Subject: [PATCH 118/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 17 ++++++++++++++--- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/.cvsignore b/.cvsignore index ab65448..4f7d0c4 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-1.1.24-fe.tar.bz2 +wine-1.1.25-fe.tar.bz2 diff --git a/sources b/sources index 3ed9b0a..e968abe 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -6879c4fbd2e8cf3c4589465868b021a1 wine-1.1.24-fe.tar.bz2 +e45a112c996c62d76aea3bf7de653089 wine-1.1.25-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index 5113816..aa96737 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ Name: wine -Version: 1.1.24 -Release: 2%{?dist} +Version: 1.1.25 +Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -134,7 +134,8 @@ Requires(postun): /sbin/ldconfig Obsoletes: wine <= 0.9.15-1%{?dist} Obsoletes: wine-arts < 0.9.34 # fix dns resolution (#492700) -Requires: nss-mdns%{_isa} +# require both to be sure 64bit is present as well... +Requires: nss-mdns nss-mdns%{_isa} %description core Wine core package includes the basic wine stuff needed by all other packages. @@ -536,6 +537,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/dpnhpast.dll.so %{_libdir}/wine/dpnlobby.dll.so %{_libdir}/wine/dpwsockx.dll.so +%{_libdir}/wine/drmclien.dll.so %{_libdir}/wine/dsound.dll.so %{_libdir}/wine/dssenh.dll.so %{_libdir}/wine/dswave.dll.so @@ -664,6 +666,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/rpcrt4.dll.so %{_libdir}/wine/rsabase.dll.so %{_libdir}/wine/rsaenh.dll.so +%{_libdir}/wine/rtutils.dll.so %{_libdir}/wine/sccbase.dll.so %{_libdir}/wine/schannel.dll.so %{_libdir}/wine/secur32.dll.so @@ -914,6 +917,14 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/wineoss.drv.so %changelog +* Thu Jul 09 2009 Andreas Bierfert +- 1.1.25-1 +- version upgrade (#509648) + +* Mon Jun 29 2009 Andreas Bierfert +- 1.1.24-3 +- pull in nss correctly on x86_64 + * Sun Jun 21 2009 Andreas Bierfert - 1.1.24-2 - adjust wine-menu to follow wine behavior (wine-wine instead of Wine) From e079f76bffe1945c116c07fd36ce836eb3d87bc7 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 19 Jul 2009 10:47:49 +0000 Subject: [PATCH 119/715] - 1.1.26-1 - version upgrade - WinePulse 0.29 - require Xrender isa for x86_64 (#510947) --- .cvsignore | 2 +- ... => adding-pulseaudio-to-winecfg-0.3.patch | 138 +++++++++--------- sources | 2 +- wine.spec | 18 ++- ...patch => winepulse-0.29-configure.ac.patch | 12 +- winepulse-0.28.patch => winepulse-0.29.patch | 73 ++++----- 6 files changed, 118 insertions(+), 127 deletions(-) rename adding-pulseaudio-to-winecfg.patch => adding-pulseaudio-to-winecfg-0.3.patch (86%) rename winepulse-0.17-configure.ac.patch => winepulse-0.29-configure.ac.patch (90%) rename winepulse-0.28.patch => winepulse-0.29.patch (98%) diff --git a/.cvsignore b/.cvsignore index 4f7d0c4..36f3eca 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-1.1.25-fe.tar.bz2 +wine-1.1.26-fe.tar.bz2 diff --git a/adding-pulseaudio-to-winecfg.patch b/adding-pulseaudio-to-winecfg-0.3.patch similarity index 86% rename from adding-pulseaudio-to-winecfg.patch rename to adding-pulseaudio-to-winecfg-0.3.patch index eb1ffd6..7ee1060 100644 --- a/adding-pulseaudio-to-winecfg.patch +++ b/adding-pulseaudio-to-winecfg-0.3.patch @@ -1,8 +1,8 @@ diff --git a/programs/winecfg/Bg.rc b/programs/winecfg/Bg.rc -index 8861657..cf91012 100644 +index 00cfbe8..ce2c8c7 100644 --- a/programs/winecfg/Bg.rc +++ b/programs/winecfg/Bg.rc -@@ -274,6 +274,7 @@ BEGIN +@@ -277,6 +277,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Basic" IDS_ACCEL_EMULATION "Emulation" @@ -11,10 +11,10 @@ index 8861657..cf91012 100644 IDS_DRIVER_ESOUND "EsounD Driver" IDS_DRIVER_OSS "OSS Driver" diff --git a/programs/winecfg/Cs.rc b/programs/winecfg/Cs.rc -index 07f035f..8897237 100644 +index b34dd06..348153c 100644 --- a/programs/winecfg/Cs.rc +++ b/programs/winecfg/Cs.rc -@@ -273,6 +273,7 @@ BEGIN +@@ -277,6 +277,7 @@ BEGIN IDS_ACCEL_STANDARD "Standardn" IDS_ACCEL_BASIC "Zkladn" IDS_ACCEL_EMULATION "Emulace" @@ -23,10 +23,10 @@ index 07f035f..8897237 100644 IDS_DRIVER_ESOUND "Ovlada EsounD" IDS_DRIVER_OSS "Ovlada OSS" diff --git a/programs/winecfg/Da.rc b/programs/winecfg/Da.rc -index 1d655ad..a1c9653 100644 +index 62b781b..a604ea3 100644 --- a/programs/winecfg/Da.rc +++ b/programs/winecfg/Da.rc -@@ -268,6 +268,7 @@ BEGIN +@@ -271,6 +271,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Grundlggende" IDS_ACCEL_EMULATION "Emulring" @@ -35,10 +35,10 @@ index 1d655ad..a1c9653 100644 IDS_DRIVER_ESOUND "EsounD-driver" IDS_DRIVER_OSS "OSS-driver" diff --git a/programs/winecfg/De.rc b/programs/winecfg/De.rc -index 9ed3d63..614247b 100644 +index 53c412c..8f70399 100644 --- a/programs/winecfg/De.rc +++ b/programs/winecfg/De.rc -@@ -268,6 +268,7 @@ BEGIN +@@ -273,6 +273,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Einfach" IDS_ACCEL_EMULATION "Emulation" @@ -47,10 +47,10 @@ index 9ed3d63..614247b 100644 IDS_DRIVER_ESOUND "EsounD-Treiber" IDS_DRIVER_OSS "OSS-Treiber" diff --git a/programs/winecfg/En.rc b/programs/winecfg/En.rc -index 5743ba3..b165a81 100644 +index a69b4d9..2d3dc5c 100644 --- a/programs/winecfg/En.rc +++ b/programs/winecfg/En.rc -@@ -270,6 +270,7 @@ BEGIN +@@ -273,6 +273,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Basic" IDS_ACCEL_EMULATION "Emulation" @@ -59,10 +59,10 @@ index 5743ba3..b165a81 100644 IDS_DRIVER_ESOUND "EsounD Driver" IDS_DRIVER_OSS "OSS Driver" diff --git a/programs/winecfg/Es.rc b/programs/winecfg/Es.rc -index 440ea71..dd1b764 100644 +index 2ddce6c..ececfe2 100644 --- a/programs/winecfg/Es.rc +++ b/programs/winecfg/Es.rc -@@ -268,6 +268,7 @@ BEGIN +@@ -271,6 +271,7 @@ BEGIN IDS_ACCEL_STANDARD "Estndar" IDS_ACCEL_BASIC "Bsica" IDS_ACCEL_EMULATION "Emulacin" @@ -71,10 +71,10 @@ index 440ea71..dd1b764 100644 IDS_DRIVER_ESOUND "Manejador EsounD" IDS_DRIVER_OSS "Manejador OSS" diff --git a/programs/winecfg/Fi.rc b/programs/winecfg/Fi.rc -index 1d761f8..e1b1583 100644 +index f6fb85c..ed24bf6 100644 --- a/programs/winecfg/Fi.rc +++ b/programs/winecfg/Fi.rc -@@ -268,6 +268,7 @@ BEGIN +@@ -271,6 +271,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Basic" IDS_ACCEL_EMULATION "Emulation" @@ -83,22 +83,22 @@ index 1d761f8..e1b1583 100644 IDS_DRIVER_ESOUND "EsounD Driver" IDS_DRIVER_OSS "OSS Driver" diff --git a/programs/winecfg/Fr.rc b/programs/winecfg/Fr.rc -index 818c50f..97a1f44 100644 +index b63adb1..414f440 100644 --- a/programs/winecfg/Fr.rc +++ b/programs/winecfg/Fr.rc -@@ -268,6 +268,7 @@ BEGIN +@@ -275,6 +275,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Basique" - IDS_ACCEL_EMULATION "mulation" -+ IDS_DRIVER_PULSE "Pilote PulseAudio" + IDS_ACCEL_EMULATION "Émulation" ++ IDS_DRIVER_PULSE "Pilote PulseAudio" IDS_DRIVER_ALSA "Pilote ALSA" IDS_DRIVER_ESOUND "Pilote EsounD" IDS_DRIVER_OSS "Pilote OSS" diff --git a/programs/winecfg/Hu.rc b/programs/winecfg/Hu.rc -index 5afbf91..4131f5f 100644 +index 0445c77..7756d2b 100644 --- a/programs/winecfg/Hu.rc +++ b/programs/winecfg/Hu.rc -@@ -268,6 +268,7 @@ BEGIN +@@ -271,6 +271,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Basic" IDS_ACCEL_EMULATION "Emulation" @@ -107,10 +107,10 @@ index 5afbf91..4131f5f 100644 IDS_DRIVER_ESOUND "EsounD Driver" IDS_DRIVER_OSS "OSS Driver" diff --git a/programs/winecfg/Ja.rc b/programs/winecfg/Ja.rc -index 8eaa603..543ed2c 100644 +index a25a953..d690f7f 100644 --- a/programs/winecfg/Ja.rc +++ b/programs/winecfg/Ja.rc -@@ -273,6 +273,7 @@ BEGIN +@@ -276,6 +276,7 @@ BEGIN IDS_ACCEL_STANDARD "標準" IDS_ACCEL_BASIC "基本" IDS_ACCEL_EMULATION "エミュレーション" @@ -119,10 +119,10 @@ index 8eaa603..543ed2c 100644 IDS_DRIVER_ESOUND "EsounD Driver" IDS_DRIVER_OSS "OSS Driver" diff --git a/programs/winecfg/Ko.rc b/programs/winecfg/Ko.rc -index ca94b5b..a79cc03 100644 +index c01b841..5c500d5 100644 --- a/programs/winecfg/Ko.rc +++ b/programs/winecfg/Ko.rc -@@ -272,6 +272,7 @@ BEGIN +@@ -275,6 +275,7 @@ BEGIN IDS_ACCEL_STANDARD "ǥ" IDS_ACCEL_BASIC "⺻" IDS_ACCEL_EMULATION "ֹķ̼" @@ -131,10 +131,10 @@ index ca94b5b..a79cc03 100644 IDS_DRIVER_ESOUND "EsounD ̹" IDS_DRIVER_OSS "OSS ̹" diff --git a/programs/winecfg/Nl.rc b/programs/winecfg/Nl.rc -index fb91290..b23e919 100644 +index 99062cf..2683a82 100644 --- a/programs/winecfg/Nl.rc +++ b/programs/winecfg/Nl.rc -@@ -270,6 +270,7 @@ BEGIN +@@ -273,6 +273,7 @@ BEGIN IDS_ACCEL_STANDARD "Standaard" IDS_ACCEL_BASIC "Eenvoudig" IDS_ACCEL_EMULATION "Emulatie" @@ -143,10 +143,10 @@ index fb91290..b23e919 100644 IDS_DRIVER_ESOUND "EsounD Stuurprogramma" IDS_DRIVER_OSS "OSS Stuurprogramma" diff --git a/programs/winecfg/No.rc b/programs/winecfg/No.rc -index aaa64c3..9dd3572 100644 +index 357539e..b2a5eae 100644 --- a/programs/winecfg/No.rc +++ b/programs/winecfg/No.rc -@@ -268,6 +268,7 @@ BEGIN +@@ -271,6 +271,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Grunnleggende" IDS_ACCEL_EMULATION "Emulering" @@ -155,10 +155,10 @@ index aaa64c3..9dd3572 100644 IDS_DRIVER_ESOUND "EsounD-driver" IDS_DRIVER_OSS "OSS-driver" diff --git a/programs/winecfg/Pl.rc b/programs/winecfg/Pl.rc -index c426443..e3bf093 100644 +index 8e1d9a2..bd968de 100644 --- a/programs/winecfg/Pl.rc +++ b/programs/winecfg/Pl.rc -@@ -271,6 +271,7 @@ BEGIN +@@ -274,6 +274,7 @@ BEGIN IDS_ACCEL_STANDARD "Standardowe" IDS_ACCEL_BASIC "Podstawowe" IDS_ACCEL_EMULATION "Emulacja" @@ -167,22 +167,34 @@ index c426443..e3bf093 100644 IDS_DRIVER_ESOUND "Sterownik EsounD" IDS_DRIVER_OSS "Sterownik OSS" diff --git a/programs/winecfg/Pt.rc b/programs/winecfg/Pt.rc -index 830cabf..0ed1dbd 100644 +index e3b02a1..be5acb0 100644 --- a/programs/winecfg/Pt.rc +++ b/programs/winecfg/Pt.rc -@@ -465,6 +465,7 @@ BEGIN - IDS_ACCEL_STANDARD "Padro" - IDS_ACCEL_BASIC "Bsico" - IDS_ACCEL_EMULATION "Emulao" -+ IDS_DRIVER_PULSE "Controlador PulseAudio" +@@ -471,6 +471,7 @@ BEGIN + IDS_ACCEL_STANDARD "Padrão" + IDS_ACCEL_BASIC "Básico" + IDS_ACCEL_EMULATION "Emulação" ++ IDS_DRIVER_PULSE "Controlador PulseAudio" IDS_DRIVER_ALSA "Controlador ALSA" IDS_DRIVER_ESOUND "Controlador EsounD" IDS_DRIVER_OSS "Controlador OSS" +diff --git a/programs/winecfg/Ro.rc b/programs/winecfg/Ro.rc +index c836d60..50317bf 100644 +--- a/programs/winecfg/Ro.rc ++++ b/programs/winecfg/Ro.rc +@@ -273,6 +273,7 @@ BEGIN + IDS_ACCEL_STANDARD "Standard" + IDS_ACCEL_BASIC "De bază" + IDS_ACCEL_EMULATION "Emulare" ++ IDS_DRIVER_PULSE "Driver PulseAudio" + IDS_DRIVER_ALSA "Driver ALSA" + IDS_DRIVER_ESOUND "Driver Esound" + IDS_DRIVER_OSS "Driver OSS" diff --git a/programs/winecfg/Ru.rc b/programs/winecfg/Ru.rc -index 782e1fd..f516399 100644 +index 8d61413..7962c98 100644 --- a/programs/winecfg/Ru.rc +++ b/programs/winecfg/Ru.rc -@@ -272,6 +272,7 @@ BEGIN +@@ -275,6 +275,7 @@ BEGIN IDS_ACCEL_STANDARD "" IDS_ACCEL_BASIC "" IDS_ACCEL_EMULATION "" @@ -191,10 +203,10 @@ index 782e1fd..f516399 100644 IDS_DRIVER_ESOUND "EsounD " IDS_DRIVER_OSS "OSS " diff --git a/programs/winecfg/Si.rc b/programs/winecfg/Si.rc -index 0bd04ef..c8bd35e 100644 +index 87cd239..73544bb 100644 --- a/programs/winecfg/Si.rc +++ b/programs/winecfg/Si.rc -@@ -270,6 +270,7 @@ BEGIN +@@ -273,6 +273,7 @@ BEGIN IDS_ACCEL_STANDARD "Standardno" IDS_ACCEL_BASIC "Osnovno" IDS_ACCEL_EMULATION "Emulacija" @@ -203,10 +215,10 @@ index 0bd04ef..c8bd35e 100644 IDS_DRIVER_ESOUND "EsounD gonilnik" IDS_DRIVER_OSS "OSS gonilnik" diff --git a/programs/winecfg/Sv.rc b/programs/winecfg/Sv.rc -index 49bb236..7efe2c0 100644 +index 113603c..dde6ed5 100644 --- a/programs/winecfg/Sv.rc +++ b/programs/winecfg/Sv.rc -@@ -268,6 +268,7 @@ BEGIN +@@ -271,6 +271,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Grundlggande" IDS_ACCEL_EMULATION "Emulering" @@ -215,10 +227,10 @@ index 49bb236..7efe2c0 100644 IDS_DRIVER_ESOUND "EsounD-drivrutin" IDS_DRIVER_OSS "OSS-drivrutin" diff --git a/programs/winecfg/Tr.rc b/programs/winecfg/Tr.rc -index 4157f86..1be23c5 100644 +index 883c0f3..4f6ecb3 100644 --- a/programs/winecfg/Tr.rc +++ b/programs/winecfg/Tr.rc -@@ -268,6 +268,7 @@ BEGIN +@@ -271,6 +271,7 @@ BEGIN IDS_ACCEL_STANDARD "Standart" IDS_ACCEL_BASIC "Temel" IDS_ACCEL_EMULATION "Taklit" @@ -227,10 +239,10 @@ index 4157f86..1be23c5 100644 IDS_DRIVER_ESOUND "EsounD Srcs" IDS_DRIVER_OSS "OSS Srcs" diff --git a/programs/winecfg/Zh.rc b/programs/winecfg/Zh.rc -index 4c18e99..029a26d 100644 +index b483cfe..8617049 100644 --- a/programs/winecfg/Zh.rc +++ b/programs/winecfg/Zh.rc -@@ -271,6 +271,7 @@ BEGIN +@@ -274,6 +274,7 @@ BEGIN IDS_ACCEL_STANDARD "标准" IDS_ACCEL_BASIC "基本" IDS_ACCEL_EMULATION "软件模拟" @@ -239,7 +251,7 @@ index 4c18e99..029a26d 100644 IDS_DRIVER_ESOUND "EsounD 驱动" IDS_DRIVER_OSS "OSS 驱动" diff --git a/programs/winecfg/audio.c b/programs/winecfg/audio.c -index 8e966a5..9c2cde3 100644 +index 79e62f0..b9a310c 100644 --- a/programs/winecfg/audio.c +++ b/programs/winecfg/audio.c @@ -88,6 +88,7 @@ typedef struct @@ -251,22 +263,22 @@ index 8e966a5..9c2cde3 100644 {IDS_DRIVER_OSS, "oss"}, {IDS_DRIVER_COREAUDIO, "coreaudio"}, diff --git a/programs/winecfg/libraries.c b/programs/winecfg/libraries.c -index 6abe04d..2fa6a95 100644 +index 37cc12b..7c13fad 100644 --- a/programs/winecfg/libraries.c +++ b/programs/winecfg/libraries.c -@@ -67,6 +67,7 @@ static const char * const builtin_only[] = - "user32", - "vdmdbg", - "w32skrnl", +@@ -81,6 +81,7 @@ static const char * const builtin_only[] = + "wineoss.drv", + "wineps", + "wineps.drv", + "winepulse.drv", - "winealsa.drv", - "wineaudioio.drv", - "wined3d", + "winex11.drv", + "winmm", + "wintab32", diff --git a/programs/winecfg/resource.h b/programs/winecfg/resource.h -index a18fe76..1c4a1e7 100644 +index 88c9e64..05a13de 100644 --- a/programs/winecfg/resource.h +++ b/programs/winecfg/resource.h -@@ -182,7 +182,7 @@ +@@ -186,7 +186,7 @@ #define IDS_ACCEL_BASIC 8302 #define IDS_ACCEL_EMULATION 8303 #define IDS_DRIVER_ALSA 8304 @@ -275,15 +287,3 @@ index a18fe76..1c4a1e7 100644 #define IDS_DRIVER_ESOUND 8306 #define IDS_DRIVER_OSS 8307 #define IDS_DRIVER_JACK 8308 -diff --git a/programs/winecfg/Ro.rc b/programs/winecfg/Ro.rc -index a4b0cad..c065d36 100644 ---- a/programs/winecfg/Ro.rc -+++ b/programs/winecfg/Ro.rc -@@ -270,6 +270,7 @@ - IDS_ACCEL_STANDARD "Standard" - IDS_ACCEL_BASIC "De bază" - IDS_ACCEL_EMULATION "Emulare" -+ IDS_DRIVER_PULSE "Driver PulseAudio" - IDS_DRIVER_ALSA "Driver ALSA" - IDS_DRIVER_ESOUND "Driver Esound" - IDS_DRIVER_OSS "Driver OSS" diff --git a/sources b/sources index e968abe..7efb812 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -e45a112c996c62d76aea3bf7de653089 wine-1.1.25-fe.tar.bz2 +7b2affded452ced2b1f45a9b7e6f24da wine-1.1.26-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index aa96737..1e6dc2d 100644 --- a/wine.spec +++ b/wine.spec @@ -1,5 +1,5 @@ Name: wine -Version: 1.1.25 +Version: 1.1.26 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -44,9 +44,9 @@ Source300: wine-mime-msi.desktop # explain how to use wine with pulseaudio # see http://bugs.winehq.org/show_bug.cgi?id=10495 # and http://art.ified.ca/?page_id=40 -Patch400: http://art.ified.ca/downloads/winepulse-0.17-configure.ac.patch -Patch401: http://art.ified.ca/downloads/winepulse-0.28.patch -Patch402: http://art.ified.ca/downloads/adding-pulseaudio-to-winecfg.patch +Patch400: http://art.ified.ca/downloads/winepulse-0.29-configure.ac.patch +Patch401: http://art.ified.ca/downloads/winepulse-0.29.patch +Patch402: http://art.ified.ca/downloads/adding-pulseaudio-to-winecfg-0.3.patch Source402: README-FEDORA-PULSEAUDIO @@ -136,6 +136,8 @@ Obsoletes: wine-arts < 0.9.34 # fix dns resolution (#492700) # require both to be sure 64bit is present as well... Requires: nss-mdns nss-mdns%{_isa} +# require Xrender isa on x86_64 (#510947) +Requires: libXrender%{_isa} %description core Wine core package includes the basic wine stuff needed by all other packages. @@ -732,6 +734,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/winsock.dll16 %{_libdir}/wine/winspool.drv.so %{_libdir}/wine/wmi.dll.so +%{_libdir}/wine/wmiutils.dll.so %{_libdir}/wine/spoolss.dll.so %{_libdir}/wine/winscard.dll.so %{_libdir}/wine/wintab32.dll.so @@ -750,7 +753,6 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/wineps16.drv16 %{_libdir}/wine/d3d8.dll.so %{_libdir}/wine/d3d9.dll.so -%{_libdir}/wine/d3dx8.dll.so %{_libdir}/wine/opengl32.dll.so %{_libdir}/wine/wined3d.dll.so %{_libdir}/wine/dnsapi.dll.so @@ -917,6 +919,12 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/wineoss.drv.so %changelog +* Sat Jul 18 2009 Andreas Bierfert +- 1.1.26-1 +- version upgrade +- WinePulse 0.29 +- require Xrender isa for x86_64 (#510947) + * Thu Jul 09 2009 Andreas Bierfert - 1.1.25-1 - version upgrade (#509648) diff --git a/winepulse-0.17-configure.ac.patch b/winepulse-0.29-configure.ac.patch similarity index 90% rename from winepulse-0.17-configure.ac.patch rename to winepulse-0.29-configure.ac.patch index 776d724..d6c4897 100644 --- a/winepulse-0.17-configure.ac.patch +++ b/winepulse-0.29-configure.ac.patch @@ -1,5 +1,5 @@ diff --git a/configure.ac b/configure.ac -index 57ec39d..2ca94ca 100644 +index 3b805fe..4c2b822 100644 --- a/configure.ac +++ b/configure.ac @@ -58,6 +58,7 @@ AC_ARG_WITH(png, AS_HELP_STRING([--without-png],[do not use PNG]), @@ -10,15 +10,15 @@ index 57ec39d..2ca94ca 100644 AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)])) AC_ARG_WITH(xcomposite,AS_HELP_STRING([--without-xcomposite],[do not use the Xcomposite extension]), [if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_Xcomposite_h=no; fi]) -@@ -1186,6 +1187,24 @@ then +@@ -1253,6 +1254,24 @@ then CFLAGS="$save_CFLAGS" fi +dnl **** Check for PulseAudio **** +if test "x$with_pulse" != "xno"; then + if test "$PKG_CONFIG" != "false"; then -+ AC_MSG_CHECKING([for pulseaudio >= 0.9.8]) -+ if "$PKG_CONFIG" --atleast-version=0.9.8 libpulse; then ++ AC_MSG_CHECKING([for pulseaudio >= 0.9.15]) ++ if "$PKG_CONFIG" --atleast-version=0.9.15 libpulse; then + have_pulseaudio="yes" + else + have_pulseaudio="no" @@ -35,7 +35,7 @@ index 57ec39d..2ca94ca 100644 dnl **** Check for ALSA 1.x **** AC_SUBST(ALSALIBS,"") if test "$ac_cv_header_sys_asoundlib_h" = "yes" -o "$ac_cv_header_alsa_asoundlib_h" = "yes" -@@ -1291,7 +1310,7 @@ dnl **** Check for libodbc **** +@@ -1379,7 +1398,7 @@ dnl **** Check for libodbc **** WINE_CHECK_SONAME(odbc,SQLConnect,,[AC_DEFINE_UNQUOTED(SONAME_LIBODBC,["libodbc.$LIBEXT"])]) dnl **** Check for any sound system **** @@ -44,7 +44,7 @@ index 57ec39d..2ca94ca 100644 "$ac_cv_header_sys_soundcard_h" != "yes" -a \ "$ac_cv_header_machine_soundcard_h" != "yes" -a \ "$ac_cv_header_soundcard_h" != "yes" -a \ -@@ -2223,6 +2242,7 @@ WINE_CONFIG_MAKEFILE([dlls/winemp3.acm/Makefile],[dlls/Makedll.rules],[dlls],[AL +@@ -2415,6 +2434,7 @@ WINE_CONFIG_MAKEFILE([dlls/winemp3.acm/Makefile],[dlls/Makedll.rules],[dlls],[AL WINE_CONFIG_MAKEFILE([dlls/winenas.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) WINE_CONFIG_MAKEFILE([dlls/wineoss.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) WINE_CONFIG_MAKEFILE([dlls/wineps.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) diff --git a/winepulse-0.28.patch b/winepulse-0.29.patch similarity index 98% rename from winepulse-0.28.patch rename to winepulse-0.29.patch index b70484f..b42e21e 100644 --- a/winepulse-0.28.patch +++ b/winepulse-0.29.patch @@ -21,10 +21,10 @@ index 0000000..c99c1da +@DEPENDENCIES@ # everything below this line is overwritten by make depend diff --git a/dlls/winepulse.drv/pulse.c b/dlls/winepulse.drv/pulse.c new file mode 100644 -index 0000000..392ac0b +index 0000000..3dcb086 --- /dev/null +++ b/dlls/winepulse.drv/pulse.c -@@ -0,0 +1,794 @@ +@@ -0,0 +1,788 @@ +/* + * Wine Driver for PulseAudio + * http://pulseaudio.org/ @@ -581,10 +581,7 @@ index 0000000..392ac0b + DSCAPS_SECONDARYSTEREO | + DSCAPS_SECONDARY8BIT | + DSCAPS_SECONDARY16BIT | -+ DSCCAPS_MULTIPLECAPTURE | -+ DSCAPS_CERTIFIED | /* Useful? */ -+ DSCAPS_EMULDRIVER; /* Useful? */ -+ ++ DSCCAPS_MULTIPLECAPTURE; +} + +/************************************************************************** @@ -616,7 +613,7 @@ index 0000000..392ac0b + wdo->caps.out.wMid = MM_CREATIVE; + wdo->caps.out.wPid = MM_CREATIVE_SBP16_WAVEOUT; + wdo->caps.out.vDriverVersion = 0x0100; -+ wdo->caps.out.dwSupport = WAVECAPS_VOLUME | WAVECAPS_SAMPLEACCURATE | WAVECAPS_DIRECTSOUND; ++ wdo->caps.out.dwSupport = WAVECAPS_VOLUME | WAVECAPS_SAMPLEACCURATE;// | WAVECAPS_DIRECTSOUND; + if (v->channels >= 2) { + wdo->caps.out.wChannels = 2; + wdo->caps.out.dwSupport |= WAVECAPS_LRVOLUME; @@ -638,8 +635,7 @@ index 0000000..392ac0b + DSCAPS_SECONDARYSTEREO | + DSCAPS_SECONDARY8BIT | + DSCAPS_SECONDARY16BIT | -+ DSCAPS_CERTIFIED | -+ DSCAPS_EMULDRIVER; /* Useful? */ ++ DSCAPS_CONTINUOUSRATE; +} + +/************************************************************************** @@ -713,7 +709,6 @@ index 0000000..392ac0b + char *app_name; + char path[PATH_MAX]; + char *offset = NULL; -+ int x = 0; + pa_cvolume fake_cvolume; + + WOutDev = NULL; @@ -770,10 +765,9 @@ index 0000000..392ac0b + pa_threaded_mainloop_wait(PULSE_ml); + } + -+ x = pa_context_get_server_protocol_version(PULSE_context); -+ TRACE("Connected to server %s with protocol version: %i.\n", pa_context_get_server(PULSE_context), x); -+ if (x < 14) -+ WARN("Server is old, expect poor latency or buggy-ness!\n"); ++ TRACE("Connected to server %s with protocol version: %i.\n", ++ pa_context_get_server(PULSE_context), ++ pa_context_get_server_protocol_version(PULSE_context)); + + fake_cvolume.channels = 2; + pa_cvolume_reset(&fake_cvolume, 2); @@ -1422,10 +1416,10 @@ index 0000000..7cbc781 +#endif /* HAVE_PULSEAUDIO */ diff --git a/dlls/winepulse.drv/waveout.c b/dlls/winepulse.drv/waveout.c new file mode 100644 -index 0000000..db2c892 +index 0000000..ee92535 --- /dev/null +++ b/dlls/winepulse.drv/waveout.c -@@ -0,0 +1,1086 @@ +@@ -0,0 +1,1075 @@ +/* + * Wine Driver for PulseAudio - WaveOut Functionality + * http://pulseaudio.org/ @@ -1625,6 +1619,10 @@ index 0000000..db2c892 + if (wwo->buffer_attr.tlength == -1 && wwo->lpQueuePtr && !wwo->lpPlayPtr && wwo->state == WINE_WS_PLAYING) { + const pa_buffer_attr *returned; + ++ /* Try and adjust the buffer attributes so that playback can start. ++ * Because of bugs pa_stream_set_buffer_attr() does not work on started ++ * streams for server version 0.9.11 to 0.9.14 */ ++ + pa_threaded_mainloop_lock(PULSE_ml); + + if (wwo->timing_info->playing) { @@ -1632,26 +1630,22 @@ index 0000000..db2c892 + return; + } + -+ /* Try and adjust the buffer attributes so that playback can start. -+ * Because of bugs this call does not work on servers 0.9.11 to 0.9.14. -+ * Once new version of pulseaudio become ubiquitous we will drop -+ * support for versions before 0.9.15 because they have too many bugs. -+ */ -+ ++ /* Calculate desired buffer length. write_index is the amount of data ++ * written. If there is more than one buffer queued, subtract the ++ * length of one to allow there to be a free buffer for the app. */ + wwo->buffer_attr.tlength = wwo->timing_info->write_index; -+ WARN("Asking for new buffer tlength of %llums (%u bytes)\n", ++ if (wwo->lpQueuePtr->lpNext) wwo->buffer_attr.tlength -= wwo->lpQueuePtr->dwBufferLength; ++ ++ WARN("Asking for new buffer target length of %llums (%u bytes)\n", + pa_bytes_to_usec(wwo->buffer_attr.tlength, &wwo->sample_spec) / 1000, + wwo->buffer_attr.tlength); + -+ if (pa_context_get_server_protocol_version(PULSE_context) < 15) -+ ERR("Might get disconnected because of a bug in this pulseaudio server version.\n"); -+ + PULSE_WaitForOperation(pa_stream_set_buffer_attr(wwo->stream, &wwo->buffer_attr, PULSE_StreamSuccessCallback, wwo)); + + returned = pa_stream_get_buffer_attr(wwo->stream); + + if (returned->tlength > wwo->timing_info->write_index) { -+ WARN("Can't get the buffer size needed. Triggering and hoping for the best.\n"); ++ WARN("Couldn't get the buffer size needed. Triggering and hoping for the best.\n"); + PULSE_WaitForOperation(pa_stream_trigger(wwo->stream, PULSE_StreamSuccessCallback, wwo)); + } + @@ -1837,10 +1831,9 @@ index 0000000..db2c892 + + if (t->playing) { + time += pa_timeval_age(&t->timestamp); -+ + temp = t->transport_usec + t->configured_sink_usec; + if (temp > wwo->buffer_attr.tlength) temp = wwo->buffer_attr.tlength; -+ if (temp < time) time -= temp; else time = 0; ++ if (time > temp) time -= temp; else time = 0; + } + + /* Make sure we haven't claimed to have played more than we have written */ @@ -2008,11 +2001,10 @@ index 0000000..db2c892 + * Create a new pa_stream and connect it to a sink while creating a new + * WINE_WAVEINST to represent the device to the windows application. + */ -+static DWORD wodOpen(WORD wDevID, DWORD_PTR *lpdwUser, LPWAVEOPENDESC lpDesc, DWORD dwFlags) { ++static DWORD wodOpen(WORD wDevID, DWORD_PTR lpdwUser, LPWAVEOPENDESC lpDesc, DWORD dwFlags) { + WINE_WAVEDEV *wdo; + WINE_WAVEINST *wwo = NULL; + DWORD ret = MMSYSERR_NOERROR; -+ pa_stream_flags_t stream_flags; + + TRACE("(%u, %p, %08X);\n", wDevID, lpDesc, dwFlags); + if (lpDesc == NULL) { @@ -2031,7 +2023,7 @@ index 0000000..db2c892 + WARN("Out of memory?!\n"); + return MMSYSERR_NOMEM; + } -+ *lpdwUser = (DWORD_PTR)wwo; ++ *(WINE_WAVEINST**)lpdwUser = wwo; + + /* check to see if format is supported and make pa_sample_spec struct */ + if (!PULSE_SetupFormat(lpDesc->lpFormat, &wwo->sample_spec)) { @@ -2075,25 +2067,16 @@ index 0000000..db2c892 + pa_stream_set_moved_callback (wwo->stream, PULSE_StreamMovedCallback, wwo); + pa_stream_set_suspended_callback (wwo->stream, PULSE_StreamSuspendedCallback, wwo); + -+ /* Setup Stream Flags */ -+ stream_flags = PA_STREAM_AUTO_TIMING_UPDATE; -+#if PA_API_VERSION >= 12 -+ stream_flags |= PA_STREAM_ADJUST_LATENCY; -+#endif -+ -+ /* Blank (but don't send) Buffer Attributes -+ * Note the maxlength bug on old servers */ ++ /* Blank (but don't send) Buffer Attributes */ + wwo->buffer_attr.prebuf = (uint32_t)-1; + wwo->buffer_attr.tlength = (uint32_t)-1; + wwo->buffer_attr.minreq = (uint32_t)-1; -+ wwo->buffer_attr.maxlength = -+ pa_context_get_server_protocol_version(PULSE_context) > 12 ? -+ (uint32_t)-1 : 1048576; /* 2^20 */ ++ wwo->buffer_attr.maxlength = (uint32_t)-1; + + /* Try and connect */ + TRACE("Connecting stream for playback on %s.\n", wdo->device_name); + pa_threaded_mainloop_lock(PULSE_ml); -+ pa_stream_connect_playback(wwo->stream, wdo->device_name, NULL, stream_flags, NULL, NULL); ++ pa_stream_connect_playback(wwo->stream, wdo->device_name, NULL, PA_STREAM_AUTO_TIMING_UPDATE | PA_STREAM_ADJUST_LATENCY, NULL, NULL); + + /* Wait for connection */ + for (;;) { @@ -2463,7 +2446,7 @@ index 0000000..db2c892 + return 0; + + /* WaveOut Playback related functions */ -+ case WODM_OPEN: return wodOpen (wDevID, (DWORD_PTR*)dwUser, (LPWAVEOPENDESC)dwParam1, dwParam2); ++ case WODM_OPEN: return wodOpen (wDevID, dwUser, (LPWAVEOPENDESC)dwParam1, dwParam2); + case WODM_CLOSE: return wodClose ((WINE_WAVEINST*)dwUser); + case WODM_WRITE: return wodWrite ((WINE_WAVEINST*)dwUser, (LPWAVEHDR)dwParam1, dwParam2); + case WODM_PAUSE: return wodPause ((WINE_WAVEINST*)dwUser); From c33c049779d35df6e20b0b82087eeb08a391d63c Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 20 Jul 2009 20:43:09 +0000 Subject: [PATCH 120/715] - evade autobuild --- noautobuild | 1 + 1 file changed, 1 insertion(+) create mode 100644 noautobuild diff --git a/noautobuild b/noautobuild new file mode 100644 index 0000000..e0e4c9c --- /dev/null +++ b/noautobuild @@ -0,0 +1 @@ +transition from ix86 only build to ix86/x86_64 32bit build From 85de186e6aa14497aa2b4b2f36888a1d9ad94efc Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 30 Aug 2009 21:27:14 +0000 Subject: [PATCH 121/715] - lots of fixes - version upgrade - 64bit build --- .cvsignore | 2 +- ... => adding-pulseaudio-to-winecfg-0.4.patch | 112 +++---- noautobuild | 1 - pulseaudio-winecfg-update.patch | 10 + sources | 2 +- wine-rpath.patch | 34 +- wine.spec | 310 ++++++++++++------ ...patch => winepulse-0.30-configure.ac.patch | 32 +- winepulse-0.29.patch => winepulse-0.30.patch | 13 +- 9 files changed, 314 insertions(+), 202 deletions(-) rename adding-pulseaudio-to-winecfg-0.3.patch => adding-pulseaudio-to-winecfg-0.4.patch (84%) delete mode 100644 noautobuild create mode 100644 pulseaudio-winecfg-update.patch rename winepulse-0.29-configure.ac.patch => winepulse-0.30-configure.ac.patch (75%) rename winepulse-0.29.patch => winepulse-0.30.patch (99%) diff --git a/.cvsignore b/.cvsignore index 36f3eca..3de7483 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-1.1.26-fe.tar.bz2 +wine-1.1.28-fe.tar.bz2 diff --git a/adding-pulseaudio-to-winecfg-0.3.patch b/adding-pulseaudio-to-winecfg-0.4.patch similarity index 84% rename from adding-pulseaudio-to-winecfg-0.3.patch rename to adding-pulseaudio-to-winecfg-0.4.patch index 7ee1060..3600a57 100644 --- a/adding-pulseaudio-to-winecfg-0.3.patch +++ b/adding-pulseaudio-to-winecfg-0.4.patch @@ -1,8 +1,8 @@ diff --git a/programs/winecfg/Bg.rc b/programs/winecfg/Bg.rc -index 00cfbe8..ce2c8c7 100644 +index fcdf895..e17690e 100644 --- a/programs/winecfg/Bg.rc +++ b/programs/winecfg/Bg.rc -@@ -277,6 +277,7 @@ BEGIN +@@ -276,6 +276,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Basic" IDS_ACCEL_EMULATION "Emulation" @@ -11,10 +11,10 @@ index 00cfbe8..ce2c8c7 100644 IDS_DRIVER_ESOUND "EsounD Driver" IDS_DRIVER_OSS "OSS Driver" diff --git a/programs/winecfg/Cs.rc b/programs/winecfg/Cs.rc -index b34dd06..348153c 100644 +index d9c0b28..9bcc033 100644 --- a/programs/winecfg/Cs.rc +++ b/programs/winecfg/Cs.rc -@@ -277,6 +277,7 @@ BEGIN +@@ -276,6 +276,7 @@ BEGIN IDS_ACCEL_STANDARD "Standardn" IDS_ACCEL_BASIC "Zkladn" IDS_ACCEL_EMULATION "Emulace" @@ -23,10 +23,10 @@ index b34dd06..348153c 100644 IDS_DRIVER_ESOUND "Ovlada EsounD" IDS_DRIVER_OSS "Ovlada OSS" diff --git a/programs/winecfg/Da.rc b/programs/winecfg/Da.rc -index 62b781b..a604ea3 100644 +index f53aead..690c7f5 100644 --- a/programs/winecfg/Da.rc +++ b/programs/winecfg/Da.rc -@@ -271,6 +271,7 @@ BEGIN +@@ -270,6 +270,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Grundlggende" IDS_ACCEL_EMULATION "Emulring" @@ -35,10 +35,10 @@ index 62b781b..a604ea3 100644 IDS_DRIVER_ESOUND "EsounD-driver" IDS_DRIVER_OSS "OSS-driver" diff --git a/programs/winecfg/De.rc b/programs/winecfg/De.rc -index 53c412c..8f70399 100644 +index e6bed15..d3027bc 100644 --- a/programs/winecfg/De.rc +++ b/programs/winecfg/De.rc -@@ -273,6 +273,7 @@ BEGIN +@@ -272,6 +272,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Einfach" IDS_ACCEL_EMULATION "Emulation" @@ -47,10 +47,10 @@ index 53c412c..8f70399 100644 IDS_DRIVER_ESOUND "EsounD-Treiber" IDS_DRIVER_OSS "OSS-Treiber" diff --git a/programs/winecfg/En.rc b/programs/winecfg/En.rc -index a69b4d9..2d3dc5c 100644 +index 049aaa7..cef7c4a 100644 --- a/programs/winecfg/En.rc +++ b/programs/winecfg/En.rc -@@ -273,6 +273,7 @@ BEGIN +@@ -272,6 +272,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Basic" IDS_ACCEL_EMULATION "Emulation" @@ -59,10 +59,10 @@ index a69b4d9..2d3dc5c 100644 IDS_DRIVER_ESOUND "EsounD Driver" IDS_DRIVER_OSS "OSS Driver" diff --git a/programs/winecfg/Es.rc b/programs/winecfg/Es.rc -index 2ddce6c..ececfe2 100644 +index 1771b4e..c49f9a3 100644 --- a/programs/winecfg/Es.rc +++ b/programs/winecfg/Es.rc -@@ -271,6 +271,7 @@ BEGIN +@@ -270,6 +270,7 @@ BEGIN IDS_ACCEL_STANDARD "Estndar" IDS_ACCEL_BASIC "Bsica" IDS_ACCEL_EMULATION "Emulacin" @@ -71,10 +71,10 @@ index 2ddce6c..ececfe2 100644 IDS_DRIVER_ESOUND "Manejador EsounD" IDS_DRIVER_OSS "Manejador OSS" diff --git a/programs/winecfg/Fi.rc b/programs/winecfg/Fi.rc -index f6fb85c..ed24bf6 100644 +index 0dedf3a..097a4d2 100644 --- a/programs/winecfg/Fi.rc +++ b/programs/winecfg/Fi.rc -@@ -271,6 +271,7 @@ BEGIN +@@ -270,6 +270,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Basic" IDS_ACCEL_EMULATION "Emulation" @@ -83,10 +83,10 @@ index f6fb85c..ed24bf6 100644 IDS_DRIVER_ESOUND "EsounD Driver" IDS_DRIVER_OSS "OSS Driver" diff --git a/programs/winecfg/Fr.rc b/programs/winecfg/Fr.rc -index b63adb1..414f440 100644 +index 52c9888..1bd92b1 100644 --- a/programs/winecfg/Fr.rc +++ b/programs/winecfg/Fr.rc -@@ -275,6 +275,7 @@ BEGIN +@@ -274,6 +274,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Basique" IDS_ACCEL_EMULATION "Émulation" @@ -95,10 +95,10 @@ index b63adb1..414f440 100644 IDS_DRIVER_ESOUND "Pilote EsounD" IDS_DRIVER_OSS "Pilote OSS" diff --git a/programs/winecfg/Hu.rc b/programs/winecfg/Hu.rc -index 0445c77..7756d2b 100644 +index dc887fe..3ba696f 100644 --- a/programs/winecfg/Hu.rc +++ b/programs/winecfg/Hu.rc -@@ -271,6 +271,7 @@ BEGIN +@@ -270,6 +270,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Basic" IDS_ACCEL_EMULATION "Emulation" @@ -106,23 +106,11 @@ index 0445c77..7756d2b 100644 IDS_DRIVER_ALSA "ALSA Driver" IDS_DRIVER_ESOUND "EsounD Driver" IDS_DRIVER_OSS "OSS Driver" -diff --git a/programs/winecfg/Ja.rc b/programs/winecfg/Ja.rc -index a25a953..d690f7f 100644 ---- a/programs/winecfg/Ja.rc -+++ b/programs/winecfg/Ja.rc -@@ -276,6 +276,7 @@ BEGIN - IDS_ACCEL_STANDARD "標準" - IDS_ACCEL_BASIC "基本" - IDS_ACCEL_EMULATION "エミュレーション" -+ IDS_DRIVER_PULSE "PulseAudio Driver" - IDS_DRIVER_ALSA "ALSA Driver" - IDS_DRIVER_ESOUND "EsounD Driver" - IDS_DRIVER_OSS "OSS Driver" diff --git a/programs/winecfg/Ko.rc b/programs/winecfg/Ko.rc -index c01b841..5c500d5 100644 +index 6f13e0c..d5403da 100644 --- a/programs/winecfg/Ko.rc +++ b/programs/winecfg/Ko.rc -@@ -275,6 +275,7 @@ BEGIN +@@ -274,6 +274,7 @@ BEGIN IDS_ACCEL_STANDARD "ǥ" IDS_ACCEL_BASIC "⺻" IDS_ACCEL_EMULATION "ֹķ̼" @@ -131,7 +119,7 @@ index c01b841..5c500d5 100644 IDS_DRIVER_ESOUND "EsounD ̹" IDS_DRIVER_OSS "OSS ̹" diff --git a/programs/winecfg/Nl.rc b/programs/winecfg/Nl.rc -index 99062cf..2683a82 100644 +index 4cd45f0..d23f359 100644 --- a/programs/winecfg/Nl.rc +++ b/programs/winecfg/Nl.rc @@ -273,6 +273,7 @@ BEGIN @@ -143,10 +131,10 @@ index 99062cf..2683a82 100644 IDS_DRIVER_ESOUND "EsounD Stuurprogramma" IDS_DRIVER_OSS "OSS Stuurprogramma" diff --git a/programs/winecfg/No.rc b/programs/winecfg/No.rc -index 357539e..b2a5eae 100644 +index cc34fad..71876ba 100644 --- a/programs/winecfg/No.rc +++ b/programs/winecfg/No.rc -@@ -271,6 +271,7 @@ BEGIN +@@ -270,6 +270,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Grunnleggende" IDS_ACCEL_EMULATION "Emulering" @@ -155,10 +143,10 @@ index 357539e..b2a5eae 100644 IDS_DRIVER_ESOUND "EsounD-driver" IDS_DRIVER_OSS "OSS-driver" diff --git a/programs/winecfg/Pl.rc b/programs/winecfg/Pl.rc -index 8e1d9a2..bd968de 100644 +index d884881..d6405b1 100644 --- a/programs/winecfg/Pl.rc +++ b/programs/winecfg/Pl.rc -@@ -274,6 +274,7 @@ BEGIN +@@ -273,6 +273,7 @@ BEGIN IDS_ACCEL_STANDARD "Standardowe" IDS_ACCEL_BASIC "Podstawowe" IDS_ACCEL_EMULATION "Emulacja" @@ -167,10 +155,10 @@ index 8e1d9a2..bd968de 100644 IDS_DRIVER_ESOUND "Sterownik EsounD" IDS_DRIVER_OSS "Sterownik OSS" diff --git a/programs/winecfg/Pt.rc b/programs/winecfg/Pt.rc -index e3b02a1..be5acb0 100644 +index 683dc68..be92466 100644 --- a/programs/winecfg/Pt.rc +++ b/programs/winecfg/Pt.rc -@@ -471,6 +471,7 @@ BEGIN +@@ -470,6 +470,7 @@ BEGIN IDS_ACCEL_STANDARD "Padrão" IDS_ACCEL_BASIC "Básico" IDS_ACCEL_EMULATION "Emulação" @@ -179,10 +167,10 @@ index e3b02a1..be5acb0 100644 IDS_DRIVER_ESOUND "Controlador EsounD" IDS_DRIVER_OSS "Controlador OSS" diff --git a/programs/winecfg/Ro.rc b/programs/winecfg/Ro.rc -index c836d60..50317bf 100644 +index f12949f..2101ea1 100644 --- a/programs/winecfg/Ro.rc +++ b/programs/winecfg/Ro.rc -@@ -273,6 +273,7 @@ BEGIN +@@ -272,6 +272,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "De bază" IDS_ACCEL_EMULATION "Emulare" @@ -191,22 +179,22 @@ index c836d60..50317bf 100644 IDS_DRIVER_ESOUND "Driver Esound" IDS_DRIVER_OSS "Driver OSS" diff --git a/programs/winecfg/Ru.rc b/programs/winecfg/Ru.rc -index 8d61413..7962c98 100644 +index 7293cbc..fb57527 100644 --- a/programs/winecfg/Ru.rc +++ b/programs/winecfg/Ru.rc -@@ -275,6 +275,7 @@ BEGIN - IDS_ACCEL_STANDARD "" - IDS_ACCEL_BASIC "" - IDS_ACCEL_EMULATION "" -+ IDS_DRIVER_PULSE "PulseAudio " - IDS_DRIVER_ALSA "ALSA " - IDS_DRIVER_ESOUND "EsounD " - IDS_DRIVER_OSS "OSS " +@@ -277,6 +277,7 @@ BEGIN + IDS_ACCEL_STANDARD "Стандартное" + IDS_ACCEL_BASIC "Минимальное" + IDS_ACCEL_EMULATION "Эмуляция" ++ IDS_DRIVER_PULSE "PulseAudio драйвер" + IDS_DRIVER_ALSA "ALSA драйвер" + IDS_DRIVER_ESOUND "EsounD драйвер" + IDS_DRIVER_OSS "OSS драйвер" diff --git a/programs/winecfg/Si.rc b/programs/winecfg/Si.rc -index 87cd239..73544bb 100644 +index feaef36..c26e5cb 100644 --- a/programs/winecfg/Si.rc +++ b/programs/winecfg/Si.rc -@@ -273,6 +273,7 @@ BEGIN +@@ -272,6 +272,7 @@ BEGIN IDS_ACCEL_STANDARD "Standardno" IDS_ACCEL_BASIC "Osnovno" IDS_ACCEL_EMULATION "Emulacija" @@ -215,10 +203,10 @@ index 87cd239..73544bb 100644 IDS_DRIVER_ESOUND "EsounD gonilnik" IDS_DRIVER_OSS "OSS gonilnik" diff --git a/programs/winecfg/Sv.rc b/programs/winecfg/Sv.rc -index 113603c..dde6ed5 100644 +index 7fea5aa..35eb871 100644 --- a/programs/winecfg/Sv.rc +++ b/programs/winecfg/Sv.rc -@@ -271,6 +271,7 @@ BEGIN +@@ -270,6 +270,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Grundlggande" IDS_ACCEL_EMULATION "Emulering" @@ -227,10 +215,10 @@ index 113603c..dde6ed5 100644 IDS_DRIVER_ESOUND "EsounD-drivrutin" IDS_DRIVER_OSS "OSS-drivrutin" diff --git a/programs/winecfg/Tr.rc b/programs/winecfg/Tr.rc -index 883c0f3..4f6ecb3 100644 +index 0fa9778..2a23112 100644 --- a/programs/winecfg/Tr.rc +++ b/programs/winecfg/Tr.rc -@@ -271,6 +271,7 @@ BEGIN +@@ -270,6 +270,7 @@ BEGIN IDS_ACCEL_STANDARD "Standart" IDS_ACCEL_BASIC "Temel" IDS_ACCEL_EMULATION "Taklit" @@ -239,10 +227,10 @@ index 883c0f3..4f6ecb3 100644 IDS_DRIVER_ESOUND "EsounD Srcs" IDS_DRIVER_OSS "OSS Srcs" diff --git a/programs/winecfg/Zh.rc b/programs/winecfg/Zh.rc -index b483cfe..8617049 100644 +index fea66b7..bc0aaaf 100644 --- a/programs/winecfg/Zh.rc +++ b/programs/winecfg/Zh.rc -@@ -274,6 +274,7 @@ BEGIN +@@ -273,6 +273,7 @@ BEGIN IDS_ACCEL_STANDARD "标准" IDS_ACCEL_BASIC "基本" IDS_ACCEL_EMULATION "软件模拟" @@ -251,10 +239,10 @@ index b483cfe..8617049 100644 IDS_DRIVER_ESOUND "EsounD 驱动" IDS_DRIVER_OSS "OSS 驱动" diff --git a/programs/winecfg/audio.c b/programs/winecfg/audio.c -index 79e62f0..b9a310c 100644 +index 9f8a0a2..0ecb6c3 100644 --- a/programs/winecfg/audio.c +++ b/programs/winecfg/audio.c -@@ -88,6 +88,7 @@ typedef struct +@@ -89,6 +89,7 @@ typedef struct } AUDIO_DRIVER; static const AUDIO_DRIVER sAudioDrivers[] = { @@ -275,10 +263,10 @@ index 37cc12b..7c13fad 100644 "winmm", "wintab32", diff --git a/programs/winecfg/resource.h b/programs/winecfg/resource.h -index 88c9e64..05a13de 100644 +index 27736b7..f8ba2ee 100644 --- a/programs/winecfg/resource.h +++ b/programs/winecfg/resource.h -@@ -186,7 +186,7 @@ +@@ -185,7 +185,7 @@ #define IDS_ACCEL_BASIC 8302 #define IDS_ACCEL_EMULATION 8303 #define IDS_DRIVER_ALSA 8304 diff --git a/noautobuild b/noautobuild deleted file mode 100644 index e0e4c9c..0000000 --- a/noautobuild +++ /dev/null @@ -1 +0,0 @@ -transition from ix86 only build to ix86/x86_64 32bit build diff --git a/pulseaudio-winecfg-update.patch b/pulseaudio-winecfg-update.patch new file mode 100644 index 0000000..365f99d --- /dev/null +++ b/pulseaudio-winecfg-update.patch @@ -0,0 +1,10 @@ +--- programs/winecfg/Ja.rc.orig 2009-08-26 11:55:56.000000000 +0200 ++++ programs/winecfg/Ja.rc 2009-08-26 11:56:52.000000000 +0200 +@@ -275,6 +275,7 @@ + IDS_ACCEL_STANDARD "標準" + IDS_ACCEL_BASIC "基本" + IDS_ACCEL_EMULATION "エミュレーション" ++ IDS_DRIVER_PULSE "PulseAudio ドライバ" + IDS_DRIVER_ALSA "ALSA ドライバ" + IDS_DRIVER_ESOUND "EsounD ドライバ" + IDS_DRIVER_OSS "OSS ドライバ" diff --git a/sources b/sources index 7efb812..c9b13b0 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -7b2affded452ced2b1f45a9b7e6f24da wine-1.1.26-fe.tar.bz2 +6342c41f46d0571efae685c17aa5550f wine-1.1.28-fe.tar.bz2 diff --git a/wine-rpath.patch b/wine-rpath.patch index 0836ea1..06e1045 100644 --- a/wine-rpath.patch +++ b/wine-rpath.patch @@ -1,32 +1,32 @@ ---- configure.orig 2008-11-05 12:25:10.000000000 +0300 -+++ configure 2008-11-06 22:22:27.000000000 +0300 -@@ -9306,14 +9306,14 @@ - fi +--- configure.orig 2009-08-26 11:47:17.000000000 +0200 ++++ configure 2009-08-26 11:50:07.000000000 +0200 +@@ -6565,14 +6565,14 @@ + fi -- as_ac_var=`$as_echo "ac_cv_cflags_-fPIC -Wl,--rpath,\$ORIGIN/../lib" | $as_tr_sh` --{ $as_echo "$as_me:$LINENO: checking whether the compiler supports -fPIC -Wl,--rpath,\$ORIGIN/../lib" >&5 +- as_ac_var=`$as_echo "ac_cv_cflags_-fPIC -Wl,--rpath,\\$ORIGIN/../lib" | $as_tr_sh` +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -fPIC -Wl,--rpath,\$ORIGIN/../lib" >&5 -$as_echo_n "checking whether the compiler supports -fPIC -Wl,--rpath,\$ORIGIN/../lib... " >&6; } + as_ac_var=`$as_echo "ac_cv_cflags_-fPIC" | $as_tr_sh` -+{ $as_echo "$as_me:$LINENO: checking whether the compiler supports -fPIC" >&5 -+$as_echo_n "checking whether the compiler supports -fPIC" >&6; } - if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -fPIC" >&5 ++$as_echo_n "checking whether the compiler supports -fPIC " >&6; } + if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else ac_wine_try_cflags_saved=$CFLAGS -CFLAGS="$CFLAGS -fPIC -Wl,--rpath,\$ORIGIN/../lib" +CFLAGS="$CFLAGS -fPIC" - cat >conftest.$ac_ext <<_ACEOF - /* confdefs.h. */ - _ACEOF -@@ -9369,8 +9369,8 @@ + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + +@@ -6597,8 +6597,8 @@ + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } - if test `eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` = yes; then + if test `eval 'as_val=${'$as_ac_var'};$as_echo "$as_val"'` = yes; then : - LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`" - LDRPATH_LOCAL="-Wl,--rpath,\\\$\$ORIGIN/\$(TOPOBJDIR)/libs/wine" + LDRPATH_INSTALL="" + LDRPATH_LOCAL="" else - as_ac_var=`$as_echo "ac_cv_cflags_-fPIC -Wl,-R,\$ORIGIN/../lib" | $as_tr_sh` - { $as_echo "$as_me:$LINENO: checking whether the compiler supports -fPIC -Wl,-R,\$ORIGIN/../lib" >&5 + as_ac_var=`$as_echo "ac_cv_cflags_-fPIC -Wl,-R,\\$ORIGIN/../lib" | $as_tr_sh` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -fPIC -Wl,-R,\$ORIGIN/../lib" >&5 diff --git a/wine.spec b/wine.spec index 1e6dc2d..0f96350 100644 --- a/wine.spec +++ b/wine.spec @@ -1,5 +1,6 @@ +%define no64bit 0 Name: wine -Version: 1.1.26 +Version: 1.1.28 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -22,6 +23,8 @@ Source0: %{name}-%{version}-fe.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf +Source5: wine-64.conf +Source6: wine-chooser.sh # desktop stuff Source100: wine-notepad.desktop Source101: wine-regedit.desktop @@ -44,24 +47,25 @@ Source300: wine-mime-msi.desktop # explain how to use wine with pulseaudio # see http://bugs.winehq.org/show_bug.cgi?id=10495 # and http://art.ified.ca/?page_id=40 -Patch400: http://art.ified.ca/downloads/winepulse-0.29-configure.ac.patch -Patch401: http://art.ified.ca/downloads/winepulse-0.29.patch -Patch402: http://art.ified.ca/downloads/adding-pulseaudio-to-winecfg-0.3.patch +Patch400: http://art.ified.ca/downloads/winepulse-0.30-configure.ac.patch +Patch401: http://art.ified.ca/downloads/winepulse-0.30.patch +Patch402: http://art.ified.ca/downloads/adding-pulseaudio-to-winecfg-0.4.patch Source402: README-FEDORA-PULSEAUDIO - +Patch403: pulseaudio-winecfg-update.patch Patch1: wine-rpath.patch Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +%if !%{?no64bit} +ExclusiveArch: %{ix86} x86_64 +%else ExclusiveArch: %{ix86} +%endif -# BR: All builds -BuildRequires: bison -BuildRequires: flex +BuildRequires: bison +BuildRequires: flex BuildRequires: autoconf BuildRequires: desktop-file-utils - -# x86-32 BR BuildRequires: alsa-lib-devel BuildRequires: audiofile-devel BuildRequires: esound-devel @@ -80,7 +84,7 @@ BuildRequires: unixODBC-devel BuildRequires: openssl-devel BuildRequires: sane-backends-devel BuildRequires: zlib-devel -BuildRequires: fontforge +BuildRequires: fontforge freetype-devel BuildRequires: libgphoto2-devel BuildRequires: jack-audio-connection-kit-devel # #217338 @@ -102,15 +106,27 @@ BuildRequires: libXcursor-devel BuildRequires: dbus-devel hal-devel BuildRequires: gnutls-devel BuildRequires: pulseaudio-libs-devel +BuildRequires: gsm-devel -Requires: wine-core = %{version}-%{release} -Requires: wine-capi = %{version}-%{release} -Requires: wine-cms = %{version}-%{release} +# noarch +Requires: wine-common = %{version}-%{release} Requires: wine-desktop = %{version}-%{release} -Requires: wine-ldap = %{version}-%{release} -Requires: wine-tools = %{version}-%{release} -Requires: wine-twain = %{version}-%{release} -Requires: wine-pulseaudio = %{version}-%{release} +# 32bit +Requires: wine-core(x86-32) = %{version}-%{release} +Requires: wine-capi(x86-32) = %{version}-%{release} +Requires: wine-cms(x86-32) = %{version}-%{release} +Requires: wine-ldap(x86-32) = %{version}-%{release} +Requires: wine-twain(x86-32) = %{version}-%{release} +Requires: wine-pulseaudio(x86-32) = %{version}-%{release} +# 64bit +%ifarch x86_64 +Requires: wine-core(x86-64) = %{version}-%{release} +Requires: wine-capi(x86-64) = %{version}-%{release} +Requires: wine-cms(x86-64) = %{version}-%{release} +Requires: wine-ldap(x86-64) = %{version}-%{release} +Requires: wine-twain(x86-64) = %{version}-%{release} +Requires: wine-pulseaudio(x86-64) = %{version}-%{release} +%endif %description While Wine is usually thought of as a Windows(TM) emulator, the Wine @@ -127,17 +143,26 @@ wine-* sub packages. %package core Summary: Wine core package Group: Applications/Emulators +Requires: wine-fonts = %{version}-%{release} Requires: %{_bindir}/xmessage -Requires: freetype%{_isa} Requires(post): /sbin/ldconfig Requires(postun): /sbin/ldconfig Obsoletes: wine <= 0.9.15-1%{?dist} Obsoletes: wine-arts < 0.9.34 +Obsoletes: wine-tools <= 1.1.27 +Provides: wine-tools = %{version}-%{release} # fix dns resolution (#492700) # require both to be sure 64bit is present as well... -Requires: nss-mdns nss-mdns%{_isa} +%ifarch %{ix86} +Requires: freetype(x86-32) +Requires: nss-mdns(x86-32) # require Xrender isa on x86_64 (#510947) -Requires: libXrender%{_isa} +Requires: libXrender(x86-32) +%endif +%ifarch x86_64 +Requires: nss-mdns(x86-64) +Requires: freetype(x86-64) +%endif %description core Wine core package includes the basic wine stuff needed by all other packages. @@ -150,18 +175,28 @@ Requires(post): desktop-file-utils >= 0.8 Requires(preun): /sbin/chkconfig, /sbin/service Requires(postun): desktop-file-utils >= 0.8 Requires: wine-core = %{version}-%{release} +BuildArch: noarch %description desktop Desktop integration features for wine, including mime-types and a binary format handler service. -%package tools -Summary: Additional wine tools +%package fonts +Summary: Wine font files +Group: Applications/Emulators +BuildArch: noarch + +%description fonts +%{summary} + +%package common +Summary: Common files Group: Applications/Emulators Requires: wine-core = %{version}-%{release} +BuildArch: noarch -%description tools -Additional wine tools +%description common +Common wine files and scripts. %package esd Summary: ESD sound support for wine @@ -175,7 +210,12 @@ ESD sound support for wine Summary: JACK sound support for wine Group: System Environment/Libraries Requires: wine-core = %{version}-%{release} -Requires: jack-audio-connection-kit%{_isa} +%ifarch %{ix86} +Requires: jack-audio-connection-kit(x86-32) +%endif +%ifarch x86_64 +Requires: jack-audio-connection-kit(x86-64) +%endif %description jack JACK sound support for wine @@ -256,19 +296,27 @@ This package adds an oss driver for wine. %prep %setup -q -n %{name}-%{version}-fe + %patch1 %patch400 -p1 %patch401 -p1 %patch402 -p1 +%patch403 + autoreconf %build export CFLAGS="$RPM_OPT_FLAGS" - %configure \ --sysconfdir=%{_sysconfdir}/wine \ --x-includes=%{_includedir} --x-libraries=%{_libdir} \ - --with-pulse + --with-pulse \ + --with-x \ +%ifarch x86_64 + --enable-win64 \ +%endif + --enable-maintainer-mode \ + --disable-tests %{__make} depend @@ -284,6 +332,17 @@ rm -rf %{buildroot} LDCONFIG=/bin/true \ UPDATE_DESKTOP_DATABASE=/bin/true +%ifarch %{ix86} +# rename wine to wine32 +mv %{buildroot}%{_bindir}/wine{,32} +%endif + +# if x86_64 rename to wine64 +%ifarch x86_64 +mv %{buildroot}%{_bindir}/wine{,64} +%endif + + mkdir -p %{buildroot}%{_sysconfdir}/wine # Allow users to launch Windows programs by just clicking on the .exe file... @@ -366,7 +425,16 @@ desktop-file-install \ cp %{SOURCE3} README-Fedora mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d/ + +%ifarch %{ix86} install -p -m644 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d/ +%endif + +%ifarch x86_64 +install -p -m644 %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d/ +%endif + +install -p -m755 %{SOURCE6} $RPM_BUILD_ROOT%{_bindir}/wine # deploy pulseaudio readme cp %{SOURCE402} . @@ -430,19 +498,49 @@ update-desktop-database &>/dev/null || : %files core %defattr(-,root,root,-) -%doc ANNOUNCE COPYING.LIB LICENSE LICENSE.OLD -%doc AUTHORS README-Fedora README VERSION +%doc ANNOUNCE +%doc COPYING.LIB +%doc LICENSE +%doc LICENSE.OLD +%doc AUTHORS +%doc README-Fedora +%doc README +%doc VERSION # do not include huge changelogs .OLD .ALPHA .BETA (#204302) %doc documentation/README.* -%{_bindir}/msiexec -%{_bindir}/regedit -%{_bindir}/regsvr32 -%{_bindir}/wine -%{_bindir}/wineboot -%{_bindir}/wineconsole -%{_bindir}/wineprefixcreate -%{_mandir}/man1/wineprefixcreate.1* -%{_bindir}/winecfg + +%{_bindir}/winedump +%{_libdir}/wine/explorer.exe.so +%{_libdir}/wine/control.exe.so +%{_libdir}/wine/cmd.exe.so +%{_libdir}/wine/notepad.exe.so +%{_libdir}/wine/progman.exe.so +%{_libdir}/wine/taskmgr.exe.so +%{_libdir}/wine/winedbg.exe.so +%{_libdir}/wine/winefile.exe.so +%{_libdir}/wine/winemine.exe.so +%{_libdir}/wine/winepath.exe.so +%{_libdir}/wine/winver.exe.so +%{_libdir}/wine/wordpad.exe.so +%{_libdir}/wine/write.exe.so + +%ifarch %{ix86} +%{_bindir}/wine-preloader +%endif +%{_bindir}/wineserver + +%ifarch %{ix86} +%{_sysconfdir}/ld.so.conf.d/wine-32.conf +%{_bindir}/wine32 +%endif +%ifarch x86_64 +%{_bindir}/wine64 +%{_sysconfdir}/ld.so.conf.d/wine-64.conf +%endif + +%dir %{_libdir}/wine +%dir %{_libdir}/wine/fakedlls +%{_libdir}/wine/fakedlls/* %{_libdir}/wine/cacls.exe.so %{_libdir}/wine/expand.exe.so %{_libdir}/wine/winhlp32.exe.so @@ -463,20 +561,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/winebrowser.exe.so %{_libdir}/wine/wineconsole.exe.so %{_libdir}/wine/winemenubuilder.exe.so -%{_libdir}/wine/winevdm.exe.so %{_libdir}/wine/winecfg.exe.so %{_libdir}/wine/winedevice.exe.so %{_libdir}/wine/uninstaller.exe.so -%dir %{_datadir}/wine -%{_mandir}/man1/wine.1.gz -%{_mandir}/man1/wineserver.1* -%lang(fr) %{_mandir}/fr.UTF-8/man1/* -%{_datadir}/wine/generic.ppd -%{_datadir}/wine/wine.inf -%{_bindir}/wine-preloader -%{_bindir}/wineserver %{_libdir}/libwine.so.1* -%dir %{_libdir}/wine %{_libdir}/wine/acledit.dll.so %{_libdir}/wine/aclui.dll.so %{_libdir}/wine/activeds.dll.so @@ -499,7 +587,6 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/comcat.dll.so %{_libdir}/wine/comctl32.dll.so %{_libdir}/wine/comdlg32.dll.so -%{_libdir}/wine/commdlg.dll16 %{_libdir}/wine/compstui.dll.so %{_libdir}/wine/credui.dll.so %{_libdir}/wine/crtdll.dll.so @@ -549,7 +636,6 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/eject.exe.so %{_libdir}/wine/faultrep.dll.so %{_libdir}/wine/fusion.dll.so -%{_libdir}/wine/gdi.exe16 %{_libdir}/wine/gdi32.dll.so %{_libdir}/wine/gdiplus.dll.so %{_libdir}/wine/glu32.dll.so @@ -565,7 +651,6 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/iccvid.dll.so %{_libdir}/wine/icinfo.exe.so %{_libdir}/wine/icmp.dll.so -%{_libdir}/wine/ifsmgr.vxd.so %{_libdir}/wine/imaadp32.acm.so %{_libdir}/wine/imagehlp.dll.so %{_libdir}/wine/imm32.dll.so @@ -580,7 +665,6 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/itss.dll.so %{_libdir}/wine/jscript.dll.so %{_libdir}/wine/kernel32.dll.so -%{_libdir}/wine/krnl386.exe16 %{_libdir}/wine/loadperf.dll.so %{_libdir}/wine/localspl.dll.so %{_libdir}/wine/localui.dll.so @@ -593,21 +677,21 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/mciwave.dll.so %{_libdir}/wine/midimap.dll.so %{_libdir}/wine/mlang.dll.so -%{_libdir}/wine/mmdevldr.vxd.so -%{_libdir}/wine/mmsystem.dll16 -%{_libdir}/wine/monodebg.vxd.so %{_libdir}/wine/mountmgr.sys.so %{_libdir}/wine/mpr.dll.so %{_libdir}/wine/mprapi.dll.so +%{_libdir}/wine/mciqtz32.dll.so %{_libdir}/wine/msacm32.dll.so %{_libdir}/wine/msacm32.drv.so %{_libdir}/wine/msadp32.acm.so %{_libdir}/wine/mscat32.dll.so %{_libdir}/wine/mscoree.dll.so %{_libdir}/wine/msctf.dll.so +%{_libdir}/wine/msdaps.dll.so %{_libdir}/wine/msdmo.dll.so %{_libdir}/wine/msftedit.dll.so %{_libdir}/wine/msg711.acm.so +%{_libdir}/wine/msgsm32.acm.so %{_libdir}/wine/mshtml.dll.so %{_libdir}/wine/mshtml.tlb.so %{_libdir}/wine/msi.dll.so @@ -675,7 +759,6 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/sensapi.dll.so %{_libdir}/wine/serialui.dll.so %{_libdir}/wine/setupapi.dll.so -%{_libdir}/wine/setupx.dll16 %{_libdir}/wine/sfc_os.dll.so %{_libdir}/wine/shdoclc.dll.so %{_libdir}/wine/shdocvw.dll.so @@ -693,45 +776,31 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/svchost.exe.so %{_libdir}/wine/svrapi.dll.so %{_libdir}/wine/sxs.dll.so -%{_libdir}/wine/system.drv16 %{_libdir}/wine/t2embed.dll.so %{_libdir}/wine/tapi32.dll.so -%{_libdir}/wine/toolhelp.dll16 %{_libdir}/wine/traffic.dll.so %{_libdir}/wine/unicows.dll.so %{_libdir}/wine/unlodctr.exe.so %{_libdir}/wine/updspapi.dll.so %{_libdir}/wine/url.dll.so %{_libdir}/wine/urlmon.dll.so -%{_libdir}/wine/user.exe16 %{_libdir}/wine/user32.dll.so %{_libdir}/wine/usp10.dll.so %{_libdir}/wine/uxtheme.dll.so %{_libdir}/wine/userenv.dll.so -%{_libdir}/wine/vdhcp.vxd.so %{_libdir}/wine/vdmdbg.dll.so -%{_libdir}/wine/ver.dll16 %{_libdir}/wine/version.dll.so -%{_libdir}/wine/vmm.vxd.so -%{_libdir}/wine/vnbt.vxd.so -%{_libdir}/wine/vnetbios.vxd.so -%{_libdir}/wine/vtdapi.vxd.so -%{_libdir}/wine/vwin32.vxd.so -%{_libdir}/wine/w32skrnl.dll.so %{_libdir}/wine/wbemprox.dll.so %{_libdir}/wine/windowscodecs.dll.so %{_libdir}/wine/wineaudioio.drv.so -%{_libdir}/wine/winedos.dll.so %{_libdir}/wine/winecoreaudio.drv.so %{_libdir}/wine/winejoystick.drv.so %{_libdir}/wine/winex11.drv.so -%{_libdir}/wine/wing.dll16 %{_libdir}/wine/wing32.dll.so %{_libdir}/wine/winhttp.dll.so %{_libdir}/wine/wininet.dll.so %{_libdir}/wine/winmm.dll.so %{_libdir}/wine/winnls32.dll.so -%{_libdir}/wine/winsock.dll16 %{_libdir}/wine/winspool.drv.so %{_libdir}/wine/wmi.dll.so %{_libdir}/wine/wmiutils.dll.so @@ -741,16 +810,13 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/wintrust.dll.so %{_libdir}/wine/wnaspi32.dll.so %{_libdir}/wine/wow32.dll.so -%{_libdir}/wine/wprocs.dll16 %{_libdir}/wine/ws2_32.dll.so %{_libdir}/wine/wsock32.dll.so %{_libdir}/wine/wtsapi32.dll.so %{_libdir}/wine/wuapi.dll.so %{_libdir}/wine/security.dll.so %{_libdir}/wine/sfc.dll.so -%{_datadir}/wine/fonts/ %{_libdir}/wine/wineps.drv.so -%{_libdir}/wine/wineps16.drv16 %{_libdir}/wine/d3d8.dll.so %{_libdir}/wine/d3d9.dll.so %{_libdir}/wine/opengl32.dll.so @@ -763,8 +829,33 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/xinput1_3.dll.so %{_libdir}/wine/xinput9_1_0.dll.so %{_libdir}/wine/xmllite.dll.so -%{_sysconfdir}/ld.so.conf.d/wine-32.conf -# 16bit +%ifnarch x86_64 +# 16 bit and other non 64bit stuff +%{_libdir}/wine/winedos.dll.so +%{_libdir}/wine/winevdm.exe.so +%{_libdir}/wine/ifsmgr.vxd.so +%{_libdir}/wine/mmdevldr.vxd.so +%{_libdir}/wine/mmsystem.dll16 +%{_libdir}/wine/monodebg.vxd.so +%{_libdir}/wine/vdhcp.vxd.so +%{_libdir}/wine/ver.dll16 +%{_libdir}/wine/user.exe16 +%{_libdir}/wine/vmm.vxd.so +%{_libdir}/wine/wing.dll16 +%{_libdir}/wine/vnbt.vxd.so +%{_libdir}/wine/vnetbios.vxd.so +%{_libdir}/wine/vtdapi.vxd.so +%{_libdir}/wine/vwin32.vxd.so +%{_libdir}/wine/w32skrnl.dll.so +%{_libdir}/wine/commdlg.dll16 +%{_libdir}/wine/gdi.exe16 +%{_libdir}/wine/setupx.dll16 +%{_libdir}/wine/system.drv16 +%{_libdir}/wine/toolhelp.dll16 +%{_libdir}/wine/winsock.dll16 +%{_libdir}/wine/wprocs.dll16 +%{_libdir}/wine/wineps16.drv16 + %{_libdir}/wine/avifile.dll16.so %{_libdir}/wine/comm.drv16.so %{_libdir}/wine/compobj.dll16.so @@ -774,9 +865,9 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/dispdib.dll16.so %{_libdir}/wine/display.drv16.so %{_libdir}/wine/imm.dll16.so +%{_libdir}/wine/krnl386.exe16 %{_libdir}/wine/keyboard.drv16.so %{_libdir}/wine/lzexpand.dll16.so -%{_libdir}/wine/mciqtz32.dll.so %{_libdir}/wine/mouse.drv16.so %{_libdir}/wine/msacm.dll16.so %{_libdir}/wine/msvideo.dll16.so @@ -804,29 +895,36 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/winnls.dll16.so %{_libdir}/wine/winoldap.mod16.so %{_libdir}/wine/wintab.dll16.so +%endif -%files tools +%files common %defattr(-,root,root,-) +%{_bindir}/wineprefixcreate %{_bindir}/notepad %{_bindir}/winedbg -%{_bindir}/winedump %{_bindir}/winefile -%{_bindir}/winemaker %{_bindir}/winemine +%{_bindir}/winemaker %{_bindir}/winepath -%{_libdir}/wine/explorer.exe.so -%{_libdir}/wine/control.exe.so -%{_libdir}/wine/cmd.exe.so -%{_libdir}/wine/notepad.exe.so -%{_libdir}/wine/progman.exe.so -%{_libdir}/wine/taskmgr.exe.so -%{_libdir}/wine/winedbg.exe.so -%{_libdir}/wine/winefile.exe.so -%{_libdir}/wine/winemine.exe.so -%{_libdir}/wine/winepath.exe.so -%{_libdir}/wine/winver.exe.so -%{_libdir}/wine/wordpad.exe.so -%{_libdir}/wine/write.exe.so +%{_bindir}/msiexec +%{_bindir}/regedit +%{_bindir}/regsvr32 +%{_bindir}/wine +%{_bindir}/wineboot +%{_bindir}/wineconsole +%{_bindir}/winecfg +%dir %{_datadir}/wine +%{_mandir}/man1/wine.1.gz +%{_mandir}/man1/wineserver.1* +%{_mandir}/man1/wineprefixcreate.1* +%lang(fr) %{_mandir}/fr.UTF-8/man1/* +%{_datadir}/wine/generic.ppd +%{_datadir}/wine/wine.inf + +%files fonts +%defattr(-,root,root,-) +%{_datadir}/wine/fonts + %files desktop %defattr(-,root,root,-) @@ -846,31 +944,38 @@ update-desktop-database &>/dev/null || : %{_sysconfdir}/xdg/menus/applications-merged/wine.menu %{_initrddir}/wine +# esd subpackage %files esd %defattr(-,root,root,-) %{_libdir}/wine/wineesd.drv.so +# jack subpackage %files jack %defattr(-,root,root,-) %{_libdir}/wine/winejack.drv.so +# nas subpackage %files nas %defattr(-,root,root,-) %{_libdir}/wine/winenas.drv.so +# ldap subpackage %files ldap %defattr(-,root,root,-) %{_libdir}/wine/wldap32.dll.so +# cms subpackage %files cms %defattr(-,root,root,-) %{_libdir}/wine/mscms.dll.so +# twain subpackage %files twain %defattr(-,root,root,-) %{_libdir}/wine/twain_32.dll.so %{_libdir}/wine/sane.ds.so +# capi subpackage %files capi %defattr(-,root,root,-) %{_libdir}/wine/capi2032.dll.so @@ -887,7 +992,6 @@ update-desktop-database &>/dev/null || : %{_bindir}/winemaker %{_bindir}/wmc %{_bindir}/wrc -%{_libdir}/*.so %{_mandir}/man1/widl.1* %{_mandir}/man1/winebuild.1* %{_mandir}/man1/winedump.1* @@ -898,9 +1002,9 @@ update-desktop-database &>/dev/null || : %{_mandir}/man1/winedbg.1* %{_mandir}/man1/wineg++.1* %lang(de) %{_mandir}/de.UTF-8/man1/wine.1* -%{_datadir}/aclocal/wine.m4 %attr(0755, root, root) %dir %{_includedir}/wine %{_includedir}/wine/* +%{_libdir}/*.so %{_libdir}/wine/*.a %{_libdir}/wine/*.def @@ -919,6 +1023,22 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/wineoss.drv.so %changelog +* Mon Aug 24 2009 Andreas Bierfert +- 1.1.28-1 +- version upgrade +- make 32bit and 64bit version parallel installable + +* Sun Aug 09 2009 Andreas Bierfert +- 1.1.27-1 +- version upgrade +- WinePulse 0.30 + +* Thu Aug 06 2009 Andreas Bierfert +- 1.1.26-2 +- build 32bit wine on x86_64 and prepare for 64bit parallel build (#487651) +- fix subpackage problems (#485410,#508766,#508944,#514967) +- fix nss dependencies on x86_64 (#508412) + * Sat Jul 18 2009 Andreas Bierfert - 1.1.26-1 - version upgrade diff --git a/winepulse-0.29-configure.ac.patch b/winepulse-0.30-configure.ac.patch similarity index 75% rename from winepulse-0.29-configure.ac.patch rename to winepulse-0.30-configure.ac.patch index d6c4897..e4d800c 100644 --- a/winepulse-0.29-configure.ac.patch +++ b/winepulse-0.30-configure.ac.patch @@ -1,8 +1,8 @@ diff --git a/configure.ac b/configure.ac -index 3b805fe..4c2b822 100644 +index 59b771c..385a7e4 100644 --- a/configure.ac +++ b/configure.ac -@@ -58,6 +58,7 @@ AC_ARG_WITH(png, AS_HELP_STRING([--without-png],[do not use PNG]), +@@ -60,6 +60,7 @@ AC_ARG_WITH(png, AS_HELP_STRING([--without-png],[do not use PNG]), [if test "x$withval" = "xno"; then ac_cv_header_png_h=no; fi]) AC_ARG_WITH(pthread, AS_HELP_STRING([--without-pthread],[do not use the pthread library]), [if test "x$withval" = "xno"; then ac_cv_header_pthread_h=no; fi]) @@ -10,32 +10,32 @@ index 3b805fe..4c2b822 100644 AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)])) AC_ARG_WITH(xcomposite,AS_HELP_STRING([--without-xcomposite],[do not use the Xcomposite extension]), [if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_Xcomposite_h=no; fi]) -@@ -1253,6 +1254,24 @@ then +@@ -1257,6 +1258,24 @@ then CFLAGS="$save_CFLAGS" fi +dnl **** Check for PulseAudio **** +if test "x$with_pulse" != "xno"; then + if test "$PKG_CONFIG" != "false"; then -+ AC_MSG_CHECKING([for pulseaudio >= 0.9.15]) -+ if "$PKG_CONFIG" --atleast-version=0.9.15 libpulse; then -+ have_pulseaudio="yes" ++ AC_MSG_CHECKING([for pulseaudio >= 0.9.14]) ++ if "$PKG_CONFIG" --atleast-version=0.9.14 libpulse; then ++ have_pulseaudio="yes" + else -+ have_pulseaudio="no" -+ fi -+ AC_MSG_RESULT([$have_pulseaudio]) -+ if test x"$have_pulseaudio" = xyes; then -+ ac_pulse_libs=`$PKG_CONFIG --libs libpulse` -+ AC_DEFINE([HAVE_PULSEAUDIO], 1, [define this if you have pulseaudio]) -+ AC_SUBST(PULSELIBS, "$ac_pulse_libs") -+ fi ++ have_pulseaudio="no" ++ fi ++ AC_MSG_RESULT([$have_pulseaudio]) ++ if test x"$have_pulseaudio" = xyes; then ++ ac_pulse_libs=`$PKG_CONFIG --libs libpulse` ++ AC_DEFINE([HAVE_PULSEAUDIO], 1, [define this if you have pulseaudio]) ++ AC_SUBST(PULSELIBS, "$ac_pulse_libs") ++ fi + fi +fi + dnl **** Check for ALSA 1.x **** AC_SUBST(ALSALIBS,"") if test "$ac_cv_header_sys_asoundlib_h" = "yes" -o "$ac_cv_header_alsa_asoundlib_h" = "yes" -@@ -1379,7 +1398,7 @@ dnl **** Check for libodbc **** +@@ -1391,7 +1410,7 @@ dnl **** Check for libodbc **** WINE_CHECK_SONAME(odbc,SQLConnect,,[AC_DEFINE_UNQUOTED(SONAME_LIBODBC,["libodbc.$LIBEXT"])]) dnl **** Check for any sound system **** @@ -44,7 +44,7 @@ index 3b805fe..4c2b822 100644 "$ac_cv_header_sys_soundcard_h" != "yes" -a \ "$ac_cv_header_machine_soundcard_h" != "yes" -a \ "$ac_cv_header_soundcard_h" != "yes" -a \ -@@ -2415,6 +2434,7 @@ WINE_CONFIG_MAKEFILE([dlls/winemp3.acm/Makefile],[dlls/Makedll.rules],[dlls],[AL +@@ -2429,6 +2448,7 @@ WINE_CONFIG_MAKEFILE([dlls/winemp3.acm/Makefile],[dlls/Makedll.rules],[dlls],[AL WINE_CONFIG_MAKEFILE([dlls/winenas.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) WINE_CONFIG_MAKEFILE([dlls/wineoss.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) WINE_CONFIG_MAKEFILE([dlls/wineps.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) diff --git a/winepulse-0.29.patch b/winepulse-0.30.patch similarity index 99% rename from winepulse-0.29.patch rename to winepulse-0.30.patch index b42e21e..0d8970b 100644 --- a/winepulse-0.29.patch +++ b/winepulse-0.30.patch @@ -1416,10 +1416,10 @@ index 0000000..7cbc781 +#endif /* HAVE_PULSEAUDIO */ diff --git a/dlls/winepulse.drv/waveout.c b/dlls/winepulse.drv/waveout.c new file mode 100644 -index 0000000..ee92535 +index 0000000..458a33d --- /dev/null +++ b/dlls/winepulse.drv/waveout.c -@@ -0,0 +1,1075 @@ +@@ -0,0 +1,1070 @@ +/* + * Wine Driver for PulseAudio - WaveOut Functionality + * http://pulseaudio.org/ @@ -1616,7 +1616,7 @@ index 0000000..ee92535 + */ +static void wodPlayer_CheckReleasing(WINE_WAVEINST *wwo) { + -+ if (wwo->buffer_attr.tlength == -1 && wwo->lpQueuePtr && !wwo->lpPlayPtr && wwo->state == WINE_WS_PLAYING) { ++ if (wwo->buffer_attr.tlength == -1 && wwo->lpQueuePtr && !wwo->lpPlayPtr && wwo->state != WINE_WS_STOPPED) { + const pa_buffer_attr *returned; + + /* Try and adjust the buffer attributes so that playback can start. @@ -1625,12 +1625,7 @@ index 0000000..ee92535 + + pa_threaded_mainloop_lock(PULSE_ml); + -+ if (wwo->timing_info->playing) { -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ return; -+ } -+ -+ /* Calculate desired buffer length. write_index is the amount of data ++ /* Calculate desired buffer length. write_index is the amount of data + * written. If there is more than one buffer queued, subtract the + * length of one to allow there to be a free buffer for the app. */ + wwo->buffer_attr.tlength = wwo->timing_info->write_index; From 4eadcffa4eeca8c8a10916bcf2b5689c735c0dd7 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 30 Aug 2009 21:35:07 +0000 Subject: [PATCH 122/715] - add chooser and 64bit lib file --- wine-64.conf | 1 + wine-chooser.sh | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 wine-64.conf create mode 100644 wine-chooser.sh diff --git a/wine-64.conf b/wine-64.conf new file mode 100644 index 0000000..268f698 --- /dev/null +++ b/wine-64.conf @@ -0,0 +1 @@ +/usr/lib64/wine/ diff --git a/wine-chooser.sh b/wine-chooser.sh new file mode 100644 index 0000000..d14f58a --- /dev/null +++ b/wine-chooser.sh @@ -0,0 +1,39 @@ +#!/bin/sh +HAVE_32=false +HAVE_64=false + +if [ -x "/usr/bin/wine32" ]; then +HAVE_32=true +fi + +if [ -x "/usr/bin/wine64" ]; then +HAVE_64=true +fi + +if [ -f "${1}" ]; then + archtype=`file "${1}" | cut -d':' -f2 | cut -d' ' -f2` + + if [ ${archtype} = 'PE32+' ]; then # 64bit + if $HAVE_64; then + exec "/usr/bin/wine64" "${@}"; + elif [ `uname -m` = 'x86_64' ]; then + echo "Your are trying to run a 64bit application. Please install the 64bit version of wine." + echo "You can achieve this by running 'su -c \"yum install \\\"wine(x86-64)\\\"\"'" + else + echo "Your are trying to run a 64bit application on a 32bit installation of Fedora. You need a 64bit version of Fedora to run this application." + fi + else + if $HAVE_32; then + exec "/usr/bin/wine32" "${@}" + else + echo "Your are trying to run a 32bit application. Please install the 32bit version of wine." + echo "You can achieve this by running 'su -c \"yum install \\\"wine(x86-32)\\\"\"'" + fi + fi +else + if $HAVE_64; then + exec "/usr/bin/wine64" "${@}"; + else + exec "/usr/bin/wine32" "${@}"; + fi +fi From 278e1594debe507949f15adfc00f14f411f4a287 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Wed, 2 Sep 2009 20:36:03 +0000 Subject: [PATCH 123/715] - version upgrade - disable f10 x86_64 build (gcc is to old) --- .cvsignore | 2 +- sources | 2 +- wine.spec | 8 +++++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/.cvsignore b/.cvsignore index 3de7483..e176e7c 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-1.1.28-fe.tar.bz2 +wine-1.1.29-fe.tar.bz2 diff --git a/sources b/sources index c9b13b0..41c29d8 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -6342c41f46d0571efae685c17aa5550f wine-1.1.28-fe.tar.bz2 +3782b65da7db94460b93961356715403 wine-1.1.29-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index 0f96350..6fb7807 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ %define no64bit 0 Name: wine -Version: 1.1.28 +Version: 1.1.29 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -523,6 +523,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/winver.exe.so %{_libdir}/wine/wordpad.exe.so %{_libdir}/wine/write.exe.so +%{_libdir}/wine/dxdiag.exe.so %ifarch %{ix86} %{_bindir}/wine-preloader @@ -727,6 +728,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/oleacc.dll.so %{_libdir}/wine/oleaut32.dll.so %{_libdir}/wine/olecli32.dll.so +%{_libdir}/wine/oledb32.dll.so %{_libdir}/wine/oledlg.dll.so %{_libdir}/wine/olepro32.dll.so %{_libdir}/wine/olesvr32.dll.so @@ -1023,6 +1025,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/wineoss.drv.so %changelog +* Wed Sep 02 2009 Andreas Bierfert +- 1.1.29-1 +- version upgrade + * Mon Aug 24 2009 Andreas Bierfert - 1.1.28-1 - version upgrade From bbc84be1794c8ddf234383505a8511981db4720d Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Thu, 10 Sep 2009 14:46:01 +0000 Subject: [PATCH 124/715] - fix #505862 --- wine.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 6fb7807..8e642fa 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %define no64bit 0 Name: wine Version: 1.1.29 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -1025,6 +1025,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/wineoss.drv.so %changelog +* Thu Sep 10 2009 Andreas Bierfert +- 1.1.29-2 +- rebuild for new gcc (#505862) + * Wed Sep 02 2009 Andreas Bierfert - 1.1.29-1 - version upgrade From adce98c2f981dc51cbbf806b64cdf0ed9fafa973 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 13 Sep 2009 10:56:19 +0000 Subject: [PATCH 125/715] - fix steam regression - winepulse winecfg update --- pulseaudio-winecfg-update.patch | 10 -- steam-regression.patch | 25 ++++ wine.spec | 19 ++- ...g-0.4.patch => winepulse-winecfg-0.6.patch | 136 +++++++++++------- 4 files changed, 126 insertions(+), 64 deletions(-) delete mode 100644 pulseaudio-winecfg-update.patch create mode 100644 steam-regression.patch rename adding-pulseaudio-to-winecfg-0.4.patch => winepulse-winecfg-0.6.patch (73%) diff --git a/pulseaudio-winecfg-update.patch b/pulseaudio-winecfg-update.patch deleted file mode 100644 index 365f99d..0000000 --- a/pulseaudio-winecfg-update.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- programs/winecfg/Ja.rc.orig 2009-08-26 11:55:56.000000000 +0200 -+++ programs/winecfg/Ja.rc 2009-08-26 11:56:52.000000000 +0200 -@@ -275,6 +275,7 @@ - IDS_ACCEL_STANDARD "標準" - IDS_ACCEL_BASIC "基本" - IDS_ACCEL_EMULATION "エミュレーション" -+ IDS_DRIVER_PULSE "PulseAudio ドライバ" - IDS_DRIVER_ALSA "ALSA ドライバ" - IDS_DRIVER_ESOUND "EsounD ドライバ" - IDS_DRIVER_OSS "OSS ドライバ" diff --git a/steam-regression.patch b/steam-regression.patch new file mode 100644 index 0000000..2b53d7e --- /dev/null +++ b/steam-regression.patch @@ -0,0 +1,25 @@ +--- a/dlls/winex11.drv/bitmap.c ++++ b/dlls/winex11.drv/bitmap.c +@@ -110,10 +110,6 @@ HBITMAP CDECL X11DRV_SelectBitmap( X11DRV_PDEVICE *physDev, HBITMAP hbitmap ) + if (physDev->depth != physBitmap->pixmap_depth) + { + physDev->depth = physBitmap->pixmap_depth; +- if(physDev->depth == 1) +- physDev->color_shifts = NULL; +- else +- physDev->color_shifts = &physBitmap->pixmap_color_shifts; + wine_tsx11_lock(); + XFreeGC( gdi_display, physDev->gc ); + physDev->gc = XCreateGC( gdi_display, physDev->drawable, 0, NULL ); +@@ -122,6 +118,12 @@ HBITMAP CDECL X11DRV_SelectBitmap( X11DRV_PDEVICE *physDev, HBITMAP hbitmap ) + XFlush( gdi_display ); + wine_tsx11_unlock(); + } ++ ++ if(physDev->depth == 1) ++ physDev->color_shifts = NULL; ++ else ++ physDev->color_shifts = &physBitmap->pixmap_color_shifts; ++ + return hbitmap; + } diff --git a/wine.spec b/wine.spec index 8e642fa..b3a54f2 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %define no64bit 0 Name: wine Version: 1.1.29 -Release: 2%{?dist} +Release: 3%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -49,11 +49,16 @@ Source300: wine-mime-msi.desktop # and http://art.ified.ca/?page_id=40 Patch400: http://art.ified.ca/downloads/winepulse-0.30-configure.ac.patch Patch401: http://art.ified.ca/downloads/winepulse-0.30.patch -Patch402: http://art.ified.ca/downloads/adding-pulseaudio-to-winecfg-0.4.patch +Patch402: http://art.ified.ca/downloads/winepulse/winepulse-winecfg-0.6.patch Source402: README-FEDORA-PULSEAUDIO -Patch403: pulseaudio-winecfg-update.patch Patch1: wine-rpath.patch + +# bugfix patches +# fix steam regression http://bugs.winehq.org/show_bug.cgi?id=19916 +# upstream commit 70241904b9efacab9fb6c7d8701b1cfdb86f49f7 +Patch1000: steam-regression.patch + Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) %if !%{?no64bit} @@ -301,7 +306,8 @@ This package adds an oss driver for wine. %patch400 -p1 %patch401 -p1 %patch402 -p1 -%patch403 + +%patch1000 -p1 autoreconf @@ -1025,6 +1031,11 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/wineoss.drv.so %changelog +* Sun Sep 13 2009 Andreas Bierfert +- 1.1.29-3 +- patch for steam regression (upstream #19916) +- update winepulse winecfg patch + * Thu Sep 10 2009 Andreas Bierfert - 1.1.29-2 - rebuild for new gcc (#505862) diff --git a/adding-pulseaudio-to-winecfg-0.4.patch b/winepulse-winecfg-0.6.patch similarity index 73% rename from adding-pulseaudio-to-winecfg-0.4.patch rename to winepulse-winecfg-0.6.patch index 3600a57..9cbbf58 100644 --- a/adding-pulseaudio-to-winecfg-0.4.patch +++ b/winepulse-winecfg-0.6.patch @@ -1,92 +1,92 @@ diff --git a/programs/winecfg/Bg.rc b/programs/winecfg/Bg.rc -index fcdf895..e17690e 100644 +index fcdf895..ec24068 100644 --- a/programs/winecfg/Bg.rc +++ b/programs/winecfg/Bg.rc @@ -276,6 +276,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Basic" IDS_ACCEL_EMULATION "Emulation" -+ IDS_DRIVER_PULSE "PulseAudio Driver" ++ IDS_DRIVER_PULSE "PulseAudio Driver" IDS_DRIVER_ALSA "ALSA Driver" IDS_DRIVER_ESOUND "EsounD Driver" IDS_DRIVER_OSS "OSS Driver" diff --git a/programs/winecfg/Cs.rc b/programs/winecfg/Cs.rc -index d9c0b28..9bcc033 100644 +index d9c0b28..6171f1f 100644 --- a/programs/winecfg/Cs.rc +++ b/programs/winecfg/Cs.rc @@ -276,6 +276,7 @@ BEGIN IDS_ACCEL_STANDARD "Standardn" IDS_ACCEL_BASIC "Zkladn" IDS_ACCEL_EMULATION "Emulace" -+ IDS_DRIVER_PULSE "Ovlada PulseAudio" ++ IDS_DRIVER_PULSE "Ovlada PulseAudio" IDS_DRIVER_ALSA "Ovlada ALSA" IDS_DRIVER_ESOUND "Ovlada EsounD" IDS_DRIVER_OSS "Ovlada OSS" diff --git a/programs/winecfg/Da.rc b/programs/winecfg/Da.rc -index f53aead..690c7f5 100644 +index f53aead..e33bd78 100644 --- a/programs/winecfg/Da.rc +++ b/programs/winecfg/Da.rc @@ -270,6 +270,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Grundlggende" IDS_ACCEL_EMULATION "Emulring" -+ IDS_DRIVER_PULSE "PulseAudio-driver" ++ IDS_DRIVER_PULSE "PulseAudio-driver" IDS_DRIVER_ALSA "ALSA-driver" IDS_DRIVER_ESOUND "EsounD-driver" IDS_DRIVER_OSS "OSS-driver" diff --git a/programs/winecfg/De.rc b/programs/winecfg/De.rc -index e6bed15..d3027bc 100644 +index aadd21e..f3016ab 100644 --- a/programs/winecfg/De.rc +++ b/programs/winecfg/De.rc -@@ -272,6 +272,7 @@ BEGIN +@@ -282,6 +282,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Einfach" IDS_ACCEL_EMULATION "Emulation" -+ IDS_DRIVER_PULSE "PulseAudio-Treiber" ++ IDS_DRIVER_PULSE "PulseAudio-Treiber" IDS_DRIVER_ALSA "ALSA-Treiber" IDS_DRIVER_ESOUND "EsounD-Treiber" IDS_DRIVER_OSS "OSS-Treiber" diff --git a/programs/winecfg/En.rc b/programs/winecfg/En.rc -index 049aaa7..cef7c4a 100644 +index 6aa5120..6f30805 100644 --- a/programs/winecfg/En.rc +++ b/programs/winecfg/En.rc -@@ -272,6 +272,7 @@ BEGIN +@@ -282,6 +282,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Basic" IDS_ACCEL_EMULATION "Emulation" -+ IDS_DRIVER_PULSE "PulseAudio Driver" ++ IDS_DRIVER_PULSE "PulseAudio Driver" IDS_DRIVER_ALSA "ALSA Driver" IDS_DRIVER_ESOUND "EsounD Driver" IDS_DRIVER_OSS "OSS Driver" diff --git a/programs/winecfg/Es.rc b/programs/winecfg/Es.rc -index 1771b4e..c49f9a3 100644 +index 1771b4e..aaacaa9 100644 --- a/programs/winecfg/Es.rc +++ b/programs/winecfg/Es.rc @@ -270,6 +270,7 @@ BEGIN IDS_ACCEL_STANDARD "Estndar" IDS_ACCEL_BASIC "Bsica" IDS_ACCEL_EMULATION "Emulacin" -+ IDS_DRIVER_PULSE "Manejador PulseAudio" ++ IDS_DRIVER_PULSE "Manejador PulseAudio" IDS_DRIVER_ALSA "Manejador ALSA" IDS_DRIVER_ESOUND "Manejador EsounD" IDS_DRIVER_OSS "Manejador OSS" diff --git a/programs/winecfg/Fi.rc b/programs/winecfg/Fi.rc -index 0dedf3a..097a4d2 100644 +index 0dedf3a..5217482 100644 --- a/programs/winecfg/Fi.rc +++ b/programs/winecfg/Fi.rc @@ -270,6 +270,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Basic" IDS_ACCEL_EMULATION "Emulation" -+ IDS_DRIVER_PULSE "PulseAudio Driver" ++ IDS_DRIVER_PULSE "PulseAudio Driver" IDS_DRIVER_ALSA "ALSA Driver" IDS_DRIVER_ESOUND "EsounD Driver" IDS_DRIVER_OSS "OSS Driver" diff --git a/programs/winecfg/Fr.rc b/programs/winecfg/Fr.rc -index 52c9888..1bd92b1 100644 +index a9184f9..004ebb0 100644 --- a/programs/winecfg/Fr.rc +++ b/programs/winecfg/Fr.rc -@@ -274,6 +274,7 @@ BEGIN +@@ -284,6 +284,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Basique" IDS_ACCEL_EMULATION "Émulation" @@ -95,62 +95,98 @@ index 52c9888..1bd92b1 100644 IDS_DRIVER_ESOUND "Pilote EsounD" IDS_DRIVER_OSS "Pilote OSS" diff --git a/programs/winecfg/Hu.rc b/programs/winecfg/Hu.rc -index dc887fe..3ba696f 100644 +index dc887fe..9bd192e 100644 --- a/programs/winecfg/Hu.rc +++ b/programs/winecfg/Hu.rc @@ -270,6 +270,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Basic" IDS_ACCEL_EMULATION "Emulation" -+ IDS_DRIVER_PULSE "PulseAudio Driver" ++ IDS_DRIVER_PULSE "PulseAudio Driver" IDS_DRIVER_ALSA "ALSA Driver" IDS_DRIVER_ESOUND "EsounD Driver" IDS_DRIVER_OSS "OSS Driver" +diff --git a/programs/winecfg/It.rc b/programs/winecfg/It.rc +index ddeda8c..1530b5f 100644 +--- a/programs/winecfg/It.rc ++++ b/programs/winecfg/It.rc +@@ -284,6 +284,7 @@ BEGIN + IDS_ACCEL_STANDARD "Standard" + IDS_ACCEL_BASIC "Base" + IDS_ACCEL_EMULATION "Emulazione" ++ IDS_DRIVER_PULSE "Driver PulseAudio" + IDS_DRIVER_ALSA "Driver ALSA" + IDS_DRIVER_ESOUND "Driver Esound" + IDS_DRIVER_OSS "Driver OSS" +diff --git a/programs/winecfg/Ja.rc b/programs/winecfg/Ja.rc +index 5b77da7..316d2e5 100644 +--- a/programs/winecfg/Ja.rc ++++ b/programs/winecfg/Ja.rc +@@ -285,6 +285,7 @@ BEGIN + IDS_ACCEL_STANDARD "標準" + IDS_ACCEL_BASIC "基本" + IDS_ACCEL_EMULATION "エミュレーション" ++ IDS_DRIVER_PULSE "PulseAudio ドライバ" + IDS_DRIVER_ALSA "ALSA ドライバ" + IDS_DRIVER_ESOUND "EsounD ドライバ" + IDS_DRIVER_OSS "OSS ドライバ" diff --git a/programs/winecfg/Ko.rc b/programs/winecfg/Ko.rc -index 6f13e0c..d5403da 100644 +index bf06647..66f9803 100644 --- a/programs/winecfg/Ko.rc +++ b/programs/winecfg/Ko.rc -@@ -274,6 +274,7 @@ BEGIN +@@ -285,6 +285,7 @@ BEGIN IDS_ACCEL_STANDARD "ǥ" IDS_ACCEL_BASIC "⺻" IDS_ACCEL_EMULATION "ֹķ̼" -+ IDS_DRIVER_PULSE "PulseAudio ̹" ++ IDS_DRIVER_PULSE "PulseAudio ̹" IDS_DRIVER_ALSA "ALSA ̹" IDS_DRIVER_ESOUND "EsounD ̹" IDS_DRIVER_OSS "OSS ̹" +diff --git a/programs/winecfg/Lt.rc b/programs/winecfg/Lt.rc +index 7208cc6..5aa8fdb 100644 +--- a/programs/winecfg/Lt.rc ++++ b/programs/winecfg/Lt.rc +@@ -283,6 +283,7 @@ BEGIN + IDS_ACCEL_STANDARD "Standartinis" + IDS_ACCEL_BASIC "Bazinis" + IDS_ACCEL_EMULATION "Emuliacija" ++ IDS_DRIVER_PULSE "PulseAudio tvarkyklė" + IDS_DRIVER_ALSA "ALSA tvarkyklė" + IDS_DRIVER_ESOUND "EsounD tvarkyklė" + IDS_DRIVER_OSS "OSS tvarkyklė" diff --git a/programs/winecfg/Nl.rc b/programs/winecfg/Nl.rc -index 4cd45f0..d23f359 100644 +index 2fbba6a..802abab 100644 --- a/programs/winecfg/Nl.rc +++ b/programs/winecfg/Nl.rc -@@ -273,6 +273,7 @@ BEGIN +@@ -283,6 +283,7 @@ BEGIN IDS_ACCEL_STANDARD "Standaard" IDS_ACCEL_BASIC "Eenvoudig" IDS_ACCEL_EMULATION "Emulatie" -+ IDS_DRIVER_PULSE "PulseAudio Stuurprogramma" ++ IDS_DRIVER_PULSE "PulseAudio Stuurprogramma" IDS_DRIVER_ALSA "ALSA Stuurprogramma" IDS_DRIVER_ESOUND "EsounD Stuurprogramma" IDS_DRIVER_OSS "OSS Stuurprogramma" diff --git a/programs/winecfg/No.rc b/programs/winecfg/No.rc -index cc34fad..71876ba 100644 +index cc34fad..0f0aea8 100644 --- a/programs/winecfg/No.rc +++ b/programs/winecfg/No.rc @@ -270,6 +270,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Grunnleggende" IDS_ACCEL_EMULATION "Emulering" -+ IDS_DRIVER_PULSE "PulseAudio-driver" ++ IDS_DRIVER_PULSE "PulseAudio-driver" IDS_DRIVER_ALSA "ALSA-driver" IDS_DRIVER_ESOUND "EsounD-driver" IDS_DRIVER_OSS "OSS-driver" diff --git a/programs/winecfg/Pl.rc b/programs/winecfg/Pl.rc -index d884881..d6405b1 100644 +index d884881..bb97de5 100644 --- a/programs/winecfg/Pl.rc +++ b/programs/winecfg/Pl.rc @@ -273,6 +273,7 @@ BEGIN IDS_ACCEL_STANDARD "Standardowe" IDS_ACCEL_BASIC "Podstawowe" IDS_ACCEL_EMULATION "Emulacja" -+ IDS_DRIVER_PULSE "Sterownik PulseAudio" ++ IDS_DRIVER_PULSE "Sterownik PulseAudio" IDS_DRIVER_ALSA "Sterownik ALSA" IDS_DRIVER_ESOUND "Sterownik EsounD" IDS_DRIVER_OSS "Sterownik OSS" @@ -167,86 +203,86 @@ index 683dc68..be92466 100644 IDS_DRIVER_ESOUND "Controlador EsounD" IDS_DRIVER_OSS "Controlador OSS" diff --git a/programs/winecfg/Ro.rc b/programs/winecfg/Ro.rc -index f12949f..2101ea1 100644 +index 5626018..6c84511 100644 --- a/programs/winecfg/Ro.rc +++ b/programs/winecfg/Ro.rc -@@ -272,6 +272,7 @@ BEGIN +@@ -282,6 +282,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "De bază" IDS_ACCEL_EMULATION "Emulare" -+ IDS_DRIVER_PULSE "Driver PulseAudio" ++ IDS_DRIVER_PULSE "Driver PulseAudio" IDS_DRIVER_ALSA "Driver ALSA" IDS_DRIVER_ESOUND "Driver Esound" IDS_DRIVER_OSS "Driver OSS" diff --git a/programs/winecfg/Ru.rc b/programs/winecfg/Ru.rc -index 7293cbc..fb57527 100644 +index 38b4546..73c0250 100644 --- a/programs/winecfg/Ru.rc +++ b/programs/winecfg/Ru.rc -@@ -277,6 +277,7 @@ BEGIN +@@ -287,6 +287,7 @@ BEGIN IDS_ACCEL_STANDARD "Стандартное" IDS_ACCEL_BASIC "Минимальное" IDS_ACCEL_EMULATION "Эмуляция" -+ IDS_DRIVER_PULSE "PulseAudio драйвер" ++ IDS_DRIVER_PULSE "PulseAudio драйвер" IDS_DRIVER_ALSA "ALSA драйвер" IDS_DRIVER_ESOUND "EsounD драйвер" IDS_DRIVER_OSS "OSS драйвер" diff --git a/programs/winecfg/Si.rc b/programs/winecfg/Si.rc -index feaef36..c26e5cb 100644 +index feaef36..1d10bae 100644 --- a/programs/winecfg/Si.rc +++ b/programs/winecfg/Si.rc @@ -272,6 +272,7 @@ BEGIN IDS_ACCEL_STANDARD "Standardno" IDS_ACCEL_BASIC "Osnovno" IDS_ACCEL_EMULATION "Emulacija" -+ IDS_DRIVER_PULSE "PulseAudio gonilnik" ++ IDS_DRIVER_PULSE "PulseAudio gonilnik" IDS_DRIVER_ALSA "ALSA gonilnik" IDS_DRIVER_ESOUND "EsounD gonilnik" IDS_DRIVER_OSS "OSS gonilnik" diff --git a/programs/winecfg/Sv.rc b/programs/winecfg/Sv.rc -index 7fea5aa..35eb871 100644 +index 7fea5aa..1979b5a 100644 --- a/programs/winecfg/Sv.rc +++ b/programs/winecfg/Sv.rc @@ -270,6 +270,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Grundlggande" IDS_ACCEL_EMULATION "Emulering" -+ IDS_DRIVER_PULSE "PulseAudio-drivrutin" ++ IDS_DRIVER_PULSE "PulseAudio-drivrutin" IDS_DRIVER_ALSA "ALSA-drivrutin" IDS_DRIVER_ESOUND "EsounD-drivrutin" IDS_DRIVER_OSS "OSS-drivrutin" diff --git a/programs/winecfg/Tr.rc b/programs/winecfg/Tr.rc -index 0fa9778..2a23112 100644 +index 0fa9778..5ea7da1 100644 --- a/programs/winecfg/Tr.rc +++ b/programs/winecfg/Tr.rc @@ -270,6 +270,7 @@ BEGIN IDS_ACCEL_STANDARD "Standart" IDS_ACCEL_BASIC "Temel" IDS_ACCEL_EMULATION "Taklit" -+ IDS_DRIVER_PULSE "PulseAudio Srcs" ++ IDS_DRIVER_PULSE "PulseAudio Srcs" IDS_DRIVER_ALSA "ALSA Srcs" IDS_DRIVER_ESOUND "EsounD Srcs" IDS_DRIVER_OSS "OSS Srcs" diff --git a/programs/winecfg/Zh.rc b/programs/winecfg/Zh.rc -index fea66b7..bc0aaaf 100644 +index 8c84061..3de1da8 100644 --- a/programs/winecfg/Zh.rc +++ b/programs/winecfg/Zh.rc -@@ -273,6 +273,7 @@ BEGIN +@@ -275,6 +275,7 @@ BEGIN IDS_ACCEL_STANDARD "标准" IDS_ACCEL_BASIC "基本" IDS_ACCEL_EMULATION "软件模拟" -+ IDS_DRIVER_PULSE "PulseAudio 驱动" ++ IDS_DRIVER_PULSE "PulseAudio 驱动" IDS_DRIVER_ALSA "ALSA 驱动" IDS_DRIVER_ESOUND "EsounD 驱动" IDS_DRIVER_OSS "OSS 驱动" diff --git a/programs/winecfg/audio.c b/programs/winecfg/audio.c -index 9f8a0a2..0ecb6c3 100644 +index 9f8a0a2..59837ef 100644 --- a/programs/winecfg/audio.c +++ b/programs/winecfg/audio.c @@ -89,6 +89,7 @@ typedef struct } AUDIO_DRIVER; static const AUDIO_DRIVER sAudioDrivers[] = { -+ {IDS_DRIVER_PULSE, "pulse"}, ++ {IDS_DRIVER_PULSE, "pulse"}, {IDS_DRIVER_ALSA, "alsa"}, {IDS_DRIVER_OSS, "oss"}, {IDS_DRIVER_COREAUDIO, "coreaudio"}, @@ -263,15 +299,15 @@ index 37cc12b..7c13fad 100644 "winmm", "wintab32", diff --git a/programs/winecfg/resource.h b/programs/winecfg/resource.h -index 27736b7..f8ba2ee 100644 +index f006861..57b2a15 100644 --- a/programs/winecfg/resource.h +++ b/programs/winecfg/resource.h -@@ -185,7 +185,7 @@ +@@ -187,7 +187,7 @@ #define IDS_ACCEL_BASIC 8302 #define IDS_ACCEL_EMULATION 8303 #define IDS_DRIVER_ALSA 8304 - -+#define IDS_DRIVER_PULSE 8305 ++#define IDS_DRIVER_PULSE 8305 #define IDS_DRIVER_ESOUND 8306 #define IDS_DRIVER_OSS 8307 #define IDS_DRIVER_JACK 8308 From 98c85fd9ff6052569cb910af4614fe1ddbceeb4c Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Fri, 30 Oct 2009 14:57:28 +0000 Subject: [PATCH 126/715] - version upgrade --- .cvsignore | 1 - sources | 1 - steam-regression.patch | 25 ------ wine-rpath.patch | 29 +++++-- wine.spec | 64 +++++++++----- ...patch => winepulse-0.32-configure.ac.patch | 18 ++-- winepulse-0.30.patch => winepulse-0.32.patch | 83 +++++++------------ 7 files changed, 108 insertions(+), 113 deletions(-) delete mode 100644 steam-regression.patch rename winepulse-0.30-configure.ac.patch => winepulse-0.32-configure.ac.patch (78%) rename winepulse-0.30.patch => winepulse-0.32.patch (97%) diff --git a/.cvsignore b/.cvsignore index e176e7c..e69de29 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +0,0 @@ -wine-1.1.29-fe.tar.bz2 diff --git a/sources b/sources index 41c29d8..e69de29 100644 --- a/sources +++ b/sources @@ -1 +0,0 @@ -3782b65da7db94460b93961356715403 wine-1.1.29-fe.tar.bz2 diff --git a/steam-regression.patch b/steam-regression.patch deleted file mode 100644 index 2b53d7e..0000000 --- a/steam-regression.patch +++ /dev/null @@ -1,25 +0,0 @@ ---- a/dlls/winex11.drv/bitmap.c -+++ b/dlls/winex11.drv/bitmap.c -@@ -110,10 +110,6 @@ HBITMAP CDECL X11DRV_SelectBitmap( X11DRV_PDEVICE *physDev, HBITMAP hbitmap ) - if (physDev->depth != physBitmap->pixmap_depth) - { - physDev->depth = physBitmap->pixmap_depth; -- if(physDev->depth == 1) -- physDev->color_shifts = NULL; -- else -- physDev->color_shifts = &physBitmap->pixmap_color_shifts; - wine_tsx11_lock(); - XFreeGC( gdi_display, physDev->gc ); - physDev->gc = XCreateGC( gdi_display, physDev->drawable, 0, NULL ); -@@ -122,6 +118,12 @@ HBITMAP CDECL X11DRV_SelectBitmap( X11DRV_PDEVICE *physDev, HBITMAP hbitmap ) - XFlush( gdi_display ); - wine_tsx11_unlock(); - } -+ -+ if(physDev->depth == 1) -+ physDev->color_shifts = NULL; -+ else -+ physDev->color_shifts = &physBitmap->pixmap_color_shifts; -+ - return hbitmap; - } diff --git a/wine-rpath.patch b/wine-rpath.patch index 06e1045..f8f6585 100644 --- a/wine-rpath.patch +++ b/wine-rpath.patch @@ -1,6 +1,6 @@ ---- configure.orig 2009-08-26 11:47:17.000000000 +0200 -+++ configure 2009-08-26 11:50:07.000000000 +0200 -@@ -6565,14 +6565,14 @@ +--- configure.orig 2009-10-29 18:57:06.000000000 +0100 ++++ configure 2009-10-29 18:58:49.000000000 +0100 +@@ -6758,14 +6758,14 @@ fi @@ -18,15 +18,28 @@ +CFLAGS="$CFLAGS -fPIC" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -@@ -6597,8 +6597,8 @@ + int main(int argc, char *argv) { return 0; } +@@ -6783,17 +6783,17 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if test `eval 'as_val=${'$as_ac_var'};$as_echo "$as_val"'` = yes; then : - LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`" - LDRPATH_LOCAL="-Wl,--rpath,\\\$\$ORIGIN/\$(TOPOBJDIR)/libs/wine" + LDRPATH_INSTALL="" -+ LDRPATH_LOCAL="" ++ LDRPATH_LOCAL="" + else +- as_ac_var=`$as_echo "ac_cv_cflags_-fPIC -Wl,-R,\\$ORIGIN/../lib" | $as_tr_sh` +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -fPIC -Wl,-R,\$ORIGIN/../lib" >&5 +-$as_echo_n "checking whether the compiler supports -fPIC -Wl,-R,\$ORIGIN/../lib... " >&6; } ++ as_ac_var=`$as_echo "ac_cv_cflags_-fPIC" | $as_tr_sh` ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -fPIC" >&5 ++$as_echo_n "checking whether the compiler supports -fPIC " >&6; } + if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then : + $as_echo_n "(cached) " >&6 else - as_ac_var=`$as_echo "ac_cv_cflags_-fPIC -Wl,-R,\\$ORIGIN/../lib" | $as_tr_sh` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -fPIC -Wl,-R,\$ORIGIN/../lib" >&5 + ac_wine_try_cflags_saved=$CFLAGS +-CFLAGS="$CFLAGS -fPIC -Wl,-R,\$ORIGIN/../lib" ++CFLAGS="$CFLAGS -fPIC" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + int main(int argc, char *argv) { return 0; } diff --git a/wine.spec b/wine.spec index b3a54f2..8b61415 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %define no64bit 0 Name: wine -Version: 1.1.29 -Release: 3%{?dist} +Version: 1.1.32 +Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -47,17 +47,15 @@ Source300: wine-mime-msi.desktop # explain how to use wine with pulseaudio # see http://bugs.winehq.org/show_bug.cgi?id=10495 # and http://art.ified.ca/?page_id=40 -Patch400: http://art.ified.ca/downloads/winepulse-0.30-configure.ac.patch -Patch401: http://art.ified.ca/downloads/winepulse-0.30.patch -Patch402: http://art.ified.ca/downloads/winepulse/winepulse-winecfg-0.6.patch +Patch400: http://art.ified.ca/downloads/winepulse-0.32-configure.ac.patch +Patch401: http://art.ified.ca/downloads/winepulse-0.32.patch +Patch402: http://art.ified.ca/downloads/winepulse/winepulse-winecfg-0.6.patch Source402: README-FEDORA-PULSEAUDIO Patch1: wine-rpath.patch # bugfix patches -# fix steam regression http://bugs.winehq.org/show_bug.cgi?id=19916 -# upstream commit 70241904b9efacab9fb6c7d8701b1cfdb86f49f7 -Patch1000: steam-regression.patch +# none Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -112,6 +110,7 @@ BuildRequires: dbus-devel hal-devel BuildRequires: gnutls-devel BuildRequires: pulseaudio-libs-devel BuildRequires: gsm-devel +BuildRequires: openal-soft-devel # noarch Requires: wine-common = %{version}-%{release} @@ -299,6 +298,15 @@ Requires: wine-core = %{version}-%{release} %description oss This package adds an oss driver for wine. +%package openal +Summary: Openal support for wine +Group: System Environment/Libraries +Requires: wine-core = %{version}-%{release} + +%description openal +This package adds an openal driver for wine. + + %prep %setup -q -n %{name}-%{version}-fe @@ -307,8 +315,6 @@ This package adds an oss driver for wine. %patch401 -p1 %patch402 -p1 -%patch1000 -p1 - autoreconf %build @@ -498,6 +504,9 @@ update-desktop-database &>/dev/null || : %post oss -p /sbin/ldconfig %postun oss -p /sbin/ldconfig +%post openal -p /sbin/ldconfig +%postun openal -p /sbin/ldconfig + %files %defattr(-,root,root,-) # meta package @@ -550,6 +559,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/fakedlls/* %{_libdir}/wine/cacls.exe.so %{_libdir}/wine/expand.exe.so +%{_libdir}/wine/extrac32.exe.so %{_libdir}/wine/winhlp32.exe.so %{_libdir}/wine/msiexec.exe.so %{_libdir}/wine/net.exe.so @@ -642,6 +652,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/dxgi.dll.so %{_libdir}/wine/eject.exe.so %{_libdir}/wine/faultrep.dll.so +%{_libdir}/wine/fltlib.dll.so %{_libdir}/wine/fusion.dll.so %{_libdir}/wine/gdi32.dll.so %{_libdir}/wine/gdiplus.dll.so @@ -817,7 +828,6 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/wintab32.dll.so %{_libdir}/wine/wintrust.dll.so %{_libdir}/wine/wnaspi32.dll.so -%{_libdir}/wine/wow32.dll.so %{_libdir}/wine/ws2_32.dll.so %{_libdir}/wine/wsock32.dll.so %{_libdir}/wine/wtsapi32.dll.so @@ -843,13 +853,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/winevdm.exe.so %{_libdir}/wine/ifsmgr.vxd.so %{_libdir}/wine/mmdevldr.vxd.so -%{_libdir}/wine/mmsystem.dll16 %{_libdir}/wine/monodebg.vxd.so %{_libdir}/wine/vdhcp.vxd.so -%{_libdir}/wine/ver.dll16 %{_libdir}/wine/user.exe16 %{_libdir}/wine/vmm.vxd.so -%{_libdir}/wine/wing.dll16 %{_libdir}/wine/vnbt.vxd.so %{_libdir}/wine/vnetbios.vxd.so %{_libdir}/wine/vtdapi.vxd.so @@ -857,12 +864,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/w32skrnl.dll.so %{_libdir}/wine/commdlg.dll16 %{_libdir}/wine/gdi.exe16 -%{_libdir}/wine/setupx.dll16 -%{_libdir}/wine/system.drv16 -%{_libdir}/wine/toolhelp.dll16 -%{_libdir}/wine/winsock.dll16 %{_libdir}/wine/wprocs.dll16 -%{_libdir}/wine/wineps16.drv16 %{_libdir}/wine/avifile.dll16.so %{_libdir}/wine/comm.drv16.so @@ -876,6 +878,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/krnl386.exe16 %{_libdir}/wine/keyboard.drv16.so %{_libdir}/wine/lzexpand.dll16.so +%{_libdir}/wine/mmsystem.dll16.so %{_libdir}/wine/mouse.drv16.so %{_libdir}/wine/msacm.dll16.so %{_libdir}/wine/msvideo.dll16.so @@ -888,21 +891,29 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/olecli.dll16.so %{_libdir}/wine/olesvr.dll16.so %{_libdir}/wine/rasapi16.dll16.so +%{_libdir}/wine/setupx.dll16.so %{_libdir}/wine/shell.dll16.so %{_libdir}/wine/sound.drv16.so %{_libdir}/wine/storage.dll16.so %{_libdir}/wine/stress.dll16.so +%{_libdir}/wine/system.drv16.so +%{_libdir}/wine/toolhelp.dll16.so %{_libdir}/wine/twain.dll16.so %{_libdir}/wine/typelib.dll16.so +%{_libdir}/wine/ver.dll16.so %{_libdir}/wine/w32sys.dll16.so %{_libdir}/wine/win32s16.dll16.so %{_libdir}/wine/win87em.dll16.so %{_libdir}/wine/winaspi.dll16.so %{_libdir}/wine/windebug.dll16.so +%{_libdir}/wine/wineps16.drv16.so +%{_libdir}/wine/wing.dll16.so %{_libdir}/wine/winhelp.exe16.so %{_libdir}/wine/winnls.dll16.so %{_libdir}/wine/winoldap.mod16.so +%{_libdir}/wine/winsock.dll16.so %{_libdir}/wine/wintab.dll16.so +%{_libdir}/wine/wow32.dll.so %endif %files common @@ -1030,7 +1041,22 @@ update-desktop-database &>/dev/null || : %defattr(-,root,root,-) %{_libdir}/wine/wineoss.drv.so +%files openal +%defattr(-,root,root,-) +%{_libdir}/wine/openal32.dll.so + %changelog +* Tue Oct 27 2009 Andreas Bierfert +- 1.1.32-1 +- version upgrade (#531358) +- update winepulse + +* Mon Sep 28 2009 Andreas Bierfert +- 1.1.30-1 +- version upgrade +- openal support +- drop steam regression patch + * Sun Sep 13 2009 Andreas Bierfert - 1.1.29-3 - patch for steam regression (upstream #19916) diff --git a/winepulse-0.30-configure.ac.patch b/winepulse-0.32-configure.ac.patch similarity index 78% rename from winepulse-0.30-configure.ac.patch rename to winepulse-0.32-configure.ac.patch index e4d800c..1db339e 100644 --- a/winepulse-0.30-configure.ac.patch +++ b/winepulse-0.32-configure.ac.patch @@ -1,8 +1,8 @@ diff --git a/configure.ac b/configure.ac -index 59b771c..385a7e4 100644 +index 0cc339b..3f34f12 100644 --- a/configure.ac +++ b/configure.ac -@@ -60,6 +60,7 @@ AC_ARG_WITH(png, AS_HELP_STRING([--without-png],[do not use PNG]), +@@ -64,6 +64,7 @@ AC_ARG_WITH(png, AS_HELP_STRING([--without-png],[do not use PNG]), [if test "x$withval" = "xno"; then ac_cv_header_png_h=no; fi]) AC_ARG_WITH(pthread, AS_HELP_STRING([--without-pthread],[do not use the pthread library]), [if test "x$withval" = "xno"; then ac_cv_header_pthread_h=no; fi]) @@ -10,7 +10,7 @@ index 59b771c..385a7e4 100644 AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)])) AC_ARG_WITH(xcomposite,AS_HELP_STRING([--without-xcomposite],[do not use the Xcomposite extension]), [if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_Xcomposite_h=no; fi]) -@@ -1257,6 +1258,24 @@ then +@@ -1297,6 +1298,28 @@ then CFLAGS="$save_CFLAGS" fi @@ -28,6 +28,10 @@ index 59b771c..385a7e4 100644 + ac_pulse_libs=`$PKG_CONFIG --libs libpulse` + AC_DEFINE([HAVE_PULSEAUDIO], 1, [define this if you have pulseaudio]) + AC_SUBST(PULSELIBS, "$ac_pulse_libs") ++ else ++ dnl This warning should be removed if ever commited. ++ dnl Only useful to show that the problem wasn't the patch. ++ WINE_WARNING([libpulse not found or too old. Pulseaudio support will NOT be built.]) + fi + fi +fi @@ -35,7 +39,7 @@ index 59b771c..385a7e4 100644 dnl **** Check for ALSA 1.x **** AC_SUBST(ALSALIBS,"") if test "$ac_cv_header_sys_asoundlib_h" = "yes" -o "$ac_cv_header_alsa_asoundlib_h" = "yes" -@@ -1391,7 +1410,7 @@ dnl **** Check for libodbc **** +@@ -1449,7 +1472,7 @@ dnl **** Check for libodbc **** WINE_CHECK_SONAME(odbc,SQLConnect,,[AC_DEFINE_UNQUOTED(SONAME_LIBODBC,["libodbc.$LIBEXT"])]) dnl **** Check for any sound system **** @@ -44,11 +48,11 @@ index 59b771c..385a7e4 100644 "$ac_cv_header_sys_soundcard_h" != "yes" -a \ "$ac_cv_header_machine_soundcard_h" != "yes" -a \ "$ac_cv_header_soundcard_h" != "yes" -a \ -@@ -2429,6 +2448,7 @@ WINE_CONFIG_MAKEFILE([dlls/winemp3.acm/Makefile],[dlls/Makedll.rules],[dlls],[AL - WINE_CONFIG_MAKEFILE([dlls/winenas.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) +@@ -2509,6 +2532,7 @@ WINE_CONFIG_MAKEFILE([dlls/winenas.drv/Makefile],[dlls/Makedll.rules],[dlls],[AL WINE_CONFIG_MAKEFILE([dlls/wineoss.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) WINE_CONFIG_MAKEFILE([dlls/wineps.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) + WINE_CONFIG_MAKEFILE([dlls/wineps16.drv16/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS],[enable_win16]) +WINE_CONFIG_MAKEFILE([dlls/winepulse.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) WINE_CONFIG_MAKEFILE([dlls/winequartz.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) WINE_CONFIG_MAKEFILE([dlls/winex11.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) - WINE_CONFIG_MAKEFILE([dlls/wing32/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) + WINE_CONFIG_MAKEFILE([dlls/wing.dll16/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS],[enable_win16]) diff --git a/winepulse-0.30.patch b/winepulse-0.32.patch similarity index 97% rename from winepulse-0.30.patch rename to winepulse-0.32.patch index 0d8970b..b3d4172 100644 --- a/winepulse-0.30.patch +++ b/winepulse-0.32.patch @@ -1416,10 +1416,10 @@ index 0000000..7cbc781 +#endif /* HAVE_PULSEAUDIO */ diff --git a/dlls/winepulse.drv/waveout.c b/dlls/winepulse.drv/waveout.c new file mode 100644 -index 0000000..458a33d +index 0000000..334cc72 --- /dev/null +++ b/dlls/winepulse.drv/waveout.c -@@ -0,0 +1,1070 @@ +@@ -0,0 +1,1049 @@ +/* + * Wine Driver for PulseAudio - WaveOut Functionality + * http://pulseaudio.org/ @@ -1615,6 +1615,7 @@ index 0000000..458a33d + * the size of the buffer on the pulse server side. + */ +static void wodPlayer_CheckReleasing(WINE_WAVEINST *wwo) { ++ LPWAVEHDR lpWaveHdr; + + if (wwo->buffer_attr.tlength == -1 && wwo->lpQueuePtr && !wwo->lpPlayPtr && wwo->state != WINE_WS_STOPPED) { + const pa_buffer_attr *returned; @@ -1624,12 +1625,11 @@ index 0000000..458a33d + * streams for server version 0.9.11 to 0.9.14 */ + + pa_threaded_mainloop_lock(PULSE_ml); -+ -+ /* Calculate desired buffer length. write_index is the amount of data -+ * written. If there is more than one buffer queued, subtract the -+ * length of one to allow there to be a free buffer for the app. */ -+ wwo->buffer_attr.tlength = wwo->timing_info->write_index; -+ if (wwo->lpQueuePtr->lpNext) wwo->buffer_attr.tlength -= wwo->lpQueuePtr->dwBufferLength; ++ ++ /* Calculate how large a buffer the application has made so far */ ++ wwo->buffer_attr.tlength = 0; ++ for (lpWaveHdr = wwo->lpQueuePtr; lpWaveHdr; lpWaveHdr = lpWaveHdr->lpNext) ++ wwo->buffer_attr.tlength += lpWaveHdr->dwBufferLength; + + WARN("Asking for new buffer target length of %llums (%u bytes)\n", + pa_bytes_to_usec(wwo->buffer_attr.tlength, &wwo->sample_spec) / 1000, @@ -1672,7 +1672,7 @@ index 0000000..458a33d + /* See if this data has been played, and if not, return when it will have been */ + wait = pa_bytes_to_usec(lpWaveHdr->reserved + lpWaveHdr->dwBufferLength, &wwo->sample_spec); + if (wait >= time) { -+ wait = ((wait - time) + 999) / 1000; ++ wait = ((wait - time) + (pa_usec_t)999) / (pa_usec_t)1000; + return wait ?: 1; + } + } @@ -1809,7 +1809,7 @@ index 0000000..458a33d + * not reset to 0 on Reset() calls. Better than pa_stream_get_time() as it is + * more constant. + */ -+static pa_usec_t WAVEOUT_GetStreamTime(WINE_WAVEINST *wwo) { ++static pa_usec_t wodPlayer_GetStreamTime(WINE_WAVEINST *wwo) { + pa_usec_t time, temp; + const pa_timing_info *t; + @@ -1909,38 +1909,22 @@ index 0000000..458a33d + break; + + case WINE_WM_FEED: /* Sent by the pulse thread */ ++ msgcount--; /* Don't count this message for stall detection */ + wodPlayer_Feed(wwo, pa_stream_writable_size(wwo->stream)); + SetEvent(ev); + break; + + case WINE_WM_XRUN: /* Sent by the pulse thread */ ++ msgcount--; /* Don't count this message for stall detection */ + WARN("Trying to recover from underrun.\n"); + /* Return all the queued wavehdrs, so the app will send more data */ + wodPlayer_NotifyCompletions(wwo, FALSE, (pa_usec_t)-1); + -+ /* Underrun means playback started, so don't allow future setting of the buffer attributes */ -+ if (wwo->buffer_attr.tlength == (uint32_t)-1) wwo->buffer_attr.tlength = 0; -+ + SetEvent(ev); + break; + -+ case WINE_WM_CLOSING: /* If param = 1, close because of a failure */ ++ case WINE_WM_CLOSING: + wwo->hThread = NULL; -+ if ((DWORD)param == 1) { -+ /* If we are here, the stream has failed */ -+ wwo->state = WINE_WS_FAILED; -+ SetEvent(ev); -+ PULSE_DestroyRingMessage(&wwo->msgRing); -+ wodPlayer_NotifyCompletions(wwo, TRUE, 0); -+ wodPlayer_NotifyClient(wwo, WOM_CLOSE, 0L, 0L); -+ wwo->lpPlayPtr = wwo->lpQueuePtr = wwo->lpLoopPtr = NULL; -+ pa_threaded_mainloop_lock(PULSE_ml); -+ pa_stream_disconnect(wwo->stream); -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ TRACE("Thread exiting because of failure.\n"); -+ ExitThread(1); -+ /* Stream instance will get dereferenced in wod_Close */ -+ } + wwo->state = WINE_WS_CLOSED; + /* sanity check: this should not happen since the device must have been reset before */ + if (wwo->lpQueuePtr || wwo->lpPlayPtr) ERR("out of sync\n"); @@ -1984,10 +1968,12 @@ index 0000000..458a33d + + /* If there is audio playing, return headers and get next timeout */ + if (wwo->state == WINE_WS_PLAYING) { -+ dwSleepTime = wodPlayer_NotifyCompletions(wwo, FALSE, WAVEOUT_GetStreamTime(wwo)); ++ dwSleepTime = wodPlayer_NotifyCompletions(wwo, FALSE, wodPlayer_GetStreamTime(wwo)); + } else + dwSleepTime = INFINITE; + } ++ ++ return 0; +} + +/************************************************************************** @@ -2062,7 +2048,7 @@ index 0000000..458a33d + pa_stream_set_moved_callback (wwo->stream, PULSE_StreamMovedCallback, wwo); + pa_stream_set_suspended_callback (wwo->stream, PULSE_StreamSuspendedCallback, wwo); + -+ /* Blank (but don't send) Buffer Attributes */ ++ /* Blank Buffer Attributes */ + wwo->buffer_attr.prebuf = (uint32_t)-1; + wwo->buffer_attr.tlength = (uint32_t)-1; + wwo->buffer_attr.minreq = (uint32_t)-1; @@ -2224,7 +2210,7 @@ index 0000000..458a33d + + if (lpTime == NULL) return MMSYSERR_INVALPARAM; + -+ time = WAVEOUT_GetStreamTime(wwo); ++ time = wodPlayer_GetStreamTime(wwo); + + temp = pa_bytes_to_usec(wwo->dwLastReset, &wwo->sample_spec); + if (time > temp) time -= temp; else time = 0; @@ -2277,7 +2263,7 @@ index 0000000..458a33d + * wodGetVolume [internal] + */ +static DWORD wodGetVolume(WINE_WAVEINST *wwo, LPDWORD lpdwVol) { -+ float value1, value2; ++ double value1, value2; + DWORD wleft, wright; + + if (!wwo || wwo->state == WINE_WS_FAILED) { @@ -2299,21 +2285,15 @@ index 0000000..458a33d + + + if (wwo->volume.channels == 2) { -+ value1 = pa_sw_volume_to_dB(wwo->volume.values[0]); -+ value2 = pa_sw_volume_to_dB(wwo->volume.values[1]); ++ value1 = pa_sw_volume_to_linear(wwo->volume.values[0]); ++ value2 = pa_sw_volume_to_linear(wwo->volume.values[1]); + } else { -+ value1 = pa_sw_volume_to_dB(pa_cvolume_avg(&wwo->volume)); ++ value1 = pa_sw_volume_to_linear(pa_cvolume_avg(&wwo->volume)); + value2 = value1; + } + -+ if (value1 < -60) -+ wleft = 0; -+ else -+ -+ if (value2 < -60) -+ wright = 0; -+ else -+ wright = 0xFFFFl - ((value2 / -60)*(float)0xFFFFl); ++ wleft = 0xFFFFl * value1; ++ wright = 0xFFFFl * value2; + + if (wleft > 0xFFFFl) + wleft = 0xFFFFl; @@ -2337,18 +2317,17 @@ index 0000000..458a33d + return MMSYSERR_INVALHANDLE; + } + -+ /* waveOut volumes are /supposed/ to be logarithmic */ -+ value1 = LOWORD(dwParam1) == 0 ? PA_DECIBEL_MININFTY : ((float)(0xFFFFl - LOWORD(dwParam1))/0xFFFFl) * -60.0; -+ value2 = HIWORD(dwParam1) == 0 ? PA_DECIBEL_MININFTY : ((float)(0xFFFFl - HIWORD(dwParam1))/0xFFFFl) * -60.0; ++ value1 = (double)LOWORD(dwParam1)/(double)0xFFFFl; ++ value2 = (double)HIWORD(dwParam1)/(double)0xFFFFl; + + if (wwo->sample_spec.channels == 2) { + wwo->volume.channels = 2; -+ wwo->volume.values[0] = pa_sw_volume_from_dB(value1); -+ wwo->volume.values[1] = pa_sw_volume_from_dB(value2); ++ wwo->volume.values[0] = pa_sw_volume_from_linear(value1); ++ wwo->volume.values[1] = pa_sw_volume_from_linear(value2); + } else { + if (value1 != value2) FIXME("Non-stereo streams can't pan!\n"); + wwo->volume.channels = wwo->sample_spec.channels; -+ pa_cvolume_set(&wwo->volume, wwo->volume.channels, pa_sw_volume_from_dB(max(value1, value2))); ++ pa_cvolume_set(&wwo->volume, wwo->volume.channels, pa_sw_volume_from_linear(value1 > value2 ? value1 : value2)); + } + + if (TRACE_ON(wave)) { @@ -2501,7 +2480,7 @@ index 0000000..1b49460 +@ stdcall -private widMessage(long long long long long long) PULSE_widMessage diff --git a/dlls/winepulse.drv/winepulse.h b/dlls/winepulse.drv/winepulse.h new file mode 100644 -index 0000000..4a834cd +index 0000000..0aa7e86 --- /dev/null +++ b/dlls/winepulse.drv/winepulse.h @@ -0,0 +1,196 @@ @@ -2636,7 +2615,7 @@ index 0000000..4a834cd + +/* Per-playback/record instance */ +struct WINE_WAVEINST { -+ volatile INT state; /* one of the WINE_WS_ manifest constants */ ++ INT state; /* one of the WINE_WS_ manifest constants */ + WAVEOPENDESC waveDesc; + WORD wFlags; + From aaf31fdb2cdffbf99a1b83ef86d60fe718046bf1 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Fri, 30 Oct 2009 15:20:18 +0000 Subject: [PATCH 127/715] - add correct sources --- .cvsignore | 1 + sources | 1 + 2 files changed, 2 insertions(+) diff --git a/.cvsignore b/.cvsignore index e69de29..f76d511 100644 --- a/.cvsignore +++ b/.cvsignore @@ -0,0 +1 @@ +wine-1.1.32-fe.tar.bz2 diff --git a/sources b/sources index e69de29..3390ab2 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +b598afe820bde7c33f5bd0ab62fb7dce wine-1.1.32-fe.tar.bz2 From 5fea05571abf87236a2ebd7e0c6298823f96356e Mon Sep 17 00:00:00 2001 From: Bill Nottingham Date: Wed, 25 Nov 2009 22:43:14 +0000 Subject: [PATCH 128/715] Fix typo that causes a failure to update the common directory. (releng #2781) --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 3261c9e..15e51e7 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,10 @@ # Makefile for source rpm: wine -# $Id: Makefile,v 1.2 2004/11/24 05:00:10 gafton Exp $ +# $Id: Makefile,v 1.4 2006/01/02 08:55:16 awjb Exp $ NAME := wine SPECFILE = $(firstword $(wildcard *.spec)) define find-makefile-common -for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done +for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$d/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done endef MAKEFILE_COMMON := $(shell $(find-makefile-common)) From 85ad5c2749201569a72a547d5165f6ba0b54d91d Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 19 Dec 2009 14:39:53 +0000 Subject: [PATCH 129/715] - various bugfixes - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine-x86_64-prefix.patch | 15 ++++ wine.spec | 45 +++++++++-- winepulse-0.32.patch => winepulse-0.33.patch | 85 +++++++++----------- 5 files changed, 93 insertions(+), 56 deletions(-) create mode 100644 wine-x86_64-prefix.patch rename winepulse-0.32.patch => winepulse-0.33.patch (97%) diff --git a/.cvsignore b/.cvsignore index f76d511..8763626 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-1.1.32-fe.tar.bz2 +wine-1.1.35-fe.tar.bz2 diff --git a/sources b/sources index 3390ab2..76b6bb2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -b598afe820bde7c33f5bd0ab62fb7dce wine-1.1.32-fe.tar.bz2 +1ade8d4ccd3130692c2c68871683fa9b wine-1.1.35-fe.tar.bz2 diff --git a/wine-x86_64-prefix.patch b/wine-x86_64-prefix.patch new file mode 100644 index 0000000..0d8bbfc --- /dev/null +++ b/wine-x86_64-prefix.patch @@ -0,0 +1,15 @@ +--- libs/wine/config.c.orig 2009-11-26 23:36:37.000000000 +0100 ++++ libs/wine/config.c 2009-11-26 23:37:36.000000000 +0100 +@@ -35,9 +35,9 @@ + #endif + #include "wine/library.h" + +-static const char server_config_dir[] = "/.wine"; /* config dir relative to $HOME */ +-static const char server_root_prefix[] = "/tmp/.wine-"; /* prefix for server root dir */ +-static const char server_dir_prefix[] = "/server-"; /* prefix for server dir */ ++static const char server_config_dir[] = "/.wine-x86_64"; /* config dir relative to $HOME */ ++static const char server_root_prefix[] = "/tmp/.wine-x86_64-"; /* prefix for server root dir */ ++static const char server_dir_prefix[] = "/server-x86_64-"; /* prefix for server dir */ + + static char *bindir; + static char *dlldir; diff --git a/wine.spec b/wine.spec index 8b61415..c921570 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ %define no64bit 0 Name: wine -Version: 1.1.32 +Version: 1.1.35 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -48,14 +48,18 @@ Source300: wine-mime-msi.desktop # see http://bugs.winehq.org/show_bug.cgi?id=10495 # and http://art.ified.ca/?page_id=40 Patch400: http://art.ified.ca/downloads/winepulse-0.32-configure.ac.patch -Patch401: http://art.ified.ca/downloads/winepulse-0.32.patch +Patch401: http://art.ified.ca/downloads/winepulse-0.33.patch Patch402: http://art.ified.ca/downloads/winepulse/winepulse-winecfg-0.6.patch Source402: README-FEDORA-PULSEAUDIO Patch1: wine-rpath.patch +# upstream bugs +# currently non + # bugfix patches -# none +# #533806 +Patch600: wine-x86_64-prefix.patch Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -148,7 +152,6 @@ wine-* sub packages. Summary: Wine core package Group: Applications/Emulators Requires: wine-fonts = %{version}-%{release} -Requires: %{_bindir}/xmessage Requires(post): /sbin/ldconfig Requires(postun): /sbin/ldconfig Obsoletes: wine <= 0.9.15-1%{?dist} @@ -162,10 +165,12 @@ Requires: freetype(x86-32) Requires: nss-mdns(x86-32) # require Xrender isa on x86_64 (#510947) Requires: libXrender(x86-32) +Requires: gnutls(x86-32) %endif %ifarch x86_64 Requires: nss-mdns(x86-64) Requires: freetype(x86-64) +Requires: gnutls(x86-64) %endif %description core @@ -315,6 +320,10 @@ This package adds an openal driver for wine. %patch401 -p1 %patch402 -p1 +%ifarch x86_64 +%patch600 +%endif + autoreconf %build @@ -354,7 +363,6 @@ mv %{buildroot}%{_bindir}/wine{,32} mv %{buildroot}%{_bindir}/wine{,64} %endif - mkdir -p %{buildroot}%{_sysconfdir}/wine # Allow users to launch Windows programs by just clicking on the .exe file... @@ -561,6 +569,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/expand.exe.so %{_libdir}/wine/extrac32.exe.so %{_libdir}/wine/winhlp32.exe.so +%{_libdir}/wine/mshta.exe.so %{_libdir}/wine/msiexec.exe.so %{_libdir}/wine/net.exe.so %{_libdir}/wine/ntoskrnl.exe.so @@ -594,6 +603,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/authz.dll.so %{_libdir}/wine/avicap32.dll.so %{_libdir}/wine/avifil32.dll.so +%{_libdir}/wine/avrt.dll.so %{_libdir}/wine/bcrypt.dll.so %{_libdir}/wine/browseui.dll.so %{_libdir}/wine/cabinet.dll.so @@ -654,6 +664,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/faultrep.dll.so %{_libdir}/wine/fltlib.dll.so %{_libdir}/wine/fusion.dll.so +%{_libdir}/wine/fwpuclnt.dll.so %{_libdir}/wine/gdi32.dll.so %{_libdir}/wine/gdiplus.dll.so %{_libdir}/wine/glu32.dll.so @@ -695,6 +706,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/mciwave.dll.so %{_libdir}/wine/midimap.dll.so %{_libdir}/wine/mlang.dll.so +%{_libdir}/wine/mmdevapi.dll.so %{_libdir}/wine/mountmgr.sys.so %{_libdir}/wine/mpr.dll.so %{_libdir}/wine/mprapi.dll.so @@ -810,10 +822,12 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/vdmdbg.dll.so %{_libdir}/wine/version.dll.so %{_libdir}/wine/wbemprox.dll.so +%{_libdir}/wine/wiaservc.dll.so %{_libdir}/wine/windowscodecs.dll.so %{_libdir}/wine/wineaudioio.drv.so %{_libdir}/wine/winecoreaudio.drv.so %{_libdir}/wine/winejoystick.drv.so +%{_libdir}/wine/winemapi.dll.so %{_libdir}/wine/winex11.drv.so %{_libdir}/wine/wing32.dll.so %{_libdir}/wine/winhttp.dll.so @@ -832,6 +846,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/wsock32.dll.so %{_libdir}/wine/wtsapi32.dll.so %{_libdir}/wine/wuapi.dll.so +%{_libdir}/wine/wuaueng.dll.so %{_libdir}/wine/security.dll.so %{_libdir}/wine/sfc.dll.so %{_libdir}/wine/wineps.drv.so @@ -862,18 +877,18 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/vtdapi.vxd.so %{_libdir}/wine/vwin32.vxd.so %{_libdir}/wine/w32skrnl.dll.so -%{_libdir}/wine/commdlg.dll16 -%{_libdir}/wine/gdi.exe16 %{_libdir}/wine/wprocs.dll16 %{_libdir}/wine/avifile.dll16.so %{_libdir}/wine/comm.drv16.so +%{_libdir}/wine/commdlg.dll16.so %{_libdir}/wine/compobj.dll16.so %{_libdir}/wine/ctl3d.dll16.so %{_libdir}/wine/ctl3dv2.dll16.so %{_libdir}/wine/ddeml.dll16.so %{_libdir}/wine/dispdib.dll16.so %{_libdir}/wine/display.drv16.so +%{_libdir}/wine/gdi.exe16.so %{_libdir}/wine/imm.dll16.so %{_libdir}/wine/krnl386.exe16 %{_libdir}/wine/keyboard.drv16.so @@ -1046,6 +1061,22 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/openal32.dll.so %changelog +* Sat Dec 19 2009 Andreas Bierfert +- 1.1.35-1 +- version upgrade + +* Fri Dec 18 2009 Andreas Bierfert +- 1.1.34-1 +- version upgrade (#546749) + +* Mon Nov 16 2009 Andreas Bierfert +- 1.1.33-1 +- version upgrade +- winepulse update (.33) +- require gnutls (#538694) +- use separate WINEPREFIX on x86_64 per default (workaround for #533806) +- drop explicit xmessage require (#537610) + * Tue Oct 27 2009 Andreas Bierfert - 1.1.32-1 - version upgrade (#531358) diff --git a/winepulse-0.32.patch b/winepulse-0.33.patch similarity index 97% rename from winepulse-0.32.patch rename to winepulse-0.33.patch index b3d4172..beee106 100644 --- a/winepulse-0.32.patch +++ b/winepulse-0.33.patch @@ -1416,10 +1416,10 @@ index 0000000..7cbc781 +#endif /* HAVE_PULSEAUDIO */ diff --git a/dlls/winepulse.drv/waveout.c b/dlls/winepulse.drv/waveout.c new file mode 100644 -index 0000000..334cc72 +index 0000000..e7454fd --- /dev/null +++ b/dlls/winepulse.drv/waveout.c -@@ -0,0 +1,1049 @@ +@@ -0,0 +1,1040 @@ +/* + * Wine Driver for PulseAudio - WaveOut Functionality + * http://pulseaudio.org/ @@ -1527,7 +1527,7 @@ index 0000000..334cc72 + * wodPlayer_NotifyClient [internal] + */ +static DWORD wodPlayer_NotifyClient(WINE_WAVEINST* wwo, WORD wMsg, DWORD dwParam1, DWORD dwParam2) { -+ TRACE("wMsg = 0x%04x dwParm1 = %04X dwParam2 = %04X\n", wMsg, dwParam1, dwParam2); ++ /* TRACE("wMsg = 0x%04x dwParm1 = %04X dwParam2 = %04X\n", wMsg, dwParam1, dwParam2); */ + + switch (wMsg) { + case WOM_OPEN: @@ -1617,33 +1617,25 @@ index 0000000..334cc72 +static void wodPlayer_CheckReleasing(WINE_WAVEINST *wwo) { + LPWAVEHDR lpWaveHdr; + -+ if (wwo->buffer_attr.tlength == -1 && wwo->lpQueuePtr && !wwo->lpPlayPtr && wwo->state != WINE_WS_STOPPED) { -+ const pa_buffer_attr *returned; -+ -+ /* Try and adjust the buffer attributes so that playback can start. -+ * Because of bugs pa_stream_set_buffer_attr() does not work on started -+ * streams for server version 0.9.11 to 0.9.14 */ -+ ++ if (wwo->buffer_attr.tlength == -1) { + pa_threaded_mainloop_lock(PULSE_ml); -+ -+ /* Calculate how large a buffer the application has made so far */ -+ wwo->buffer_attr.tlength = 0; -+ for (lpWaveHdr = wwo->lpQueuePtr; lpWaveHdr; lpWaveHdr = lpWaveHdr->lpNext) -+ wwo->buffer_attr.tlength += lpWaveHdr->dwBufferLength; -+ -+ WARN("Asking for new buffer target length of %llums (%u bytes)\n", -+ pa_bytes_to_usec(wwo->buffer_attr.tlength, &wwo->sample_spec) / 1000, -+ wwo->buffer_attr.tlength); -+ -+ PULSE_WaitForOperation(pa_stream_set_buffer_attr(wwo->stream, &wwo->buffer_attr, PULSE_StreamSuccessCallback, wwo)); -+ -+ returned = pa_stream_get_buffer_attr(wwo->stream); -+ -+ if (returned->tlength > wwo->timing_info->write_index) { -+ WARN("Couldn't get the buffer size needed. Triggering and hoping for the best.\n"); -+ PULSE_WaitForOperation(pa_stream_trigger(wwo->stream, PULSE_StreamSuccessCallback, wwo)); ++ if (!wwo->timing_info->playing) { ++ ++ /* Calculate how large a buffer the application has made so far */ ++ wwo->buffer_attr.tlength = 0; ++ wwo->buffer_attr.minreq = wwo->lpQueuePtr->dwBufferLength; ++ for (lpWaveHdr = wwo->lpQueuePtr; lpWaveHdr; lpWaveHdr = lpWaveHdr->lpNext) ++ wwo->buffer_attr.tlength += lpWaveHdr->dwBufferLength; ++ ++ WARN("Asking for new buffer target length of %llums (%u bytes)\n", ++ pa_bytes_to_usec(wwo->buffer_attr.tlength, &wwo->sample_spec) / 1000, ++ wwo->buffer_attr.tlength); ++ ++ /* Try and adjust the buffer attributes so that playback can start. ++ * Because of bugs pa_stream_set_buffer_attr() does not work on started ++ * streams for server version 0.9.11 to 0.9.14 */ ++ PULSE_WaitForOperation(pa_stream_set_buffer_attr(wwo->stream, &wwo->buffer_attr, PULSE_StreamSuccessCallback, wwo)); + } -+ + pa_threaded_mainloop_unlock(PULSE_ml); + } +} @@ -1676,6 +1668,7 @@ index 0000000..334cc72 + return wait ?: 1; + } + } ++ TRACE("Returning %p.[%i]\n", lpWaveHdr, (DWORD)lpWaveHdr->reserved); + + /* return the wavehdr */ + wwo->lpQueuePtr = lpWaveHdr->lpNext; @@ -1696,7 +1689,7 @@ index 0000000..334cc72 + * Write either how much free space or how much data we have, depending on + * which is less + */ -+static int wodPlayer_WriteMax(WINE_WAVEINST *wwo, size_t *space) { ++static DWORD wodPlayer_WriteMax(WINE_WAVEINST *wwo, size_t *space) { + LPWAVEHDR lpWaveHdr = wwo->lpPlayPtr; + size_t nbytes; + @@ -1724,10 +1717,7 @@ index 0000000..334cc72 + */ +static void wodPlayer_Feed(WINE_WAVEINST* wwo, size_t space) { + -+ /* No more room... no need to try to feed */ -+ if (space == 0) return; -+ -+ if (!wwo->stream || !PULSE_context || ++ if (!space || !wwo->stream || !PULSE_context || + pa_context_get_state(PULSE_context) != PA_CONTEXT_READY || + pa_stream_get_state(wwo->stream) != PA_STREAM_READY) + return; @@ -1741,8 +1731,9 @@ index 0000000..334cc72 + if (wwo->dwPartialOffset == 0 && wwo->lpPlayPtr) { + do { + wwo->lpPlayPtr->reserved = wwo->timing_info->write_index; -+ } while (wodPlayer_WriteMax(wwo, &space) > 0 && wwo->lpPlayPtr && space > 0); ++ } while (wodPlayer_WriteMax(wwo, &space) && wwo->lpPlayPtr && space > 0); + } ++ + pa_threaded_mainloop_unlock(PULSE_ml); +} + @@ -1846,15 +1837,14 @@ index 0000000..334cc72 +/************************************************************************** + * wodPlayer_ProcessMessages [internal] + */ -+static DWORD wodPlayer_ProcessMessages(WINE_WAVEINST* wwo) { ++static void wodPlayer_ProcessMessages(WINE_WAVEINST* wwo) { + LPWAVEHDR lpWaveHdr; + enum win_wm_message msg; -+ DWORD param, msgcount = 0; ++ DWORD param; + HANDLE ev; + + while (PULSE_RetrieveRingMessage(&wwo->msgRing, &msg, ¶m, &ev)) { + TRACE("Received %s %x\n", PULSE_getCmdString(msg), param); -+ msgcount++; + + switch (msg) { + case WINE_WM_PAUSING: @@ -1870,8 +1860,8 @@ index 0000000..334cc72 + wwo->state = WINE_WS_PLAYING; + pa_threaded_mainloop_lock(PULSE_ml); + PULSE_WaitForOperation(pa_stream_cork(wwo->stream, 0, PULSE_StreamSuccessCallback, wwo)); -+ /* If the serverside buffer was near full before pause, we need to -+ * have space to write soon, so force playback start */ ++ /* If the serverside buffer was near full before pausing, we ++ * need to have space to write soon, so force playback start */ + PULSE_WaitForOperation(pa_stream_trigger(wwo->stream, PULSE_StreamSuccessCallback, wwo)); + pa_threaded_mainloop_unlock(PULSE_ml); + } @@ -1909,13 +1899,11 @@ index 0000000..334cc72 + break; + + case WINE_WM_FEED: /* Sent by the pulse thread */ -+ msgcount--; /* Don't count this message for stall detection */ + wodPlayer_Feed(wwo, pa_stream_writable_size(wwo->stream)); + SetEvent(ev); + break; + + case WINE_WM_XRUN: /* Sent by the pulse thread */ -+ msgcount--; /* Don't count this message for stall detection */ + WARN("Trying to recover from underrun.\n"); + /* Return all the queued wavehdrs, so the app will send more data */ + wodPlayer_NotifyCompletions(wwo, FALSE, (pa_usec_t)-1); @@ -1938,8 +1926,6 @@ index 0000000..334cc72 + break; + } + } -+ -+ return msgcount; +} + +/************************************************************************** @@ -1951,6 +1937,7 @@ index 0000000..334cc72 +static DWORD CALLBACK wodPlayer(LPVOID lpParam) { + WINE_WAVEINST *wwo = (WINE_WAVEINST*)lpParam; + DWORD dwSleepTime = INFINITE; ++ int64_t delta_write; + + wwo->state = WINE_WS_STOPPED; + SetEvent(wwo->hStartUpEvent); @@ -1961,9 +1948,13 @@ index 0000000..334cc72 + TRACE("Waiting %u ms\n", dwSleepTime); + PULSE_WaitRingMessage(&wwo->msgRing, dwSleepTime); + -+ /* If no messages were processed during the timeout it might be because -+ * audio is not flowing yet, so check. */ -+ if (wodPlayer_ProcessMessages(wwo) == 0) ++ delta_write = wwo->timing_info->write_index; ++ wodPlayer_ProcessMessages(wwo); ++ ++ /* Check for a stall situaiton */ ++ if (delta_write == wwo->timing_info->write_index ++ && wwo->lpQueuePtr && !wwo->lpPlayPtr ++ && wwo->state != WINE_WS_STOPPED) + wodPlayer_CheckReleasing(wwo); + + /* If there is audio playing, return headers and get next timeout */ @@ -2252,7 +2243,7 @@ index 0000000..334cc72 + * Context-sanity check here, as if we respond with 0, WINE will move on + * to the next waveout driver. + */ -+static DWORD wodGetNumDevs() { ++static DWORD wodGetNumDevs(void) { + if (!PULSE_ml || !PULSE_context || pa_context_get_state(PULSE_context) != PA_CONTEXT_READY) + return 0; + From 19971bb36b81953ab2453bbf18cab62e13f15f19 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Wed, 20 Jan 2010 05:39:55 +0000 Subject: [PATCH 130/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine-x86_64-prefix.patch | 11 +++++++++++ wine.spec | 23 ++++++++++++++--------- 4 files changed, 27 insertions(+), 11 deletions(-) diff --git a/.cvsignore b/.cvsignore index 8763626..89e7c16 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-1.1.35-fe.tar.bz2 +wine-1.1.36-fe.tar.bz2 diff --git a/sources b/sources index 76b6bb2..9b6d9db 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -1ade8d4ccd3130692c2c68871683fa9b wine-1.1.35-fe.tar.bz2 +826ca1bc9cfe2b63eee268baeaf36816 wine-1.1.36-fe.tar.bz2 diff --git a/wine-x86_64-prefix.patch b/wine-x86_64-prefix.patch index 0d8bbfc..7f3e3ff 100644 --- a/wine-x86_64-prefix.patch +++ b/wine-x86_64-prefix.patch @@ -13,3 +13,14 @@ static char *bindir; static char *dlldir; +--- dlls/ntdll/server.c.orig 2010-01-18 23:06:56.000000000 +0100 ++++ dlls/ntdll/server.c 2010-01-18 23:07:27.000000000 +0100 +@@ -698,7 +698,7 @@ + { + static int started; /* we only try once */ + char *argv[3]; +- static char wineserver[] = "server/wineserver"; ++ static char wineserver[] = "server/wineserver64"; + static char debug[] = "-d"; + + if (!started) diff --git a/wine.spec b/wine.spec index c921570..8c9272e 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ %define no64bit 0 Name: wine -Version: 1.1.35 +Version: 1.1.36 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -184,6 +184,7 @@ Requires(post): desktop-file-utils >= 0.8 Requires(preun): /sbin/chkconfig, /sbin/service Requires(postun): desktop-file-utils >= 0.8 Requires: wine-core = %{version}-%{release} +Requires: wine-common = %{version}-%{release} BuildArch: noarch %description desktop @@ -361,6 +362,7 @@ mv %{buildroot}%{_bindir}/wine{,32} # if x86_64 rename to wine64 %ifarch x86_64 mv %{buildroot}%{_bindir}/wine{,64} +mv %{buildroot}%{_bindir}/wineserver{,64} %endif mkdir -p %{buildroot}%{_sysconfdir}/wine @@ -549,16 +551,14 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/dxdiag.exe.so %ifarch %{ix86} +%{_bindir}/wine32 %{_bindir}/wine-preloader -%endif %{_bindir}/wineserver - -%ifarch %{ix86} %{_sysconfdir}/ld.so.conf.d/wine-32.conf -%{_bindir}/wine32 %endif %ifarch x86_64 %{_bindir}/wine64 +%{_bindir}/wineserver64 %{_sysconfdir}/ld.so.conf.d/wine-64.conf %endif @@ -700,6 +700,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/lodctr.exe.so %{_libdir}/wine/lz32.dll.so %{_libdir}/wine/mapi32.dll.so +%{_libdir}/wine/mapistub.dll.so %{_libdir}/wine/mciavi32.dll.so %{_libdir}/wine/mcicda.dll.so %{_libdir}/wine/mciseq.dll.so @@ -864,20 +865,18 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/xmllite.dll.so %ifnarch x86_64 # 16 bit and other non 64bit stuff -%{_libdir}/wine/winedos.dll.so %{_libdir}/wine/winevdm.exe.so %{_libdir}/wine/ifsmgr.vxd.so %{_libdir}/wine/mmdevldr.vxd.so %{_libdir}/wine/monodebg.vxd.so %{_libdir}/wine/vdhcp.vxd.so -%{_libdir}/wine/user.exe16 +%{_libdir}/wine/user.exe16.so %{_libdir}/wine/vmm.vxd.so %{_libdir}/wine/vnbt.vxd.so %{_libdir}/wine/vnetbios.vxd.so %{_libdir}/wine/vtdapi.vxd.so %{_libdir}/wine/vwin32.vxd.so %{_libdir}/wine/w32skrnl.dll.so -%{_libdir}/wine/wprocs.dll16 %{_libdir}/wine/avifile.dll16.so %{_libdir}/wine/comm.drv16.so @@ -890,7 +889,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/display.drv16.so %{_libdir}/wine/gdi.exe16.so %{_libdir}/wine/imm.dll16.so -%{_libdir}/wine/krnl386.exe16 +%{_libdir}/wine/krnl386.exe16.so %{_libdir}/wine/keyboard.drv16.so %{_libdir}/wine/lzexpand.dll16.so %{_libdir}/wine/mmsystem.dll16.so @@ -929,6 +928,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/winsock.dll16.so %{_libdir}/wine/wintab.dll16.so %{_libdir}/wine/wow32.dll.so +#%{_libdir}/wine/wprocs.dll16.so %endif %files common @@ -1061,6 +1061,11 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/openal32.dll.so %changelog +* Mon Jan 18 2010 Andreas Bierfert +- 1.1.36-1 +- version upgrade (#554102) +- require -common in -desktop (#549190) + * Sat Dec 19 2009 Andreas Bierfert - 1.1.35-1 - version upgrade From d0dcababbffdf1f8b5c0fcdbb0956985e6b57331 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Tue, 9 Feb 2010 09:18:19 +0000 Subject: [PATCH 131/715] - version upgrade - winepulse update (0.35) --- .cvsignore | 2 +- sources | 2 +- wine.spec | 29 +- winepulse-0.32-configure.ac.patch | 58 --- ...-0.6.patch => winepulse-0.34-winecfg.patch | 48 +-- winepulse-0.35-configure.ac.patch | 60 +++ winepulse-0.33.patch => winepulse-0.35.patch | 380 +++++++++--------- 7 files changed, 288 insertions(+), 291 deletions(-) delete mode 100644 winepulse-0.32-configure.ac.patch rename winepulse-winecfg-0.6.patch => winepulse-0.34-winecfg.patch (94%) create mode 100644 winepulse-0.35-configure.ac.patch rename winepulse-0.33.patch => winepulse-0.35.patch (92%) diff --git a/.cvsignore b/.cvsignore index 89e7c16..1f0c866 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-1.1.36-fe.tar.bz2 +wine-1.1.38-fe.tar.bz2 diff --git a/sources b/sources index 9b6d9db..2286e73 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -826ca1bc9cfe2b63eee268baeaf36816 wine-1.1.36-fe.tar.bz2 +fdf4b8573b77da73b683e97128ee4150 wine-1.1.38-fe.tar.bz2 diff --git a/wine.spec b/wine.spec index 8c9272e..7bc9204 100644 --- a/wine.spec +++ b/wine.spec @@ -1,23 +1,16 @@ %define no64bit 0 Name: wine -Version: 1.1.36 +Version: 1.1.38 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -# special fedora tarball without winemp3 stuff build doing -# rm -fr dlls/winemp3.acm -# and removing the following from the source tree (as of 0.9.35): -# -# configure:ac_config_files="$ac_config_files dlls/winemp3.acm/Makefile" -# configure: "dlls/winemp3.acm/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/winemp3.acm/Makefile" ;; -# configure.ac:AC_CONFIG_FILES([dlls/winemp3.acm/Makefile]) -# dlls/Makefile.in: winemp3.acm \ -# Makefile.in: dlls/winemp3.acm/Makefile \ -# Makefile.in:dlls/winemp3.acm/Makefile: dlls/winemp3.acm/Makefile.in dlls/Makedll.rules -# programs/winecfg/libraries.c: "winemp3.acm", +# special fedora tarball without winemp3 +# It can be obtained by running rm -fr dlls/winemp3.acm in the winetree +# and removing the references from configure, configure.ac, Makefile.in, +# and programs/winecfg/libraries.c wrt. winemp3. Source0: %{name}-%{version}-fe.tar.bz2 Source1: wine.init @@ -47,9 +40,9 @@ Source300: wine-mime-msi.desktop # explain how to use wine with pulseaudio # see http://bugs.winehq.org/show_bug.cgi?id=10495 # and http://art.ified.ca/?page_id=40 -Patch400: http://art.ified.ca/downloads/winepulse-0.32-configure.ac.patch -Patch401: http://art.ified.ca/downloads/winepulse-0.33.patch -Patch402: http://art.ified.ca/downloads/winepulse/winepulse-winecfg-0.6.patch +Patch400: http://art.ified.ca/downloads/winepulse-0.35-configure.ac.patch +Patch401: http://art.ified.ca/downloads/winepulse-0.35.patch +Patch402: http://art.ified.ca/downloads/winepulse/winepulse-0.34-winecfg.patch Source402: README-FEDORA-PULSEAUDIO Patch1: wine-rpath.patch @@ -745,6 +738,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/msvidc32.dll.so %{_libdir}/wine/mswsock.dll.so %{_libdir}/wine/msxml3.dll.so +%{_libdir}/wine/msxml4.dll.so %{_libdir}/wine/nddeapi.dll.so %{_libdir}/wine/netapi32.dll.so %{_libdir}/wine/newdev.dll.so @@ -1061,6 +1055,11 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/openal32.dll.so %changelog +* Tue Feb 09 2010 Andreas Bierfert +- 1.1.38-1 +- version upgrade +- winepulse upgrade (0.35) + * Mon Jan 18 2010 Andreas Bierfert - 1.1.36-1 - version upgrade (#554102) diff --git a/winepulse-0.32-configure.ac.patch b/winepulse-0.32-configure.ac.patch deleted file mode 100644 index 1db339e..0000000 --- a/winepulse-0.32-configure.ac.patch +++ /dev/null @@ -1,58 +0,0 @@ -diff --git a/configure.ac b/configure.ac -index 0cc339b..3f34f12 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -64,6 +64,7 @@ AC_ARG_WITH(png, AS_HELP_STRING([--without-png],[do not use PNG]), - [if test "x$withval" = "xno"; then ac_cv_header_png_h=no; fi]) - AC_ARG_WITH(pthread, AS_HELP_STRING([--without-pthread],[do not use the pthread library]), - [if test "x$withval" = "xno"; then ac_cv_header_pthread_h=no; fi]) -+AC_ARG_WITH(pulse, AC_HELP_STRING([--without-pulse],[do not use PulseAudio sound support])) - AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)])) - AC_ARG_WITH(xcomposite,AS_HELP_STRING([--without-xcomposite],[do not use the Xcomposite extension]), - [if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_Xcomposite_h=no; fi]) -@@ -1297,6 +1298,28 @@ then - CFLAGS="$save_CFLAGS" - fi - -+dnl **** Check for PulseAudio **** -+if test "x$with_pulse" != "xno"; then -+ if test "$PKG_CONFIG" != "false"; then -+ AC_MSG_CHECKING([for pulseaudio >= 0.9.14]) -+ if "$PKG_CONFIG" --atleast-version=0.9.14 libpulse; then -+ have_pulseaudio="yes" -+ else -+ have_pulseaudio="no" -+ fi -+ AC_MSG_RESULT([$have_pulseaudio]) -+ if test x"$have_pulseaudio" = xyes; then -+ ac_pulse_libs=`$PKG_CONFIG --libs libpulse` -+ AC_DEFINE([HAVE_PULSEAUDIO], 1, [define this if you have pulseaudio]) -+ AC_SUBST(PULSELIBS, "$ac_pulse_libs") -+ else -+ dnl This warning should be removed if ever commited. -+ dnl Only useful to show that the problem wasn't the patch. -+ WINE_WARNING([libpulse not found or too old. Pulseaudio support will NOT be built.]) -+ fi -+ fi -+fi -+ - dnl **** Check for ALSA 1.x **** - AC_SUBST(ALSALIBS,"") - if test "$ac_cv_header_sys_asoundlib_h" = "yes" -o "$ac_cv_header_alsa_asoundlib_h" = "yes" -@@ -1449,7 +1472,7 @@ dnl **** Check for libodbc **** - WINE_CHECK_SONAME(odbc,SQLConnect,,[AC_DEFINE_UNQUOTED(SONAME_LIBODBC,["libodbc.$LIBEXT"])]) - - dnl **** Check for any sound system **** --if test "x$ALSALIBS$AUDIOIOLIBS$COREAUDIO$NASLIBS$ESDLIBS$ac_cv_lib_soname_jack" = "x" -a \ -+if test "x$ALSALIBS$AUDIOIOLIBS$COREAUDIO$NASLIBS$ESDLIBS$PULSELIBS$ac_cv_lib_soname_jack" = "x" -a \ - "$ac_cv_header_sys_soundcard_h" != "yes" -a \ - "$ac_cv_header_machine_soundcard_h" != "yes" -a \ - "$ac_cv_header_soundcard_h" != "yes" -a \ -@@ -2509,6 +2532,7 @@ WINE_CONFIG_MAKEFILE([dlls/winenas.drv/Makefile],[dlls/Makedll.rules],[dlls],[AL - WINE_CONFIG_MAKEFILE([dlls/wineoss.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) - WINE_CONFIG_MAKEFILE([dlls/wineps.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) - WINE_CONFIG_MAKEFILE([dlls/wineps16.drv16/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS],[enable_win16]) -+WINE_CONFIG_MAKEFILE([dlls/winepulse.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) - WINE_CONFIG_MAKEFILE([dlls/winequartz.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) - WINE_CONFIG_MAKEFILE([dlls/winex11.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) - WINE_CONFIG_MAKEFILE([dlls/wing.dll16/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS],[enable_win16]) diff --git a/winepulse-winecfg-0.6.patch b/winepulse-0.34-winecfg.patch similarity index 94% rename from winepulse-winecfg-0.6.patch rename to winepulse-0.34-winecfg.patch index 9cbbf58..5635a97 100644 --- a/winepulse-winecfg-0.6.patch +++ b/winepulse-0.34-winecfg.patch @@ -1,5 +1,5 @@ diff --git a/programs/winecfg/Bg.rc b/programs/winecfg/Bg.rc -index fcdf895..ec24068 100644 +index 5555ad2..29ff717 100644 --- a/programs/winecfg/Bg.rc +++ b/programs/winecfg/Bg.rc @@ -276,6 +276,7 @@ BEGIN @@ -11,7 +11,7 @@ index fcdf895..ec24068 100644 IDS_DRIVER_ESOUND "EsounD Driver" IDS_DRIVER_OSS "OSS Driver" diff --git a/programs/winecfg/Cs.rc b/programs/winecfg/Cs.rc -index d9c0b28..6171f1f 100644 +index f3116d7..2a06d88 100644 --- a/programs/winecfg/Cs.rc +++ b/programs/winecfg/Cs.rc @@ -276,6 +276,7 @@ BEGIN @@ -23,7 +23,7 @@ index d9c0b28..6171f1f 100644 IDS_DRIVER_ESOUND "Ovlada EsounD" IDS_DRIVER_OSS "Ovlada OSS" diff --git a/programs/winecfg/Da.rc b/programs/winecfg/Da.rc -index f53aead..e33bd78 100644 +index 64e022b..e6caea3 100644 --- a/programs/winecfg/Da.rc +++ b/programs/winecfg/Da.rc @@ -270,6 +270,7 @@ BEGIN @@ -35,7 +35,7 @@ index f53aead..e33bd78 100644 IDS_DRIVER_ESOUND "EsounD-driver" IDS_DRIVER_OSS "OSS-driver" diff --git a/programs/winecfg/De.rc b/programs/winecfg/De.rc -index aadd21e..f3016ab 100644 +index fa5bbe5..eda4e2b 100644 --- a/programs/winecfg/De.rc +++ b/programs/winecfg/De.rc @@ -282,6 +282,7 @@ BEGIN @@ -47,7 +47,7 @@ index aadd21e..f3016ab 100644 IDS_DRIVER_ESOUND "EsounD-Treiber" IDS_DRIVER_OSS "OSS-Treiber" diff --git a/programs/winecfg/En.rc b/programs/winecfg/En.rc -index 6aa5120..6f30805 100644 +index 490314a..3e669cd 100644 --- a/programs/winecfg/En.rc +++ b/programs/winecfg/En.rc @@ -282,6 +282,7 @@ BEGIN @@ -59,7 +59,7 @@ index 6aa5120..6f30805 100644 IDS_DRIVER_ESOUND "EsounD Driver" IDS_DRIVER_OSS "OSS Driver" diff --git a/programs/winecfg/Es.rc b/programs/winecfg/Es.rc -index 1771b4e..aaacaa9 100644 +index 423c783..8534cfa 100644 --- a/programs/winecfg/Es.rc +++ b/programs/winecfg/Es.rc @@ -270,6 +270,7 @@ BEGIN @@ -71,7 +71,7 @@ index 1771b4e..aaacaa9 100644 IDS_DRIVER_ESOUND "Manejador EsounD" IDS_DRIVER_OSS "Manejador OSS" diff --git a/programs/winecfg/Fi.rc b/programs/winecfg/Fi.rc -index 0dedf3a..5217482 100644 +index 957b87d..1eb62d1 100644 --- a/programs/winecfg/Fi.rc +++ b/programs/winecfg/Fi.rc @@ -270,6 +270,7 @@ BEGIN @@ -83,7 +83,7 @@ index 0dedf3a..5217482 100644 IDS_DRIVER_ESOUND "EsounD Driver" IDS_DRIVER_OSS "OSS Driver" diff --git a/programs/winecfg/Fr.rc b/programs/winecfg/Fr.rc -index a9184f9..004ebb0 100644 +index f84cff6..045d93f 100644 --- a/programs/winecfg/Fr.rc +++ b/programs/winecfg/Fr.rc @@ -284,6 +284,7 @@ BEGIN @@ -95,7 +95,7 @@ index a9184f9..004ebb0 100644 IDS_DRIVER_ESOUND "Pilote EsounD" IDS_DRIVER_OSS "Pilote OSS" diff --git a/programs/winecfg/Hu.rc b/programs/winecfg/Hu.rc -index dc887fe..9bd192e 100644 +index 7c4e4fc..654b524 100644 --- a/programs/winecfg/Hu.rc +++ b/programs/winecfg/Hu.rc @@ -270,6 +270,7 @@ BEGIN @@ -107,7 +107,7 @@ index dc887fe..9bd192e 100644 IDS_DRIVER_ESOUND "EsounD Driver" IDS_DRIVER_OSS "OSS Driver" diff --git a/programs/winecfg/It.rc b/programs/winecfg/It.rc -index ddeda8c..1530b5f 100644 +index 29deea2..e328a19 100644 --- a/programs/winecfg/It.rc +++ b/programs/winecfg/It.rc @@ -284,6 +284,7 @@ BEGIN @@ -119,7 +119,7 @@ index ddeda8c..1530b5f 100644 IDS_DRIVER_ESOUND "Driver Esound" IDS_DRIVER_OSS "Driver OSS" diff --git a/programs/winecfg/Ja.rc b/programs/winecfg/Ja.rc -index 5b77da7..316d2e5 100644 +index ff03564..94d7c62 100644 --- a/programs/winecfg/Ja.rc +++ b/programs/winecfg/Ja.rc @@ -285,6 +285,7 @@ BEGIN @@ -131,7 +131,7 @@ index 5b77da7..316d2e5 100644 IDS_DRIVER_ESOUND "EsounD ドライバ" IDS_DRIVER_OSS "OSS ドライバ" diff --git a/programs/winecfg/Ko.rc b/programs/winecfg/Ko.rc -index bf06647..66f9803 100644 +index b30ce87..36dabd2 100644 --- a/programs/winecfg/Ko.rc +++ b/programs/winecfg/Ko.rc @@ -285,6 +285,7 @@ BEGIN @@ -143,7 +143,7 @@ index bf06647..66f9803 100644 IDS_DRIVER_ESOUND "EsounD ̹" IDS_DRIVER_OSS "OSS ̹" diff --git a/programs/winecfg/Lt.rc b/programs/winecfg/Lt.rc -index 7208cc6..5aa8fdb 100644 +index 1a9d0fa..ff7a586 100644 --- a/programs/winecfg/Lt.rc +++ b/programs/winecfg/Lt.rc @@ -283,6 +283,7 @@ BEGIN @@ -155,7 +155,7 @@ index 7208cc6..5aa8fdb 100644 IDS_DRIVER_ESOUND "EsounD tvarkyklė" IDS_DRIVER_OSS "OSS tvarkyklė" diff --git a/programs/winecfg/Nl.rc b/programs/winecfg/Nl.rc -index 2fbba6a..802abab 100644 +index 5783033..431872f 100644 --- a/programs/winecfg/Nl.rc +++ b/programs/winecfg/Nl.rc @@ -283,6 +283,7 @@ BEGIN @@ -167,10 +167,10 @@ index 2fbba6a..802abab 100644 IDS_DRIVER_ESOUND "EsounD Stuurprogramma" IDS_DRIVER_OSS "OSS Stuurprogramma" diff --git a/programs/winecfg/No.rc b/programs/winecfg/No.rc -index cc34fad..0f0aea8 100644 +index 13a62f4..7e66a3a 100644 --- a/programs/winecfg/No.rc +++ b/programs/winecfg/No.rc -@@ -270,6 +270,7 @@ BEGIN +@@ -283,6 +283,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Grunnleggende" IDS_ACCEL_EMULATION "Emulering" @@ -179,7 +179,7 @@ index cc34fad..0f0aea8 100644 IDS_DRIVER_ESOUND "EsounD-driver" IDS_DRIVER_OSS "OSS-driver" diff --git a/programs/winecfg/Pl.rc b/programs/winecfg/Pl.rc -index d884881..bb97de5 100644 +index 9422f34..eeca25c 100644 --- a/programs/winecfg/Pl.rc +++ b/programs/winecfg/Pl.rc @@ -273,6 +273,7 @@ BEGIN @@ -191,7 +191,7 @@ index d884881..bb97de5 100644 IDS_DRIVER_ESOUND "Sterownik EsounD" IDS_DRIVER_OSS "Sterownik OSS" diff --git a/programs/winecfg/Pt.rc b/programs/winecfg/Pt.rc -index 683dc68..be92466 100644 +index aeab826..c2e0200 100644 --- a/programs/winecfg/Pt.rc +++ b/programs/winecfg/Pt.rc @@ -470,6 +470,7 @@ BEGIN @@ -203,7 +203,7 @@ index 683dc68..be92466 100644 IDS_DRIVER_ESOUND "Controlador EsounD" IDS_DRIVER_OSS "Controlador OSS" diff --git a/programs/winecfg/Ro.rc b/programs/winecfg/Ro.rc -index 5626018..6c84511 100644 +index c031ea8..430d6d8 100644 --- a/programs/winecfg/Ro.rc +++ b/programs/winecfg/Ro.rc @@ -282,6 +282,7 @@ BEGIN @@ -215,7 +215,7 @@ index 5626018..6c84511 100644 IDS_DRIVER_ESOUND "Driver Esound" IDS_DRIVER_OSS "Driver OSS" diff --git a/programs/winecfg/Ru.rc b/programs/winecfg/Ru.rc -index 38b4546..73c0250 100644 +index 58252ba..39fb6d5 100644 --- a/programs/winecfg/Ru.rc +++ b/programs/winecfg/Ru.rc @@ -287,6 +287,7 @@ BEGIN @@ -227,7 +227,7 @@ index 38b4546..73c0250 100644 IDS_DRIVER_ESOUND "EsounD драйвер" IDS_DRIVER_OSS "OSS драйвер" diff --git a/programs/winecfg/Si.rc b/programs/winecfg/Si.rc -index feaef36..1d10bae 100644 +index eec1658..35b5462 100644 --- a/programs/winecfg/Si.rc +++ b/programs/winecfg/Si.rc @@ -272,6 +272,7 @@ BEGIN @@ -239,7 +239,7 @@ index feaef36..1d10bae 100644 IDS_DRIVER_ESOUND "EsounD gonilnik" IDS_DRIVER_OSS "OSS gonilnik" diff --git a/programs/winecfg/Sv.rc b/programs/winecfg/Sv.rc -index 7fea5aa..1979b5a 100644 +index d724afa..ba34d44 100644 --- a/programs/winecfg/Sv.rc +++ b/programs/winecfg/Sv.rc @@ -270,6 +270,7 @@ BEGIN @@ -251,7 +251,7 @@ index 7fea5aa..1979b5a 100644 IDS_DRIVER_ESOUND "EsounD-drivrutin" IDS_DRIVER_OSS "OSS-drivrutin" diff --git a/programs/winecfg/Tr.rc b/programs/winecfg/Tr.rc -index 0fa9778..5ea7da1 100644 +index 89ddb23..196debe 100644 --- a/programs/winecfg/Tr.rc +++ b/programs/winecfg/Tr.rc @@ -270,6 +270,7 @@ BEGIN @@ -263,7 +263,7 @@ index 0fa9778..5ea7da1 100644 IDS_DRIVER_ESOUND "EsounD Srcs" IDS_DRIVER_OSS "OSS Srcs" diff --git a/programs/winecfg/Zh.rc b/programs/winecfg/Zh.rc -index 8c84061..3de1da8 100644 +index 14ac5c3..cd380a3 100644 --- a/programs/winecfg/Zh.rc +++ b/programs/winecfg/Zh.rc @@ -275,6 +275,7 @@ BEGIN diff --git a/winepulse-0.35-configure.ac.patch b/winepulse-0.35-configure.ac.patch new file mode 100644 index 0000000..0d4235b --- /dev/null +++ b/winepulse-0.35-configure.ac.patch @@ -0,0 +1,60 @@ +diff --git a/configure.ac b/configure.ac +index f823045..583f9c1 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -64,6 +64,7 @@ AC_ARG_WITH(png, AS_HELP_STRING([--without-png],[do not use PNG]), + [if test "x$withval" = "xno"; then ac_cv_header_png_h=no; fi]) + AC_ARG_WITH(pthread, AS_HELP_STRING([--without-pthread],[do not use the pthread library]), + [if test "x$withval" = "xno"; then ac_cv_header_pthread_h=no; fi]) ++AC_ARG_WITH(pulse, AC_HELP_STRING([--without-pulse],[do not use PulseAudio sound support])) + AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)])) + AC_ARG_WITH(v4l, AS_HELP_STRING([--without-v4l],[do not use v4l1 (v4l support)])) + AC_ARG_WITH(xcomposite,AS_HELP_STRING([--without-xcomposite],[do not use the Xcomposite extension]), +@@ -1308,6 +1309,30 @@ then + CFLAGS="$save_CFLAGS" + fi + ++dnl **** Check for PulseAudio **** ++AC_SUBST(PULSELIBS,"") ++AC_SUBST(PULSECFLAGS,"") ++if test "x$with_pulse" != "xno"; ++then ++ ac_save_CPPFLAGS="$CPPFLAGS" ++ if test "$PKG_CONFIG" != "false"; ++ then ++ ac_pulse_libs="`$PKG_CONFIG --libs libpulse 2>/dev/null`" ++ ac_pulse_cflags="`$PKG_CONFIG --cflags libpulse 2>/dev/null`" ++ ++ CPPFLAGS="$CPPFLAGS $ac_pulse_cflags" ++ AC_CHECK_HEADERS(pulse/pulseaudio.h, ++ [AC_CHECK_LIB(pulse, pa_stream_is_corked, ++ [AC_DEFINE(HAVE_PULSEAUDIO, 1, [Define if you have pulseaudio]) ++ PULSELIBS="$ac_pulse_libs" ++ PULSECFLAGS="$ac_pulse_cflags"],,$ac_pulse_libs) ++ ]) ++ fi ++ CPPFLAGS="$ac_save_CPPFLAGS" ++fi ++WINE_WARNING_WITH(pulse, [test "$ac_cv_lib_pulse_pa_stream_is_corked" != "yes"], ++ [libpulse ${notice_platform}development files not found or too old, Pulse won't be supported.]) ++ + dnl **** Check for ALSA 1.x **** + AC_SUBST(ALSALIBS,"") + if test "$ac_cv_header_sys_asoundlib_h" = "yes" -o "$ac_cv_header_alsa_asoundlib_h" = "yes" +@@ -1460,7 +1485,7 @@ dnl **** Check for libodbc **** + WINE_CHECK_SONAME(odbc,SQLConnect,,[AC_DEFINE_UNQUOTED(SONAME_LIBODBC,["libodbc.$LIBEXT"])]) + + dnl **** Check for any sound system **** +-if test "x$ALSALIBS$AUDIOIOLIBS$COREAUDIO$NASLIBS$ESDLIBS$ac_cv_lib_soname_jack" = "x" -a \ ++if test "x$ALSALIBS$AUDIOIOLIBS$COREAUDIO$NASLIBS$ESDLIBS$PULSELIBS$ac_cv_lib_soname_jack" = "x" -a \ + "$ac_cv_header_sys_soundcard_h" != "yes" -a \ + "$ac_cv_header_machine_soundcard_h" != "yes" -a \ + "$ac_cv_header_soundcard_h" != "yes" -a \ +@@ -2555,6 +2580,7 @@ WINE_CONFIG_DLL(winenas.drv) + WINE_CONFIG_DLL(wineoss.drv) + WINE_CONFIG_DLL(wineps.drv) + WINE_CONFIG_DLL(wineps16.drv16,enable_win16) ++WINE_CONFIG_DLL(winepulse.drv) + WINE_CONFIG_DLL(winequartz.drv) + WINE_CONFIG_DLL(winex11.drv) + WINE_CONFIG_DLL(wing.dll16,enable_win16) diff --git a/winepulse-0.33.patch b/winepulse-0.35.patch similarity index 92% rename from winepulse-0.33.patch rename to winepulse-0.35.patch index beee106..9b809f2 100644 --- a/winepulse-0.33.patch +++ b/winepulse-0.35.patch @@ -1,9 +1,9 @@ diff --git a/dlls/winepulse.drv/Makefile.in b/dlls/winepulse.drv/Makefile.in new file mode 100644 -index 0000000..c99c1da +index 0000000..80a751d --- /dev/null +++ b/dlls/winepulse.drv/Makefile.in -@@ -0,0 +1,15 @@ +@@ -0,0 +1,16 @@ +TOPSRCDIR = @top_srcdir@ +TOPOBJDIR = ../.. +SRCDIR = @srcdir@ @@ -11,6 +11,7 @@ index 0000000..c99c1da +MODULE = winepulse.drv +IMPORTS = winmm user32 kernel32 +EXTRALIBS = @PULSELIBS@ ++EXTRACFLAGS = @PULSEINCL@ + +C_SRCS = waveout.c \ + wavein.c \ @@ -21,10 +22,10 @@ index 0000000..c99c1da +@DEPENDENCIES@ # everything below this line is overwritten by make depend diff --git a/dlls/winepulse.drv/pulse.c b/dlls/winepulse.drv/pulse.c new file mode 100644 -index 0000000..3dcb086 +index 0000000..9dd1f80 --- /dev/null +++ b/dlls/winepulse.drv/pulse.c -@@ -0,0 +1,788 @@ +@@ -0,0 +1,805 @@ +/* + * Wine Driver for PulseAudio + * http://pulseaudio.org/ @@ -418,6 +419,23 @@ index 0000000..3dcb086 + */ + +/************************************************************************** ++ * PULSE_StreamRequestCallback ++ * ++ * Called by the pulse mainloop whenever it wants/has audio data. ++ */ ++void PULSE_StreamRequestCallback(pa_stream *s, size_t nbytes, void *userdata) { ++ WINE_WAVEINST *ww = (WINE_WAVEINST*)userdata; ++ ++ TRACE("Server has %u bytes\n", nbytes); ++ ++ /* Make sure that the player/recorder is running */ ++ if (ww->hThread != INVALID_HANDLE_VALUE && ww->msgRing.messages) { ++ PULSE_AddRingMessage(&ww->msgRing, WINE_WM_FEED, (DWORD)nbytes, FALSE); ++ } ++} ++ ++ ++/************************************************************************** + * PULSE_StreamSuspendedCallback [internal] + * + * Called by the pulse mainloop any time stream playback is intentionally @@ -476,11 +494,11 @@ index 0000000..3dcb086 + TRACE("Stream %p ready\n", userdata); + break; + -+ case PA_STREAM_TERMINATED: ++ case PA_STREAM_TERMINATED: /* Stream closed normally */ + TRACE("Stream %p terminated\n", userdata); + break; + -+ case PA_STREAM_FAILED: ++ case PA_STREAM_FAILED: /* Stream closed not-normally */ + ERR("Stream %p failed!\n", userdata); + break; + @@ -532,7 +550,7 @@ index 0000000..3dcb086 + break; + + case PA_CONTEXT_FAILED: -+ ERR("Context failure: %s\n", pa_strerror(pa_context_errno(c))); ++ ERR("Context failed: %s\n", pa_strerror(pa_context_errno(c))); + pa_threaded_mainloop_signal(PULSE_ml, 0); + break; + } @@ -559,7 +577,7 @@ index 0000000..3dcb086 + memset(&(wdi->caps.in), 0, sizeof(wdi->caps.in)); + snprintf(wdi->interface_name, MAXPNAMELEN * 2, "winepulse: %s", name); + wdi->device_name = pa_xstrdup(device); -+ MultiByteToWideChar(CP_ACP, 0, description, -1, wdi->caps.in.szPname, sizeof(wdi->caps.in.szPname)/sizeof(WCHAR)); ++ MultiByteToWideChar(CP_UTF8, 0, description, -1, wdi->caps.in.szPname, sizeof(wdi->caps.in.szPname)/sizeof(WCHAR)); + wdi->caps.in.szPname[sizeof(wdi->caps.in.szPname)/sizeof(WCHAR) - 1] = '\0'; + wdi->caps.in.wMid = MM_CREATIVE; + wdi->caps.in.wPid = MM_CREATIVE_SBP16_WAVEOUT; @@ -608,7 +626,7 @@ index 0000000..3dcb086 + wdo->volume.channels = v->channels; + for (x = 0; x < v->channels; x++) wdo->volume.values[x] = v->values[x]; + snprintf(wdo->interface_name, MAXPNAMELEN * 2, "winepulse: %s", name); -+ MultiByteToWideChar(CP_ACP, 0, description, -1, wdo->caps.out.szPname, sizeof(wdo->caps.out.szPname)/sizeof(WCHAR)); ++ MultiByteToWideChar(CP_UTF8, 0, description, -1, wdo->caps.out.szPname, sizeof(wdo->caps.out.szPname)/sizeof(WCHAR)); + wdo->caps.out.szPname[sizeof(wdo->caps.out.szPname)/sizeof(WCHAR) - 1] = '\0'; + wdo->caps.out.wMid = MM_CREATIVE; + wdo->caps.out.wPid = MM_CREATIVE_SBP16_WAVEOUT; @@ -719,7 +737,7 @@ index 0000000..3dcb086 + PULSE_ml = NULL; + + if (!(PULSE_ml = pa_threaded_mainloop_new())) { -+ WARN("Failed to create mainloop object."); ++ ERR("Failed to create mainloop object."); + return DRV_FAILURE; + } + @@ -748,7 +766,6 @@ index 0000000..3dcb086 + pa_threaded_mainloop_lock(PULSE_ml); + + TRACE("libpulse protocol version: %u. API Version %u\n", pa_context_get_protocol_version(PULSE_context), PA_API_VERSION); -+ TRACE("Attempting to connect to pulseaudio server.\n"); + if (pa_context_connect(PULSE_context, NULL, 0, NULL) < 0) + goto fail; + @@ -784,7 +801,8 @@ index 0000000..3dcb086 + +fail: + pa_threaded_mainloop_unlock(PULSE_ml); -+ ERR("Failed to connect to server\n"); ++ /* Only warn, because if we failed wine may still choose the next driver */ ++ WARN("Failed to connect to server\n"); + return DRV_FAILURE; +} + @@ -815,10 +833,10 @@ index 0000000..3dcb086 +} diff --git a/dlls/winepulse.drv/wavein.c b/dlls/winepulse.drv/wavein.c new file mode 100644 -index 0000000..7cbc781 +index 0000000..8aea538 --- /dev/null +++ b/dlls/winepulse.drv/wavein.c -@@ -0,0 +1,595 @@ +@@ -0,0 +1,588 @@ +/* + * Wine Driver for PulseAudio - WaveIn Functionality + * http://pulseaudio.org/ @@ -890,196 +908,188 @@ index 0000000..7cbc781 +} + +/************************************************************************** -+ * widRecorder_NextFragment [internal] -+ * -+ * Gets the next fragment of data from the server. -+ */ -+static size_t widRecorder_NextFragment(WINE_WAVEINST *wwi) { -+ size_t nbytes; -+ -+ TRACE("()\n"); -+ -+ if (wwi->buffer) -+ pa_stream_drop(wwi->stream); -+ -+ pa_stream_peek(wwi->stream, &wwi->buffer, &nbytes); -+ wwi->buffer_length = nbytes; -+ wwi->buffer_read_offset = 0; -+ -+ return nbytes; -+} -+ -+ -+/************************************************************************** + * widRecorder_CopyData [internal] + * + * Copys data from the fragments pulse returns to queued buffers. + */ +static void widRecorder_CopyData(WINE_WAVEINST *wwi) { + LPWAVEHDR lpWaveHdr = wwi->lpQueuePtr; -+ size_t nbytes; -+ -+ while (lpWaveHdr && wwi->state == WINE_WS_PLAYING) { ++ size_t bytes_avail; + -+ nbytes = min(wwi->buffer_length - wwi->buffer_read_offset, lpWaveHdr->dwBufferLength - lpWaveHdr->dwBytesRecorded); -+ if (nbytes == 0) break; ++ /* Get this value once and trust it. Note that the total available is made ++ * of one _or more_ fragments. These fragments will probably not align with ++ * the wavehdr buffer sizes. */ ++ pa_threaded_mainloop_lock(PULSE_ml); ++ bytes_avail = pa_stream_readable_size(wwi->stream); ++ pa_threaded_mainloop_unlock(PULSE_ml); + -+ TRACE("%u bytes from %p to %p\n", -+ nbytes, -+ (PBYTE)wwi->buffer + wwi->buffer_read_offset, -+ lpWaveHdr->lpData + lpWaveHdr->dwBytesRecorded); ++ if (bytes_avail == -1) { ++ ERR("pa_stream_readable_size() returned -1, record stream has failed.\n"); ++ return; ++ } + -+ memcpy(lpWaveHdr->lpData + lpWaveHdr->dwBytesRecorded, (PBYTE)wwi->buffer + wwi->buffer_read_offset, nbytes); ++ /* If there is an already peeked buffer, add it to the total */ ++ if (wwi->buffer) ++ bytes_avail += wwi->buffer_length - wwi->buffer_read_offset; + -+ lpWaveHdr->dwBytesRecorded += nbytes; -+ wwi->buffer_read_offset += nbytes; ++ for (;bytes_avail && lpWaveHdr; lpWaveHdr = wwi->lpQueuePtr) { ++ size_t peek_avail; + -+ if (wwi->buffer_read_offset == wwi->buffer_length) { ++ if (!wwi->buffer) { + pa_threaded_mainloop_lock(PULSE_ml); -+ pa_stream_drop(wwi->stream); -+ if (pa_stream_readable_size(wwi->stream)) -+ widRecorder_NextFragment(wwi); -+ else { -+ wwi->buffer = NULL; -+ wwi->buffer_length = 0; -+ wwi->buffer_read_offset = 0; -+ } ++ pa_stream_peek(wwi->stream, &wwi->buffer, &wwi->buffer_length); + pa_threaded_mainloop_unlock(PULSE_ml); ++ wwi->buffer_read_offset = 0; ++ ++ if (!wwi->buffer || !wwi->buffer_length) { ++ WARN("pa_stream_peek failed\n"); ++ break; ++ } + } ++ ++ peek_avail = min(wwi->buffer_length - wwi->buffer_read_offset, ++ lpWaveHdr->dwBufferLength - lpWaveHdr->dwBytesRecorded); ++ ++ memcpy(lpWaveHdr->lpData + lpWaveHdr->dwBytesRecorded, ++ (PBYTE)wwi->buffer + wwi->buffer_read_offset, ++ peek_avail); ++ ++ wwi->buffer_read_offset += peek_avail; ++ lpWaveHdr->dwBytesRecorded += peek_avail; ++ bytes_avail -= peek_avail; + + if (lpWaveHdr->dwBytesRecorded == lpWaveHdr->dwBufferLength) { + lpWaveHdr->dwFlags &= ~WHDR_INQUEUE; + lpWaveHdr->dwFlags |= WHDR_DONE; + wwi->lpQueuePtr = lpWaveHdr->lpNext; + widNotifyClient(wwi, WIM_DATA, (DWORD)lpWaveHdr, 0); -+ lpWaveHdr = wwi->lpQueuePtr; + } -+ } ++ ++ if (wwi->buffer_read_offset == wwi->buffer_length) { ++ pa_threaded_mainloop_lock(PULSE_ml); ++ pa_stream_drop(wwi->stream); ++ wwi->buffer = NULL; ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ } ++ } /* for(bytes_avail && lpWaveHdr) */ ++ ++ return; +} + -+/************************************************************************** -+ * widRecorder [internal] -+ */ -+static DWORD CALLBACK widRecorder(LPVOID lpParam) { -+ WINE_WAVEINST *wwi = (WINE_WAVEINST*)lpParam; -+ LPWAVEHDR lpWaveHdr; ++static void widRecorder_ProcessMessages(WINE_WAVEINST* wwi) { ++ LPWAVEHDR lpWaveHdr; + enum win_wm_message msg; + DWORD param; + HANDLE ev; -+ DWORD wait = INFINITE; + -+ wwi->state = WINE_WS_STOPPED; -+ SetEvent(wwi->hStartUpEvent); -+ -+ for (;;) { + -+ if (wwi->state != WINE_WS_PLAYING) { -+ wait = INFINITE; -+ } else { -+ if (wwi->buffer == NULL && pa_stream_readable_size(wwi->stream)) { -+ pa_threaded_mainloop_lock(PULSE_ml); -+ wait = pa_bytes_to_usec(widRecorder_NextFragment(wwi), &wwi->sample_spec)/1000; -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ } -+ } ++ while (PULSE_RetrieveRingMessage(&wwi->msgRing, &msg, ¶m, &ev)) { ++ TRACE("Received %s %x\n", PULSE_getCmdString(msg), param); + -+ widRecorder_CopyData(wwi); ++ switch (msg) { ++ case WINE_WM_FEED: ++ /* Spin the loop in widRecorder */ ++ SetEvent(ev); ++ break; + -+ PULSE_WaitRingMessage(&wwi->msgRing, wait); ++ case WINE_WM_STARTING: ++ wwi->dwLastReset = wwi->timing_info->read_index; ++ pa_threaded_mainloop_lock(PULSE_ml); ++ PULSE_WaitForOperation(pa_stream_cork(wwi->stream, 0, PULSE_StreamSuccessCallback, NULL)); ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ wwi->state = WINE_WS_PLAYING; ++ SetEvent(ev); ++ break; + -+ while (PULSE_RetrieveRingMessage(&wwi->msgRing, &msg, ¶m, &ev)) { -+ TRACE("Received %s %x\n", PULSE_getCmdString(msg), param); ++ case WINE_WM_HEADER: ++ lpWaveHdr = (LPWAVEHDR)param; ++ lpWaveHdr->lpNext = 0; ++ /* insert buffer at the end of queue */ ++ { ++ LPWAVEHDR *wh; ++ for (wh = &(wwi->lpQueuePtr); *wh; wh = &((*wh)->lpNext)); ++ *wh = lpWaveHdr; ++ } ++ break; + -+ switch (msg) { -+ case WINE_WM_FEED: -+ SetEvent(ev); -+ break; -+ case WINE_WM_STARTING: -+ wwi->state = WINE_WS_PLAYING; -+ if (wwi->lpQueuePtr) -+ wait = pa_bytes_to_usec(wwi->lpQueuePtr->dwBufferLength, &wwi->sample_spec)/1000; -+ else -+ wait = INFINITE; -+ wwi->dwLastReset = wwi->timing_info->read_index; -+ pa_threaded_mainloop_lock(PULSE_ml); -+ PULSE_WaitForOperation(pa_stream_cork(wwi->stream, 0, PULSE_StreamSuccessCallback, NULL)); -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ SetEvent(ev); -+ break; -+ case WINE_WM_HEADER: -+ lpWaveHdr = (LPWAVEHDR)param; -+ lpWaveHdr->lpNext = 0; -+ -+ /* insert buffer at the end of queue */ -+ { -+ LPWAVEHDR *wh; -+ for (wh = &(wwi->lpQueuePtr); *wh; wh = &((*wh)->lpNext)); -+ *wh = lpWaveHdr; -+ } -+ break; -+ case WINE_WM_STOPPING: -+ if (wwi->state != WINE_WS_STOPPED) { -+ wwi->state = WINE_WS_STOPPED; -+ pa_threaded_mainloop_lock(PULSE_ml); -+ PULSE_WaitForOperation(pa_stream_cork(wwi->stream, 1, PULSE_StreamSuccessCallback, NULL)); -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ -+ /* return current buffer to app */ -+ lpWaveHdr = wwi->lpQueuePtr; -+ if (lpWaveHdr) { -+ LPWAVEHDR lpNext = lpWaveHdr->lpNext; -+ TRACE("stop %p %p\n", lpWaveHdr, lpWaveHdr->lpNext); -+ lpWaveHdr->dwFlags &= ~WHDR_INQUEUE; -+ lpWaveHdr->dwFlags |= WHDR_DONE; -+ wwi->lpQueuePtr = lpNext; -+ widNotifyClient(wwi, WIM_DATA, (DWORD)lpWaveHdr, 0); -+ } -+ } -+ SetEvent(ev); -+ break; -+ case WINE_WM_RESETTING: -+ if (wwi->state != WINE_WS_STOPPED) { ++ case WINE_WM_STOPPING: ++ if (wwi->state != WINE_WS_STOPPED) { + wwi->state = WINE_WS_STOPPED; -+ pa_threaded_mainloop_lock(PULSE_ml); -+ PULSE_WaitForOperation(pa_stream_cork(wwi->stream, 1, PULSE_StreamSuccessCallback, NULL)); -+ pa_threaded_mainloop_unlock(PULSE_ml); ++ pa_threaded_mainloop_lock(PULSE_ml); ++ PULSE_WaitForOperation(pa_stream_cork(wwi->stream, 1, PULSE_StreamSuccessCallback, NULL)); ++ if (wwi->buffer) { ++ pa_stream_drop(wwi->stream); ++ wwi->buffer = NULL; + } ++ pa_threaded_mainloop_unlock(PULSE_ml); + -+ /* return all buffers to the app */ -+ for (lpWaveHdr = wwi->lpPlayPtr ? wwi->lpPlayPtr : wwi->lpQueuePtr; lpWaveHdr; lpWaveHdr = wwi->lpQueuePtr) { ++ /* return only the current buffer to app */ ++ if ((lpWaveHdr = wwi->lpQueuePtr)) { ++ LPWAVEHDR lpNext = lpWaveHdr->lpNext; ++ TRACE("stop %p %p\n", lpWaveHdr, lpWaveHdr->lpNext); + lpWaveHdr->dwFlags &= ~WHDR_INQUEUE; + lpWaveHdr->dwFlags |= WHDR_DONE; -+ wwi->lpQueuePtr = lpWaveHdr->lpNext; ++ wwi->lpQueuePtr = lpNext; + widNotifyClient(wwi, WIM_DATA, (DWORD)lpWaveHdr, 0); + } ++ } ++ SetEvent(ev); ++ break; + -+ SetEvent(ev); -+ break; -+ case WINE_WM_CLOSING: -+ wwi->hThread = 0; -+ if ((DWORD)param == 1) { -+ /* If we are here, the stream failed */ -+ wwi->state = WINE_WS_FAILED; -+ SetEvent(ev); -+ PULSE_DestroyRingMessage(&wwi->msgRing); -+ widNotifyClient(wwi, WIM_CLOSE, 0L, 0L); -+ wwi->lpPlayPtr = wwi->lpQueuePtr = NULL; -+ pa_threaded_mainloop_lock(PULSE_ml); -+ pa_stream_disconnect(wwi->stream); -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ TRACE("Thread exiting because of failure.\n"); -+ ExitThread(1); ++ case WINE_WM_RESETTING: ++ if (wwi->state != WINE_WS_STOPPED) { ++ wwi->state = WINE_WS_STOPPED; ++ pa_threaded_mainloop_lock(PULSE_ml); ++ PULSE_WaitForOperation(pa_stream_cork(wwi->stream, 1, PULSE_StreamSuccessCallback, NULL)); ++ if (wwi->buffer) { ++ pa_stream_drop(wwi->stream); ++ wwi->buffer = NULL; + } -+ wwi->state = WINE_WS_CLOSED; -+ SetEvent(ev); -+ ExitThread(0); -+ /* shouldn't go here */ -+ default: -+ FIXME("unknown message %d\n", msg); -+ break; -+ } /* switch(msg) */ -+ } /* while(PULSE_RetrieveRingMessage()) */ -+ } /* for (;;) */ ++ pa_threaded_mainloop_unlock(PULSE_ml); ++ } ++ ++ /* return all the buffers to the app */ ++ lpWaveHdr = wwi->lpPlayPtr ? wwi->lpPlayPtr : wwi->lpQueuePtr; ++ for (; lpWaveHdr; lpWaveHdr = wwi->lpQueuePtr) { ++ lpWaveHdr->dwFlags &= ~WHDR_INQUEUE; ++ lpWaveHdr->dwFlags |= WHDR_DONE; ++ wwi->lpQueuePtr = lpWaveHdr->lpNext; ++ widNotifyClient(wwi, WIM_DATA, (DWORD)lpWaveHdr, 0); ++ } ++ SetEvent(ev); ++ break; ++ ++ case WINE_WM_CLOSING: ++ wwi->hThread = 0; ++ wwi->state = WINE_WS_CLOSED; ++ SetEvent(ev); ++ ExitThread(0); ++ /* shouldn't go here */ ++ ++ default: ++ FIXME("unknown message %d\n", msg); ++ break; ++ } ++ } ++} ++ ++/************************************************************************** ++ * widRecorder [internal] ++ */ ++static DWORD CALLBACK widRecorder(LPVOID lpParam) { ++ WINE_WAVEINST *wwi = (WINE_WAVEINST*)lpParam; ++ ++ wwi->state = WINE_WS_STOPPED; ++ SetEvent(wwi->hStartUpEvent); ++ ++ for (;;) { ++ PULSE_WaitRingMessage(&wwi->msgRing, INFINITE); ++ widRecorder_ProcessMessages(wwi); ++ if (wwi->state == WINE_WS_PLAYING && wwi->lpQueuePtr) ++ widRecorder_CopyData(wwi); ++ } ++ ++ return 0; +} + +/************************************************************************** @@ -1139,7 +1149,8 @@ index 0000000..7cbc781 + goto exit; + } + -+ pa_stream_set_state_callback(wwi->stream, PULSE_StreamStateCallback, wwi); ++ pa_stream_set_state_callback(wwi->stream, PULSE_StreamStateCallback, wwi); ++ pa_stream_set_read_callback (wwi->stream, PULSE_StreamRequestCallback, wwi); + + wwi->buffer_attr.maxlength = (uint32_t)-1; + wwi->buffer_attr.fragsize = pa_bytes_per_second(&wwi->sample_spec) / 100; @@ -1327,7 +1338,7 @@ index 0000000..7cbc781 + * Context-sanity check here, as if we respond with 0, WINE will move on + * to the next wavein driver. + */ -+static DWORD widGetNumDevs() { ++static DWORD widGetNumDevs(void) { + if (pa_context_get_state(PULSE_context) != PA_CONTEXT_READY) + return 0; + @@ -1340,7 +1351,7 @@ index 0000000..7cbc781 +static DWORD widDevInterfaceSize(UINT wDevID, LPDWORD dwParam1) { + TRACE("(%u, %p)\n", wDevID, dwParam1); + -+ *dwParam1 = MultiByteToWideChar(CP_UNIXCP, 0, WInDev[wDevID].interface_name, -1, ++ *dwParam1 = MultiByteToWideChar(CP_UTF8, 0, WInDev[wDevID].interface_name, -1, + NULL, 0 ) * sizeof(WCHAR); + return MMSYSERR_NOERROR; +} @@ -1349,10 +1360,10 @@ index 0000000..7cbc781 + * widDevInterface [internal] + */ +static DWORD widDevInterface(UINT wDevID, PWCHAR dwParam1, DWORD dwParam2) { -+ if (dwParam2 >= MultiByteToWideChar(CP_UNIXCP, 0, WInDev[wDevID].interface_name, -1, ++ if (dwParam2 >= MultiByteToWideChar(CP_UTF8, 0, WInDev[wDevID].interface_name, -1, + NULL, 0 ) * sizeof(WCHAR)) + { -+ MultiByteToWideChar(CP_UNIXCP, 0, WInDev[wDevID].interface_name, -1, ++ MultiByteToWideChar(CP_UTF8, 0, WInDev[wDevID].interface_name, -1, + dwParam1, dwParam2 / sizeof(WCHAR)); + return MMSYSERR_NOERROR; + } @@ -1416,10 +1427,10 @@ index 0000000..7cbc781 +#endif /* HAVE_PULSEAUDIO */ diff --git a/dlls/winepulse.drv/waveout.c b/dlls/winepulse.drv/waveout.c new file mode 100644 -index 0000000..e7454fd +index 0000000..989dff5 --- /dev/null +++ b/dlls/winepulse.drv/waveout.c -@@ -0,0 +1,1040 @@ +@@ -0,0 +1,1024 @@ +/* + * Wine Driver for PulseAudio - WaveOut Functionality + * http://pulseaudio.org/ @@ -1490,22 +1501,6 @@ index 0000000..e7454fd + *======================================================================*/ + +/************************************************************************** -+ * WAVEOUT_StreamRequestCallback -+ * -+ * Called by the pulse mainloop whenever it wants audio data. -+ */ -+static void WAVEOUT_StreamRequestCallback(pa_stream *s, size_t nbytes, void *userdata) { -+ WINE_WAVEINST *ww = (WINE_WAVEINST*)userdata; -+ -+ TRACE("Asking to be fed %u bytes\n", nbytes); -+ -+ /* Make sure that the player/recorder is running */ -+ if (ww->hThread != INVALID_HANDLE_VALUE && ww->msgRing.messages) { -+ PULSE_AddRingMessage(&ww->msgRing, WINE_WM_FEED, (DWORD)nbytes, FALSE); -+ } -+} -+ -+/************************************************************************** + * WAVEOUT_SinkInputInfoCallback [internal] + * + * Called by the pulse thread. Used for wodGetVolume. @@ -2033,7 +2028,7 @@ index 0000000..e7454fd + } + + /* Setup callbacks */ -+ pa_stream_set_write_callback (wwo->stream, WAVEOUT_StreamRequestCallback, wwo); ++ pa_stream_set_write_callback (wwo->stream, PULSE_StreamRequestCallback, wwo); + pa_stream_set_state_callback (wwo->stream, PULSE_StreamStateCallback, wwo); + pa_stream_set_underflow_callback (wwo->stream, PULSE_StreamUnderflowCallback, wwo); + pa_stream_set_moved_callback (wwo->stream, PULSE_StreamMovedCallback, wwo); @@ -2373,7 +2368,7 @@ index 0000000..e7454fd + */ +static DWORD wodDevInterfaceSize(UINT wDevID, LPDWORD dwParam1) { + -+ *dwParam1 = MultiByteToWideChar(CP_ACP, 0, WOutDev[wDevID].interface_name, -1, NULL, 0) * sizeof(WCHAR); ++ *dwParam1 = MultiByteToWideChar(CP_UTF8, 0, WOutDev[wDevID].interface_name, -1, NULL, 0) * sizeof(WCHAR); + return MMSYSERR_NOERROR; +} + @@ -2381,10 +2376,10 @@ index 0000000..e7454fd + * wodDevInterface [internal] + */ +static DWORD wodDevInterface(UINT wDevID, PWCHAR dwParam1, DWORD dwParam2) { -+ if (dwParam2 >= MultiByteToWideChar(CP_ACP, 0, WOutDev[wDevID].interface_name, -1, ++ if (dwParam2 >= MultiByteToWideChar(CP_UTF8, 0, WOutDev[wDevID].interface_name, -1, + NULL, 0 ) * sizeof(WCHAR)) + { -+ MultiByteToWideChar(CP_ACP, 0, WOutDev[wDevID].interface_name, -1, ++ MultiByteToWideChar(CP_UTF8, 0, WOutDev[wDevID].interface_name, -1, + dwParam1, dwParam2 / sizeof(WCHAR)); + return MMSYSERR_NOERROR; + } @@ -2471,10 +2466,10 @@ index 0000000..1b49460 +@ stdcall -private widMessage(long long long long long long) PULSE_widMessage diff --git a/dlls/winepulse.drv/winepulse.h b/dlls/winepulse.drv/winepulse.h new file mode 100644 -index 0000000..0aa7e86 +index 0000000..b83de5d --- /dev/null +++ b/dlls/winepulse.drv/winepulse.h -@@ -0,0 +1,196 @@ +@@ -0,0 +1,197 @@ +/* Definitions for PulseAudio Wine Driver + * + * Copyright 2009 Arthur Taylor @@ -2648,6 +2643,7 @@ index 0000000..0aa7e86 +DWORD PULSE_WidNumDevs; + +/* pulse.c: PulseAudio Async Callbacks */ ++void PULSE_StreamRequestCallback(pa_stream *s, size_t nbytes, void *userdata); +void PULSE_StreamSuccessCallback(pa_stream *s, int success, void *userdata); +void PULSE_StreamStateCallback(pa_stream *s, void *userdata); +void PULSE_StreamUnderflowCallback(pa_stream *s, void *userdata); From 058db7404209e780faf9e3b76e5958541dc4e1cb Mon Sep 17 00:00:00 2001 From: Jesse Keating Date: Wed, 17 Feb 2010 03:27:08 +0000 Subject: [PATCH 132/715] Initialize branch F-13 for wine --- branch | 1 + 1 file changed, 1 insertion(+) create mode 100644 branch diff --git a/branch b/branch new file mode 100644 index 0000000..baa94ef --- /dev/null +++ b/branch @@ -0,0 +1 @@ +F-13 From 93d42d4e5f73eca25b6296d7a2cee15aa228a4f9 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 28 Mar 2010 10:31:35 +0000 Subject: [PATCH 133/715] - update --- wine.spec | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 7bc9204..d206c63 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ %define no64bit 0 Name: wine -Version: 1.1.38 +Version: 1.1.40 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -1055,6 +1055,14 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/openal32.dll.so %changelog +* Sat Mar 06 2010 Andreas Bierfert +- 1.1.40-1 +- version upgrade + +* Sun Feb 21 2010 Andreas Bierfert +- 1.1.39-1 +- version upgrade + * Tue Feb 09 2010 Andreas Bierfert - 1.1.38-1 - version upgrade From 299eb80d4d25a2efa0b2e748fe6aeef227214774 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 10 May 2010 17:04:21 +0000 Subject: [PATCH 134/715] - upgrade --- .cvsignore | 2 +- sources | 2 +- wine-rpath.patch | 18 +- wine-x86_64-prefix.patch | 26 -- wine.spec | 259 +++++++++++++++--- winepulse-0.35-configure.ac.patch | 19 +- ...ecfg.patch => winepulse-0.36-winecfg.patch | 14 +- winepulse-0.35.patch => winepulse-0.36.patch | 6 +- 8 files changed, 248 insertions(+), 98 deletions(-) delete mode 100644 wine-x86_64-prefix.patch rename winepulse-0.34-winecfg.patch => winepulse-0.36-winecfg.patch (98%) rename winepulse-0.35.patch => winepulse-0.36.patch (99%) diff --git a/.cvsignore b/.cvsignore index 1f0c866..fdee59a 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-1.1.38-fe.tar.bz2 +wine-1.1.44.tar.bz2 diff --git a/sources b/sources index 2286e73..230abeb 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -fdf4b8573b77da73b683e97128ee4150 wine-1.1.38-fe.tar.bz2 +f18649bd71b9099fecad22436d239cba wine-1.1.44.tar.bz2 diff --git a/wine-rpath.patch b/wine-rpath.patch index f8f6585..3a66716 100644 --- a/wine-rpath.patch +++ b/wine-rpath.patch @@ -1,6 +1,6 @@ ---- configure.orig 2009-10-29 18:57:06.000000000 +0100 -+++ configure 2009-10-29 18:58:49.000000000 +0100 -@@ -6758,14 +6758,14 @@ +--- configure.old 2010-04-02 20:43:45.000000000 +0300 ++++ configure 2010-04-03 23:26:57.365947610 +0300 +@@ -6727,14 +6727,14 @@ fi @@ -9,7 +9,7 @@ -$as_echo_n "checking whether the compiler supports -fPIC -Wl,--rpath,\$ORIGIN/../lib... " >&6; } + as_ac_var=`$as_echo "ac_cv_cflags_-fPIC" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -fPIC" >&5 -+$as_echo_n "checking whether the compiler supports -fPIC " >&6; } ++$as_echo_n "checking whether the compiler supports -fPIC" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else @@ -18,22 +18,22 @@ +CFLAGS="$CFLAGS -fPIC" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - int main(int argc, char *argv) { return 0; } -@@ -6783,17 +6783,17 @@ + int main(int argc, char **argv) { return 0; } +@@ -6752,17 +6752,17 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if test `eval 'as_val=${'$as_ac_var'};$as_echo "$as_val"'` = yes; then : - LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`" - LDRPATH_LOCAL="-Wl,--rpath,\\\$\$ORIGIN/\$(TOPOBJDIR)/libs/wine" + LDRPATH_INSTALL="" -+ LDRPATH_LOCAL="" ++ LDRPATH_LOCAL="" else - as_ac_var=`$as_echo "ac_cv_cflags_-fPIC -Wl,-R,\\$ORIGIN/../lib" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -fPIC -Wl,-R,\$ORIGIN/../lib" >&5 -$as_echo_n "checking whether the compiler supports -fPIC -Wl,-R,\$ORIGIN/../lib... " >&6; } + as_ac_var=`$as_echo "ac_cv_cflags_-fPIC" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -fPIC" >&5 -+$as_echo_n "checking whether the compiler supports -fPIC " >&6; } ++$as_echo_n "checking whether the compiler supports -fPIC" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else @@ -42,4 +42,4 @@ +CFLAGS="$CFLAGS -fPIC" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - int main(int argc, char *argv) { return 0; } + int main(int argc, char **argv) { return 0; } diff --git a/wine-x86_64-prefix.patch b/wine-x86_64-prefix.patch deleted file mode 100644 index 7f3e3ff..0000000 --- a/wine-x86_64-prefix.patch +++ /dev/null @@ -1,26 +0,0 @@ ---- libs/wine/config.c.orig 2009-11-26 23:36:37.000000000 +0100 -+++ libs/wine/config.c 2009-11-26 23:37:36.000000000 +0100 -@@ -35,9 +35,9 @@ - #endif - #include "wine/library.h" - --static const char server_config_dir[] = "/.wine"; /* config dir relative to $HOME */ --static const char server_root_prefix[] = "/tmp/.wine-"; /* prefix for server root dir */ --static const char server_dir_prefix[] = "/server-"; /* prefix for server dir */ -+static const char server_config_dir[] = "/.wine-x86_64"; /* config dir relative to $HOME */ -+static const char server_root_prefix[] = "/tmp/.wine-x86_64-"; /* prefix for server root dir */ -+static const char server_dir_prefix[] = "/server-x86_64-"; /* prefix for server dir */ - - static char *bindir; - static char *dlldir; ---- dlls/ntdll/server.c.orig 2010-01-18 23:06:56.000000000 +0100 -+++ dlls/ntdll/server.c 2010-01-18 23:07:27.000000000 +0100 -@@ -698,7 +698,7 @@ - { - static int started; /* we only try once */ - char *argv[3]; -- static char wineserver[] = "server/wineserver"; -+ static char wineserver[] = "server/wineserver64"; - static char debug[] = "-d"; - - if (!started) diff --git a/wine.spec b/wine.spec index 7bc9204..b26d60a 100644 --- a/wine.spec +++ b/wine.spec @@ -1,18 +1,13 @@ %define no64bit 0 Name: wine -Version: 1.1.38 +Version: 1.1.44 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -# special fedora tarball without winemp3 -# It can be obtained by running rm -fr dlls/winemp3.acm in the winetree -# and removing the references from configure, configure.ac, Makefile.in, -# and programs/winecfg/libraries.c wrt. winemp3. - -Source0: %{name}-%{version}-fe.tar.bz2 +Source0: http://ibiblio.org/pub/linux/system/emulators/wine/%{name}-%{version}.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -37,22 +32,22 @@ Source201: wine.directory # mime types Source300: wine-mime-msi.desktop +Patch1: wine-rpath.patch + # explain how to use wine with pulseaudio # see http://bugs.winehq.org/show_bug.cgi?id=10495 # and http://art.ified.ca/?page_id=40 -Patch400: http://art.ified.ca/downloads/winepulse-0.35-configure.ac.patch -Patch401: http://art.ified.ca/downloads/winepulse-0.35.patch -Patch402: http://art.ified.ca/downloads/winepulse/winepulse-0.34-winecfg.patch +# rebased for .42 see #580073 +Patch400: winepulse-0.35-configure.ac.patch +Patch401: http://art.ified.ca/downloads/winepulse/winepulse-0.36.patch +Patch402: http://art.ified.ca/downloads/winepulse/winepulse-0.36-winecfg.patch Source402: README-FEDORA-PULSEAUDIO -Patch1: wine-rpath.patch -# upstream bugs -# currently non -# bugfix patches -# #533806 -Patch600: wine-x86_64-prefix.patch +# enhancements +# add wine-gecko support +Patch1000: wine-gecko.patch Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -108,11 +103,15 @@ BuildRequires: gnutls-devel BuildRequires: pulseaudio-libs-devel BuildRequires: gsm-devel BuildRequires: openal-soft-devel +BuildRequires: libv4l-devel +BuildRequires: fontpackages-devel # noarch Requires: wine-common = %{version}-%{release} Requires: wine-desktop = %{version}-%{release} -# 32bit +Requires: wine-fonts = %{version}-%{release} + +# 32bit parts Requires: wine-core(x86-32) = %{version}-%{release} Requires: wine-capi(x86-32) = %{version}-%{release} Requires: wine-cms(x86-32) = %{version}-%{release} @@ -127,6 +126,13 @@ Requires: wine-cms(x86-64) = %{version}-%{release} Requires: wine-ldap(x86-64) = %{version}-%{release} Requires: wine-twain(x86-64) = %{version}-%{release} Requires: wine-pulseaudio(x86-64) = %{version}-%{release} +Requires: wine-wow(x86-64) = %{version}-%{release} +Conflicts: wine-wow(x86-32) = %{version}-%{release} +%endif + +# 32bit only parts +%ifarch %{ix86} +Requires: wine-wow = %{version}-%{release} %endif %description @@ -144,7 +150,6 @@ wine-* sub packages. %package core Summary: Wine core package Group: Applications/Emulators -Requires: wine-fonts = %{version}-%{release} Requires(post): /sbin/ldconfig Requires(postun): /sbin/ldconfig Obsoletes: wine <= 0.9.15-1%{?dist} @@ -166,9 +171,18 @@ Requires: freetype(x86-64) Requires: gnutls(x86-64) %endif + %description core Wine core package includes the basic wine stuff needed by all other packages. +%package wow +Summary: Files for wine wow seperation +Group: Applications/Emulators +Requires: wine-core = %{version}-%{release} + +%description wow +%{summary} + %package desktop Summary: Desktop integration features for wine Group: Applications/Emulators @@ -188,10 +202,84 @@ handler service. Summary: Wine font files Group: Applications/Emulators BuildArch: noarch +Requires: wine-courier-fonts = %{version}-%{release} +Requires: wine-small-fonts = %{version}-%{release} +Requires: wine-system-fonts = %{version}-%{release} +Requires: wine-marlett-fonts = %{version}-%{release} +#Requires: wine-ms-sans-serif-fonts = %{version}-%{release} +#Requires: wine-tahoma-fonts = %{version}-%{release} +Requires: wine-symbol-fonts = %{version}-%{release} %description fonts %{summary} +%package courier-fonts +Summary: Wine Courier font family +Group: User Interface/X +BuildArch: noarch +Requires: fontpackages-filesystem + +%description courier-fonts +%{summary} + +%package small-fonts +Summary: Wine Small font family +Group: User Interface/X +BuildArch: noarch +Requires: fontpackages-filesystem + +%description small-fonts +%{summary} + +%package system-fonts +Summary: Wine System font family +Group: User Interface/X +BuildArch: noarch +Requires: fontpackages-filesystem + +%description system-fonts +%{summary} + + +%package marlett-fonts +Summary: Wine Marlett font family +Group: User Interface/X +BuildArch: noarch +Requires: fontpackages-filesystem + +%description marlett-fonts +%{summary} + + +#%package ms-sans-serif-fonts +#Summary: Wine MS Sans Serif font family +#Group: User Interface/X +#BuildArch: noarch +#Requires: fontpackages-filesystem + +#%description ms-sans-serif-fonts +#%{summary} + + +#%package tahoma-fonts +#Summary: Wine Tahoma font family +#Group: User Interface/X +#BuildArch: noarch +#Requires: fontpackages-filesystem + +#%description tahoma-fonts +#%{summary} + + +%package symbol-fonts +Summary: Wine Symbol font family +Group: User Interface/X +BuildArch: noarch +Requires: fontpackages-filesystem + +%description symbol-fonts +%{summary} + %package common Summary: Common files Group: Applications/Emulators @@ -307,21 +395,19 @@ This package adds an openal driver for wine. %prep -%setup -q -n %{name}-%{version}-fe +%setup -q %patch1 -%patch400 -p1 +%patch400 %patch401 -p1 %patch402 -p1 -%ifarch x86_64 -%patch600 -%endif +%patch1000 autoreconf %build -export CFLAGS="$RPM_OPT_FLAGS" +export CFLAGS="$RPM_OPT_FLAGS -Wno-error" %configure \ --sysconfdir=%{_sysconfdir}/wine \ --x-includes=%{_includedir} --x-libraries=%{_libdir} \ @@ -350,12 +436,8 @@ rm -rf %{buildroot} %ifarch %{ix86} # rename wine to wine32 mv %{buildroot}%{_bindir}/wine{,32} -%endif - -# if x86_64 rename to wine64 -%ifarch x86_64 -mv %{buildroot}%{_bindir}/wine{,64} -mv %{buildroot}%{_bindir}/wineserver{,64} +# create link to wine32 if ix86 +ln -s %{_bindir}/wine32 %{buildroot}%{_bindir}/wine %endif mkdir -p %{buildroot}%{_sysconfdir}/wine @@ -449,11 +531,34 @@ install -p -m644 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d/ install -p -m644 %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d/ %endif -install -p -m755 %{SOURCE6} $RPM_BUILD_ROOT%{_bindir}/wine - # deploy pulseaudio readme cp %{SOURCE402} . +# install fonts +install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-courier-fonts +mv %{buildroot}/%{_datadir}/wine/fonts/cou* %{buildroot}/%{_datadir}/fonts/wine-courier-fonts/ + +install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-system-fonts +mv %{buildroot}/%{_datadir}/wine/fonts/*sys.* %{buildroot}/%{_datadir}/fonts/wine-system-fonts/ + +install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-small-fonts +mv %{buildroot}/%{_datadir}/wine/fonts/sma* %{buildroot}/%{_datadir}/fonts/wine-small-fonts/ + +install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-marlett-fonts +mv %{buildroot}/%{_datadir}/wine/fonts/marlett.ttf %{buildroot}/%{_datadir}/fonts/wine-marlett-fonts/ + +#install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-ms-sans-serif-fonts +#mv %{buildroot}/%{_datadir}/wine/fonts/sse* %{buildroot}/%{_datadir}/fonts/wine-ms-sans-serif-fonts/ +rm -f %{buildroot}/%{_datadir}/wine/fonts/sse* + +#install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-tahoma-fonts +#mv %{buildroot}/%{_datadir}/wine/fonts/tahoma* %{buildroot}/%{_datadir}/fonts/wine-tahoma-fonts/ +rm -f %{buildroot}/%{_datadir}/wine/fonts/tahoma* + +install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-symbol-fonts +mv %{buildroot}/%{_datadir}/wine/fonts/symbol.ttf %{buildroot}/%{_datadir}/fonts/wine-symbol-fonts/ + + %clean rm -rf %{buildroot} @@ -543,21 +648,22 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/write.exe.so %{_libdir}/wine/dxdiag.exe.so +%{_bindir}/wine + %ifarch %{ix86} %{_bindir}/wine32 %{_bindir}/wine-preloader -%{_bindir}/wineserver %{_sysconfdir}/ld.so.conf.d/wine-32.conf %endif + %ifarch x86_64 -%{_bindir}/wine64 -%{_bindir}/wineserver64 %{_sysconfdir}/ld.so.conf.d/wine-64.conf %endif %dir %{_libdir}/wine %dir %{_libdir}/wine/fakedlls %{_libdir}/wine/fakedlls/* +%{_libdir}/wine/attrib.exe.so %{_libdir}/wine/cacls.exe.so %{_libdir}/wine/expand.exe.so %{_libdir}/wine/extrac32.exe.so @@ -565,8 +671,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/mshta.exe.so %{_libdir}/wine/msiexec.exe.so %{_libdir}/wine/net.exe.so +%{_libdir}/wine/ngen.exe.so %{_libdir}/wine/ntoskrnl.exe.so %{_libdir}/wine/oleview.exe.so +%{_libdir}/wine/ping.exe.so %{_libdir}/wine/reg.exe.so %{_libdir}/wine/regedit.exe.so %{_libdir}/wine/regsvr32.exe.so @@ -576,7 +684,6 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/services.exe.so %{_libdir}/wine/start.exe.so %{_libdir}/wine/termsv.exe.so -%{_libdir}/wine/wineboot.exe.so %{_libdir}/wine/winebrowser.exe.so %{_libdir}/wine/wineconsole.exe.so %{_libdir}/wine/winemenubuilder.exe.so @@ -630,6 +737,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/devenum.dll.so %{_libdir}/wine/dinput.dll.so %{_libdir}/wine/dinput8.dll.so +%{_libdir}/wine/dispex.dll.so %{_libdir}/wine/dmband.dll.so %{_libdir}/wine/dmcompos.dll.so %{_libdir}/wine/dmime.dll.so @@ -729,7 +837,11 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/msrle32.dll.so %{_libdir}/wine/mstask.dll.so %{_libdir}/wine/msvcirt.dll.so +%{_libdir}/wine/msvcr70.dll.so %{_libdir}/wine/msvcr71.dll.so +%{_libdir}/wine/msvcr80.dll.so +%{_libdir}/wine/msvcr90.dll.so +%{_libdir}/wine/msvcr100.dll.so %{_libdir}/wine/msvcrt.dll.so %{_libdir}/wine/msvcrt20.dll.so %{_libdir}/wine/msvcrt40.dll.so @@ -779,6 +891,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/rsabase.dll.so %{_libdir}/wine/rsaenh.dll.so %{_libdir}/wine/rtutils.dll.so +%{_libdir}/wine/sc.exe.so %{_libdir}/wine/sccbase.dll.so %{_libdir}/wine/schannel.dll.so %{_libdir}/wine/secur32.dll.so @@ -810,6 +923,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/updspapi.dll.so %{_libdir}/wine/url.dll.so %{_libdir}/wine/urlmon.dll.so +%{_libdir}/wine/usbd.sys.so %{_libdir}/wine/user32.dll.so %{_libdir}/wine/usp10.dll.so %{_libdir}/wine/uxtheme.dll.so @@ -922,12 +1036,15 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/winsock.dll16.so %{_libdir}/wine/wintab.dll16.so %{_libdir}/wine/wow32.dll.so -#%{_libdir}/wine/wprocs.dll16.so %endif +%files wow +%defattr(-,root,root,-) +%{_bindir}/wineserver +%{_libdir}/wine/wineboot.exe.so + %files common %defattr(-,root,root,-) -%{_bindir}/wineprefixcreate %{_bindir}/notepad %{_bindir}/winedbg %{_bindir}/winefile @@ -937,22 +1054,49 @@ update-desktop-database &>/dev/null || : %{_bindir}/msiexec %{_bindir}/regedit %{_bindir}/regsvr32 -%{_bindir}/wine %{_bindir}/wineboot %{_bindir}/wineconsole %{_bindir}/winecfg %dir %{_datadir}/wine %{_mandir}/man1/wine.1.gz %{_mandir}/man1/wineserver.1* -%{_mandir}/man1/wineprefixcreate.1* %lang(fr) %{_mandir}/fr.UTF-8/man1/* +%lang(de) %{_mandir}/de.UTF-8/man1/* %{_datadir}/wine/generic.ppd %{_datadir}/wine/wine.inf +%{_datadir}/wine/l_intl.nls %files fonts %defattr(-,root,root,-) %{_datadir}/wine/fonts +%files courier-fonts +%defattr(-,root,root,-) +%{_datadir}/fonts/wine-courier-fonts + +%files system-fonts +%defattr(-,root,root,-) +%{_datadir}/fonts/wine-system-fonts + +%files small-fonts +%defattr(-,root,root,-) +%{_datadir}/fonts/wine-small-fonts + +%files marlett-fonts +%defattr(-,root,root,-) +%{_datadir}/fonts/wine-marlett-fonts + +#%files ms-sans-serif-fonts +#%defattr(-,root,root,-) +#%{_datadir}/fonts/wine-ms-sans-serif-fonts + +#%files tahoma-fonts +#%defattr(-,root,root,-) +#%{_datadir}/fonts/wine-tahoma-fonts + +%files symbol-fonts +%defattr(-,root,root,-) +%{_datadir}/fonts/wine-symbol-fonts %files desktop %defattr(-,root,root,-) @@ -1055,6 +1199,41 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/openal32.dll.so %changelog +* Sun May 09 2010 Andreas Bierfert +- 1.1.44-1 +- version upgrade (#580024) + +* Sun Apr 18 2010 Andreas Bierfert +- 1.1.43-1 +- version upgrade + +* Sun Apr 11 2010 Andreas Bierfert +- 1.1.42-1 +- version upgrade +- rework for wow64 + +* Mon Mar 29 2010 Andreas Bierfert +- 1.1.41-3 +- add support for mingw32-wine-gecko + +* Sun Mar 28 2010 Andreas Bierfert +- 1.1.41-2 +- convert to font package guidelines +- add libv4l-devel BR + +* Sun Mar 28 2010 Andreas Bierfert +- 1.1.41-1 +- version upgrade (#577587, #576607) +- winepulse upgrade (0.36) + +* Sat Mar 06 2010 Andreas Bierfert +- 1.1.40-1 +- version upgrade + +* Sun Feb 21 2010 Andreas Bierfert +- 1.1.39-1 +- version upgrade + * Tue Feb 09 2010 Andreas Bierfert - 1.1.38-1 - version upgrade diff --git a/winepulse-0.35-configure.ac.patch b/winepulse-0.35-configure.ac.patch index 0d4235b..9d5132d 100644 --- a/winepulse-0.35-configure.ac.patch +++ b/winepulse-0.35-configure.ac.patch @@ -1,16 +1,14 @@ -diff --git a/configure.ac b/configure.ac -index f823045..583f9c1 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -64,6 +64,7 @@ AC_ARG_WITH(png, AS_HELP_STRING([--without-png],[do not use PNG]), +--- configure.ac.orig 2010-05-10 16:39:57.000000000 +0200 ++++ configure.ac 2010-05-10 16:42:54.000000000 +0200 +@@ -68,6 +68,7 @@ [if test "x$withval" = "xno"; then ac_cv_header_png_h=no; fi]) AC_ARG_WITH(pthread, AS_HELP_STRING([--without-pthread],[do not use the pthread library]), [if test "x$withval" = "xno"; then ac_cv_header_pthread_h=no; fi]) +AC_ARG_WITH(pulse, AC_HELP_STRING([--without-pulse],[do not use PulseAudio sound support])) AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)])) - AC_ARG_WITH(v4l, AS_HELP_STRING([--without-v4l],[do not use v4l1 (v4l support)])) - AC_ARG_WITH(xcomposite,AS_HELP_STRING([--without-xcomposite],[do not use the Xcomposite extension]), -@@ -1308,6 +1309,30 @@ then + AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF]), + [if test "x$withval" = "xno"; then ac_cv_header_tiffio_h=no; fi]) +@@ -1361,6 +1362,31 @@ CFLAGS="$save_CFLAGS" fi @@ -37,11 +35,12 @@ index f823045..583f9c1 100644 +fi +WINE_WARNING_WITH(pulse, [test "$ac_cv_lib_pulse_pa_stream_is_corked" != "yes"], + [libpulse ${notice_platform}development files not found or too old, Pulse won't be supported.]) ++ + dnl **** Check for ALSA 1.x **** AC_SUBST(ALSALIBS,"") if test "$ac_cv_header_sys_asoundlib_h" = "yes" -o "$ac_cv_header_alsa_asoundlib_h" = "yes" -@@ -1460,7 +1485,7 @@ dnl **** Check for libodbc **** +@@ -1528,7 +1554,7 @@ WINE_CHECK_SONAME(odbc,SQLConnect,,[AC_DEFINE_UNQUOTED(SONAME_LIBODBC,["libodbc.$LIBEXT"])]) dnl **** Check for any sound system **** @@ -50,7 +49,7 @@ index f823045..583f9c1 100644 "$ac_cv_header_sys_soundcard_h" != "yes" -a \ "$ac_cv_header_machine_soundcard_h" != "yes" -a \ "$ac_cv_header_soundcard_h" != "yes" -a \ -@@ -2555,6 +2580,7 @@ WINE_CONFIG_DLL(winenas.drv) +@@ -2621,6 +2647,7 @@ WINE_CONFIG_DLL(wineoss.drv) WINE_CONFIG_DLL(wineps.drv) WINE_CONFIG_DLL(wineps16.drv16,enable_win16) diff --git a/winepulse-0.34-winecfg.patch b/winepulse-0.36-winecfg.patch similarity index 98% rename from winepulse-0.34-winecfg.patch rename to winepulse-0.36-winecfg.patch index 5635a97..f73525a 100644 --- a/winepulse-0.34-winecfg.patch +++ b/winepulse-0.36-winecfg.patch @@ -287,22 +287,22 @@ index 9f8a0a2..59837ef 100644 {IDS_DRIVER_OSS, "oss"}, {IDS_DRIVER_COREAUDIO, "coreaudio"}, diff --git a/programs/winecfg/libraries.c b/programs/winecfg/libraries.c -index 37cc12b..7c13fad 100644 +index 19504d6..b5c84eb 100644 --- a/programs/winecfg/libraries.c +++ b/programs/winecfg/libraries.c -@@ -81,6 +81,7 @@ static const char * const builtin_only[] = - "wineoss.drv", +@@ -73,6 +73,7 @@ static const char * const builtin_only[] = + "winedos", + "winemp3.acm", "wineps", - "wineps.drv", + "winepulse.drv", - "winex11.drv", "winmm", "wintab32", + "wnaspi32", diff --git a/programs/winecfg/resource.h b/programs/winecfg/resource.h -index f006861..57b2a15 100644 +index 15c905b..67616fb 100644 --- a/programs/winecfg/resource.h +++ b/programs/winecfg/resource.h -@@ -187,7 +187,7 @@ +@@ -188,7 +188,7 @@ #define IDS_ACCEL_BASIC 8302 #define IDS_ACCEL_EMULATION 8303 #define IDS_DRIVER_ALSA 8304 diff --git a/winepulse-0.35.patch b/winepulse-0.36.patch similarity index 99% rename from winepulse-0.35.patch rename to winepulse-0.36.patch index 9b809f2..7ea2ef1 100644 --- a/winepulse-0.35.patch +++ b/winepulse-0.36.patch @@ -1,9 +1,9 @@ diff --git a/dlls/winepulse.drv/Makefile.in b/dlls/winepulse.drv/Makefile.in new file mode 100644 -index 0000000..80a751d +index 0000000..ed48381 --- /dev/null +++ b/dlls/winepulse.drv/Makefile.in -@@ -0,0 +1,16 @@ +@@ -0,0 +1,14 @@ +TOPSRCDIR = @top_srcdir@ +TOPOBJDIR = ../.. +SRCDIR = @srcdir@ @@ -18,8 +18,6 @@ index 0000000..80a751d + pulse.c + +@MAKE_DLL_RULES@ -+ -+@DEPENDENCIES@ # everything below this line is overwritten by make depend diff --git a/dlls/winepulse.drv/pulse.c b/dlls/winepulse.drv/pulse.c new file mode 100644 index 0000000..9dd1f80 From e2b7c35b40101c5a885a9aa40a1c22be2ffc4293 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 10 May 2010 17:04:22 +0000 Subject: [PATCH 135/715] - upgrade --- .cvsignore | 2 +- sources | 2 +- wine-const.patch | 20 ++ wine-gecko.patch | 127 +++++++++ wine-rpath.patch | 18 +- wine-x86_64-prefix.patch | 26 -- wine.spec | 251 +++++++++++++++--- winepulse-0.35-configure.ac.patch | 19 +- ...ecfg.patch => winepulse-0.36-winecfg.patch | 14 +- winepulse-0.35.patch => winepulse-0.36.patch | 6 +- 10 files changed, 387 insertions(+), 98 deletions(-) create mode 100644 wine-const.patch create mode 100644 wine-gecko.patch delete mode 100644 wine-x86_64-prefix.patch rename winepulse-0.34-winecfg.patch => winepulse-0.36-winecfg.patch (98%) rename winepulse-0.35.patch => winepulse-0.36.patch (99%) diff --git a/.cvsignore b/.cvsignore index 1f0c866..fdee59a 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-1.1.38-fe.tar.bz2 +wine-1.1.44.tar.bz2 diff --git a/sources b/sources index 2286e73..230abeb 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -fdf4b8573b77da73b683e97128ee4150 wine-1.1.38-fe.tar.bz2 +f18649bd71b9099fecad22436d239cba wine-1.1.44.tar.bz2 diff --git a/wine-const.patch b/wine-const.patch new file mode 100644 index 0000000..fe8ab34 --- /dev/null +++ b/wine-const.patch @@ -0,0 +1,20 @@ +--- dlls/winhttp/net.c.old 2010-04-04 18:11:01.266148279 +0300 ++++ dlls/winhttp/net.c 2010-04-04 18:12:52.235163141 +0300 +@@ -91,7 +91,7 @@ + static void *libssl_handle; + static void *libcrypto_handle; + +-static SSL_METHOD *method; ++static const SSL_METHOD *method; + static SSL_CTX *ctx; + static int hostname_idx; + static int error_idx; +@@ -113,7 +113,7 @@ + static void *OpenSSL_ssl_handle; + static void *OpenSSL_crypto_handle; + +-static SSL_METHOD *meth; ++const static SSL_METHOD *meth; + static SSL_CTX *ctx; + static int hostname_idx; + static int error_idx; diff --git a/wine-gecko.patch b/wine-gecko.patch new file mode 100644 index 0000000..93ea904 --- /dev/null +++ b/wine-gecko.patch @@ -0,0 +1,127 @@ +--- dlls/mshtml/install.c.orig 2010-03-28 23:48:50.000000000 +0200 ++++ dlls/mshtml/install.c 2010-03-29 20:43:54.000000000 +0200 +@@ -284,6 +284,103 @@ + return ret; + } + ++static BOOL install_from_fedora_mingw32_wine_gecko(void) { ++ const char *data_dir, *subdir; ++ BOOL res; ++ ++ LPWSTR dos_dir_name; ++ LPSTR dos_dir_name_a; ++ static WCHAR *(*wine_get_dos_file_name)(const char*); ++ static const WCHAR kernel32W[] = {'k','e','r','n','e','l','3','2','.','d','l','l',0}; ++ ++ char install_dir[MAX_PATH]; ++ char gecko_dir[MAX_PATH]; ++ ++ SHFILEOPSTRUCTA sf; ++ ++ TRACE("()\n"); ++ ++ if((data_dir = wine_get_data_dir())) ++ subdir = "/gecko/"; ++ else if((data_dir = wine_get_build_dir())) ++ subdir = "/../gecko/"; ++ else ++ return FALSE; ++ ++ TRACE("data_dir=%s\n",data_dir); ++ TRACE("subdir=%s\n",subdir); ++ ++ memcpy(gecko_dir, data_dir, MAX_PATH); ++ strncat(gecko_dir, subdir, MAX_PATH-strlen(gecko_dir)); ++ strncat(gecko_dir, GECKO_VERSION, MAX_PATH-strlen(gecko_dir)); ++ strncat(gecko_dir, "/", MAX_PATH-strlen(gecko_dir)); ++ ++ if(!wine_get_dos_file_name) ++ wine_get_dos_file_name = (void*)GetProcAddress(GetModuleHandleW(kernel32W), "wine_get_dos_file_name"); ++ ++ if(wine_get_dos_file_name) { /* Wine UNIX mode */ ++ dos_dir_name = wine_get_dos_file_name(gecko_dir); ++ if(!dos_dir_name) { ++ ERR("Could not get dos file name of %s\n", debugstr_a(gecko_dir)); ++ return FALSE; ++ } ++ } else { ++ return FALSE; ++ } ++ ++ TRACE("gecko_dir=%s\n", debugstr_a(gecko_dir)); ++ TRACE("dos_dir_name=%s\n", debugstr_w(dos_dir_name)); ++ ++ ++ if(GetFileAttributesW(dos_dir_name) == INVALID_FILE_ATTRIBUTES) { ++ TRACE("mingw32-wine-gecko package not installed\n"); ++ return FALSE; ++ } ++ ++ GetSystemDirectoryA(install_dir, sizeof(install_dir)); ++ strncat(install_dir, "\\gecko\\",MAX_PATH-strlen(install_dir)); ++ res = CreateDirectoryA(install_dir, NULL); ++ if(!res && GetLastError() != ERROR_ALREADY_EXISTS) { ++ ERR("Could not create directory: %08u\n", GetLastError()); ++ return FALSE; ++ } ++ ++ strncat(install_dir, GECKO_VERSION, MAX_PATH-strlen(install_dir)); ++ res = CreateDirectoryA(install_dir, NULL); ++ if(!res && GetLastError() != ERROR_ALREADY_EXISTS) { ++ ERR("Could not create directory: %08u\n", GetLastError()); ++ return FALSE; ++ } ++ ++ TRACE("install_dir=%s\n",debugstr_a(install_dir)); ++ ++ dos_dir_name_a = heap_strdupWtoA(dos_dir_name); ++ ++ lstrcatA(dos_dir_name_a,"*.*"); ++ TRACE("dos_dir_name_a=%s\n",debugstr_a(dos_dir_name_a)); ++ ++ memset(&sf,0,sizeof(sf)); ++ sf.hwnd = 0; ++ sf.wFunc = FO_COPY; ++ sf.pFrom = dos_dir_name_a; ++ sf.pTo = install_dir; ++ sf.fFlags = FOF_NOCONFIRMATION, FOF_NOCONFIRMMKDIR | FOF_NOERRORUI | FOF_SILENT; ++ res = SHFileOperationA(&sf); ++ ++ heap_free(dos_dir_name_a); ++ ++ if(res != 0) { ++ ERR("Could not copy files: %08u\n", GetLastError()); ++ return FALSE; ++ } ++ ++ set_registry(install_dir); ++ ++ clean_up(); ++ ++ return TRUE; ++} ++ + static HRESULT WINAPI InstallCallback_QueryInterface(IBindStatusCallback *iface, + REFIID riid, void **ppv) + { +@@ -541,7 +638,8 @@ + * - $datadir/gecko + * - download from URL stored in GeckoUrl value of HKCU/Software/MSHTML key + */ +- if(!install_from_registered_dir() ++ if ( !install_from_fedora_mingw32_wine_gecko() ++ && !install_from_registered_dir() + && !install_from_default_dir() + && !silent && (url = get_url())) + DialogBoxW(hInst, MAKEINTRESOURCEW(ID_DWL_DIALOG), 0, installer_proc); +--- dlls/mshtml/Makefile.in.orig 2010-03-29 15:13:47.000000000 +0200 ++++ dlls/mshtml/Makefile.in 2010-03-29 15:49:55.000000000 +0200 +@@ -4,7 +4,7 @@ + VPATH = @srcdir@ + MODULE = mshtml.dll + IMPORTLIB = mshtml +-IMPORTS = strmiids uuid urlmon shlwapi ole32 oleaut32 user32 gdi32 advapi32 kernel32 ++IMPORTS = strmiids uuid urlmon shlwapi ole32 oleaut32 user32 gdi32 advapi32 kernel32 shell32 + EXTRADEFS = -DCOM_NO_WINDOWS_H + DELAYIMPORTS = wininet + diff --git a/wine-rpath.patch b/wine-rpath.patch index f8f6585..3a66716 100644 --- a/wine-rpath.patch +++ b/wine-rpath.patch @@ -1,6 +1,6 @@ ---- configure.orig 2009-10-29 18:57:06.000000000 +0100 -+++ configure 2009-10-29 18:58:49.000000000 +0100 -@@ -6758,14 +6758,14 @@ +--- configure.old 2010-04-02 20:43:45.000000000 +0300 ++++ configure 2010-04-03 23:26:57.365947610 +0300 +@@ -6727,14 +6727,14 @@ fi @@ -9,7 +9,7 @@ -$as_echo_n "checking whether the compiler supports -fPIC -Wl,--rpath,\$ORIGIN/../lib... " >&6; } + as_ac_var=`$as_echo "ac_cv_cflags_-fPIC" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -fPIC" >&5 -+$as_echo_n "checking whether the compiler supports -fPIC " >&6; } ++$as_echo_n "checking whether the compiler supports -fPIC" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else @@ -18,22 +18,22 @@ +CFLAGS="$CFLAGS -fPIC" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - int main(int argc, char *argv) { return 0; } -@@ -6783,17 +6783,17 @@ + int main(int argc, char **argv) { return 0; } +@@ -6752,17 +6752,17 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if test `eval 'as_val=${'$as_ac_var'};$as_echo "$as_val"'` = yes; then : - LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`" - LDRPATH_LOCAL="-Wl,--rpath,\\\$\$ORIGIN/\$(TOPOBJDIR)/libs/wine" + LDRPATH_INSTALL="" -+ LDRPATH_LOCAL="" ++ LDRPATH_LOCAL="" else - as_ac_var=`$as_echo "ac_cv_cflags_-fPIC -Wl,-R,\\$ORIGIN/../lib" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -fPIC -Wl,-R,\$ORIGIN/../lib" >&5 -$as_echo_n "checking whether the compiler supports -fPIC -Wl,-R,\$ORIGIN/../lib... " >&6; } + as_ac_var=`$as_echo "ac_cv_cflags_-fPIC" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -fPIC" >&5 -+$as_echo_n "checking whether the compiler supports -fPIC " >&6; } ++$as_echo_n "checking whether the compiler supports -fPIC" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else @@ -42,4 +42,4 @@ +CFLAGS="$CFLAGS -fPIC" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - int main(int argc, char *argv) { return 0; } + int main(int argc, char **argv) { return 0; } diff --git a/wine-x86_64-prefix.patch b/wine-x86_64-prefix.patch deleted file mode 100644 index 7f3e3ff..0000000 --- a/wine-x86_64-prefix.patch +++ /dev/null @@ -1,26 +0,0 @@ ---- libs/wine/config.c.orig 2009-11-26 23:36:37.000000000 +0100 -+++ libs/wine/config.c 2009-11-26 23:37:36.000000000 +0100 -@@ -35,9 +35,9 @@ - #endif - #include "wine/library.h" - --static const char server_config_dir[] = "/.wine"; /* config dir relative to $HOME */ --static const char server_root_prefix[] = "/tmp/.wine-"; /* prefix for server root dir */ --static const char server_dir_prefix[] = "/server-"; /* prefix for server dir */ -+static const char server_config_dir[] = "/.wine-x86_64"; /* config dir relative to $HOME */ -+static const char server_root_prefix[] = "/tmp/.wine-x86_64-"; /* prefix for server root dir */ -+static const char server_dir_prefix[] = "/server-x86_64-"; /* prefix for server dir */ - - static char *bindir; - static char *dlldir; ---- dlls/ntdll/server.c.orig 2010-01-18 23:06:56.000000000 +0100 -+++ dlls/ntdll/server.c 2010-01-18 23:07:27.000000000 +0100 -@@ -698,7 +698,7 @@ - { - static int started; /* we only try once */ - char *argv[3]; -- static char wineserver[] = "server/wineserver"; -+ static char wineserver[] = "server/wineserver64"; - static char debug[] = "-d"; - - if (!started) diff --git a/wine.spec b/wine.spec index d206c63..b26d60a 100644 --- a/wine.spec +++ b/wine.spec @@ -1,18 +1,13 @@ %define no64bit 0 Name: wine -Version: 1.1.40 +Version: 1.1.44 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -# special fedora tarball without winemp3 -# It can be obtained by running rm -fr dlls/winemp3.acm in the winetree -# and removing the references from configure, configure.ac, Makefile.in, -# and programs/winecfg/libraries.c wrt. winemp3. - -Source0: %{name}-%{version}-fe.tar.bz2 +Source0: http://ibiblio.org/pub/linux/system/emulators/wine/%{name}-%{version}.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -37,22 +32,22 @@ Source201: wine.directory # mime types Source300: wine-mime-msi.desktop +Patch1: wine-rpath.patch + # explain how to use wine with pulseaudio # see http://bugs.winehq.org/show_bug.cgi?id=10495 # and http://art.ified.ca/?page_id=40 -Patch400: http://art.ified.ca/downloads/winepulse-0.35-configure.ac.patch -Patch401: http://art.ified.ca/downloads/winepulse-0.35.patch -Patch402: http://art.ified.ca/downloads/winepulse/winepulse-0.34-winecfg.patch +# rebased for .42 see #580073 +Patch400: winepulse-0.35-configure.ac.patch +Patch401: http://art.ified.ca/downloads/winepulse/winepulse-0.36.patch +Patch402: http://art.ified.ca/downloads/winepulse/winepulse-0.36-winecfg.patch Source402: README-FEDORA-PULSEAUDIO -Patch1: wine-rpath.patch -# upstream bugs -# currently non -# bugfix patches -# #533806 -Patch600: wine-x86_64-prefix.patch +# enhancements +# add wine-gecko support +Patch1000: wine-gecko.patch Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -108,11 +103,15 @@ BuildRequires: gnutls-devel BuildRequires: pulseaudio-libs-devel BuildRequires: gsm-devel BuildRequires: openal-soft-devel +BuildRequires: libv4l-devel +BuildRequires: fontpackages-devel # noarch Requires: wine-common = %{version}-%{release} Requires: wine-desktop = %{version}-%{release} -# 32bit +Requires: wine-fonts = %{version}-%{release} + +# 32bit parts Requires: wine-core(x86-32) = %{version}-%{release} Requires: wine-capi(x86-32) = %{version}-%{release} Requires: wine-cms(x86-32) = %{version}-%{release} @@ -127,6 +126,13 @@ Requires: wine-cms(x86-64) = %{version}-%{release} Requires: wine-ldap(x86-64) = %{version}-%{release} Requires: wine-twain(x86-64) = %{version}-%{release} Requires: wine-pulseaudio(x86-64) = %{version}-%{release} +Requires: wine-wow(x86-64) = %{version}-%{release} +Conflicts: wine-wow(x86-32) = %{version}-%{release} +%endif + +# 32bit only parts +%ifarch %{ix86} +Requires: wine-wow = %{version}-%{release} %endif %description @@ -144,7 +150,6 @@ wine-* sub packages. %package core Summary: Wine core package Group: Applications/Emulators -Requires: wine-fonts = %{version}-%{release} Requires(post): /sbin/ldconfig Requires(postun): /sbin/ldconfig Obsoletes: wine <= 0.9.15-1%{?dist} @@ -166,9 +171,18 @@ Requires: freetype(x86-64) Requires: gnutls(x86-64) %endif + %description core Wine core package includes the basic wine stuff needed by all other packages. +%package wow +Summary: Files for wine wow seperation +Group: Applications/Emulators +Requires: wine-core = %{version}-%{release} + +%description wow +%{summary} + %package desktop Summary: Desktop integration features for wine Group: Applications/Emulators @@ -188,10 +202,84 @@ handler service. Summary: Wine font files Group: Applications/Emulators BuildArch: noarch +Requires: wine-courier-fonts = %{version}-%{release} +Requires: wine-small-fonts = %{version}-%{release} +Requires: wine-system-fonts = %{version}-%{release} +Requires: wine-marlett-fonts = %{version}-%{release} +#Requires: wine-ms-sans-serif-fonts = %{version}-%{release} +#Requires: wine-tahoma-fonts = %{version}-%{release} +Requires: wine-symbol-fonts = %{version}-%{release} %description fonts %{summary} +%package courier-fonts +Summary: Wine Courier font family +Group: User Interface/X +BuildArch: noarch +Requires: fontpackages-filesystem + +%description courier-fonts +%{summary} + +%package small-fonts +Summary: Wine Small font family +Group: User Interface/X +BuildArch: noarch +Requires: fontpackages-filesystem + +%description small-fonts +%{summary} + +%package system-fonts +Summary: Wine System font family +Group: User Interface/X +BuildArch: noarch +Requires: fontpackages-filesystem + +%description system-fonts +%{summary} + + +%package marlett-fonts +Summary: Wine Marlett font family +Group: User Interface/X +BuildArch: noarch +Requires: fontpackages-filesystem + +%description marlett-fonts +%{summary} + + +#%package ms-sans-serif-fonts +#Summary: Wine MS Sans Serif font family +#Group: User Interface/X +#BuildArch: noarch +#Requires: fontpackages-filesystem + +#%description ms-sans-serif-fonts +#%{summary} + + +#%package tahoma-fonts +#Summary: Wine Tahoma font family +#Group: User Interface/X +#BuildArch: noarch +#Requires: fontpackages-filesystem + +#%description tahoma-fonts +#%{summary} + + +%package symbol-fonts +Summary: Wine Symbol font family +Group: User Interface/X +BuildArch: noarch +Requires: fontpackages-filesystem + +%description symbol-fonts +%{summary} + %package common Summary: Common files Group: Applications/Emulators @@ -307,21 +395,19 @@ This package adds an openal driver for wine. %prep -%setup -q -n %{name}-%{version}-fe +%setup -q %patch1 -%patch400 -p1 +%patch400 %patch401 -p1 %patch402 -p1 -%ifarch x86_64 -%patch600 -%endif +%patch1000 autoreconf %build -export CFLAGS="$RPM_OPT_FLAGS" +export CFLAGS="$RPM_OPT_FLAGS -Wno-error" %configure \ --sysconfdir=%{_sysconfdir}/wine \ --x-includes=%{_includedir} --x-libraries=%{_libdir} \ @@ -350,12 +436,8 @@ rm -rf %{buildroot} %ifarch %{ix86} # rename wine to wine32 mv %{buildroot}%{_bindir}/wine{,32} -%endif - -# if x86_64 rename to wine64 -%ifarch x86_64 -mv %{buildroot}%{_bindir}/wine{,64} -mv %{buildroot}%{_bindir}/wineserver{,64} +# create link to wine32 if ix86 +ln -s %{_bindir}/wine32 %{buildroot}%{_bindir}/wine %endif mkdir -p %{buildroot}%{_sysconfdir}/wine @@ -449,11 +531,34 @@ install -p -m644 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d/ install -p -m644 %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d/ %endif -install -p -m755 %{SOURCE6} $RPM_BUILD_ROOT%{_bindir}/wine - # deploy pulseaudio readme cp %{SOURCE402} . +# install fonts +install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-courier-fonts +mv %{buildroot}/%{_datadir}/wine/fonts/cou* %{buildroot}/%{_datadir}/fonts/wine-courier-fonts/ + +install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-system-fonts +mv %{buildroot}/%{_datadir}/wine/fonts/*sys.* %{buildroot}/%{_datadir}/fonts/wine-system-fonts/ + +install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-small-fonts +mv %{buildroot}/%{_datadir}/wine/fonts/sma* %{buildroot}/%{_datadir}/fonts/wine-small-fonts/ + +install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-marlett-fonts +mv %{buildroot}/%{_datadir}/wine/fonts/marlett.ttf %{buildroot}/%{_datadir}/fonts/wine-marlett-fonts/ + +#install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-ms-sans-serif-fonts +#mv %{buildroot}/%{_datadir}/wine/fonts/sse* %{buildroot}/%{_datadir}/fonts/wine-ms-sans-serif-fonts/ +rm -f %{buildroot}/%{_datadir}/wine/fonts/sse* + +#install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-tahoma-fonts +#mv %{buildroot}/%{_datadir}/wine/fonts/tahoma* %{buildroot}/%{_datadir}/fonts/wine-tahoma-fonts/ +rm -f %{buildroot}/%{_datadir}/wine/fonts/tahoma* + +install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-symbol-fonts +mv %{buildroot}/%{_datadir}/wine/fonts/symbol.ttf %{buildroot}/%{_datadir}/fonts/wine-symbol-fonts/ + + %clean rm -rf %{buildroot} @@ -543,21 +648,22 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/write.exe.so %{_libdir}/wine/dxdiag.exe.so +%{_bindir}/wine + %ifarch %{ix86} %{_bindir}/wine32 %{_bindir}/wine-preloader -%{_bindir}/wineserver %{_sysconfdir}/ld.so.conf.d/wine-32.conf %endif + %ifarch x86_64 -%{_bindir}/wine64 -%{_bindir}/wineserver64 %{_sysconfdir}/ld.so.conf.d/wine-64.conf %endif %dir %{_libdir}/wine %dir %{_libdir}/wine/fakedlls %{_libdir}/wine/fakedlls/* +%{_libdir}/wine/attrib.exe.so %{_libdir}/wine/cacls.exe.so %{_libdir}/wine/expand.exe.so %{_libdir}/wine/extrac32.exe.so @@ -565,8 +671,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/mshta.exe.so %{_libdir}/wine/msiexec.exe.so %{_libdir}/wine/net.exe.so +%{_libdir}/wine/ngen.exe.so %{_libdir}/wine/ntoskrnl.exe.so %{_libdir}/wine/oleview.exe.so +%{_libdir}/wine/ping.exe.so %{_libdir}/wine/reg.exe.so %{_libdir}/wine/regedit.exe.so %{_libdir}/wine/regsvr32.exe.so @@ -576,7 +684,6 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/services.exe.so %{_libdir}/wine/start.exe.so %{_libdir}/wine/termsv.exe.so -%{_libdir}/wine/wineboot.exe.so %{_libdir}/wine/winebrowser.exe.so %{_libdir}/wine/wineconsole.exe.so %{_libdir}/wine/winemenubuilder.exe.so @@ -630,6 +737,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/devenum.dll.so %{_libdir}/wine/dinput.dll.so %{_libdir}/wine/dinput8.dll.so +%{_libdir}/wine/dispex.dll.so %{_libdir}/wine/dmband.dll.so %{_libdir}/wine/dmcompos.dll.so %{_libdir}/wine/dmime.dll.so @@ -729,7 +837,11 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/msrle32.dll.so %{_libdir}/wine/mstask.dll.so %{_libdir}/wine/msvcirt.dll.so +%{_libdir}/wine/msvcr70.dll.so %{_libdir}/wine/msvcr71.dll.so +%{_libdir}/wine/msvcr80.dll.so +%{_libdir}/wine/msvcr90.dll.so +%{_libdir}/wine/msvcr100.dll.so %{_libdir}/wine/msvcrt.dll.so %{_libdir}/wine/msvcrt20.dll.so %{_libdir}/wine/msvcrt40.dll.so @@ -779,6 +891,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/rsabase.dll.so %{_libdir}/wine/rsaenh.dll.so %{_libdir}/wine/rtutils.dll.so +%{_libdir}/wine/sc.exe.so %{_libdir}/wine/sccbase.dll.so %{_libdir}/wine/schannel.dll.so %{_libdir}/wine/secur32.dll.so @@ -810,6 +923,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/updspapi.dll.so %{_libdir}/wine/url.dll.so %{_libdir}/wine/urlmon.dll.so +%{_libdir}/wine/usbd.sys.so %{_libdir}/wine/user32.dll.so %{_libdir}/wine/usp10.dll.so %{_libdir}/wine/uxtheme.dll.so @@ -922,12 +1036,15 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/winsock.dll16.so %{_libdir}/wine/wintab.dll16.so %{_libdir}/wine/wow32.dll.so -#%{_libdir}/wine/wprocs.dll16.so %endif +%files wow +%defattr(-,root,root,-) +%{_bindir}/wineserver +%{_libdir}/wine/wineboot.exe.so + %files common %defattr(-,root,root,-) -%{_bindir}/wineprefixcreate %{_bindir}/notepad %{_bindir}/winedbg %{_bindir}/winefile @@ -937,22 +1054,49 @@ update-desktop-database &>/dev/null || : %{_bindir}/msiexec %{_bindir}/regedit %{_bindir}/regsvr32 -%{_bindir}/wine %{_bindir}/wineboot %{_bindir}/wineconsole %{_bindir}/winecfg %dir %{_datadir}/wine %{_mandir}/man1/wine.1.gz %{_mandir}/man1/wineserver.1* -%{_mandir}/man1/wineprefixcreate.1* %lang(fr) %{_mandir}/fr.UTF-8/man1/* +%lang(de) %{_mandir}/de.UTF-8/man1/* %{_datadir}/wine/generic.ppd %{_datadir}/wine/wine.inf +%{_datadir}/wine/l_intl.nls %files fonts %defattr(-,root,root,-) %{_datadir}/wine/fonts +%files courier-fonts +%defattr(-,root,root,-) +%{_datadir}/fonts/wine-courier-fonts + +%files system-fonts +%defattr(-,root,root,-) +%{_datadir}/fonts/wine-system-fonts + +%files small-fonts +%defattr(-,root,root,-) +%{_datadir}/fonts/wine-small-fonts + +%files marlett-fonts +%defattr(-,root,root,-) +%{_datadir}/fonts/wine-marlett-fonts + +#%files ms-sans-serif-fonts +#%defattr(-,root,root,-) +#%{_datadir}/fonts/wine-ms-sans-serif-fonts + +#%files tahoma-fonts +#%defattr(-,root,root,-) +#%{_datadir}/fonts/wine-tahoma-fonts + +%files symbol-fonts +%defattr(-,root,root,-) +%{_datadir}/fonts/wine-symbol-fonts %files desktop %defattr(-,root,root,-) @@ -1055,6 +1199,33 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/openal32.dll.so %changelog +* Sun May 09 2010 Andreas Bierfert +- 1.1.44-1 +- version upgrade (#580024) + +* Sun Apr 18 2010 Andreas Bierfert +- 1.1.43-1 +- version upgrade + +* Sun Apr 11 2010 Andreas Bierfert +- 1.1.42-1 +- version upgrade +- rework for wow64 + +* Mon Mar 29 2010 Andreas Bierfert +- 1.1.41-3 +- add support for mingw32-wine-gecko + +* Sun Mar 28 2010 Andreas Bierfert +- 1.1.41-2 +- convert to font package guidelines +- add libv4l-devel BR + +* Sun Mar 28 2010 Andreas Bierfert +- 1.1.41-1 +- version upgrade (#577587, #576607) +- winepulse upgrade (0.36) + * Sat Mar 06 2010 Andreas Bierfert - 1.1.40-1 - version upgrade diff --git a/winepulse-0.35-configure.ac.patch b/winepulse-0.35-configure.ac.patch index 0d4235b..9d5132d 100644 --- a/winepulse-0.35-configure.ac.patch +++ b/winepulse-0.35-configure.ac.patch @@ -1,16 +1,14 @@ -diff --git a/configure.ac b/configure.ac -index f823045..583f9c1 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -64,6 +64,7 @@ AC_ARG_WITH(png, AS_HELP_STRING([--without-png],[do not use PNG]), +--- configure.ac.orig 2010-05-10 16:39:57.000000000 +0200 ++++ configure.ac 2010-05-10 16:42:54.000000000 +0200 +@@ -68,6 +68,7 @@ [if test "x$withval" = "xno"; then ac_cv_header_png_h=no; fi]) AC_ARG_WITH(pthread, AS_HELP_STRING([--without-pthread],[do not use the pthread library]), [if test "x$withval" = "xno"; then ac_cv_header_pthread_h=no; fi]) +AC_ARG_WITH(pulse, AC_HELP_STRING([--without-pulse],[do not use PulseAudio sound support])) AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)])) - AC_ARG_WITH(v4l, AS_HELP_STRING([--without-v4l],[do not use v4l1 (v4l support)])) - AC_ARG_WITH(xcomposite,AS_HELP_STRING([--without-xcomposite],[do not use the Xcomposite extension]), -@@ -1308,6 +1309,30 @@ then + AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF]), + [if test "x$withval" = "xno"; then ac_cv_header_tiffio_h=no; fi]) +@@ -1361,6 +1362,31 @@ CFLAGS="$save_CFLAGS" fi @@ -37,11 +35,12 @@ index f823045..583f9c1 100644 +fi +WINE_WARNING_WITH(pulse, [test "$ac_cv_lib_pulse_pa_stream_is_corked" != "yes"], + [libpulse ${notice_platform}development files not found or too old, Pulse won't be supported.]) ++ + dnl **** Check for ALSA 1.x **** AC_SUBST(ALSALIBS,"") if test "$ac_cv_header_sys_asoundlib_h" = "yes" -o "$ac_cv_header_alsa_asoundlib_h" = "yes" -@@ -1460,7 +1485,7 @@ dnl **** Check for libodbc **** +@@ -1528,7 +1554,7 @@ WINE_CHECK_SONAME(odbc,SQLConnect,,[AC_DEFINE_UNQUOTED(SONAME_LIBODBC,["libodbc.$LIBEXT"])]) dnl **** Check for any sound system **** @@ -50,7 +49,7 @@ index f823045..583f9c1 100644 "$ac_cv_header_sys_soundcard_h" != "yes" -a \ "$ac_cv_header_machine_soundcard_h" != "yes" -a \ "$ac_cv_header_soundcard_h" != "yes" -a \ -@@ -2555,6 +2580,7 @@ WINE_CONFIG_DLL(winenas.drv) +@@ -2621,6 +2647,7 @@ WINE_CONFIG_DLL(wineoss.drv) WINE_CONFIG_DLL(wineps.drv) WINE_CONFIG_DLL(wineps16.drv16,enable_win16) diff --git a/winepulse-0.34-winecfg.patch b/winepulse-0.36-winecfg.patch similarity index 98% rename from winepulse-0.34-winecfg.patch rename to winepulse-0.36-winecfg.patch index 5635a97..f73525a 100644 --- a/winepulse-0.34-winecfg.patch +++ b/winepulse-0.36-winecfg.patch @@ -287,22 +287,22 @@ index 9f8a0a2..59837ef 100644 {IDS_DRIVER_OSS, "oss"}, {IDS_DRIVER_COREAUDIO, "coreaudio"}, diff --git a/programs/winecfg/libraries.c b/programs/winecfg/libraries.c -index 37cc12b..7c13fad 100644 +index 19504d6..b5c84eb 100644 --- a/programs/winecfg/libraries.c +++ b/programs/winecfg/libraries.c -@@ -81,6 +81,7 @@ static const char * const builtin_only[] = - "wineoss.drv", +@@ -73,6 +73,7 @@ static const char * const builtin_only[] = + "winedos", + "winemp3.acm", "wineps", - "wineps.drv", + "winepulse.drv", - "winex11.drv", "winmm", "wintab32", + "wnaspi32", diff --git a/programs/winecfg/resource.h b/programs/winecfg/resource.h -index f006861..57b2a15 100644 +index 15c905b..67616fb 100644 --- a/programs/winecfg/resource.h +++ b/programs/winecfg/resource.h -@@ -187,7 +187,7 @@ +@@ -188,7 +188,7 @@ #define IDS_ACCEL_BASIC 8302 #define IDS_ACCEL_EMULATION 8303 #define IDS_DRIVER_ALSA 8304 diff --git a/winepulse-0.35.patch b/winepulse-0.36.patch similarity index 99% rename from winepulse-0.35.patch rename to winepulse-0.36.patch index 9b809f2..7ea2ef1 100644 --- a/winepulse-0.35.patch +++ b/winepulse-0.36.patch @@ -1,9 +1,9 @@ diff --git a/dlls/winepulse.drv/Makefile.in b/dlls/winepulse.drv/Makefile.in new file mode 100644 -index 0000000..80a751d +index 0000000..ed48381 --- /dev/null +++ b/dlls/winepulse.drv/Makefile.in -@@ -0,0 +1,16 @@ +@@ -0,0 +1,14 @@ +TOPSRCDIR = @top_srcdir@ +TOPOBJDIR = ../.. +SRCDIR = @srcdir@ @@ -18,8 +18,6 @@ index 0000000..80a751d + pulse.c + +@MAKE_DLL_RULES@ -+ -+@DEPENDENCIES@ # everything below this line is overwritten by make depend diff --git a/dlls/winepulse.drv/pulse.c b/dlls/winepulse.drv/pulse.c new file mode 100644 index 0000000..9dd1f80 From deec708c9773ecc18cf952b4b016a4c3e183269a Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 10 May 2010 20:32:43 +0000 Subject: [PATCH 136/715] - add missing patches --- wine-const.patch | 20 ++++++++ wine-gecko.patch | 127 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 147 insertions(+) create mode 100644 wine-const.patch create mode 100644 wine-gecko.patch diff --git a/wine-const.patch b/wine-const.patch new file mode 100644 index 0000000..fe8ab34 --- /dev/null +++ b/wine-const.patch @@ -0,0 +1,20 @@ +--- dlls/winhttp/net.c.old 2010-04-04 18:11:01.266148279 +0300 ++++ dlls/winhttp/net.c 2010-04-04 18:12:52.235163141 +0300 +@@ -91,7 +91,7 @@ + static void *libssl_handle; + static void *libcrypto_handle; + +-static SSL_METHOD *method; ++static const SSL_METHOD *method; + static SSL_CTX *ctx; + static int hostname_idx; + static int error_idx; +@@ -113,7 +113,7 @@ + static void *OpenSSL_ssl_handle; + static void *OpenSSL_crypto_handle; + +-static SSL_METHOD *meth; ++const static SSL_METHOD *meth; + static SSL_CTX *ctx; + static int hostname_idx; + static int error_idx; diff --git a/wine-gecko.patch b/wine-gecko.patch new file mode 100644 index 0000000..93ea904 --- /dev/null +++ b/wine-gecko.patch @@ -0,0 +1,127 @@ +--- dlls/mshtml/install.c.orig 2010-03-28 23:48:50.000000000 +0200 ++++ dlls/mshtml/install.c 2010-03-29 20:43:54.000000000 +0200 +@@ -284,6 +284,103 @@ + return ret; + } + ++static BOOL install_from_fedora_mingw32_wine_gecko(void) { ++ const char *data_dir, *subdir; ++ BOOL res; ++ ++ LPWSTR dos_dir_name; ++ LPSTR dos_dir_name_a; ++ static WCHAR *(*wine_get_dos_file_name)(const char*); ++ static const WCHAR kernel32W[] = {'k','e','r','n','e','l','3','2','.','d','l','l',0}; ++ ++ char install_dir[MAX_PATH]; ++ char gecko_dir[MAX_PATH]; ++ ++ SHFILEOPSTRUCTA sf; ++ ++ TRACE("()\n"); ++ ++ if((data_dir = wine_get_data_dir())) ++ subdir = "/gecko/"; ++ else if((data_dir = wine_get_build_dir())) ++ subdir = "/../gecko/"; ++ else ++ return FALSE; ++ ++ TRACE("data_dir=%s\n",data_dir); ++ TRACE("subdir=%s\n",subdir); ++ ++ memcpy(gecko_dir, data_dir, MAX_PATH); ++ strncat(gecko_dir, subdir, MAX_PATH-strlen(gecko_dir)); ++ strncat(gecko_dir, GECKO_VERSION, MAX_PATH-strlen(gecko_dir)); ++ strncat(gecko_dir, "/", MAX_PATH-strlen(gecko_dir)); ++ ++ if(!wine_get_dos_file_name) ++ wine_get_dos_file_name = (void*)GetProcAddress(GetModuleHandleW(kernel32W), "wine_get_dos_file_name"); ++ ++ if(wine_get_dos_file_name) { /* Wine UNIX mode */ ++ dos_dir_name = wine_get_dos_file_name(gecko_dir); ++ if(!dos_dir_name) { ++ ERR("Could not get dos file name of %s\n", debugstr_a(gecko_dir)); ++ return FALSE; ++ } ++ } else { ++ return FALSE; ++ } ++ ++ TRACE("gecko_dir=%s\n", debugstr_a(gecko_dir)); ++ TRACE("dos_dir_name=%s\n", debugstr_w(dos_dir_name)); ++ ++ ++ if(GetFileAttributesW(dos_dir_name) == INVALID_FILE_ATTRIBUTES) { ++ TRACE("mingw32-wine-gecko package not installed\n"); ++ return FALSE; ++ } ++ ++ GetSystemDirectoryA(install_dir, sizeof(install_dir)); ++ strncat(install_dir, "\\gecko\\",MAX_PATH-strlen(install_dir)); ++ res = CreateDirectoryA(install_dir, NULL); ++ if(!res && GetLastError() != ERROR_ALREADY_EXISTS) { ++ ERR("Could not create directory: %08u\n", GetLastError()); ++ return FALSE; ++ } ++ ++ strncat(install_dir, GECKO_VERSION, MAX_PATH-strlen(install_dir)); ++ res = CreateDirectoryA(install_dir, NULL); ++ if(!res && GetLastError() != ERROR_ALREADY_EXISTS) { ++ ERR("Could not create directory: %08u\n", GetLastError()); ++ return FALSE; ++ } ++ ++ TRACE("install_dir=%s\n",debugstr_a(install_dir)); ++ ++ dos_dir_name_a = heap_strdupWtoA(dos_dir_name); ++ ++ lstrcatA(dos_dir_name_a,"*.*"); ++ TRACE("dos_dir_name_a=%s\n",debugstr_a(dos_dir_name_a)); ++ ++ memset(&sf,0,sizeof(sf)); ++ sf.hwnd = 0; ++ sf.wFunc = FO_COPY; ++ sf.pFrom = dos_dir_name_a; ++ sf.pTo = install_dir; ++ sf.fFlags = FOF_NOCONFIRMATION, FOF_NOCONFIRMMKDIR | FOF_NOERRORUI | FOF_SILENT; ++ res = SHFileOperationA(&sf); ++ ++ heap_free(dos_dir_name_a); ++ ++ if(res != 0) { ++ ERR("Could not copy files: %08u\n", GetLastError()); ++ return FALSE; ++ } ++ ++ set_registry(install_dir); ++ ++ clean_up(); ++ ++ return TRUE; ++} ++ + static HRESULT WINAPI InstallCallback_QueryInterface(IBindStatusCallback *iface, + REFIID riid, void **ppv) + { +@@ -541,7 +638,8 @@ + * - $datadir/gecko + * - download from URL stored in GeckoUrl value of HKCU/Software/MSHTML key + */ +- if(!install_from_registered_dir() ++ if ( !install_from_fedora_mingw32_wine_gecko() ++ && !install_from_registered_dir() + && !install_from_default_dir() + && !silent && (url = get_url())) + DialogBoxW(hInst, MAKEINTRESOURCEW(ID_DWL_DIALOG), 0, installer_proc); +--- dlls/mshtml/Makefile.in.orig 2010-03-29 15:13:47.000000000 +0200 ++++ dlls/mshtml/Makefile.in 2010-03-29 15:49:55.000000000 +0200 +@@ -4,7 +4,7 @@ + VPATH = @srcdir@ + MODULE = mshtml.dll + IMPORTLIB = mshtml +-IMPORTS = strmiids uuid urlmon shlwapi ole32 oleaut32 user32 gdi32 advapi32 kernel32 ++IMPORTS = strmiids uuid urlmon shlwapi ole32 oleaut32 user32 gdi32 advapi32 kernel32 shell32 + EXTRADEFS = -DCOM_NO_WINDOWS_H + DELAYIMPORTS = wininet + From acb392aaecb47497ecdb2765822f5ae8dcaa6e8d Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Tue, 11 May 2010 15:30:11 +0000 Subject: [PATCH 137/715] - fix man page problem --- wine.spec | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/wine.spec b/wine.spec index b26d60a..9614a8b 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %define no64bit 0 Name: wine Version: 1.1.44 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -1060,8 +1060,10 @@ update-desktop-database &>/dev/null || : %dir %{_datadir}/wine %{_mandir}/man1/wine.1.gz %{_mandir}/man1/wineserver.1* -%lang(fr) %{_mandir}/fr.UTF-8/man1/* -%lang(de) %{_mandir}/de.UTF-8/man1/* +%lang(fr) %{_mandir}/fr.UTF-8/man1/wine.1* +%lang(fr) %{_mandir}/fr.UTF-8/man1/wineserver.1* +%lang(de) %{_mandir}/de.UTF-8/man1/wine.1* +%lang(de) %{_mandir}/de.UTF-8/man1/wineserver.1* %{_datadir}/wine/generic.ppd %{_datadir}/wine/wine.inf %{_datadir}/wine/l_intl.nls @@ -1173,7 +1175,7 @@ update-desktop-database &>/dev/null || : %{_mandir}/man1/wrc.1* %{_mandir}/man1/winedbg.1* %{_mandir}/man1/wineg++.1* -%lang(de) %{_mandir}/de.UTF-8/man1/wine.1* +%lang(de) %{_mandir}/de.UTF-8/man1/winemaker.1* %attr(0755, root, root) %dir %{_includedir}/wine %{_includedir}/wine/* %{_libdir}/*.so @@ -1199,6 +1201,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/openal32.dll.so %changelog +* Tue May 11 2010 Andreas Bierfert +- 1.1.44-2 +- fix manpage conflict between -common and -devel + * Sun May 09 2010 Andreas Bierfert - 1.1.44-1 - version upgrade (#580024) From 77f02ef9eaea508c6ae01f2fd6099a9212dca806 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Tue, 11 May 2010 15:30:12 +0000 Subject: [PATCH 138/715] - fix man page problem --- wine.spec | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/wine.spec b/wine.spec index b26d60a..9614a8b 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %define no64bit 0 Name: wine Version: 1.1.44 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -1060,8 +1060,10 @@ update-desktop-database &>/dev/null || : %dir %{_datadir}/wine %{_mandir}/man1/wine.1.gz %{_mandir}/man1/wineserver.1* -%lang(fr) %{_mandir}/fr.UTF-8/man1/* -%lang(de) %{_mandir}/de.UTF-8/man1/* +%lang(fr) %{_mandir}/fr.UTF-8/man1/wine.1* +%lang(fr) %{_mandir}/fr.UTF-8/man1/wineserver.1* +%lang(de) %{_mandir}/de.UTF-8/man1/wine.1* +%lang(de) %{_mandir}/de.UTF-8/man1/wineserver.1* %{_datadir}/wine/generic.ppd %{_datadir}/wine/wine.inf %{_datadir}/wine/l_intl.nls @@ -1173,7 +1175,7 @@ update-desktop-database &>/dev/null || : %{_mandir}/man1/wrc.1* %{_mandir}/man1/winedbg.1* %{_mandir}/man1/wineg++.1* -%lang(de) %{_mandir}/de.UTF-8/man1/wine.1* +%lang(de) %{_mandir}/de.UTF-8/man1/winemaker.1* %attr(0755, root, root) %dir %{_includedir}/wine %{_includedir}/wine/* %{_libdir}/*.so @@ -1199,6 +1201,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/openal32.dll.so %changelog +* Tue May 11 2010 Andreas Bierfert +- 1.1.44-2 +- fix manpage conflict between -common and -devel + * Sun May 09 2010 Andreas Bierfert - 1.1.44-1 - version upgrade (#580024) From 5458936448390762007a1ed2f56f5304255c4202 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Wed, 12 May 2010 20:47:22 +0000 Subject: [PATCH 139/715] - fix 591690 --- wine.spec | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/wine.spec b/wine.spec index 9614a8b..880743c 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %define no64bit 0 Name: wine Version: 1.1.44 -Release: 2%{?dist} +Release: 3%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -648,7 +648,6 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/write.exe.so %{_libdir}/wine/dxdiag.exe.so -%{_bindir}/wine %ifarch %{ix86} %{_bindir}/wine32 @@ -657,6 +656,7 @@ update-desktop-database &>/dev/null || : %endif %ifarch x86_64 +%{_bindir}/wine %{_sysconfdir}/ld.so.conf.d/wine-64.conf %endif @@ -1040,6 +1040,9 @@ update-desktop-database &>/dev/null || : %files wow %defattr(-,root,root,-) +%ifarch %{ix86} +%{_bindir}/wine +%endif %{_bindir}/wineserver %{_libdir}/wine/wineboot.exe.so @@ -1201,6 +1204,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/openal32.dll.so %changelog +* Wed May 12 2010 Andreas Bierfert +- 1.1.44-3 +- move wine symlink to -wow for 32bit (#591690) + * Tue May 11 2010 Andreas Bierfert - 1.1.44-2 - fix manpage conflict between -common and -devel From 7d697810d13c7ca0b0d145badbb32bf4c0dc7927 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Wed, 12 May 2010 20:47:23 +0000 Subject: [PATCH 140/715] - fix 591690 --- wine.spec | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/wine.spec b/wine.spec index 9614a8b..880743c 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %define no64bit 0 Name: wine Version: 1.1.44 -Release: 2%{?dist} +Release: 3%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -648,7 +648,6 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/write.exe.so %{_libdir}/wine/dxdiag.exe.so -%{_bindir}/wine %ifarch %{ix86} %{_bindir}/wine32 @@ -657,6 +656,7 @@ update-desktop-database &>/dev/null || : %endif %ifarch x86_64 +%{_bindir}/wine %{_sysconfdir}/ld.so.conf.d/wine-64.conf %endif @@ -1040,6 +1040,9 @@ update-desktop-database &>/dev/null || : %files wow %defattr(-,root,root,-) +%ifarch %{ix86} +%{_bindir}/wine +%endif %{_bindir}/wineserver %{_libdir}/wine/wineboot.exe.so @@ -1201,6 +1204,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/openal32.dll.so %changelog +* Wed May 12 2010 Andreas Bierfert +- 1.1.44-3 +- move wine symlink to -wow for 32bit (#591690) + * Tue May 11 2010 Andreas Bierfert - 1.1.44-2 - fix manpage conflict between -common and -devel From 39310c956512b2892ddd6e788098cb530a6f868b Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Fri, 14 May 2010 08:29:04 +0000 Subject: [PATCH 141/715] - fix install of 32bit only wine on x86_64 via install wine.i686 --- wine.spec | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/wine.spec b/wine.spec index 880743c..617b79f 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %define no64bit 0 Name: wine Version: 1.1.44 -Release: 3%{?dist} +Release: 4%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -132,7 +132,7 @@ Conflicts: wine-wow(x86-32) = %{version}-%{release} # 32bit only parts %ifarch %{ix86} -Requires: wine-wow = %{version}-%{release} +Requires: wine-wow(x86-32) = %{version}-%{release} %endif %description @@ -178,7 +178,12 @@ Wine core package includes the basic wine stuff needed by all other packages. %package wow Summary: Files for wine wow seperation Group: Applications/Emulators -Requires: wine-core = %{version}-%{release} +%ifarch x86_64 +Requires: wine-core(x86-64) = %{version}-%{release} +%else +Requires: wine-core(x86-32) = %{version}-%{release} +%endif + %description wow %{summary} @@ -1204,6 +1209,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/openal32.dll.so %changelog +* Thu May 13 2010 Andreas Bierfert +- 1.1.44-4 +- fix install of 32bit only wine on x86_64 via install wine.i686 + * Wed May 12 2010 Andreas Bierfert - 1.1.44-3 - move wine symlink to -wow for 32bit (#591690) From 4cec93c355471cd6237dedd7eb8e2c28fab09620 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Fri, 14 May 2010 08:29:04 +0000 Subject: [PATCH 142/715] - fix install of 32bit only wine on x86_64 via install wine.i686 --- wine.spec | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/wine.spec b/wine.spec index 880743c..617b79f 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %define no64bit 0 Name: wine Version: 1.1.44 -Release: 3%{?dist} +Release: 4%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -132,7 +132,7 @@ Conflicts: wine-wow(x86-32) = %{version}-%{release} # 32bit only parts %ifarch %{ix86} -Requires: wine-wow = %{version}-%{release} +Requires: wine-wow(x86-32) = %{version}-%{release} %endif %description @@ -178,7 +178,12 @@ Wine core package includes the basic wine stuff needed by all other packages. %package wow Summary: Files for wine wow seperation Group: Applications/Emulators -Requires: wine-core = %{version}-%{release} +%ifarch x86_64 +Requires: wine-core(x86-64) = %{version}-%{release} +%else +Requires: wine-core(x86-32) = %{version}-%{release} +%endif + %description wow %{summary} @@ -1204,6 +1209,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/openal32.dll.so %changelog +* Thu May 13 2010 Andreas Bierfert +- 1.1.44-4 +- fix install of 32bit only wine on x86_64 via install wine.i686 + * Wed May 12 2010 Andreas Bierfert - 1.1.44-3 - move wine symlink to -wow for 32bit (#591690) From 91ecb6b05ab484d83330555cd99cce384669c66b Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 31 May 2010 13:17:19 +0000 Subject: [PATCH 143/715] - version upgrade - add BR for ImageMagick and icoutils - spec cleanup - install available icon files (#594950) - desktop package requires wine x86-32 because of wine/wine64 rename - put system/small fonts in right place --- .cvsignore | 2 +- sources | 2 +- wine-fonts.patch | 183 +++++++++++++++++++++++++++++++++++++ wine-imagemagick-6.5.patch | 30 ++++++ wine-notepad.desktop | 1 + wine-oleview.desktop | 1 + wine-regedit.desktop | 1 + wine-uninstaller.desktop | 1 + wine-wineboot.desktop | 1 + wine-winecfg.desktop | 1 + wine-winefile.desktop | 1 + wine-winemine.desktop | 1 + wine-winhelp.desktop | 1 + wine-wordpad.desktop | 1 + wine.spec | 127 ++++++++++++++++++------- 15 files changed, 317 insertions(+), 37 deletions(-) create mode 100644 wine-fonts.patch create mode 100644 wine-imagemagick-6.5.patch diff --git a/.cvsignore b/.cvsignore index fdee59a..6c439f0 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-1.1.44.tar.bz2 +wine-1.2-rc2.tar.bz2 diff --git a/sources b/sources index 230abeb..09fd0b6 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -f18649bd71b9099fecad22436d239cba wine-1.1.44.tar.bz2 +99b4511a5a005a1ef363700d482f80f1 wine-1.2-rc2.tar.bz2 diff --git a/wine-fonts.patch b/wine-fonts.patch new file mode 100644 index 0000000..bdc7504 --- /dev/null +++ b/wine-fonts.patch @@ -0,0 +1,183 @@ +--- dlls/gdi32/freetype.c.orig 2010-05-19 22:02:43.000000000 +0200 ++++ dlls/gdi32/freetype.c 2010-05-19 23:57:27.000000000 +0200 +@@ -400,7 +400,7 @@ + /* Interesting and well-known (frequently-assumed!) font names */ + static const WCHAR Lucida_Sans_Unicode[] = {'L','u','c','i','d','a',' ','S','a','n','s',' ','U','n','i','c','o','d','e',0}; + static const WCHAR Microsoft_Sans_Serif[] = {'M','i','c','r','o','s','o','f','t',' ','S','a','n','s',' ','S','e','r','i','f',0 }; +-static const WCHAR Tahoma[] = {'T','a','h','o','m','a',0}; ++static const WCHAR Liberation[] = {'L','i','b','e','r','a','t','i','o','n',' ','S','a','n','s',0}; + static const WCHAR MS_UI_Gothic[] = {'M','S',' ','U','I',' ','G','o','t','h','i','c',0}; + static const WCHAR SimSun[] = {'S','i','m','S','u','n',0}; + static const WCHAR Gulim[] = {'G','u','l','i','m',0}; +@@ -1641,7 +1641,7 @@ + WCHAR *entry, *next; + SYSTEM_LINKS *font_link, *system_font_link; + CHILD_FONT *child_font; +- static const WCHAR tahoma_ttf[] = {'t','a','h','o','m','a','.','t','t','f',0}; ++ static const WCHAR liberation_ttf[] = {'L','i','b','e','r','a','t','i','o','n','S','a','n','s','-','R','e','g','u','l','a','r','.','t','t','f',0}; + static const WCHAR System[] = {'S','y','s','t','e','m',0}; + FONTSIGNATURE fs; + Family *family; +@@ -1723,25 +1723,25 @@ + RegCloseKey(hkey); + } + +- /* Explicitly add an entry for the system font, this links to Tahoma and any links +- that Tahoma has */ ++ /* Explicitly add an entry for the system font, this links to Liberation Sans and any links ++ that Liberation Sans has */ + + system_font_link = HeapAlloc(GetProcessHeap(), 0, sizeof(*system_font_link)); + system_font_link->font_name = strdupW(System); + list_init(&system_font_link->links); + +- face = find_face_from_filename(tahoma_ttf, Tahoma); ++ face = find_face_from_filename(liberation_ttf, Liberation); + if(face) + { + child_font = HeapAlloc(GetProcessHeap(), 0, sizeof(*child_font)); + child_font->face = face; + child_font->font = NULL; +- TRACE("Found Tahoma in %s index %ld\n", child_font->face->file, child_font->face->face_index); ++ TRACE("Found Liberation Sans in %s index %ld\n", child_font->face->file, child_font->face->face_index); + list_add_tail(&system_font_link->links, &child_font->entry); + } + LIST_FOR_EACH_ENTRY(font_link, &system_links, SYSTEM_LINKS, entry) + { +- if(!strcmpiW(font_link->font_name, Tahoma)) ++ if(!strcmpiW(font_link->font_name, Liberation)) + { + CHILD_FONT *font_link_entry; + LIST_FOR_EACH_ENTRY(font_link_entry, &font_link->links, CHILD_FONT, entry) +@@ -2193,21 +2193,21 @@ + /* Latin 1 (United States) */ + { 1252, 437, "vgaoem.fon", "vgafix.fon", "vgasys.fon", + "coure.fon", "serife.fon", "smalle.fon", "sserife.fon", +- "Tahoma","Times New Roman", ++ "Liberation Sans","Times New Roman", + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + { 0 }, { 0 }, { 0 } + }, + /* Latin 1 (Multilingual) */ + { 1252, 850, "vga850.fon", "vgafix.fon", "vgasys.fon", + "coure.fon", "serife.fon", "smalle.fon", "sserife.fon", +- "Tahoma","Times New Roman", /* FIXME unverified */ ++ "Liberation Sans","Times New Roman", /* FIXME unverified */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + { 0 }, { 0 }, { 0 } + }, + /* Eastern Europe */ + { 1250, 852, "vga852.fon", "vgafixe.fon", "vgasyse.fon", + "couree.fon", "serifee.fon", "smallee.fon", "sserifee.fon", +- "Tahoma","Times New Roman", /* FIXME unverified */ ++ "Liberation Sans","Times New Roman", /* FIXME unverified */ + "Fixedsys,238", "System,238", + "Courier New,238", "MS Serif,238", "Small Fonts,238", + "MS Sans Serif,238", "MS Sans Serif,238", "MS Serif,238", +@@ -2218,7 +2218,7 @@ + /* Cyrillic */ + { 1251, 866, "vga866.fon", "vgafixr.fon", "vgasysr.fon", + "courer.fon", "serifer.fon", "smaller.fon", "sserifer.fon", +- "Tahoma","Times New Roman", /* FIXME unverified */ ++ "Liberation Sans","Times New Roman", /* FIXME unverified */ + "Fixedsys,204", "System,204", + "Courier New,204", "MS Serif,204", "Small Fonts,204", + "MS Sans Serif,204", "MS Sans Serif,204", "MS Serif,204", +@@ -2229,7 +2229,7 @@ + /* Greek */ + { 1253, 737, "vga869.fon", "vgafixg.fon", "vgasysg.fon", + "coureg.fon", "serifeg.fon", "smalleg.fon", "sserifeg.fon", +- "Tahoma","Times New Roman", /* FIXME unverified */ ++ "Liberation Sans","Times New Roman", /* FIXME unverified */ + "Fixedsys,161", "System,161", + "Courier New,161", "MS Serif,161", "Small Fonts,161", + "MS Sans Serif,161", "MS Sans Serif,161", "MS Serif,161", +@@ -2240,7 +2240,7 @@ + /* Turkish */ + { 1254, 857, "vga857.fon", "vgafixt.fon", "vgasyst.fon", + "couret.fon", "serifet.fon", "smallet.fon", "sserifet.fon", +- "Tahoma","Times New Roman", /* FIXME unverified */ ++ "Liberation Sans","Times New Roman", /* FIXME unverified */ + "Fixedsys,162", "System,162", + "Courier New,162", "MS Serif,162", "Small Fonts,162", + "MS Sans Serif,162", "MS Sans Serif,162", "MS Serif,162", +@@ -2251,7 +2251,7 @@ + /* Hebrew */ + { 1255, 862, "vgaoem.fon", "vgaf1255.fon", "vgas1255.fon", + "coue1255.fon", "sere1255.fon", "smae1255.fon", "ssee1255.fon", +- "Tahoma","Times New Roman", /* FIXME unverified */ ++ "Liberation Sans","Times New Roman", /* FIXME unverified */ + "Fixedsys,177", "System,177", + "Courier New,177", "MS Serif,177", "Small Fonts,177", + "MS Sans Serif,177", "MS Sans Serif,177", "MS Serif,177", +@@ -2260,7 +2260,7 @@ + /* Arabic */ + { 1256, 720, "vgaoem.fon", "vgaf1256.fon", "vgas1256.fon", + "coue1256.fon", "sere1256.fon", "smae1256.fon", "ssee1256.fon", +- "Tahoma","Times New Roman", /* FIXME unverified */ ++ "Liberation Sans","Times New Roman", /* FIXME unverified */ + "Fixedsys,178", "System,178", + "Courier New,178", "MS Serif,178", "Small Fonts,178", + "MS Sans Serif,178", "MS Sans Serif,178", "MS Serif,178", +@@ -2269,7 +2269,7 @@ + /* Baltic */ + { 1257, 775, "vga775.fon", "vgaf1257.fon", "vgas1257.fon", + "coue1257.fon", "sere1257.fon", "smae1257.fon", "ssee1257.fon", +- "Tahoma","Times New Roman", /* FIXME unverified */ ++ "Liberation Sans","Times New Roman", /* FIXME unverified */ + "Fixedsys,186", "System,186", + "Courier New,186", "MS Serif,186", "Small Fonts,186", + "MS Sans Serif,186", "MS Sans Serif,186", "MS Serif,186", +@@ -2280,14 +2280,14 @@ + /* Vietnamese */ + { 1258, 1258, "vga850.fon", "vgafix.fon", "vgasys.fon", + "coure.fon", "serife.fon", "smalle.fon", "sserife.fon", +- "Tahoma","Times New Roman", /* FIXME unverified */ ++ "Liberation Sans","Times New Roman", /* FIXME unverified */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + { 0 }, { 0 }, { 0 } + }, + /* Thai */ + { 874, 874, "vga850.fon", "vgaf874.fon", "vgas874.fon", + "coure.fon", "serife.fon", "smalle.fon", "ssee874.fon", +- "Tahoma","Times New Roman", /* FIXME unverified */ ++ "Liberation Sans","Times New Roman", /* FIXME unverified */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + { 0 }, { 0 }, { 0 } + }, +@@ -2325,7 +2325,7 @@ + { + Lucida_Sans_Unicode, + Microsoft_Sans_Serif, +- Tahoma ++ Liberation + }; + + static const struct font_links_defaults_list +@@ -2337,7 +2337,7 @@ + } font_links_defaults_list[] = + { + /* Non East-Asian */ +- { Tahoma, /* FIXME unverified ordering */ ++ { Liberation, /* FIXME unverified ordering */ + { MS_UI_Gothic, SimSun, Gulim, PMingLiU, NULL } + }, + /* Below lists are courtesy of +--- tools/wine.inf.in.orig 2010-05-26 07:41:44.000000000 +0200 ++++ tools/wine.inf.in 2010-05-26 07:46:15.000000000 +0200 +@@ -576,13 +576,14 @@ + HKLM,%FontSubStr%,"Courier New TUR,162",,"Courier New,162" + HKLM,%FontSubStr%,"Helv",,"MS Sans Serif" + HKLM,%FontSubStr%,"Helvetica",,"Arial" +-HKLM,%FontSubStr%,"MS Shell Dlg 2",,"Tahoma" ++HKLM,%FontSubStr%,"MS Shell Dlg 2",,"Liberation Sans" + HKLM,%FontSubStr%,"Times",,"Times New Roman" + HKLM,%FontSubStr%,"Times New Roman Baltic,186",,"Times New Roman,186" + HKLM,%FontSubStr%,"Times New Roman CE,238",,"Times New Roman,238" + HKLM,%FontSubStr%,"Times New Roman CYR,204",,"Times New Roman,204" + HKLM,%FontSubStr%,"Times New Roman Greek,161",,"Times New Roman,161" + HKLM,%FontSubStr%,"Times New Roman TUR,162",,"Times New Roman,162" ++HKLM,%FontSubStr%,"MS Sans Serif",,"Liberation Serif" + HKLM,System\CurrentControlSet\Hardware Profiles\Current\Software\Fonts,"LogPixels",0x10003,0x00000060 + + [MCI] diff --git a/wine-imagemagick-6.5.patch b/wine-imagemagick-6.5.patch new file mode 100644 index 0000000..a591f83 --- /dev/null +++ b/wine-imagemagick-6.5.patch @@ -0,0 +1,30 @@ +--- configure.orig 2010-05-25 19:44:56.000000000 +0200 ++++ configure 2010-05-25 19:46:11.000000000 +0200 +@@ -5132,10 +5132,10 @@ + then + convert_version_major=`expr "$convert_version" : '.* \([0-9]*\)\.[0-9]*'` + convert_version_minor=`expr "$convert_version" : '.* [0-9]*\.\([0-9]*\)'` +- if test "$convert_version_major" -eq 6 -a "$convert_version_minor" -lt 6 ++ if test "$convert_version_major" -eq 6 -a "$convert_version_minor" -lt 5 + then + CONVERT=false +- as_fn_append wine_warnings "|imagemagick version 6.6 or newer is needed to rebuild icons." ++ as_fn_append wine_warnings "|imagemagick version 6.5 or newer is needed to rebuild icons." + fi + fi + if test "$CONVERT" = false +--- configure.ac.orig 2010-05-25 19:45:16.000000000 +0200 ++++ configure.ac 2010-05-25 19:46:44.000000000 +0200 +@@ -303,10 +303,10 @@ + then + convert_version_major=`expr "$convert_version" : '.* \([[0-9]]*\)\.[[0-9]]*'` + convert_version_minor=`expr "$convert_version" : '.* [[0-9]]*\.\([[0-9]]*\)'` +- if test "$convert_version_major" -eq 6 -a "$convert_version_minor" -lt 6 ++ if test "$convert_version_major" -eq 6 -a "$convert_version_minor" -lt 5 + then + CONVERT=false +- WINE_WARNING([imagemagick version 6.6 or newer is needed to rebuild icons.]) ++ WINE_WARNING([imagemagick version 6.5 or newer is needed to rebuild icons.]) + fi + fi + if test "$CONVERT" = false diff --git a/wine-notepad.desktop b/wine-notepad.desktop index fa5a1b1..e603069 100644 --- a/wine-notepad.desktop +++ b/wine-notepad.desktop @@ -2,6 +2,7 @@ Name=Notepad Comment=Text Editor Exec=notepad +Icon=notepad Terminal=false Type=Application Encoding=UTF-8 diff --git a/wine-oleview.desktop b/wine-oleview.desktop index 906f084..a458708 100644 --- a/wine-oleview.desktop +++ b/wine-oleview.desktop @@ -2,6 +2,7 @@ Name=Wine OLE View Comment=Windows OLE View Exec=wine oleview +Icon=wine Terminal=false Type=Application Encoding=UTF-8 diff --git a/wine-regedit.desktop b/wine-regedit.desktop index 7fb1c96..b032220 100644 --- a/wine-regedit.desktop +++ b/wine-regedit.desktop @@ -2,6 +2,7 @@ Name=Regedit Comment=Wine registry editor Exec=regedit +Icon=regedit Terminal=false Type=Application Encoding=UTF-8 diff --git a/wine-uninstaller.desktop b/wine-uninstaller.desktop index 8c16fdb..268c011 100644 --- a/wine-uninstaller.desktop +++ b/wine-uninstaller.desktop @@ -2,6 +2,7 @@ Name=Wine Software Uninstaller Comment=Interface to uninstall software Exec=wine uninstaller +Icon=wine Terminal=false Type=Application Encoding=UTF-8 diff --git a/wine-wineboot.desktop b/wine-wineboot.desktop index a29a3f6..6584aea 100644 --- a/wine-wineboot.desktop +++ b/wine-wineboot.desktop @@ -2,6 +2,7 @@ Name=Wine Boot Comment=Simulate restart Exec=wineboot +Icon=wine Terminal=false Type=Application Encoding=UTF-8 diff --git a/wine-winecfg.desktop b/wine-winecfg.desktop index 81c3b8d..2d28279 100644 --- a/wine-winecfg.desktop +++ b/wine-winecfg.desktop @@ -2,6 +2,7 @@ Name=Wine Configuration Comment=Interface to set wine parameters Exec=winecfg +Icon=winecfg Terminal=false Type=Application Encoding=UTF-8 diff --git a/wine-winefile.desktop b/wine-winefile.desktop index 43856d6..e35fb3d 100644 --- a/wine-winefile.desktop +++ b/wine-winefile.desktop @@ -2,6 +2,7 @@ Name=Wine File Comment=Wine File Browser Exec=winefile +Icon=winefile Terminal=false Type=Application Encoding=UTF-8 diff --git a/wine-winemine.desktop b/wine-winemine.desktop index f92401c..15b70d8 100644 --- a/wine-winemine.desktop +++ b/wine-winemine.desktop @@ -2,6 +2,7 @@ Name=WineMine Comment=Wine Minesweeper Exec=winemine +Icon=winemine Terminal=false Type=Application Encoding=UTF-8 diff --git a/wine-winhelp.desktop b/wine-winhelp.desktop index b9f5285..2d0ac67 100644 --- a/wine-winhelp.desktop +++ b/wine-winhelp.desktop @@ -2,6 +2,7 @@ Name=Wine Help Comment=Windows Help Browser Exec=wine winhlp32 +Icon=winhelp Terminal=false Type=Application Encoding=UTF-8 diff --git a/wine-wordpad.desktop b/wine-wordpad.desktop index d535956..1838b04 100644 --- a/wine-wordpad.desktop +++ b/wine-wordpad.desktop @@ -2,6 +2,7 @@ Name=Wine Wordpad Comment=Text Editor Exec=wine wordpad +Icon=wordpad Terminal=false Type=Application Encoding=UTF-8 diff --git a/wine.spec b/wine.spec index 617b79f..819e895 100644 --- a/wine.spec +++ b/wine.spec @@ -1,13 +1,13 @@ %define no64bit 0 Name: wine -Version: 1.1.44 -Release: 4%{?dist} +Version: 1.2.0 +Release: 0.2.rc2%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -Source0: http://ibiblio.org/pub/linux/system/emulators/wine/%{name}-%{version}.tar.bz2 +Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.2-rc2.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -34,6 +34,13 @@ Source300: wine-mime-msi.desktop Patch1: wine-rpath.patch +# bugfixes +# fix for #593140 +Patch100: wine-fonts.patch + +# +Patch200: wine-imagemagick-6.5.patch + # explain how to use wine with pulseaudio # see http://bugs.winehq.org/show_bug.cgi?id=10495 # and http://art.ified.ca/?page_id=40 @@ -105,8 +112,8 @@ BuildRequires: gsm-devel BuildRequires: openal-soft-devel BuildRequires: libv4l-devel BuildRequires: fontpackages-devel - -# noarch +BuildRequires: icoutils +BuildRequires: ImageMagick-devel Requires: wine-common = %{version}-%{release} Requires: wine-desktop = %{version}-%{release} Requires: wine-fonts = %{version}-%{release} @@ -195,7 +202,7 @@ Requires(post): /sbin/chkconfig, /sbin/service, Requires(post): desktop-file-utils >= 0.8 Requires(preun): /sbin/chkconfig, /sbin/service Requires(postun): desktop-file-utils >= 0.8 -Requires: wine-core = %{version}-%{release} +Requires: wine-core(x86-32) = %{version}-%{release} Requires: wine-common = %{version}-%{release} BuildArch: noarch @@ -214,6 +221,8 @@ Requires: wine-marlett-fonts = %{version}-%{release} #Requires: wine-ms-sans-serif-fonts = %{version}-%{release} #Requires: wine-tahoma-fonts = %{version}-%{release} Requires: wine-symbol-fonts = %{version}-%{release} +# intermediate fix for #593140 +Requires: liberation-sans-fonts liberation-serif-fonts %description fonts %{summary} @@ -400,9 +409,11 @@ This package adds an openal driver for wine. %prep -%setup -q +%setup -q -n %{name}-1.2-rc2 %patch1 +%patch100 +%patch200 %patch400 %patch401 -p1 %patch402 -p1 @@ -424,8 +435,6 @@ export CFLAGS="$RPM_OPT_FLAGS -Wno-error" --enable-maintainer-mode \ --disable-tests -%{__make} depend - %{__make} TARGETFLAGS="" %{?_smp_mflags} %install @@ -438,13 +447,6 @@ rm -rf %{buildroot} LDCONFIG=/bin/true \ UPDATE_DESKTOP_DATABASE=/bin/true -%ifarch %{ix86} -# rename wine to wine32 -mv %{buildroot}%{_bindir}/wine{,32} -# create link to wine32 if ix86 -ln -s %{_bindir}/wine32 %{buildroot}%{_bindir}/wine -%endif - mkdir -p %{buildroot}%{_sysconfdir}/wine # Allow users to launch Windows programs by just clicking on the .exe file... @@ -461,79 +463,111 @@ install -p -m 644 %{SOURCE201} \ # install desktop files +mkdir -p %{buildroot}%{_datadir}/pixmaps +install -p -m 644 programs/winemenubuilder/wine.xpm \ + %{buildroot}%{_datadir}/pixmaps/wine.xpm + +icotool -x --width=32 --height=32 --bit-depth=32 -o programs/notepad/ \ + programs/notepad/notepad.ico +install -p -m 644 programs/notepad/notepad*png \ + %{buildroot}%{_datadir}/pixmaps/notepad.png desktop-file-install \ --vendor=fedora \ - --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ + --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE100} +icotool -x --width=32 --height=32 --bit-depth=32 -o programs/regedit/ \ + programs/regedit/regedit.ico +install -p -m 644 programs/regedit/regedit*png \ + %{buildroot}%{_datadir}/pixmaps/regedit.png desktop-file-install \ --vendor=fedora \ - --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ + --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE101} desktop-file-install \ --vendor=fedora \ - --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ + --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE102} +icotool -x --width=32 --height=32 --bit-depth=32 -o programs/winecfg/ \ + programs/winecfg/winecfg.ico +install -p -m 644 programs/winecfg/winecfg*png \ + %{buildroot}%{_datadir}/pixmaps/winecfg.png desktop-file-install \ --vendor=fedora \ - --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ + --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE103} +icotool -x --width=32 --height=32 --bit-depth=32 -o programs/winefile/ \ + programs/winefile/winefile.ico +install -p -m 644 programs/winefile/winefile*png \ + %{buildroot}%{_datadir}/pixmaps/winefile.png desktop-file-install \ --vendor=fedora \ - --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ + --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE104} +icotool -x --width=32 --height=32 --bit-depth=32 -o programs/winemine/ \ + programs/winemine/winemine.ico +install -p -m 644 programs/winemine/winemine*png \ + %{buildroot}%{_datadir}/pixmaps/winemine.png desktop-file-install \ --vendor=fedora \ - --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ + --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE105} +icotool -x --width=32 --height=32 --bit-depth=32 -o programs/winhlp32/ \ + programs/winhlp32/winhelp.ico +install -p -m 644 programs/winhlp32/winhelp*png \ + %{buildroot}%{_datadir}/pixmaps/winhelp.png desktop-file-install \ --vendor=fedora \ - --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ + --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE106} desktop-file-install \ --vendor=fedora \ - --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ + --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE107} +icotool -x --width=32 --height=32 --bit-depth=32 -o programs/wordpad/ \ + programs/wordpad/wordpad.ico +install -p -m 644 programs/wordpad/wordpad*png \ + %{buildroot}%{_datadir}/pixmaps/wordpad.png desktop-file-install \ --vendor=fedora \ - --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ + --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE108} desktop-file-install \ --vendor=fedora \ - --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ + --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE109} desktop-file-install \ --vendor=fedora \ - --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ + --dir=%{buildroot}%{_datadir}/applications \ --delete-original \ - $RPM_BUILD_ROOT%{_datadir}/applications/wine.desktop + %{buildroot}%{_datadir}/applications/wine.desktop #mime-types desktop-file-install \ --vendor=fedora \ - --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ + --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE300} cp %{SOURCE3} README-Fedora -mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d/ +mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d/ %ifarch %{ix86} -install -p -m644 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d/ +install -p -m644 %{SOURCE4} %{buildroot}%{_sysconfdir}/ld.so.conf.d/ %endif %ifarch x86_64 -install -p -m644 %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d/ +install -p -m644 %{SOURCE5} %{buildroot}%{_sysconfdir}/ld.so.conf.d/ %endif # deploy pulseaudio readme @@ -545,9 +579,11 @@ mv %{buildroot}/%{_datadir}/wine/fonts/cou* %{buildroot}/%{_datadir}/fonts/wine- install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-system-fonts mv %{buildroot}/%{_datadir}/wine/fonts/*sys.* %{buildroot}/%{_datadir}/fonts/wine-system-fonts/ +mv %{buildroot}/%{_datadir}/wine/fonts/vgas*.* %{buildroot}/%{_datadir}/fonts/wine-system-fonts/ install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-small-fonts mv %{buildroot}/%{_datadir}/wine/fonts/sma* %{buildroot}/%{_datadir}/fonts/wine-small-fonts/ +mv %{buildroot}/%{_datadir}/wine/fonts/jsma* %{buildroot}/%{_datadir}/fonts/wine-small-fonts/ install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-marlett-fonts mv %{buildroot}/%{_datadir}/wine/fonts/marlett.ttf %{buildroot}/%{_datadir}/fonts/wine-marlett-fonts/ @@ -655,13 +691,13 @@ update-desktop-database &>/dev/null || : %ifarch %{ix86} -%{_bindir}/wine32 +%{_bindir}/wine %{_bindir}/wine-preloader %{_sysconfdir}/ld.so.conf.d/wine-32.conf %endif %ifarch x86_64 -%{_bindir}/wine +%{_bindir}/wine64 %{_sysconfdir}/ld.so.conf.d/wine-64.conf %endif @@ -896,6 +932,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/rsabase.dll.so %{_libdir}/wine/rsaenh.dll.so %{_libdir}/wine/rtutils.dll.so +%{_libdir}/wine/samlib.dll.so %{_libdir}/wine/sc.exe.so %{_libdir}/wine/sccbase.dll.so %{_libdir}/wine/schannel.dll.so @@ -1075,10 +1112,11 @@ update-desktop-database &>/dev/null || : %{_datadir}/wine/generic.ppd %{_datadir}/wine/wine.inf %{_datadir}/wine/l_intl.nls +%{_datadir}/pixmaps/*xpm %files fonts %defattr(-,root,root,-) -%{_datadir}/wine/fonts +%dir %{_datadir}/wine/fonts %files courier-fonts %defattr(-,root,root,-) @@ -1125,6 +1163,7 @@ update-desktop-database &>/dev/null || : %{_datadir}/desktop-directories/Wine.directory %{_sysconfdir}/xdg/menus/applications-merged/wine.menu %{_initrddir}/wine +%{_datadir}/pixmaps/*png # esd subpackage %files esd @@ -1184,6 +1223,7 @@ update-desktop-database &>/dev/null || : %{_mandir}/man1/winedbg.1* %{_mandir}/man1/wineg++.1* %lang(de) %{_mandir}/de.UTF-8/man1/winemaker.1* +%lang(fr) %{_mandir}/fr.UTF-8/man1/winemaker.1* %attr(0755, root, root) %dir %{_includedir}/wine %{_includedir}/wine/* %{_libdir}/*.so @@ -1209,6 +1249,23 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/openal32.dll.so %changelog +* Mon May 31 2010 Andreas Bierfert +- 1.2-0.2.rc2 +- version upgrade + +* Mon May 24 2010 Andreas Bierfert +- 1.2-0.1.rc1 +- upgrade to rc1 +- add BR for ImageMagick and icoutils +- spec cleanup +- install available icon files (#594950) +- desktop package requires wine x86-32 because of wine/wine64 rename +- put system/small fonts in right place + +* Wed May 19 2010 Andreas Bierfert +- 1.1.44-5 +- fix font issues + * Thu May 13 2010 Andreas Bierfert - 1.1.44-4 - fix install of 32bit only wine on x86_64 via install wine.i686 From ae8761fc6d32218e2b229f03d3a122dff1404655 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 31 May 2010 13:17:48 +0000 Subject: [PATCH 144/715] - version upgrade - add BR for ImageMagick and icoutils - spec cleanup - install available icon files (#594950) - desktop package requires wine x86-32 because of wine/wine64 rename - put system/small fonts in right place --- .cvsignore | 2 +- sources | 2 +- wine-fonts.patch | 183 +++++++++++++++++++++++++++++++++++++ wine-imagemagick-6.5.patch | 30 ++++++ wine-notepad.desktop | 1 + wine-oleview.desktop | 1 + wine-regedit.desktop | 1 + wine-uninstaller.desktop | 1 + wine-wineboot.desktop | 1 + wine-winecfg.desktop | 1 + wine-winefile.desktop | 1 + wine-winemine.desktop | 1 + wine-winhelp.desktop | 1 + wine-wordpad.desktop | 1 + wine.spec | 127 ++++++++++++++++++------- 15 files changed, 317 insertions(+), 37 deletions(-) create mode 100644 wine-fonts.patch create mode 100644 wine-imagemagick-6.5.patch diff --git a/.cvsignore b/.cvsignore index fdee59a..6c439f0 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-1.1.44.tar.bz2 +wine-1.2-rc2.tar.bz2 diff --git a/sources b/sources index 230abeb..09fd0b6 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -f18649bd71b9099fecad22436d239cba wine-1.1.44.tar.bz2 +99b4511a5a005a1ef363700d482f80f1 wine-1.2-rc2.tar.bz2 diff --git a/wine-fonts.patch b/wine-fonts.patch new file mode 100644 index 0000000..bdc7504 --- /dev/null +++ b/wine-fonts.patch @@ -0,0 +1,183 @@ +--- dlls/gdi32/freetype.c.orig 2010-05-19 22:02:43.000000000 +0200 ++++ dlls/gdi32/freetype.c 2010-05-19 23:57:27.000000000 +0200 +@@ -400,7 +400,7 @@ + /* Interesting and well-known (frequently-assumed!) font names */ + static const WCHAR Lucida_Sans_Unicode[] = {'L','u','c','i','d','a',' ','S','a','n','s',' ','U','n','i','c','o','d','e',0}; + static const WCHAR Microsoft_Sans_Serif[] = {'M','i','c','r','o','s','o','f','t',' ','S','a','n','s',' ','S','e','r','i','f',0 }; +-static const WCHAR Tahoma[] = {'T','a','h','o','m','a',0}; ++static const WCHAR Liberation[] = {'L','i','b','e','r','a','t','i','o','n',' ','S','a','n','s',0}; + static const WCHAR MS_UI_Gothic[] = {'M','S',' ','U','I',' ','G','o','t','h','i','c',0}; + static const WCHAR SimSun[] = {'S','i','m','S','u','n',0}; + static const WCHAR Gulim[] = {'G','u','l','i','m',0}; +@@ -1641,7 +1641,7 @@ + WCHAR *entry, *next; + SYSTEM_LINKS *font_link, *system_font_link; + CHILD_FONT *child_font; +- static const WCHAR tahoma_ttf[] = {'t','a','h','o','m','a','.','t','t','f',0}; ++ static const WCHAR liberation_ttf[] = {'L','i','b','e','r','a','t','i','o','n','S','a','n','s','-','R','e','g','u','l','a','r','.','t','t','f',0}; + static const WCHAR System[] = {'S','y','s','t','e','m',0}; + FONTSIGNATURE fs; + Family *family; +@@ -1723,25 +1723,25 @@ + RegCloseKey(hkey); + } + +- /* Explicitly add an entry for the system font, this links to Tahoma and any links +- that Tahoma has */ ++ /* Explicitly add an entry for the system font, this links to Liberation Sans and any links ++ that Liberation Sans has */ + + system_font_link = HeapAlloc(GetProcessHeap(), 0, sizeof(*system_font_link)); + system_font_link->font_name = strdupW(System); + list_init(&system_font_link->links); + +- face = find_face_from_filename(tahoma_ttf, Tahoma); ++ face = find_face_from_filename(liberation_ttf, Liberation); + if(face) + { + child_font = HeapAlloc(GetProcessHeap(), 0, sizeof(*child_font)); + child_font->face = face; + child_font->font = NULL; +- TRACE("Found Tahoma in %s index %ld\n", child_font->face->file, child_font->face->face_index); ++ TRACE("Found Liberation Sans in %s index %ld\n", child_font->face->file, child_font->face->face_index); + list_add_tail(&system_font_link->links, &child_font->entry); + } + LIST_FOR_EACH_ENTRY(font_link, &system_links, SYSTEM_LINKS, entry) + { +- if(!strcmpiW(font_link->font_name, Tahoma)) ++ if(!strcmpiW(font_link->font_name, Liberation)) + { + CHILD_FONT *font_link_entry; + LIST_FOR_EACH_ENTRY(font_link_entry, &font_link->links, CHILD_FONT, entry) +@@ -2193,21 +2193,21 @@ + /* Latin 1 (United States) */ + { 1252, 437, "vgaoem.fon", "vgafix.fon", "vgasys.fon", + "coure.fon", "serife.fon", "smalle.fon", "sserife.fon", +- "Tahoma","Times New Roman", ++ "Liberation Sans","Times New Roman", + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + { 0 }, { 0 }, { 0 } + }, + /* Latin 1 (Multilingual) */ + { 1252, 850, "vga850.fon", "vgafix.fon", "vgasys.fon", + "coure.fon", "serife.fon", "smalle.fon", "sserife.fon", +- "Tahoma","Times New Roman", /* FIXME unverified */ ++ "Liberation Sans","Times New Roman", /* FIXME unverified */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + { 0 }, { 0 }, { 0 } + }, + /* Eastern Europe */ + { 1250, 852, "vga852.fon", "vgafixe.fon", "vgasyse.fon", + "couree.fon", "serifee.fon", "smallee.fon", "sserifee.fon", +- "Tahoma","Times New Roman", /* FIXME unverified */ ++ "Liberation Sans","Times New Roman", /* FIXME unverified */ + "Fixedsys,238", "System,238", + "Courier New,238", "MS Serif,238", "Small Fonts,238", + "MS Sans Serif,238", "MS Sans Serif,238", "MS Serif,238", +@@ -2218,7 +2218,7 @@ + /* Cyrillic */ + { 1251, 866, "vga866.fon", "vgafixr.fon", "vgasysr.fon", + "courer.fon", "serifer.fon", "smaller.fon", "sserifer.fon", +- "Tahoma","Times New Roman", /* FIXME unverified */ ++ "Liberation Sans","Times New Roman", /* FIXME unverified */ + "Fixedsys,204", "System,204", + "Courier New,204", "MS Serif,204", "Small Fonts,204", + "MS Sans Serif,204", "MS Sans Serif,204", "MS Serif,204", +@@ -2229,7 +2229,7 @@ + /* Greek */ + { 1253, 737, "vga869.fon", "vgafixg.fon", "vgasysg.fon", + "coureg.fon", "serifeg.fon", "smalleg.fon", "sserifeg.fon", +- "Tahoma","Times New Roman", /* FIXME unverified */ ++ "Liberation Sans","Times New Roman", /* FIXME unverified */ + "Fixedsys,161", "System,161", + "Courier New,161", "MS Serif,161", "Small Fonts,161", + "MS Sans Serif,161", "MS Sans Serif,161", "MS Serif,161", +@@ -2240,7 +2240,7 @@ + /* Turkish */ + { 1254, 857, "vga857.fon", "vgafixt.fon", "vgasyst.fon", + "couret.fon", "serifet.fon", "smallet.fon", "sserifet.fon", +- "Tahoma","Times New Roman", /* FIXME unverified */ ++ "Liberation Sans","Times New Roman", /* FIXME unverified */ + "Fixedsys,162", "System,162", + "Courier New,162", "MS Serif,162", "Small Fonts,162", + "MS Sans Serif,162", "MS Sans Serif,162", "MS Serif,162", +@@ -2251,7 +2251,7 @@ + /* Hebrew */ + { 1255, 862, "vgaoem.fon", "vgaf1255.fon", "vgas1255.fon", + "coue1255.fon", "sere1255.fon", "smae1255.fon", "ssee1255.fon", +- "Tahoma","Times New Roman", /* FIXME unverified */ ++ "Liberation Sans","Times New Roman", /* FIXME unverified */ + "Fixedsys,177", "System,177", + "Courier New,177", "MS Serif,177", "Small Fonts,177", + "MS Sans Serif,177", "MS Sans Serif,177", "MS Serif,177", +@@ -2260,7 +2260,7 @@ + /* Arabic */ + { 1256, 720, "vgaoem.fon", "vgaf1256.fon", "vgas1256.fon", + "coue1256.fon", "sere1256.fon", "smae1256.fon", "ssee1256.fon", +- "Tahoma","Times New Roman", /* FIXME unverified */ ++ "Liberation Sans","Times New Roman", /* FIXME unverified */ + "Fixedsys,178", "System,178", + "Courier New,178", "MS Serif,178", "Small Fonts,178", + "MS Sans Serif,178", "MS Sans Serif,178", "MS Serif,178", +@@ -2269,7 +2269,7 @@ + /* Baltic */ + { 1257, 775, "vga775.fon", "vgaf1257.fon", "vgas1257.fon", + "coue1257.fon", "sere1257.fon", "smae1257.fon", "ssee1257.fon", +- "Tahoma","Times New Roman", /* FIXME unverified */ ++ "Liberation Sans","Times New Roman", /* FIXME unverified */ + "Fixedsys,186", "System,186", + "Courier New,186", "MS Serif,186", "Small Fonts,186", + "MS Sans Serif,186", "MS Sans Serif,186", "MS Serif,186", +@@ -2280,14 +2280,14 @@ + /* Vietnamese */ + { 1258, 1258, "vga850.fon", "vgafix.fon", "vgasys.fon", + "coure.fon", "serife.fon", "smalle.fon", "sserife.fon", +- "Tahoma","Times New Roman", /* FIXME unverified */ ++ "Liberation Sans","Times New Roman", /* FIXME unverified */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + { 0 }, { 0 }, { 0 } + }, + /* Thai */ + { 874, 874, "vga850.fon", "vgaf874.fon", "vgas874.fon", + "coure.fon", "serife.fon", "smalle.fon", "ssee874.fon", +- "Tahoma","Times New Roman", /* FIXME unverified */ ++ "Liberation Sans","Times New Roman", /* FIXME unverified */ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + { 0 }, { 0 }, { 0 } + }, +@@ -2325,7 +2325,7 @@ + { + Lucida_Sans_Unicode, + Microsoft_Sans_Serif, +- Tahoma ++ Liberation + }; + + static const struct font_links_defaults_list +@@ -2337,7 +2337,7 @@ + } font_links_defaults_list[] = + { + /* Non East-Asian */ +- { Tahoma, /* FIXME unverified ordering */ ++ { Liberation, /* FIXME unverified ordering */ + { MS_UI_Gothic, SimSun, Gulim, PMingLiU, NULL } + }, + /* Below lists are courtesy of +--- tools/wine.inf.in.orig 2010-05-26 07:41:44.000000000 +0200 ++++ tools/wine.inf.in 2010-05-26 07:46:15.000000000 +0200 +@@ -576,13 +576,14 @@ + HKLM,%FontSubStr%,"Courier New TUR,162",,"Courier New,162" + HKLM,%FontSubStr%,"Helv",,"MS Sans Serif" + HKLM,%FontSubStr%,"Helvetica",,"Arial" +-HKLM,%FontSubStr%,"MS Shell Dlg 2",,"Tahoma" ++HKLM,%FontSubStr%,"MS Shell Dlg 2",,"Liberation Sans" + HKLM,%FontSubStr%,"Times",,"Times New Roman" + HKLM,%FontSubStr%,"Times New Roman Baltic,186",,"Times New Roman,186" + HKLM,%FontSubStr%,"Times New Roman CE,238",,"Times New Roman,238" + HKLM,%FontSubStr%,"Times New Roman CYR,204",,"Times New Roman,204" + HKLM,%FontSubStr%,"Times New Roman Greek,161",,"Times New Roman,161" + HKLM,%FontSubStr%,"Times New Roman TUR,162",,"Times New Roman,162" ++HKLM,%FontSubStr%,"MS Sans Serif",,"Liberation Serif" + HKLM,System\CurrentControlSet\Hardware Profiles\Current\Software\Fonts,"LogPixels",0x10003,0x00000060 + + [MCI] diff --git a/wine-imagemagick-6.5.patch b/wine-imagemagick-6.5.patch new file mode 100644 index 0000000..a591f83 --- /dev/null +++ b/wine-imagemagick-6.5.patch @@ -0,0 +1,30 @@ +--- configure.orig 2010-05-25 19:44:56.000000000 +0200 ++++ configure 2010-05-25 19:46:11.000000000 +0200 +@@ -5132,10 +5132,10 @@ + then + convert_version_major=`expr "$convert_version" : '.* \([0-9]*\)\.[0-9]*'` + convert_version_minor=`expr "$convert_version" : '.* [0-9]*\.\([0-9]*\)'` +- if test "$convert_version_major" -eq 6 -a "$convert_version_minor" -lt 6 ++ if test "$convert_version_major" -eq 6 -a "$convert_version_minor" -lt 5 + then + CONVERT=false +- as_fn_append wine_warnings "|imagemagick version 6.6 or newer is needed to rebuild icons." ++ as_fn_append wine_warnings "|imagemagick version 6.5 or newer is needed to rebuild icons." + fi + fi + if test "$CONVERT" = false +--- configure.ac.orig 2010-05-25 19:45:16.000000000 +0200 ++++ configure.ac 2010-05-25 19:46:44.000000000 +0200 +@@ -303,10 +303,10 @@ + then + convert_version_major=`expr "$convert_version" : '.* \([[0-9]]*\)\.[[0-9]]*'` + convert_version_minor=`expr "$convert_version" : '.* [[0-9]]*\.\([[0-9]]*\)'` +- if test "$convert_version_major" -eq 6 -a "$convert_version_minor" -lt 6 ++ if test "$convert_version_major" -eq 6 -a "$convert_version_minor" -lt 5 + then + CONVERT=false +- WINE_WARNING([imagemagick version 6.6 or newer is needed to rebuild icons.]) ++ WINE_WARNING([imagemagick version 6.5 or newer is needed to rebuild icons.]) + fi + fi + if test "$CONVERT" = false diff --git a/wine-notepad.desktop b/wine-notepad.desktop index fa5a1b1..e603069 100644 --- a/wine-notepad.desktop +++ b/wine-notepad.desktop @@ -2,6 +2,7 @@ Name=Notepad Comment=Text Editor Exec=notepad +Icon=notepad Terminal=false Type=Application Encoding=UTF-8 diff --git a/wine-oleview.desktop b/wine-oleview.desktop index 906f084..a458708 100644 --- a/wine-oleview.desktop +++ b/wine-oleview.desktop @@ -2,6 +2,7 @@ Name=Wine OLE View Comment=Windows OLE View Exec=wine oleview +Icon=wine Terminal=false Type=Application Encoding=UTF-8 diff --git a/wine-regedit.desktop b/wine-regedit.desktop index 7fb1c96..b032220 100644 --- a/wine-regedit.desktop +++ b/wine-regedit.desktop @@ -2,6 +2,7 @@ Name=Regedit Comment=Wine registry editor Exec=regedit +Icon=regedit Terminal=false Type=Application Encoding=UTF-8 diff --git a/wine-uninstaller.desktop b/wine-uninstaller.desktop index 8c16fdb..268c011 100644 --- a/wine-uninstaller.desktop +++ b/wine-uninstaller.desktop @@ -2,6 +2,7 @@ Name=Wine Software Uninstaller Comment=Interface to uninstall software Exec=wine uninstaller +Icon=wine Terminal=false Type=Application Encoding=UTF-8 diff --git a/wine-wineboot.desktop b/wine-wineboot.desktop index a29a3f6..6584aea 100644 --- a/wine-wineboot.desktop +++ b/wine-wineboot.desktop @@ -2,6 +2,7 @@ Name=Wine Boot Comment=Simulate restart Exec=wineboot +Icon=wine Terminal=false Type=Application Encoding=UTF-8 diff --git a/wine-winecfg.desktop b/wine-winecfg.desktop index 81c3b8d..2d28279 100644 --- a/wine-winecfg.desktop +++ b/wine-winecfg.desktop @@ -2,6 +2,7 @@ Name=Wine Configuration Comment=Interface to set wine parameters Exec=winecfg +Icon=winecfg Terminal=false Type=Application Encoding=UTF-8 diff --git a/wine-winefile.desktop b/wine-winefile.desktop index 43856d6..e35fb3d 100644 --- a/wine-winefile.desktop +++ b/wine-winefile.desktop @@ -2,6 +2,7 @@ Name=Wine File Comment=Wine File Browser Exec=winefile +Icon=winefile Terminal=false Type=Application Encoding=UTF-8 diff --git a/wine-winemine.desktop b/wine-winemine.desktop index f92401c..15b70d8 100644 --- a/wine-winemine.desktop +++ b/wine-winemine.desktop @@ -2,6 +2,7 @@ Name=WineMine Comment=Wine Minesweeper Exec=winemine +Icon=winemine Terminal=false Type=Application Encoding=UTF-8 diff --git a/wine-winhelp.desktop b/wine-winhelp.desktop index b9f5285..2d0ac67 100644 --- a/wine-winhelp.desktop +++ b/wine-winhelp.desktop @@ -2,6 +2,7 @@ Name=Wine Help Comment=Windows Help Browser Exec=wine winhlp32 +Icon=winhelp Terminal=false Type=Application Encoding=UTF-8 diff --git a/wine-wordpad.desktop b/wine-wordpad.desktop index d535956..1838b04 100644 --- a/wine-wordpad.desktop +++ b/wine-wordpad.desktop @@ -2,6 +2,7 @@ Name=Wine Wordpad Comment=Text Editor Exec=wine wordpad +Icon=wordpad Terminal=false Type=Application Encoding=UTF-8 diff --git a/wine.spec b/wine.spec index 617b79f..819e895 100644 --- a/wine.spec +++ b/wine.spec @@ -1,13 +1,13 @@ %define no64bit 0 Name: wine -Version: 1.1.44 -Release: 4%{?dist} +Version: 1.2.0 +Release: 0.2.rc2%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -Source0: http://ibiblio.org/pub/linux/system/emulators/wine/%{name}-%{version}.tar.bz2 +Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.2-rc2.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -34,6 +34,13 @@ Source300: wine-mime-msi.desktop Patch1: wine-rpath.patch +# bugfixes +# fix for #593140 +Patch100: wine-fonts.patch + +# +Patch200: wine-imagemagick-6.5.patch + # explain how to use wine with pulseaudio # see http://bugs.winehq.org/show_bug.cgi?id=10495 # and http://art.ified.ca/?page_id=40 @@ -105,8 +112,8 @@ BuildRequires: gsm-devel BuildRequires: openal-soft-devel BuildRequires: libv4l-devel BuildRequires: fontpackages-devel - -# noarch +BuildRequires: icoutils +BuildRequires: ImageMagick-devel Requires: wine-common = %{version}-%{release} Requires: wine-desktop = %{version}-%{release} Requires: wine-fonts = %{version}-%{release} @@ -195,7 +202,7 @@ Requires(post): /sbin/chkconfig, /sbin/service, Requires(post): desktop-file-utils >= 0.8 Requires(preun): /sbin/chkconfig, /sbin/service Requires(postun): desktop-file-utils >= 0.8 -Requires: wine-core = %{version}-%{release} +Requires: wine-core(x86-32) = %{version}-%{release} Requires: wine-common = %{version}-%{release} BuildArch: noarch @@ -214,6 +221,8 @@ Requires: wine-marlett-fonts = %{version}-%{release} #Requires: wine-ms-sans-serif-fonts = %{version}-%{release} #Requires: wine-tahoma-fonts = %{version}-%{release} Requires: wine-symbol-fonts = %{version}-%{release} +# intermediate fix for #593140 +Requires: liberation-sans-fonts liberation-serif-fonts %description fonts %{summary} @@ -400,9 +409,11 @@ This package adds an openal driver for wine. %prep -%setup -q +%setup -q -n %{name}-1.2-rc2 %patch1 +%patch100 +%patch200 %patch400 %patch401 -p1 %patch402 -p1 @@ -424,8 +435,6 @@ export CFLAGS="$RPM_OPT_FLAGS -Wno-error" --enable-maintainer-mode \ --disable-tests -%{__make} depend - %{__make} TARGETFLAGS="" %{?_smp_mflags} %install @@ -438,13 +447,6 @@ rm -rf %{buildroot} LDCONFIG=/bin/true \ UPDATE_DESKTOP_DATABASE=/bin/true -%ifarch %{ix86} -# rename wine to wine32 -mv %{buildroot}%{_bindir}/wine{,32} -# create link to wine32 if ix86 -ln -s %{_bindir}/wine32 %{buildroot}%{_bindir}/wine -%endif - mkdir -p %{buildroot}%{_sysconfdir}/wine # Allow users to launch Windows programs by just clicking on the .exe file... @@ -461,79 +463,111 @@ install -p -m 644 %{SOURCE201} \ # install desktop files +mkdir -p %{buildroot}%{_datadir}/pixmaps +install -p -m 644 programs/winemenubuilder/wine.xpm \ + %{buildroot}%{_datadir}/pixmaps/wine.xpm + +icotool -x --width=32 --height=32 --bit-depth=32 -o programs/notepad/ \ + programs/notepad/notepad.ico +install -p -m 644 programs/notepad/notepad*png \ + %{buildroot}%{_datadir}/pixmaps/notepad.png desktop-file-install \ --vendor=fedora \ - --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ + --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE100} +icotool -x --width=32 --height=32 --bit-depth=32 -o programs/regedit/ \ + programs/regedit/regedit.ico +install -p -m 644 programs/regedit/regedit*png \ + %{buildroot}%{_datadir}/pixmaps/regedit.png desktop-file-install \ --vendor=fedora \ - --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ + --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE101} desktop-file-install \ --vendor=fedora \ - --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ + --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE102} +icotool -x --width=32 --height=32 --bit-depth=32 -o programs/winecfg/ \ + programs/winecfg/winecfg.ico +install -p -m 644 programs/winecfg/winecfg*png \ + %{buildroot}%{_datadir}/pixmaps/winecfg.png desktop-file-install \ --vendor=fedora \ - --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ + --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE103} +icotool -x --width=32 --height=32 --bit-depth=32 -o programs/winefile/ \ + programs/winefile/winefile.ico +install -p -m 644 programs/winefile/winefile*png \ + %{buildroot}%{_datadir}/pixmaps/winefile.png desktop-file-install \ --vendor=fedora \ - --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ + --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE104} +icotool -x --width=32 --height=32 --bit-depth=32 -o programs/winemine/ \ + programs/winemine/winemine.ico +install -p -m 644 programs/winemine/winemine*png \ + %{buildroot}%{_datadir}/pixmaps/winemine.png desktop-file-install \ --vendor=fedora \ - --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ + --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE105} +icotool -x --width=32 --height=32 --bit-depth=32 -o programs/winhlp32/ \ + programs/winhlp32/winhelp.ico +install -p -m 644 programs/winhlp32/winhelp*png \ + %{buildroot}%{_datadir}/pixmaps/winhelp.png desktop-file-install \ --vendor=fedora \ - --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ + --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE106} desktop-file-install \ --vendor=fedora \ - --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ + --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE107} +icotool -x --width=32 --height=32 --bit-depth=32 -o programs/wordpad/ \ + programs/wordpad/wordpad.ico +install -p -m 644 programs/wordpad/wordpad*png \ + %{buildroot}%{_datadir}/pixmaps/wordpad.png desktop-file-install \ --vendor=fedora \ - --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ + --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE108} desktop-file-install \ --vendor=fedora \ - --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ + --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE109} desktop-file-install \ --vendor=fedora \ - --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ + --dir=%{buildroot}%{_datadir}/applications \ --delete-original \ - $RPM_BUILD_ROOT%{_datadir}/applications/wine.desktop + %{buildroot}%{_datadir}/applications/wine.desktop #mime-types desktop-file-install \ --vendor=fedora \ - --dir=$RPM_BUILD_ROOT%{_datadir}/applications \ + --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE300} cp %{SOURCE3} README-Fedora -mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d/ +mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d/ %ifarch %{ix86} -install -p -m644 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d/ +install -p -m644 %{SOURCE4} %{buildroot}%{_sysconfdir}/ld.so.conf.d/ %endif %ifarch x86_64 -install -p -m644 %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d/ +install -p -m644 %{SOURCE5} %{buildroot}%{_sysconfdir}/ld.so.conf.d/ %endif # deploy pulseaudio readme @@ -545,9 +579,11 @@ mv %{buildroot}/%{_datadir}/wine/fonts/cou* %{buildroot}/%{_datadir}/fonts/wine- install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-system-fonts mv %{buildroot}/%{_datadir}/wine/fonts/*sys.* %{buildroot}/%{_datadir}/fonts/wine-system-fonts/ +mv %{buildroot}/%{_datadir}/wine/fonts/vgas*.* %{buildroot}/%{_datadir}/fonts/wine-system-fonts/ install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-small-fonts mv %{buildroot}/%{_datadir}/wine/fonts/sma* %{buildroot}/%{_datadir}/fonts/wine-small-fonts/ +mv %{buildroot}/%{_datadir}/wine/fonts/jsma* %{buildroot}/%{_datadir}/fonts/wine-small-fonts/ install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-marlett-fonts mv %{buildroot}/%{_datadir}/wine/fonts/marlett.ttf %{buildroot}/%{_datadir}/fonts/wine-marlett-fonts/ @@ -655,13 +691,13 @@ update-desktop-database &>/dev/null || : %ifarch %{ix86} -%{_bindir}/wine32 +%{_bindir}/wine %{_bindir}/wine-preloader %{_sysconfdir}/ld.so.conf.d/wine-32.conf %endif %ifarch x86_64 -%{_bindir}/wine +%{_bindir}/wine64 %{_sysconfdir}/ld.so.conf.d/wine-64.conf %endif @@ -896,6 +932,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/rsabase.dll.so %{_libdir}/wine/rsaenh.dll.so %{_libdir}/wine/rtutils.dll.so +%{_libdir}/wine/samlib.dll.so %{_libdir}/wine/sc.exe.so %{_libdir}/wine/sccbase.dll.so %{_libdir}/wine/schannel.dll.so @@ -1075,10 +1112,11 @@ update-desktop-database &>/dev/null || : %{_datadir}/wine/generic.ppd %{_datadir}/wine/wine.inf %{_datadir}/wine/l_intl.nls +%{_datadir}/pixmaps/*xpm %files fonts %defattr(-,root,root,-) -%{_datadir}/wine/fonts +%dir %{_datadir}/wine/fonts %files courier-fonts %defattr(-,root,root,-) @@ -1125,6 +1163,7 @@ update-desktop-database &>/dev/null || : %{_datadir}/desktop-directories/Wine.directory %{_sysconfdir}/xdg/menus/applications-merged/wine.menu %{_initrddir}/wine +%{_datadir}/pixmaps/*png # esd subpackage %files esd @@ -1184,6 +1223,7 @@ update-desktop-database &>/dev/null || : %{_mandir}/man1/winedbg.1* %{_mandir}/man1/wineg++.1* %lang(de) %{_mandir}/de.UTF-8/man1/winemaker.1* +%lang(fr) %{_mandir}/fr.UTF-8/man1/winemaker.1* %attr(0755, root, root) %dir %{_includedir}/wine %{_includedir}/wine/* %{_libdir}/*.so @@ -1209,6 +1249,23 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/openal32.dll.so %changelog +* Mon May 31 2010 Andreas Bierfert +- 1.2-0.2.rc2 +- version upgrade + +* Mon May 24 2010 Andreas Bierfert +- 1.2-0.1.rc1 +- upgrade to rc1 +- add BR for ImageMagick and icoutils +- spec cleanup +- install available icon files (#594950) +- desktop package requires wine x86-32 because of wine/wine64 rename +- put system/small fonts in right place + +* Wed May 19 2010 Andreas Bierfert +- 1.1.44-5 +- fix font issues + * Thu May 13 2010 Andreas Bierfert - 1.1.44-4 - fix install of 32bit only wine on x86_64 via install wine.i686 From 6ee89ffdb9698272e70cc9b17ccd2923142ece61 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 14 Jun 2010 04:53:57 +0000 Subject: [PATCH 145/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine-uninstaller.desktop | 2 +- wine.spec | 16 ++- ...ecfg.patch => winepulse-0.37-winecfg.patch | 112 +++++++++--------- 5 files changed, 71 insertions(+), 63 deletions(-) rename winepulse-0.36-winecfg.patch => winepulse-0.37-winecfg.patch (87%) diff --git a/.cvsignore b/.cvsignore index 6c439f0..f2707d7 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-1.2-rc2.tar.bz2 +wine-1.2-rc3.tar.bz2 diff --git a/sources b/sources index 09fd0b6..d627474 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -99b4511a5a005a1ef363700d482f80f1 wine-1.2-rc2.tar.bz2 +d70dd15b72809d69330a9ede3ac02e4b wine-1.2-rc3.tar.bz2 diff --git a/wine-uninstaller.desktop b/wine-uninstaller.desktop index 268c011..ef788ee 100644 --- a/wine-uninstaller.desktop +++ b/wine-uninstaller.desktop @@ -2,7 +2,7 @@ Name=Wine Software Uninstaller Comment=Interface to uninstall software Exec=wine uninstaller -Icon=wine +Icon=msiexec Terminal=false Type=Application Encoding=UTF-8 diff --git a/wine.spec b/wine.spec index 819e895..4cc4831 100644 --- a/wine.spec +++ b/wine.spec @@ -1,13 +1,13 @@ %define no64bit 0 Name: wine Version: 1.2.0 -Release: 0.2.rc2%{?dist} +Release: 0.3.rc3%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.2-rc2.tar.bz2 +Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.2-rc3.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -47,7 +47,7 @@ Patch200: wine-imagemagick-6.5.patch # rebased for .42 see #580073 Patch400: winepulse-0.35-configure.ac.patch Patch401: http://art.ified.ca/downloads/winepulse/winepulse-0.36.patch -Patch402: http://art.ified.ca/downloads/winepulse/winepulse-0.36-winecfg.patch +Patch402: http://art.ified.ca/downloads/winepulse/winepulse-0.37-winecfg.patch Source402: README-FEDORA-PULSEAUDIO @@ -409,7 +409,7 @@ This package adds an openal driver for wine. %prep -%setup -q -n %{name}-1.2-rc2 +%setup -q -n %{name}-1.2-rc3 %patch1 %patch100 @@ -485,6 +485,10 @@ desktop-file-install \ --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE101} +icotool -x --width=32 --height=32 --bit-depth=32 -o programs/msiexec/ \ + programs/msiexec/msiexec.ico +install -p -m 644 programs/msiexec/msiexec*png \ + %{buildroot}%{_datadir}/pixmaps/msiexec.png desktop-file-install \ --vendor=fedora \ --dir=%{buildroot}%{_datadir}/applications \ @@ -1249,6 +1253,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/openal32.dll.so %changelog +* Sun Jun 13 2010 Andreas Bierfert +- 1.2-0.2.rc3 +- version upgrade + * Mon May 31 2010 Andreas Bierfert - 1.2-0.2.rc2 - version upgrade diff --git a/winepulse-0.36-winecfg.patch b/winepulse-0.37-winecfg.patch similarity index 87% rename from winepulse-0.36-winecfg.patch rename to winepulse-0.37-winecfg.patch index f73525a..837d40e 100644 --- a/winepulse-0.36-winecfg.patch +++ b/winepulse-0.37-winecfg.patch @@ -1,8 +1,8 @@ diff --git a/programs/winecfg/Bg.rc b/programs/winecfg/Bg.rc -index 5555ad2..29ff717 100644 +index d1ad34d..a95503c 100644 --- a/programs/winecfg/Bg.rc +++ b/programs/winecfg/Bg.rc -@@ -276,6 +276,7 @@ BEGIN +@@ -272,6 +272,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Basic" IDS_ACCEL_EMULATION "Emulation" @@ -11,10 +11,10 @@ index 5555ad2..29ff717 100644 IDS_DRIVER_ESOUND "EsounD Driver" IDS_DRIVER_OSS "OSS Driver" diff --git a/programs/winecfg/Cs.rc b/programs/winecfg/Cs.rc -index f3116d7..2a06d88 100644 +index a3f42d8..4758313 100644 --- a/programs/winecfg/Cs.rc +++ b/programs/winecfg/Cs.rc -@@ -276,6 +276,7 @@ BEGIN +@@ -272,6 +272,7 @@ BEGIN IDS_ACCEL_STANDARD "Standardn" IDS_ACCEL_BASIC "Zkladn" IDS_ACCEL_EMULATION "Emulace" @@ -23,22 +23,22 @@ index f3116d7..2a06d88 100644 IDS_DRIVER_ESOUND "Ovlada EsounD" IDS_DRIVER_OSS "Ovlada OSS" diff --git a/programs/winecfg/Da.rc b/programs/winecfg/Da.rc -index 64e022b..e6caea3 100644 +index 6e594cc..4d1778c 100644 --- a/programs/winecfg/Da.rc +++ b/programs/winecfg/Da.rc -@@ -270,6 +270,7 @@ BEGIN +@@ -279,6 +279,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" - IDS_ACCEL_BASIC "Grundlggende" - IDS_ACCEL_EMULATION "Emulring" + IDS_ACCEL_BASIC "Grundlæggende" + IDS_ACCEL_EMULATION "Emuléring" + IDS_DRIVER_PULSE "PulseAudio-driver" IDS_DRIVER_ALSA "ALSA-driver" IDS_DRIVER_ESOUND "EsounD-driver" IDS_DRIVER_OSS "OSS-driver" diff --git a/programs/winecfg/De.rc b/programs/winecfg/De.rc -index fa5bbe5..eda4e2b 100644 +index 885f986..265f006 100644 --- a/programs/winecfg/De.rc +++ b/programs/winecfg/De.rc -@@ -282,6 +282,7 @@ BEGIN +@@ -278,6 +278,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Einfach" IDS_ACCEL_EMULATION "Emulation" @@ -47,10 +47,10 @@ index fa5bbe5..eda4e2b 100644 IDS_DRIVER_ESOUND "EsounD-Treiber" IDS_DRIVER_OSS "OSS-Treiber" diff --git a/programs/winecfg/En.rc b/programs/winecfg/En.rc -index 490314a..3e669cd 100644 +index 9fc42ea..5bd66f9 100644 --- a/programs/winecfg/En.rc +++ b/programs/winecfg/En.rc -@@ -282,6 +282,7 @@ BEGIN +@@ -278,6 +278,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Basic" IDS_ACCEL_EMULATION "Emulation" @@ -59,22 +59,22 @@ index 490314a..3e669cd 100644 IDS_DRIVER_ESOUND "EsounD Driver" IDS_DRIVER_OSS "OSS Driver" diff --git a/programs/winecfg/Es.rc b/programs/winecfg/Es.rc -index 423c783..8534cfa 100644 +index 0b9a8fa..a7496a8 100644 --- a/programs/winecfg/Es.rc +++ b/programs/winecfg/Es.rc -@@ -270,6 +270,7 @@ BEGIN +@@ -277,6 +277,7 @@ BEGIN IDS_ACCEL_STANDARD "Estndar" IDS_ACCEL_BASIC "Bsica" IDS_ACCEL_EMULATION "Emulacin" -+ IDS_DRIVER_PULSE "Manejador PulseAudio" - IDS_DRIVER_ALSA "Manejador ALSA" - IDS_DRIVER_ESOUND "Manejador EsounD" - IDS_DRIVER_OSS "Manejador OSS" ++ IDS_DRIVER_PULSE "Controlador PulseAudio" + IDS_DRIVER_ALSA "Controlador ALSA" + IDS_DRIVER_ESOUND "Controlador EsounD" + IDS_DRIVER_OSS "Controlador OSS" diff --git a/programs/winecfg/Fi.rc b/programs/winecfg/Fi.rc -index 957b87d..1eb62d1 100644 +index 93c1e24..6beb0cb 100644 --- a/programs/winecfg/Fi.rc +++ b/programs/winecfg/Fi.rc -@@ -270,6 +270,7 @@ BEGIN +@@ -266,6 +266,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Basic" IDS_ACCEL_EMULATION "Emulation" @@ -83,10 +83,10 @@ index 957b87d..1eb62d1 100644 IDS_DRIVER_ESOUND "EsounD Driver" IDS_DRIVER_OSS "OSS Driver" diff --git a/programs/winecfg/Fr.rc b/programs/winecfg/Fr.rc -index f84cff6..045d93f 100644 +index ebbcfdd..638025f 100644 --- a/programs/winecfg/Fr.rc +++ b/programs/winecfg/Fr.rc -@@ -284,6 +284,7 @@ BEGIN +@@ -280,6 +280,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Basique" IDS_ACCEL_EMULATION "Émulation" @@ -95,10 +95,10 @@ index f84cff6..045d93f 100644 IDS_DRIVER_ESOUND "Pilote EsounD" IDS_DRIVER_OSS "Pilote OSS" diff --git a/programs/winecfg/Hu.rc b/programs/winecfg/Hu.rc -index 7c4e4fc..654b524 100644 +index 0fb4982..d7df634 100644 --- a/programs/winecfg/Hu.rc +++ b/programs/winecfg/Hu.rc -@@ -270,6 +270,7 @@ BEGIN +@@ -266,6 +266,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Basic" IDS_ACCEL_EMULATION "Emulation" @@ -107,10 +107,10 @@ index 7c4e4fc..654b524 100644 IDS_DRIVER_ESOUND "EsounD Driver" IDS_DRIVER_OSS "OSS Driver" diff --git a/programs/winecfg/It.rc b/programs/winecfg/It.rc -index 29deea2..e328a19 100644 +index e738d22..cd64710 100644 --- a/programs/winecfg/It.rc +++ b/programs/winecfg/It.rc -@@ -284,6 +284,7 @@ BEGIN +@@ -280,6 +280,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Base" IDS_ACCEL_EMULATION "Emulazione" @@ -119,10 +119,10 @@ index 29deea2..e328a19 100644 IDS_DRIVER_ESOUND "Driver Esound" IDS_DRIVER_OSS "Driver OSS" diff --git a/programs/winecfg/Ja.rc b/programs/winecfg/Ja.rc -index ff03564..94d7c62 100644 +index a082856..e5a889b 100644 --- a/programs/winecfg/Ja.rc +++ b/programs/winecfg/Ja.rc -@@ -285,6 +285,7 @@ BEGIN +@@ -281,6 +281,7 @@ BEGIN IDS_ACCEL_STANDARD "標準" IDS_ACCEL_BASIC "基本" IDS_ACCEL_EMULATION "エミュレーション" @@ -131,10 +131,10 @@ index ff03564..94d7c62 100644 IDS_DRIVER_ESOUND "EsounD ドライバ" IDS_DRIVER_OSS "OSS ドライバ" diff --git a/programs/winecfg/Ko.rc b/programs/winecfg/Ko.rc -index b30ce87..36dabd2 100644 +index 673a70e..b92b146 100644 --- a/programs/winecfg/Ko.rc +++ b/programs/winecfg/Ko.rc -@@ -285,6 +285,7 @@ BEGIN +@@ -281,6 +281,7 @@ BEGIN IDS_ACCEL_STANDARD "ǥ" IDS_ACCEL_BASIC "⺻" IDS_ACCEL_EMULATION "ֹķ̼" @@ -143,10 +143,10 @@ index b30ce87..36dabd2 100644 IDS_DRIVER_ESOUND "EsounD ̹" IDS_DRIVER_OSS "OSS ̹" diff --git a/programs/winecfg/Lt.rc b/programs/winecfg/Lt.rc -index 1a9d0fa..ff7a586 100644 +index 7a979f0..e4f7ff4 100644 --- a/programs/winecfg/Lt.rc +++ b/programs/winecfg/Lt.rc -@@ -283,6 +283,7 @@ BEGIN +@@ -279,6 +279,7 @@ BEGIN IDS_ACCEL_STANDARD "Standartinis" IDS_ACCEL_BASIC "Bazinis" IDS_ACCEL_EMULATION "Emuliacija" @@ -155,10 +155,10 @@ index 1a9d0fa..ff7a586 100644 IDS_DRIVER_ESOUND "EsounD tvarkyklė" IDS_DRIVER_OSS "OSS tvarkyklė" diff --git a/programs/winecfg/Nl.rc b/programs/winecfg/Nl.rc -index 5783033..431872f 100644 +index 62ab796..8bb207e 100644 --- a/programs/winecfg/Nl.rc +++ b/programs/winecfg/Nl.rc -@@ -283,6 +283,7 @@ BEGIN +@@ -279,6 +279,7 @@ BEGIN IDS_ACCEL_STANDARD "Standaard" IDS_ACCEL_BASIC "Eenvoudig" IDS_ACCEL_EMULATION "Emulatie" @@ -167,10 +167,10 @@ index 5783033..431872f 100644 IDS_DRIVER_ESOUND "EsounD Stuurprogramma" IDS_DRIVER_OSS "OSS Stuurprogramma" diff --git a/programs/winecfg/No.rc b/programs/winecfg/No.rc -index 13a62f4..7e66a3a 100644 +index 338a291..b54bd8e 100644 --- a/programs/winecfg/No.rc +++ b/programs/winecfg/No.rc -@@ -283,6 +283,7 @@ BEGIN +@@ -279,6 +279,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Grunnleggende" IDS_ACCEL_EMULATION "Emulering" @@ -179,10 +179,10 @@ index 13a62f4..7e66a3a 100644 IDS_DRIVER_ESOUND "EsounD-driver" IDS_DRIVER_OSS "OSS-driver" diff --git a/programs/winecfg/Pl.rc b/programs/winecfg/Pl.rc -index 9422f34..eeca25c 100644 +index 4cc4e85..9440ebc 100644 --- a/programs/winecfg/Pl.rc +++ b/programs/winecfg/Pl.rc -@@ -273,6 +273,7 @@ BEGIN +@@ -280,6 +280,7 @@ BEGIN IDS_ACCEL_STANDARD "Standardowe" IDS_ACCEL_BASIC "Podstawowe" IDS_ACCEL_EMULATION "Emulacja" @@ -191,10 +191,10 @@ index 9422f34..eeca25c 100644 IDS_DRIVER_ESOUND "Sterownik EsounD" IDS_DRIVER_OSS "Sterownik OSS" diff --git a/programs/winecfg/Pt.rc b/programs/winecfg/Pt.rc -index aeab826..c2e0200 100644 +index a4929d6..43ae7a7 100644 --- a/programs/winecfg/Pt.rc +++ b/programs/winecfg/Pt.rc -@@ -470,6 +470,7 @@ BEGIN +@@ -460,6 +460,7 @@ BEGIN IDS_ACCEL_STANDARD "Padrão" IDS_ACCEL_BASIC "Básico" IDS_ACCEL_EMULATION "Emulação" @@ -203,10 +203,10 @@ index aeab826..c2e0200 100644 IDS_DRIVER_ESOUND "Controlador EsounD" IDS_DRIVER_OSS "Controlador OSS" diff --git a/programs/winecfg/Ro.rc b/programs/winecfg/Ro.rc -index c031ea8..430d6d8 100644 +index f6fe5a0..cf96300 100644 --- a/programs/winecfg/Ro.rc +++ b/programs/winecfg/Ro.rc -@@ -282,6 +282,7 @@ BEGIN +@@ -278,6 +278,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "De bază" IDS_ACCEL_EMULATION "Emulare" @@ -215,10 +215,10 @@ index c031ea8..430d6d8 100644 IDS_DRIVER_ESOUND "Driver Esound" IDS_DRIVER_OSS "Driver OSS" diff --git a/programs/winecfg/Ru.rc b/programs/winecfg/Ru.rc -index 58252ba..39fb6d5 100644 +index 1673c43..8a98fcd 100644 --- a/programs/winecfg/Ru.rc +++ b/programs/winecfg/Ru.rc -@@ -287,6 +287,7 @@ BEGIN +@@ -283,6 +283,7 @@ BEGIN IDS_ACCEL_STANDARD "Стандартное" IDS_ACCEL_BASIC "Минимальное" IDS_ACCEL_EMULATION "Эмуляция" @@ -227,10 +227,10 @@ index 58252ba..39fb6d5 100644 IDS_DRIVER_ESOUND "EsounD драйвер" IDS_DRIVER_OSS "OSS драйвер" diff --git a/programs/winecfg/Si.rc b/programs/winecfg/Si.rc -index eec1658..35b5462 100644 +index 50322b6..bf85f4d 100644 --- a/programs/winecfg/Si.rc +++ b/programs/winecfg/Si.rc -@@ -272,6 +272,7 @@ BEGIN +@@ -278,6 +278,7 @@ BEGIN IDS_ACCEL_STANDARD "Standardno" IDS_ACCEL_BASIC "Osnovno" IDS_ACCEL_EMULATION "Emulacija" @@ -239,10 +239,10 @@ index eec1658..35b5462 100644 IDS_DRIVER_ESOUND "EsounD gonilnik" IDS_DRIVER_OSS "OSS gonilnik" diff --git a/programs/winecfg/Sv.rc b/programs/winecfg/Sv.rc -index d724afa..ba34d44 100644 +index 7e7f981..4d11a8c 100644 --- a/programs/winecfg/Sv.rc +++ b/programs/winecfg/Sv.rc -@@ -270,6 +270,7 @@ BEGIN +@@ -266,6 +266,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Grundlggande" IDS_ACCEL_EMULATION "Emulering" @@ -251,10 +251,10 @@ index d724afa..ba34d44 100644 IDS_DRIVER_ESOUND "EsounD-drivrutin" IDS_DRIVER_OSS "OSS-drivrutin" diff --git a/programs/winecfg/Tr.rc b/programs/winecfg/Tr.rc -index 89ddb23..196debe 100644 +index c124900..09a0b27 100644 --- a/programs/winecfg/Tr.rc +++ b/programs/winecfg/Tr.rc -@@ -270,6 +270,7 @@ BEGIN +@@ -266,6 +266,7 @@ BEGIN IDS_ACCEL_STANDARD "Standart" IDS_ACCEL_BASIC "Temel" IDS_ACCEL_EMULATION "Taklit" @@ -263,10 +263,10 @@ index 89ddb23..196debe 100644 IDS_DRIVER_ESOUND "EsounD Srcs" IDS_DRIVER_OSS "OSS Srcs" diff --git a/programs/winecfg/Zh.rc b/programs/winecfg/Zh.rc -index 14ac5c3..cd380a3 100644 +index 51b9d94..49df9be 100644 --- a/programs/winecfg/Zh.rc +++ b/programs/winecfg/Zh.rc -@@ -275,6 +275,7 @@ BEGIN +@@ -271,6 +271,7 @@ BEGIN IDS_ACCEL_STANDARD "标准" IDS_ACCEL_BASIC "基本" IDS_ACCEL_EMULATION "软件模拟" @@ -275,7 +275,7 @@ index 14ac5c3..cd380a3 100644 IDS_DRIVER_ESOUND "EsounD 驱动" IDS_DRIVER_OSS "OSS 驱动" diff --git a/programs/winecfg/audio.c b/programs/winecfg/audio.c -index 9f8a0a2..59837ef 100644 +index 5cf2b34..35da236 100644 --- a/programs/winecfg/audio.c +++ b/programs/winecfg/audio.c @@ -89,6 +89,7 @@ typedef struct @@ -287,7 +287,7 @@ index 9f8a0a2..59837ef 100644 {IDS_DRIVER_OSS, "oss"}, {IDS_DRIVER_COREAUDIO, "coreaudio"}, diff --git a/programs/winecfg/libraries.c b/programs/winecfg/libraries.c -index 19504d6..b5c84eb 100644 +index e402b4e..f0264ca 100644 --- a/programs/winecfg/libraries.c +++ b/programs/winecfg/libraries.c @@ -73,6 +73,7 @@ static const char * const builtin_only[] = @@ -299,10 +299,10 @@ index 19504d6..b5c84eb 100644 "wintab32", "wnaspi32", diff --git a/programs/winecfg/resource.h b/programs/winecfg/resource.h -index 15c905b..67616fb 100644 +index 43651d8..160e01e 100644 --- a/programs/winecfg/resource.h +++ b/programs/winecfg/resource.h -@@ -188,7 +188,7 @@ +@@ -186,7 +186,7 @@ #define IDS_ACCEL_BASIC 8302 #define IDS_ACCEL_EMULATION 8303 #define IDS_DRIVER_ALSA 8304 From ae102fb5a6bfc0c27b7bee6341cb9b5a6f22e8c1 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 14 Jun 2010 04:53:58 +0000 Subject: [PATCH 146/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine.spec | 16 ++- ...ecfg.patch => winepulse-0.37-winecfg.patch | 112 +++++++++--------- 4 files changed, 70 insertions(+), 62 deletions(-) rename winepulse-0.36-winecfg.patch => winepulse-0.37-winecfg.patch (87%) diff --git a/.cvsignore b/.cvsignore index 6c439f0..f2707d7 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-1.2-rc2.tar.bz2 +wine-1.2-rc3.tar.bz2 diff --git a/sources b/sources index 09fd0b6..d627474 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -99b4511a5a005a1ef363700d482f80f1 wine-1.2-rc2.tar.bz2 +d70dd15b72809d69330a9ede3ac02e4b wine-1.2-rc3.tar.bz2 diff --git a/wine.spec b/wine.spec index 819e895..4cc4831 100644 --- a/wine.spec +++ b/wine.spec @@ -1,13 +1,13 @@ %define no64bit 0 Name: wine Version: 1.2.0 -Release: 0.2.rc2%{?dist} +Release: 0.3.rc3%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.2-rc2.tar.bz2 +Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.2-rc3.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -47,7 +47,7 @@ Patch200: wine-imagemagick-6.5.patch # rebased for .42 see #580073 Patch400: winepulse-0.35-configure.ac.patch Patch401: http://art.ified.ca/downloads/winepulse/winepulse-0.36.patch -Patch402: http://art.ified.ca/downloads/winepulse/winepulse-0.36-winecfg.patch +Patch402: http://art.ified.ca/downloads/winepulse/winepulse-0.37-winecfg.patch Source402: README-FEDORA-PULSEAUDIO @@ -409,7 +409,7 @@ This package adds an openal driver for wine. %prep -%setup -q -n %{name}-1.2-rc2 +%setup -q -n %{name}-1.2-rc3 %patch1 %patch100 @@ -485,6 +485,10 @@ desktop-file-install \ --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE101} +icotool -x --width=32 --height=32 --bit-depth=32 -o programs/msiexec/ \ + programs/msiexec/msiexec.ico +install -p -m 644 programs/msiexec/msiexec*png \ + %{buildroot}%{_datadir}/pixmaps/msiexec.png desktop-file-install \ --vendor=fedora \ --dir=%{buildroot}%{_datadir}/applications \ @@ -1249,6 +1253,10 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/openal32.dll.so %changelog +* Sun Jun 13 2010 Andreas Bierfert +- 1.2-0.2.rc3 +- version upgrade + * Mon May 31 2010 Andreas Bierfert - 1.2-0.2.rc2 - version upgrade diff --git a/winepulse-0.36-winecfg.patch b/winepulse-0.37-winecfg.patch similarity index 87% rename from winepulse-0.36-winecfg.patch rename to winepulse-0.37-winecfg.patch index f73525a..837d40e 100644 --- a/winepulse-0.36-winecfg.patch +++ b/winepulse-0.37-winecfg.patch @@ -1,8 +1,8 @@ diff --git a/programs/winecfg/Bg.rc b/programs/winecfg/Bg.rc -index 5555ad2..29ff717 100644 +index d1ad34d..a95503c 100644 --- a/programs/winecfg/Bg.rc +++ b/programs/winecfg/Bg.rc -@@ -276,6 +276,7 @@ BEGIN +@@ -272,6 +272,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Basic" IDS_ACCEL_EMULATION "Emulation" @@ -11,10 +11,10 @@ index 5555ad2..29ff717 100644 IDS_DRIVER_ESOUND "EsounD Driver" IDS_DRIVER_OSS "OSS Driver" diff --git a/programs/winecfg/Cs.rc b/programs/winecfg/Cs.rc -index f3116d7..2a06d88 100644 +index a3f42d8..4758313 100644 --- a/programs/winecfg/Cs.rc +++ b/programs/winecfg/Cs.rc -@@ -276,6 +276,7 @@ BEGIN +@@ -272,6 +272,7 @@ BEGIN IDS_ACCEL_STANDARD "Standardn" IDS_ACCEL_BASIC "Zkladn" IDS_ACCEL_EMULATION "Emulace" @@ -23,22 +23,22 @@ index f3116d7..2a06d88 100644 IDS_DRIVER_ESOUND "Ovlada EsounD" IDS_DRIVER_OSS "Ovlada OSS" diff --git a/programs/winecfg/Da.rc b/programs/winecfg/Da.rc -index 64e022b..e6caea3 100644 +index 6e594cc..4d1778c 100644 --- a/programs/winecfg/Da.rc +++ b/programs/winecfg/Da.rc -@@ -270,6 +270,7 @@ BEGIN +@@ -279,6 +279,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" - IDS_ACCEL_BASIC "Grundlggende" - IDS_ACCEL_EMULATION "Emulring" + IDS_ACCEL_BASIC "Grundlæggende" + IDS_ACCEL_EMULATION "Emuléring" + IDS_DRIVER_PULSE "PulseAudio-driver" IDS_DRIVER_ALSA "ALSA-driver" IDS_DRIVER_ESOUND "EsounD-driver" IDS_DRIVER_OSS "OSS-driver" diff --git a/programs/winecfg/De.rc b/programs/winecfg/De.rc -index fa5bbe5..eda4e2b 100644 +index 885f986..265f006 100644 --- a/programs/winecfg/De.rc +++ b/programs/winecfg/De.rc -@@ -282,6 +282,7 @@ BEGIN +@@ -278,6 +278,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Einfach" IDS_ACCEL_EMULATION "Emulation" @@ -47,10 +47,10 @@ index fa5bbe5..eda4e2b 100644 IDS_DRIVER_ESOUND "EsounD-Treiber" IDS_DRIVER_OSS "OSS-Treiber" diff --git a/programs/winecfg/En.rc b/programs/winecfg/En.rc -index 490314a..3e669cd 100644 +index 9fc42ea..5bd66f9 100644 --- a/programs/winecfg/En.rc +++ b/programs/winecfg/En.rc -@@ -282,6 +282,7 @@ BEGIN +@@ -278,6 +278,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Basic" IDS_ACCEL_EMULATION "Emulation" @@ -59,22 +59,22 @@ index 490314a..3e669cd 100644 IDS_DRIVER_ESOUND "EsounD Driver" IDS_DRIVER_OSS "OSS Driver" diff --git a/programs/winecfg/Es.rc b/programs/winecfg/Es.rc -index 423c783..8534cfa 100644 +index 0b9a8fa..a7496a8 100644 --- a/programs/winecfg/Es.rc +++ b/programs/winecfg/Es.rc -@@ -270,6 +270,7 @@ BEGIN +@@ -277,6 +277,7 @@ BEGIN IDS_ACCEL_STANDARD "Estndar" IDS_ACCEL_BASIC "Bsica" IDS_ACCEL_EMULATION "Emulacin" -+ IDS_DRIVER_PULSE "Manejador PulseAudio" - IDS_DRIVER_ALSA "Manejador ALSA" - IDS_DRIVER_ESOUND "Manejador EsounD" - IDS_DRIVER_OSS "Manejador OSS" ++ IDS_DRIVER_PULSE "Controlador PulseAudio" + IDS_DRIVER_ALSA "Controlador ALSA" + IDS_DRIVER_ESOUND "Controlador EsounD" + IDS_DRIVER_OSS "Controlador OSS" diff --git a/programs/winecfg/Fi.rc b/programs/winecfg/Fi.rc -index 957b87d..1eb62d1 100644 +index 93c1e24..6beb0cb 100644 --- a/programs/winecfg/Fi.rc +++ b/programs/winecfg/Fi.rc -@@ -270,6 +270,7 @@ BEGIN +@@ -266,6 +266,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Basic" IDS_ACCEL_EMULATION "Emulation" @@ -83,10 +83,10 @@ index 957b87d..1eb62d1 100644 IDS_DRIVER_ESOUND "EsounD Driver" IDS_DRIVER_OSS "OSS Driver" diff --git a/programs/winecfg/Fr.rc b/programs/winecfg/Fr.rc -index f84cff6..045d93f 100644 +index ebbcfdd..638025f 100644 --- a/programs/winecfg/Fr.rc +++ b/programs/winecfg/Fr.rc -@@ -284,6 +284,7 @@ BEGIN +@@ -280,6 +280,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Basique" IDS_ACCEL_EMULATION "Émulation" @@ -95,10 +95,10 @@ index f84cff6..045d93f 100644 IDS_DRIVER_ESOUND "Pilote EsounD" IDS_DRIVER_OSS "Pilote OSS" diff --git a/programs/winecfg/Hu.rc b/programs/winecfg/Hu.rc -index 7c4e4fc..654b524 100644 +index 0fb4982..d7df634 100644 --- a/programs/winecfg/Hu.rc +++ b/programs/winecfg/Hu.rc -@@ -270,6 +270,7 @@ BEGIN +@@ -266,6 +266,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Basic" IDS_ACCEL_EMULATION "Emulation" @@ -107,10 +107,10 @@ index 7c4e4fc..654b524 100644 IDS_DRIVER_ESOUND "EsounD Driver" IDS_DRIVER_OSS "OSS Driver" diff --git a/programs/winecfg/It.rc b/programs/winecfg/It.rc -index 29deea2..e328a19 100644 +index e738d22..cd64710 100644 --- a/programs/winecfg/It.rc +++ b/programs/winecfg/It.rc -@@ -284,6 +284,7 @@ BEGIN +@@ -280,6 +280,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Base" IDS_ACCEL_EMULATION "Emulazione" @@ -119,10 +119,10 @@ index 29deea2..e328a19 100644 IDS_DRIVER_ESOUND "Driver Esound" IDS_DRIVER_OSS "Driver OSS" diff --git a/programs/winecfg/Ja.rc b/programs/winecfg/Ja.rc -index ff03564..94d7c62 100644 +index a082856..e5a889b 100644 --- a/programs/winecfg/Ja.rc +++ b/programs/winecfg/Ja.rc -@@ -285,6 +285,7 @@ BEGIN +@@ -281,6 +281,7 @@ BEGIN IDS_ACCEL_STANDARD "標準" IDS_ACCEL_BASIC "基本" IDS_ACCEL_EMULATION "エミュレーション" @@ -131,10 +131,10 @@ index ff03564..94d7c62 100644 IDS_DRIVER_ESOUND "EsounD ドライバ" IDS_DRIVER_OSS "OSS ドライバ" diff --git a/programs/winecfg/Ko.rc b/programs/winecfg/Ko.rc -index b30ce87..36dabd2 100644 +index 673a70e..b92b146 100644 --- a/programs/winecfg/Ko.rc +++ b/programs/winecfg/Ko.rc -@@ -285,6 +285,7 @@ BEGIN +@@ -281,6 +281,7 @@ BEGIN IDS_ACCEL_STANDARD "ǥ" IDS_ACCEL_BASIC "⺻" IDS_ACCEL_EMULATION "ֹķ̼" @@ -143,10 +143,10 @@ index b30ce87..36dabd2 100644 IDS_DRIVER_ESOUND "EsounD ̹" IDS_DRIVER_OSS "OSS ̹" diff --git a/programs/winecfg/Lt.rc b/programs/winecfg/Lt.rc -index 1a9d0fa..ff7a586 100644 +index 7a979f0..e4f7ff4 100644 --- a/programs/winecfg/Lt.rc +++ b/programs/winecfg/Lt.rc -@@ -283,6 +283,7 @@ BEGIN +@@ -279,6 +279,7 @@ BEGIN IDS_ACCEL_STANDARD "Standartinis" IDS_ACCEL_BASIC "Bazinis" IDS_ACCEL_EMULATION "Emuliacija" @@ -155,10 +155,10 @@ index 1a9d0fa..ff7a586 100644 IDS_DRIVER_ESOUND "EsounD tvarkyklė" IDS_DRIVER_OSS "OSS tvarkyklė" diff --git a/programs/winecfg/Nl.rc b/programs/winecfg/Nl.rc -index 5783033..431872f 100644 +index 62ab796..8bb207e 100644 --- a/programs/winecfg/Nl.rc +++ b/programs/winecfg/Nl.rc -@@ -283,6 +283,7 @@ BEGIN +@@ -279,6 +279,7 @@ BEGIN IDS_ACCEL_STANDARD "Standaard" IDS_ACCEL_BASIC "Eenvoudig" IDS_ACCEL_EMULATION "Emulatie" @@ -167,10 +167,10 @@ index 5783033..431872f 100644 IDS_DRIVER_ESOUND "EsounD Stuurprogramma" IDS_DRIVER_OSS "OSS Stuurprogramma" diff --git a/programs/winecfg/No.rc b/programs/winecfg/No.rc -index 13a62f4..7e66a3a 100644 +index 338a291..b54bd8e 100644 --- a/programs/winecfg/No.rc +++ b/programs/winecfg/No.rc -@@ -283,6 +283,7 @@ BEGIN +@@ -279,6 +279,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Grunnleggende" IDS_ACCEL_EMULATION "Emulering" @@ -179,10 +179,10 @@ index 13a62f4..7e66a3a 100644 IDS_DRIVER_ESOUND "EsounD-driver" IDS_DRIVER_OSS "OSS-driver" diff --git a/programs/winecfg/Pl.rc b/programs/winecfg/Pl.rc -index 9422f34..eeca25c 100644 +index 4cc4e85..9440ebc 100644 --- a/programs/winecfg/Pl.rc +++ b/programs/winecfg/Pl.rc -@@ -273,6 +273,7 @@ BEGIN +@@ -280,6 +280,7 @@ BEGIN IDS_ACCEL_STANDARD "Standardowe" IDS_ACCEL_BASIC "Podstawowe" IDS_ACCEL_EMULATION "Emulacja" @@ -191,10 +191,10 @@ index 9422f34..eeca25c 100644 IDS_DRIVER_ESOUND "Sterownik EsounD" IDS_DRIVER_OSS "Sterownik OSS" diff --git a/programs/winecfg/Pt.rc b/programs/winecfg/Pt.rc -index aeab826..c2e0200 100644 +index a4929d6..43ae7a7 100644 --- a/programs/winecfg/Pt.rc +++ b/programs/winecfg/Pt.rc -@@ -470,6 +470,7 @@ BEGIN +@@ -460,6 +460,7 @@ BEGIN IDS_ACCEL_STANDARD "Padrão" IDS_ACCEL_BASIC "Básico" IDS_ACCEL_EMULATION "Emulação" @@ -203,10 +203,10 @@ index aeab826..c2e0200 100644 IDS_DRIVER_ESOUND "Controlador EsounD" IDS_DRIVER_OSS "Controlador OSS" diff --git a/programs/winecfg/Ro.rc b/programs/winecfg/Ro.rc -index c031ea8..430d6d8 100644 +index f6fe5a0..cf96300 100644 --- a/programs/winecfg/Ro.rc +++ b/programs/winecfg/Ro.rc -@@ -282,6 +282,7 @@ BEGIN +@@ -278,6 +278,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "De bază" IDS_ACCEL_EMULATION "Emulare" @@ -215,10 +215,10 @@ index c031ea8..430d6d8 100644 IDS_DRIVER_ESOUND "Driver Esound" IDS_DRIVER_OSS "Driver OSS" diff --git a/programs/winecfg/Ru.rc b/programs/winecfg/Ru.rc -index 58252ba..39fb6d5 100644 +index 1673c43..8a98fcd 100644 --- a/programs/winecfg/Ru.rc +++ b/programs/winecfg/Ru.rc -@@ -287,6 +287,7 @@ BEGIN +@@ -283,6 +283,7 @@ BEGIN IDS_ACCEL_STANDARD "Стандартное" IDS_ACCEL_BASIC "Минимальное" IDS_ACCEL_EMULATION "Эмуляция" @@ -227,10 +227,10 @@ index 58252ba..39fb6d5 100644 IDS_DRIVER_ESOUND "EsounD драйвер" IDS_DRIVER_OSS "OSS драйвер" diff --git a/programs/winecfg/Si.rc b/programs/winecfg/Si.rc -index eec1658..35b5462 100644 +index 50322b6..bf85f4d 100644 --- a/programs/winecfg/Si.rc +++ b/programs/winecfg/Si.rc -@@ -272,6 +272,7 @@ BEGIN +@@ -278,6 +278,7 @@ BEGIN IDS_ACCEL_STANDARD "Standardno" IDS_ACCEL_BASIC "Osnovno" IDS_ACCEL_EMULATION "Emulacija" @@ -239,10 +239,10 @@ index eec1658..35b5462 100644 IDS_DRIVER_ESOUND "EsounD gonilnik" IDS_DRIVER_OSS "OSS gonilnik" diff --git a/programs/winecfg/Sv.rc b/programs/winecfg/Sv.rc -index d724afa..ba34d44 100644 +index 7e7f981..4d11a8c 100644 --- a/programs/winecfg/Sv.rc +++ b/programs/winecfg/Sv.rc -@@ -270,6 +270,7 @@ BEGIN +@@ -266,6 +266,7 @@ BEGIN IDS_ACCEL_STANDARD "Standard" IDS_ACCEL_BASIC "Grundlggande" IDS_ACCEL_EMULATION "Emulering" @@ -251,10 +251,10 @@ index d724afa..ba34d44 100644 IDS_DRIVER_ESOUND "EsounD-drivrutin" IDS_DRIVER_OSS "OSS-drivrutin" diff --git a/programs/winecfg/Tr.rc b/programs/winecfg/Tr.rc -index 89ddb23..196debe 100644 +index c124900..09a0b27 100644 --- a/programs/winecfg/Tr.rc +++ b/programs/winecfg/Tr.rc -@@ -270,6 +270,7 @@ BEGIN +@@ -266,6 +266,7 @@ BEGIN IDS_ACCEL_STANDARD "Standart" IDS_ACCEL_BASIC "Temel" IDS_ACCEL_EMULATION "Taklit" @@ -263,10 +263,10 @@ index 89ddb23..196debe 100644 IDS_DRIVER_ESOUND "EsounD Srcs" IDS_DRIVER_OSS "OSS Srcs" diff --git a/programs/winecfg/Zh.rc b/programs/winecfg/Zh.rc -index 14ac5c3..cd380a3 100644 +index 51b9d94..49df9be 100644 --- a/programs/winecfg/Zh.rc +++ b/programs/winecfg/Zh.rc -@@ -275,6 +275,7 @@ BEGIN +@@ -271,6 +271,7 @@ BEGIN IDS_ACCEL_STANDARD "标准" IDS_ACCEL_BASIC "基本" IDS_ACCEL_EMULATION "软件模拟" @@ -275,7 +275,7 @@ index 14ac5c3..cd380a3 100644 IDS_DRIVER_ESOUND "EsounD 驱动" IDS_DRIVER_OSS "OSS 驱动" diff --git a/programs/winecfg/audio.c b/programs/winecfg/audio.c -index 9f8a0a2..59837ef 100644 +index 5cf2b34..35da236 100644 --- a/programs/winecfg/audio.c +++ b/programs/winecfg/audio.c @@ -89,6 +89,7 @@ typedef struct @@ -287,7 +287,7 @@ index 9f8a0a2..59837ef 100644 {IDS_DRIVER_OSS, "oss"}, {IDS_DRIVER_COREAUDIO, "coreaudio"}, diff --git a/programs/winecfg/libraries.c b/programs/winecfg/libraries.c -index 19504d6..b5c84eb 100644 +index e402b4e..f0264ca 100644 --- a/programs/winecfg/libraries.c +++ b/programs/winecfg/libraries.c @@ -73,6 +73,7 @@ static const char * const builtin_only[] = @@ -299,10 +299,10 @@ index 19504d6..b5c84eb 100644 "wintab32", "wnaspi32", diff --git a/programs/winecfg/resource.h b/programs/winecfg/resource.h -index 15c905b..67616fb 100644 +index 43651d8..160e01e 100644 --- a/programs/winecfg/resource.h +++ b/programs/winecfg/resource.h -@@ -188,7 +188,7 @@ +@@ -186,7 +186,7 @@ #define IDS_ACCEL_BASIC 8302 #define IDS_ACCEL_EMULATION 8303 #define IDS_DRIVER_ALSA 8304 From a1e3ba13e89fcf1e184d4560cca722c50c095838 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 19 Jun 2010 08:23:30 +0000 Subject: [PATCH 147/715] - 1.2 rc4 - fix requires for -common --- .cvsignore | 2 +- sources | 2 +- wine-uninstaller.desktop | 2 +- wine.spec | 18 +++++++++++++----- 4 files changed, 16 insertions(+), 8 deletions(-) diff --git a/.cvsignore b/.cvsignore index f2707d7..d3e1bcb 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-1.2-rc3.tar.bz2 +wine-1.2-rc4.tar.bz2 diff --git a/sources b/sources index d627474..5a633e5 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -d70dd15b72809d69330a9ede3ac02e4b wine-1.2-rc3.tar.bz2 +761eaf2174aa1fff0b75059abf482e2f wine-1.2-rc4.tar.bz2 diff --git a/wine-uninstaller.desktop b/wine-uninstaller.desktop index 268c011..ef788ee 100644 --- a/wine-uninstaller.desktop +++ b/wine-uninstaller.desktop @@ -2,7 +2,7 @@ Name=Wine Software Uninstaller Comment=Interface to uninstall software Exec=wine uninstaller -Icon=wine +Icon=msiexec Terminal=false Type=Application Encoding=UTF-8 diff --git a/wine.spec b/wine.spec index 4cc4831..9a14c7c 100644 --- a/wine.spec +++ b/wine.spec @@ -1,13 +1,13 @@ %define no64bit 0 Name: wine Version: 1.2.0 -Release: 0.3.rc3%{?dist} +Release: 0.4.rc4%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.2-rc3.tar.bz2 +Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.2-rc4.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -114,7 +114,6 @@ BuildRequires: libv4l-devel BuildRequires: fontpackages-devel BuildRequires: icoutils BuildRequires: ImageMagick-devel -Requires: wine-common = %{version}-%{release} Requires: wine-desktop = %{version}-%{release} Requires: wine-fonts = %{version}-%{release} @@ -163,6 +162,8 @@ Obsoletes: wine <= 0.9.15-1%{?dist} Obsoletes: wine-arts < 0.9.34 Obsoletes: wine-tools <= 1.1.27 Provides: wine-tools = %{version}-%{release} +# require -common so we get wine.inf (#528335) +Requires: wine-common = %{version}-%{release} # fix dns resolution (#492700) # require both to be sure 64bit is present as well... %ifarch %{ix86} @@ -409,7 +410,7 @@ This package adds an openal driver for wine. %prep -%setup -q -n %{name}-1.2-rc3 +%setup -q -n %{name}-1.2-rc4 %patch1 %patch100 @@ -1253,8 +1254,15 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/openal32.dll.so %changelog +* Fri Jun 18 2010 Andreas Bierfert +- 1.2-0.4.rc4 +- version upgrade +- fixes winecfg on 64bit (#541986) +- require wine-common from -core to ensure man pages and wine.inf are present + (#528335) + * Sun Jun 13 2010 Andreas Bierfert -- 1.2-0.2.rc3 +- 1.2-0.3.rc3 - version upgrade * Mon May 31 2010 Andreas Bierfert From ae13558ba25e4c6e74612e52ccf796d3a7695ee9 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 19 Jun 2010 08:23:30 +0000 Subject: [PATCH 148/715] - 1.2 rc4 - fix requires for -common --- .cvsignore | 2 +- sources | 2 +- wine.spec | 18 +++++++++++++----- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/.cvsignore b/.cvsignore index f2707d7..d3e1bcb 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-1.2-rc3.tar.bz2 +wine-1.2-rc4.tar.bz2 diff --git a/sources b/sources index d627474..5a633e5 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -d70dd15b72809d69330a9ede3ac02e4b wine-1.2-rc3.tar.bz2 +761eaf2174aa1fff0b75059abf482e2f wine-1.2-rc4.tar.bz2 diff --git a/wine.spec b/wine.spec index 4cc4831..9a14c7c 100644 --- a/wine.spec +++ b/wine.spec @@ -1,13 +1,13 @@ %define no64bit 0 Name: wine Version: 1.2.0 -Release: 0.3.rc3%{?dist} +Release: 0.4.rc4%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.2-rc3.tar.bz2 +Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.2-rc4.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -114,7 +114,6 @@ BuildRequires: libv4l-devel BuildRequires: fontpackages-devel BuildRequires: icoutils BuildRequires: ImageMagick-devel -Requires: wine-common = %{version}-%{release} Requires: wine-desktop = %{version}-%{release} Requires: wine-fonts = %{version}-%{release} @@ -163,6 +162,8 @@ Obsoletes: wine <= 0.9.15-1%{?dist} Obsoletes: wine-arts < 0.9.34 Obsoletes: wine-tools <= 1.1.27 Provides: wine-tools = %{version}-%{release} +# require -common so we get wine.inf (#528335) +Requires: wine-common = %{version}-%{release} # fix dns resolution (#492700) # require both to be sure 64bit is present as well... %ifarch %{ix86} @@ -409,7 +410,7 @@ This package adds an openal driver for wine. %prep -%setup -q -n %{name}-1.2-rc3 +%setup -q -n %{name}-1.2-rc4 %patch1 %patch100 @@ -1253,8 +1254,15 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/openal32.dll.so %changelog +* Fri Jun 18 2010 Andreas Bierfert +- 1.2-0.4.rc4 +- version upgrade +- fixes winecfg on 64bit (#541986) +- require wine-common from -core to ensure man pages and wine.inf are present + (#528335) + * Sun Jun 13 2010 Andreas Bierfert -- 1.2-0.2.rc3 +- 1.2-0.3.rc3 - version upgrade * Mon May 31 2010 Andreas Bierfert From a57ec58ea913864b15dbce160ed4607d3411e9ce Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Wed, 30 Jun 2010 20:03:01 +0000 Subject: [PATCH 149/715] - rc5 --- .cvsignore | 2 +- sources | 2 +- wine.spec | 16 +++++---- ...ecfg.patch => winepulse-0.38-winecfg.patch | 34 +++++++++---------- 4 files changed, 29 insertions(+), 25 deletions(-) rename winepulse-0.37-winecfg.patch => winepulse-0.38-winecfg.patch (95%) diff --git a/.cvsignore b/.cvsignore index d3e1bcb..3bcadfd 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-1.2-rc4.tar.bz2 +wine-1.2-rc5.tar.bz2 diff --git a/sources b/sources index 5a633e5..376d4a1 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -761eaf2174aa1fff0b75059abf482e2f wine-1.2-rc4.tar.bz2 +7a7911aec84ca059e623978db17fba19 wine-1.2-rc5.tar.bz2 diff --git a/wine.spec b/wine.spec index 9a14c7c..a404712 100644 --- a/wine.spec +++ b/wine.spec @@ -1,13 +1,13 @@ %define no64bit 0 Name: wine Version: 1.2.0 -Release: 0.4.rc4%{?dist} +Release: 0.5.rc5%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.2-rc4.tar.bz2 +Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.2-rc5.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -47,7 +47,7 @@ Patch200: wine-imagemagick-6.5.patch # rebased for .42 see #580073 Patch400: winepulse-0.35-configure.ac.patch Patch401: http://art.ified.ca/downloads/winepulse/winepulse-0.36.patch -Patch402: http://art.ified.ca/downloads/winepulse/winepulse-0.37-winecfg.patch +Patch402: http://art.ified.ca/downloads/winepulse/winepulse-0.38-winecfg.patch Source402: README-FEDORA-PULSEAUDIO @@ -223,7 +223,7 @@ Requires: wine-marlett-fonts = %{version}-%{release} #Requires: wine-tahoma-fonts = %{version}-%{release} Requires: wine-symbol-fonts = %{version}-%{release} # intermediate fix for #593140 -Requires: liberation-sans-fonts liberation-serif-fonts +Requires: liberation-sans-fonts liberation-serif-fonts liberation-narrow-fonts %description fonts %{summary} @@ -410,7 +410,7 @@ This package adds an openal driver for wine. %prep -%setup -q -n %{name}-1.2-rc4 +%setup -q -n %{name}-1.2-rc5 %patch1 %patch100 @@ -418,7 +418,6 @@ This package adds an openal driver for wine. %patch400 %patch401 -p1 %patch402 -p1 - %patch1000 autoreconf @@ -1254,6 +1253,11 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/openal32.dll.so %changelog +* Sun Jun 27 2010 Andreas Bierfert +- 1.2-0.5.rc5 +- version upgrade +- require liberation-narrow-fonts + * Fri Jun 18 2010 Andreas Bierfert - 1.2-0.4.rc4 - version upgrade diff --git a/winepulse-0.37-winecfg.patch b/winepulse-0.38-winecfg.patch similarity index 95% rename from winepulse-0.37-winecfg.patch rename to winepulse-0.38-winecfg.patch index 837d40e..30d17ed 100644 --- a/winepulse-0.37-winecfg.patch +++ b/winepulse-0.38-winecfg.patch @@ -59,7 +59,7 @@ index 9fc42ea..5bd66f9 100644 IDS_DRIVER_ESOUND "EsounD Driver" IDS_DRIVER_OSS "OSS Driver" diff --git a/programs/winecfg/Es.rc b/programs/winecfg/Es.rc -index 0b9a8fa..a7496a8 100644 +index dcf8e37..d46f32e 100644 --- a/programs/winecfg/Es.rc +++ b/programs/winecfg/Es.rc @@ -277,6 +277,7 @@ BEGIN @@ -131,17 +131,17 @@ index a082856..e5a889b 100644 IDS_DRIVER_ESOUND "EsounD ドライバ" IDS_DRIVER_OSS "OSS ドライバ" diff --git a/programs/winecfg/Ko.rc b/programs/winecfg/Ko.rc -index 673a70e..b92b146 100644 +index 6321fe8..279a99d 100644 --- a/programs/winecfg/Ko.rc +++ b/programs/winecfg/Ko.rc -@@ -281,6 +281,7 @@ BEGIN - IDS_ACCEL_STANDARD "ǥ" - IDS_ACCEL_BASIC "⺻" - IDS_ACCEL_EMULATION "ֹķ̼" -+ IDS_DRIVER_PULSE "PulseAudio ̹" - IDS_DRIVER_ALSA "ALSA ̹" - IDS_DRIVER_ESOUND "EsounD ̹" - IDS_DRIVER_OSS "OSS ̹" +@@ -282,6 +282,7 @@ BEGIN + IDS_ACCEL_STANDARD "표준" + IDS_ACCEL_BASIC "기본" + IDS_ACCEL_EMULATION "애뮬레이션" ++ IDS_DRIVER_PULSE "PulseAudio 드라이버" + IDS_DRIVER_ALSA "ALSA 드라이버" + IDS_DRIVER_ESOUND "EsounD 드라이버" + IDS_DRIVER_OSS "OSS 드라이버" diff --git a/programs/winecfg/Lt.rc b/programs/winecfg/Lt.rc index 7a979f0..e4f7ff4 100644 --- a/programs/winecfg/Lt.rc @@ -191,10 +191,10 @@ index 4cc4e85..9440ebc 100644 IDS_DRIVER_ESOUND "Sterownik EsounD" IDS_DRIVER_OSS "Sterownik OSS" diff --git a/programs/winecfg/Pt.rc b/programs/winecfg/Pt.rc -index a4929d6..43ae7a7 100644 +index f96b9ad..4d8a05b 100644 --- a/programs/winecfg/Pt.rc +++ b/programs/winecfg/Pt.rc -@@ -460,6 +460,7 @@ BEGIN +@@ -611,6 +611,7 @@ BEGIN IDS_ACCEL_STANDARD "Padrão" IDS_ACCEL_BASIC "Básico" IDS_ACCEL_EMULATION "Emulação" @@ -215,7 +215,7 @@ index f6fe5a0..cf96300 100644 IDS_DRIVER_ESOUND "Driver Esound" IDS_DRIVER_OSS "Driver OSS" diff --git a/programs/winecfg/Ru.rc b/programs/winecfg/Ru.rc -index 1673c43..8a98fcd 100644 +index b391edc..70d79f7 100644 --- a/programs/winecfg/Ru.rc +++ b/programs/winecfg/Ru.rc @@ -283,6 +283,7 @@ BEGIN @@ -263,7 +263,7 @@ index c124900..09a0b27 100644 IDS_DRIVER_ESOUND "EsounD Srcs" IDS_DRIVER_OSS "OSS Srcs" diff --git a/programs/winecfg/Zh.rc b/programs/winecfg/Zh.rc -index 51b9d94..49df9be 100644 +index 93f6416..84bc6a0 100644 --- a/programs/winecfg/Zh.rc +++ b/programs/winecfg/Zh.rc @@ -271,6 +271,7 @@ BEGIN @@ -275,13 +275,13 @@ index 51b9d94..49df9be 100644 IDS_DRIVER_ESOUND "EsounD 驱动" IDS_DRIVER_OSS "OSS 驱动" diff --git a/programs/winecfg/audio.c b/programs/winecfg/audio.c -index 5cf2b34..35da236 100644 +index 134296d..1d70c03 100644 --- a/programs/winecfg/audio.c +++ b/programs/winecfg/audio.c -@@ -89,6 +89,7 @@ typedef struct +@@ -90,6 +90,7 @@ typedef struct } AUDIO_DRIVER; - static const AUDIO_DRIVER sAudioDrivers[] = { + static AUDIO_DRIVER sAudioDrivers[] = { + {IDS_DRIVER_PULSE, "pulse"}, {IDS_DRIVER_ALSA, "alsa"}, {IDS_DRIVER_OSS, "oss"}, From cf3e33e09f834514ba1b9eb7d11b6f6adca9c8e3 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Wed, 30 Jun 2010 20:03:03 +0000 Subject: [PATCH 150/715] - rc5 --- .cvsignore | 2 +- sources | 2 +- wine.spec | 16 +++++---- ...ecfg.patch => winepulse-0.38-winecfg.patch | 34 +++++++++---------- 4 files changed, 29 insertions(+), 25 deletions(-) rename winepulse-0.37-winecfg.patch => winepulse-0.38-winecfg.patch (95%) diff --git a/.cvsignore b/.cvsignore index d3e1bcb..3bcadfd 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-1.2-rc4.tar.bz2 +wine-1.2-rc5.tar.bz2 diff --git a/sources b/sources index 5a633e5..376d4a1 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -761eaf2174aa1fff0b75059abf482e2f wine-1.2-rc4.tar.bz2 +7a7911aec84ca059e623978db17fba19 wine-1.2-rc5.tar.bz2 diff --git a/wine.spec b/wine.spec index 9a14c7c..a404712 100644 --- a/wine.spec +++ b/wine.spec @@ -1,13 +1,13 @@ %define no64bit 0 Name: wine Version: 1.2.0 -Release: 0.4.rc4%{?dist} +Release: 0.5.rc5%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.2-rc4.tar.bz2 +Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.2-rc5.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -47,7 +47,7 @@ Patch200: wine-imagemagick-6.5.patch # rebased for .42 see #580073 Patch400: winepulse-0.35-configure.ac.patch Patch401: http://art.ified.ca/downloads/winepulse/winepulse-0.36.patch -Patch402: http://art.ified.ca/downloads/winepulse/winepulse-0.37-winecfg.patch +Patch402: http://art.ified.ca/downloads/winepulse/winepulse-0.38-winecfg.patch Source402: README-FEDORA-PULSEAUDIO @@ -223,7 +223,7 @@ Requires: wine-marlett-fonts = %{version}-%{release} #Requires: wine-tahoma-fonts = %{version}-%{release} Requires: wine-symbol-fonts = %{version}-%{release} # intermediate fix for #593140 -Requires: liberation-sans-fonts liberation-serif-fonts +Requires: liberation-sans-fonts liberation-serif-fonts liberation-narrow-fonts %description fonts %{summary} @@ -410,7 +410,7 @@ This package adds an openal driver for wine. %prep -%setup -q -n %{name}-1.2-rc4 +%setup -q -n %{name}-1.2-rc5 %patch1 %patch100 @@ -418,7 +418,6 @@ This package adds an openal driver for wine. %patch400 %patch401 -p1 %patch402 -p1 - %patch1000 autoreconf @@ -1254,6 +1253,11 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/openal32.dll.so %changelog +* Sun Jun 27 2010 Andreas Bierfert +- 1.2-0.5.rc5 +- version upgrade +- require liberation-narrow-fonts + * Fri Jun 18 2010 Andreas Bierfert - 1.2-0.4.rc4 - version upgrade diff --git a/winepulse-0.37-winecfg.patch b/winepulse-0.38-winecfg.patch similarity index 95% rename from winepulse-0.37-winecfg.patch rename to winepulse-0.38-winecfg.patch index 837d40e..30d17ed 100644 --- a/winepulse-0.37-winecfg.patch +++ b/winepulse-0.38-winecfg.patch @@ -59,7 +59,7 @@ index 9fc42ea..5bd66f9 100644 IDS_DRIVER_ESOUND "EsounD Driver" IDS_DRIVER_OSS "OSS Driver" diff --git a/programs/winecfg/Es.rc b/programs/winecfg/Es.rc -index 0b9a8fa..a7496a8 100644 +index dcf8e37..d46f32e 100644 --- a/programs/winecfg/Es.rc +++ b/programs/winecfg/Es.rc @@ -277,6 +277,7 @@ BEGIN @@ -131,17 +131,17 @@ index a082856..e5a889b 100644 IDS_DRIVER_ESOUND "EsounD ドライバ" IDS_DRIVER_OSS "OSS ドライバ" diff --git a/programs/winecfg/Ko.rc b/programs/winecfg/Ko.rc -index 673a70e..b92b146 100644 +index 6321fe8..279a99d 100644 --- a/programs/winecfg/Ko.rc +++ b/programs/winecfg/Ko.rc -@@ -281,6 +281,7 @@ BEGIN - IDS_ACCEL_STANDARD "ǥ" - IDS_ACCEL_BASIC "⺻" - IDS_ACCEL_EMULATION "ֹķ̼" -+ IDS_DRIVER_PULSE "PulseAudio ̹" - IDS_DRIVER_ALSA "ALSA ̹" - IDS_DRIVER_ESOUND "EsounD ̹" - IDS_DRIVER_OSS "OSS ̹" +@@ -282,6 +282,7 @@ BEGIN + IDS_ACCEL_STANDARD "표준" + IDS_ACCEL_BASIC "기본" + IDS_ACCEL_EMULATION "애뮬레이션" ++ IDS_DRIVER_PULSE "PulseAudio 드라이버" + IDS_DRIVER_ALSA "ALSA 드라이버" + IDS_DRIVER_ESOUND "EsounD 드라이버" + IDS_DRIVER_OSS "OSS 드라이버" diff --git a/programs/winecfg/Lt.rc b/programs/winecfg/Lt.rc index 7a979f0..e4f7ff4 100644 --- a/programs/winecfg/Lt.rc @@ -191,10 +191,10 @@ index 4cc4e85..9440ebc 100644 IDS_DRIVER_ESOUND "Sterownik EsounD" IDS_DRIVER_OSS "Sterownik OSS" diff --git a/programs/winecfg/Pt.rc b/programs/winecfg/Pt.rc -index a4929d6..43ae7a7 100644 +index f96b9ad..4d8a05b 100644 --- a/programs/winecfg/Pt.rc +++ b/programs/winecfg/Pt.rc -@@ -460,6 +460,7 @@ BEGIN +@@ -611,6 +611,7 @@ BEGIN IDS_ACCEL_STANDARD "Padrão" IDS_ACCEL_BASIC "Básico" IDS_ACCEL_EMULATION "Emulação" @@ -215,7 +215,7 @@ index f6fe5a0..cf96300 100644 IDS_DRIVER_ESOUND "Driver Esound" IDS_DRIVER_OSS "Driver OSS" diff --git a/programs/winecfg/Ru.rc b/programs/winecfg/Ru.rc -index 1673c43..8a98fcd 100644 +index b391edc..70d79f7 100644 --- a/programs/winecfg/Ru.rc +++ b/programs/winecfg/Ru.rc @@ -283,6 +283,7 @@ BEGIN @@ -263,7 +263,7 @@ index c124900..09a0b27 100644 IDS_DRIVER_ESOUND "EsounD Srcs" IDS_DRIVER_OSS "OSS Srcs" diff --git a/programs/winecfg/Zh.rc b/programs/winecfg/Zh.rc -index 51b9d94..49df9be 100644 +index 93f6416..84bc6a0 100644 --- a/programs/winecfg/Zh.rc +++ b/programs/winecfg/Zh.rc @@ -271,6 +271,7 @@ BEGIN @@ -275,13 +275,13 @@ index 51b9d94..49df9be 100644 IDS_DRIVER_ESOUND "EsounD 驱动" IDS_DRIVER_OSS "OSS 驱动" diff --git a/programs/winecfg/audio.c b/programs/winecfg/audio.c -index 5cf2b34..35da236 100644 +index 134296d..1d70c03 100644 --- a/programs/winecfg/audio.c +++ b/programs/winecfg/audio.c -@@ -89,6 +89,7 @@ typedef struct +@@ -90,6 +90,7 @@ typedef struct } AUDIO_DRIVER; - static const AUDIO_DRIVER sAudioDrivers[] = { + static AUDIO_DRIVER sAudioDrivers[] = { + {IDS_DRIVER_PULSE, "pulse"}, {IDS_DRIVER_ALSA, "alsa"}, {IDS_DRIVER_OSS, "oss"}, From 7538be339c5927c2d93cc7a75093af4fcb4e4b89 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 4 Jul 2010 14:42:22 +0000 Subject: [PATCH 151/715] - rc6 - winepulse .38 - new wine icon --- .cvsignore | 2 +- sources | 2 +- wine.spec | 22 ++++++++++++------ winepulse-0.36.patch => winepulse-0.38.patch | 24 ++++++++++++-------- 4 files changed, 32 insertions(+), 18 deletions(-) rename winepulse-0.36.patch => winepulse-0.38.patch (99%) diff --git a/.cvsignore b/.cvsignore index 3bcadfd..5bf1046 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-1.2-rc5.tar.bz2 +wine-1.2-rc6.tar.bz2 diff --git a/sources b/sources index 376d4a1..f1519b0 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -7a7911aec84ca059e623978db17fba19 wine-1.2-rc5.tar.bz2 +689c6ae6baaa33ca6532af2cec05d26b wine-1.2-rc6.tar.bz2 diff --git a/wine.spec b/wine.spec index a404712..523a0a4 100644 --- a/wine.spec +++ b/wine.spec @@ -1,13 +1,13 @@ %define no64bit 0 Name: wine Version: 1.2.0 -Release: 0.5.rc5%{?dist} +Release: 0.6.rc6%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.2-rc5.tar.bz2 +Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.2-rc6.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -46,7 +46,7 @@ Patch200: wine-imagemagick-6.5.patch # and http://art.ified.ca/?page_id=40 # rebased for .42 see #580073 Patch400: winepulse-0.35-configure.ac.patch -Patch401: http://art.ified.ca/downloads/winepulse/winepulse-0.36.patch +Patch401: http://art.ified.ca/downloads/winepulse/winepulse-0.38.patch Patch402: http://art.ified.ca/downloads/winepulse/winepulse-0.38-winecfg.patch Source402: README-FEDORA-PULSEAUDIO @@ -410,7 +410,7 @@ This package adds an openal driver for wine. %prep -%setup -q -n %{name}-1.2-rc5 +%setup -q -n %{name}-1.2-rc6 %patch1 %patch100 @@ -464,8 +464,10 @@ install -p -m 644 %{SOURCE201} \ # install desktop files mkdir -p %{buildroot}%{_datadir}/pixmaps -install -p -m 644 programs/winemenubuilder/wine.xpm \ - %{buildroot}%{_datadir}/pixmaps/wine.xpm +icotool -x --width=32 --height=32 --bit-depth=32 -o dlls/user32/resources/ \ + dlls/user32/resources/oic_winlogo.ico +install -p -m 644 dlls/user32/resources/*png \ + %{buildroot}%{_datadir}/pixmaps/wine.png icotool -x --width=32 --height=32 --bit-depth=32 -o programs/notepad/ \ programs/notepad/notepad.ico @@ -1116,7 +1118,7 @@ update-desktop-database &>/dev/null || : %{_datadir}/wine/generic.ppd %{_datadir}/wine/wine.inf %{_datadir}/wine/l_intl.nls -%{_datadir}/pixmaps/*xpm +%{_datadir}/pixmaps/*png %files fonts %defattr(-,root,root,-) @@ -1253,6 +1255,12 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/openal32.dll.so %changelog +* Sun Jul 04 2010 Andreas Bierfert +- 1.2-0.6.rc6 +- version upgrade +- use new winelogo from user32 +- winepulse upgrade + * Sun Jun 27 2010 Andreas Bierfert - 1.2-0.5.rc5 - version upgrade diff --git a/winepulse-0.36.patch b/winepulse-0.38.patch similarity index 99% rename from winepulse-0.36.patch rename to winepulse-0.38.patch index 7ea2ef1..6c4c271 100644 --- a/winepulse-0.36.patch +++ b/winepulse-0.38.patch @@ -831,10 +831,10 @@ index 0000000..9dd1f80 +} diff --git a/dlls/winepulse.drv/wavein.c b/dlls/winepulse.drv/wavein.c new file mode 100644 -index 0000000..8aea538 +index 0000000..af721b9 --- /dev/null +++ b/dlls/winepulse.drv/wavein.c -@@ -0,0 +1,588 @@ +@@ -0,0 +1,589 @@ +/* + * Wine Driver for PulseAudio - WaveIn Functionality + * http://pulseaudio.org/ @@ -1157,7 +1157,8 @@ index 0000000..8aea538 + TRACE("Asking to open %s for recording.\n", wdi->device_name); + pa_stream_connect_record(wwi->stream, wdi->device_name, &wwi->buffer_attr, + PA_STREAM_START_CORKED | -+ PA_STREAM_AUTO_TIMING_UPDATE); ++ PA_STREAM_AUTO_TIMING_UPDATE | ++ PA_STREAM_ADJUST_LATENCY); + + for (;;) { + pa_context_state_t cstate = pa_context_get_state(PULSE_context); @@ -1425,10 +1426,10 @@ index 0000000..8aea538 +#endif /* HAVE_PULSEAUDIO */ diff --git a/dlls/winepulse.drv/waveout.c b/dlls/winepulse.drv/waveout.c new file mode 100644 -index 0000000..989dff5 +index 0000000..99b7c18 --- /dev/null +++ b/dlls/winepulse.drv/waveout.c -@@ -0,0 +1,1024 @@ +@@ -0,0 +1,1029 @@ +/* + * Wine Driver for PulseAudio - WaveOut Functionality + * http://pulseaudio.org/ @@ -1472,6 +1473,9 @@ index 0000000..989dff5 + +#if HAVE_PULSEAUDIO + ++/* Use this to make the infinite wait not so infinite */ ++#define PULSE_INFINITE 10000 ++ +/* state diagram for waveOut writing: + * + * +---------+-------------+---------------+---------------------------------+ @@ -1628,6 +1632,8 @@ index 0000000..989dff5 + * Because of bugs pa_stream_set_buffer_attr() does not work on started + * streams for server version 0.9.11 to 0.9.14 */ + PULSE_WaitForOperation(pa_stream_set_buffer_attr(wwo->stream, &wwo->buffer_attr, PULSE_StreamSuccessCallback, wwo)); ++ TRACE("Triggering stream and hoping for the best\n"); ++ PULSE_WaitForOperation(pa_stream_trigger(wwo->stream, PULSE_StreamSuccessCallback, wwo)); + } + pa_threaded_mainloop_unlock(PULSE_ml); + } @@ -1651,8 +1657,8 @@ index 0000000..989dff5 + * - we hit the beginning of a running loop + * - we hit a wavehdr which hasn't finished playing + */ -+ if (lpWaveHdr == wwo->lpLoopPtr) { TRACE("loop %p\n", lpWaveHdr); return INFINITE; } -+ if (lpWaveHdr == wwo->lpPlayPtr) { TRACE("play %p\n", lpWaveHdr); return INFINITE; } ++ if (lpWaveHdr == wwo->lpLoopPtr) { TRACE("loop %p\n", lpWaveHdr); return PULSE_INFINITE; } ++ if (lpWaveHdr == wwo->lpPlayPtr) { TRACE("play %p\n", lpWaveHdr); return PULSE_INFINITE; } + + /* See if this data has been played, and if not, return when it will have been */ + wait = pa_bytes_to_usec(lpWaveHdr->reserved + lpWaveHdr->dwBufferLength, &wwo->sample_spec); @@ -1673,7 +1679,7 @@ index 0000000..989dff5 + } + /* No more wavehdrs */ + TRACE("Empty queue\n"); -+ return INFINITE; ++ return PULSE_INFINITE; +} + +/************************************************************************** @@ -2041,7 +2047,7 @@ index 0000000..989dff5 + /* Try and connect */ + TRACE("Connecting stream for playback on %s.\n", wdo->device_name); + pa_threaded_mainloop_lock(PULSE_ml); -+ pa_stream_connect_playback(wwo->stream, wdo->device_name, NULL, PA_STREAM_AUTO_TIMING_UPDATE | PA_STREAM_ADJUST_LATENCY, NULL, NULL); ++ pa_stream_connect_playback(wwo->stream, wdo->device_name, &wwo->buffer_attr, PA_STREAM_AUTO_TIMING_UPDATE | PA_STREAM_ADJUST_LATENCY, NULL, NULL); + + /* Wait for connection */ + for (;;) { From d583f9ddaf53be68138672c7c709813f95eec86a Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 4 Jul 2010 14:42:23 +0000 Subject: [PATCH 152/715] - rc6 - winepulse .38 - new wine icon --- .cvsignore | 2 +- sources | 2 +- wine.spec | 22 ++++++++++++------ winepulse-0.36.patch => winepulse-0.38.patch | 24 ++++++++++++-------- 4 files changed, 32 insertions(+), 18 deletions(-) rename winepulse-0.36.patch => winepulse-0.38.patch (99%) diff --git a/.cvsignore b/.cvsignore index 3bcadfd..5bf1046 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-1.2-rc5.tar.bz2 +wine-1.2-rc6.tar.bz2 diff --git a/sources b/sources index 376d4a1..f1519b0 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -7a7911aec84ca059e623978db17fba19 wine-1.2-rc5.tar.bz2 +689c6ae6baaa33ca6532af2cec05d26b wine-1.2-rc6.tar.bz2 diff --git a/wine.spec b/wine.spec index a404712..523a0a4 100644 --- a/wine.spec +++ b/wine.spec @@ -1,13 +1,13 @@ %define no64bit 0 Name: wine Version: 1.2.0 -Release: 0.5.rc5%{?dist} +Release: 0.6.rc6%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.2-rc5.tar.bz2 +Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.2-rc6.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -46,7 +46,7 @@ Patch200: wine-imagemagick-6.5.patch # and http://art.ified.ca/?page_id=40 # rebased for .42 see #580073 Patch400: winepulse-0.35-configure.ac.patch -Patch401: http://art.ified.ca/downloads/winepulse/winepulse-0.36.patch +Patch401: http://art.ified.ca/downloads/winepulse/winepulse-0.38.patch Patch402: http://art.ified.ca/downloads/winepulse/winepulse-0.38-winecfg.patch Source402: README-FEDORA-PULSEAUDIO @@ -410,7 +410,7 @@ This package adds an openal driver for wine. %prep -%setup -q -n %{name}-1.2-rc5 +%setup -q -n %{name}-1.2-rc6 %patch1 %patch100 @@ -464,8 +464,10 @@ install -p -m 644 %{SOURCE201} \ # install desktop files mkdir -p %{buildroot}%{_datadir}/pixmaps -install -p -m 644 programs/winemenubuilder/wine.xpm \ - %{buildroot}%{_datadir}/pixmaps/wine.xpm +icotool -x --width=32 --height=32 --bit-depth=32 -o dlls/user32/resources/ \ + dlls/user32/resources/oic_winlogo.ico +install -p -m 644 dlls/user32/resources/*png \ + %{buildroot}%{_datadir}/pixmaps/wine.png icotool -x --width=32 --height=32 --bit-depth=32 -o programs/notepad/ \ programs/notepad/notepad.ico @@ -1116,7 +1118,7 @@ update-desktop-database &>/dev/null || : %{_datadir}/wine/generic.ppd %{_datadir}/wine/wine.inf %{_datadir}/wine/l_intl.nls -%{_datadir}/pixmaps/*xpm +%{_datadir}/pixmaps/*png %files fonts %defattr(-,root,root,-) @@ -1253,6 +1255,12 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/openal32.dll.so %changelog +* Sun Jul 04 2010 Andreas Bierfert +- 1.2-0.6.rc6 +- version upgrade +- use new winelogo from user32 +- winepulse upgrade + * Sun Jun 27 2010 Andreas Bierfert - 1.2-0.5.rc5 - version upgrade diff --git a/winepulse-0.36.patch b/winepulse-0.38.patch similarity index 99% rename from winepulse-0.36.patch rename to winepulse-0.38.patch index 7ea2ef1..6c4c271 100644 --- a/winepulse-0.36.patch +++ b/winepulse-0.38.patch @@ -831,10 +831,10 @@ index 0000000..9dd1f80 +} diff --git a/dlls/winepulse.drv/wavein.c b/dlls/winepulse.drv/wavein.c new file mode 100644 -index 0000000..8aea538 +index 0000000..af721b9 --- /dev/null +++ b/dlls/winepulse.drv/wavein.c -@@ -0,0 +1,588 @@ +@@ -0,0 +1,589 @@ +/* + * Wine Driver for PulseAudio - WaveIn Functionality + * http://pulseaudio.org/ @@ -1157,7 +1157,8 @@ index 0000000..8aea538 + TRACE("Asking to open %s for recording.\n", wdi->device_name); + pa_stream_connect_record(wwi->stream, wdi->device_name, &wwi->buffer_attr, + PA_STREAM_START_CORKED | -+ PA_STREAM_AUTO_TIMING_UPDATE); ++ PA_STREAM_AUTO_TIMING_UPDATE | ++ PA_STREAM_ADJUST_LATENCY); + + for (;;) { + pa_context_state_t cstate = pa_context_get_state(PULSE_context); @@ -1425,10 +1426,10 @@ index 0000000..8aea538 +#endif /* HAVE_PULSEAUDIO */ diff --git a/dlls/winepulse.drv/waveout.c b/dlls/winepulse.drv/waveout.c new file mode 100644 -index 0000000..989dff5 +index 0000000..99b7c18 --- /dev/null +++ b/dlls/winepulse.drv/waveout.c -@@ -0,0 +1,1024 @@ +@@ -0,0 +1,1029 @@ +/* + * Wine Driver for PulseAudio - WaveOut Functionality + * http://pulseaudio.org/ @@ -1472,6 +1473,9 @@ index 0000000..989dff5 + +#if HAVE_PULSEAUDIO + ++/* Use this to make the infinite wait not so infinite */ ++#define PULSE_INFINITE 10000 ++ +/* state diagram for waveOut writing: + * + * +---------+-------------+---------------+---------------------------------+ @@ -1628,6 +1632,8 @@ index 0000000..989dff5 + * Because of bugs pa_stream_set_buffer_attr() does not work on started + * streams for server version 0.9.11 to 0.9.14 */ + PULSE_WaitForOperation(pa_stream_set_buffer_attr(wwo->stream, &wwo->buffer_attr, PULSE_StreamSuccessCallback, wwo)); ++ TRACE("Triggering stream and hoping for the best\n"); ++ PULSE_WaitForOperation(pa_stream_trigger(wwo->stream, PULSE_StreamSuccessCallback, wwo)); + } + pa_threaded_mainloop_unlock(PULSE_ml); + } @@ -1651,8 +1657,8 @@ index 0000000..989dff5 + * - we hit the beginning of a running loop + * - we hit a wavehdr which hasn't finished playing + */ -+ if (lpWaveHdr == wwo->lpLoopPtr) { TRACE("loop %p\n", lpWaveHdr); return INFINITE; } -+ if (lpWaveHdr == wwo->lpPlayPtr) { TRACE("play %p\n", lpWaveHdr); return INFINITE; } ++ if (lpWaveHdr == wwo->lpLoopPtr) { TRACE("loop %p\n", lpWaveHdr); return PULSE_INFINITE; } ++ if (lpWaveHdr == wwo->lpPlayPtr) { TRACE("play %p\n", lpWaveHdr); return PULSE_INFINITE; } + + /* See if this data has been played, and if not, return when it will have been */ + wait = pa_bytes_to_usec(lpWaveHdr->reserved + lpWaveHdr->dwBufferLength, &wwo->sample_spec); @@ -1673,7 +1679,7 @@ index 0000000..989dff5 + } + /* No more wavehdrs */ + TRACE("Empty queue\n"); -+ return INFINITE; ++ return PULSE_INFINITE; +} + +/************************************************************************** @@ -2041,7 +2047,7 @@ index 0000000..989dff5 + /* Try and connect */ + TRACE("Connecting stream for playback on %s.\n", wdo->device_name); + pa_threaded_mainloop_lock(PULSE_ml); -+ pa_stream_connect_playback(wwo->stream, wdo->device_name, NULL, PA_STREAM_AUTO_TIMING_UPDATE | PA_STREAM_ADJUST_LATENCY, NULL, NULL); ++ pa_stream_connect_playback(wwo->stream, wdo->device_name, &wwo->buffer_attr, PA_STREAM_AUTO_TIMING_UPDATE | PA_STREAM_ADJUST_LATENCY, NULL, NULL); + + /* Wait for connection */ + for (;;) { From 5e5179dccf00d74015f30c160209ba612bfb962e Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 12 Jul 2010 15:41:43 +0000 Subject: [PATCH 153/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine-const.patch | 20 ------------- wine.spec | 29 ++++++++++++++----- ...patch => winepulse-0.38-configure.ac.patch | 14 +++++---- 5 files changed, 32 insertions(+), 35 deletions(-) delete mode 100644 wine-const.patch rename winepulse-0.35-configure.ac.patch => winepulse-0.38-configure.ac.patch (88%) diff --git a/.cvsignore b/.cvsignore index 5bf1046..9fc1ac0 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-1.2-rc6.tar.bz2 +wine-1.2-rc7.tar.bz2 diff --git a/sources b/sources index f1519b0..c6f48ee 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -689c6ae6baaa33ca6532af2cec05d26b wine-1.2-rc6.tar.bz2 +05cc63418e603f3d689bcaa7c7768d01 wine-1.2-rc7.tar.bz2 diff --git a/wine-const.patch b/wine-const.patch deleted file mode 100644 index fe8ab34..0000000 --- a/wine-const.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- dlls/winhttp/net.c.old 2010-04-04 18:11:01.266148279 +0300 -+++ dlls/winhttp/net.c 2010-04-04 18:12:52.235163141 +0300 -@@ -91,7 +91,7 @@ - static void *libssl_handle; - static void *libcrypto_handle; - --static SSL_METHOD *method; -+static const SSL_METHOD *method; - static SSL_CTX *ctx; - static int hostname_idx; - static int error_idx; -@@ -113,7 +113,7 @@ - static void *OpenSSL_ssl_handle; - static void *OpenSSL_crypto_handle; - --static SSL_METHOD *meth; -+const static SSL_METHOD *meth; - static SSL_CTX *ctx; - static int hostname_idx; - static int error_idx; diff --git a/wine.spec b/wine.spec index 523a0a4..5f30c0d 100644 --- a/wine.spec +++ b/wine.spec @@ -1,13 +1,13 @@ %define no64bit 0 Name: wine Version: 1.2.0 -Release: 0.6.rc6%{?dist} +Release: 0.7.rc7%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.2-rc6.tar.bz2 +Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.2-rc7.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -44,8 +44,7 @@ Patch200: wine-imagemagick-6.5.patch # explain how to use wine with pulseaudio # see http://bugs.winehq.org/show_bug.cgi?id=10495 # and http://art.ified.ca/?page_id=40 -# rebased for .42 see #580073 -Patch400: winepulse-0.35-configure.ac.patch +Patch400: http://art.ified.ca/downloads/winepulse/winepulse-0.38-configure.ac.patch Patch401: http://art.ified.ca/downloads/winepulse/winepulse-0.38.patch Patch402: http://art.ified.ca/downloads/winepulse/winepulse-0.38-winecfg.patch Source402: README-FEDORA-PULSEAUDIO @@ -223,7 +222,10 @@ Requires: wine-marlett-fonts = %{version}-%{release} #Requires: wine-tahoma-fonts = %{version}-%{release} Requires: wine-symbol-fonts = %{version}-%{release} # intermediate fix for #593140 -Requires: liberation-sans-fonts liberation-serif-fonts liberation-narrow-fonts +Requires: liberation-sans-fonts liberation-serif-fonts liberation-mono-fonts +%if 0%{?fedora} > 12 || 0%{?rhel} > 6 +Requires: liberation-narrow-fonts +%endif %description fonts %{summary} @@ -410,12 +412,12 @@ This package adds an openal driver for wine. %prep -%setup -q -n %{name}-1.2-rc6 +%setup -q -n %{name}-1.2-rc7 %patch1 %patch100 %patch200 -%patch400 +%patch400 -p1 %patch401 -p1 %patch402 -p1 %patch1000 @@ -1126,30 +1128,37 @@ update-desktop-database &>/dev/null || : %files courier-fonts %defattr(-,root,root,-) +%doc COPYING.LIB %{_datadir}/fonts/wine-courier-fonts %files system-fonts %defattr(-,root,root,-) +%doc COPYING.LIB %{_datadir}/fonts/wine-system-fonts %files small-fonts %defattr(-,root,root,-) +%doc COPYING.LIB %{_datadir}/fonts/wine-small-fonts %files marlett-fonts +%doc COPYING.LIB %defattr(-,root,root,-) %{_datadir}/fonts/wine-marlett-fonts #%files ms-sans-serif-fonts #%defattr(-,root,root,-) +#%doc COPYING.LIB #%{_datadir}/fonts/wine-ms-sans-serif-fonts #%files tahoma-fonts #%defattr(-,root,root,-) +#%doc COPYING.LIB #%{_datadir}/fonts/wine-tahoma-fonts %files symbol-fonts %defattr(-,root,root,-) +%doc COPYING.LIB %{_datadir}/fonts/wine-symbol-fonts %files desktop @@ -1255,6 +1264,12 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/openal32.dll.so %changelog +* Sun Jul 11 2010 Andreas Bierfert +- 1.2-0.7.rc7 +- version upgrade +- make sure font packages include the license file in case they are installed + standalone + * Sun Jul 04 2010 Andreas Bierfert - 1.2-0.6.rc6 - version upgrade diff --git a/winepulse-0.35-configure.ac.patch b/winepulse-0.38-configure.ac.patch similarity index 88% rename from winepulse-0.35-configure.ac.patch rename to winepulse-0.38-configure.ac.patch index 9d5132d..d44a4e6 100644 --- a/winepulse-0.35-configure.ac.patch +++ b/winepulse-0.38-configure.ac.patch @@ -1,6 +1,8 @@ ---- configure.ac.orig 2010-05-10 16:39:57.000000000 +0200 -+++ configure.ac 2010-05-10 16:42:54.000000000 +0200 -@@ -68,6 +68,7 @@ +diff --git a/configure.ac b/configure.ac +index 61f376e..6fe1261 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -76,6 +76,7 @@ AC_ARG_WITH(png, AS_HELP_STRING([--without-png],[do not use PNG]), [if test "x$withval" = "xno"; then ac_cv_header_png_h=no; fi]) AC_ARG_WITH(pthread, AS_HELP_STRING([--without-pthread],[do not use the pthread library]), [if test "x$withval" = "xno"; then ac_cv_header_pthread_h=no; fi]) @@ -8,7 +10,7 @@ AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)])) AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF]), [if test "x$withval" = "xno"; then ac_cv_header_tiffio_h=no; fi]) -@@ -1361,6 +1362,31 @@ +@@ -1386,6 +1387,31 @@ then CFLAGS="$save_CFLAGS" fi @@ -40,7 +42,7 @@ dnl **** Check for ALSA 1.x **** AC_SUBST(ALSALIBS,"") if test "$ac_cv_header_sys_asoundlib_h" = "yes" -o "$ac_cv_header_alsa_asoundlib_h" = "yes" -@@ -1528,7 +1554,7 @@ +@@ -1553,7 +1579,7 @@ dnl **** Check for libodbc **** WINE_CHECK_SONAME(odbc,SQLConnect,,[AC_DEFINE_UNQUOTED(SONAME_LIBODBC,["libodbc.$LIBEXT"])]) dnl **** Check for any sound system **** @@ -49,7 +51,7 @@ "$ac_cv_header_sys_soundcard_h" != "yes" -a \ "$ac_cv_header_machine_soundcard_h" != "yes" -a \ "$ac_cv_header_soundcard_h" != "yes" -a \ -@@ -2621,6 +2647,7 @@ +@@ -2648,6 +2674,7 @@ WINE_CONFIG_DLL(winenas.drv) WINE_CONFIG_DLL(wineoss.drv) WINE_CONFIG_DLL(wineps.drv) WINE_CONFIG_DLL(wineps16.drv16,enable_win16) From 493cffc050ba0305d56cf2f3afa90db775d299fe Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 12 Jul 2010 15:41:44 +0000 Subject: [PATCH 154/715] - version upgrade --- .cvsignore | 2 +- sources | 2 +- wine-const.patch | 20 ------------- wine.spec | 29 ++++++++++++++----- ...patch => winepulse-0.38-configure.ac.patch | 14 +++++---- 5 files changed, 32 insertions(+), 35 deletions(-) delete mode 100644 wine-const.patch rename winepulse-0.35-configure.ac.patch => winepulse-0.38-configure.ac.patch (88%) diff --git a/.cvsignore b/.cvsignore index 5bf1046..9fc1ac0 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-1.2-rc6.tar.bz2 +wine-1.2-rc7.tar.bz2 diff --git a/sources b/sources index f1519b0..c6f48ee 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -689c6ae6baaa33ca6532af2cec05d26b wine-1.2-rc6.tar.bz2 +05cc63418e603f3d689bcaa7c7768d01 wine-1.2-rc7.tar.bz2 diff --git a/wine-const.patch b/wine-const.patch deleted file mode 100644 index fe8ab34..0000000 --- a/wine-const.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- dlls/winhttp/net.c.old 2010-04-04 18:11:01.266148279 +0300 -+++ dlls/winhttp/net.c 2010-04-04 18:12:52.235163141 +0300 -@@ -91,7 +91,7 @@ - static void *libssl_handle; - static void *libcrypto_handle; - --static SSL_METHOD *method; -+static const SSL_METHOD *method; - static SSL_CTX *ctx; - static int hostname_idx; - static int error_idx; -@@ -113,7 +113,7 @@ - static void *OpenSSL_ssl_handle; - static void *OpenSSL_crypto_handle; - --static SSL_METHOD *meth; -+const static SSL_METHOD *meth; - static SSL_CTX *ctx; - static int hostname_idx; - static int error_idx; diff --git a/wine.spec b/wine.spec index 523a0a4..5f30c0d 100644 --- a/wine.spec +++ b/wine.spec @@ -1,13 +1,13 @@ %define no64bit 0 Name: wine Version: 1.2.0 -Release: 0.6.rc6%{?dist} +Release: 0.7.rc7%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.2-rc6.tar.bz2 +Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.2-rc7.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -44,8 +44,7 @@ Patch200: wine-imagemagick-6.5.patch # explain how to use wine with pulseaudio # see http://bugs.winehq.org/show_bug.cgi?id=10495 # and http://art.ified.ca/?page_id=40 -# rebased for .42 see #580073 -Patch400: winepulse-0.35-configure.ac.patch +Patch400: http://art.ified.ca/downloads/winepulse/winepulse-0.38-configure.ac.patch Patch401: http://art.ified.ca/downloads/winepulse/winepulse-0.38.patch Patch402: http://art.ified.ca/downloads/winepulse/winepulse-0.38-winecfg.patch Source402: README-FEDORA-PULSEAUDIO @@ -223,7 +222,10 @@ Requires: wine-marlett-fonts = %{version}-%{release} #Requires: wine-tahoma-fonts = %{version}-%{release} Requires: wine-symbol-fonts = %{version}-%{release} # intermediate fix for #593140 -Requires: liberation-sans-fonts liberation-serif-fonts liberation-narrow-fonts +Requires: liberation-sans-fonts liberation-serif-fonts liberation-mono-fonts +%if 0%{?fedora} > 12 || 0%{?rhel} > 6 +Requires: liberation-narrow-fonts +%endif %description fonts %{summary} @@ -410,12 +412,12 @@ This package adds an openal driver for wine. %prep -%setup -q -n %{name}-1.2-rc6 +%setup -q -n %{name}-1.2-rc7 %patch1 %patch100 %patch200 -%patch400 +%patch400 -p1 %patch401 -p1 %patch402 -p1 %patch1000 @@ -1126,30 +1128,37 @@ update-desktop-database &>/dev/null || : %files courier-fonts %defattr(-,root,root,-) +%doc COPYING.LIB %{_datadir}/fonts/wine-courier-fonts %files system-fonts %defattr(-,root,root,-) +%doc COPYING.LIB %{_datadir}/fonts/wine-system-fonts %files small-fonts %defattr(-,root,root,-) +%doc COPYING.LIB %{_datadir}/fonts/wine-small-fonts %files marlett-fonts +%doc COPYING.LIB %defattr(-,root,root,-) %{_datadir}/fonts/wine-marlett-fonts #%files ms-sans-serif-fonts #%defattr(-,root,root,-) +#%doc COPYING.LIB #%{_datadir}/fonts/wine-ms-sans-serif-fonts #%files tahoma-fonts #%defattr(-,root,root,-) +#%doc COPYING.LIB #%{_datadir}/fonts/wine-tahoma-fonts %files symbol-fonts %defattr(-,root,root,-) +%doc COPYING.LIB %{_datadir}/fonts/wine-symbol-fonts %files desktop @@ -1255,6 +1264,12 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/openal32.dll.so %changelog +* Sun Jul 11 2010 Andreas Bierfert +- 1.2-0.7.rc7 +- version upgrade +- make sure font packages include the license file in case they are installed + standalone + * Sun Jul 04 2010 Andreas Bierfert - 1.2-0.6.rc6 - version upgrade diff --git a/winepulse-0.35-configure.ac.patch b/winepulse-0.38-configure.ac.patch similarity index 88% rename from winepulse-0.35-configure.ac.patch rename to winepulse-0.38-configure.ac.patch index 9d5132d..d44a4e6 100644 --- a/winepulse-0.35-configure.ac.patch +++ b/winepulse-0.38-configure.ac.patch @@ -1,6 +1,8 @@ ---- configure.ac.orig 2010-05-10 16:39:57.000000000 +0200 -+++ configure.ac 2010-05-10 16:42:54.000000000 +0200 -@@ -68,6 +68,7 @@ +diff --git a/configure.ac b/configure.ac +index 61f376e..6fe1261 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -76,6 +76,7 @@ AC_ARG_WITH(png, AS_HELP_STRING([--without-png],[do not use PNG]), [if test "x$withval" = "xno"; then ac_cv_header_png_h=no; fi]) AC_ARG_WITH(pthread, AS_HELP_STRING([--without-pthread],[do not use the pthread library]), [if test "x$withval" = "xno"; then ac_cv_header_pthread_h=no; fi]) @@ -8,7 +10,7 @@ AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)])) AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF]), [if test "x$withval" = "xno"; then ac_cv_header_tiffio_h=no; fi]) -@@ -1361,6 +1362,31 @@ +@@ -1386,6 +1387,31 @@ then CFLAGS="$save_CFLAGS" fi @@ -40,7 +42,7 @@ dnl **** Check for ALSA 1.x **** AC_SUBST(ALSALIBS,"") if test "$ac_cv_header_sys_asoundlib_h" = "yes" -o "$ac_cv_header_alsa_asoundlib_h" = "yes" -@@ -1528,7 +1554,7 @@ +@@ -1553,7 +1579,7 @@ dnl **** Check for libodbc **** WINE_CHECK_SONAME(odbc,SQLConnect,,[AC_DEFINE_UNQUOTED(SONAME_LIBODBC,["libodbc.$LIBEXT"])]) dnl **** Check for any sound system **** @@ -49,7 +51,7 @@ "$ac_cv_header_sys_soundcard_h" != "yes" -a \ "$ac_cv_header_machine_soundcard_h" != "yes" -a \ "$ac_cv_header_soundcard_h" != "yes" -a \ -@@ -2621,6 +2647,7 @@ +@@ -2648,6 +2674,7 @@ WINE_CONFIG_DLL(winenas.drv) WINE_CONFIG_DLL(wineoss.drv) WINE_CONFIG_DLL(wineps.drv) WINE_CONFIG_DLL(wineps16.drv16,enable_win16) From 976ed85709453efb5efc06e1b1d3636eb866a107 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Fri, 16 Jul 2010 19:58:03 +0000 Subject: [PATCH 155/715] - 1.2 final - improve fonts patch --- .cvsignore | 2 +- sources | 2 +- wine-fonts.patch | 81 +++++++++++++++++++++++-------------- wine.spec | 103 ++++++++++++++++++++++++++++++----------------- 4 files changed, 120 insertions(+), 68 deletions(-) diff --git a/.cvsignore b/.cvsignore index 9fc1ac0..7ffd599 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-1.2-rc7.tar.bz2 +wine-1.2.tar.bz2 diff --git a/sources b/sources index c6f48ee..acdae65 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -05cc63418e603f3d689bcaa7c7768d01 wine-1.2-rc7.tar.bz2 +eb4e5423b277fc1e77807b04f366f7b7 wine-1.2.tar.bz2 diff --git a/wine-fonts.patch b/wine-fonts.patch index bdc7504..72385ae 100644 --- a/wine-fonts.patch +++ b/wine-fonts.patch @@ -1,5 +1,23 @@ +--- tools/wine.inf.in.orig 2010-05-26 07:41:44.000000000 +0200 ++++ tools/wine.inf.in 2010-05-26 07:46:15.000000000 +0200 +@@ -576,13 +576,14 @@ + HKLM,%FontSubStr%,"Courier New TUR,162",,"Courier New,162" + HKLM,%FontSubStr%,"Helv",,"MS Sans Serif" + HKLM,%FontSubStr%,"Helvetica",,"Arial" +-HKLM,%FontSubStr%,"MS Shell Dlg 2",,"Tahoma" ++HKLM,%FontSubStr%,"MS Shell Dlg 2",,"Liberation Sans" + HKLM,%FontSubStr%,"Times",,"Times New Roman" + HKLM,%FontSubStr%,"Times New Roman Baltic,186",,"Times New Roman,186" + HKLM,%FontSubStr%,"Times New Roman CE,238",,"Times New Roman,238" + HKLM,%FontSubStr%,"Times New Roman CYR,204",,"Times New Roman,204" + HKLM,%FontSubStr%,"Times New Roman Greek,161",,"Times New Roman,161" + HKLM,%FontSubStr%,"Times New Roman TUR,162",,"Times New Roman,162" ++HKLM,%FontSubStr%,"MS Sans Serif",,"Liberation Serif" + HKLM,System\CurrentControlSet\Hardware Profiles\Current\Software\Fonts,"LogPixels",0x10003,0x00000060 + + [MCI] --- dlls/gdi32/freetype.c.orig 2010-05-19 22:02:43.000000000 +0200 -+++ dlls/gdi32/freetype.c 2010-05-19 23:57:27.000000000 +0200 ++++ dlls/gdi32/freetype.c 2010-07-16 11:43:15.000000000 +0200 @@ -400,7 +400,7 @@ /* Interesting and well-known (frequently-assumed!) font names */ static const WCHAR Lucida_Sans_Unicode[] = {'L','u','c','i','d','a',' ','S','a','n','s',' ','U','n','i','c','o','d','e',0}; @@ -9,7 +27,17 @@ static const WCHAR MS_UI_Gothic[] = {'M','S',' ','U','I',' ','G','o','t','h','i','c',0}; static const WCHAR SimSun[] = {'S','i','m','S','u','n',0}; static const WCHAR Gulim[] = {'G','u','l','i','m',0}; -@@ -1641,7 +1641,7 @@ +@@ -494,6 +494,9 @@ + 'C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\','F','o','n','t','L','i','n','k','\\', + 'S','y','s','t','e','m','L','i','n','k',0}; + ++static const char liberationsans[] = {'Z',':','\\','u','s','r','\\','s','h','a','r','e','\\','f','o','n','t','s','\\','l','i','b','e','r','a','t','i','o','n','\\','L','i','b','e','r','a','t','i','o','n','S','a','n','s','-','R','e','g','u','l','a','r','.','t','t','f',0}; ++static const char liberationserif[] = {'Z',':','\\','u','s','r','\\','s','h','a','r','e','\\','f','o','n','t','s','\\','l','i','b','e','r','a','t','i','o','n','\\','L','i','b','e','r','a','t','i','o','n','S','e','r','i','f','-','R','e','g','u','l','a','r','.','t','t','f',0}; ++ + /**************************************** + * Notes on .fon files + * +@@ -1641,7 +1644,7 @@ WCHAR *entry, *next; SYSTEM_LINKS *font_link, *system_font_link; CHILD_FONT *child_font; @@ -18,7 +46,7 @@ static const WCHAR System[] = {'S','y','s','t','e','m',0}; FONTSIGNATURE fs; Family *family; -@@ -1723,25 +1723,25 @@ +@@ -1723,25 +1726,25 @@ RegCloseKey(hkey); } @@ -49,7 +77,7 @@ { CHILD_FONT *font_link_entry; LIST_FOR_EACH_ENTRY(font_link_entry, &font_link->links, CHILD_FONT, entry) -@@ -2193,21 +2193,21 @@ +@@ -2193,21 +2196,21 @@ /* Latin 1 (United States) */ { 1252, 437, "vgaoem.fon", "vgafix.fon", "vgasys.fon", "coure.fon", "serife.fon", "smalle.fon", "sserife.fon", @@ -74,7 +102,7 @@ "Fixedsys,238", "System,238", "Courier New,238", "MS Serif,238", "Small Fonts,238", "MS Sans Serif,238", "MS Sans Serif,238", "MS Serif,238", -@@ -2218,7 +2218,7 @@ +@@ -2218,7 +2221,7 @@ /* Cyrillic */ { 1251, 866, "vga866.fon", "vgafixr.fon", "vgasysr.fon", "courer.fon", "serifer.fon", "smaller.fon", "sserifer.fon", @@ -83,7 +111,7 @@ "Fixedsys,204", "System,204", "Courier New,204", "MS Serif,204", "Small Fonts,204", "MS Sans Serif,204", "MS Sans Serif,204", "MS Serif,204", -@@ -2229,7 +2229,7 @@ +@@ -2229,7 +2232,7 @@ /* Greek */ { 1253, 737, "vga869.fon", "vgafixg.fon", "vgasysg.fon", "coureg.fon", "serifeg.fon", "smalleg.fon", "sserifeg.fon", @@ -92,7 +120,7 @@ "Fixedsys,161", "System,161", "Courier New,161", "MS Serif,161", "Small Fonts,161", "MS Sans Serif,161", "MS Sans Serif,161", "MS Serif,161", -@@ -2240,7 +2240,7 @@ +@@ -2240,7 +2243,7 @@ /* Turkish */ { 1254, 857, "vga857.fon", "vgafixt.fon", "vgasyst.fon", "couret.fon", "serifet.fon", "smallet.fon", "sserifet.fon", @@ -101,7 +129,7 @@ "Fixedsys,162", "System,162", "Courier New,162", "MS Serif,162", "Small Fonts,162", "MS Sans Serif,162", "MS Sans Serif,162", "MS Serif,162", -@@ -2251,7 +2251,7 @@ +@@ -2251,7 +2254,7 @@ /* Hebrew */ { 1255, 862, "vgaoem.fon", "vgaf1255.fon", "vgas1255.fon", "coue1255.fon", "sere1255.fon", "smae1255.fon", "ssee1255.fon", @@ -110,7 +138,7 @@ "Fixedsys,177", "System,177", "Courier New,177", "MS Serif,177", "Small Fonts,177", "MS Sans Serif,177", "MS Sans Serif,177", "MS Serif,177", -@@ -2260,7 +2260,7 @@ +@@ -2260,7 +2263,7 @@ /* Arabic */ { 1256, 720, "vgaoem.fon", "vgaf1256.fon", "vgas1256.fon", "coue1256.fon", "sere1256.fon", "smae1256.fon", "ssee1256.fon", @@ -119,7 +147,7 @@ "Fixedsys,178", "System,178", "Courier New,178", "MS Serif,178", "Small Fonts,178", "MS Sans Serif,178", "MS Sans Serif,178", "MS Serif,178", -@@ -2269,7 +2269,7 @@ +@@ -2269,7 +2272,7 @@ /* Baltic */ { 1257, 775, "vga775.fon", "vgaf1257.fon", "vgas1257.fon", "coue1257.fon", "sere1257.fon", "smae1257.fon", "ssee1257.fon", @@ -128,7 +156,7 @@ "Fixedsys,186", "System,186", "Courier New,186", "MS Serif,186", "Small Fonts,186", "MS Sans Serif,186", "MS Sans Serif,186", "MS Serif,186", -@@ -2280,14 +2280,14 @@ +@@ -2280,14 +2283,14 @@ /* Vietnamese */ { 1258, 1258, "vga850.fon", "vgafix.fon", "vgasys.fon", "coure.fon", "serife.fon", "smalle.fon", "sserife.fon", @@ -145,7 +173,7 @@ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, { 0 }, { 0 }, { 0 } }, -@@ -2325,7 +2325,7 @@ +@@ -2325,7 +2328,7 @@ { Lucida_Sans_Unicode, Microsoft_Sans_Serif, @@ -154,7 +182,7 @@ }; static const struct font_links_defaults_list -@@ -2337,7 +2337,7 @@ +@@ -2337,7 +2340,7 @@ } font_links_defaults_list[] = { /* Non East-Asian */ @@ -163,21 +191,14 @@ { MS_UI_Gothic, SimSun, Gulim, PMingLiU, NULL } }, /* Below lists are courtesy of ---- tools/wine.inf.in.orig 2010-05-26 07:41:44.000000000 +0200 -+++ tools/wine.inf.in 2010-05-26 07:46:15.000000000 +0200 -@@ -576,13 +576,14 @@ - HKLM,%FontSubStr%,"Courier New TUR,162",,"Courier New,162" - HKLM,%FontSubStr%,"Helv",,"MS Sans Serif" - HKLM,%FontSubStr%,"Helvetica",,"Arial" --HKLM,%FontSubStr%,"MS Shell Dlg 2",,"Tahoma" -+HKLM,%FontSubStr%,"MS Shell Dlg 2",,"Liberation Sans" - HKLM,%FontSubStr%,"Times",,"Times New Roman" - HKLM,%FontSubStr%,"Times New Roman Baltic,186",,"Times New Roman,186" - HKLM,%FontSubStr%,"Times New Roman CE,238",,"Times New Roman,238" - HKLM,%FontSubStr%,"Times New Roman CYR,204",,"Times New Roman,204" - HKLM,%FontSubStr%,"Times New Roman Greek,161",,"Times New Roman,161" - HKLM,%FontSubStr%,"Times New Roman TUR,162",,"Times New Roman,162" -+HKLM,%FontSubStr%,"MS Sans Serif",,"Liberation Serif" - HKLM,System\CurrentControlSet\Hardware Profiles\Current\Software\Fonts,"LogPixels",0x10003,0x00000060 +@@ -2399,8 +2402,8 @@ + static void add_font_list(HKEY hkey, const struct nls_update_font_list *fl) + { + RegSetValueExA(hkey, "Courier", 0, REG_SZ, (const BYTE *)fl->courier, strlen(fl->courier)+1); +- RegSetValueExA(hkey, "MS Serif", 0, REG_SZ, (const BYTE *)fl->serif, strlen(fl->serif)+1); +- RegSetValueExA(hkey, "MS Sans Serif", 0, REG_SZ, (const BYTE *)fl->sserif, strlen(fl->sserif)+1); ++ RegSetValueExA(hkey, "MS Serif", 0, REG_SZ, (const BYTE *)liberationserif, strlen(liberationserif)+1); ++ RegSetValueExA(hkey, "MS Sans Serif", 0, REG_SZ, (const BYTE *)liberationsans, strlen(liberationsans)+1); + RegSetValueExA(hkey, "Small Fonts", 0, REG_SZ, (const BYTE *)fl->small, strlen(fl->small)+1); + } - [MCI] diff --git a/wine.spec b/wine.spec index 5f30c0d..848417b 100644 --- a/wine.spec +++ b/wine.spec @@ -1,13 +1,13 @@ %define no64bit 0 Name: wine Version: 1.2.0 -Release: 0.7.rc7%{?dist} +Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.2-rc7.tar.bz2 +Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.2.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -108,11 +108,16 @@ BuildRequires: dbus-devel hal-devel BuildRequires: gnutls-devel BuildRequires: pulseaudio-libs-devel BuildRequires: gsm-devel -BuildRequires: openal-soft-devel BuildRequires: libv4l-devel BuildRequires: fontpackages-devel -BuildRequires: icoutils BuildRequires: ImageMagick-devel + +%if 0%{?fedora} > 9 +BuildRequires: icoutils +BuildRequires: openal-soft-devel +%endif + + Requires: wine-desktop = %{version}-%{release} Requires: wine-fonts = %{version}-%{release} @@ -402,6 +407,7 @@ Requires: wine-core = %{version}-%{release} %description oss This package adds an oss driver for wine. +%if 0%{?fedora} > 9 %package openal Summary: Openal support for wine Group: System Environment/Libraries @@ -409,10 +415,10 @@ Requires: wine-core = %{version}-%{release} %description openal This package adds an openal driver for wine. - +%endif %prep -%setup -q -n %{name}-1.2-rc7 +%setup -q -n %{name}-1.2 %patch1 %patch100 @@ -464,7 +470,8 @@ install -p -m 644 %{SOURCE201} \ %{buildroot}%{_datadir}/desktop-directories/Wine.directory -# install desktop files +# extract and install icons +%if 0%{?fedora} > 9 mkdir -p %{buildroot}%{_datadir}/pixmaps icotool -x --width=32 --height=32 --bit-depth=32 -o dlls/user32/resources/ \ dlls/user32/resources/oic_winlogo.ico @@ -475,60 +482,74 @@ icotool -x --width=32 --height=32 --bit-depth=32 -o programs/notepad/ \ programs/notepad/notepad.ico install -p -m 644 programs/notepad/notepad*png \ %{buildroot}%{_datadir}/pixmaps/notepad.png -desktop-file-install \ - --vendor=fedora \ - --dir=%{buildroot}%{_datadir}/applications \ - %{SOURCE100} icotool -x --width=32 --height=32 --bit-depth=32 -o programs/regedit/ \ programs/regedit/regedit.ico install -p -m 644 programs/regedit/regedit*png \ %{buildroot}%{_datadir}/pixmaps/regedit.png -desktop-file-install \ - --vendor=fedora \ - --dir=%{buildroot}%{_datadir}/applications \ - %{SOURCE101} icotool -x --width=32 --height=32 --bit-depth=32 -o programs/msiexec/ \ programs/msiexec/msiexec.ico install -p -m 644 programs/msiexec/msiexec*png \ %{buildroot}%{_datadir}/pixmaps/msiexec.png -desktop-file-install \ - --vendor=fedora \ - --dir=%{buildroot}%{_datadir}/applications \ - %{SOURCE102} icotool -x --width=32 --height=32 --bit-depth=32 -o programs/winecfg/ \ programs/winecfg/winecfg.ico install -p -m 644 programs/winecfg/winecfg*png \ %{buildroot}%{_datadir}/pixmaps/winecfg.png -desktop-file-install \ - --vendor=fedora \ - --dir=%{buildroot}%{_datadir}/applications \ - %{SOURCE103} icotool -x --width=32 --height=32 --bit-depth=32 -o programs/winefile/ \ programs/winefile/winefile.ico install -p -m 644 programs/winefile/winefile*png \ %{buildroot}%{_datadir}/pixmaps/winefile.png -desktop-file-install \ - --vendor=fedora \ - --dir=%{buildroot}%{_datadir}/applications \ - %{SOURCE104} icotool -x --width=32 --height=32 --bit-depth=32 -o programs/winemine/ \ programs/winemine/winemine.ico install -p -m 644 programs/winemine/winemine*png \ %{buildroot}%{_datadir}/pixmaps/winemine.png -desktop-file-install \ - --vendor=fedora \ - --dir=%{buildroot}%{_datadir}/applications \ - %{SOURCE105} icotool -x --width=32 --height=32 --bit-depth=32 -o programs/winhlp32/ \ programs/winhlp32/winhelp.ico install -p -m 644 programs/winhlp32/winhelp*png \ %{buildroot}%{_datadir}/pixmaps/winhelp.png + +icotool -x --width=32 --height=32 --bit-depth=32 -o programs/wordpad/ \ + programs/wordpad/wordpad.ico +install -p -m 644 programs/wordpad/wordpad*png \ + %{buildroot}%{_datadir}/pixmaps/wordpad.png +%endif + +# install desktop files +desktop-file-install \ + --vendor=fedora \ + --dir=%{buildroot}%{_datadir}/applications \ + %{SOURCE100} + +desktop-file-install \ + --vendor=fedora \ + --dir=%{buildroot}%{_datadir}/applications \ + %{SOURCE101} + +desktop-file-install \ + --vendor=fedora \ + --dir=%{buildroot}%{_datadir}/applications \ + %{SOURCE102} + +desktop-file-install \ + --vendor=fedora \ + --dir=%{buildroot}%{_datadir}/applications \ + %{SOURCE103} + +desktop-file-install \ + --vendor=fedora \ + --dir=%{buildroot}%{_datadir}/applications \ + %{SOURCE104} + +desktop-file-install \ + --vendor=fedora \ + --dir=%{buildroot}%{_datadir}/applications \ + %{SOURCE105} + desktop-file-install \ --vendor=fedora \ --dir=%{buildroot}%{_datadir}/applications \ @@ -539,10 +560,6 @@ desktop-file-install \ --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE107} -icotool -x --width=32 --height=32 --bit-depth=32 -o programs/wordpad/ \ - programs/wordpad/wordpad.ico -install -p -m 644 programs/wordpad/wordpad*png \ - %{buildroot}%{_datadir}/pixmaps/wordpad.png desktop-file-install \ --vendor=fedora \ --dir=%{buildroot}%{_datadir}/applications \ @@ -661,8 +678,10 @@ update-desktop-database &>/dev/null || : %post oss -p /sbin/ldconfig %postun oss -p /sbin/ldconfig +%if 0%{?fedora} > 9 %post openal -p /sbin/ldconfig %postun openal -p /sbin/ldconfig +%endif %files %defattr(-,root,root,-) @@ -1120,7 +1139,6 @@ update-desktop-database &>/dev/null || : %{_datadir}/wine/generic.ppd %{_datadir}/wine/wine.inf %{_datadir}/wine/l_intl.nls -%{_datadir}/pixmaps/*png %files fonts %defattr(-,root,root,-) @@ -1178,7 +1196,10 @@ update-desktop-database &>/dev/null || : %{_datadir}/desktop-directories/Wine.directory %{_sysconfdir}/xdg/menus/applications-merged/wine.menu %{_initrddir}/wine + +%if 0%{?fedora} > 9 %{_datadir}/pixmaps/*png +%endif # esd subpackage %files esd @@ -1259,11 +1280,21 @@ update-desktop-database &>/dev/null || : %defattr(-,root,root,-) %{_libdir}/wine/wineoss.drv.so +%if 0%{?fedora} > 9 %files openal %defattr(-,root,root,-) %{_libdir}/wine/openal32.dll.so +%endif %changelog +* Fri Jul 16 2010 Andreas Bierfert +- 1.2-1 +- final release + +* Fri Jul 16 2010 Andreas Bierfert +- 1.2-0.8.rc7 +- improve font patch + * Sun Jul 11 2010 Andreas Bierfert - 1.2-0.7.rc7 - version upgrade From 19ae37f6cd7fef749752e69d622751b4371f0c63 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Fri, 16 Jul 2010 19:58:04 +0000 Subject: [PATCH 156/715] - 1.2 final - improve fonts patch --- .cvsignore | 2 +- sources | 2 +- wine-fonts.patch | 81 +++++++++++++++++++++++-------------- wine.spec | 103 ++++++++++++++++++++++++++++++----------------- 4 files changed, 120 insertions(+), 68 deletions(-) diff --git a/.cvsignore b/.cvsignore index 9fc1ac0..7ffd599 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -wine-1.2-rc7.tar.bz2 +wine-1.2.tar.bz2 diff --git a/sources b/sources index c6f48ee..acdae65 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -05cc63418e603f3d689bcaa7c7768d01 wine-1.2-rc7.tar.bz2 +eb4e5423b277fc1e77807b04f366f7b7 wine-1.2.tar.bz2 diff --git a/wine-fonts.patch b/wine-fonts.patch index bdc7504..72385ae 100644 --- a/wine-fonts.patch +++ b/wine-fonts.patch @@ -1,5 +1,23 @@ +--- tools/wine.inf.in.orig 2010-05-26 07:41:44.000000000 +0200 ++++ tools/wine.inf.in 2010-05-26 07:46:15.000000000 +0200 +@@ -576,13 +576,14 @@ + HKLM,%FontSubStr%,"Courier New TUR,162",,"Courier New,162" + HKLM,%FontSubStr%,"Helv",,"MS Sans Serif" + HKLM,%FontSubStr%,"Helvetica",,"Arial" +-HKLM,%FontSubStr%,"MS Shell Dlg 2",,"Tahoma" ++HKLM,%FontSubStr%,"MS Shell Dlg 2",,"Liberation Sans" + HKLM,%FontSubStr%,"Times",,"Times New Roman" + HKLM,%FontSubStr%,"Times New Roman Baltic,186",,"Times New Roman,186" + HKLM,%FontSubStr%,"Times New Roman CE,238",,"Times New Roman,238" + HKLM,%FontSubStr%,"Times New Roman CYR,204",,"Times New Roman,204" + HKLM,%FontSubStr%,"Times New Roman Greek,161",,"Times New Roman,161" + HKLM,%FontSubStr%,"Times New Roman TUR,162",,"Times New Roman,162" ++HKLM,%FontSubStr%,"MS Sans Serif",,"Liberation Serif" + HKLM,System\CurrentControlSet\Hardware Profiles\Current\Software\Fonts,"LogPixels",0x10003,0x00000060 + + [MCI] --- dlls/gdi32/freetype.c.orig 2010-05-19 22:02:43.000000000 +0200 -+++ dlls/gdi32/freetype.c 2010-05-19 23:57:27.000000000 +0200 ++++ dlls/gdi32/freetype.c 2010-07-16 11:43:15.000000000 +0200 @@ -400,7 +400,7 @@ /* Interesting and well-known (frequently-assumed!) font names */ static const WCHAR Lucida_Sans_Unicode[] = {'L','u','c','i','d','a',' ','S','a','n','s',' ','U','n','i','c','o','d','e',0}; @@ -9,7 +27,17 @@ static const WCHAR MS_UI_Gothic[] = {'M','S',' ','U','I',' ','G','o','t','h','i','c',0}; static const WCHAR SimSun[] = {'S','i','m','S','u','n',0}; static const WCHAR Gulim[] = {'G','u','l','i','m',0}; -@@ -1641,7 +1641,7 @@ +@@ -494,6 +494,9 @@ + 'C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\','F','o','n','t','L','i','n','k','\\', + 'S','y','s','t','e','m','L','i','n','k',0}; + ++static const char liberationsans[] = {'Z',':','\\','u','s','r','\\','s','h','a','r','e','\\','f','o','n','t','s','\\','l','i','b','e','r','a','t','i','o','n','\\','L','i','b','e','r','a','t','i','o','n','S','a','n','s','-','R','e','g','u','l','a','r','.','t','t','f',0}; ++static const char liberationserif[] = {'Z',':','\\','u','s','r','\\','s','h','a','r','e','\\','f','o','n','t','s','\\','l','i','b','e','r','a','t','i','o','n','\\','L','i','b','e','r','a','t','i','o','n','S','e','r','i','f','-','R','e','g','u','l','a','r','.','t','t','f',0}; ++ + /**************************************** + * Notes on .fon files + * +@@ -1641,7 +1644,7 @@ WCHAR *entry, *next; SYSTEM_LINKS *font_link, *system_font_link; CHILD_FONT *child_font; @@ -18,7 +46,7 @@ static const WCHAR System[] = {'S','y','s','t','e','m',0}; FONTSIGNATURE fs; Family *family; -@@ -1723,25 +1723,25 @@ +@@ -1723,25 +1726,25 @@ RegCloseKey(hkey); } @@ -49,7 +77,7 @@ { CHILD_FONT *font_link_entry; LIST_FOR_EACH_ENTRY(font_link_entry, &font_link->links, CHILD_FONT, entry) -@@ -2193,21 +2193,21 @@ +@@ -2193,21 +2196,21 @@ /* Latin 1 (United States) */ { 1252, 437, "vgaoem.fon", "vgafix.fon", "vgasys.fon", "coure.fon", "serife.fon", "smalle.fon", "sserife.fon", @@ -74,7 +102,7 @@ "Fixedsys,238", "System,238", "Courier New,238", "MS Serif,238", "Small Fonts,238", "MS Sans Serif,238", "MS Sans Serif,238", "MS Serif,238", -@@ -2218,7 +2218,7 @@ +@@ -2218,7 +2221,7 @@ /* Cyrillic */ { 1251, 866, "vga866.fon", "vgafixr.fon", "vgasysr.fon", "courer.fon", "serifer.fon", "smaller.fon", "sserifer.fon", @@ -83,7 +111,7 @@ "Fixedsys,204", "System,204", "Courier New,204", "MS Serif,204", "Small Fonts,204", "MS Sans Serif,204", "MS Sans Serif,204", "MS Serif,204", -@@ -2229,7 +2229,7 @@ +@@ -2229,7 +2232,7 @@ /* Greek */ { 1253, 737, "vga869.fon", "vgafixg.fon", "vgasysg.fon", "coureg.fon", "serifeg.fon", "smalleg.fon", "sserifeg.fon", @@ -92,7 +120,7 @@ "Fixedsys,161", "System,161", "Courier New,161", "MS Serif,161", "Small Fonts,161", "MS Sans Serif,161", "MS Sans Serif,161", "MS Serif,161", -@@ -2240,7 +2240,7 @@ +@@ -2240,7 +2243,7 @@ /* Turkish */ { 1254, 857, "vga857.fon", "vgafixt.fon", "vgasyst.fon", "couret.fon", "serifet.fon", "smallet.fon", "sserifet.fon", @@ -101,7 +129,7 @@ "Fixedsys,162", "System,162", "Courier New,162", "MS Serif,162", "Small Fonts,162", "MS Sans Serif,162", "MS Sans Serif,162", "MS Serif,162", -@@ -2251,7 +2251,7 @@ +@@ -2251,7 +2254,7 @@ /* Hebrew */ { 1255, 862, "vgaoem.fon", "vgaf1255.fon", "vgas1255.fon", "coue1255.fon", "sere1255.fon", "smae1255.fon", "ssee1255.fon", @@ -110,7 +138,7 @@ "Fixedsys,177", "System,177", "Courier New,177", "MS Serif,177", "Small Fonts,177", "MS Sans Serif,177", "MS Sans Serif,177", "MS Serif,177", -@@ -2260,7 +2260,7 @@ +@@ -2260,7 +2263,7 @@ /* Arabic */ { 1256, 720, "vgaoem.fon", "vgaf1256.fon", "vgas1256.fon", "coue1256.fon", "sere1256.fon", "smae1256.fon", "ssee1256.fon", @@ -119,7 +147,7 @@ "Fixedsys,178", "System,178", "Courier New,178", "MS Serif,178", "Small Fonts,178", "MS Sans Serif,178", "MS Sans Serif,178", "MS Serif,178", -@@ -2269,7 +2269,7 @@ +@@ -2269,7 +2272,7 @@ /* Baltic */ { 1257, 775, "vga775.fon", "vgaf1257.fon", "vgas1257.fon", "coue1257.fon", "sere1257.fon", "smae1257.fon", "ssee1257.fon", @@ -128,7 +156,7 @@ "Fixedsys,186", "System,186", "Courier New,186", "MS Serif,186", "Small Fonts,186", "MS Sans Serif,186", "MS Sans Serif,186", "MS Serif,186", -@@ -2280,14 +2280,14 @@ +@@ -2280,14 +2283,14 @@ /* Vietnamese */ { 1258, 1258, "vga850.fon", "vgafix.fon", "vgasys.fon", "coure.fon", "serife.fon", "smalle.fon", "sserife.fon", @@ -145,7 +173,7 @@ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, { 0 }, { 0 }, { 0 } }, -@@ -2325,7 +2325,7 @@ +@@ -2325,7 +2328,7 @@ { Lucida_Sans_Unicode, Microsoft_Sans_Serif, @@ -154,7 +182,7 @@ }; static const struct font_links_defaults_list -@@ -2337,7 +2337,7 @@ +@@ -2337,7 +2340,7 @@ } font_links_defaults_list[] = { /* Non East-Asian */ @@ -163,21 +191,14 @@ { MS_UI_Gothic, SimSun, Gulim, PMingLiU, NULL } }, /* Below lists are courtesy of ---- tools/wine.inf.in.orig 2010-05-26 07:41:44.000000000 +0200 -+++ tools/wine.inf.in 2010-05-26 07:46:15.000000000 +0200 -@@ -576,13 +576,14 @@ - HKLM,%FontSubStr%,"Courier New TUR,162",,"Courier New,162" - HKLM,%FontSubStr%,"Helv",,"MS Sans Serif" - HKLM,%FontSubStr%,"Helvetica",,"Arial" --HKLM,%FontSubStr%,"MS Shell Dlg 2",,"Tahoma" -+HKLM,%FontSubStr%,"MS Shell Dlg 2",,"Liberation Sans" - HKLM,%FontSubStr%,"Times",,"Times New Roman" - HKLM,%FontSubStr%,"Times New Roman Baltic,186",,"Times New Roman,186" - HKLM,%FontSubStr%,"Times New Roman CE,238",,"Times New Roman,238" - HKLM,%FontSubStr%,"Times New Roman CYR,204",,"Times New Roman,204" - HKLM,%FontSubStr%,"Times New Roman Greek,161",,"Times New Roman,161" - HKLM,%FontSubStr%,"Times New Roman TUR,162",,"Times New Roman,162" -+HKLM,%FontSubStr%,"MS Sans Serif",,"Liberation Serif" - HKLM,System\CurrentControlSet\Hardware Profiles\Current\Software\Fonts,"LogPixels",0x10003,0x00000060 +@@ -2399,8 +2402,8 @@ + static void add_font_list(HKEY hkey, const struct nls_update_font_list *fl) + { + RegSetValueExA(hkey, "Courier", 0, REG_SZ, (const BYTE *)fl->courier, strlen(fl->courier)+1); +- RegSetValueExA(hkey, "MS Serif", 0, REG_SZ, (const BYTE *)fl->serif, strlen(fl->serif)+1); +- RegSetValueExA(hkey, "MS Sans Serif", 0, REG_SZ, (const BYTE *)fl->sserif, strlen(fl->sserif)+1); ++ RegSetValueExA(hkey, "MS Serif", 0, REG_SZ, (const BYTE *)liberationserif, strlen(liberationserif)+1); ++ RegSetValueExA(hkey, "MS Sans Serif", 0, REG_SZ, (const BYTE *)liberationsans, strlen(liberationsans)+1); + RegSetValueExA(hkey, "Small Fonts", 0, REG_SZ, (const BYTE *)fl->small, strlen(fl->small)+1); + } - [MCI] diff --git a/wine.spec b/wine.spec index 5f30c0d..848417b 100644 --- a/wine.spec +++ b/wine.spec @@ -1,13 +1,13 @@ %define no64bit 0 Name: wine Version: 1.2.0 -Release: 0.7.rc7%{?dist} +Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.2-rc7.tar.bz2 +Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.2.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -108,11 +108,16 @@ BuildRequires: dbus-devel hal-devel BuildRequires: gnutls-devel BuildRequires: pulseaudio-libs-devel BuildRequires: gsm-devel -BuildRequires: openal-soft-devel BuildRequires: libv4l-devel BuildRequires: fontpackages-devel -BuildRequires: icoutils BuildRequires: ImageMagick-devel + +%if 0%{?fedora} > 9 +BuildRequires: icoutils +BuildRequires: openal-soft-devel +%endif + + Requires: wine-desktop = %{version}-%{release} Requires: wine-fonts = %{version}-%{release} @@ -402,6 +407,7 @@ Requires: wine-core = %{version}-%{release} %description oss This package adds an oss driver for wine. +%if 0%{?fedora} > 9 %package openal Summary: Openal support for wine Group: System Environment/Libraries @@ -409,10 +415,10 @@ Requires: wine-core = %{version}-%{release} %description openal This package adds an openal driver for wine. - +%endif %prep -%setup -q -n %{name}-1.2-rc7 +%setup -q -n %{name}-1.2 %patch1 %patch100 @@ -464,7 +470,8 @@ install -p -m 644 %{SOURCE201} \ %{buildroot}%{_datadir}/desktop-directories/Wine.directory -# install desktop files +# extract and install icons +%if 0%{?fedora} > 9 mkdir -p %{buildroot}%{_datadir}/pixmaps icotool -x --width=32 --height=32 --bit-depth=32 -o dlls/user32/resources/ \ dlls/user32/resources/oic_winlogo.ico @@ -475,60 +482,74 @@ icotool -x --width=32 --height=32 --bit-depth=32 -o programs/notepad/ \ programs/notepad/notepad.ico install -p -m 644 programs/notepad/notepad*png \ %{buildroot}%{_datadir}/pixmaps/notepad.png -desktop-file-install \ - --vendor=fedora \ - --dir=%{buildroot}%{_datadir}/applications \ - %{SOURCE100} icotool -x --width=32 --height=32 --bit-depth=32 -o programs/regedit/ \ programs/regedit/regedit.ico install -p -m 644 programs/regedit/regedit*png \ %{buildroot}%{_datadir}/pixmaps/regedit.png -desktop-file-install \ - --vendor=fedora \ - --dir=%{buildroot}%{_datadir}/applications \ - %{SOURCE101} icotool -x --width=32 --height=32 --bit-depth=32 -o programs/msiexec/ \ programs/msiexec/msiexec.ico install -p -m 644 programs/msiexec/msiexec*png \ %{buildroot}%{_datadir}/pixmaps/msiexec.png -desktop-file-install \ - --vendor=fedora \ - --dir=%{buildroot}%{_datadir}/applications \ - %{SOURCE102} icotool -x --width=32 --height=32 --bit-depth=32 -o programs/winecfg/ \ programs/winecfg/winecfg.ico install -p -m 644 programs/winecfg/winecfg*png \ %{buildroot}%{_datadir}/pixmaps/winecfg.png -desktop-file-install \ - --vendor=fedora \ - --dir=%{buildroot}%{_datadir}/applications \ - %{SOURCE103} icotool -x --width=32 --height=32 --bit-depth=32 -o programs/winefile/ \ programs/winefile/winefile.ico install -p -m 644 programs/winefile/winefile*png \ %{buildroot}%{_datadir}/pixmaps/winefile.png -desktop-file-install \ - --vendor=fedora \ - --dir=%{buildroot}%{_datadir}/applications \ - %{SOURCE104} icotool -x --width=32 --height=32 --bit-depth=32 -o programs/winemine/ \ programs/winemine/winemine.ico install -p -m 644 programs/winemine/winemine*png \ %{buildroot}%{_datadir}/pixmaps/winemine.png -desktop-file-install \ - --vendor=fedora \ - --dir=%{buildroot}%{_datadir}/applications \ - %{SOURCE105} icotool -x --width=32 --height=32 --bit-depth=32 -o programs/winhlp32/ \ programs/winhlp32/winhelp.ico install -p -m 644 programs/winhlp32/winhelp*png \ %{buildroot}%{_datadir}/pixmaps/winhelp.png + +icotool -x --width=32 --height=32 --bit-depth=32 -o programs/wordpad/ \ + programs/wordpad/wordpad.ico +install -p -m 644 programs/wordpad/wordpad*png \ + %{buildroot}%{_datadir}/pixmaps/wordpad.png +%endif + +# install desktop files +desktop-file-install \ + --vendor=fedora \ + --dir=%{buildroot}%{_datadir}/applications \ + %{SOURCE100} + +desktop-file-install \ + --vendor=fedora \ + --dir=%{buildroot}%{_datadir}/applications \ + %{SOURCE101} + +desktop-file-install \ + --vendor=fedora \ + --dir=%{buildroot}%{_datadir}/applications \ + %{SOURCE102} + +desktop-file-install \ + --vendor=fedora \ + --dir=%{buildroot}%{_datadir}/applications \ + %{SOURCE103} + +desktop-file-install \ + --vendor=fedora \ + --dir=%{buildroot}%{_datadir}/applications \ + %{SOURCE104} + +desktop-file-install \ + --vendor=fedora \ + --dir=%{buildroot}%{_datadir}/applications \ + %{SOURCE105} + desktop-file-install \ --vendor=fedora \ --dir=%{buildroot}%{_datadir}/applications \ @@ -539,10 +560,6 @@ desktop-file-install \ --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE107} -icotool -x --width=32 --height=32 --bit-depth=32 -o programs/wordpad/ \ - programs/wordpad/wordpad.ico -install -p -m 644 programs/wordpad/wordpad*png \ - %{buildroot}%{_datadir}/pixmaps/wordpad.png desktop-file-install \ --vendor=fedora \ --dir=%{buildroot}%{_datadir}/applications \ @@ -661,8 +678,10 @@ update-desktop-database &>/dev/null || : %post oss -p /sbin/ldconfig %postun oss -p /sbin/ldconfig +%if 0%{?fedora} > 9 %post openal -p /sbin/ldconfig %postun openal -p /sbin/ldconfig +%endif %files %defattr(-,root,root,-) @@ -1120,7 +1139,6 @@ update-desktop-database &>/dev/null || : %{_datadir}/wine/generic.ppd %{_datadir}/wine/wine.inf %{_datadir}/wine/l_intl.nls -%{_datadir}/pixmaps/*png %files fonts %defattr(-,root,root,-) @@ -1178,7 +1196,10 @@ update-desktop-database &>/dev/null || : %{_datadir}/desktop-directories/Wine.directory %{_sysconfdir}/xdg/menus/applications-merged/wine.menu %{_initrddir}/wine + +%if 0%{?fedora} > 9 %{_datadir}/pixmaps/*png +%endif # esd subpackage %files esd @@ -1259,11 +1280,21 @@ update-desktop-database &>/dev/null || : %defattr(-,root,root,-) %{_libdir}/wine/wineoss.drv.so +%if 0%{?fedora} > 9 %files openal %defattr(-,root,root,-) %{_libdir}/wine/openal32.dll.so +%endif %changelog +* Fri Jul 16 2010 Andreas Bierfert +- 1.2-1 +- final release + +* Fri Jul 16 2010 Andreas Bierfert +- 1.2-0.8.rc7 +- improve font patch + * Sun Jul 11 2010 Andreas Bierfert - 1.2-0.7.rc7 - version upgrade From 8c9b5c0d2b0962180477cf03bd113b14749e0838 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 29 Jul 2010 15:19:15 +0000 Subject: [PATCH 157/715] dist-git conversion --- .cvsignore => .gitignore | 0 Makefile | 21 --------------------- branch | 1 - import.log | 1 - 4 files changed, 23 deletions(-) rename .cvsignore => .gitignore (100%) delete mode 100644 Makefile delete mode 100644 branch delete mode 100644 import.log diff --git a/.cvsignore b/.gitignore similarity index 100% rename from .cvsignore rename to .gitignore diff --git a/Makefile b/Makefile deleted file mode 100644 index 15e51e7..0000000 --- a/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Makefile for source rpm: wine -# $Id: Makefile,v 1.4 2006/01/02 08:55:16 awjb Exp $ -NAME := wine -SPECFILE = $(firstword $(wildcard *.spec)) - -define find-makefile-common -for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$d/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done -endef - -MAKEFILE_COMMON := $(shell $(find-makefile-common)) - -ifeq ($(MAKEFILE_COMMON),) -# attept a checkout -define checkout-makefile-common -test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2 -endef - -MAKEFILE_COMMON := $(shell $(checkout-makefile-common)) -endif - -include $(MAKEFILE_COMMON) diff --git a/branch b/branch deleted file mode 100644 index baa94ef..0000000 --- a/branch +++ /dev/null @@ -1 +0,0 @@ -F-13 diff --git a/import.log b/import.log deleted file mode 100644 index bb8668c..0000000 --- a/import.log +++ /dev/null @@ -1 +0,0 @@ -wine-1_1_15-3_fc11:HEAD:wine-1.1.15-3.fc11.src.rpm:1237145709 From 9acc3ebad8d46c8054cac6fda157d8d592a706e2 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 29 Jul 2010 15:19:36 +0000 Subject: [PATCH 158/715] dist-git conversion --- .cvsignore => .gitignore | 0 Makefile | 21 --------------------- import.log | 1 - 3 files changed, 22 deletions(-) rename .cvsignore => .gitignore (100%) delete mode 100644 Makefile delete mode 100644 import.log diff --git a/.cvsignore b/.gitignore similarity index 100% rename from .cvsignore rename to .gitignore diff --git a/Makefile b/Makefile deleted file mode 100644 index 15e51e7..0000000 --- a/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Makefile for source rpm: wine -# $Id: Makefile,v 1.4 2006/01/02 08:55:16 awjb Exp $ -NAME := wine -SPECFILE = $(firstword $(wildcard *.spec)) - -define find-makefile-common -for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$d/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done -endef - -MAKEFILE_COMMON := $(shell $(find-makefile-common)) - -ifeq ($(MAKEFILE_COMMON),) -# attept a checkout -define checkout-makefile-common -test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2 -endef - -MAKEFILE_COMMON := $(shell $(checkout-makefile-common)) -endif - -include $(MAKEFILE_COMMON) diff --git a/import.log b/import.log deleted file mode 100644 index bb8668c..0000000 --- a/import.log +++ /dev/null @@ -1 +0,0 @@ -wine-1_1_15-3_fc11:HEAD:wine-1.1.15-3.fc11.src.rpm:1237145709 From 0e7c3ed71eeedf1423004bc06390ea94e72a4733 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Fri, 30 Jul 2010 10:33:21 +0200 Subject: [PATCH 159/715] * Wed Jul 28 2010 Andreas Bierfert - 1.2.0-2 - fix segfault (#617968) - enable openal-soft on el6 --- wine-preloader-segfault.patch | 11 +++++++++++ wine.spec | 30 ++++++++++++++++++++---------- 2 files changed, 31 insertions(+), 10 deletions(-) create mode 100644 wine-preloader-segfault.patch diff --git a/wine-preloader-segfault.patch b/wine-preloader-segfault.patch new file mode 100644 index 0000000..8988d24 --- /dev/null +++ b/wine-preloader-segfault.patch @@ -0,0 +1,11 @@ +--- wine-1.2/loader/preloader.c.atrandom 2010-07-16 17:05:45.000000000 +0200 ++++ wine-1.2/loader/preloader.c 2010-07-28 18:12:27.000000000 +0200 +@@ -519,7 +520,7 @@ static void set_auxiliary_values( ElfW(a + } + else if (new_count < delete_count) /* get rid of unused values */ + { +- int len = (char *)(av + av_count + 1) - dst; ++ int len = (char *)(av + av_count + 1) - src; + for (i = len - 1; i >= 0; i--) dst[i] = src[i]; + } + *stack = dst; diff --git a/wine.spec b/wine.spec index 848417b..5f8f818 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %define no64bit 0 Name: wine Version: 1.2.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -37,7 +37,8 @@ Patch1: wine-rpath.patch # bugfixes # fix for #593140 Patch100: wine-fonts.patch - +# fix for #617968 +Patch101: wine-preloader-segfault.patch # Patch200: wine-imagemagick-6.5.patch @@ -112,11 +113,14 @@ BuildRequires: libv4l-devel BuildRequires: fontpackages-devel BuildRequires: ImageMagick-devel -%if 0%{?fedora} > 9 -BuildRequires: icoutils +%if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 BuildRequires: openal-soft-devel %endif +%if 0%{?fedora} >= 10 +BuildRequires: icoutils +%endif + Requires: wine-desktop = %{version}-%{release} Requires: wine-fonts = %{version}-%{release} @@ -228,7 +232,7 @@ Requires: wine-marlett-fonts = %{version}-%{release} Requires: wine-symbol-fonts = %{version}-%{release} # intermediate fix for #593140 Requires: liberation-sans-fonts liberation-serif-fonts liberation-mono-fonts -%if 0%{?fedora} > 12 || 0%{?rhel} > 6 +%if 0%{?fedora} > 12 Requires: liberation-narrow-fonts %endif @@ -407,7 +411,7 @@ Requires: wine-core = %{version}-%{release} %description oss This package adds an oss driver for wine. -%if 0%{?fedora} > 9 +%if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 %package openal Summary: Openal support for wine Group: System Environment/Libraries @@ -422,6 +426,7 @@ This package adds an openal driver for wine. %patch1 %patch100 +%patch101 -p1 %patch200 %patch400 -p1 %patch401 -p1 @@ -471,7 +476,7 @@ install -p -m 644 %{SOURCE201} \ # extract and install icons -%if 0%{?fedora} > 9 +%if 0%{?fedora} > 10 mkdir -p %{buildroot}%{_datadir}/pixmaps icotool -x --width=32 --height=32 --bit-depth=32 -o dlls/user32/resources/ \ dlls/user32/resources/oic_winlogo.ico @@ -678,7 +683,7 @@ update-desktop-database &>/dev/null || : %post oss -p /sbin/ldconfig %postun oss -p /sbin/ldconfig -%if 0%{?fedora} > 9 +%if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 %post openal -p /sbin/ldconfig %postun openal -p /sbin/ldconfig %endif @@ -1197,7 +1202,7 @@ update-desktop-database &>/dev/null || : %{_sysconfdir}/xdg/menus/applications-merged/wine.menu %{_initrddir}/wine -%if 0%{?fedora} > 9 +%if 0%{?fedora} >= 10 %{_datadir}/pixmaps/*png %endif @@ -1280,13 +1285,18 @@ update-desktop-database &>/dev/null || : %defattr(-,root,root,-) %{_libdir}/wine/wineoss.drv.so -%if 0%{?fedora} > 9 +%if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 %files openal %defattr(-,root,root,-) %{_libdir}/wine/openal32.dll.so %endif %changelog +* Wed Jul 28 2010 Andreas Bierfert +- 1.2.0-2 +- fix segfault (#617968) +- enable openal-soft on el6 + * Fri Jul 16 2010 Andreas Bierfert - 1.2-1 - final release From ae50c2d6b811c485da3be34679c676dfa794e36a Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Fri, 30 Jul 2010 10:33:38 +0200 Subject: [PATCH 160/715] * Wed Jul 28 2010 Andreas Bierfert - 1.2.0-2 - fix segfault (#617968) - enable openal-soft on el6 --- wine-preloader-segfault.patch | 11 +++++++++++ wine.spec | 30 ++++++++++++++++++++---------- 2 files changed, 31 insertions(+), 10 deletions(-) create mode 100644 wine-preloader-segfault.patch diff --git a/wine-preloader-segfault.patch b/wine-preloader-segfault.patch new file mode 100644 index 0000000..8988d24 --- /dev/null +++ b/wine-preloader-segfault.patch @@ -0,0 +1,11 @@ +--- wine-1.2/loader/preloader.c.atrandom 2010-07-16 17:05:45.000000000 +0200 ++++ wine-1.2/loader/preloader.c 2010-07-28 18:12:27.000000000 +0200 +@@ -519,7 +520,7 @@ static void set_auxiliary_values( ElfW(a + } + else if (new_count < delete_count) /* get rid of unused values */ + { +- int len = (char *)(av + av_count + 1) - dst; ++ int len = (char *)(av + av_count + 1) - src; + for (i = len - 1; i >= 0; i--) dst[i] = src[i]; + } + *stack = dst; diff --git a/wine.spec b/wine.spec index 848417b..5f8f818 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %define no64bit 0 Name: wine Version: 1.2.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -37,7 +37,8 @@ Patch1: wine-rpath.patch # bugfixes # fix for #593140 Patch100: wine-fonts.patch - +# fix for #617968 +Patch101: wine-preloader-segfault.patch # Patch200: wine-imagemagick-6.5.patch @@ -112,11 +113,14 @@ BuildRequires: libv4l-devel BuildRequires: fontpackages-devel BuildRequires: ImageMagick-devel -%if 0%{?fedora} > 9 -BuildRequires: icoutils +%if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 BuildRequires: openal-soft-devel %endif +%if 0%{?fedora} >= 10 +BuildRequires: icoutils +%endif + Requires: wine-desktop = %{version}-%{release} Requires: wine-fonts = %{version}-%{release} @@ -228,7 +232,7 @@ Requires: wine-marlett-fonts = %{version}-%{release} Requires: wine-symbol-fonts = %{version}-%{release} # intermediate fix for #593140 Requires: liberation-sans-fonts liberation-serif-fonts liberation-mono-fonts -%if 0%{?fedora} > 12 || 0%{?rhel} > 6 +%if 0%{?fedora} > 12 Requires: liberation-narrow-fonts %endif @@ -407,7 +411,7 @@ Requires: wine-core = %{version}-%{release} %description oss This package adds an oss driver for wine. -%if 0%{?fedora} > 9 +%if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 %package openal Summary: Openal support for wine Group: System Environment/Libraries @@ -422,6 +426,7 @@ This package adds an openal driver for wine. %patch1 %patch100 +%patch101 -p1 %patch200 %patch400 -p1 %patch401 -p1 @@ -471,7 +476,7 @@ install -p -m 644 %{SOURCE201} \ # extract and install icons -%if 0%{?fedora} > 9 +%if 0%{?fedora} > 10 mkdir -p %{buildroot}%{_datadir}/pixmaps icotool -x --width=32 --height=32 --bit-depth=32 -o dlls/user32/resources/ \ dlls/user32/resources/oic_winlogo.ico @@ -678,7 +683,7 @@ update-desktop-database &>/dev/null || : %post oss -p /sbin/ldconfig %postun oss -p /sbin/ldconfig -%if 0%{?fedora} > 9 +%if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 %post openal -p /sbin/ldconfig %postun openal -p /sbin/ldconfig %endif @@ -1197,7 +1202,7 @@ update-desktop-database &>/dev/null || : %{_sysconfdir}/xdg/menus/applications-merged/wine.menu %{_initrddir}/wine -%if 0%{?fedora} > 9 +%if 0%{?fedora} >= 10 %{_datadir}/pixmaps/*png %endif @@ -1280,13 +1285,18 @@ update-desktop-database &>/dev/null || : %defattr(-,root,root,-) %{_libdir}/wine/wineoss.drv.so -%if 0%{?fedora} > 9 +%if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 %files openal %defattr(-,root,root,-) %{_libdir}/wine/openal32.dll.so %endif %changelog +* Wed Jul 28 2010 Andreas Bierfert +- 1.2.0-2 +- fix segfault (#617968) +- enable openal-soft on el6 + * Fri Jul 16 2010 Andreas Bierfert - 1.2-1 - final release From be43027c268c458dd53ad6c211b67cf99e6e85a4 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Fri, 30 Jul 2010 10:33:57 +0200 Subject: [PATCH 161/715] * Wed Jul 28 2010 Andreas Bierfert - 1.2.0-2 - fix segfault (#617968) - enable openal-soft on el6 --- wine-preloader-segfault.patch | 11 +++++++++++ wine.spec | 30 ++++++++++++++++++++---------- 2 files changed, 31 insertions(+), 10 deletions(-) create mode 100644 wine-preloader-segfault.patch diff --git a/wine-preloader-segfault.patch b/wine-preloader-segfault.patch new file mode 100644 index 0000000..8988d24 --- /dev/null +++ b/wine-preloader-segfault.patch @@ -0,0 +1,11 @@ +--- wine-1.2/loader/preloader.c.atrandom 2010-07-16 17:05:45.000000000 +0200 ++++ wine-1.2/loader/preloader.c 2010-07-28 18:12:27.000000000 +0200 +@@ -519,7 +520,7 @@ static void set_auxiliary_values( ElfW(a + } + else if (new_count < delete_count) /* get rid of unused values */ + { +- int len = (char *)(av + av_count + 1) - dst; ++ int len = (char *)(av + av_count + 1) - src; + for (i = len - 1; i >= 0; i--) dst[i] = src[i]; + } + *stack = dst; diff --git a/wine.spec b/wine.spec index 848417b..5f8f818 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %define no64bit 0 Name: wine Version: 1.2.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -37,7 +37,8 @@ Patch1: wine-rpath.patch # bugfixes # fix for #593140 Patch100: wine-fonts.patch - +# fix for #617968 +Patch101: wine-preloader-segfault.patch # Patch200: wine-imagemagick-6.5.patch @@ -112,11 +113,14 @@ BuildRequires: libv4l-devel BuildRequires: fontpackages-devel BuildRequires: ImageMagick-devel -%if 0%{?fedora} > 9 -BuildRequires: icoutils +%if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 BuildRequires: openal-soft-devel %endif +%if 0%{?fedora} >= 10 +BuildRequires: icoutils +%endif + Requires: wine-desktop = %{version}-%{release} Requires: wine-fonts = %{version}-%{release} @@ -228,7 +232,7 @@ Requires: wine-marlett-fonts = %{version}-%{release} Requires: wine-symbol-fonts = %{version}-%{release} # intermediate fix for #593140 Requires: liberation-sans-fonts liberation-serif-fonts liberation-mono-fonts -%if 0%{?fedora} > 12 || 0%{?rhel} > 6 +%if 0%{?fedora} > 12 Requires: liberation-narrow-fonts %endif @@ -407,7 +411,7 @@ Requires: wine-core = %{version}-%{release} %description oss This package adds an oss driver for wine. -%if 0%{?fedora} > 9 +%if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 %package openal Summary: Openal support for wine Group: System Environment/Libraries @@ -422,6 +426,7 @@ This package adds an openal driver for wine. %patch1 %patch100 +%patch101 -p1 %patch200 %patch400 -p1 %patch401 -p1 @@ -471,7 +476,7 @@ install -p -m 644 %{SOURCE201} \ # extract and install icons -%if 0%{?fedora} > 9 +%if 0%{?fedora} > 10 mkdir -p %{buildroot}%{_datadir}/pixmaps icotool -x --width=32 --height=32 --bit-depth=32 -o dlls/user32/resources/ \ dlls/user32/resources/oic_winlogo.ico @@ -678,7 +683,7 @@ update-desktop-database &>/dev/null || : %post oss -p /sbin/ldconfig %postun oss -p /sbin/ldconfig -%if 0%{?fedora} > 9 +%if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 %post openal -p /sbin/ldconfig %postun openal -p /sbin/ldconfig %endif @@ -1197,7 +1202,7 @@ update-desktop-database &>/dev/null || : %{_sysconfdir}/xdg/menus/applications-merged/wine.menu %{_initrddir}/wine -%if 0%{?fedora} > 9 +%if 0%{?fedora} >= 10 %{_datadir}/pixmaps/*png %endif @@ -1280,13 +1285,18 @@ update-desktop-database &>/dev/null || : %defattr(-,root,root,-) %{_libdir}/wine/wineoss.drv.so -%if 0%{?fedora} > 9 +%if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 %files openal %defattr(-,root,root,-) %{_libdir}/wine/openal32.dll.so %endif %changelog +* Wed Jul 28 2010 Andreas Bierfert +- 1.2.0-2 +- fix segfault (#617968) +- enable openal-soft on el6 + * Fri Jul 16 2010 Andreas Bierfert - 1.2-1 - final release From 31d92e23e83c62433c538647e301710b101cabfc Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Tue, 17 Aug 2010 13:57:57 +0200 Subject: [PATCH 162/715] - 1.3.0-1 - version upgrade --- .gitignore | 1 + sources | 2 +- wine-gecko.patch | 6 +++--- wine-preloader-segfault.patch | 11 ----------- wine.spec | 19 +++++++++++-------- 5 files changed, 16 insertions(+), 23 deletions(-) delete mode 100644 wine-preloader-segfault.patch diff --git a/.gitignore b/.gitignore index 7ffd599..e24d48c 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ wine-1.2.tar.bz2 +wine-1.3.0.tar.bz2 diff --git a/sources b/sources index acdae65..70e2e97 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -eb4e5423b277fc1e77807b04f366f7b7 wine-1.2.tar.bz2 +f266536a8096f6b705f2f802549dc0e5 wine-1.3.0.tar.bz2 diff --git a/wine-gecko.patch b/wine-gecko.patch index 93ea904..03d574d 100644 --- a/wine-gecko.patch +++ b/wine-gecko.patch @@ -114,13 +114,13 @@ && !install_from_default_dir() && !silent && (url = get_url())) DialogBoxW(hInst, MAKEINTRESOURCEW(ID_DWL_DIALOG), 0, installer_proc); ---- dlls/mshtml/Makefile.in.orig 2010-03-29 15:13:47.000000000 +0200 -+++ dlls/mshtml/Makefile.in 2010-03-29 15:49:55.000000000 +0200 +--- dlls/mshtml/Makefile.in.orig 2010-08-04 22:56:36.000000000 +0200 ++++ dlls/mshtml/Makefile.in 2010-08-04 22:56:52.000000000 +0200 @@ -4,7 +4,7 @@ VPATH = @srcdir@ MODULE = mshtml.dll IMPORTLIB = mshtml --IMPORTS = strmiids uuid urlmon shlwapi ole32 oleaut32 user32 gdi32 advapi32 kernel32 +-IMPORTS = strmiids uuid urlmon shlwapi ole32 oleaut32 user32 gdi32 advapi32 +IMPORTS = strmiids uuid urlmon shlwapi ole32 oleaut32 user32 gdi32 advapi32 kernel32 shell32 EXTRADEFS = -DCOM_NO_WINDOWS_H DELAYIMPORTS = wininet diff --git a/wine-preloader-segfault.patch b/wine-preloader-segfault.patch deleted file mode 100644 index 8988d24..0000000 --- a/wine-preloader-segfault.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- wine-1.2/loader/preloader.c.atrandom 2010-07-16 17:05:45.000000000 +0200 -+++ wine-1.2/loader/preloader.c 2010-07-28 18:12:27.000000000 +0200 -@@ -519,7 +520,7 @@ static void set_auxiliary_values( ElfW(a - } - else if (new_count < delete_count) /* get rid of unused values */ - { -- int len = (char *)(av + av_count + 1) - dst; -+ int len = (char *)(av + av_count + 1) - src; - for (i = len - 1; i >= 0; i--) dst[i] = src[i]; - } - *stack = dst; diff --git a/wine.spec b/wine.spec index 5f8f818..e885790 100644 --- a/wine.spec +++ b/wine.spec @@ -1,13 +1,13 @@ %define no64bit 0 Name: wine -Version: 1.2.0 -Release: 2%{?dist} +Version: 1.3.0 +Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.2.tar.bz2 +Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.3.0.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -37,8 +37,6 @@ Patch1: wine-rpath.patch # bugfixes # fix for #593140 Patch100: wine-fonts.patch -# fix for #617968 -Patch101: wine-preloader-segfault.patch # Patch200: wine-imagemagick-6.5.patch @@ -422,11 +420,10 @@ This package adds an openal driver for wine. %endif %prep -%setup -q -n %{name}-1.2 +%setup -q %patch1 %patch100 -%patch101 -p1 %patch200 %patch400 -p1 %patch401 -p1 @@ -721,7 +718,6 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/write.exe.so %{_libdir}/wine/dxdiag.exe.so - %ifarch %{ix86} %{_bindir}/wine %{_bindir}/wine-preloader @@ -762,6 +758,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/winemenubuilder.exe.so %{_libdir}/wine/winecfg.exe.so %{_libdir}/wine/winedevice.exe.so +%{_libdir}/wine/wscript.exe.so %{_libdir}/wine/uninstaller.exe.so %{_libdir}/libwine.so.1* %{_libdir}/wine/acledit.dll.so @@ -839,6 +836,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/fltlib.dll.so %{_libdir}/wine/fusion.dll.so %{_libdir}/wine/fwpuclnt.dll.so +%{_libdir}/wine/gameux.dll.so %{_libdir}/wine/gdi32.dll.so %{_libdir}/wine/gdiplus.dll.so %{_libdir}/wine/glu32.dll.so @@ -910,6 +908,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/msrle32.dll.so %{_libdir}/wine/mstask.dll.so %{_libdir}/wine/msvcirt.dll.so +%{_libdir}/wine/msvcp90.dll.so %{_libdir}/wine/msvcr70.dll.so %{_libdir}/wine/msvcr71.dll.so %{_libdir}/wine/msvcr80.dll.so @@ -1292,6 +1291,10 @@ update-desktop-database &>/dev/null || : %endif %changelog +* Sat Jul 31 2010 Andreas Bierfert +- 1.3.0-1 +- version upgrade + * Wed Jul 28 2010 Andreas Bierfert - 1.2.0-2 - fix segfault (#617968) From c950f73ee42a60296b704d2625e37105037cfff6 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Tue, 17 Aug 2010 14:24:30 +0200 Subject: [PATCH 163/715] - add rundll.exe16.so to 32bit file section --- wine.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/wine.spec b/wine.spec index e885790..0a17ff4 100644 --- a/wine.spec +++ b/wine.spec @@ -1050,6 +1050,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/ifsmgr.vxd.so %{_libdir}/wine/mmdevldr.vxd.so %{_libdir}/wine/monodebg.vxd.so +%{_libdir}/wine/rundll.exe16.so %{_libdir}/wine/vdhcp.vxd.so %{_libdir}/wine/user.exe16.so %{_libdir}/wine/vmm.vxd.so From 84fda39b7b96e20e0a6df79f91cf1431bdc6812e Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 21 Aug 2010 14:10:09 +0200 Subject: [PATCH 164/715] - 1.3.1-1 - version ugprade --- .gitignore | 1 + sources | 2 +- wine.spec | 12 ++++++++++-- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index e24d48c..42391c9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ wine-1.2.tar.bz2 wine-1.3.0.tar.bz2 +/wine-1.3.1.tar.bz2 diff --git a/sources b/sources index 70e2e97..057d814 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -f266536a8096f6b705f2f802549dc0e5 wine-1.3.0.tar.bz2 +5be30df05787f5db5bd5d2aa154aee87 wine-1.3.1.tar.bz2 diff --git a/wine.spec b/wine.spec index 0a17ff4..ae2dc1c 100644 --- a/wine.spec +++ b/wine.spec @@ -1,13 +1,13 @@ %define no64bit 0 Name: wine -Version: 1.3.0 +Version: 1.3.1 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.3.0.tar.bz2 +Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.3.1.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -736,6 +736,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/cacls.exe.so %{_libdir}/wine/expand.exe.so %{_libdir}/wine/extrac32.exe.so +%{_libdir}/wine/ipconfig.exe.so %{_libdir}/wine/winhlp32.exe.so %{_libdir}/wine/mshta.exe.so %{_libdir}/wine/msiexec.exe.so @@ -796,9 +797,11 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/ctl3d32.dll.so %{_libdir}/wine/d3d10.dll.so %{_libdir}/wine/d3d10core.dll.so +%{_libdir}/wine/d3dcompiler_*.dll.so %{_libdir}/wine/d3dim.dll.so %{_libdir}/wine/d3drm.dll.so %{_libdir}/wine/d3dx9_*.dll.so +%{_libdir}/wine/d3dx10_*.dll.so %{_libdir}/wine/d3dxof.dll.so %{_libdir}/wine/dbghelp.dll.so %{_libdir}/wine/dciman32.dll.so @@ -832,6 +835,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/dxdiagn.dll.so %{_libdir}/wine/dxgi.dll.so %{_libdir}/wine/eject.exe.so +%{_libdir}/wine/explorerframe.dll.so %{_libdir}/wine/faultrep.dll.so %{_libdir}/wine/fltlib.dll.so %{_libdir}/wine/fusion.dll.so @@ -1292,6 +1296,10 @@ update-desktop-database &>/dev/null || : %endif %changelog +* Sat Aug 21 2010 Andreas Bierfert +- 1.3.1-1 +- version ugprade + * Sat Jul 31 2010 Andreas Bierfert - 1.3.0-1 - version upgrade From 0d86e12d49047d578ff9a6befe4bce6558244d54 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Wed, 29 Sep 2010 21:17:26 +0200 Subject: [PATCH 165/715] version upgrade --- .gitignore | 4 ++-- sources | 2 +- wine.spec | 20 ++++++++++++++++---- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 426f531..f231a5c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -wine-1.3.0.tar.bz2 -/wine-1.3.1.tar.bz2 +/wine-1.3.2.tar.bz2 +/wine-1.3.3.tar.bz2 diff --git a/sources b/sources index 057d814..fe6f2d5 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -5be30df05787f5db5bd5d2aa154aee87 wine-1.3.1.tar.bz2 +36fe53f4db6d5d98b01f5d5f2cd24d11 wine-1.3.3.tar.bz2 diff --git a/wine.spec b/wine.spec index 43194e6..e1dac28 100644 --- a/wine.spec +++ b/wine.spec @@ -1,13 +1,13 @@ %define no64bit 0 Name: wine -Version: 1.3.1 +Version: 1.3.3 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.3.1.tar.bz2 +Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-%{version}.tar.bz2 Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf @@ -424,11 +424,11 @@ This package adds an openal driver for wine. %patch1 %patch100 -%patch200 +#%patch200 %patch400 -p1 %patch401 -p1 %patch402 -p1 -%patch1000 +#%patch1000 autoreconf @@ -913,6 +913,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/msrle32.dll.so %{_libdir}/wine/mstask.dll.so %{_libdir}/wine/msvcirt.dll.so +%{_libdir}/wine/msvcp80.dll.so %{_libdir}/wine/msvcp90.dll.so %{_libdir}/wine/msvcr70.dll.so %{_libdir}/wine/msvcr71.dll.so @@ -928,6 +929,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/mswsock.dll.so %{_libdir}/wine/msxml3.dll.so %{_libdir}/wine/msxml4.dll.so +%{_libdir]/wine/msxml6.dll.so %{_libdir}/wine/nddeapi.dll.so %{_libdir}/wine/netapi32.dll.so %{_libdir}/wine/newdev.dll.so @@ -967,6 +969,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/rpcrt4.dll.so %{_libdir}/wine/rsabase.dll.so %{_libdir}/wine/rsaenh.dll.so +%{_libdir}/wine/rstrtmgr.dll.so %{_libdir}/wine/rtutils.dll.so %{_libdir}/wine/samlib.dll.so %{_libdir}/wine/sc.exe.so @@ -1009,6 +1012,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/vdmdbg.dll.so %{_libdir}/wine/version.dll.so %{_libdir}/wine/wbemprox.dll.so +%{_libdir}/wine/wer.dll.so %{_libdir}/wine/wiaservc.dll.so %{_libdir}/wine/windowscodecs.dll.so %{_libdir}/wine/wineaudioio.drv.so @@ -1297,6 +1301,14 @@ update-desktop-database &>/dev/null || : %endif %changelog +* Mon Sep 20 2010 Andreas Bierfert +- 1.3.3-1 +- version upgrade + +* Wed Sep 08 2010 Andreas Bierfert +- 1.3.2-1 +- version upgrade + * Sat Aug 21 2010 Andreas Bierfert - 1.3.1-1 - version ugprade From 0691f0d97c4331957f80e81f72e6413c5f3b5043 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Wed, 29 Sep 2010 21:18:27 +0200 Subject: [PATCH 166/715] winepulse upgrade to 0.39 --- ...c.patch => winepulse-0.39-configure.ac.patch | 17 ++++++++--------- winepulse-0.38.patch => winepulse-0.39.patch | 10 +++------- 2 files changed, 11 insertions(+), 16 deletions(-) rename winepulse-0.38-configure.ac.patch => winepulse-0.39-configure.ac.patch (85%) rename winepulse-0.38.patch => winepulse-0.39.patch (99%) diff --git a/winepulse-0.38-configure.ac.patch b/winepulse-0.39-configure.ac.patch similarity index 85% rename from winepulse-0.38-configure.ac.patch rename to winepulse-0.39-configure.ac.patch index d44a4e6..5055b6d 100644 --- a/winepulse-0.38-configure.ac.patch +++ b/winepulse-0.39-configure.ac.patch @@ -1,8 +1,8 @@ diff --git a/configure.ac b/configure.ac -index 61f376e..6fe1261 100644 +index 341ba181..998e063 100644 --- a/configure.ac +++ b/configure.ac -@@ -76,6 +76,7 @@ AC_ARG_WITH(png, AS_HELP_STRING([--without-png],[do not use PNG]), +@@ -78,6 +78,7 @@ AC_ARG_WITH(png, AS_HELP_STRING([--without-png],[do not use PNG]), [if test "x$withval" = "xno"; then ac_cv_header_png_h=no; fi]) AC_ARG_WITH(pthread, AS_HELP_STRING([--without-pthread],[do not use the pthread library]), [if test "x$withval" = "xno"; then ac_cv_header_pthread_h=no; fi]) @@ -10,39 +10,38 @@ index 61f376e..6fe1261 100644 AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)])) AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF]), [if test "x$withval" = "xno"; then ac_cv_header_tiffio_h=no; fi]) -@@ -1386,6 +1387,31 @@ then +@@ -1402,6 +1403,30 @@ then CFLAGS="$save_CFLAGS" fi +dnl **** Check for PulseAudio **** +AC_SUBST(PULSELIBS,"") -+AC_SUBST(PULSECFLAGS,"") ++AC_SUBST(PULSEINCL,"") +if test "x$with_pulse" != "xno"; +then + ac_save_CPPFLAGS="$CPPFLAGS" + if test "$PKG_CONFIG" != "false"; + then + ac_pulse_libs="`$PKG_CONFIG --libs libpulse 2>/dev/null`" -+ ac_pulse_cflags="`$PKG_CONFIG --cflags libpulse 2>/dev/null`" ++ ac_pulse_cflags="`$PKG_CONFIG --cflags-only-I libpulse 2>/dev/null`" + + CPPFLAGS="$CPPFLAGS $ac_pulse_cflags" + AC_CHECK_HEADERS(pulse/pulseaudio.h, + [AC_CHECK_LIB(pulse, pa_stream_is_corked, + [AC_DEFINE(HAVE_PULSEAUDIO, 1, [Define if you have pulseaudio]) + PULSELIBS="$ac_pulse_libs" -+ PULSECFLAGS="$ac_pulse_cflags"],,$ac_pulse_libs) ++ PULSEINCL="$ac_pulse_cflags"],,$ac_pulse_libs) + ]) + fi + CPPFLAGS="$ac_save_CPPFLAGS" +fi +WINE_WARNING_WITH(pulse, [test "$ac_cv_lib_pulse_pa_stream_is_corked" != "yes"], + [libpulse ${notice_platform}development files not found or too old, Pulse won't be supported.]) -+ + dnl **** Check for ALSA 1.x **** AC_SUBST(ALSALIBS,"") if test "$ac_cv_header_sys_asoundlib_h" = "yes" -o "$ac_cv_header_alsa_asoundlib_h" = "yes" -@@ -1553,7 +1579,7 @@ dnl **** Check for libodbc **** +@@ -1580,7 +1605,7 @@ dnl **** Check for libodbc **** WINE_CHECK_SONAME(odbc,SQLConnect,,[AC_DEFINE_UNQUOTED(SONAME_LIBODBC,["libodbc.$LIBEXT"])]) dnl **** Check for any sound system **** @@ -51,7 +50,7 @@ index 61f376e..6fe1261 100644 "$ac_cv_header_sys_soundcard_h" != "yes" -a \ "$ac_cv_header_machine_soundcard_h" != "yes" -a \ "$ac_cv_header_soundcard_h" != "yes" -a \ -@@ -2648,6 +2674,7 @@ WINE_CONFIG_DLL(winenas.drv) +@@ -2724,6 +2749,7 @@ WINE_CONFIG_DLL(winenas.drv) WINE_CONFIG_DLL(wineoss.drv) WINE_CONFIG_DLL(wineps.drv) WINE_CONFIG_DLL(wineps16.drv16,enable_win16) diff --git a/winepulse-0.38.patch b/winepulse-0.39.patch similarity index 99% rename from winepulse-0.38.patch rename to winepulse-0.39.patch index 6c4c271..9a4b773 100644 --- a/winepulse-0.38.patch +++ b/winepulse-0.39.patch @@ -1,17 +1,13 @@ diff --git a/dlls/winepulse.drv/Makefile.in b/dlls/winepulse.drv/Makefile.in new file mode 100644 -index 0000000..ed48381 +index 0000000..a6fdbf8 --- /dev/null +++ b/dlls/winepulse.drv/Makefile.in -@@ -0,0 +1,14 @@ -+TOPSRCDIR = @top_srcdir@ -+TOPOBJDIR = ../.. -+SRCDIR = @srcdir@ -+VPATH = @srcdir@ +@@ -0,0 +1,10 @@ +MODULE = winepulse.drv +IMPORTS = winmm user32 kernel32 +EXTRALIBS = @PULSELIBS@ -+EXTRACFLAGS = @PULSEINCL@ ++EXTRAINCL = @PULSEINCL@ + +C_SRCS = waveout.c \ + wavein.c \ From 52f1825ef1fde3bfdd97536c3be8acfff04c3810 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 4 Oct 2010 21:52:21 +0200 Subject: [PATCH 167/715] 1.3.4 --- .gitignore | 3 +-- sources | 2 +- wine-imagemagick-6.5.patch | 36 ++++++++++++++++++++----------- wine-rpath.patch | 20 ++++++++--------- wine.spec | 44 +++++++++++++++++++++++--------------- 5 files changed, 62 insertions(+), 43 deletions(-) diff --git a/.gitignore b/.gitignore index f231a5c..a18874f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1 @@ -/wine-1.3.2.tar.bz2 -/wine-1.3.3.tar.bz2 +/wine-1.3.4.tar.bz2 diff --git a/sources b/sources index fe6f2d5..c821cad 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -36fe53f4db6d5d98b01f5d5f2cd24d11 wine-1.3.3.tar.bz2 +dc8e12b39fab35a45d5f5a8e8f3fc8c1 wine-1.3.4.tar.bz2 diff --git a/wine-imagemagick-6.5.patch b/wine-imagemagick-6.5.patch index a591f83..4d3826a 100644 --- a/wine-imagemagick-6.5.patch +++ b/wine-imagemagick-6.5.patch @@ -1,6 +1,6 @@ ---- configure.orig 2010-05-25 19:44:56.000000000 +0200 -+++ configure 2010-05-25 19:46:11.000000000 +0200 -@@ -5132,10 +5132,10 @@ +--- configure.orig 2010-10-04 21:40:28.000000000 +0200 ++++ configure 2010-10-04 21:41:40.000000000 +0200 +@@ -5135,7 +5135,7 @@ then convert_version_major=`expr "$convert_version" : '.* \([0-9]*\)\.[0-9]*'` convert_version_minor=`expr "$convert_version" : '.* [0-9]*\.\([0-9]*\)'` @@ -8,14 +8,19 @@ + if test "$convert_version_major" -eq 6 -a "$convert_version_minor" -lt 5 then CONVERT=false -- as_fn_append wine_warnings "|imagemagick version 6.6 or newer is needed to rebuild icons." -+ as_fn_append wine_warnings "|imagemagick version 6.5 or newer is needed to rebuild icons." fi - fi - if test "$CONVERT" = false ---- configure.ac.orig 2010-05-25 19:45:16.000000000 +0200 -+++ configure.ac 2010-05-25 19:46:44.000000000 +0200 -@@ -303,10 +303,10 @@ +@@ -5144,7 +5144,7 @@ + then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no ($convert_version_major.$convert_version_minor)" >&5 + $as_echo "no ($convert_version_major.$convert_version_minor)" >&6; } +- as_fn_error $? "You need imagemagick version 6.6 or newer to rebuild icons in maintainer mode." "$LINENO" 5 ++ as_fn_error $? "You need imagemagick version 6.5 or newer to rebuild icons in maintainer mode." "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes ($convert_version_major.$convert_version_minor)" >&5 + $as_echo "yes ($convert_version_major.$convert_version_minor)" >&6; } +--- configure.ac.orig 2010-10-04 21:42:45.000000000 +0200 ++++ configure.ac 2010-10-04 21:43:18.000000000 +0200 +@@ -309,7 +309,7 @@ then convert_version_major=`expr "$convert_version" : '.* \([[0-9]]*\)\.[[0-9]]*'` convert_version_minor=`expr "$convert_version" : '.* [[0-9]]*\.\([[0-9]]*\)'` @@ -23,8 +28,13 @@ + if test "$convert_version_major" -eq 6 -a "$convert_version_minor" -lt 5 then CONVERT=false -- WINE_WARNING([imagemagick version 6.6 or newer is needed to rebuild icons.]) -+ WINE_WARNING([imagemagick version 6.5 or newer is needed to rebuild icons.]) fi - fi +@@ -317,7 +317,7 @@ if test "$CONVERT" = false + then + AC_MSG_RESULT([no ($convert_version_major.$convert_version_minor)]) +- AC_MSG_ERROR([You need imagemagick version 6.6 or newer to rebuild icons in maintainer mode.]) ++ AC_MSG_ERROR([You need imagemagick version 6.5 or newer to rebuild icons in maintainer mode.]) + else + AC_MSG_RESULT([yes ($convert_version_major.$convert_version_minor)]) + fi diff --git a/wine-rpath.patch b/wine-rpath.patch index 3a66716..151a30d 100644 --- a/wine-rpath.patch +++ b/wine-rpath.patch @@ -1,6 +1,6 @@ ---- configure.old 2010-04-02 20:43:45.000000000 +0300 -+++ configure 2010-04-03 23:26:57.365947610 +0300 -@@ -6727,14 +6727,14 @@ +--- configure.orig 2010-10-04 21:35:31.000000000 +0200 ++++ configure 2010-10-04 21:37:48.000000000 +0200 +@@ -6775,14 +6775,14 @@ fi @@ -9,8 +9,8 @@ -$as_echo_n "checking whether the compiler supports -fPIC -Wl,--rpath,\$ORIGIN/../lib... " >&6; } + as_ac_var=`$as_echo "ac_cv_cflags_-fPIC" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -fPIC" >&5 -+$as_echo_n "checking whether the compiler supports -fPIC" >&6; } - if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then : ++$as_echo_n "checking whether the compiler supports -fPIC " >&6; } + if eval "test \"\${$as_ac_var+set}\"" = set; then : $as_echo_n "(cached) " >&6 else ac_wine_try_cflags_saved=$CFLAGS @@ -19,22 +19,22 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main(int argc, char **argv) { return 0; } -@@ -6752,17 +6752,17 @@ +@@ -6800,17 +6800,17 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if test `eval 'as_val=${'$as_ac_var'};$as_echo "$as_val"'` = yes; then : - LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`" -- LDRPATH_LOCAL="-Wl,--rpath,\\\$\$ORIGIN/\$(TOPOBJDIR)/libs/wine" +- LDRPATH_LOCAL="-Wl,--rpath,\\\$\$ORIGIN/\$(top_builddir)/libs/wine" + LDRPATH_INSTALL="" -+ LDRPATH_LOCAL="" ++ LDRPATH_LOCAL="" else - as_ac_var=`$as_echo "ac_cv_cflags_-fPIC -Wl,-R,\\$ORIGIN/../lib" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -fPIC -Wl,-R,\$ORIGIN/../lib" >&5 -$as_echo_n "checking whether the compiler supports -fPIC -Wl,-R,\$ORIGIN/../lib... " >&6; } + as_ac_var=`$as_echo "ac_cv_cflags_-fPIC" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -fPIC" >&5 -+$as_echo_n "checking whether the compiler supports -fPIC" >&6; } - if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then : ++$as_echo_n "checking whether the compiler supports -fPIC " >&6; } + if eval "test \"\${$as_ac_var+set}\"" = set; then : $as_echo_n "(cached) " >&6 else ac_wine_try_cflags_saved=$CFLAGS diff --git a/wine.spec b/wine.spec index e1dac28..79f1821 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ %define no64bit 0 Name: wine -Version: 1.3.3 +Version: 1.3.4 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -43,8 +43,8 @@ Patch200: wine-imagemagick-6.5.patch # explain how to use wine with pulseaudio # see http://bugs.winehq.org/show_bug.cgi?id=10495 # and http://art.ified.ca/?page_id=40 -Patch400: http://art.ified.ca/downloads/winepulse/winepulse-0.38-configure.ac.patch -Patch401: http://art.ified.ca/downloads/winepulse/winepulse-0.38.patch +Patch400: http://art.ified.ca/downloads/winepulse/winepulse-0.39-configure.ac.patch +Patch401: http://art.ified.ca/downloads/winepulse/winepulse-0.39.patch Patch402: http://art.ified.ca/downloads/winepulse/winepulse-0.38-winecfg.patch Source402: README-FEDORA-PULSEAUDIO @@ -424,7 +424,7 @@ This package adds an openal driver for wine. %patch1 %patch100 -#%patch200 +%patch200 %patch400 -p1 %patch401 -p1 %patch402 -p1 @@ -689,6 +689,14 @@ update-desktop-database &>/dev/null || : %defattr(-,root,root,-) # meta package +%files wow +%defattr(-,root,root,-) +%ifarch %{ix86} +%{_bindir}/wine +%endif +%{_bindir}/wineserver +%{_libdir}/wine/wineboot.exe.so + %files core %defattr(-,root,root,-) %doc ANNOUNCE @@ -701,7 +709,6 @@ update-desktop-database &>/dev/null || : %doc VERSION # do not include huge changelogs .OLD .ALPHA .BETA (#204302) %doc documentation/README.* - %{_bindir}/winedump %{_libdir}/wine/explorer.exe.so %{_libdir}/wine/control.exe.so @@ -718,7 +725,6 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/write.exe.so %{_libdir}/wine/dxdiag.exe.so - %ifarch %{ix86} %{_bindir}/wine %{_bindir}/wine-preloader @@ -861,6 +867,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/imagehlp.dll.so %{_libdir}/wine/imm32.dll.so %{_libdir}/wine/inetcomm.dll.so +%{_libdir}/wine/inetcpl.cpl.so %{_libdir}/wine/inetmib1.dll.so %{_libdir}/wine/infosoft.dll.so %{_libdir}/wine/initpki.dll.so @@ -871,6 +878,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/itss.dll.so %{_libdir}/wine/jscript.dll.so %{_libdir}/wine/kernel32.dll.so +%{_libdir}/wine/ktmw32.dll.so %{_libdir}/wine/loadperf.dll.so %{_libdir}/wine/localspl.dll.so %{_libdir}/wine/localui.dll.so @@ -885,6 +893,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/midimap.dll.so %{_libdir}/wine/mlang.dll.so %{_libdir}/wine/mmdevapi.dll.so +%{_libdir}/wine/mofcomp.exe.so %{_libdir}/wine/mountmgr.sys.so %{_libdir}/wine/mpr.dll.so %{_libdir}/wine/mprapi.dll.so @@ -929,7 +938,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/mswsock.dll.so %{_libdir}/wine/msxml3.dll.so %{_libdir}/wine/msxml4.dll.so -%{_libdir]/wine/msxml6.dll.so +%{_libdir}/wine/msxml6.dll.so %{_libdir}/wine/nddeapi.dll.so %{_libdir}/wine/netapi32.dll.so %{_libdir}/wine/newdev.dll.so @@ -998,6 +1007,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/sxs.dll.so %{_libdir}/wine/t2embed.dll.so %{_libdir}/wine/tapi32.dll.so +%{_libdir}/wine/taskkill.exe.so %{_libdir}/wine/traffic.dll.so %{_libdir}/wine/unicows.dll.so %{_libdir}/wine/unlodctr.exe.so @@ -1053,8 +1063,9 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/xinput1_3.dll.so %{_libdir}/wine/xinput9_1_0.dll.so %{_libdir}/wine/xmllite.dll.so -%ifnarch x86_64 + # 16 bit and other non 64bit stuff +%ifnarch x86_64 %{_libdir}/wine/winevdm.exe.so %{_libdir}/wine/ifsmgr.vxd.so %{_libdir}/wine/mmdevldr.vxd.so @@ -1068,7 +1079,6 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/vtdapi.vxd.so %{_libdir}/wine/vwin32.vxd.so %{_libdir}/wine/w32skrnl.dll.so - %{_libdir}/wine/avifile.dll16.so %{_libdir}/wine/comm.drv16.so %{_libdir}/wine/commdlg.dll16.so @@ -1121,14 +1131,6 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/wow32.dll.so %endif -%files wow -%defattr(-,root,root,-) -%ifarch %{ix86} -%{_bindir}/wine -%endif -%{_bindir}/wineserver -%{_libdir}/wine/wineboot.exe.so - %files common %defattr(-,root,root,-) %{_bindir}/notepad @@ -1301,6 +1303,14 @@ update-desktop-database &>/dev/null || : %endif %changelog +* Sun Oct 03 2010 Andreas Bierfert +- 1.3.4-1 +- version upgrade + +* Wed Sep 29 2010 Andreas Bierfert +- 1.3.3-2 +- winepulse upgrade (0.39) + * Mon Sep 20 2010 Andreas Bierfert - 1.3.3-1 - version upgrade From 1b96525afc06c4b666ec9dd0ed03d19ebd8d1c6b Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 18 Oct 2010 20:50:03 +0200 Subject: [PATCH 168/715] - 1.3.5 --- .gitignore | 2 +- sources | 2 +- wine.spec | 8 ++++++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index a18874f..4beb829 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -/wine-1.3.4.tar.bz2 +/wine-1.3.5.tar.bz2 diff --git a/sources b/sources index c821cad..6e03c1b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -dc8e12b39fab35a45d5f5a8e8f3fc8c1 wine-1.3.4.tar.bz2 +c1d9a9040637296ea6cfc7f11cf6cee3 wine-1.3.5.tar.bz2 diff --git a/wine.spec b/wine.spec index 79f1821..ecc8a17 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ %define no64bit 0 Name: wine -Version: 1.3.4 +Version: 1.3.5 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -444,7 +444,6 @@ export CFLAGS="$RPM_OPT_FLAGS -Wno-error" %endif --enable-maintainer-mode \ --disable-tests - %{__make} TARGETFLAGS="" %{?_smp_mflags} %install @@ -740,6 +739,7 @@ update-desktop-database &>/dev/null || : %dir %{_libdir}/wine/fakedlls %{_libdir}/wine/fakedlls/* %{_libdir}/wine/attrib.exe.so +%{_libdir}/wine/aspnet_regiis.exe.so %{_libdir}/wine/cacls.exe.so %{_libdir}/wine/expand.exe.so %{_libdir}/wine/extrac32.exe.so @@ -1303,6 +1303,10 @@ update-desktop-database &>/dev/null || : %endif %changelog +* Mon Oct 18 2010 Andreas Bierfert +- 1.3.5-1 +- version upgrade + * Sun Oct 03 2010 Andreas Bierfert - 1.3.4-1 - version upgrade From 410d7e8eabccc2a61e2f3165c4c45171ebb62eeb Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Fri, 29 Oct 2010 22:31:00 +0200 Subject: [PATCH 169/715] - 1.3.6-1 - version upgrade - rebase winepulse configure patch - add gstreamer BR for new gstreamer support - add libtiff BR for new tiff support --- .gitignore | 1 + sources | 2 +- wine.spec | 16 ++++++++++++++-- winepulse-0.39-configure.ac.patch | 18 ++++++++---------- 4 files changed, 24 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index 4beb829..733777d 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /wine-1.3.5.tar.bz2 +/wine-1.3.6.tar.bz2 diff --git a/sources b/sources index 6e03c1b..927f24b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -c1d9a9040637296ea6cfc7f11cf6cee3 wine-1.3.5.tar.bz2 +3db0941aafa23e4fd340326a104e2762 wine-1.3.6.tar.bz2 diff --git a/wine.spec b/wine.spec index ecc8a17..3000d67 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ %define no64bit 0 Name: wine -Version: 1.3.5 +Version: 1.3.6 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -110,6 +110,8 @@ BuildRequires: gsm-devel BuildRequires: libv4l-devel BuildRequires: fontpackages-devel BuildRequires: ImageMagick-devel +BuildRequires: gstreamer-devel +BuildRequires: libtiff-devel %if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 BuildRequires: openal-soft-devel @@ -425,7 +427,7 @@ This package adds an openal driver for wine. %patch1 %patch100 %patch200 -%patch400 -p1 +%patch400 %patch401 -p1 %patch402 -p1 #%patch1000 @@ -444,6 +446,7 @@ export CFLAGS="$RPM_OPT_FLAGS -Wno-error" %endif --enable-maintainer-mode \ --disable-tests + %{__make} TARGETFLAGS="" %{?_smp_mflags} %install @@ -1027,6 +1030,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/windowscodecs.dll.so %{_libdir}/wine/wineaudioio.drv.so %{_libdir}/wine/winecoreaudio.drv.so +%{_libdir}/wine/winegstreamer.dll.so %{_libdir}/wine/winejoystick.drv.so %{_libdir}/wine/winemapi.dll.so %{_libdir}/wine/winex11.drv.so @@ -1042,6 +1046,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/winscard.dll.so %{_libdir}/wine/wintab32.dll.so %{_libdir}/wine/wintrust.dll.so +%{_libdir}/wine/wlanapi.dll.so %{_libdir}/wine/wnaspi32.dll.so %{_libdir}/wine/ws2_32.dll.so %{_libdir}/wine/wsock32.dll.so @@ -1303,6 +1308,13 @@ update-desktop-database &>/dev/null || : %endif %changelog +* Fri Oct 29 2010 Andreas Bierfert +- 1.3.6-1 +- version upgrade +- rebase winepulse configure patch +- add gstreamer BR for new gstreamer support +- add libtiff BR for new tiff support + * Mon Oct 18 2010 Andreas Bierfert - 1.3.5-1 - version upgrade diff --git a/winepulse-0.39-configure.ac.patch b/winepulse-0.39-configure.ac.patch index 5055b6d..e66cb60 100644 --- a/winepulse-0.39-configure.ac.patch +++ b/winepulse-0.39-configure.ac.patch @@ -1,8 +1,6 @@ -diff --git a/configure.ac b/configure.ac -index 341ba181..998e063 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -78,6 +78,7 @@ AC_ARG_WITH(png, AS_HELP_STRING([--without-png],[do not use PNG]), +--- configure.ac.orig 2010-10-29 21:01:38.000000000 +0200 ++++ configure.ac 2010-10-29 21:05:28.000000000 +0200 +@@ -79,6 +79,7 @@ [if test "x$withval" = "xno"; then ac_cv_header_png_h=no; fi]) AC_ARG_WITH(pthread, AS_HELP_STRING([--without-pthread],[do not use the pthread library]), [if test "x$withval" = "xno"; then ac_cv_header_pthread_h=no; fi]) @@ -10,9 +8,9 @@ index 341ba181..998e063 100644 AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)])) AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF]), [if test "x$withval" = "xno"; then ac_cv_header_tiffio_h=no; fi]) -@@ -1402,6 +1403,30 @@ then - CFLAGS="$save_CFLAGS" - fi +@@ -1431,6 +1432,30 @@ + [gstreamer-0.10 ${notice_platform}development files not found, gstreamer support disabled]) + test "x$ac_cv_lib_gstapp_0_10_gst_app_buffer_new" = xyes || enable_winegstreamer=${enable_winegstreamer:-no} +dnl **** Check for PulseAudio **** +AC_SUBST(PULSELIBS,"") @@ -41,7 +39,7 @@ index 341ba181..998e063 100644 dnl **** Check for ALSA 1.x **** AC_SUBST(ALSALIBS,"") if test "$ac_cv_header_sys_asoundlib_h" = "yes" -o "$ac_cv_header_alsa_asoundlib_h" = "yes" -@@ -1580,7 +1605,7 @@ dnl **** Check for libodbc **** +@@ -1609,7 +1634,7 @@ WINE_CHECK_SONAME(odbc,SQLConnect,,[AC_DEFINE_UNQUOTED(SONAME_LIBODBC,["libodbc.$LIBEXT"])]) dnl **** Check for any sound system **** @@ -50,7 +48,7 @@ index 341ba181..998e063 100644 "$ac_cv_header_sys_soundcard_h" != "yes" -a \ "$ac_cv_header_machine_soundcard_h" != "yes" -a \ "$ac_cv_header_soundcard_h" != "yes" -a \ -@@ -2724,6 +2749,7 @@ WINE_CONFIG_DLL(winenas.drv) +@@ -2760,6 +2785,7 @@ WINE_CONFIG_DLL(wineoss.drv) WINE_CONFIG_DLL(wineps.drv) WINE_CONFIG_DLL(wineps16.drv16,enable_win16) From 5fa407995f353417e632419ced1b02ff5c01fef3 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 30 Oct 2010 06:22:12 +0200 Subject: [PATCH 170/715] - require prelink and gstreamer-plugins --- wine.spec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 3000d67..036a772 100644 --- a/wine.spec +++ b/wine.spec @@ -110,8 +110,9 @@ BuildRequires: gsm-devel BuildRequires: libv4l-devel BuildRequires: fontpackages-devel BuildRequires: ImageMagick-devel -BuildRequires: gstreamer-devel +BuildRequires: gstreamer-devel gstreamer-plugins-base-devel BuildRequires: libtiff-devel +BuildRequires: prelink %if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 BuildRequires: openal-soft-devel From 1aaf235089d1ae28f33c9da1321b97f3c110a2a1 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 13 Nov 2010 16:14:43 +0100 Subject: [PATCH 171/715] - 1.3.7-1 - version upgrade - fix package description (#652718) - compile with D_FORTIFY_SOURCE=0 for now as it breaks wine (#650875) --- .gitignore | 1 + sources | 2 +- wine.spec | 17 ++++++++++++++--- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 733777d..db57b88 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /wine-1.3.5.tar.bz2 /wine-1.3.6.tar.bz2 +/wine-1.3.7.tar.bz2 diff --git a/sources b/sources index 927f24b..0318d9a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -3db0941aafa23e4fd340326a104e2762 wine-1.3.6.tar.bz2 +e24190ee2232119874526218ce4a174f wine-1.3.7.tar.bz2 diff --git a/wine.spec b/wine.spec index 036a772..99f7b6e 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ %define no64bit 0 Name: wine -Version: 1.3.6 +Version: 1.3.7 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -193,7 +193,7 @@ Requires: gnutls(x86-64) Wine core package includes the basic wine stuff needed by all other packages. %package wow -Summary: Files for wine wow seperation +Summary: Files for wine wow separation Group: Applications/Emulators %ifarch x86_64 Requires: wine-core(x86-64) = %{version}-%{release} @@ -436,7 +436,10 @@ This package adds an openal driver for wine. autoreconf %build -export CFLAGS="$RPM_OPT_FLAGS -Wno-error" +# disable fortify as it breaks wine +# http://bugs.winehq.org/show_bug.cgi?id=24606 +# http://bugs.winehq.org/show_bug.cgi?id=25073 +export CFLAGS="$RPM_OPT_FLAGS -Wno-error -D_FORTIFY_SOURCE=0" %configure \ --sysconfdir=%{_sysconfdir}/wine \ --x-includes=%{_includedir} --x-libraries=%{_libdir} \ @@ -758,6 +761,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/ping.exe.so %{_libdir}/wine/reg.exe.so %{_libdir}/wine/regedit.exe.so +%{_libdir}/wine/regsvcs.exe.so %{_libdir}/wine/regsvr32.exe.so %{_libdir}/wine/rpcss.exe.so %{_libdir}/wine/rundll32.exe.so @@ -1063,6 +1067,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/wined3d.dll.so %{_libdir}/wine/dnsapi.dll.so %{_libdir}/wine/iexplore.exe.so +%{_libdir}/wine/xapofx1_1.dll.so %{_libdir}/wine/xcopy.exe.so %{_libdir}/wine/xinput1_1.dll.so %{_libdir}/wine/xinput1_2.dll.so @@ -1309,6 +1314,12 @@ update-desktop-database &>/dev/null || : %endif %changelog +* Sat Nov 13 2010 Andreas Bierfert +- 1.3.7-1 +- version upgrade +- fix package description (#652718) +- compile with D_FORTIFY_SOURCE=0 for now as it breaks wine (#650875) + * Fri Oct 29 2010 Andreas Bierfert - 1.3.6-1 - version upgrade From da6f9cbf260fda0714dfdccd1baa7056d927e406 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 13 Nov 2010 16:16:27 +0100 Subject: [PATCH 172/715] - fix wording --- wine.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 99f7b6e..12bbb7b 100644 --- a/wine.spec +++ b/wine.spec @@ -1318,7 +1318,7 @@ update-desktop-database &>/dev/null || : - 1.3.7-1 - version upgrade - fix package description (#652718) -- compile with D_FORTIFY_SOURCE=0 for now as it breaks wine (#650875) +- compile with D_FORTIFY_SOURCE=0 for now to avoid breaking wine (#650875) * Fri Oct 29 2010 Andreas Bierfert - 1.3.6-1 From c998fbcea13a4c7138b7d70d1d81854c1907b29e Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Wed, 17 Nov 2010 23:30:44 +0100 Subject: [PATCH 173/715] - 1.3.7-2 - cleanup cflags a bit --- wine.spec | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/wine.spec b/wine.spec index 12bbb7b..e831371 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %define no64bit 0 Name: wine Version: 1.3.7 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -439,7 +439,7 @@ autoreconf # disable fortify as it breaks wine # http://bugs.winehq.org/show_bug.cgi?id=24606 # http://bugs.winehq.org/show_bug.cgi?id=25073 -export CFLAGS="$RPM_OPT_FLAGS -Wno-error -D_FORTIFY_SOURCE=0" +export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno-error" %configure \ --sysconfdir=%{_sysconfdir}/wine \ --x-includes=%{_includedir} --x-libraries=%{_libdir} \ @@ -1314,6 +1314,10 @@ update-desktop-database &>/dev/null || : %endif %changelog +* Tue Nov 16 2010 Andreas Bierfert +- 1.3.7-2 +- cleanup cflags a bit + * Sat Nov 13 2010 Andreas Bierfert - 1.3.7-1 - version upgrade From f38f333286da7c5776e59b7bee30457790aa5a8d Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 27 Nov 2010 11:10:12 +0100 Subject: [PATCH 174/715] - 1.3.8-1 - version upgrade - require libXcursor (#655255) - require wine-openal in wine meta package (#657144) --- wine.spec | 36 +++++++++++++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/wine.spec b/wine.spec index e831371..9773fef 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %define no64bit 0 Name: wine -Version: 1.3.7 -Release: 2%{?dist} +Version: 1.3.8 +Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -133,6 +133,10 @@ Requires: wine-cms(x86-32) = %{version}-%{release} Requires: wine-ldap(x86-32) = %{version}-%{release} Requires: wine-twain(x86-32) = %{version}-%{release} Requires: wine-pulseaudio(x86-32) = %{version}-%{release} +%if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 +Requires: wine-openal(x86-32) = %{version}-%{release} +%endif + # 64bit %ifarch x86_64 Requires: wine-core(x86-64) = %{version}-%{release} @@ -141,6 +145,9 @@ Requires: wine-cms(x86-64) = %{version}-%{release} Requires: wine-ldap(x86-64) = %{version}-%{release} Requires: wine-twain(x86-64) = %{version}-%{release} Requires: wine-pulseaudio(x86-64) = %{version}-%{release} +%if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 +Requires: wine-openal(x86-64) = %{version}-%{release} +%endif Requires: wine-wow(x86-64) = %{version}-%{release} Conflicts: wine-wow(x86-32) = %{version}-%{release} %endif @@ -180,12 +187,16 @@ Requires: freetype(x86-32) Requires: nss-mdns(x86-32) # require Xrender isa on x86_64 (#510947) Requires: libXrender(x86-32) +# requireXcursor (#655255) +Requires: libXcursor(x86-32) Requires: gnutls(x86-32) %endif %ifarch x86_64 Requires: nss-mdns(x86-64) Requires: freetype(x86-64) Requires: gnutls(x86-64) +Requires: libXrender(x86-64) +Requires: libXcursor(x86-64) %endif @@ -766,6 +777,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/rpcss.exe.so %{_libdir}/wine/rundll32.exe.so %{_libdir}/wine/secedit.exe.so +%{_libdir}/wine/servicemodelreg.exe.so %{_libdir}/wine/services.exe.so %{_libdir}/wine/start.exe.so %{_libdir}/wine/termsv.exe.so @@ -818,6 +830,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/d3dx9_*.dll.so %{_libdir}/wine/d3dx10_*.dll.so %{_libdir}/wine/d3dxof.dll.so +%{_libdir}/wine/dbgeng.dll.so %{_libdir}/wine/dbghelp.dll.so %{_libdir}/wine/dciman32.dll.so %{_libdir}/wine/ddraw.dll.so @@ -1157,8 +1170,18 @@ update-desktop-database &>/dev/null || : %{_bindir}/wineconsole %{_bindir}/winecfg %dir %{_datadir}/wine -%{_mandir}/man1/wine.1.gz +%{_mandir}/man1/wine.1* %{_mandir}/man1/wineserver.1* +%{_mandir}/man1/msiexec.1* +%{_mandir}/man1/notepad.1* +%{_mandir}/man1/regedit.1* +%{_mandir}/man1/regsvr32.1* +%{_mandir}/man1/wineboot.1* +%{_mandir}/man1/winecfg.1* +%{_mandir}/man1/wineconsole.1* +%{_mandir}/man1/winefile.1* +%{_mandir}/man1/winemine.1* +%{_mandir}/man1/winepath.1* %lang(fr) %{_mandir}/fr.UTF-8/man1/wine.1* %lang(fr) %{_mandir}/fr.UTF-8/man1/wineserver.1* %lang(de) %{_mandir}/de.UTF-8/man1/wine.1* @@ -1278,6 +1301,7 @@ update-desktop-database &>/dev/null || : %{_bindir}/wrc %{_mandir}/man1/widl.1* %{_mandir}/man1/winebuild.1* +%{_mandir}/man1/winecpp.1* %{_mandir}/man1/winedump.1* %{_mandir}/man1/winegcc.1* %{_mandir}/man1/winemaker.1* @@ -1314,6 +1338,12 @@ update-desktop-database &>/dev/null || : %endif %changelog +* Sat Nov 27 2010 Andreas Bierfert +- 1.3.8-1 +- version upgrade +- require libXcursor (#655255) +- require wine-openal in wine meta package (#657144) + * Tue Nov 16 2010 Andreas Bierfert - 1.3.7-2 - cleanup cflags a bit From 3e08eded6fdf9eb4752f5ef68aa0b44de3e805bd Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 27 Nov 2010 11:14:05 +0100 Subject: [PATCH 175/715] - 1.3.8 --- .gitignore | 1 + sources | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index db57b88..532eaf2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /wine-1.3.5.tar.bz2 /wine-1.3.6.tar.bz2 /wine-1.3.7.tar.bz2 +/wine-1.3.8.tar.bz2 diff --git a/sources b/sources index 0318d9a..a0e0e0a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -e24190ee2232119874526218ce4a174f wine-1.3.7.tar.bz2 +395aa76d5bba31afedd6bfe38564ae52 wine-1.3.8.tar.bz2 From 5a4e788d01641119ee785dec16b03f1f2614b65f Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 13 Dec 2010 11:36:52 +0100 Subject: [PATCH 176/715] - 1.3.9-1 - version upgrade --- .gitignore | 1 + sources | 2 +- wine.spec | 20 ++++++++++++-------- winepulse-0.39-configure.ac.patch | 14 +++++++------- 4 files changed, 21 insertions(+), 16 deletions(-) diff --git a/.gitignore b/.gitignore index 532eaf2..b3438e4 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ /wine-1.3.6.tar.bz2 /wine-1.3.7.tar.bz2 /wine-1.3.8.tar.bz2 +/wine-1.3.9.tar.bz2 diff --git a/sources b/sources index a0e0e0a..42872b3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -395aa76d5bba31afedd6bfe38564ae52 wine-1.3.8.tar.bz2 +708862552219e1c97585b291ea7277c2 wine-1.3.9.tar.bz2 diff --git a/wine.spec b/wine.spec index 9773fef..c8f8493 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ %define no64bit 0 Name: wine -Version: 1.3.8 +Version: 1.3.9 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -43,13 +43,11 @@ Patch200: wine-imagemagick-6.5.patch # explain how to use wine with pulseaudio # see http://bugs.winehq.org/show_bug.cgi?id=10495 # and http://art.ified.ca/?page_id=40 -Patch400: http://art.ified.ca/downloads/winepulse/winepulse-0.39-configure.ac.patch +Patch400: winepulse-0.39-configure.ac.patch Patch401: http://art.ified.ca/downloads/winepulse/winepulse-0.39.patch Patch402: http://art.ified.ca/downloads/winepulse/winepulse-0.38-winecfg.patch Source402: README-FEDORA-PULSEAUDIO - - # enhancements # add wine-gecko support Patch1000: wine-gecko.patch @@ -439,10 +437,9 @@ This package adds an openal driver for wine. %patch1 %patch100 %patch200 -%patch400 -%patch401 -p1 -%patch402 -p1 -#%patch1000 +%patch400 -b .winepulse +%patch401 -p1 -b .winepulse +%patch402 -p1 -b .winepulse autoreconf @@ -962,7 +959,9 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/msxml6.dll.so %{_libdir}/wine/nddeapi.dll.so %{_libdir}/wine/netapi32.dll.so +%{_libdir}/wine/netsh.exe.so %{_libdir}/wine/newdev.dll.so +%{_libdir}/wine/npmshtml.dll.so %{_libdir}/wine/ntdll.dll.so %{_libdir}/wine/ntdsapi.dll.so %{_libdir}/wine/ntprint.dll.so @@ -1059,6 +1058,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/winnls32.dll.so %{_libdir}/wine/winspool.drv.so %{_libdir}/wine/wmi.dll.so +%{_libdir}/wine/wmic.exe.so %{_libdir}/wine/wmiutils.dll.so %{_libdir}/wine/spoolss.dll.so %{_libdir}/wine/winscard.dll.so @@ -1338,6 +1338,10 @@ update-desktop-database &>/dev/null || : %endif %changelog +* Sat Dec 11 2010 Andreas Bierfert +- 1.3.9-1 +- version upgrade + * Sat Nov 27 2010 Andreas Bierfert - 1.3.8-1 - version upgrade diff --git a/winepulse-0.39-configure.ac.patch b/winepulse-0.39-configure.ac.patch index e66cb60..ef261ed 100644 --- a/winepulse-0.39-configure.ac.patch +++ b/winepulse-0.39-configure.ac.patch @@ -1,6 +1,6 @@ ---- configure.ac.orig 2010-10-29 21:01:38.000000000 +0200 -+++ configure.ac 2010-10-29 21:05:28.000000000 +0200 -@@ -79,6 +79,7 @@ +--- configure.ac.orig 2010-12-13 10:58:43.000000000 +0100 ++++ configure.ac 2010-12-13 11:01:06.000000000 +0100 +@@ -81,6 +81,7 @@ [if test "x$withval" = "xno"; then ac_cv_header_png_h=no; fi]) AC_ARG_WITH(pthread, AS_HELP_STRING([--without-pthread],[do not use the pthread library]), [if test "x$withval" = "xno"; then ac_cv_header_pthread_h=no; fi]) @@ -8,7 +8,7 @@ AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)])) AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF]), [if test "x$withval" = "xno"; then ac_cv_header_tiffio_h=no; fi]) -@@ -1431,6 +1432,30 @@ +@@ -1464,6 +1465,30 @@ [gstreamer-0.10 ${notice_platform}development files not found, gstreamer support disabled]) test "x$ac_cv_lib_gstapp_0_10_gst_app_buffer_new" = xyes || enable_winegstreamer=${enable_winegstreamer:-no} @@ -39,7 +39,7 @@ dnl **** Check for ALSA 1.x **** AC_SUBST(ALSALIBS,"") if test "$ac_cv_header_sys_asoundlib_h" = "yes" -o "$ac_cv_header_alsa_asoundlib_h" = "yes" -@@ -1609,7 +1634,7 @@ +@@ -1642,7 +1667,7 @@ WINE_CHECK_SONAME(odbc,SQLConnect,,[AC_DEFINE_UNQUOTED(SONAME_LIBODBC,["libodbc.$LIBEXT"])]) dnl **** Check for any sound system **** @@ -48,11 +48,11 @@ "$ac_cv_header_sys_soundcard_h" != "yes" -a \ "$ac_cv_header_machine_soundcard_h" != "yes" -a \ "$ac_cv_header_soundcard_h" != "yes" -a \ -@@ -2760,6 +2785,7 @@ +@@ -2797,6 +2822,7 @@ WINE_CONFIG_DLL(wineoss.drv) WINE_CONFIG_DLL(wineps.drv) WINE_CONFIG_DLL(wineps16.drv16,enable_win16) +WINE_CONFIG_DLL(winepulse.drv) + WINE_CONFIG_DLL(wineqtdecoder) WINE_CONFIG_DLL(winequartz.drv) WINE_CONFIG_DLL(winex11.drv) - WINE_CONFIG_DLL(wing.dll16,enable_win16) From 1a96be6a002a42aa7b8c26ee6bbda7d0e66ea162 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Thu, 30 Dec 2010 12:17:56 +0100 Subject: [PATCH 177/715] - 1.3.10-1 - version upgrade --- .gitignore | 1 + sources | 2 +- wine.spec | 20 ++++++++----- ...tch => winepulse-configure.ac-1.3.10.patch | 28 ++++++++++--------- 4 files changed, 30 insertions(+), 21 deletions(-) rename winepulse-0.39-configure.ac.patch => winepulse-configure.ac-1.3.10.patch (73%) diff --git a/.gitignore b/.gitignore index b3438e4..bf9b492 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ /wine-1.3.7.tar.bz2 /wine-1.3.8.tar.bz2 /wine-1.3.9.tar.bz2 +/wine-1.3.10.tar.bz2 diff --git a/sources b/sources index 42872b3..1f5892b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -708862552219e1c97585b291ea7277c2 wine-1.3.9.tar.bz2 +a9f616cdcfb07a832c25623d3a971c3c wine-1.3.10.tar.bz2 diff --git a/wine.spec b/wine.spec index c8f8493..ec7985e 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ %define no64bit 0 Name: wine -Version: 1.3.9 +Version: 1.3.10 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -43,7 +43,7 @@ Patch200: wine-imagemagick-6.5.patch # explain how to use wine with pulseaudio # see http://bugs.winehq.org/show_bug.cgi?id=10495 # and http://art.ified.ca/?page_id=40 -Patch400: winepulse-0.39-configure.ac.patch +Patch400: http://art.ified.ca/downloads/winepulse/winepulse-configure.ac-1.3.10.patch Patch401: http://art.ified.ca/downloads/winepulse/winepulse-0.39.patch Patch402: http://art.ified.ca/downloads/winepulse/winepulse-0.38-winecfg.patch Source402: README-FEDORA-PULSEAUDIO @@ -434,10 +434,10 @@ This package adds an openal driver for wine. %prep %setup -q -%patch1 -%patch100 -%patch200 -%patch400 -b .winepulse +%patch1 -b .rpath +%patch100 -b .fedorafonts +%patch200 -b .imagemagick +%patch400 -p1 -b .winepulse %patch401 -p1 -b .winepulse %patch402 -p1 -b .winepulse @@ -747,6 +747,7 @@ update-desktop-database &>/dev/null || : %ifarch x86_64 %{_bindir}/wine64 +%{_bindir}/wine64-preloader %{_sysconfdir}/ld.so.conf.d/wine-64.conf %endif @@ -954,6 +955,8 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/msvfw32.dll.so %{_libdir}/wine/msvidc32.dll.so %{_libdir}/wine/mswsock.dll.so +%{_libdir}/wine/msxml.dll.so +%{_libdir}/wine/msxml2.dll.so %{_libdir}/wine/msxml3.dll.so %{_libdir}/wine/msxml4.dll.so %{_libdir}/wine/msxml6.dll.so @@ -1045,7 +1048,6 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/wer.dll.so %{_libdir}/wine/wiaservc.dll.so %{_libdir}/wine/windowscodecs.dll.so -%{_libdir}/wine/wineaudioio.drv.so %{_libdir}/wine/winecoreaudio.drv.so %{_libdir}/wine/winegstreamer.dll.so %{_libdir}/wine/winejoystick.drv.so @@ -1338,6 +1340,10 @@ update-desktop-database &>/dev/null || : %endif %changelog +* Tue Dec 28 2010 Andreas Bierfert +- 1.3.10-1 +- version upgrade + * Sat Dec 11 2010 Andreas Bierfert - 1.3.9-1 - version upgrade diff --git a/winepulse-0.39-configure.ac.patch b/winepulse-configure.ac-1.3.10.patch similarity index 73% rename from winepulse-0.39-configure.ac.patch rename to winepulse-configure.ac-1.3.10.patch index ef261ed..65085cf 100644 --- a/winepulse-0.39-configure.ac.patch +++ b/winepulse-configure.ac-1.3.10.patch @@ -1,6 +1,8 @@ ---- configure.ac.orig 2010-12-13 10:58:43.000000000 +0100 -+++ configure.ac 2010-12-13 11:01:06.000000000 +0100 -@@ -81,6 +81,7 @@ +diff --git a/configure.ac b/configure.ac +index 5e1810f..c941f93 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -79,6 +79,7 @@ AC_ARG_WITH(png, AS_HELP_STRING([--without-png],[do not use PNG]), [if test "x$withval" = "xno"; then ac_cv_header_png_h=no; fi]) AC_ARG_WITH(pthread, AS_HELP_STRING([--without-pthread],[do not use the pthread library]), [if test "x$withval" = "xno"; then ac_cv_header_pthread_h=no; fi]) @@ -8,9 +10,9 @@ AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)])) AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF]), [if test "x$withval" = "xno"; then ac_cv_header_tiffio_h=no; fi]) -@@ -1464,6 +1465,30 @@ - [gstreamer-0.10 ${notice_platform}development files not found, gstreamer support disabled]) - test "x$ac_cv_lib_gstapp_0_10_gst_app_buffer_new" = xyes || enable_winegstreamer=${enable_winegstreamer:-no} +@@ -1434,6 +1435,30 @@ then + CFLAGS="$save_CFLAGS" + fi +dnl **** Check for PulseAudio **** +AC_SUBST(PULSELIBS,"") @@ -36,19 +38,19 @@ +WINE_WARNING_WITH(pulse, [test "$ac_cv_lib_pulse_pa_stream_is_corked" != "yes"], + [libpulse ${notice_platform}development files not found or too old, Pulse won't be supported.]) + - dnl **** Check for ALSA 1.x **** - AC_SUBST(ALSALIBS,"") - if test "$ac_cv_header_sys_asoundlib_h" = "yes" -o "$ac_cv_header_alsa_asoundlib_h" = "yes" -@@ -1642,7 +1667,7 @@ + dnl **** Check for gstreamer **** + if test "x$with_gstreamer" != "xno" + then +@@ -1630,7 +1655,7 @@ dnl **** Check for libodbc **** WINE_CHECK_SONAME(odbc,SQLConnect,,[AC_DEFINE_UNQUOTED(SONAME_LIBODBC,["libodbc.$LIBEXT"])]) dnl **** Check for any sound system **** --if test "x$ALSALIBS$AUDIOIOLIBS$COREAUDIO$NASLIBS$ESDLIBS$ac_cv_lib_soname_jack" = "x" -a \ -+if test "x$ALSALIBS$AUDIOIOLIBS$COREAUDIO$NASLIBS$ESDLIBS$PULSELIBS$ac_cv_lib_soname_jack" = "x" -a \ +-if test "x$ALSALIBS$COREAUDIO$NASLIBS$ESDLIBS$ac_cv_lib_soname_jack" = "x" -a \ ++if test "x$ALSALIBS$COREAUDIO$NASLIBS$ESDLIBS$PULSELIBS$ac_cv_lib_soname_jack" = "x" -a \ "$ac_cv_header_sys_soundcard_h" != "yes" -a \ "$ac_cv_header_machine_soundcard_h" != "yes" -a \ "$ac_cv_header_soundcard_h" != "yes" -a \ -@@ -2797,6 +2822,7 @@ +@@ -2797,6 +2822,7 @@ WINE_CONFIG_DLL(winenas.drv) WINE_CONFIG_DLL(wineoss.drv) WINE_CONFIG_DLL(wineps.drv) WINE_CONFIG_DLL(wineps16.drv16,enable_win16) From b5ebb62139a5d36e8ce0287c9542379afae3f985 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 24 Jan 2011 18:11:46 +0100 Subject: [PATCH 178/715] - 1.3.12-1 - version upgrade --- .gitignore | 2 + sources | 2 +- wine.spec | 15 +- winepulse-0.38-winecfg.patch | 313 --------------------------------- winepulse-winecfg-1.3.11.patch | 49 ++++++ 5 files changed, 64 insertions(+), 317 deletions(-) delete mode 100644 winepulse-0.38-winecfg.patch create mode 100644 winepulse-winecfg-1.3.11.patch diff --git a/.gitignore b/.gitignore index bf9b492..bf7b922 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,5 @@ /wine-1.3.8.tar.bz2 /wine-1.3.9.tar.bz2 /wine-1.3.10.tar.bz2 +/wine-1.3.11.tar.bz2 +/wine-1.3.12.tar.bz2 diff --git a/sources b/sources index 1f5892b..fb0cf67 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -a9f616cdcfb07a832c25623d3a971c3c wine-1.3.10.tar.bz2 +a36a5e9ec4b72dc4fa8e0a10a23e8dee wine-1.3.12.tar.bz2 diff --git a/wine.spec b/wine.spec index ec7985e..2da744a 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ %define no64bit 0 Name: wine -Version: 1.3.10 +Version: 1.3.12 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -45,7 +45,7 @@ Patch200: wine-imagemagick-6.5.patch # and http://art.ified.ca/?page_id=40 Patch400: http://art.ified.ca/downloads/winepulse/winepulse-configure.ac-1.3.10.patch Patch401: http://art.ified.ca/downloads/winepulse/winepulse-0.39.patch -Patch402: http://art.ified.ca/downloads/winepulse/winepulse-0.38-winecfg.patch +Patch402: http://art.ified.ca/downloads/winepulse/winepulse-winecfg-1.3.11.patch Source402: README-FEDORA-PULSEAUDIO # enhancements @@ -459,7 +459,7 @@ export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno --enable-maintainer-mode \ --disable-tests -%{__make} TARGETFLAGS="" %{?_smp_mflags} +%{__make} TARGETFLAGS="" #%{?_smp_mflags} %install rm -rf %{buildroot} @@ -964,6 +964,7 @@ update-desktop-database &>/dev/null || : %{_libdir}/wine/netapi32.dll.so %{_libdir}/wine/netsh.exe.so %{_libdir}/wine/newdev.dll.so +%{_libdir}/wine/normaliz.dll.so %{_libdir}/wine/npmshtml.dll.so %{_libdir}/wine/ntdll.dll.so %{_libdir}/wine/ntdsapi.dll.so @@ -1340,6 +1341,14 @@ update-desktop-database &>/dev/null || : %endif %changelog +* Mon Jan 24 2011 Andreas Bierfert +- 1.3.12-1 +- version upgrade + +* Sun Jan 09 2011 Andreas Bierfert +- 1.3.11-1 +- version upgrade + * Tue Dec 28 2010 Andreas Bierfert - 1.3.10-1 - version upgrade diff --git a/winepulse-0.38-winecfg.patch b/winepulse-0.38-winecfg.patch deleted file mode 100644 index 30d17ed..0000000 --- a/winepulse-0.38-winecfg.patch +++ /dev/null @@ -1,313 +0,0 @@ -diff --git a/programs/winecfg/Bg.rc b/programs/winecfg/Bg.rc -index d1ad34d..a95503c 100644 ---- a/programs/winecfg/Bg.rc -+++ b/programs/winecfg/Bg.rc -@@ -272,6 +272,7 @@ BEGIN - IDS_ACCEL_STANDARD "Standard" - IDS_ACCEL_BASIC "Basic" - IDS_ACCEL_EMULATION "Emulation" -+ IDS_DRIVER_PULSE "PulseAudio Driver" - IDS_DRIVER_ALSA "ALSA Driver" - IDS_DRIVER_ESOUND "EsounD Driver" - IDS_DRIVER_OSS "OSS Driver" -diff --git a/programs/winecfg/Cs.rc b/programs/winecfg/Cs.rc -index a3f42d8..4758313 100644 ---- a/programs/winecfg/Cs.rc -+++ b/programs/winecfg/Cs.rc -@@ -272,6 +272,7 @@ BEGIN - IDS_ACCEL_STANDARD "Standardn" - IDS_ACCEL_BASIC "Zkladn" - IDS_ACCEL_EMULATION "Emulace" -+ IDS_DRIVER_PULSE "Ovlada PulseAudio" - IDS_DRIVER_ALSA "Ovlada ALSA" - IDS_DRIVER_ESOUND "Ovlada EsounD" - IDS_DRIVER_OSS "Ovlada OSS" -diff --git a/programs/winecfg/Da.rc b/programs/winecfg/Da.rc -index 6e594cc..4d1778c 100644 ---- a/programs/winecfg/Da.rc -+++ b/programs/winecfg/Da.rc -@@ -279,6 +279,7 @@ BEGIN - IDS_ACCEL_STANDARD "Standard" - IDS_ACCEL_BASIC "Grundlæggende" - IDS_ACCEL_EMULATION "Emuléring" -+ IDS_DRIVER_PULSE "PulseAudio-driver" - IDS_DRIVER_ALSA "ALSA-driver" - IDS_DRIVER_ESOUND "EsounD-driver" - IDS_DRIVER_OSS "OSS-driver" -diff --git a/programs/winecfg/De.rc b/programs/winecfg/De.rc -index 885f986..265f006 100644 ---- a/programs/winecfg/De.rc -+++ b/programs/winecfg/De.rc -@@ -278,6 +278,7 @@ BEGIN - IDS_ACCEL_STANDARD "Standard" - IDS_ACCEL_BASIC "Einfach" - IDS_ACCEL_EMULATION "Emulation" -+ IDS_DRIVER_PULSE "PulseAudio-Treiber" - IDS_DRIVER_ALSA "ALSA-Treiber" - IDS_DRIVER_ESOUND "EsounD-Treiber" - IDS_DRIVER_OSS "OSS-Treiber" -diff --git a/programs/winecfg/En.rc b/programs/winecfg/En.rc -index 9fc42ea..5bd66f9 100644 ---- a/programs/winecfg/En.rc -+++ b/programs/winecfg/En.rc -@@ -278,6 +278,7 @@ BEGIN - IDS_ACCEL_STANDARD "Standard" - IDS_ACCEL_BASIC "Basic" - IDS_ACCEL_EMULATION "Emulation" -+ IDS_DRIVER_PULSE "PulseAudio Driver" - IDS_DRIVER_ALSA "ALSA Driver" - IDS_DRIVER_ESOUND "EsounD Driver" - IDS_DRIVER_OSS "OSS Driver" -diff --git a/programs/winecfg/Es.rc b/programs/winecfg/Es.rc -index dcf8e37..d46f32e 100644 ---- a/programs/winecfg/Es.rc -+++ b/programs/winecfg/Es.rc -@@ -277,6 +277,7 @@ BEGIN - IDS_ACCEL_STANDARD "Estndar" - IDS_ACCEL_BASIC "Bsica" - IDS_ACCEL_EMULATION "Emulacin" -+ IDS_DRIVER_PULSE "Controlador PulseAudio" - IDS_DRIVER_ALSA "Controlador ALSA" - IDS_DRIVER_ESOUND "Controlador EsounD" - IDS_DRIVER_OSS "Controlador OSS" -diff --git a/programs/winecfg/Fi.rc b/programs/winecfg/Fi.rc -index 93c1e24..6beb0cb 100644 ---- a/programs/winecfg/Fi.rc -+++ b/programs/winecfg/Fi.rc -@@ -266,6 +266,7 @@ BEGIN - IDS_ACCEL_STANDARD "Standard" - IDS_ACCEL_BASIC "Basic" - IDS_ACCEL_EMULATION "Emulation" -+ IDS_DRIVER_PULSE "PulseAudio Driver" - IDS_DRIVER_ALSA "ALSA Driver" - IDS_DRIVER_ESOUND "EsounD Driver" - IDS_DRIVER_OSS "OSS Driver" -diff --git a/programs/winecfg/Fr.rc b/programs/winecfg/Fr.rc -index ebbcfdd..638025f 100644 ---- a/programs/winecfg/Fr.rc -+++ b/programs/winecfg/Fr.rc -@@ -280,6 +280,7 @@ BEGIN - IDS_ACCEL_STANDARD "Standard" - IDS_ACCEL_BASIC "Basique" - IDS_ACCEL_EMULATION "Émulation" -+ IDS_DRIVER_PULSE "Pilote PulseAudio" - IDS_DRIVER_ALSA "Pilote ALSA" - IDS_DRIVER_ESOUND "Pilote EsounD" - IDS_DRIVER_OSS "Pilote OSS" -diff --git a/programs/winecfg/Hu.rc b/programs/winecfg/Hu.rc -index 0fb4982..d7df634 100644 ---- a/programs/winecfg/Hu.rc -+++ b/programs/winecfg/Hu.rc -@@ -266,6 +266,7 @@ BEGIN - IDS_ACCEL_STANDARD "Standard" - IDS_ACCEL_BASIC "Basic" - IDS_ACCEL_EMULATION "Emulation" -+ IDS_DRIVER_PULSE "PulseAudio Driver" - IDS_DRIVER_ALSA "ALSA Driver" - IDS_DRIVER_ESOUND "EsounD Driver" - IDS_DRIVER_OSS "OSS Driver" -diff --git a/programs/winecfg/It.rc b/programs/winecfg/It.rc -index e738d22..cd64710 100644 ---- a/programs/winecfg/It.rc -+++ b/programs/winecfg/It.rc -@@ -280,6 +280,7 @@ BEGIN - IDS_ACCEL_STANDARD "Standard" - IDS_ACCEL_BASIC "Base" - IDS_ACCEL_EMULATION "Emulazione" -+ IDS_DRIVER_PULSE "Driver PulseAudio" - IDS_DRIVER_ALSA "Driver ALSA" - IDS_DRIVER_ESOUND "Driver Esound" - IDS_DRIVER_OSS "Driver OSS" -diff --git a/programs/winecfg/Ja.rc b/programs/winecfg/Ja.rc -index a082856..e5a889b 100644 ---- a/programs/winecfg/Ja.rc -+++ b/programs/winecfg/Ja.rc -@@ -281,6 +281,7 @@ BEGIN - IDS_ACCEL_STANDARD "標準" - IDS_ACCEL_BASIC "基本" - IDS_ACCEL_EMULATION "エミュレーション" -+ IDS_DRIVER_PULSE "PulseAudio ドライバ" - IDS_DRIVER_ALSA "ALSA ドライバ" - IDS_DRIVER_ESOUND "EsounD ドライバ" - IDS_DRIVER_OSS "OSS ドライバ" -diff --git a/programs/winecfg/Ko.rc b/programs/winecfg/Ko.rc -index 6321fe8..279a99d 100644 ---- a/programs/winecfg/Ko.rc -+++ b/programs/winecfg/Ko.rc -@@ -282,6 +282,7 @@ BEGIN - IDS_ACCEL_STANDARD "표준" - IDS_ACCEL_BASIC "기본" - IDS_ACCEL_EMULATION "애뮬레이션" -+ IDS_DRIVER_PULSE "PulseAudio 드라이버" - IDS_DRIVER_ALSA "ALSA 드라이버" - IDS_DRIVER_ESOUND "EsounD 드라이버" - IDS_DRIVER_OSS "OSS 드라이버" -diff --git a/programs/winecfg/Lt.rc b/programs/winecfg/Lt.rc -index 7a979f0..e4f7ff4 100644 ---- a/programs/winecfg/Lt.rc -+++ b/programs/winecfg/Lt.rc -@@ -279,6 +279,7 @@ BEGIN - IDS_ACCEL_STANDARD "Standartinis" - IDS_ACCEL_BASIC "Bazinis" - IDS_ACCEL_EMULATION "Emuliacija" -+ IDS_DRIVER_PULSE "PulseAudio tvarkyklė" - IDS_DRIVER_ALSA "ALSA tvarkyklė" - IDS_DRIVER_ESOUND "EsounD tvarkyklė" - IDS_DRIVER_OSS "OSS tvarkyklė" -diff --git a/programs/winecfg/Nl.rc b/programs/winecfg/Nl.rc -index 62ab796..8bb207e 100644 ---- a/programs/winecfg/Nl.rc -+++ b/programs/winecfg/Nl.rc -@@ -279,6 +279,7 @@ BEGIN - IDS_ACCEL_STANDARD "Standaard" - IDS_ACCEL_BASIC "Eenvoudig" - IDS_ACCEL_EMULATION "Emulatie" -+ IDS_DRIVER_PULSE "PulseAudio Stuurprogramma" - IDS_DRIVER_ALSA "ALSA Stuurprogramma" - IDS_DRIVER_ESOUND "EsounD Stuurprogramma" - IDS_DRIVER_OSS "OSS Stuurprogramma" -diff --git a/programs/winecfg/No.rc b/programs/winecfg/No.rc -index 338a291..b54bd8e 100644 ---- a/programs/winecfg/No.rc -+++ b/programs/winecfg/No.rc -@@ -279,6 +279,7 @@ BEGIN - IDS_ACCEL_STANDARD "Standard" - IDS_ACCEL_BASIC "Grunnleggende" - IDS_ACCEL_EMULATION "Emulering" -+ IDS_DRIVER_PULSE "PulseAudio-driver" - IDS_DRIVER_ALSA "ALSA-driver" - IDS_DRIVER_ESOUND "EsounD-driver" - IDS_DRIVER_OSS "OSS-driver" -diff --git a/programs/winecfg/Pl.rc b/programs/winecfg/Pl.rc -index 4cc4e85..9440ebc 100644 ---- a/programs/winecfg/Pl.rc -+++ b/programs/winecfg/Pl.rc -@@ -280,6 +280,7 @@ BEGIN - IDS_ACCEL_STANDARD "Standardowe" - IDS_ACCEL_BASIC "Podstawowe" - IDS_ACCEL_EMULATION "Emulacja" -+ IDS_DRIVER_PULSE "Sterownik PulseAudio" - IDS_DRIVER_ALSA "Sterownik ALSA" - IDS_DRIVER_ESOUND "Sterownik EsounD" - IDS_DRIVER_OSS "Sterownik OSS" -diff --git a/programs/winecfg/Pt.rc b/programs/winecfg/Pt.rc -index f96b9ad..4d8a05b 100644 ---- a/programs/winecfg/Pt.rc -+++ b/programs/winecfg/Pt.rc -@@ -611,6 +611,7 @@ BEGIN - IDS_ACCEL_STANDARD "Padrão" - IDS_ACCEL_BASIC "Básico" - IDS_ACCEL_EMULATION "Emulação" -+ IDS_DRIVER_PULSE "Controlador PulseAudio" - IDS_DRIVER_ALSA "Controlador ALSA" - IDS_DRIVER_ESOUND "Controlador EsounD" - IDS_DRIVER_OSS "Controlador OSS" -diff --git a/programs/winecfg/Ro.rc b/programs/winecfg/Ro.rc -index f6fe5a0..cf96300 100644 ---- a/programs/winecfg/Ro.rc -+++ b/programs/winecfg/Ro.rc -@@ -278,6 +278,7 @@ BEGIN - IDS_ACCEL_STANDARD "Standard" - IDS_ACCEL_BASIC "De bază" - IDS_ACCEL_EMULATION "Emulare" -+ IDS_DRIVER_PULSE "Driver PulseAudio" - IDS_DRIVER_ALSA "Driver ALSA" - IDS_DRIVER_ESOUND "Driver Esound" - IDS_DRIVER_OSS "Driver OSS" -diff --git a/programs/winecfg/Ru.rc b/programs/winecfg/Ru.rc -index b391edc..70d79f7 100644 ---- a/programs/winecfg/Ru.rc -+++ b/programs/winecfg/Ru.rc -@@ -283,6 +283,7 @@ BEGIN - IDS_ACCEL_STANDARD "Стандартное" - IDS_ACCEL_BASIC "Минимальное" - IDS_ACCEL_EMULATION "Эмуляция" -+ IDS_DRIVER_PULSE "PulseAudio драйвер" - IDS_DRIVER_ALSA "ALSA драйвер" - IDS_DRIVER_ESOUND "EsounD драйвер" - IDS_DRIVER_OSS "OSS драйвер" -diff --git a/programs/winecfg/Si.rc b/programs/winecfg/Si.rc -index 50322b6..bf85f4d 100644 ---- a/programs/winecfg/Si.rc -+++ b/programs/winecfg/Si.rc -@@ -278,6 +278,7 @@ BEGIN - IDS_ACCEL_STANDARD "Standardno" - IDS_ACCEL_BASIC "Osnovno" - IDS_ACCEL_EMULATION "Emulacija" -+ IDS_DRIVER_PULSE "PulseAudio gonilnik" - IDS_DRIVER_ALSA "ALSA gonilnik" - IDS_DRIVER_ESOUND "EsounD gonilnik" - IDS_DRIVER_OSS "OSS gonilnik" -diff --git a/programs/winecfg/Sv.rc b/programs/winecfg/Sv.rc -index 7e7f981..4d11a8c 100644 ---- a/programs/winecfg/Sv.rc -+++ b/programs/winecfg/Sv.rc -@@ -266,6 +266,7 @@ BEGIN - IDS_ACCEL_STANDARD "Standard" - IDS_ACCEL_BASIC "Grundlggande" - IDS_ACCEL_EMULATION "Emulering" -+ IDS_DRIVER_PULSE "PulseAudio-drivrutin" - IDS_DRIVER_ALSA "ALSA-drivrutin" - IDS_DRIVER_ESOUND "EsounD-drivrutin" - IDS_DRIVER_OSS "OSS-drivrutin" -diff --git a/programs/winecfg/Tr.rc b/programs/winecfg/Tr.rc -index c124900..09a0b27 100644 ---- a/programs/winecfg/Tr.rc -+++ b/programs/winecfg/Tr.rc -@@ -266,6 +266,7 @@ BEGIN - IDS_ACCEL_STANDARD "Standart" - IDS_ACCEL_BASIC "Temel" - IDS_ACCEL_EMULATION "Taklit" -+ IDS_DRIVER_PULSE "PulseAudio Srcs" - IDS_DRIVER_ALSA "ALSA Srcs" - IDS_DRIVER_ESOUND "EsounD Srcs" - IDS_DRIVER_OSS "OSS Srcs" -diff --git a/programs/winecfg/Zh.rc b/programs/winecfg/Zh.rc -index 93f6416..84bc6a0 100644 ---- a/programs/winecfg/Zh.rc -+++ b/programs/winecfg/Zh.rc -@@ -271,6 +271,7 @@ BEGIN - IDS_ACCEL_STANDARD "标准" - IDS_ACCEL_BASIC "基本" - IDS_ACCEL_EMULATION "软件模拟" -+ IDS_DRIVER_PULSE "PulseAudio 驱动" - IDS_DRIVER_ALSA "ALSA 驱动" - IDS_DRIVER_ESOUND "EsounD 驱动" - IDS_DRIVER_OSS "OSS 驱动" -diff --git a/programs/winecfg/audio.c b/programs/winecfg/audio.c -index 134296d..1d70c03 100644 ---- a/programs/winecfg/audio.c -+++ b/programs/winecfg/audio.c -@@ -90,6 +90,7 @@ typedef struct - } AUDIO_DRIVER; - - static AUDIO_DRIVER sAudioDrivers[] = { -+ {IDS_DRIVER_PULSE, "pulse"}, - {IDS_DRIVER_ALSA, "alsa"}, - {IDS_DRIVER_OSS, "oss"}, - {IDS_DRIVER_COREAUDIO, "coreaudio"}, -diff --git a/programs/winecfg/libraries.c b/programs/winecfg/libraries.c -index e402b4e..f0264ca 100644 ---- a/programs/winecfg/libraries.c -+++ b/programs/winecfg/libraries.c -@@ -73,6 +73,7 @@ static const char * const builtin_only[] = - "winedos", - "winemp3.acm", - "wineps", -+ "winepulse.drv", - "winmm", - "wintab32", - "wnaspi32", -diff --git a/programs/winecfg/resource.h b/programs/winecfg/resource.h -index 43651d8..160e01e 100644 ---- a/programs/winecfg/resource.h -+++ b/programs/winecfg/resource.h -@@ -186,7 +186,7 @@ - #define IDS_ACCEL_BASIC 8302 - #define IDS_ACCEL_EMULATION 8303 - #define IDS_DRIVER_ALSA 8304 -- -+#define IDS_DRIVER_PULSE 8305 - #define IDS_DRIVER_ESOUND 8306 - #define IDS_DRIVER_OSS 8307 - #define IDS_DRIVER_JACK 8308 diff --git a/winepulse-winecfg-1.3.11.patch b/winepulse-winecfg-1.3.11.patch new file mode 100644 index 0000000..3c5c3f8 --- /dev/null +++ b/winepulse-winecfg-1.3.11.patch @@ -0,0 +1,49 @@ +diff --git a/programs/winecfg/audio.c b/programs/winecfg/audio.c +index 4c90282..fcf3236 100644 +--- a/programs/winecfg/audio.c ++++ b/programs/winecfg/audio.c +@@ -90,6 +90,7 @@ typedef struct + } AUDIO_DRIVER; + + static AUDIO_DRIVER sAudioDrivers[] = { ++ {IDS_DRIVER_PULSE, "pulse"}, + {IDS_DRIVER_ALSA, "alsa"}, + {IDS_DRIVER_OSS, "oss"}, + {IDS_DRIVER_COREAUDIO, "coreaudio"}, +diff --git a/programs/winecfg/libraries.c b/programs/winecfg/libraries.c +index e402b4e..f0264ca 100644 +--- a/programs/winecfg/libraries.c ++++ b/programs/winecfg/libraries.c +@@ -73,6 +73,7 @@ static const char * const builtin_only[] = + "winedos", + "winemp3.acm", + "wineps", ++ "winepulse.drv", + "winmm", + "wintab32", + "wnaspi32", +diff --git a/programs/winecfg/resource.h b/programs/winecfg/resource.h +index 3bed6aa..2f347d9 100644 +--- a/programs/winecfg/resource.h ++++ b/programs/winecfg/resource.h +@@ -186,7 +186,7 @@ + #define IDS_ACCEL_BASIC 8302 + #define IDS_ACCEL_EMULATION 8303 + #define IDS_DRIVER_ALSA 8304 +- ++#define IDS_DRIVER_PULSE 8305 + #define IDS_DRIVER_ESOUND 8306 + #define IDS_DRIVER_OSS 8307 + #define IDS_DRIVER_JACK 8308 +diff --git a/programs/winecfg/winecfg.rc b/programs/winecfg/winecfg.rc +index f98a14d..314bd65 100644 +--- a/programs/winecfg/winecfg.rc ++++ b/programs/winecfg/winecfg.rc +@@ -97,6 +97,7 @@ BEGIN + IDS_ACCEL_STANDARD "Standard" + IDS_ACCEL_BASIC "Basic" + IDS_ACCEL_EMULATION "Emulation" ++ IDS_DRIVER_PULSE "PulseAudio Driver" + IDS_DRIVER_ALSA "ALSA Driver" + IDS_DRIVER_ESOUND "EsounD Driver" + IDS_DRIVER_OSS "OSS Driver" From 00d455804bafc0262705fd9ea505ce8447f70590 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 24 Jan 2011 21:49:39 +0100 Subject: [PATCH 179/715] - add gettext-devel BR --- wine.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/wine.spec b/wine.spec index 2da744a..e8a9a94 100644 --- a/wine.spec +++ b/wine.spec @@ -111,6 +111,8 @@ BuildRequires: ImageMagick-devel BuildRequires: gstreamer-devel gstreamer-plugins-base-devel BuildRequires: libtiff-devel BuildRequires: prelink +BuildRequires: gettext-devel + %if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 BuildRequires: openal-soft-devel From aa55d074f96a4e6ccc55d3cea7edd8d37d8ffe69 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 30 Jan 2011 18:45:51 +0100 Subject: [PATCH 180/715] - fixup desktop files --- wine-mime-msi.desktop | 3 +-- wine-notepad.desktop | 1 - wine-oleview.desktop | 1 - wine-regedit.desktop | 1 - wine-uninstaller.desktop | 1 - wine-wineboot.desktop | 1 - wine-winecfg.desktop | 1 - wine-winefile.desktop | 1 - wine-winemine.desktop | 3 +-- wine-winhelp.desktop | 1 - wine-wordpad.desktop | 1 - 11 files changed, 2 insertions(+), 13 deletions(-) diff --git a/wine-mime-msi.desktop b/wine-mime-msi.desktop index 5a74ccf..5dcaa46 100644 --- a/wine-mime-msi.desktop +++ b/wine-mime-msi.desktop @@ -1,7 +1,6 @@ [Desktop Entry] Type=Application Name=Windows Installer File -Encoding=UTF-8 Exec=wine %f -MimeType=application/x-ole-storage;text/mspg-legacyinfo +MimeType=application/x-ole-storage;text/mspg-legacyinfo; Hidden=true diff --git a/wine-notepad.desktop b/wine-notepad.desktop index e603069..cfaf6b4 100644 --- a/wine-notepad.desktop +++ b/wine-notepad.desktop @@ -5,5 +5,4 @@ Exec=notepad Icon=notepad Terminal=false Type=Application -Encoding=UTF-8 Categories=X-Wine; diff --git a/wine-oleview.desktop b/wine-oleview.desktop index a458708..8f94f38 100644 --- a/wine-oleview.desktop +++ b/wine-oleview.desktop @@ -5,5 +5,4 @@ Exec=wine oleview Icon=wine Terminal=false Type=Application -Encoding=UTF-8 Categories=X-Wine; diff --git a/wine-regedit.desktop b/wine-regedit.desktop index b032220..5fddbf4 100644 --- a/wine-regedit.desktop +++ b/wine-regedit.desktop @@ -5,5 +5,4 @@ Exec=regedit Icon=regedit Terminal=false Type=Application -Encoding=UTF-8 Categories=X-Wine; diff --git a/wine-uninstaller.desktop b/wine-uninstaller.desktop index ef788ee..2a9cf52 100644 --- a/wine-uninstaller.desktop +++ b/wine-uninstaller.desktop @@ -5,5 +5,4 @@ Exec=wine uninstaller Icon=msiexec Terminal=false Type=Application -Encoding=UTF-8 Categories=X-Wine; diff --git a/wine-wineboot.desktop b/wine-wineboot.desktop index 6584aea..1ecba53 100644 --- a/wine-wineboot.desktop +++ b/wine-wineboot.desktop @@ -5,5 +5,4 @@ Exec=wineboot Icon=wine Terminal=false Type=Application -Encoding=UTF-8 Categories=X-Wine; diff --git a/wine-winecfg.desktop b/wine-winecfg.desktop index 2d28279..44b13c2 100644 --- a/wine-winecfg.desktop +++ b/wine-winecfg.desktop @@ -5,5 +5,4 @@ Exec=winecfg Icon=winecfg Terminal=false Type=Application -Encoding=UTF-8 Categories=X-Wine; diff --git a/wine-winefile.desktop b/wine-winefile.desktop index e35fb3d..855dcbf 100644 --- a/wine-winefile.desktop +++ b/wine-winefile.desktop @@ -5,5 +5,4 @@ Exec=winefile Icon=winefile Terminal=false Type=Application -Encoding=UTF-8 Categories=X-Wine; diff --git a/wine-winemine.desktop b/wine-winemine.desktop index 15b70d8..34712f9 100644 --- a/wine-winemine.desktop +++ b/wine-winemine.desktop @@ -5,5 +5,4 @@ Exec=winemine Icon=winemine Terminal=false Type=Application -Encoding=UTF-8 -Categories=Application;Game;LogicGame; +Categories=Game;LogicGame; diff --git a/wine-winhelp.desktop b/wine-winhelp.desktop index 2d0ac67..2752518 100644 --- a/wine-winhelp.desktop +++ b/wine-winhelp.desktop @@ -5,5 +5,4 @@ Exec=wine winhlp32 Icon=winhelp Terminal=false Type=Application -Encoding=UTF-8 Categories=X-Wine; diff --git a/wine-wordpad.desktop b/wine-wordpad.desktop index 1838b04..1fe4ecd 100644 --- a/wine-wordpad.desktop +++ b/wine-wordpad.desktop @@ -5,5 +5,4 @@ Exec=wine wordpad Icon=wordpad Terminal=false Type=Application -Encoding=UTF-8 Categories=X-Wine; From c88a235031be6abcf1a2fa5a54d32bd4dbef954b Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 6 Feb 2011 14:56:19 +0100 Subject: [PATCH 181/715] - 1.3.13-1 - version upgrade --- .gitignore | 1 + sources | 2 +- wine.spec | 9 ++++++++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index bf7b922..58115cf 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ /wine-1.3.10.tar.bz2 /wine-1.3.11.tar.bz2 /wine-1.3.12.tar.bz2 +/wine-1.3.13.tar.bz2 diff --git a/sources b/sources index fb0cf67..1a02abc 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -a36a5e9ec4b72dc4fa8e0a10a23e8dee wine-1.3.12.tar.bz2 +e6d4cd7e51678f90760e2193893637aa wine-1.3.13.tar.bz2 diff --git a/wine.spec b/wine.spec index e8a9a94..2a9719e 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ %define no64bit 0 Name: wine -Version: 1.3.12 +Version: 1.3.13 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -727,14 +727,17 @@ update-desktop-database &>/dev/null || : %doc documentation/README.* %{_bindir}/winedump %{_libdir}/wine/explorer.exe.so +%{_libdir}/wine/cabarc.exe.so %{_libdir}/wine/control.exe.so %{_libdir}/wine/cmd.exe.so %{_libdir}/wine/notepad.exe.so +%{_libdir}/wine/plugplay.exe.so %{_libdir}/wine/progman.exe.so %{_libdir}/wine/taskmgr.exe.so %{_libdir}/wine/winedbg.exe.so %{_libdir}/wine/winefile.exe.so %{_libdir}/wine/winemine.exe.so +%{_libdir}/wine/winemsibuilder.exe.so %{_libdir}/wine/winepath.exe.so %{_libdir}/wine/winver.exe.so %{_libdir}/wine/wordpad.exe.so @@ -1343,6 +1346,10 @@ update-desktop-database &>/dev/null || : %endif %changelog +* Sun Feb 06 2011 Andreas Bierfert +- 1.3.13-1 +- version upgrade + * Mon Jan 24 2011 Andreas Bierfert - 1.3.12-1 - version upgrade From 2bd1c08b89ff54be2724ab6291f6ddac9d0ccb7b Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 6 Feb 2011 14:57:49 +0100 Subject: [PATCH 182/715] - 1.3.13-1 - version upgrade - update desktop files --- wine.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/wine.spec b/wine.spec index 2a9719e..6efdab9 100644 --- a/wine.spec +++ b/wine.spec @@ -1349,6 +1349,7 @@ update-desktop-database &>/dev/null || : * Sun Feb 06 2011 Andreas Bierfert - 1.3.13-1 - version upgrade +- update desktop files * Mon Jan 24 2011 Andreas Bierfert - 1.3.12-1 From 9f4ef11a0624256c39d368a749adc7758c98424d Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Mon, 7 Feb 2011 20:39:48 -0600 Subject: [PATCH 183/715] - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild --- wine.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 6efdab9..54ec849 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %define no64bit 0 Name: wine Version: 1.3.13 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -1346,6 +1346,9 @@ update-desktop-database &>/dev/null || : %endif %changelog +* Mon Feb 07 2011 Fedora Release Engineering - 1.3.13-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + * Sun Feb 06 2011 Andreas Bierfert - 1.3.13-1 - version upgrade From d0007b33a1d91f4ecebe2b02e14b7c5c56ac7f3f Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Tue, 1 Mar 2011 22:19:48 +0100 Subject: [PATCH 184/715] - prepare for wine-gecko --- .gitignore | 1 + sources | 2 +- wine.spec | 13 ++++++++++++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 58115cf..e09fba4 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ /wine-1.3.11.tar.bz2 /wine-1.3.12.tar.bz2 /wine-1.3.13.tar.bz2 +/wine-1.3.14.tar.bz2 diff --git a/sources b/sources index 1a02abc..4424f37 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -e6d4cd7e51678f90760e2193893637aa wine-1.3.13.tar.bz2 +c99c8f518d3b2a13a739dfbd6c417e80 wine-1.3.14.tar.bz2 diff --git a/wine.spec b/wine.spec index 54ec849..46b1cc9 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ %define no64bit 0 Name: wine -Version: 1.3.13 +Version: 1.3.14 Release: 2%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -487,6 +487,8 @@ mkdir -p %{buildroot}%{_datadir}/desktop-directories install -p -m 644 %{SOURCE201} \ %{buildroot}%{_datadir}/desktop-directories/Wine.directory +# add gecko dir +mkdir -p %{buildroot}%{_datadir}/wine/gecko # extract and install icons %if 0%{?fedora} > 10 @@ -1178,6 +1180,7 @@ update-desktop-database &>/dev/null || : %{_bindir}/wineconsole %{_bindir}/winecfg %dir %{_datadir}/wine +%dir %{_datadir}/wine/gecko %{_mandir}/man1/wine.1* %{_mandir}/man1/wineserver.1* %{_mandir}/man1/msiexec.1* @@ -1346,6 +1349,14 @@ update-desktop-database &>/dev/null || : %endif %changelog +* Tue Mar 01 2011 Andreas Bierfert +- 1.3.14-2 +- prepare for wine-gecko + +* Sat Feb 19 2011 Andreas Bierfert +- 1.3.14-1 +- version upgrade + * Mon Feb 07 2011 Fedora Release Engineering - 1.3.13-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild From e97e50f2497a8a9f55cb8e9cc4f0653bffe108f4 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Thu, 10 Mar 2011 22:48:41 +0100 Subject: [PATCH 185/715] 1.3.15-1 version upgrade --- .gitignore | 1 + sources | 2 +- wine.spec | 8 ++++++-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index e09fba4..0a55d95 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ /wine-1.3.12.tar.bz2 /wine-1.3.13.tar.bz2 /wine-1.3.14.tar.bz2 +/wine-1.3.15.tar.bz2 diff --git a/sources b/sources index 4424f37..6834662 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -c99c8f518d3b2a13a739dfbd6c417e80 wine-1.3.14.tar.bz2 +5ddc07f0a1c7b05f4cf52292aafc98e3 wine-1.3.15.tar.bz2 diff --git a/wine.spec b/wine.spec index 46b1cc9..92ab5ce 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %define no64bit 0 Name: wine -Version: 1.3.14 -Release: 2%{?dist} +Version: 1.3.15 +Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -1349,6 +1349,10 @@ update-desktop-database &>/dev/null || : %endif %changelog +* Tue Mar 08 2011 Andreas Bierfert +- 1.3.15-1 +- version upgrade + * Tue Mar 01 2011 Andreas Bierfert - 1.3.14-2 - prepare for wine-gecko From 7a00a05d065f469c1e3227d627c6e54b7aea553a Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 13 Mar 2011 11:57:37 +0100 Subject: [PATCH 186/715] 1.3.15-2 use svg files for icons (#684277) --- wine.spec | 82 ++++++++++++++++++++++++------------------------------- 1 file changed, 35 insertions(+), 47 deletions(-) diff --git a/wine.spec b/wine.spec index 92ab5ce..af6ab5e 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %define no64bit 0 Name: wine Version: 1.3.15 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -225,6 +225,7 @@ Requires(preun): /sbin/chkconfig, /sbin/service Requires(postun): desktop-file-utils >= 0.8 Requires: wine-core(x86-32) = %{version}-%{release} Requires: wine-common = %{version}-%{release} +Requires: hicolor-icon-theme BuildArch: noarch %description desktop @@ -492,51 +493,34 @@ mkdir -p %{buildroot}%{_datadir}/wine/gecko # extract and install icons %if 0%{?fedora} > 10 -mkdir -p %{buildroot}%{_datadir}/pixmaps -icotool -x --width=32 --height=32 --bit-depth=32 -o dlls/user32/resources/ \ - dlls/user32/resources/oic_winlogo.ico -install -p -m 644 dlls/user32/resources/*png \ - %{buildroot}%{_datadir}/pixmaps/wine.png - -icotool -x --width=32 --height=32 --bit-depth=32 -o programs/notepad/ \ - programs/notepad/notepad.ico -install -p -m 644 programs/notepad/notepad*png \ - %{buildroot}%{_datadir}/pixmaps/notepad.png - -icotool -x --width=32 --height=32 --bit-depth=32 -o programs/regedit/ \ - programs/regedit/regedit.ico -install -p -m 644 programs/regedit/regedit*png \ - %{buildroot}%{_datadir}/pixmaps/regedit.png - -icotool -x --width=32 --height=32 --bit-depth=32 -o programs/msiexec/ \ - programs/msiexec/msiexec.ico -install -p -m 644 programs/msiexec/msiexec*png \ - %{buildroot}%{_datadir}/pixmaps/msiexec.png - -icotool -x --width=32 --height=32 --bit-depth=32 -o programs/winecfg/ \ - programs/winecfg/winecfg.ico -install -p -m 644 programs/winecfg/winecfg*png \ - %{buildroot}%{_datadir}/pixmaps/winecfg.png - -icotool -x --width=32 --height=32 --bit-depth=32 -o programs/winefile/ \ - programs/winefile/winefile.ico -install -p -m 644 programs/winefile/winefile*png \ - %{buildroot}%{_datadir}/pixmaps/winefile.png - -icotool -x --width=32 --height=32 --bit-depth=32 -o programs/winemine/ \ - programs/winemine/winemine.ico -install -p -m 644 programs/winemine/winemine*png \ - %{buildroot}%{_datadir}/pixmaps/winemine.png - -icotool -x --width=32 --height=32 --bit-depth=32 -o programs/winhlp32/ \ - programs/winhlp32/winhelp.ico -install -p -m 644 programs/winhlp32/winhelp*png \ - %{buildroot}%{_datadir}/pixmaps/winhelp.png - -icotool -x --width=32 --height=32 --bit-depth=32 -o programs/wordpad/ \ - programs/wordpad/wordpad.ico -install -p -m 644 programs/wordpad/wordpad*png \ - %{buildroot}%{_datadir}/pixmaps/wordpad.png +mkdir -p %{buildroot}%{_datadir}/icons/hicolor/scalable/apps + +install -p -m 644 dlls/user32/resources/oic_winlogo.svg \ + %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/wine.svg + +install -p -m 644 programs/notepad/notepad.svg \ + %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/notepad.svg + +install -p -m 644 programs/regedit/regedit.svg \ + %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/regedit.svg + +install -p -m 644 programs/msiexec/msiexec.svg \ + %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/msiexec.svg + +install -p -m 644 programs/winecfg/winecfg.svg \ + %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/winecfg.svg + +install -p -m 644 programs/winefile/winefile.svg \ + %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/winefile.svg + +install -p -m 644 programs/winemine/winemine.svg \ + %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/winemine.svg + +install -p -m 644 programs/winhlp32/winhelp.svg \ + %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/winhelp.svg + +install -p -m 644 programs/wordpad/wordpad.svg \ + %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/wordpad.svg %endif # install desktop files @@ -1259,7 +1243,7 @@ update-desktop-database &>/dev/null || : %{_initrddir}/wine %if 0%{?fedora} >= 10 -%{_datadir}/pixmaps/*png +%{_datadir}/icons/hicolor/scalable/apps/*svg %endif # esd subpackage @@ -1349,6 +1333,10 @@ update-desktop-database &>/dev/null || : %endif %changelog +* Sun Mar 13 2011 Andreas Bierfert +- 1.3.15-2 +- use svg files for icons (#684277) + * Tue Mar 08 2011 Andreas Bierfert - 1.3.15-1 - version upgrade From 6aef200f1d3fe5b520e0bbe644f69e33d8c23dcf Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Thu, 17 Mar 2011 07:30:58 +0100 Subject: [PATCH 187/715] reenable fonts --- wine.spec | 82 +++++++++++++++++++++++++++++++------------------------ 1 file changed, 47 insertions(+), 35 deletions(-) diff --git a/wine.spec b/wine.spec index af6ab5e..4307e92 100644 --- a/wine.spec +++ b/wine.spec @@ -34,10 +34,6 @@ Source300: wine-mime-msi.desktop Patch1: wine-rpath.patch -# bugfixes -# fix for #593140 -Patch100: wine-fonts.patch -# Patch200: wine-imagemagick-6.5.patch # explain how to use wine with pulseaudio @@ -240,8 +236,8 @@ Requires: wine-courier-fonts = %{version}-%{release} Requires: wine-small-fonts = %{version}-%{release} Requires: wine-system-fonts = %{version}-%{release} Requires: wine-marlett-fonts = %{version}-%{release} -#Requires: wine-ms-sans-serif-fonts = %{version}-%{release} -#Requires: wine-tahoma-fonts = %{version}-%{release} +Requires: wine-ms-sans-serif-fonts = %{version}-%{release} +Requires: wine-tahoma-fonts = %{version}-%{release} Requires: wine-symbol-fonts = %{version}-%{release} # intermediate fix for #593140 Requires: liberation-sans-fonts liberation-serif-fonts liberation-mono-fonts @@ -290,24 +286,24 @@ Requires: fontpackages-filesystem %{summary} -#%package ms-sans-serif-fonts -#Summary: Wine MS Sans Serif font family -#Group: User Interface/X -#BuildArch: noarch -#Requires: fontpackages-filesystem +%package ms-sans-serif-fonts +Summary: Wine MS Sans Serif font family +Group: User Interface/X +BuildArch: noarch +Requires: fontpackages-filesystem -#%description ms-sans-serif-fonts -#%{summary} +%description ms-sans-serif-fonts +%{summary} -#%package tahoma-fonts -#Summary: Wine Tahoma font family -#Group: User Interface/X -#BuildArch: noarch -#Requires: fontpackages-filesystem +%package tahoma-fonts +Summary: Wine Tahoma font family +Group: User Interface/X +BuildArch: noarch +Requires: fontpackages-filesystem -#%description tahoma-fonts -#%{summary} +%description tahoma-fonts +%{summary} %package symbol-fonts @@ -438,7 +434,6 @@ This package adds an openal driver for wine. %setup -q %patch1 -b .rpath -%patch100 -b .fedorafonts %patch200 -b .imagemagick %patch400 -p1 -b .winepulse %patch401 -p1 -b .winepulse @@ -497,30 +492,40 @@ mkdir -p %{buildroot}%{_datadir}/icons/hicolor/scalable/apps install -p -m 644 dlls/user32/resources/oic_winlogo.svg \ %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/wine.svg +sed -i -e '3s/368/64/' %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/wine.svg install -p -m 644 programs/notepad/notepad.svg \ %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/notepad.svg +sed -i -e '3s/368/64/' %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/notepad.svg install -p -m 644 programs/regedit/regedit.svg \ %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/regedit.svg +sed -i -e '3s/368/64/' %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/regedit.svg install -p -m 644 programs/msiexec/msiexec.svg \ %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/msiexec.svg +sed -i -e '3s/368/64/' %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/msiexec.svg install -p -m 644 programs/winecfg/winecfg.svg \ %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/winecfg.svg +sed -i -e '3s/368/64/' %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/winecfg.svg install -p -m 644 programs/winefile/winefile.svg \ %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/winefile.svg +sed -i -e '3s/368/64/' %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/winefile.svg install -p -m 644 programs/winemine/winemine.svg \ %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/winemine.svg +sed -i -e '3s/368/64/' %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/winemine.svg install -p -m 644 programs/winhlp32/winhelp.svg \ %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/winhelp.svg +sed -i -e '3s/368/64/' %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/winhelp.svg install -p -m 644 programs/wordpad/wordpad.svg \ %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/wordpad.svg +sed -i -e '3s/368/64/' %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/wordpad.svg + %endif # install desktop files @@ -617,13 +622,11 @@ mv %{buildroot}/%{_datadir}/wine/fonts/jsma* %{buildroot}/%{_datadir}/fonts/wine install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-marlett-fonts mv %{buildroot}/%{_datadir}/wine/fonts/marlett.ttf %{buildroot}/%{_datadir}/fonts/wine-marlett-fonts/ -#install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-ms-sans-serif-fonts -#mv %{buildroot}/%{_datadir}/wine/fonts/sse* %{buildroot}/%{_datadir}/fonts/wine-ms-sans-serif-fonts/ -rm -f %{buildroot}/%{_datadir}/wine/fonts/sse* +install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-ms-sans-serif-fonts +mv %{buildroot}/%{_datadir}/wine/fonts/sse* %{buildroot}/%{_datadir}/fonts/wine-ms-sans-serif-fonts/ -#install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-tahoma-fonts -#mv %{buildroot}/%{_datadir}/wine/fonts/tahoma* %{buildroot}/%{_datadir}/fonts/wine-tahoma-fonts/ -rm -f %{buildroot}/%{_datadir}/wine/fonts/tahoma* +install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-tahoma-fonts +mv %{buildroot}/%{_datadir}/wine/fonts/tahoma* %{buildroot}/%{_datadir}/fonts/wine-tahoma-fonts/ install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-symbol-fonts mv %{buildroot}/%{_datadir}/wine/fonts/symbol.ttf %{buildroot}/%{_datadir}/fonts/wine-symbol-fonts/ @@ -642,6 +645,7 @@ if [ $1 = 1 ]; then /sbin/chkconfig --level 2345 wine on /sbin/service wine start &>/dev/null || : fi +touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : %preun desktop if [ $1 = 0 ]; then @@ -651,6 +655,13 @@ fi %postun desktop update-desktop-database &>/dev/null || : +if [ $1 -eq 0 ] ; then + touch --no-create %{_datadir}/icons/hicolor &>/dev/null + gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : +fi + +%posttrans desktop +gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %post esd -p /sbin/ldconfig %postun esd -p /sbin/ldconfig @@ -1209,15 +1220,15 @@ update-desktop-database &>/dev/null || : %defattr(-,root,root,-) %{_datadir}/fonts/wine-marlett-fonts -#%files ms-sans-serif-fonts -#%defattr(-,root,root,-) -#%doc COPYING.LIB -#%{_datadir}/fonts/wine-ms-sans-serif-fonts +%files ms-sans-serif-fonts +%defattr(-,root,root,-) +%doc COPYING.LIB +%{_datadir}/fonts/wine-ms-sans-serif-fonts -#%files tahoma-fonts -#%defattr(-,root,root,-) -#%doc COPYING.LIB -#%{_datadir}/fonts/wine-tahoma-fonts +%files tahoma-fonts +%defattr(-,root,root,-) +%doc COPYING.LIB +%{_datadir}/fonts/wine-tahoma-fonts %files symbol-fonts %defattr(-,root,root,-) @@ -1336,6 +1347,7 @@ update-desktop-database &>/dev/null || : * Sun Mar 13 2011 Andreas Bierfert - 1.3.15-2 - use svg files for icons (#684277) +- reenable fonts * Tue Mar 08 2011 Andreas Bierfert - 1.3.15-1 From b9e48b24f928fc4797d0cf9dd6d839628fc8241b Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Thu, 17 Mar 2011 07:33:49 +0100 Subject: [PATCH 188/715] bump --- wine.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/wine.spec b/wine.spec index 4307e92..52457b8 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %define no64bit 0 Name: wine Version: 1.3.15 -Release: 2%{?dist} +Release: 3%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -1344,10 +1344,13 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Thu Mar 17 2011 Andreas Bierfert +- 1.3.15-3 +- reenable fonts + * Sun Mar 13 2011 Andreas Bierfert - 1.3.15-2 - use svg files for icons (#684277) -- reenable fonts * Tue Mar 08 2011 Andreas Bierfert - 1.3.15-1 From 0e7acd2a7b39a6e62fbdd5ce25c1cb613dc9b4c1 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 19 Mar 2011 16:15:18 +0100 Subject: [PATCH 189/715] 1.3.16-1 version upgrade cleanup unneeded patches drop some patches reenable smp build --- .gitignore | 1 + sources | 2 +- wine-chooser.sh | 39 ---- wine-fonts.patch | 204 ------------------ wine-gecko.patch | 127 ----------- wine.spec | 46 ++-- ...tch => winepulse-configure.ac-1.3.16.patch | 16 +- 7 files changed, 25 insertions(+), 410 deletions(-) delete mode 100644 wine-chooser.sh delete mode 100644 wine-fonts.patch delete mode 100644 wine-gecko.patch rename winepulse-configure.ac-1.3.10.patch => winepulse-configure.ac-1.3.16.patch (84%) diff --git a/.gitignore b/.gitignore index 0a55d95..9e739e4 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ /wine-1.3.13.tar.bz2 /wine-1.3.14.tar.bz2 /wine-1.3.15.tar.bz2 +/wine-1.3.16.tar.bz2 diff --git a/sources b/sources index 6834662..e38e8c1 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -5ddc07f0a1c7b05f4cf52292aafc98e3 wine-1.3.15.tar.bz2 +74627787556240473a85daaf51d4f620 wine-1.3.16.tar.bz2 diff --git a/wine-chooser.sh b/wine-chooser.sh deleted file mode 100644 index d14f58a..0000000 --- a/wine-chooser.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/sh -HAVE_32=false -HAVE_64=false - -if [ -x "/usr/bin/wine32" ]; then -HAVE_32=true -fi - -if [ -x "/usr/bin/wine64" ]; then -HAVE_64=true -fi - -if [ -f "${1}" ]; then - archtype=`file "${1}" | cut -d':' -f2 | cut -d' ' -f2` - - if [ ${archtype} = 'PE32+' ]; then # 64bit - if $HAVE_64; then - exec "/usr/bin/wine64" "${@}"; - elif [ `uname -m` = 'x86_64' ]; then - echo "Your are trying to run a 64bit application. Please install the 64bit version of wine." - echo "You can achieve this by running 'su -c \"yum install \\\"wine(x86-64)\\\"\"'" - else - echo "Your are trying to run a 64bit application on a 32bit installation of Fedora. You need a 64bit version of Fedora to run this application." - fi - else - if $HAVE_32; then - exec "/usr/bin/wine32" "${@}" - else - echo "Your are trying to run a 32bit application. Please install the 32bit version of wine." - echo "You can achieve this by running 'su -c \"yum install \\\"wine(x86-32)\\\"\"'" - fi - fi -else - if $HAVE_64; then - exec "/usr/bin/wine64" "${@}"; - else - exec "/usr/bin/wine32" "${@}"; - fi -fi diff --git a/wine-fonts.patch b/wine-fonts.patch deleted file mode 100644 index 72385ae..0000000 --- a/wine-fonts.patch +++ /dev/null @@ -1,204 +0,0 @@ ---- tools/wine.inf.in.orig 2010-05-26 07:41:44.000000000 +0200 -+++ tools/wine.inf.in 2010-05-26 07:46:15.000000000 +0200 -@@ -576,13 +576,14 @@ - HKLM,%FontSubStr%,"Courier New TUR,162",,"Courier New,162" - HKLM,%FontSubStr%,"Helv",,"MS Sans Serif" - HKLM,%FontSubStr%,"Helvetica",,"Arial" --HKLM,%FontSubStr%,"MS Shell Dlg 2",,"Tahoma" -+HKLM,%FontSubStr%,"MS Shell Dlg 2",,"Liberation Sans" - HKLM,%FontSubStr%,"Times",,"Times New Roman" - HKLM,%FontSubStr%,"Times New Roman Baltic,186",,"Times New Roman,186" - HKLM,%FontSubStr%,"Times New Roman CE,238",,"Times New Roman,238" - HKLM,%FontSubStr%,"Times New Roman CYR,204",,"Times New Roman,204" - HKLM,%FontSubStr%,"Times New Roman Greek,161",,"Times New Roman,161" - HKLM,%FontSubStr%,"Times New Roman TUR,162",,"Times New Roman,162" -+HKLM,%FontSubStr%,"MS Sans Serif",,"Liberation Serif" - HKLM,System\CurrentControlSet\Hardware Profiles\Current\Software\Fonts,"LogPixels",0x10003,0x00000060 - - [MCI] ---- dlls/gdi32/freetype.c.orig 2010-05-19 22:02:43.000000000 +0200 -+++ dlls/gdi32/freetype.c 2010-07-16 11:43:15.000000000 +0200 -@@ -400,7 +400,7 @@ - /* Interesting and well-known (frequently-assumed!) font names */ - static const WCHAR Lucida_Sans_Unicode[] = {'L','u','c','i','d','a',' ','S','a','n','s',' ','U','n','i','c','o','d','e',0}; - static const WCHAR Microsoft_Sans_Serif[] = {'M','i','c','r','o','s','o','f','t',' ','S','a','n','s',' ','S','e','r','i','f',0 }; --static const WCHAR Tahoma[] = {'T','a','h','o','m','a',0}; -+static const WCHAR Liberation[] = {'L','i','b','e','r','a','t','i','o','n',' ','S','a','n','s',0}; - static const WCHAR MS_UI_Gothic[] = {'M','S',' ','U','I',' ','G','o','t','h','i','c',0}; - static const WCHAR SimSun[] = {'S','i','m','S','u','n',0}; - static const WCHAR Gulim[] = {'G','u','l','i','m',0}; -@@ -494,6 +494,9 @@ - 'C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\','F','o','n','t','L','i','n','k','\\', - 'S','y','s','t','e','m','L','i','n','k',0}; - -+static const char liberationsans[] = {'Z',':','\\','u','s','r','\\','s','h','a','r','e','\\','f','o','n','t','s','\\','l','i','b','e','r','a','t','i','o','n','\\','L','i','b','e','r','a','t','i','o','n','S','a','n','s','-','R','e','g','u','l','a','r','.','t','t','f',0}; -+static const char liberationserif[] = {'Z',':','\\','u','s','r','\\','s','h','a','r','e','\\','f','o','n','t','s','\\','l','i','b','e','r','a','t','i','o','n','\\','L','i','b','e','r','a','t','i','o','n','S','e','r','i','f','-','R','e','g','u','l','a','r','.','t','t','f',0}; -+ - /**************************************** - * Notes on .fon files - * -@@ -1641,7 +1644,7 @@ - WCHAR *entry, *next; - SYSTEM_LINKS *font_link, *system_font_link; - CHILD_FONT *child_font; -- static const WCHAR tahoma_ttf[] = {'t','a','h','o','m','a','.','t','t','f',0}; -+ static const WCHAR liberation_ttf[] = {'L','i','b','e','r','a','t','i','o','n','S','a','n','s','-','R','e','g','u','l','a','r','.','t','t','f',0}; - static const WCHAR System[] = {'S','y','s','t','e','m',0}; - FONTSIGNATURE fs; - Family *family; -@@ -1723,25 +1726,25 @@ - RegCloseKey(hkey); - } - -- /* Explicitly add an entry for the system font, this links to Tahoma and any links -- that Tahoma has */ -+ /* Explicitly add an entry for the system font, this links to Liberation Sans and any links -+ that Liberation Sans has */ - - system_font_link = HeapAlloc(GetProcessHeap(), 0, sizeof(*system_font_link)); - system_font_link->font_name = strdupW(System); - list_init(&system_font_link->links); - -- face = find_face_from_filename(tahoma_ttf, Tahoma); -+ face = find_face_from_filename(liberation_ttf, Liberation); - if(face) - { - child_font = HeapAlloc(GetProcessHeap(), 0, sizeof(*child_font)); - child_font->face = face; - child_font->font = NULL; -- TRACE("Found Tahoma in %s index %ld\n", child_font->face->file, child_font->face->face_index); -+ TRACE("Found Liberation Sans in %s index %ld\n", child_font->face->file, child_font->face->face_index); - list_add_tail(&system_font_link->links, &child_font->entry); - } - LIST_FOR_EACH_ENTRY(font_link, &system_links, SYSTEM_LINKS, entry) - { -- if(!strcmpiW(font_link->font_name, Tahoma)) -+ if(!strcmpiW(font_link->font_name, Liberation)) - { - CHILD_FONT *font_link_entry; - LIST_FOR_EACH_ENTRY(font_link_entry, &font_link->links, CHILD_FONT, entry) -@@ -2193,21 +2196,21 @@ - /* Latin 1 (United States) */ - { 1252, 437, "vgaoem.fon", "vgafix.fon", "vgasys.fon", - "coure.fon", "serife.fon", "smalle.fon", "sserife.fon", -- "Tahoma","Times New Roman", -+ "Liberation Sans","Times New Roman", - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - { 0 }, { 0 }, { 0 } - }, - /* Latin 1 (Multilingual) */ - { 1252, 850, "vga850.fon", "vgafix.fon", "vgasys.fon", - "coure.fon", "serife.fon", "smalle.fon", "sserife.fon", -- "Tahoma","Times New Roman", /* FIXME unverified */ -+ "Liberation Sans","Times New Roman", /* FIXME unverified */ - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - { 0 }, { 0 }, { 0 } - }, - /* Eastern Europe */ - { 1250, 852, "vga852.fon", "vgafixe.fon", "vgasyse.fon", - "couree.fon", "serifee.fon", "smallee.fon", "sserifee.fon", -- "Tahoma","Times New Roman", /* FIXME unverified */ -+ "Liberation Sans","Times New Roman", /* FIXME unverified */ - "Fixedsys,238", "System,238", - "Courier New,238", "MS Serif,238", "Small Fonts,238", - "MS Sans Serif,238", "MS Sans Serif,238", "MS Serif,238", -@@ -2218,7 +2221,7 @@ - /* Cyrillic */ - { 1251, 866, "vga866.fon", "vgafixr.fon", "vgasysr.fon", - "courer.fon", "serifer.fon", "smaller.fon", "sserifer.fon", -- "Tahoma","Times New Roman", /* FIXME unverified */ -+ "Liberation Sans","Times New Roman", /* FIXME unverified */ - "Fixedsys,204", "System,204", - "Courier New,204", "MS Serif,204", "Small Fonts,204", - "MS Sans Serif,204", "MS Sans Serif,204", "MS Serif,204", -@@ -2229,7 +2232,7 @@ - /* Greek */ - { 1253, 737, "vga869.fon", "vgafixg.fon", "vgasysg.fon", - "coureg.fon", "serifeg.fon", "smalleg.fon", "sserifeg.fon", -- "Tahoma","Times New Roman", /* FIXME unverified */ -+ "Liberation Sans","Times New Roman", /* FIXME unverified */ - "Fixedsys,161", "System,161", - "Courier New,161", "MS Serif,161", "Small Fonts,161", - "MS Sans Serif,161", "MS Sans Serif,161", "MS Serif,161", -@@ -2240,7 +2243,7 @@ - /* Turkish */ - { 1254, 857, "vga857.fon", "vgafixt.fon", "vgasyst.fon", - "couret.fon", "serifet.fon", "smallet.fon", "sserifet.fon", -- "Tahoma","Times New Roman", /* FIXME unverified */ -+ "Liberation Sans","Times New Roman", /* FIXME unverified */ - "Fixedsys,162", "System,162", - "Courier New,162", "MS Serif,162", "Small Fonts,162", - "MS Sans Serif,162", "MS Sans Serif,162", "MS Serif,162", -@@ -2251,7 +2254,7 @@ - /* Hebrew */ - { 1255, 862, "vgaoem.fon", "vgaf1255.fon", "vgas1255.fon", - "coue1255.fon", "sere1255.fon", "smae1255.fon", "ssee1255.fon", -- "Tahoma","Times New Roman", /* FIXME unverified */ -+ "Liberation Sans","Times New Roman", /* FIXME unverified */ - "Fixedsys,177", "System,177", - "Courier New,177", "MS Serif,177", "Small Fonts,177", - "MS Sans Serif,177", "MS Sans Serif,177", "MS Serif,177", -@@ -2260,7 +2263,7 @@ - /* Arabic */ - { 1256, 720, "vgaoem.fon", "vgaf1256.fon", "vgas1256.fon", - "coue1256.fon", "sere1256.fon", "smae1256.fon", "ssee1256.fon", -- "Tahoma","Times New Roman", /* FIXME unverified */ -+ "Liberation Sans","Times New Roman", /* FIXME unverified */ - "Fixedsys,178", "System,178", - "Courier New,178", "MS Serif,178", "Small Fonts,178", - "MS Sans Serif,178", "MS Sans Serif,178", "MS Serif,178", -@@ -2269,7 +2272,7 @@ - /* Baltic */ - { 1257, 775, "vga775.fon", "vgaf1257.fon", "vgas1257.fon", - "coue1257.fon", "sere1257.fon", "smae1257.fon", "ssee1257.fon", -- "Tahoma","Times New Roman", /* FIXME unverified */ -+ "Liberation Sans","Times New Roman", /* FIXME unverified */ - "Fixedsys,186", "System,186", - "Courier New,186", "MS Serif,186", "Small Fonts,186", - "MS Sans Serif,186", "MS Sans Serif,186", "MS Serif,186", -@@ -2280,14 +2283,14 @@ - /* Vietnamese */ - { 1258, 1258, "vga850.fon", "vgafix.fon", "vgasys.fon", - "coure.fon", "serife.fon", "smalle.fon", "sserife.fon", -- "Tahoma","Times New Roman", /* FIXME unverified */ -+ "Liberation Sans","Times New Roman", /* FIXME unverified */ - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - { 0 }, { 0 }, { 0 } - }, - /* Thai */ - { 874, 874, "vga850.fon", "vgaf874.fon", "vgas874.fon", - "coure.fon", "serife.fon", "smalle.fon", "ssee874.fon", -- "Tahoma","Times New Roman", /* FIXME unverified */ -+ "Liberation Sans","Times New Roman", /* FIXME unverified */ - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - { 0 }, { 0 }, { 0 } - }, -@@ -2325,7 +2328,7 @@ - { - Lucida_Sans_Unicode, - Microsoft_Sans_Serif, -- Tahoma -+ Liberation - }; - - static const struct font_links_defaults_list -@@ -2337,7 +2340,7 @@ - } font_links_defaults_list[] = - { - /* Non East-Asian */ -- { Tahoma, /* FIXME unverified ordering */ -+ { Liberation, /* FIXME unverified ordering */ - { MS_UI_Gothic, SimSun, Gulim, PMingLiU, NULL } - }, - /* Below lists are courtesy of -@@ -2399,8 +2402,8 @@ - static void add_font_list(HKEY hkey, const struct nls_update_font_list *fl) - { - RegSetValueExA(hkey, "Courier", 0, REG_SZ, (const BYTE *)fl->courier, strlen(fl->courier)+1); -- RegSetValueExA(hkey, "MS Serif", 0, REG_SZ, (const BYTE *)fl->serif, strlen(fl->serif)+1); -- RegSetValueExA(hkey, "MS Sans Serif", 0, REG_SZ, (const BYTE *)fl->sserif, strlen(fl->sserif)+1); -+ RegSetValueExA(hkey, "MS Serif", 0, REG_SZ, (const BYTE *)liberationserif, strlen(liberationserif)+1); -+ RegSetValueExA(hkey, "MS Sans Serif", 0, REG_SZ, (const BYTE *)liberationsans, strlen(liberationsans)+1); - RegSetValueExA(hkey, "Small Fonts", 0, REG_SZ, (const BYTE *)fl->small, strlen(fl->small)+1); - } - diff --git a/wine-gecko.patch b/wine-gecko.patch deleted file mode 100644 index 03d574d..0000000 --- a/wine-gecko.patch +++ /dev/null @@ -1,127 +0,0 @@ ---- dlls/mshtml/install.c.orig 2010-03-28 23:48:50.000000000 +0200 -+++ dlls/mshtml/install.c 2010-03-29 20:43:54.000000000 +0200 -@@ -284,6 +284,103 @@ - return ret; - } - -+static BOOL install_from_fedora_mingw32_wine_gecko(void) { -+ const char *data_dir, *subdir; -+ BOOL res; -+ -+ LPWSTR dos_dir_name; -+ LPSTR dos_dir_name_a; -+ static WCHAR *(*wine_get_dos_file_name)(const char*); -+ static const WCHAR kernel32W[] = {'k','e','r','n','e','l','3','2','.','d','l','l',0}; -+ -+ char install_dir[MAX_PATH]; -+ char gecko_dir[MAX_PATH]; -+ -+ SHFILEOPSTRUCTA sf; -+ -+ TRACE("()\n"); -+ -+ if((data_dir = wine_get_data_dir())) -+ subdir = "/gecko/"; -+ else if((data_dir = wine_get_build_dir())) -+ subdir = "/../gecko/"; -+ else -+ return FALSE; -+ -+ TRACE("data_dir=%s\n",data_dir); -+ TRACE("subdir=%s\n",subdir); -+ -+ memcpy(gecko_dir, data_dir, MAX_PATH); -+ strncat(gecko_dir, subdir, MAX_PATH-strlen(gecko_dir)); -+ strncat(gecko_dir, GECKO_VERSION, MAX_PATH-strlen(gecko_dir)); -+ strncat(gecko_dir, "/", MAX_PATH-strlen(gecko_dir)); -+ -+ if(!wine_get_dos_file_name) -+ wine_get_dos_file_name = (void*)GetProcAddress(GetModuleHandleW(kernel32W), "wine_get_dos_file_name"); -+ -+ if(wine_get_dos_file_name) { /* Wine UNIX mode */ -+ dos_dir_name = wine_get_dos_file_name(gecko_dir); -+ if(!dos_dir_name) { -+ ERR("Could not get dos file name of %s\n", debugstr_a(gecko_dir)); -+ return FALSE; -+ } -+ } else { -+ return FALSE; -+ } -+ -+ TRACE("gecko_dir=%s\n", debugstr_a(gecko_dir)); -+ TRACE("dos_dir_name=%s\n", debugstr_w(dos_dir_name)); -+ -+ -+ if(GetFileAttributesW(dos_dir_name) == INVALID_FILE_ATTRIBUTES) { -+ TRACE("mingw32-wine-gecko package not installed\n"); -+ return FALSE; -+ } -+ -+ GetSystemDirectoryA(install_dir, sizeof(install_dir)); -+ strncat(install_dir, "\\gecko\\",MAX_PATH-strlen(install_dir)); -+ res = CreateDirectoryA(install_dir, NULL); -+ if(!res && GetLastError() != ERROR_ALREADY_EXISTS) { -+ ERR("Could not create directory: %08u\n", GetLastError()); -+ return FALSE; -+ } -+ -+ strncat(install_dir, GECKO_VERSION, MAX_PATH-strlen(install_dir)); -+ res = CreateDirectoryA(install_dir, NULL); -+ if(!res && GetLastError() != ERROR_ALREADY_EXISTS) { -+ ERR("Could not create directory: %08u\n", GetLastError()); -+ return FALSE; -+ } -+ -+ TRACE("install_dir=%s\n",debugstr_a(install_dir)); -+ -+ dos_dir_name_a = heap_strdupWtoA(dos_dir_name); -+ -+ lstrcatA(dos_dir_name_a,"*.*"); -+ TRACE("dos_dir_name_a=%s\n",debugstr_a(dos_dir_name_a)); -+ -+ memset(&sf,0,sizeof(sf)); -+ sf.hwnd = 0; -+ sf.wFunc = FO_COPY; -+ sf.pFrom = dos_dir_name_a; -+ sf.pTo = install_dir; -+ sf.fFlags = FOF_NOCONFIRMATION, FOF_NOCONFIRMMKDIR | FOF_NOERRORUI | FOF_SILENT; -+ res = SHFileOperationA(&sf); -+ -+ heap_free(dos_dir_name_a); -+ -+ if(res != 0) { -+ ERR("Could not copy files: %08u\n", GetLastError()); -+ return FALSE; -+ } -+ -+ set_registry(install_dir); -+ -+ clean_up(); -+ -+ return TRUE; -+} -+ - static HRESULT WINAPI InstallCallback_QueryInterface(IBindStatusCallback *iface, - REFIID riid, void **ppv) - { -@@ -541,7 +638,8 @@ - * - $datadir/gecko - * - download from URL stored in GeckoUrl value of HKCU/Software/MSHTML key - */ -- if(!install_from_registered_dir() -+ if ( !install_from_fedora_mingw32_wine_gecko() -+ && !install_from_registered_dir() - && !install_from_default_dir() - && !silent && (url = get_url())) - DialogBoxW(hInst, MAKEINTRESOURCEW(ID_DWL_DIALOG), 0, installer_proc); ---- dlls/mshtml/Makefile.in.orig 2010-08-04 22:56:36.000000000 +0200 -+++ dlls/mshtml/Makefile.in 2010-08-04 22:56:52.000000000 +0200 -@@ -4,7 +4,7 @@ - VPATH = @srcdir@ - MODULE = mshtml.dll - IMPORTLIB = mshtml --IMPORTS = strmiids uuid urlmon shlwapi ole32 oleaut32 user32 gdi32 advapi32 -+IMPORTS = strmiids uuid urlmon shlwapi ole32 oleaut32 user32 gdi32 advapi32 kernel32 shell32 - EXTRADEFS = -DCOM_NO_WINDOWS_H - DELAYIMPORTS = wininet - diff --git a/wine.spec b/wine.spec index 52457b8..be82bda 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %define no64bit 0 Name: wine -Version: 1.3.15 -Release: 3%{?dist} +Version: 1.3.16 +Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -12,7 +12,6 @@ Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf Source5: wine-64.conf -Source6: wine-chooser.sh # desktop stuff Source100: wine-notepad.desktop Source101: wine-regedit.desktop @@ -32,22 +31,16 @@ Source201: wine.directory # mime types Source300: wine-mime-msi.desktop -Patch1: wine-rpath.patch - Patch200: wine-imagemagick-6.5.patch # explain how to use wine with pulseaudio # see http://bugs.winehq.org/show_bug.cgi?id=10495 # and http://art.ified.ca/?page_id=40 -Patch400: http://art.ified.ca/downloads/winepulse/winepulse-configure.ac-1.3.10.patch +Patch400: http://art.ified.ca/downloads/winepulse/winepulse-configure.ac-1.3.16.patch Patch401: http://art.ified.ca/downloads/winepulse/winepulse-0.39.patch Patch402: http://art.ified.ca/downloads/winepulse/winepulse-winecfg-1.3.11.patch Source402: README-FEDORA-PULSEAUDIO -# enhancements -# add wine-gecko support -Patch1000: wine-gecko.patch - Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) %if !%{?no64bit} @@ -174,6 +167,9 @@ Obsoletes: wine <= 0.9.15-1%{?dist} Obsoletes: wine-arts < 0.9.34 Obsoletes: wine-tools <= 1.1.27 Provides: wine-tools = %{version}-%{release} +# removed as of 1.3.16 +Obsoletes: wine-nas <= 1.3.15 +Provides: wine-nas = %{version}-%{release} # require -common so we get wine.inf (#528335) Requires: wine-common = %{version}-%{release} # fix dns resolution (#492700) @@ -195,7 +191,6 @@ Requires: libXrender(x86-64) Requires: libXcursor(x86-64) %endif - %description core Wine core package includes the basic wine stuff needed by all other packages. @@ -346,14 +341,6 @@ Requires: jack-audio-connection-kit(x86-64) %description jack JACK sound support for wine -%package nas -Summary: NAS sound support for wine -Group: System Environment/Libraries -Requires: wine-core = %{version}-%{release} - -%description nas -NAS sound support for wine - %package ldap Summary: LDAP support for wine Group: System Environment/Libraries @@ -433,7 +420,7 @@ This package adds an openal driver for wine. %prep %setup -q -%patch1 -b .rpath +#%patch1 -b .rpath %patch200 -b .imagemagick %patch400 -p1 -b .winepulse %patch401 -p1 -b .winepulse @@ -457,7 +444,7 @@ export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno --enable-maintainer-mode \ --disable-tests -%{__make} TARGETFLAGS="" #%{?_smp_mflags} +%{__make} TARGETFLAGS="" %{?_smp_mflags} %install rm -rf %{buildroot} @@ -669,9 +656,6 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %post jack -p /sbin/ldconfig %postun jack -p /sbin/ldconfig -%post nas -p /sbin/ldconfig -%postun nas -p /sbin/ldconfig - %post ldap -p /sbin/ldconfig %postun ldap -p /sbin/ldconfig @@ -935,6 +919,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/msi.dll.so %{_libdir}/wine/msimtf.dll.so %{_libdir}/wine/msimg32.dll.so +%{_libdir}/wine/msimsg.dll.so %{_libdir}/wine/msisip.dll.so %{_libdir}/wine/msisys.ocx.so %{_libdir}/wine/msnet32.dll.so @@ -1051,7 +1036,6 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/wer.dll.so %{_libdir}/wine/wiaservc.dll.so %{_libdir}/wine/windowscodecs.dll.so -%{_libdir}/wine/winecoreaudio.drv.so %{_libdir}/wine/winegstreamer.dll.so %{_libdir}/wine/winejoystick.drv.so %{_libdir}/wine/winemapi.dll.so @@ -1267,11 +1251,6 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %defattr(-,root,root,-) %{_libdir}/wine/winejack.drv.so -# nas subpackage -%files nas -%defattr(-,root,root,-) -%{_libdir}/wine/winenas.drv.so - # ldap subpackage %files ldap %defattr(-,root,root,-) @@ -1344,6 +1323,13 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Fri Mar 18 2011 Andreas Bierfert +- 1.3.16-1 +- version upgrade +- cleanup unneeded patches +- drop some patches +- reenable smp build + * Thu Mar 17 2011 Andreas Bierfert - 1.3.15-3 - reenable fonts diff --git a/winepulse-configure.ac-1.3.10.patch b/winepulse-configure.ac-1.3.16.patch similarity index 84% rename from winepulse-configure.ac-1.3.10.patch rename to winepulse-configure.ac-1.3.16.patch index 65085cf..b44dd57 100644 --- a/winepulse-configure.ac-1.3.10.patch +++ b/winepulse-configure.ac-1.3.16.patch @@ -1,8 +1,6 @@ -diff --git a/configure.ac b/configure.ac -index 5e1810f..c941f93 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -79,6 +79,7 @@ AC_ARG_WITH(png, AS_HELP_STRING([--without-png],[do not use PNG]), +--- wine-1.3.16/configure.ac.winepulse 2011-03-18 20:48:03.000000000 +0100 ++++ wine-1.3.16/configure.ac 2011-03-18 21:28:27.000000000 +0100 +@@ -79,6 +79,7 @@ [if test "x$withval" = "xno"; then ac_cv_header_png_h=no; fi]) AC_ARG_WITH(pthread, AS_HELP_STRING([--without-pthread],[do not use the pthread library]), [if test "x$withval" = "xno"; then ac_cv_header_pthread_h=no; fi]) @@ -10,7 +8,7 @@ index 5e1810f..c941f93 100644 AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)])) AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF]), [if test "x$withval" = "xno"; then ac_cv_header_tiffio_h=no; fi]) -@@ -1434,6 +1435,30 @@ then +@@ -1476,6 +1477,30 @@ CFLAGS="$save_CFLAGS" fi @@ -41,8 +39,8 @@ index 5e1810f..c941f93 100644 dnl **** Check for gstreamer **** if test "x$with_gstreamer" != "xno" then -@@ -1630,7 +1655,7 @@ dnl **** Check for libodbc **** - WINE_CHECK_SONAME(odbc,SQLConnect,,[AC_DEFINE_UNQUOTED(SONAME_LIBODBC,["libodbc.$LIBEXT"])]) +@@ -1672,7 +1697,7 @@ + test "$ac_cv_header_linux_joystick_h" = "yes" || enable_winejoystick_drv=${enable_winejoystick_drv:-no} dnl **** Check for any sound system **** -if test "x$ALSALIBS$COREAUDIO$NASLIBS$ESDLIBS$ac_cv_lib_soname_jack" = "x" -a \ @@ -50,7 +48,7 @@ index 5e1810f..c941f93 100644 "$ac_cv_header_sys_soundcard_h" != "yes" -a \ "$ac_cv_header_machine_soundcard_h" != "yes" -a \ "$ac_cv_header_soundcard_h" != "yes" -a \ -@@ -2797,6 +2822,7 @@ WINE_CONFIG_DLL(winenas.drv) +@@ -2849,6 +2874,7 @@ WINE_CONFIG_DLL(wineoss.drv) WINE_CONFIG_DLL(wineps.drv) WINE_CONFIG_DLL(wineps16.drv16,enable_win16) From 7cc466907d738363992a0438adcdc6be6523db47 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 2 Apr 2011 11:54:27 +0200 Subject: [PATCH 190/715] 1.3.17-1 version upgrade --- .gitignore | 1 + sources | 2 +- wine.spec | 41 +++++++++++++++++++++++------------------ 3 files changed, 25 insertions(+), 19 deletions(-) diff --git a/.gitignore b/.gitignore index 9e739e4..4eca742 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ /wine-1.3.14.tar.bz2 /wine-1.3.15.tar.bz2 /wine-1.3.16.tar.bz2 +/wine-1.3.17.tar.bz2 diff --git a/sources b/sources index e38e8c1..371568b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -74627787556240473a85daaf51d4f620 wine-1.3.16.tar.bz2 +f8d9d1d8cdab27ad311fa3743a1a0bc5 wine-1.3.17.tar.bz2 diff --git a/wine.spec b/wine.spec index be82bda..f14126d 100644 --- a/wine.spec +++ b/wine.spec @@ -1,14 +1,14 @@ -%define no64bit 0 -Name: wine -Version: 1.3.16 -Release: 1%{?dist} -Summary: A Windows 16/32/64 bit emulator - -Group: Applications/Emulators -License: LGPLv2+ -URL: http://www.winehq.org/ +%global no64bit 0 +Name: wine +Version: 1.3.17 +Release: 1%{?dist} +Summary: A Windows 16/32/64 bit emulator + +Group: Applications/Emulators +License: LGPLv2+ +URL: http://www.winehq.org/ Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-%{version}.tar.bz2 -Source1: wine.init +Source1: wine.init Source3: wine-README-Fedora Source4: wine-32.conf Source5: wine-64.conf @@ -160,7 +160,7 @@ wine-* sub packages. %package core Summary: Wine core package -Group: Applications/Emulators +Group: Applications/Emulators Requires(post): /sbin/ldconfig Requires(postun): /sbin/ldconfig Obsoletes: wine <= 0.9.15-1%{?dist} @@ -312,7 +312,7 @@ Requires: fontpackages-filesystem %package common Summary: Common files -Group: Applications/Emulators +Group: Applications/Emulators Requires: wine-core = %{version}-%{release} BuildArch: noarch @@ -442,7 +442,7 @@ export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno --enable-win64 \ %endif --enable-maintainer-mode \ - --disable-tests + --disable-tests %{__make} TARGETFLAGS="" %{?_smp_mflags} @@ -450,11 +450,11 @@ export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno rm -rf %{buildroot} %makeinstall \ - includedir=%{buildroot}%{_includedir}/wine \ - sysconfdir=%{buildroot}%{_sysconfdir}/wine \ - dlldir=%{buildroot}%{_libdir}/wine \ - LDCONFIG=/bin/true \ - UPDATE_DESKTOP_DATABASE=/bin/true + includedir=%{buildroot}%{_includedir}/wine \ + sysconfdir=%{buildroot}%{_sysconfdir}/wine \ + dlldir=%{buildroot}%{_libdir}/wine \ + LDCONFIG=/bin/true \ + UPDATE_DESKTOP_DATABASE=/bin/true mkdir -p %{buildroot}%{_sysconfdir}/wine @@ -923,6 +923,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/msisip.dll.so %{_libdir}/wine/msisys.ocx.so %{_libdir}/wine/msnet32.dll.so +%{_libdir}/wine/mspatcha.dll.so %{_libdir}/wine/mssign32.dll.so %{_libdir}/wine/mssip32.dll.so %{_libdir}/wine/msrle32.dll.so @@ -1323,6 +1324,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sat Apr 02 2011 Andreas Bierfert +- 1.3.17-1 +- version upgrade + * Fri Mar 18 2011 Andreas Bierfert - 1.3.16-1 - version upgrade From 30aa51ce0f85c6470198b58b06aa979ca6c412e1 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Tue, 5 Apr 2011 12:06:09 +0200 Subject: [PATCH 191/715] 1.3.17-2 cleanup spec file remove rpath via chrpath convert README files to utf8 move SysV init script so sysvinit subpackage (>=f15) add some missing lsb keywords to init file create systemd subpackage and require it in the wine-desktop package (>=f15) disable embedded bitmaps in tahoma (#693180) provide readme how to disable wine-tahoma in fontconfig (#693180) --- ...ULSEAUDIO => wine-README-fedora-pulseaudio | 0 wine-README-tahoma | 19 ++ wine-tahoma.conf | 11 ++ wine.init | 11 +- wine.spec | 185 ++++++++++++++---- wine.systemd | 5 + 6 files changed, 187 insertions(+), 44 deletions(-) rename README-FEDORA-PULSEAUDIO => wine-README-fedora-pulseaudio (100%) create mode 100644 wine-README-tahoma create mode 100644 wine-tahoma.conf create mode 100644 wine.systemd diff --git a/README-FEDORA-PULSEAUDIO b/wine-README-fedora-pulseaudio similarity index 100% rename from README-FEDORA-PULSEAUDIO rename to wine-README-fedora-pulseaudio diff --git a/wine-README-tahoma b/wine-README-tahoma new file mode 100644 index 0000000..777f302 --- /dev/null +++ b/wine-README-tahoma @@ -0,0 +1,19 @@ += wine-tahoma-fonts = +Wine provides the wine tahoma font family. In fedora embedded bitmaps are +turned of per default (/etc/fonts/conf.d/20-wine-tahoma-nobitmaps.conf) as +this will provide smother letters for most users. + +If you do not like the wine tahoma font experience but want to keep it +installed you can turn it of by adding the following to ~/.fonts.conf or by +adding a file containing the following to ~/.fonts.conf.d/: + + + + + + + +*/wine-tahoma-fonts/* + + + diff --git a/wine-tahoma.conf b/wine-tahoma.conf new file mode 100644 index 0000000..d8af439 --- /dev/null +++ b/wine-tahoma.conf @@ -0,0 +1,11 @@ + + + + + + + + Tahoma + false + + diff --git a/wine.init b/wine.init index 8162bb8..990bb83 100644 --- a/wine.init +++ b/wine.init @@ -7,9 +7,12 @@ # description: Allow users to run Windows(tm) applications by just clicking \ # on them (or typing ./file.exe) ### BEGIN INIT INFO +# Provides: wine-binfmt +# Required-Start: +# Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 -# Short-Description: start and stop wine binary handler +# Short-Description: Add and remove wine binary handler # Description: Allow users to run Windows(tm) applications by just clicking # on them (or typing ./file.exe) ### END INIT INFO @@ -67,6 +70,10 @@ case "$1" in stop start ;; + reload) + stop + start + ;; condrestart|try-restart) if [ -e /proc/sys/fs/binfmt_misc/windows ]; then @@ -75,7 +82,7 @@ case "$1" in fi ;; *) - echo $"Usage: $prog {start|stop|status|restart|try-restart}" + echo $"Usage: $prog {start|stop|status|restart|reload|try-restart}" exit 1 esac exit $RETVAL diff --git a/wine.spec b/wine.spec index f14126d..ab7357a 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %global no64bit 0 Name: wine Version: 1.3.17 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -9,6 +9,7 @@ License: LGPLv2+ URL: http://www.winehq.org/ Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-%{version}.tar.bz2 Source1: wine.init +Source2: wine.systemd Source3: wine-README-Fedora Source4: wine-32.conf Source5: wine-64.conf @@ -36,10 +37,17 @@ Patch200: wine-imagemagick-6.5.patch # explain how to use wine with pulseaudio # see http://bugs.winehq.org/show_bug.cgi?id=10495 # and http://art.ified.ca/?page_id=40 -Patch400: http://art.ified.ca/downloads/winepulse/winepulse-configure.ac-1.3.16.patch +Patch400: winepulse-configure.ac-1.3.16.patch Patch401: http://art.ified.ca/downloads/winepulse/winepulse-0.39.patch Patch402: http://art.ified.ca/downloads/winepulse/winepulse-winecfg-1.3.11.patch -Source402: README-FEDORA-PULSEAUDIO +Source402: wine-README-fedora-pulseaudio + + +# smooth tahoma (#693180) +# disable embedded bitmaps +Source501: wine-tahoma.conf +# and provide a readme +Source502: wine-README-tahoma Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -101,7 +109,7 @@ BuildRequires: gstreamer-devel gstreamer-plugins-base-devel BuildRequires: libtiff-devel BuildRequires: prelink BuildRequires: gettext-devel - +BuildRequires: chrpath %if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 BuildRequires: openal-soft-devel @@ -163,8 +171,8 @@ Summary: Wine core package Group: Applications/Emulators Requires(post): /sbin/ldconfig Requires(postun): /sbin/ldconfig -Obsoletes: wine <= 0.9.15-1%{?dist} Obsoletes: wine-arts < 0.9.34 +Provides: wine-arts = %{version}-%{release} Obsoletes: wine-tools <= 1.1.27 Provides: wine-tools = %{version}-%{release} # removed as of 1.3.16 @@ -203,10 +211,29 @@ Requires: wine-core(x86-64) = %{version}-%{release} Requires: wine-core(x86-32) = %{version}-%{release} %endif - %description wow %{summary} +%if 0%{?fedora} >= 15 +%package systemd +Summary: Systemd config for the wine binfmt handler +Group: Applications/Emulators +Requires: systemd >= 23 +BuildArch: noarch + +%description systemd +Register the wine binary handler for windows executables via systemd binfmt +handling. See man binfmt.d for further information. + +%package sysvinit +Summary: SysV initscript for the wine binfmt handler +Group: Applications/Emulators +BuildArch: noarch + +%description sysvinit +Register the wine binary handler for windows executables via SysV init files. +%endif + %package desktop Summary: Desktop integration features for wine Group: Applications/Emulators @@ -216,6 +243,9 @@ Requires(preun): /sbin/chkconfig, /sbin/service Requires(postun): desktop-file-utils >= 0.8 Requires: wine-core(x86-32) = %{version}-%{release} Requires: wine-common = %{version}-%{release} +%if 0%{?fedora} >= 15 +Requires: wine-systemd = %{version}-%{release} +%endif Requires: hicolor-icon-theme BuildArch: noarch @@ -389,7 +419,8 @@ Requires: wine-core = %{version}-%{release} %description pulseaudio This package adds a native pulseaudio driver for wine. This is not an official -wine audio driver. Please do not report bugs regarding this driver at winehq.org. +wine audio driver. Please do not report bugs regarding this driver at +winehq.org. %package alsa Summary: Alsa support for wine @@ -420,7 +451,6 @@ This package adds an openal driver for wine. %prep %setup -q -#%patch1 -b .rpath %patch200 -b .imagemagick %patch400 -p1 -b .winepulse %patch401 -p1 -b .winepulse @@ -434,15 +464,15 @@ autoreconf # http://bugs.winehq.org/show_bug.cgi?id=25073 export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno-error" %configure \ - --sysconfdir=%{_sysconfdir}/wine \ - --x-includes=%{_includedir} --x-libraries=%{_libdir} \ - --with-pulse \ - --with-x \ + --sysconfdir=%{_sysconfdir}/wine \ + --x-includes=%{_includedir} --x-libraries=%{_libdir} \ + --with-pulse \ + --with-x \ %ifarch x86_64 - --enable-win64 \ + --enable-win64 \ %endif - --enable-maintainer-mode \ - --disable-tests + --enable-maintainer-mode \ + --disable-tests %{__make} TARGETFLAGS="" %{?_smp_mflags} @@ -456,11 +486,25 @@ rm -rf %{buildroot} LDCONFIG=/bin/true \ UPDATE_DESKTOP_DATABASE=/bin/true +# remove rpath +chrpath --delete %{buildroot}%{_bindir}/wmc +chrpath --delete %{buildroot}%{_bindir}/wrc +chrpath --delete %{buildroot}%{_bindir}/wineserver +%ifarch x86_64 +chrpath --delete %{buildroot}%{_bindir}/wine64 +%else +chrpath --delete %{buildroot}%{_bindir}/wine +%endif + mkdir -p %{buildroot}%{_sysconfdir}/wine # Allow users to launch Windows programs by just clicking on the .exe file... mkdir -p %{buildroot}%{_initrddir} install -p -c -m 755 %{SOURCE1} %{buildroot}%{_initrddir}/wine +%if 0%{?fedora} >= 15 +mkdir -p %{buildroot}%{_sysconfdir}/binfmt.d/ +install -p -c -m 644 %{SOURCE2} %{buildroot}%{_sysconfdir}/binfmt.d/wine.conf +%endif # add wine dir to desktop mkdir -p %{buildroot}%{_sysconfdir}/xdg/menus/applications-merged @@ -578,8 +622,10 @@ desktop-file-install \ --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE300} - -cp %{SOURCE3} README-Fedora +# deploy pulseaudio readme +cp %{SOURCE3} README-FEDORA +cp %{SOURCE402} README-FEDORA-PulseAudio +cp %{SOURCE502} README-tahoma mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d/ @@ -591,8 +637,6 @@ install -p -m644 %{SOURCE4} %{buildroot}%{_sysconfdir}/ld.so.conf.d/ install -p -m644 %{SOURCE5} %{buildroot}%{_sysconfdir}/ld.so.conf.d/ %endif -# deploy pulseaudio readme -cp %{SOURCE402} . # install fonts install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-courier-fonts @@ -618,27 +662,59 @@ mv %{buildroot}/%{_datadir}/wine/fonts/tahoma* %{buildroot}/%{_datadir}/fonts/wi install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-symbol-fonts mv %{buildroot}/%{_datadir}/wine/fonts/symbol.ttf %{buildroot}/%{_datadir}/fonts/wine-symbol-fonts/ +# add config and readme for tahoma +install -m 0755 -d %{buildroot}%{_fontconfig_templatedir} \ + %{buildroot}%{_fontconfig_confdir} +install -p -m 0644 %{SOURCE501} %{buildroot}%{_fontconfig_templatedir}/20-wine-tahoma-nobitmaps.conf + +ln -s %{_fontconfig_templatedir}/20-wine-tahoma-nobitmaps.conf \ + %{buildroot}%{_fontconfig_confdir}/20-wine-tahoma-nobitmaps.conf + +# clean readme files +pushd documentation +for lang in it hu sv es pt pt_br; +do iconv -f iso8859-1 -t utf-8 README.$lang > \ + README.$lang.conv && mv -f README.$lang.conv README.$lang +done; +popd %clean rm -rf %{buildroot} -%post core -p /sbin/ldconfig -%postun core -p /sbin/ldconfig +%if 0%{?fedora} >= 15 +%post sysvinit +if [ $1 -eq 1 ]; then +/sbin/chkconfig --add wine +/sbin/chkconfig --level 2345 wine on +/sbin/service wine start &>/dev/null || : +fi + +%preun sysvinit +if [ $1 -eq 0 ]; then +/sbin/service wine stop >/dev/null 2>&1 +/sbin/chkconfig --del wine +fi + +%post desktop +update-desktop-database &>/dev/null || : +touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : +%else %post desktop update-desktop-database &>/dev/null || : -if [ $1 = 1 ]; then +touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : +if [ $1 -eq 1 ]; then /sbin/chkconfig --add wine /sbin/chkconfig --level 2345 wine on /sbin/service wine start &>/dev/null || : fi -touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : %preun desktop -if [ $1 = 0 ]; then - /sbin/service wine stop >/dev/null 2>&1 - /sbin/chkconfig --del wine +if [ $1 -eq 0 ]; then +/sbin/service wine stop >/dev/null 2>&1 +/sbin/chkconfig --del wine fi +%endif %postun desktop update-desktop-database &>/dev/null || : @@ -650,6 +726,9 @@ fi %posttrans desktop gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : +%post core -p /sbin/ldconfig +%postun core -p /sbin/ldconfig + %post esd -p /sbin/ldconfig %postun esd -p /sbin/ldconfig @@ -701,7 +780,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %doc LICENSE %doc LICENSE.OLD %doc AUTHORS -%doc README-Fedora +%doc README-FEDORA %doc README %doc VERSION # do not include huge changelogs .OLD .ALPHA .BETA (#204302) @@ -728,13 +807,13 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %ifarch %{ix86} %{_bindir}/wine %{_bindir}/wine-preloader -%{_sysconfdir}/ld.so.conf.d/wine-32.conf +%config %{_sysconfdir}/ld.so.conf.d/wine-32.conf %endif %ifarch x86_64 %{_bindir}/wine64 %{_bindir}/wine64-preloader -%{_sysconfdir}/ld.so.conf.d/wine-64.conf +%config %{_sysconfdir}/ld.so.conf.d/wine-64.conf %endif %dir %{_libdir}/wine @@ -1201,8 +1280,8 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_datadir}/fonts/wine-small-fonts %files marlett-fonts -%doc COPYING.LIB %defattr(-,root,root,-) +%doc COPYING.LIB %{_datadir}/fonts/wine-marlett-fonts %files ms-sans-serif-fonts @@ -1212,8 +1291,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %files tahoma-fonts %defattr(-,root,root,-) -%doc COPYING.LIB +%doc COPYING.LIB README-tahoma %{_datadir}/fonts/wine-tahoma-fonts +%{_fontconfig_confdir}/20-wine-tahoma*conf +%{_fontconfig_templatedir}/20-wine-tahoma*conf %files symbol-fonts %defattr(-,root,root,-) @@ -1235,13 +1316,22 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_datadir}/applications/fedora-wine-wordpad.desktop %{_datadir}/applications/fedora-wine-oleview.desktop %{_datadir}/desktop-directories/Wine.directory -%{_sysconfdir}/xdg/menus/applications-merged/wine.menu -%{_initrddir}/wine - +%config %{_sysconfdir}/xdg/menus/applications-merged/wine.menu %if 0%{?fedora} >= 10 %{_datadir}/icons/hicolor/scalable/apps/*svg %endif +%if 0%{?fedora} >= 15 +%files systemd +%defattr(0644,root,root) +%config %{_sysconfdir}/binfmt.d/wine.conf + +%files sysvinit +%defattr(0755,root,root) +%endif +%{_initrddir}/wine + + # esd subpackage %files esd %defattr(-,root,root,-) @@ -1306,7 +1396,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %files pulseaudio %defattr(-,root,root,-) # winepulse documentation -%doc README-FEDORA-PULSEAUDIO +%doc README-FEDORA-PulseAudio %{_libdir}/wine/winepulse.drv.so %files alsa @@ -1324,6 +1414,17 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Tue Apr 05 2011 Andreas Bierfert +- 1.3.17-2 +- cleanup spec file +- remove rpath via chrpath +- convert README files to utf8 +- move SysV init script so sysvinit subpackage (>=f15) +- add some missing lsb keywords to init file +- create systemd subpackage and require it in the wine-desktop package (>=f15) +- disable embedded bitmaps in tahoma (#693180) +- provide readme how to disable wine-tahoma in fontconfig (#693180) + * Sat Apr 02 2011 Andreas Bierfert - 1.3.17-1 - version upgrade @@ -2134,7 +2235,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : 20050930-3 - add desktop files - revisit summary and description -- consistant use of %{buildroot} +- consistant use of %%{buildroot} * Sat Oct 22 2005 Andreas Bierfert 20050930-2 @@ -2218,7 +2319,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : * Wed Feb 18 2004 Vincent Béron 20040213-1fc1 - Update to 20040213 -- Moved Wine dlls back to %{_libdir}/wine rather than %{_libdir}/wine/wine +- Moved Wine dlls back to %%{_libdir}/wine rather than %%{_libdir}/wine/wine * Sun Jan 25 2004 Vincent Béron 20040121-fc1 - Update to 20040121 @@ -2328,7 +2429,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : * Thu Jul 26 2001 Bernhard Rosenkraenzer 20010726-1 - Fix -devel package group (#49989) - remove internal CVS files -- chkconfig deletion should be in %preun, not %postun +- chkconfig deletion should be in %%preun, not %%postun - rename initscript ("Starting windows:" at startup does look off) * Thu May 03 2001 Bernhard Rosenkraenzer 20010503-1 @@ -2356,7 +2457,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : - Update - Restore wine's ability to use a global config file, it was removed in CVS for whatever reason -- Move libraries to %{_libdir}/wine to prevent conflicts with libuser +- Move libraries to %%{_libdir}/wine to prevent conflicts with libuser (Bug #24202) - Move include files to /usr/include/wine to prevent it from messing with some autoconf scripts (some broken scripts assume they're running on windoze @@ -2370,7 +2471,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : * Mon Nov 20 2000 Bernhard Rosenkraenzer - Update CVS - Add a new (user) group wine that can write to the "C: drive" - %{_datadir}/wine-c + %%{_datadir}/wine-c - Fix up winedbg installation (registry entries) - Add "Program Files/Common Files" subdirectory to the "C: drive", it's referenced in the registry @@ -2424,8 +2525,8 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : - Fix up the default wine.conf file (We really don't want it to look for CD-ROMs in /cdrom!) - create a "root filesystem" with everything required to run wine without - windows in %{_datadir}/wine-c (drive c:) -- add RedHat file in /usr/doc/wine-%{version} explaining the new directory + windows in %%{_datadir}/wine-c (drive c:) +- add RedHat file in /usr/doc/wine-%%{version} explaining the new directory layout - wine-devel requires wine diff --git a/wine.systemd b/wine.systemd new file mode 100644 index 0000000..537dd89 --- /dev/null +++ b/wine.systemd @@ -0,0 +1,5 @@ +# Pre-PE Windows Executables +:windows:M::MZ::/usr/bin/wine: + +# PE Windows Executables +:windowsPE:M::PE::/usr/bin/wine: From 2a52e33f655cb78d728133e08484cb39398fd5e5 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Thu, 7 Apr 2011 11:03:12 +0200 Subject: [PATCH 192/715] 1.3.17-3 add fix for office installation (upstream #26650) --- ...operty_followed_by_non-empty_property.diff | 52 +++++++++++++++++++ wine.spec | 9 +++- 2 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 msi_fix_empty_property_followed_by_non-empty_property.diff diff --git a/msi_fix_empty_property_followed_by_non-empty_property.diff b/msi_fix_empty_property_followed_by_non-empty_property.diff new file mode 100644 index 0000000..a4760c4 --- /dev/null +++ b/msi_fix_empty_property_followed_by_non-empty_property.diff @@ -0,0 +1,52 @@ +commit c23d222e78727bbcb9ed2926c328aceb0d8a89e1 +Author: Hans Leidekker +Date: Fri Apr 1 17:01:55 2011 +0200 + + msi: Fix parsing of empty an property followed by a non-empty property. + +diff --git a/dlls/msi/action.c b/dlls/msi/action.c +index 79d12d6..366d897 100644 +--- a/dlls/msi/action.c ++++ b/dlls/msi/action.c +@@ -231,6 +231,7 @@ static int parse_prop( const WCHAR *str, WCHAR *value, int *quotes ) + if (!count) goto done; + in_quotes = 1; + ignore = 1; ++ len++; + break; + case '"': + state = state_quote; +@@ -258,6 +259,7 @@ static int parse_prop( const WCHAR *str, WCHAR *value, int *quotes ) + state = state_whitespace; + if (!count) goto done; + in_quotes = 1; ++ len++; + break; + default: + if (!count) in_quotes = 0; +@@ -276,8 +278,9 @@ static int parse_prop( const WCHAR *str, WCHAR *value, int *quotes ) + break; + case ' ': + state = state_whitespace; +- if (!count) goto done; ++ if (!count || (count > 1 && !len)) goto done; + in_quotes = 1; ++ len++; + break; + default: + state = state_token; +diff --git a/dlls/msi/tests/install.c b/dlls/msi/tests/install.c +index 1f5ab9c..d54f923 100644 +--- a/dlls/msi/tests/install.c ++++ b/dlls/msi/tests/install.c +@@ -6346,6 +6346,10 @@ static void test_command_line_parsing(void) + r = MsiInstallProductA(msifile, cmd); + ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r); + ++ cmd = "Q=\"\" P=\"one\""; ++ r = MsiInstallProductA(msifile, cmd); ++ ok(r == ERROR_INSTALL_FAILURE, "Expected ERROR_INSTALL_FAILURE, got %u\n", r); ++ + DeleteFile(msifile); + RemoveDirectory("msitest"); + } diff --git a/wine.spec b/wine.spec index ab7357a..99819d1 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %global no64bit 0 Name: wine Version: 1.3.17 -Release: 2%{?dist} +Release: 3%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -49,6 +49,8 @@ Source501: wine-tahoma.conf # and provide a readme Source502: wine-README-tahoma +Patch1000: msi_fix_empty_property_followed_by_non-empty_property.diff + Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) %if !%{?no64bit} @@ -455,6 +457,7 @@ This package adds an openal driver for wine. %patch400 -p1 -b .winepulse %patch401 -p1 -b .winepulse %patch402 -p1 -b .winepulse +%patch1000 -p1 -b .officemsi autoreconf @@ -1414,6 +1417,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Thu Apr 07 2011 Andreas Bierfert +- 1.3.17-3 +- add fix for office installation (upstream #26650) + * Tue Apr 05 2011 Andreas Bierfert - 1.3.17-2 - cleanup spec file From 6fd1866bb8e0898fcd154bc25dbab453ec9f0018 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 16 Apr 2011 12:21:49 +0200 Subject: [PATCH 193/715] 1.3.18-1 version upgrade --- .gitignore | 1 + ...operty_followed_by_non-empty_property.diff | 52 ------------------- sources | 2 +- wine.spec | 14 +++-- 4 files changed, 11 insertions(+), 58 deletions(-) delete mode 100644 msi_fix_empty_property_followed_by_non-empty_property.diff diff --git a/.gitignore b/.gitignore index 4eca742..a3e7d41 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ /wine-1.3.15.tar.bz2 /wine-1.3.16.tar.bz2 /wine-1.3.17.tar.bz2 +/wine-1.3.18.tar.bz2 diff --git a/msi_fix_empty_property_followed_by_non-empty_property.diff b/msi_fix_empty_property_followed_by_non-empty_property.diff deleted file mode 100644 index a4760c4..0000000 --- a/msi_fix_empty_property_followed_by_non-empty_property.diff +++ /dev/null @@ -1,52 +0,0 @@ -commit c23d222e78727bbcb9ed2926c328aceb0d8a89e1 -Author: Hans Leidekker -Date: Fri Apr 1 17:01:55 2011 +0200 - - msi: Fix parsing of empty an property followed by a non-empty property. - -diff --git a/dlls/msi/action.c b/dlls/msi/action.c -index 79d12d6..366d897 100644 ---- a/dlls/msi/action.c -+++ b/dlls/msi/action.c -@@ -231,6 +231,7 @@ static int parse_prop( const WCHAR *str, WCHAR *value, int *quotes ) - if (!count) goto done; - in_quotes = 1; - ignore = 1; -+ len++; - break; - case '"': - state = state_quote; -@@ -258,6 +259,7 @@ static int parse_prop( const WCHAR *str, WCHAR *value, int *quotes ) - state = state_whitespace; - if (!count) goto done; - in_quotes = 1; -+ len++; - break; - default: - if (!count) in_quotes = 0; -@@ -276,8 +278,9 @@ static int parse_prop( const WCHAR *str, WCHAR *value, int *quotes ) - break; - case ' ': - state = state_whitespace; -- if (!count) goto done; -+ if (!count || (count > 1 && !len)) goto done; - in_quotes = 1; -+ len++; - break; - default: - state = state_token; -diff --git a/dlls/msi/tests/install.c b/dlls/msi/tests/install.c -index 1f5ab9c..d54f923 100644 ---- a/dlls/msi/tests/install.c -+++ b/dlls/msi/tests/install.c -@@ -6346,6 +6346,10 @@ static void test_command_line_parsing(void) - r = MsiInstallProductA(msifile, cmd); - ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r); - -+ cmd = "Q=\"\" P=\"one\""; -+ r = MsiInstallProductA(msifile, cmd); -+ ok(r == ERROR_INSTALL_FAILURE, "Expected ERROR_INSTALL_FAILURE, got %u\n", r); -+ - DeleteFile(msifile); - RemoveDirectory("msitest"); - } diff --git a/sources b/sources index 371568b..c5c66f3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -f8d9d1d8cdab27ad311fa3743a1a0bc5 wine-1.3.17.tar.bz2 +17fb6334af12af17feb843f68272b070 wine-1.3.18.tar.bz2 diff --git a/wine.spec b/wine.spec index 99819d1..233ce5c 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %global no64bit 0 Name: wine -Version: 1.3.17 -Release: 3%{?dist} +Version: 1.3.18 +Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -49,8 +49,6 @@ Source501: wine-tahoma.conf # and provide a readme Source502: wine-README-tahoma -Patch1000: msi_fix_empty_property_followed_by_non-empty_property.diff - Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) %if !%{?no64bit} @@ -457,7 +455,6 @@ This package adds an openal driver for wine. %patch400 -p1 -b .winepulse %patch401 -p1 -b .winepulse %patch402 -p1 -b .winepulse -%patch1000 -p1 -b .officemsi autoreconf @@ -1013,6 +1010,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/msvcirt.dll.so %{_libdir}/wine/msvcp80.dll.so %{_libdir}/wine/msvcp90.dll.so +%{_libdir}/wine/msvcp100.dll.so %{_libdir}/wine/msvcr70.dll.so %{_libdir}/wine/msvcr71.dll.so %{_libdir}/wine/msvcr80.dll.so @@ -1076,6 +1074,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/rtutils.dll.so %{_libdir}/wine/samlib.dll.so %{_libdir}/wine/sc.exe.so +%{_libdir}/wine/scarddlg.dll.so %{_libdir}/wine/sccbase.dll.so %{_libdir}/wine/schannel.dll.so %{_libdir}/wine/secur32.dll.so @@ -1113,6 +1112,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/usp10.dll.so %{_libdir}/wine/uxtheme.dll.so %{_libdir}/wine/userenv.dll.so +%{_libdir}/wine/vcomp.dll.so %{_libdir}/wine/vdmdbg.dll.so %{_libdir}/wine/version.dll.so %{_libdir}/wine/wbemprox.dll.so @@ -1417,6 +1417,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sat Apr 16 2011 Andreas Bierfert +- 1.3.18-1 +- version upgrade + * Thu Apr 07 2011 Andreas Bierfert - 1.3.17-3 - add fix for office installation (upstream #26650) From cf37a39db511d8bde5cd0db053b48f74f7bb0439 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Thu, 5 May 2011 21:49:38 +0200 Subject: [PATCH 194/715] 1.3.19-1 version upgrade (#701003) remove wine-oss --- sources | 1 - wine.spec | 28 ++++++++----------- ...tch => winepulse-configure.ac-1.3.19.patch | 20 +++++++------ 3 files changed, 22 insertions(+), 27 deletions(-) rename winepulse-configure.ac-1.3.16.patch => winepulse-configure.ac-1.3.19.patch (80%) diff --git a/sources b/sources index c5c66f3..e69de29 100644 --- a/sources +++ b/sources @@ -1 +0,0 @@ -17fb6334af12af17feb843f68272b070 wine-1.3.18.tar.bz2 diff --git a/wine.spec b/wine.spec index 233ce5c..c9abea9 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ %global no64bit 0 Name: wine -Version: 1.3.18 +Version: 1.3.19 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -37,7 +37,7 @@ Patch200: wine-imagemagick-6.5.patch # explain how to use wine with pulseaudio # see http://bugs.winehq.org/show_bug.cgi?id=10495 # and http://art.ified.ca/?page_id=40 -Patch400: winepulse-configure.ac-1.3.16.patch +Patch400: http://art.ified.ca/downloads/winepulse/winepulse-configure.ac-1.3.19.patch Patch401: http://art.ified.ca/downloads/winepulse/winepulse-0.39.patch Patch402: http://art.ified.ca/downloads/winepulse/winepulse-winecfg-1.3.11.patch Source402: wine-README-fedora-pulseaudio @@ -175,6 +175,9 @@ Obsoletes: wine-arts < 0.9.34 Provides: wine-arts = %{version}-%{release} Obsoletes: wine-tools <= 1.1.27 Provides: wine-tools = %{version}-%{release} +# removed as of 1.3.19 (we don't support oss4) +Obsoletes: wine-oss <= 1.3.18 +Provides: wine-oss = %{version}-%{release} # removed as of 1.3.16 Obsoletes: wine-nas <= 1.3.15 Provides: wine-nas = %{version}-%{release} @@ -430,14 +433,6 @@ Requires: wine-core = %{version}-%{release} %description alsa This package adds an alsa driver for wine. -%package oss -Summary: OSS support for wine -Group: System Environment/Libraries -Requires: wine-core = %{version}-%{release} - -%description oss -This package adds an oss driver for wine. - %if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 %package openal Summary: Openal support for wine @@ -753,9 +748,6 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %post alsa -p /sbin/ldconfig %postun alsa -p /sbin/ldconfig -%post oss -p /sbin/ldconfig -%postun oss -p /sbin/ldconfig - %if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 %post openal -p /sbin/ldconfig %postun openal -p /sbin/ldconfig @@ -1008,6 +1000,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/msrle32.dll.so %{_libdir}/wine/mstask.dll.so %{_libdir}/wine/msvcirt.dll.so +%{_libdir}/wine/msvcp60.dll.so %{_libdir}/wine/msvcp80.dll.so %{_libdir}/wine/msvcp90.dll.so %{_libdir}/wine/msvcp100.dll.so @@ -1406,10 +1399,6 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %defattr(-,root,root,-) %{_libdir}/wine/winealsa.drv.so -%files oss -%defattr(-,root,root,-) -%{_libdir}/wine/wineoss.drv.so - %if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 %files openal %defattr(-,root,root,-) @@ -1417,6 +1406,11 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sat Apr 30 2011 Andreas Bierfert +- 1.3.19-1 +- version upgrade (#701003) +- remove wine-oss + * Sat Apr 16 2011 Andreas Bierfert - 1.3.18-1 - version upgrade diff --git a/winepulse-configure.ac-1.3.16.patch b/winepulse-configure.ac-1.3.19.patch similarity index 80% rename from winepulse-configure.ac-1.3.16.patch rename to winepulse-configure.ac-1.3.19.patch index b44dd57..edf0777 100644 --- a/winepulse-configure.ac-1.3.16.patch +++ b/winepulse-configure.ac-1.3.19.patch @@ -1,6 +1,8 @@ ---- wine-1.3.16/configure.ac.winepulse 2011-03-18 20:48:03.000000000 +0100 -+++ wine-1.3.16/configure.ac 2011-03-18 21:28:27.000000000 +0100 -@@ -79,6 +79,7 @@ +diff --git a/configure.ac b/configure.ac +index 2069561..ab3c983 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -79,6 +79,7 @@ AC_ARG_WITH(png, AS_HELP_STRING([--without-png],[do not use PNG]), [if test "x$withval" = "xno"; then ac_cv_header_png_h=no; fi]) AC_ARG_WITH(pthread, AS_HELP_STRING([--without-pthread],[do not use the pthread library]), [if test "x$withval" = "xno"; then ac_cv_header_pthread_h=no; fi]) @@ -8,7 +10,7 @@ AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)])) AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF]), [if test "x$withval" = "xno"; then ac_cv_header_tiffio_h=no; fi]) -@@ -1476,6 +1477,30 @@ +@@ -1484,6 +1485,30 @@ then CFLAGS="$save_CFLAGS" fi @@ -39,16 +41,16 @@ dnl **** Check for gstreamer **** if test "x$with_gstreamer" != "xno" then -@@ -1672,7 +1697,7 @@ +@@ -1695,7 +1720,7 @@ test "x$ac_cv_type_oss_sysinfo" = xyes || enable_wineoss_drv=${enable_wineoss_dr test "$ac_cv_header_linux_joystick_h" = "yes" || enable_winejoystick_drv=${enable_winejoystick_drv:-no} dnl **** Check for any sound system **** -if test "x$ALSALIBS$COREAUDIO$NASLIBS$ESDLIBS$ac_cv_lib_soname_jack" = "x" -a \ +if test "x$ALSALIBS$COREAUDIO$NASLIBS$ESDLIBS$PULSELIBS$ac_cv_lib_soname_jack" = "x" -a \ - "$ac_cv_header_sys_soundcard_h" != "yes" -a \ - "$ac_cv_header_machine_soundcard_h" != "yes" -a \ - "$ac_cv_header_soundcard_h" != "yes" -a \ -@@ -2849,6 +2874,7 @@ + "x$ac_cv_type_oss_sysinfo" != xyes -a \ + "x$with_alsa$with_coreaudio$with_nas$with_esd$with_jack$with_oss" != xnononononono + then +@@ -2877,6 +2902,7 @@ WINE_CONFIG_DLL(winenas.drv) WINE_CONFIG_DLL(wineoss.drv) WINE_CONFIG_DLL(wineps.drv) WINE_CONFIG_DLL(wineps16.drv16,enable_win16) From f756209a8d76fd4e588a97b10ab3c526220185c0 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Thu, 5 May 2011 22:04:16 +0200 Subject: [PATCH 195/715] .19 sources --- .gitignore | 1 + sources | 1 + 2 files changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index a3e7d41..9b6f4ea 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ /wine-1.3.16.tar.bz2 /wine-1.3.17.tar.bz2 /wine-1.3.18.tar.bz2 +/wine-1.3.19.tar.bz2 diff --git a/sources b/sources index e69de29..aa1c8e9 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +6975269be6e86d7d9da519ed6f3b40a4 wine-1.3.19.tar.bz2 From 82386f43bfc54e7a9c5bf0adb19ed84668e52f38 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Thu, 5 May 2011 22:14:37 +0200 Subject: [PATCH 196/715] disable hal (>=f16) --- wine.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index c9abea9..1872fe8 100644 --- a/wine.spec +++ b/wine.spec @@ -98,7 +98,10 @@ BuildRequires: cups-devel BuildRequires: libXmu-devel BuildRequires: libXi-devel BuildRequires: libXcursor-devel -BuildRequires: dbus-devel hal-devel +BuildRequires: dbus-devel +%if !0%{?fedora} >= 16 +BuildRequires: hal-devel +%endif BuildRequires: gnutls-devel BuildRequires: pulseaudio-libs-devel BuildRequires: gsm-devel @@ -1410,6 +1413,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : - 1.3.19-1 - version upgrade (#701003) - remove wine-oss +- disable hal (>=f16) * Sat Apr 16 2011 Andreas Bierfert - 1.3.18-1 From 268c264859dd5320360960c6de939d12b192f00a Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 15 May 2011 15:52:18 +0200 Subject: [PATCH 197/715] 1.3.20-1 version upgrade --- .gitignore | 1 + sources | 2 +- wine.spec | 10 ++++++++-- ...3.19.patch => winepulse-configure.ac-1.3.20.patch | 12 ++++++------ 4 files changed, 16 insertions(+), 9 deletions(-) rename winepulse-configure.ac-1.3.19.patch => winepulse-configure.ac-1.3.20.patch (87%) diff --git a/.gitignore b/.gitignore index 9b6f4ea..5f692b6 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ /wine-1.3.17.tar.bz2 /wine-1.3.18.tar.bz2 /wine-1.3.19.tar.bz2 +/wine-1.3.20.tar.bz2 diff --git a/sources b/sources index aa1c8e9..b377211 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -6975269be6e86d7d9da519ed6f3b40a4 wine-1.3.19.tar.bz2 +2d9fe8755172a21ddc453d720a497ad9 wine-1.3.20.tar.bz2 diff --git a/wine.spec b/wine.spec index c9abea9..78b0fa9 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ %global no64bit 0 Name: wine -Version: 1.3.19 +Version: 1.3.20 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -37,7 +37,7 @@ Patch200: wine-imagemagick-6.5.patch # explain how to use wine with pulseaudio # see http://bugs.winehq.org/show_bug.cgi?id=10495 # and http://art.ified.ca/?page_id=40 -Patch400: http://art.ified.ca/downloads/winepulse/winepulse-configure.ac-1.3.19.patch +Patch400: http://art.ified.ca/downloads/winepulse/winepulse-configure.ac-1.3.20.patch Patch401: http://art.ified.ca/downloads/winepulse/winepulse-0.39.patch Patch402: http://art.ified.ca/downloads/winepulse/winepulse-winecfg-1.3.11.patch Source402: wine-README-fedora-pulseaudio @@ -1001,6 +1001,8 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/mstask.dll.so %{_libdir}/wine/msvcirt.dll.so %{_libdir}/wine/msvcp60.dll.so +%{_libdir}/wine/msvcp70.dll.so +%{_libdir}/wine/msvcp71.dll.so %{_libdir}/wine/msvcp80.dll.so %{_libdir}/wine/msvcp90.dll.so %{_libdir}/wine/msvcp100.dll.so @@ -1406,6 +1408,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sun May 15 2011 Andreas Bierfert +- 1.3.20-1 +- version upgrade + * Sat Apr 30 2011 Andreas Bierfert - 1.3.19-1 - version upgrade (#701003) diff --git a/winepulse-configure.ac-1.3.19.patch b/winepulse-configure.ac-1.3.20.patch similarity index 87% rename from winepulse-configure.ac-1.3.19.patch rename to winepulse-configure.ac-1.3.20.patch index edf0777..874c248 100644 --- a/winepulse-configure.ac-1.3.19.patch +++ b/winepulse-configure.ac-1.3.20.patch @@ -1,8 +1,8 @@ diff --git a/configure.ac b/configure.ac -index 2069561..ab3c983 100644 +index d68ae2a..f23f9ed 100644 --- a/configure.ac +++ b/configure.ac -@@ -79,6 +79,7 @@ AC_ARG_WITH(png, AS_HELP_STRING([--without-png],[do not use PNG]), +@@ -78,6 +78,7 @@ AC_ARG_WITH(png, AS_HELP_STRING([--without-png],[do not use PNG]), [if test "x$withval" = "xno"; then ac_cv_header_png_h=no; fi]) AC_ARG_WITH(pthread, AS_HELP_STRING([--without-pthread],[do not use the pthread library]), [if test "x$withval" = "xno"; then ac_cv_header_pthread_h=no; fi]) @@ -10,7 +10,7 @@ index 2069561..ab3c983 100644 AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)])) AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF]), [if test "x$withval" = "xno"; then ac_cv_header_tiffio_h=no; fi]) -@@ -1484,6 +1485,30 @@ then +@@ -1481,6 +1482,30 @@ then CFLAGS="$save_CFLAGS" fi @@ -41,16 +41,16 @@ index 2069561..ab3c983 100644 dnl **** Check for gstreamer **** if test "x$with_gstreamer" != "xno" then -@@ -1695,7 +1720,7 @@ test "x$ac_cv_type_oss_sysinfo" = xyes || enable_wineoss_drv=${enable_wineoss_dr +@@ -1695,7 +1720,7 @@ test "x$ac_cv_member_oss_sysinfo_numaudioengines" = xyes || enable_wineoss_drv=$ test "$ac_cv_header_linux_joystick_h" = "yes" || enable_winejoystick_drv=${enable_winejoystick_drv:-no} dnl **** Check for any sound system **** -if test "x$ALSALIBS$COREAUDIO$NASLIBS$ESDLIBS$ac_cv_lib_soname_jack" = "x" -a \ +if test "x$ALSALIBS$COREAUDIO$NASLIBS$ESDLIBS$PULSELIBS$ac_cv_lib_soname_jack" = "x" -a \ - "x$ac_cv_type_oss_sysinfo" != xyes -a \ + "x$ac_cv_member_oss_sysinfo_numaudioengines" != xyes -a \ "x$with_alsa$with_coreaudio$with_nas$with_esd$with_jack$with_oss" != xnononononono then -@@ -2877,6 +2902,7 @@ WINE_CONFIG_DLL(winenas.drv) +@@ -2882,6 +2907,7 @@ WINE_CONFIG_DLL(winenas.drv) WINE_CONFIG_DLL(wineoss.drv) WINE_CONFIG_DLL(wineps.drv) WINE_CONFIG_DLL(wineps16.drv16,enable_win16) From 78f0e0832cb973131c8a3c0c38d7fb363a710577 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 28 May 2011 12:11:31 +0200 Subject: [PATCH 198/715] 1.3.21-1 version upgrade --- .gitignore | 1 + sources | 2 +- wine.spec | 9 ++++++++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 5f692b6..2b9de79 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,4 @@ /wine-1.3.18.tar.bz2 /wine-1.3.19.tar.bz2 /wine-1.3.20.tar.bz2 +/wine-1.3.21.tar.bz2 diff --git a/sources b/sources index b377211..d8af114 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -2d9fe8755172a21ddc453d720a497ad9 wine-1.3.20.tar.bz2 +dfcefe48a9aae82f7f1aa4d2c6617961 wine-1.3.21.tar.bz2 diff --git a/wine.spec b/wine.spec index 78b0fa9..472288c 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ %global no64bit 0 Name: wine -Version: 1.3.20 +Version: 1.3.21 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -816,6 +816,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/cacls.exe.so %{_libdir}/wine/expand.exe.so %{_libdir}/wine/extrac32.exe.so +%{_libdir}/wine/hostname.exe.so %{_libdir}/wine/ipconfig.exe.so %{_libdir}/wine/winhlp32.exe.so %{_libdir}/wine/mshta.exe.so @@ -1059,6 +1060,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/query.dll.so %{_libdir}/wine/rasapi32.dll.so %{_libdir}/wine/rasdlg.dll.so +%{_libdir}/wine/regapi.dll.so %{_libdir}/wine/resutils.dll.so %{_libdir}/wine/riched20.dll.so %{_libdir}/wine/riched32.dll.so @@ -1124,6 +1126,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/winmm.dll.so %{_libdir}/wine/winnls32.dll.so %{_libdir}/wine/winspool.drv.so +%{_libdir}/wine/winsta.dll.so %{_libdir}/wine/wmi.dll.so %{_libdir}/wine/wmic.exe.so %{_libdir}/wine/wmiutils.dll.so @@ -1408,6 +1411,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sat May 28 2011 Andreas Bierfert +- 1.3.21-1 +- version upgrade + * Sun May 15 2011 Andreas Bierfert - 1.3.20-1 - version upgrade From febd7d1d6c2f38cf57ce840e34c5b56862ee56cb Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 12 Jun 2011 12:47:15 +0200 Subject: [PATCH 199/715] 1.3.22-1 version upgrade --- .gitignore | 1 + sources | 2 +- wine.spec | 7 ++++++- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 2b9de79..0357975 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ /wine-1.3.19.tar.bz2 /wine-1.3.20.tar.bz2 /wine-1.3.21.tar.bz2 +/wine-1.3.22.tar.bz2 diff --git a/sources b/sources index d8af114..9b39fe3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -dfcefe48a9aae82f7f1aa4d2c6617961 wine-1.3.21.tar.bz2 +46f313013644d31ad37b8fc5c2c16467 wine-1.3.22.tar.bz2 diff --git a/wine.spec b/wine.spec index 8732fd2..51fa22e 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ %global no64bit 0 Name: wine -Version: 1.3.21 +Version: 1.3.22 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -1260,6 +1260,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %lang(fr) %{_mandir}/fr.UTF-8/man1/wineserver.1* %lang(de) %{_mandir}/de.UTF-8/man1/wine.1* %lang(de) %{_mandir}/de.UTF-8/man1/wineserver.1* +%lang(pl) %{_mandir}/pl.UTF-8/man1/wine.1* %{_datadir}/wine/generic.ppd %{_datadir}/wine/wine.inf %{_datadir}/wine/l_intl.nls @@ -1414,6 +1415,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sun Jun 12 2011 Andreas Bierfert +- 1.3.22-1 +- version upgrade + * Sat May 28 2011 Andreas Bierfert - 1.3.21-1 - version upgrade From 160b0f9ccc1145c0619ec2aa8ca51cc6b2217d8d Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Tue, 5 Jul 2011 11:26:41 +0200 Subject: [PATCH 200/715] 1.3.23-1 version upgrade winepulse upgrade (0.40) fix gcc optimization problem (rhbz#710352, winehq#27375) --- .gitignore | 1 + sources | 2 +- wine-gcc46mshtml.patch | 15 ++ wine.spec | 24 +- winepulse-0.39.patch => winepulse-0.40.patch | 230 ++++++++++++------ ...tch => winepulse-configure.ac-1.3.22.patch | 10 +- 6 files changed, 202 insertions(+), 80 deletions(-) create mode 100644 wine-gcc46mshtml.patch rename winepulse-0.39.patch => winepulse-0.40.patch (95%) rename winepulse-configure.ac-1.3.20.patch => winepulse-configure.ac-1.3.22.patch (92%) diff --git a/.gitignore b/.gitignore index 0357975..bd98364 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,4 @@ /wine-1.3.20.tar.bz2 /wine-1.3.21.tar.bz2 /wine-1.3.22.tar.bz2 +/wine-1.3.23.tar.bz2 diff --git a/sources b/sources index 9b39fe3..35899b0 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -46f313013644d31ad37b8fc5c2c16467 wine-1.3.22.tar.bz2 +71f05bf37c25648f8dbc793dda3da45c wine-1.3.23.tar.bz2 diff --git a/wine-gcc46mshtml.patch b/wine-gcc46mshtml.patch new file mode 100644 index 0000000..a9d21b4 --- /dev/null +++ b/wine-gcc46mshtml.patch @@ -0,0 +1,15 @@ +diff --git a/dlls/mshtml/nsiface.idl b/dlls/mshtml/nsiface.idl +index 8c11032..0f09b80 100644 +--- a/dlls/mshtml/nsiface.idl ++++ b/dlls/mshtml/nsiface.idl +@@ -3016,8 +3016,8 @@ interface nsIParser : nsISupports + void Reset(); + PRBool CanInterrupt(); + PRBool IsInsertionPointDefined(); +- void BeginEvaluatingParserInsertedScript(); +- void EndEvaluatingParserInsertedScript(); ++ void __cdecl BeginEvaluatingParserInsertedScript(); ++ void __cdecl EndEvaluatingParserInsertedScript(); + void MarkAsNotScriptCreated(); + PRBool IsScriptCreated(); + } diff --git a/wine.spec b/wine.spec index 51fa22e..e3042bf 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ %global no64bit 0 Name: wine -Version: 1.3.22 +Version: 1.3.23 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -25,6 +25,10 @@ Source107: wine-wineboot.desktop Source108: wine-wordpad.desktop Source109: wine-oleview.desktop +# wine bugs +# 27375 gcc optimization problem +Patch100: wine-gcc46mshtml.patch + # desktop dir Source200: wine.menu Source201: wine.directory @@ -37,8 +41,8 @@ Patch200: wine-imagemagick-6.5.patch # explain how to use wine with pulseaudio # see http://bugs.winehq.org/show_bug.cgi?id=10495 # and http://art.ified.ca/?page_id=40 -Patch400: http://art.ified.ca/downloads/winepulse/winepulse-configure.ac-1.3.20.patch -Patch401: http://art.ified.ca/downloads/winepulse/winepulse-0.39.patch +Patch400: http://art.ified.ca/downloads/winepulse/winepulse-configure.ac-1.3.22.patch +Patch401: http://art.ified.ca/downloads/winepulse/winepulse-0.40.patch Patch402: http://art.ified.ca/downloads/winepulse/winepulse-winecfg-1.3.11.patch Source402: wine-README-fedora-pulseaudio @@ -449,6 +453,7 @@ This package adds an openal driver for wine. %prep %setup -q +%patch100 -p1 -b .gcc46 %patch200 -b .imagemagick %patch400 -p1 -b .winepulse %patch401 -p1 -b .winepulse @@ -460,7 +465,9 @@ autoreconf # disable fortify as it breaks wine # http://bugs.winehq.org/show_bug.cgi?id=24606 # http://bugs.winehq.org/show_bug.cgi?id=25073 + export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno-error" + %configure \ --sysconfdir=%{_sysconfdir}/wine \ --x-includes=%{_includedir} --x-libraries=%{_libdir} \ @@ -1112,6 +1119,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/usp10.dll.so %{_libdir}/wine/uxtheme.dll.so %{_libdir}/wine/userenv.dll.so +%{_libdir}/wine/vbscript.dll.so %{_libdir}/wine/vcomp.dll.so %{_libdir}/wine/vdmdbg.dll.so %{_libdir}/wine/version.dll.so @@ -1415,6 +1423,16 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sun Jun 26 2011 Andreas Bierfert +- 1.3.23-1 +- version upgrade +- winepulse upgrade (0.40) +- fix gcc optimization problem (rhbz#710352, winehq#27375) + +* Tue Jun 21 2011 Andreas Bierfert +- 1.3.22-2 +- workaround gcc optimization problem (rhbz#710352) + * Sun Jun 12 2011 Andreas Bierfert - 1.3.22-1 - version upgrade diff --git a/winepulse-0.39.patch b/winepulse-0.40.patch similarity index 95% rename from winepulse-0.39.patch rename to winepulse-0.40.patch index 9a4b773..1831943 100644 --- a/winepulse-0.39.patch +++ b/winepulse-0.40.patch @@ -16,10 +16,10 @@ index 0000000..a6fdbf8 +@MAKE_DLL_RULES@ diff --git a/dlls/winepulse.drv/pulse.c b/dlls/winepulse.drv/pulse.c new file mode 100644 -index 0000000..9dd1f80 +index 0000000..04676a6 --- /dev/null +++ b/dlls/winepulse.drv/pulse.c -@@ -0,0 +1,805 @@ +@@ -0,0 +1,880 @@ +/* + * Wine Driver for PulseAudio + * http://pulseaudio.org/ @@ -263,6 +263,81 @@ index 0000000..9dd1f80 +} + +/************************************************************************** ++ * Win32 threaded mainloop implementation ++ *************************************************************************/ ++ ++static int poll_func(struct pollfd *ufds, unsigned long nfds, int timeout, void *userdata) { ++ int r; ++ ++ PULSE_MainloopUnlock(); ++ r = poll(ufds, nfds, timeout); ++ PULSE_MainloopLock(); ++ ++ return r; ++} ++ ++static DWORD CALLBACK PULSE_Mainloop(LPVOID lpParam) { ++ TRACE("Mainloop thread started\n"); ++ ++ pa_mainloop_set_poll_func(PULSE_ml, poll_func, NULL); ++ ++ PULSE_MainloopLock(); ++ pa_mainloop_run(PULSE_ml, NULL); ++ PULSE_MainloopUnlock(); ++ ++ return 0; ++} ++ ++void PULSE_MainloopStart(void) { ++ TRACE("Mainloop starting\n"); ++ ++ PULSE_ml_hEvent = CreateEventW(NULL, FALSE, FALSE, NULL); ++ PULSE_ml_hMutex = CreateMutexW(NULL, FALSE, NULL); ++ PULSE_ml_hThread = CreateThread(NULL, 0, PULSE_Mainloop, NULL, 0, NULL); ++ ++ TRACE("Mainloop started\n"); ++} ++ ++void PULSE_MainloopStop(void) { ++ TRACE("Mainloop stopping\n"); ++ ++ PULSE_MainloopLock(); ++ pa_mainloop_quit(PULSE_ml, 0); ++ PULSE_MainloopUnlock(); ++ ++ WaitForSingleObject(PULSE_ml_hThread, INFINITE); ++ CloseHandle(PULSE_ml_hThread); ++ CloseHandle(PULSE_ml_hEvent); ++ CloseHandle(PULSE_ml_hMutex); ++ ++ TRACE("Mainloop stopped\n"); ++} ++ ++void PULSE_MainloopLock(void) { ++ DWORD res = WaitForSingleObject(PULSE_ml_hMutex, INFINITE); ++ if (res != WAIT_OBJECT_0) ++ ERR("PULSE_MainloopLock mutex acquire failed: 0x%x\n", res); ++} ++ ++void PULSE_MainloopUnlock(void) { ++ if (!ReleaseMutex(PULSE_ml_hMutex)) ++ ERR("PULSE_MainloopUnlock mutex release failed\n"); ++} ++ ++void PULSE_MainloopWait(void) { ++ DWORD res = SignalObjectAndWait(PULSE_ml_hMutex, PULSE_ml_hEvent, INFINITE, FALSE); ++ if (res != WAIT_OBJECT_0) ++ ERR("PULSE_MainloopWait failed: 0x%x\n", res); ++ ++ PULSE_MainloopLock(); ++} ++ ++void PULSE_MainloopSignal(void) { ++ if (!PulseEvent(PULSE_ml_hEvent)) ++ ERR("PULSE_MainloopSignal failed\n"); ++} ++ ++/************************************************************************** + * Utility Functions + *************************************************************************/ + @@ -403,7 +478,7 @@ index 0000000..9dd1f80 + for (;;) { + if (pa_operation_get_state(o) != PA_OPERATION_RUNNING) + break; -+ pa_threaded_mainloop_wait(PULSE_ml); ++ PULSE_MainloopWait(); + } + pa_operation_unref(o); +} @@ -460,7 +535,7 @@ index 0000000..9dd1f80 + + TRACE("Underrun occurred.\n"); + -+ if (wwo->hThread != INVALID_HANDLE_VALUE && wwo->msgRing.ring_buffer_size > 0); ++ if (wwo->hThread != INVALID_HANDLE_VALUE && wwo->msgRing.ring_buffer_size > 0) + PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_XRUN, 0, FALSE); +} + @@ -500,7 +575,7 @@ index 0000000..9dd1f80 + case PA_STREAM_CREATING: + return; + } -+ pa_threaded_mainloop_signal(PULSE_ml, 0); ++ PULSE_MainloopSignal(); +} + +/************************************************************************** @@ -510,7 +585,7 @@ index 0000000..9dd1f80 + if (!success) + WARN("Stream %p operation failed: %s\n", userdata, pa_strerror(pa_context_errno(PULSE_context))); + -+ pa_threaded_mainloop_signal(PULSE_ml, 0); ++ PULSE_MainloopSignal(); +} + +/************************************************************************** @@ -518,7 +593,7 @@ index 0000000..9dd1f80 + */ +void PULSE_ContextSuccessCallback(pa_context *c, int success, void *userdata) { + if (!success) ERR("Context operation failed: %s\n", pa_strerror(pa_context_errno(c))); -+ pa_threaded_mainloop_signal(PULSE_ml, 0); ++ PULSE_MainloopSignal(); +} + +/************************************************************************** @@ -540,12 +615,12 @@ index 0000000..9dd1f80 + + case PA_CONTEXT_READY: + case PA_CONTEXT_TERMINATED: -+ pa_threaded_mainloop_signal(PULSE_ml, 0); ++ PULSE_MainloopSignal(); + break; + + case PA_CONTEXT_FAILED: + ERR("Context failed: %s\n", pa_strerror(pa_context_errno(c))); -+ pa_threaded_mainloop_signal(PULSE_ml, 0); ++ PULSE_MainloopSignal(); + break; + } +} @@ -658,7 +733,7 @@ index 0000000..9dd1f80 + if (!eol && i) + PULSE_AllocateWaveinDevice(i->name, i->name, i->description, &i->volume); + -+ pa_threaded_mainloop_signal(PULSE_ml, 0); ++ PULSE_MainloopSignal(); +} + +/************************************************************************** @@ -669,14 +744,14 @@ index 0000000..9dd1f80 + if (!eol && i) + PULSE_AllocateWaveoutDevice(i->name, i->name, i->description, &i->volume); + -+ pa_threaded_mainloop_signal(PULSE_ml, 0); ++ PULSE_MainloopSignal(); +} + +/************************************************************************** + * PULSE_ContextNotifyCallback [internal] + */ +static void PULSE_ContextNotifyCallback(pa_context *c, void *userdata) { -+ pa_threaded_mainloop_signal(PULSE_ml, 0); ++ PULSE_MainloopSignal(); +} + +/************************************************************************** @@ -690,7 +765,7 @@ index 0000000..9dd1f80 + TRACE("()\n"); + if (!PULSE_ml) return DRV_FAILURE; + -+ pa_threaded_mainloop_lock(PULSE_ml); ++ PULSE_MainloopLock(); + /* device_name is allocated with pa_xstrdup, free with pa_xfree */ + for (x = 0; x < PULSE_WodNumDevs; x++) pa_xfree(WOutDev[x].device_name); + for (x = 0; x < PULSE_WidNumDevs; x++) pa_xfree(WInDev[x].device_name); @@ -703,9 +778,9 @@ index 0000000..9dd1f80 + PULSE_context = NULL; + } + -+ pa_threaded_mainloop_unlock(PULSE_ml); -+ pa_threaded_mainloop_stop(PULSE_ml); -+ pa_threaded_mainloop_free(PULSE_ml); ++ PULSE_MainloopUnlock(); ++ PULSE_MainloopStop(); ++ pa_mainloop_free(PULSE_ml); + PULSE_ml = NULL; + + return DRV_SUCCESS; @@ -730,7 +805,7 @@ index 0000000..9dd1f80 + PULSE_context = NULL; + PULSE_ml = NULL; + -+ if (!(PULSE_ml = pa_threaded_mainloop_new())) { ++ if (!(PULSE_ml = pa_mainloop_new())) { + ERR("Failed to create mainloop object."); + return DRV_FAILURE; + } @@ -750,14 +825,14 @@ index 0000000..9dd1f80 + + TRACE("App name is \"%s\"\n", app_name); + -+ pa_threaded_mainloop_start(PULSE_ml); -+ PULSE_context = pa_context_new(pa_threaded_mainloop_get_api(PULSE_ml), app_name); ++ PULSE_MainloopStart(); ++ PULSE_context = pa_context_new(pa_mainloop_get_api(PULSE_ml), app_name); + assert(PULSE_context); + pa_xfree(app_name); + + pa_context_set_state_callback(PULSE_context, PULSE_ContextStateCallback, NULL); + -+ pa_threaded_mainloop_lock(PULSE_ml); ++ PULSE_MainloopLock(); + + TRACE("libpulse protocol version: %u. API Version %u\n", pa_context_get_protocol_version(PULSE_context), PA_API_VERSION); + if (pa_context_connect(PULSE_context, NULL, 0, NULL) < 0) @@ -773,7 +848,7 @@ index 0000000..9dd1f80 + if (state == PA_CONTEXT_READY) + break; + -+ pa_threaded_mainloop_wait(PULSE_ml); ++ PULSE_MainloopWait(); + } + + TRACE("Connected to server %s with protocol version: %i.\n", @@ -789,12 +864,12 @@ index 0000000..9dd1f80 + PULSE_WaitForOperation(pa_context_get_source_info_list(PULSE_context, PULSE_SourceInfoCallback, &PULSE_WidNumDevs)); + TRACE("Found %u output and %u input device(s).\n", PULSE_WodNumDevs - 1, PULSE_WidNumDevs - 1); + -+ pa_threaded_mainloop_unlock(PULSE_ml); ++ PULSE_MainloopUnlock(); + + return DRV_SUCCESS; + +fail: -+ pa_threaded_mainloop_unlock(PULSE_ml); ++ PULSE_MainloopUnlock(); + /* Only warn, because if we failed wine may still choose the next driver */ + WARN("Failed to connect to server\n"); + return DRV_FAILURE; @@ -827,7 +902,7 @@ index 0000000..9dd1f80 +} diff --git a/dlls/winepulse.drv/wavein.c b/dlls/winepulse.drv/wavein.c new file mode 100644 -index 0000000..af721b9 +index 0000000..82bff06 --- /dev/null +++ b/dlls/winepulse.drv/wavein.c @@ -0,0 +1,589 @@ @@ -913,9 +988,9 @@ index 0000000..af721b9 + /* Get this value once and trust it. Note that the total available is made + * of one _or more_ fragments. These fragments will probably not align with + * the wavehdr buffer sizes. */ -+ pa_threaded_mainloop_lock(PULSE_ml); ++ PULSE_MainloopLock(); + bytes_avail = pa_stream_readable_size(wwi->stream); -+ pa_threaded_mainloop_unlock(PULSE_ml); ++ PULSE_MainloopUnlock(); + + if (bytes_avail == -1) { + ERR("pa_stream_readable_size() returned -1, record stream has failed.\n"); @@ -930,9 +1005,9 @@ index 0000000..af721b9 + size_t peek_avail; + + if (!wwi->buffer) { -+ pa_threaded_mainloop_lock(PULSE_ml); ++ PULSE_MainloopLock(); + pa_stream_peek(wwi->stream, &wwi->buffer, &wwi->buffer_length); -+ pa_threaded_mainloop_unlock(PULSE_ml); ++ PULSE_MainloopUnlock(); + wwi->buffer_read_offset = 0; + + if (!wwi->buffer || !wwi->buffer_length) { @@ -960,10 +1035,10 @@ index 0000000..af721b9 + } + + if (wwi->buffer_read_offset == wwi->buffer_length) { -+ pa_threaded_mainloop_lock(PULSE_ml); ++ PULSE_MainloopLock(); + pa_stream_drop(wwi->stream); + wwi->buffer = NULL; -+ pa_threaded_mainloop_unlock(PULSE_ml); ++ PULSE_MainloopUnlock(); + } + } /* for(bytes_avail && lpWaveHdr) */ + @@ -988,9 +1063,9 @@ index 0000000..af721b9 + + case WINE_WM_STARTING: + wwi->dwLastReset = wwi->timing_info->read_index; -+ pa_threaded_mainloop_lock(PULSE_ml); ++ PULSE_MainloopLock(); + PULSE_WaitForOperation(pa_stream_cork(wwi->stream, 0, PULSE_StreamSuccessCallback, NULL)); -+ pa_threaded_mainloop_unlock(PULSE_ml); ++ PULSE_MainloopUnlock(); + wwi->state = WINE_WS_PLAYING; + SetEvent(ev); + break; @@ -1009,13 +1084,13 @@ index 0000000..af721b9 + case WINE_WM_STOPPING: + if (wwi->state != WINE_WS_STOPPED) { + wwi->state = WINE_WS_STOPPED; -+ pa_threaded_mainloop_lock(PULSE_ml); ++ PULSE_MainloopLock(); + PULSE_WaitForOperation(pa_stream_cork(wwi->stream, 1, PULSE_StreamSuccessCallback, NULL)); + if (wwi->buffer) { + pa_stream_drop(wwi->stream); + wwi->buffer = NULL; + } -+ pa_threaded_mainloop_unlock(PULSE_ml); ++ PULSE_MainloopUnlock(); + + /* return only the current buffer to app */ + if ((lpWaveHdr = wwi->lpQueuePtr)) { @@ -1033,13 +1108,13 @@ index 0000000..af721b9 + case WINE_WM_RESETTING: + if (wwi->state != WINE_WS_STOPPED) { + wwi->state = WINE_WS_STOPPED; -+ pa_threaded_mainloop_lock(PULSE_ml); ++ PULSE_MainloopLock(); + PULSE_WaitForOperation(pa_stream_cork(wwi->stream, 1, PULSE_StreamSuccessCallback, NULL)); + if (wwi->buffer) { + pa_stream_drop(wwi->stream); + wwi->buffer = NULL; + } -+ pa_threaded_mainloop_unlock(PULSE_ml); ++ PULSE_MainloopUnlock(); + } + + /* return all the buffers to the app */ @@ -1149,7 +1224,7 @@ index 0000000..af721b9 + wwi->buffer_attr.maxlength = (uint32_t)-1; + wwi->buffer_attr.fragsize = pa_bytes_per_second(&wwi->sample_spec) / 100; + -+ pa_threaded_mainloop_lock(PULSE_ml); ++ PULSE_MainloopLock(); + TRACE("Asking to open %s for recording.\n", wdi->device_name); + pa_stream_connect_record(wwi->stream, wdi->device_name, &wwi->buffer_attr, + PA_STREAM_START_CORKED | @@ -1164,14 +1239,14 @@ index 0000000..af721b9 + sstate == PA_STREAM_FAILED || sstate == PA_STREAM_TERMINATED) { + ERR("Failed to connect context object: %s\n", pa_strerror(pa_context_errno(PULSE_context))); + ret = MMSYSERR_NODRIVER; -+ pa_threaded_mainloop_unlock(PULSE_ml); ++ PULSE_MainloopUnlock(); + goto exit; + } + + if (sstate == PA_STREAM_READY) + break; + -+ pa_threaded_mainloop_wait(PULSE_ml); ++ PULSE_MainloopWait(); + } + TRACE("(%p)->stream connected for recording.\n", wwi); + @@ -1179,7 +1254,7 @@ index 0000000..af721b9 + + wwi->timing_info = pa_stream_get_timing_info(wwi->stream); + assert(wwi->timing_info); -+ pa_threaded_mainloop_unlock(PULSE_ml); ++ PULSE_MainloopUnlock(); + + wwi->hStartUpEvent = CreateEventW(NULL, FALSE, FALSE, NULL); + wwi->hThread = CreateThread(NULL, 0, widRecorder, (LPVOID)wwi, 0, &(wwi->dwThreadID)); @@ -1236,11 +1311,11 @@ index 0000000..af721b9 + return WAVERR_STILLPLAYING; + } + -+ pa_threaded_mainloop_lock(PULSE_ml); ++ PULSE_MainloopLock(); + if (pa_stream_get_state(wwi->stream) == PA_STREAM_READY) + pa_stream_drop(wwi->stream); + pa_stream_disconnect(wwi->stream); -+ pa_threaded_mainloop_unlock(PULSE_ml); ++ PULSE_MainloopUnlock(); + + if (wwi->hThread != INVALID_HANDLE_VALUE) + PULSE_AddRingMessage(&wwi->msgRing, WINE_WM_CLOSING, 0, TRUE); @@ -1422,7 +1497,7 @@ index 0000000..af721b9 +#endif /* HAVE_PULSEAUDIO */ diff --git a/dlls/winepulse.drv/waveout.c b/dlls/winepulse.drv/waveout.c new file mode 100644 -index 0000000..99b7c18 +index 0000000..3f52c83 --- /dev/null +++ b/dlls/winepulse.drv/waveout.c @@ -0,0 +1,1029 @@ @@ -1508,7 +1583,7 @@ index 0000000..99b7c18 + if (!eol && i) { + for (wwo->volume.channels = 0; wwo->volume.channels != i->volume.channels; wwo->volume.channels++) + wwo->volume.values[wwo->volume.channels] = i->volume.values[wwo->volume.channels]; -+ pa_threaded_mainloop_signal(PULSE_ml, 0); ++ PULSE_MainloopSignal(); + } +} + @@ -1611,7 +1686,7 @@ index 0000000..99b7c18 + LPWAVEHDR lpWaveHdr; + + if (wwo->buffer_attr.tlength == -1) { -+ pa_threaded_mainloop_lock(PULSE_ml); ++ PULSE_MainloopLock(); + if (!wwo->timing_info->playing) { + + /* Calculate how large a buffer the application has made so far */ @@ -1631,7 +1706,7 @@ index 0000000..99b7c18 + TRACE("Triggering stream and hoping for the best\n"); + PULSE_WaitForOperation(pa_stream_trigger(wwo->stream, PULSE_StreamSuccessCallback, wwo)); + } -+ pa_threaded_mainloop_unlock(PULSE_ml); ++ PULSE_MainloopUnlock(); + } +} + @@ -1717,7 +1792,7 @@ index 0000000..99b7c18 + pa_stream_get_state(wwo->stream) != PA_STREAM_READY) + return; + -+ pa_threaded_mainloop_lock(PULSE_ml); ++ PULSE_MainloopLock(); + /* Feed from a partial wavehdr */ + if (wwo->lpPlayPtr && wwo->dwPartialOffset != 0) + wodPlayer_WriteMax(wwo, &space); @@ -1729,7 +1804,7 @@ index 0000000..99b7c18 + } while (wodPlayer_WriteMax(wwo, &space) && wwo->lpPlayPtr && space > 0); + } + -+ pa_threaded_mainloop_unlock(PULSE_ml); ++ PULSE_MainloopUnlock(); +} + +/************************************************************************** @@ -1760,7 +1835,7 @@ index 0000000..99b7c18 + return; + } + -+ pa_threaded_mainloop_lock(PULSE_ml); ++ PULSE_MainloopLock(); + + /* Flush the output buffer of written data*/ + PULSE_WaitForOperation(pa_stream_flush(wwo->stream, PULSE_StreamSuccessCallback, NULL)); @@ -1785,7 +1860,7 @@ index 0000000..99b7c18 + PULSE_ResetRingMessage(&wwo->msgRing); + LeaveCriticalSection(&wwo->msgRing.msg_crst); + -+ pa_threaded_mainloop_unlock(PULSE_ml); ++ PULSE_MainloopUnlock(); +} + +/************************************************************************** @@ -1801,12 +1876,12 @@ index 0000000..99b7c18 + + t = wwo->timing_info; + -+ pa_threaded_mainloop_lock(PULSE_ml); ++ PULSE_MainloopLock(); + + time = pa_bytes_to_usec(t->read_index, &wwo->sample_spec); + if (t->read_index_corrupt) { + WARN("Read index corrupt?!\n"); -+ pa_threaded_mainloop_unlock(PULSE_ml); ++ PULSE_MainloopUnlock(); + return time; + } + @@ -1824,7 +1899,7 @@ index 0000000..99b7c18 + /* No queued buffer shows an underrun, so we lie */ + if (!wwo->lpQueuePtr) time = temp; + -+ pa_threaded_mainloop_unlock(PULSE_ml); ++ PULSE_MainloopUnlock(); + + return time; +} @@ -1844,21 +1919,21 @@ index 0000000..99b7c18 + switch (msg) { + case WINE_WM_PAUSING: + wwo->state = WINE_WS_PAUSED; -+ pa_threaded_mainloop_lock(PULSE_ml); ++ PULSE_MainloopLock(); + PULSE_WaitForOperation(pa_stream_cork(wwo->stream, 1, PULSE_StreamSuccessCallback, wwo)); -+ pa_threaded_mainloop_unlock(PULSE_ml); ++ PULSE_MainloopUnlock(); + SetEvent(ev); + break; + + case WINE_WM_RESTARTING: + if (wwo->state == WINE_WS_PAUSED) { + wwo->state = WINE_WS_PLAYING; -+ pa_threaded_mainloop_lock(PULSE_ml); ++ PULSE_MainloopLock(); + PULSE_WaitForOperation(pa_stream_cork(wwo->stream, 0, PULSE_StreamSuccessCallback, wwo)); + /* If the serverside buffer was near full before pausing, we + * need to have space to write soon, so force playback start */ + PULSE_WaitForOperation(pa_stream_trigger(wwo->stream, PULSE_StreamSuccessCallback, wwo)); -+ pa_threaded_mainloop_unlock(PULSE_ml); ++ PULSE_MainloopUnlock(); + } + SetEvent(ev); + break; @@ -2042,7 +2117,7 @@ index 0000000..99b7c18 + + /* Try and connect */ + TRACE("Connecting stream for playback on %s.\n", wdo->device_name); -+ pa_threaded_mainloop_lock(PULSE_ml); ++ PULSE_MainloopLock(); + pa_stream_connect_playback(wwo->stream, wdo->device_name, &wwo->buffer_attr, PA_STREAM_AUTO_TIMING_UPDATE | PA_STREAM_ADJUST_LATENCY, NULL, NULL); + + /* Wait for connection */ @@ -2053,7 +2128,7 @@ index 0000000..99b7c18 + if (cstate == PA_CONTEXT_FAILED || cstate == PA_CONTEXT_TERMINATED || + sstate == PA_STREAM_FAILED || sstate == PA_STREAM_TERMINATED) { + ERR("Failed to connect stream context object: %s\n", pa_strerror(pa_context_errno(PULSE_context))); -+ pa_threaded_mainloop_unlock(PULSE_ml); ++ PULSE_MainloopUnlock(); + ret = MMSYSERR_NODRIVER; + goto exit; + } @@ -2061,7 +2136,7 @@ index 0000000..99b7c18 + if (sstate == PA_STREAM_READY) + break; + -+ pa_threaded_mainloop_wait(PULSE_ml); ++ PULSE_MainloopWait(); + } + TRACE("(%p)->stream connected for playback.\n", wwo); + @@ -2069,7 +2144,7 @@ index 0000000..99b7c18 + PULSE_WaitForOperation(pa_stream_update_timing_info(wwo->stream, PULSE_StreamSuccessCallback, wwo)); + wwo->timing_info = pa_stream_get_timing_info(wwo->stream); + assert(wwo->timing_info); -+ pa_threaded_mainloop_unlock(PULSE_ml); ++ PULSE_MainloopUnlock(); + + /* Create and start the wodPlayer() thread to manage playback */ + wwo->hStartUpEvent = CreateEventW(NULL, FALSE, FALSE, NULL); @@ -2126,10 +2201,10 @@ index 0000000..99b7c18 + return WAVERR_STILLPLAYING; + } + -+ pa_threaded_mainloop_lock(PULSE_ml); ++ PULSE_MainloopLock(); + PULSE_WaitForOperation(pa_stream_drain(wwo->stream, PULSE_StreamSuccessCallback, NULL)); + pa_stream_disconnect(wwo->stream); -+ pa_threaded_mainloop_unlock(PULSE_ml); ++ PULSE_MainloopUnlock(); + + if (wwo->hThread != INVALID_HANDLE_VALUE) + PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_CLOSING, 0, TRUE); @@ -2262,12 +2337,12 @@ index 0000000..99b7c18 + if (lpdwVol == NULL) + return MMSYSERR_NOTENABLED; + -+ pa_threaded_mainloop_lock(PULSE_ml); ++ PULSE_MainloopLock(); + if (wwo->stream && PULSE_context && pa_context_get_state(PULSE_context) == PA_CONTEXT_READY && + pa_stream_get_state(wwo->stream) == PA_STREAM_READY) { + PULSE_WaitForOperation(pa_context_get_sink_input_info(PULSE_context, pa_stream_get_index(wwo->stream), WAVEOUT_SinkInputInfoCallback, wwo)); + } -+ pa_threaded_mainloop_unlock(PULSE_ml); ++ PULSE_MainloopUnlock(); + + + if (wwo->volume.channels == 2) { @@ -2322,17 +2397,17 @@ index 0000000..99b7c18 + TRACE("%s\n", s); + } + -+ pa_threaded_mainloop_lock(PULSE_ml); ++ PULSE_MainloopLock(); + if (!wwo->stream || !PULSE_context || pa_context_get_state(PULSE_context) != PA_CONTEXT_READY || + pa_stream_get_state(wwo->stream) != PA_STREAM_READY || !pa_cvolume_valid(&wwo->volume)) { -+ pa_threaded_mainloop_unlock(PULSE_ml); ++ PULSE_MainloopUnlock(); + return MMSYSERR_NOERROR; + } + + PULSE_WaitForOperation(pa_context_set_sink_input_volume(PULSE_context, + pa_stream_get_index(wwo->stream), &wwo->volume, + PULSE_ContextSuccessCallback, wwo)); -+ pa_threaded_mainloop_unlock(PULSE_ml); ++ PULSE_MainloopUnlock(); + return MMSYSERR_NOERROR; +} + @@ -2466,10 +2541,10 @@ index 0000000..1b49460 +@ stdcall -private widMessage(long long long long long long) PULSE_widMessage diff --git a/dlls/winepulse.drv/winepulse.h b/dlls/winepulse.drv/winepulse.h new file mode 100644 -index 0000000..b83de5d +index 0000000..30eacfd --- /dev/null +++ b/dlls/winepulse.drv/winepulse.h -@@ -0,0 +1,197 @@ +@@ -0,0 +1,210 @@ +/* Definitions for PulseAudio Wine Driver + * + * Copyright 2009 Arthur Taylor @@ -2634,7 +2709,12 @@ index 0000000..b83de5d + +/* We establish one context per instance, so make it global to the lib */ +pa_context *PULSE_context; /* Connection Context */ -+pa_threaded_mainloop *PULSE_ml; /* PA Runtime information */ ++pa_mainloop *PULSE_ml; /* PA Runtime information */ ++ ++/* Win32 mainloop handles */ ++HANDLE PULSE_ml_hThread; ++HANDLE PULSE_ml_hEvent; ++HANDLE PULSE_ml_hMutex; + +/* WaveIn / WaveOut devices */ +WINE_WAVEDEV *WOutDev; @@ -2656,6 +2736,14 @@ index 0000000..b83de5d +BOOL PULSE_SetupFormat(LPWAVEFORMATEX wf, pa_sample_spec *ss); +HRESULT PULSE_UsecToMMTime(pa_usec_t time, LPMMTIME lpTime, const pa_sample_spec *ss); + ++/* pulse.c: Win32 Mainloop */ ++void PULSE_MainloopStart(void); ++void PULSE_MainloopStop(void); ++void PULSE_MainloopLock(void); ++void PULSE_MainloopUnlock(void); ++void PULSE_MainloopWait(void); ++void PULSE_MainloopSignal(void); ++ +/* pulse.c: Message Ring */ +int PULSE_InitRingMessage(PULSE_MSG_RING* omr); +int PULSE_DestroyRingMessage(PULSE_MSG_RING* omr); diff --git a/winepulse-configure.ac-1.3.20.patch b/winepulse-configure.ac-1.3.22.patch similarity index 92% rename from winepulse-configure.ac-1.3.20.patch rename to winepulse-configure.ac-1.3.22.patch index 874c248..32afe85 100644 --- a/winepulse-configure.ac-1.3.20.patch +++ b/winepulse-configure.ac-1.3.22.patch @@ -1,5 +1,5 @@ diff --git a/configure.ac b/configure.ac -index d68ae2a..f23f9ed 100644 +index 2e20f24..fe07d5b 100644 --- a/configure.ac +++ b/configure.ac @@ -78,6 +78,7 @@ AC_ARG_WITH(png, AS_HELP_STRING([--without-png],[do not use PNG]), @@ -10,7 +10,7 @@ index d68ae2a..f23f9ed 100644 AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)])) AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF]), [if test "x$withval" = "xno"; then ac_cv_header_tiffio_h=no; fi]) -@@ -1481,6 +1482,30 @@ then +@@ -1479,6 +1480,30 @@ then CFLAGS="$save_CFLAGS" fi @@ -41,7 +41,7 @@ index d68ae2a..f23f9ed 100644 dnl **** Check for gstreamer **** if test "x$with_gstreamer" != "xno" then -@@ -1695,7 +1720,7 @@ test "x$ac_cv_member_oss_sysinfo_numaudioengines" = xyes || enable_wineoss_drv=$ +@@ -1693,7 +1718,7 @@ test "x$ac_cv_member_oss_sysinfo_numaudioengines" = xyes || enable_wineoss_drv=$ test "$ac_cv_header_linux_joystick_h" = "yes" || enable_winejoystick_drv=${enable_winejoystick_drv:-no} dnl **** Check for any sound system **** @@ -50,9 +50,9 @@ index d68ae2a..f23f9ed 100644 "x$ac_cv_member_oss_sysinfo_numaudioengines" != xyes -a \ "x$with_alsa$with_coreaudio$with_nas$with_esd$with_jack$with_oss" != xnononononono then -@@ -2882,6 +2907,7 @@ WINE_CONFIG_DLL(winenas.drv) +@@ -2883,6 +2908,7 @@ WINE_CONFIG_DLL(winenas.drv) WINE_CONFIG_DLL(wineoss.drv) - WINE_CONFIG_DLL(wineps.drv) + WINE_CONFIG_DLL(wineps.drv,,[install-lib]) WINE_CONFIG_DLL(wineps16.drv16,enable_win16) +WINE_CONFIG_DLL(winepulse.drv) WINE_CONFIG_DLL(wineqtdecoder) From 6b9ee5ae0ae06ada8565c92caa1222a5e46c3251 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 10 Jul 2011 13:43:41 +0200 Subject: [PATCH 201/715] 1.3.24-1 version upgrade add sign as source10 drop mshtml patch (upstream) --- .gitignore | 2 ++ sources | 3 ++- wine-gcc46mshtml.patch | 15 --------------- wine.spec | 12 ++++++++---- 4 files changed, 12 insertions(+), 20 deletions(-) delete mode 100644 wine-gcc46mshtml.patch diff --git a/.gitignore b/.gitignore index bd98364..7eb7a4b 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,5 @@ /wine-1.3.21.tar.bz2 /wine-1.3.22.tar.bz2 /wine-1.3.23.tar.bz2 +/wine-1.3.24.tar.bz2 +/wine-1.3.24.tar.bz2.sign diff --git a/sources b/sources index 35899b0..5e16a24 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ -71f05bf37c25648f8dbc793dda3da45c wine-1.3.23.tar.bz2 +c9850862748bde7994bd757574e8974e wine-1.3.24.tar.bz2 +a9db1ff36532dace37b93771408a7620 wine-1.3.24.tar.bz2.sign diff --git a/wine-gcc46mshtml.patch b/wine-gcc46mshtml.patch deleted file mode 100644 index a9d21b4..0000000 --- a/wine-gcc46mshtml.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/dlls/mshtml/nsiface.idl b/dlls/mshtml/nsiface.idl -index 8c11032..0f09b80 100644 ---- a/dlls/mshtml/nsiface.idl -+++ b/dlls/mshtml/nsiface.idl -@@ -3016,8 +3016,8 @@ interface nsIParser : nsISupports - void Reset(); - PRBool CanInterrupt(); - PRBool IsInsertionPointDefined(); -- void BeginEvaluatingParserInsertedScript(); -- void EndEvaluatingParserInsertedScript(); -+ void __cdecl BeginEvaluatingParserInsertedScript(); -+ void __cdecl EndEvaluatingParserInsertedScript(); - void MarkAsNotScriptCreated(); - PRBool IsScriptCreated(); - } diff --git a/wine.spec b/wine.spec index e3042bf..c75aac4 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ %global no64bit 0 Name: wine -Version: 1.3.23 +Version: 1.3.24 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -8,6 +8,7 @@ Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-%{version}.tar.bz2 +Source10: http://downloads.sourceforge.net/wine/wine-%{version}.tar.bz2.sign Source1: wine.init Source2: wine.systemd Source3: wine-README-Fedora @@ -26,8 +27,6 @@ Source108: wine-wordpad.desktop Source109: wine-oleview.desktop # wine bugs -# 27375 gcc optimization problem -Patch100: wine-gcc46mshtml.patch # desktop dir Source200: wine.menu @@ -453,7 +452,6 @@ This package adds an openal driver for wine. %prep %setup -q -%patch100 -p1 -b .gcc46 %patch200 -b .imagemagick %patch400 -p1 -b .winepulse %patch401 -p1 -b .winepulse @@ -1423,6 +1421,12 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sun Jul 10 2011 Andreas Bierfert +- 1.3.24-1 +- version upgrade +- add sign as source10 +- drop mshtml patch (upstream) + * Sun Jun 26 2011 Andreas Bierfert - 1.3.23-1 - version upgrade From d6a7efcc5c2a7f4115516b23b9a39befb482f943 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 1 Aug 2011 20:36:51 +0200 Subject: [PATCH 202/715] 1.3.25-1 version upgrade remove -jack and -esd (retired upstream) rebase to Maarten Lankhorst's winepulse drop obsolete winepulse readme add udisks support from pending patches (winehq#21713, rhbz#712755) disable xinput2 (broken) --- .gitignore | 2 + dlls_winepulse.drv_Makefile.in | 9 + dlls_winepulse.drv_mmdevdrv.c | 2096 ++++++++++++++++++++ dlls_winepulse.drv_winepulse.drv | 4 + sources | 4 +- wine-README-fedora-pulseaudio | 61 - wine-pulseaudio-configure.patch | 223 +++ wine-udisks1.patch | 116 ++ wine-udisks2.patch | 719 +++++++ wine.spec | 96 +- winepulse-0.40.patch | 2757 --------------------------- winepulse-configure.ac-1.3.22.patch | 60 - winepulse-winecfg-1.3.11.patch | 49 - 13 files changed, 3211 insertions(+), 2985 deletions(-) create mode 100644 dlls_winepulse.drv_Makefile.in create mode 100644 dlls_winepulse.drv_mmdevdrv.c create mode 100644 dlls_winepulse.drv_winepulse.drv delete mode 100644 wine-README-fedora-pulseaudio create mode 100644 wine-pulseaudio-configure.patch create mode 100644 wine-udisks1.patch create mode 100644 wine-udisks2.patch delete mode 100644 winepulse-0.40.patch delete mode 100644 winepulse-configure.ac-1.3.22.patch delete mode 100644 winepulse-winecfg-1.3.11.patch diff --git a/.gitignore b/.gitignore index 7eb7a4b..764ba8b 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,5 @@ /wine-1.3.23.tar.bz2 /wine-1.3.24.tar.bz2 /wine-1.3.24.tar.bz2.sign +/wine-1.3.25.tar.bz2 +/wine-1.3.25.tar.bz2.sign diff --git a/dlls_winepulse.drv_Makefile.in b/dlls_winepulse.drv_Makefile.in new file mode 100644 index 0000000..0f595f1 --- /dev/null +++ b/dlls_winepulse.drv_Makefile.in @@ -0,0 +1,9 @@ +MODULE = winepulse.drv +IMPORTS = dxguid uuid winmm user32 advapi32 ole32 +EXTRALIBS = @PULSELIBS@ @LIBPTHREAD@ +EXTRAINCL = @PULSEINCL@ + +C_SRCS = \ + mmdevdrv.c + +@MAKE_DLL_RULES@ diff --git a/dlls_winepulse.drv_mmdevdrv.c b/dlls_winepulse.drv_mmdevdrv.c new file mode 100644 index 0000000..8ba2a92 --- /dev/null +++ b/dlls_winepulse.drv_mmdevdrv.c @@ -0,0 +1,2096 @@ +/* + * Copyright 2010-2011 Maarten Lankhorst for CodeWeavers + * Copyright 2011 Andrew Eikum for CodeWeavers + * + * 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, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + * + * Pulseaudio driver support.. hell froze over + */ + +#define NONAMELESSUNION +#define COBJMACROS +#include "config.h" +#include +#include + +#include +#include +#include +#include + +#include + +#include "windef.h" +#include "winbase.h" +#include "winnls.h" +#include "winreg.h" +#include "wine/debug.h" +#include "wine/unicode.h" +#include "wine/list.h" + +#include "ole2.h" +#include "dshow.h" +#include "dsound.h" +#include "propsys.h" + +#include "initguid.h" +#include "ks.h" +#include "ksmedia.h" +#include "mmdeviceapi.h" +#include "audioclient.h" +#include "endpointvolume.h" +#include "audiopolicy.h" + +#include "wine/list.h" + +WINE_DEFAULT_DEBUG_CHANNEL(pulse); + +static const REFERENCE_TIME MinimumPeriod = 100000; + +static pa_context *pulse_ctx; +static pa_mainloop *pulse_ml; + +static HANDLE pulse_thread; +static pthread_mutex_t pulse_lock = PTHREAD_MUTEX_INITIALIZER; +static pthread_cond_t pulse_cond = PTHREAD_COND_INITIALIZER; + +static struct list session_list = LIST_INIT( session_list ); + +typedef struct _AudioSession { + GUID guid; + + EDataFlow dataflow; + + float master_vol; + UINT32 channel_count; + float *channel_vols; + + struct list entry; +} AudioSession; + +typedef struct ACImpl { + IAudioClient IAudioClient_iface; + IAudioRenderClient IAudioRenderClient_iface; + IAudioCaptureClient IAudioCaptureClient_iface; + IAudioSessionControl2 IAudioSessionControl2_iface; + ISimpleAudioVolume ISimpleAudioVolume_iface; + IAudioClock IAudioClock_iface; + IAudioClock2 IAudioClock2_iface; + + LONG ref; + + IMMDevice *parent; + + EDataFlow dataflow; + DWORD flags; + AUDCLNT_SHAREMODE share; + HANDLE event; + + BOOL initted, started; + UINT32 bufsize_frames; + BYTE *locked_ptr, *tmp_buffer; + UINT32 locked, peeked, extra_buffered; + UINT64 play_ofs; + + pa_stream *stream; + pa_sample_spec ss; + pa_channel_map map; + + /* Mixer format + period times */ + pa_sample_spec mix_ss; + pa_channel_map mix_map; + REFERENCE_TIME min_period, def_period; +} ACImpl; + +static const WCHAR defaultW[] = {'P','u','l','s','e','a','u','d','i','o',0}; + +static const IAudioClientVtbl AudioClient_Vtbl; +static const IAudioRenderClientVtbl AudioRenderClient_Vtbl; +static const IAudioCaptureClientVtbl AudioCaptureClient_Vtbl; +static const IAudioSessionControl2Vtbl AudioSessionControl2_Vtbl; +static const ISimpleAudioVolumeVtbl SimpleAudioVolume_Vtbl; +static const IAudioClockVtbl AudioClock_Vtbl; +static const IAudioClock2Vtbl AudioClock2_Vtbl; + +static inline ACImpl *impl_from_IAudioClient(IAudioClient *iface) +{ + return CONTAINING_RECORD(iface, ACImpl, IAudioClient_iface); +} + +static inline ACImpl *impl_from_IAudioRenderClient(IAudioRenderClient *iface) +{ + return CONTAINING_RECORD(iface, ACImpl, IAudioRenderClient_iface); +} + +static inline ACImpl *impl_from_IAudioCaptureClient(IAudioCaptureClient *iface) +{ + return CONTAINING_RECORD(iface, ACImpl, IAudioCaptureClient_iface); +} + +static inline ACImpl *impl_from_IAudioSessionControl2(IAudioSessionControl2 *iface) +{ + return CONTAINING_RECORD(iface, ACImpl, IAudioSessionControl2_iface); +} + +static inline ACImpl *impl_from_ISimpleAudioVolume(ISimpleAudioVolume *iface) +{ + return CONTAINING_RECORD(iface, ACImpl, ISimpleAudioVolume_iface); +} + +static inline ACImpl *impl_from_IAudioClock(IAudioClock *iface) +{ + return CONTAINING_RECORD(iface, ACImpl, IAudioClock_iface); +} + +static inline ACImpl *impl_from_IAudioClock2(IAudioClock2 *iface) +{ + return CONTAINING_RECORD(iface, ACImpl, IAudioClock2_iface); +} + +/* Following pulseaudio design here, mainloop has the lock taken whenever + * it is handling something for pulse, and the lock is required whenever + * doing any pa_* call that can affect the state in any way + * + * pa_cond_wait is used when waiting on results, because the mainloop needs + * the same lock taken to affect the state + * + * This is basically the same as the pa_threaded_mainloop implementation, + * but that cannot be used because it uses pthread_create directly + * + * pa_threaded_mainloop_(un)lock -> pthread_mutex_(un)lock + * pa_threaded_mainloop_signal -> pthread_cond_signal + * pa_threaded_mainloop_wait -> pthread_cond_wait + */ + +static int pulse_poll_func(struct pollfd *ufds, unsigned long nfds, int timeout, void *userdata) { + int r; + pthread_mutex_unlock(&pulse_lock); + r = poll(ufds, nfds, timeout); + pthread_mutex_lock(&pulse_lock); + return r; +} + +static DWORD CALLBACK pulse_mainloop_thread(void *tmp) { + int ret; + pulse_ml = pa_mainloop_new(); + pa_mainloop_set_poll_func(pulse_ml, pulse_poll_func, NULL); + pthread_mutex_lock(&pulse_lock); + pthread_cond_signal(&pulse_cond); + pa_mainloop_run(pulse_ml, &ret); + pthread_mutex_unlock(&pulse_lock); + pa_mainloop_free(pulse_ml); + CloseHandle(pulse_thread); + return ret; +} + +static void pulse_contextcallback(pa_context *c, void *userdata); + +static HRESULT pulse_connect(void) +{ + int len; + WCHAR path[PATH_MAX], *name; + char *str; + + if (!pulse_thread) + { + if (!(pulse_thread = CreateThread(NULL, 0, pulse_mainloop_thread, NULL, 0, NULL))) + { + ERR("Failed to create mainloop thread."); + return E_FAIL; + } + pthread_cond_wait(&pulse_cond, &pulse_lock); + } + + if (pulse_ctx && PA_CONTEXT_IS_GOOD(pa_context_get_state(pulse_ctx))) + return S_OK; + if (pulse_ctx) + pa_context_unref(pulse_ctx); + + GetModuleFileNameW(NULL, path, sizeof(path)/sizeof(*path)); + name = strrchrW(path, '\\'); + if (!name) + name = path; + else + name++; + len = WideCharToMultiByte(CP_UNIXCP, 0, name, -1, NULL, 0, NULL, NULL); + str = pa_xmalloc(len); + WideCharToMultiByte(CP_UNIXCP, 0, name, -1, str, len, NULL, NULL); + TRACE("Name: %s\n", str); + pulse_ctx = pa_context_new(pa_mainloop_get_api(pulse_ml), str); + pa_xfree(str); + if (!pulse_ctx) { + ERR("Failed to create context\n"); + return E_FAIL; + } + + pa_context_set_state_callback(pulse_ctx, pulse_contextcallback, NULL); + + TRACE("libpulse protocol version: %u. API Version %u\n", pa_context_get_protocol_version(pulse_ctx), PA_API_VERSION); + if (pa_context_connect(pulse_ctx, NULL, 0, NULL) < 0) + goto fail; + + /* Wait for connection */ + while (pthread_cond_wait(&pulse_cond, &pulse_lock)) { + pa_context_state_t state = pa_context_get_state(pulse_ctx); + + if (state == PA_CONTEXT_FAILED || state == PA_CONTEXT_TERMINATED) + goto fail; + + if (state == PA_CONTEXT_READY) + break; + } + + TRACE("Connected to server %s with protocol version: %i.\n", + pa_context_get_server(pulse_ctx), + pa_context_get_server_protocol_version(pulse_ctx)); + return S_OK; + +fail: + pa_context_unref(pulse_ctx); + pulse_ctx = NULL; + return E_FAIL; +} + +static void pulse_contextcallback(pa_context *c, void *userdata) { + switch (pa_context_get_state(c)) { + default: + FIXME("Unhandled state: %i\n", pa_context_get_state(c)); + case PA_CONTEXT_CONNECTING: + case PA_CONTEXT_UNCONNECTED: + case PA_CONTEXT_AUTHORIZING: + case PA_CONTEXT_SETTING_NAME: + TRACE("State change to %i\n", pa_context_get_state(c)); + return; + + case PA_CONTEXT_READY: + TRACE("Ready\n"); + break; + + case PA_CONTEXT_TERMINATED: + case PA_CONTEXT_FAILED: + ERR("Context failed: %s\n", pa_strerror(pa_context_errno(c))); + } + pthread_cond_signal(&pulse_cond); +} + +static void pulse_stream_state(pa_stream *s, void *user); + +static HRESULT pulse_stream_valid(ACImpl *This) { + if (!This->initted) + return AUDCLNT_E_NOT_INITIALIZED; + if (!This->stream || pa_stream_get_state(This->stream) != PA_STREAM_READY) + return AUDCLNT_E_DEVICE_INVALIDATED; + return S_OK; +} + +static void dump_attr(const pa_buffer_attr *attr) { + TRACE("maxlength: %u\n", attr->maxlength); + TRACE("minreq: %u\n", attr->minreq); + TRACE("fragsize: %u\n", attr->fragsize); + TRACE("tlength: %u\n", attr->tlength); + TRACE("prebuf: %u\n", attr->prebuf); +} + +static void pulse_op_cb(pa_stream *s, int success, void *user) { + TRACE("Success: %i\n", success); + *(int*)user = success; + pthread_cond_signal(&pulse_cond); +} + +static void pulse_attr_update(pa_stream *s, void *user) { + const pa_buffer_attr *attr = pa_stream_get_buffer_attr(s); + TRACE("New attributes or device moved:\n"); + dump_attr(attr); +} + +static HRESULT pulse_stream_connect(ACImpl *This, REFERENCE_TIME period) { + int ret; + char buffer[64]; + static LONG number; + pa_buffer_attr attr; + if (This->stream) { + pa_stream_disconnect(This->stream); + while (pa_stream_get_state(This->stream) == PA_STREAM_READY) + pthread_cond_wait(&pulse_cond, &pulse_lock); + pa_stream_unref(This->stream); + } + ret = InterlockedIncrement(&number); + sprintf(buffer, "audio stream #%i", ret); + This->stream = pa_stream_new(pulse_ctx, buffer, &This->ss, &This->map); + pa_stream_set_state_callback(This->stream, pulse_stream_state, This); + pa_stream_set_buffer_attr_callback(This->stream, pulse_attr_update, This); + pa_stream_set_moved_callback(This->stream, pulse_attr_update, This); + + attr.maxlength = -1; + attr.tlength = This->bufsize_frames * pa_frame_size(&This->ss); + if (This->def_period > period) + period = This->def_period; + attr.minreq = attr.fragsize = pa_usec_to_bytes(period/10, &This->ss); + attr.prebuf = 0; + dump_attr(&attr); + if (This->dataflow == eRender) + ret = pa_stream_connect_playback(This->stream, NULL, &attr, + PA_STREAM_START_CORKED|PA_STREAM_START_UNMUTED|PA_STREAM_AUTO_TIMING_UPDATE|PA_STREAM_INTERPOLATE_TIMING|PA_STREAM_EARLY_REQUESTS, NULL, NULL); + else + ret = pa_stream_connect_record(This->stream, NULL, &attr, + PA_STREAM_START_CORKED|PA_STREAM_START_UNMUTED|PA_STREAM_AUTO_TIMING_UPDATE|PA_STREAM_INTERPOLATE_TIMING|PA_STREAM_EARLY_REQUESTS); + if (ret < 0) { + WARN("Returns %i\n", ret); + return AUDCLNT_E_ENDPOINT_CREATE_FAILED; + } + while (pa_stream_get_state(This->stream) == PA_STREAM_CREATING) + pthread_cond_wait(&pulse_cond, &pulse_lock); + if (pa_stream_get_state(This->stream) != PA_STREAM_READY) + return AUDCLNT_E_ENDPOINT_CREATE_FAILED; + return S_OK; +} + +static void pulse_stream_state(pa_stream *s, void *user) +{ + pa_stream_state_t state = pa_stream_get_state(s); + TRACE("Stream state changed to %i\n", state); + pthread_cond_signal(&pulse_cond); +} + +HRESULT WINAPI AUDDRV_GetEndpointIDs(EDataFlow flow, WCHAR ***ids, void ***keys, + UINT *num, UINT *def_index) +{ + HRESULT hr = S_OK; + TRACE("%d %p %p %p\n", flow, ids, num, def_index); + + pthread_mutex_lock(&pulse_lock); + hr = pulse_connect(); + pthread_mutex_unlock(&pulse_lock); + if (FAILED(hr)) + return hr; + *num = 1; + *def_index = 0; + + *ids = HeapAlloc(GetProcessHeap(), 0, sizeof(WCHAR *)); + if(!*ids) + return E_OUTOFMEMORY; + + (*ids)[0] = HeapAlloc(GetProcessHeap(), 0, sizeof(defaultW)); + if(!(*ids)[0]){ + HeapFree(GetProcessHeap(), 0, *ids); + return E_OUTOFMEMORY; + } + + lstrcpyW((*ids)[0], defaultW); + + *keys = HeapAlloc(GetProcessHeap(), 0, sizeof(void *)); + (*keys)[0] = NULL; + + return S_OK; +} + +HRESULT WINAPI AUDDRV_GetAudioEndpoint(void *key, IMMDevice *dev, + EDataFlow dataflow, IAudioClient **out) +{ + HRESULT hr; + ACImpl *This; + + TRACE("%p %p %d %p\n", key, dev, dataflow, out); + + *out = NULL; + pthread_mutex_lock(&pulse_lock); + hr = pulse_connect(); + pthread_mutex_unlock(&pulse_lock); + if (FAILED(hr)) + return hr; + + This = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(ACImpl)); + if(!This) + return E_OUTOFMEMORY; + + This->IAudioClient_iface.lpVtbl = &AudioClient_Vtbl; + This->IAudioRenderClient_iface.lpVtbl = &AudioRenderClient_Vtbl; + This->IAudioCaptureClient_iface.lpVtbl = &AudioCaptureClient_Vtbl; + This->IAudioSessionControl2_iface.lpVtbl = &AudioSessionControl2_Vtbl; + This->ISimpleAudioVolume_iface.lpVtbl = &SimpleAudioVolume_Vtbl; + This->IAudioClock_iface.lpVtbl = &AudioClock_Vtbl; + This->IAudioClock2_iface.lpVtbl = &AudioClock2_Vtbl; + + This->dataflow = dataflow; + + if(dataflow != eRender && dataflow != eCapture) { + HeapFree(GetProcessHeap(), 0, This); + return E_UNEXPECTED; + } + + This->parent = dev; + IMMDevice_AddRef(This->parent); + + *out = &This->IAudioClient_iface; + IAudioClient_AddRef(&This->IAudioClient_iface); + + return S_OK; +} + +static HRESULT WINAPI AudioClient_QueryInterface(IAudioClient *iface, + REFIID riid, void **ppv) +{ + TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); + + if(!ppv) + return E_POINTER; + *ppv = NULL; + if(IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IAudioClient)) + *ppv = iface; + if(*ppv){ + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; + } + WARN("Unknown interface %s\n", debugstr_guid(riid)); + return E_NOINTERFACE; +} + +static ULONG WINAPI AudioClient_AddRef(IAudioClient *iface) +{ + ACImpl *This = impl_from_IAudioClient(iface); + ULONG ref; + ref = InterlockedIncrement(&This->ref); + TRACE("(%p) Refcount now %u\n", This, ref); + return ref; +} + +static ULONG WINAPI AudioClient_Release(IAudioClient *iface) +{ + ACImpl *This = impl_from_IAudioClient(iface); + ULONG ref; + ref = InterlockedDecrement(&This->ref); + TRACE("(%p) Refcount now %u\n", This, ref); + if(!ref){ + IAudioClient_Stop(iface); + if (This->stream) { + pthread_mutex_lock(&pulse_lock); + if (pa_stream_get_state(This->stream) == PA_STREAM_READY) + pa_stream_disconnect(This->stream); + pa_stream_unref(This->stream); + pthread_mutex_unlock(&pulse_lock); + } + IMMDevice_Release(This->parent); + HeapFree(GetProcessHeap(), 0, This); + } + return ref; +} + +static void dump_fmt(const WAVEFORMATEX *fmt) +{ + TRACE("wFormatTag: 0x%x (", fmt->wFormatTag); + switch(fmt->wFormatTag){ + case WAVE_FORMAT_PCM: + TRACE("WAVE_FORMAT_PCM"); + break; + case WAVE_FORMAT_IEEE_FLOAT: + TRACE("WAVE_FORMAT_IEEE_FLOAT"); + break; + case WAVE_FORMAT_EXTENSIBLE: + TRACE("WAVE_FORMAT_EXTENSIBLE"); + break; + default: + TRACE("Unknown"); + break; + } + TRACE(")\n"); + + TRACE("nChannels: %u\n", fmt->nChannels); + TRACE("nSamplesPerSec: %u\n", fmt->nSamplesPerSec); + TRACE("nAvgBytesPerSec: %u\n", fmt->nAvgBytesPerSec); + TRACE("nBlockAlign: %u\n", fmt->nBlockAlign); + TRACE("wBitsPerSample: %u\n", fmt->wBitsPerSample); + TRACE("cbSize: %u\n", fmt->cbSize); + + if(fmt->wFormatTag == WAVE_FORMAT_EXTENSIBLE){ + WAVEFORMATEXTENSIBLE *fmtex = (void*)fmt; + TRACE("dwChannelMask: %08x\n", fmtex->dwChannelMask); + TRACE("Samples: %04x\n", fmtex->Samples.wReserved); + TRACE("SubFormat: %s\n", wine_dbgstr_guid(&fmtex->SubFormat)); + } +} + +static WAVEFORMATEX *clone_format(const WAVEFORMATEX *fmt) +{ + WAVEFORMATEX *ret; + size_t size; + + if(fmt->wFormatTag == WAVE_FORMAT_EXTENSIBLE) + size = sizeof(WAVEFORMATEXTENSIBLE); + else + size = sizeof(WAVEFORMATEX); + + ret = HeapAlloc(GetProcessHeap(), 0, size); + if(!ret) + return NULL; + + memcpy(ret, fmt, size); + + ret->cbSize = size - sizeof(WAVEFORMATEX); + + return ret; +} + +static DWORD get_channel_mask(unsigned int channels) +{ + switch(channels){ + case 0: + return 0; + case 1: + return SPEAKER_FRONT_CENTER; + case 2: + return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT; + case 3: + return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | + SPEAKER_LOW_FREQUENCY; + case 4: + return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT | + SPEAKER_BACK_RIGHT; + case 5: + return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT | + SPEAKER_BACK_RIGHT | SPEAKER_LOW_FREQUENCY; + case 6: + return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT | + SPEAKER_BACK_RIGHT | SPEAKER_LOW_FREQUENCY | SPEAKER_FRONT_CENTER; + case 7: + return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT | + SPEAKER_BACK_RIGHT | SPEAKER_LOW_FREQUENCY | SPEAKER_FRONT_CENTER | + SPEAKER_BACK_CENTER; + case 8: + return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT | + SPEAKER_BACK_RIGHT | SPEAKER_LOW_FREQUENCY | SPEAKER_FRONT_CENTER | + SPEAKER_SIDE_LEFT | SPEAKER_SIDE_RIGHT; + } + FIXME("Unknown speaker configuration: %u\n", channels); + return 0; +} + +static HRESULT WINAPI AudioClient_Initialize(IAudioClient *iface, + AUDCLNT_SHAREMODE mode, DWORD flags, REFERENCE_TIME duration, + REFERENCE_TIME period, const WAVEFORMATEX *fmt, + const GUID *sessionguid) +{ + ACImpl *This = impl_from_IAudioClient(iface); + HRESULT hr = S_OK; + + TRACE("(%p)->(%x, %x, %s, %s, %p, %s)\n", This, mode, flags, + wine_dbgstr_longlong(duration), wine_dbgstr_longlong(period), fmt, debugstr_guid(sessionguid)); + + if(!fmt) + return E_POINTER; + + if(mode != AUDCLNT_SHAREMODE_SHARED && mode != AUDCLNT_SHAREMODE_EXCLUSIVE) + return AUDCLNT_E_NOT_INITIALIZED; + + if(flags & ~(AUDCLNT_STREAMFLAGS_CROSSPROCESS | + AUDCLNT_STREAMFLAGS_LOOPBACK | + AUDCLNT_STREAMFLAGS_EVENTCALLBACK | + AUDCLNT_STREAMFLAGS_NOPERSIST | + AUDCLNT_STREAMFLAGS_RATEADJUST | + AUDCLNT_SESSIONFLAGS_EXPIREWHENUNOWNED | + AUDCLNT_SESSIONFLAGS_DISPLAY_HIDE | + AUDCLNT_SESSIONFLAGS_DISPLAY_HIDEWHENEXPIRED)){ + TRACE("Unknown flags: %08x\n", flags); + return E_INVALIDARG; + } + + pthread_mutex_lock(&pulse_lock); + if(This->initted){ + pthread_mutex_unlock(&pulse_lock); + return AUDCLNT_E_ALREADY_INITIALIZED; + } + pa_channel_map_init(&This->map); + This->ss.rate = fmt->nSamplesPerSec; + This->ss.format = PA_SAMPLE_INVALID; + switch(fmt->wFormatTag){ + case WAVE_FORMAT_PCM: + if(fmt->wBitsPerSample == 8) + This->ss.format = PA_SAMPLE_U8; + else if(fmt->wBitsPerSample == 16) + This->ss.format = PA_SAMPLE_S16LE; + if (fmt->nChannels == 1 || fmt->nChannels == 2) + pa_channel_map_init_auto(&This->map, fmt->nChannels, PA_CHANNEL_MAP_ALSA); + break; + case WAVE_FORMAT_IEEE_FLOAT: + This->ss.format = PA_SAMPLE_FLOAT32LE; + if (fmt->nChannels == 1 || fmt->nChannels == 2) + pa_channel_map_init_auto(&This->map, fmt->nChannels, PA_CHANNEL_MAP_ALSA); + break; + case WAVE_FORMAT_EXTENSIBLE: { + WAVEFORMATEXTENSIBLE *wfe = (WAVEFORMATEXTENSIBLE*)fmt; + DWORD mask = wfe->dwChannelMask; + DWORD i = 0; + if (fmt->cbSize != (sizeof(*wfe) - sizeof(*fmt)) && fmt->cbSize != sizeof(*wfe)) + break; + if (IsEqualGUID(&wfe->SubFormat, &KSDATAFORMAT_SUBTYPE_IEEE_FLOAT)) + This->ss.format = PA_SAMPLE_FLOAT32LE; + else if (IsEqualGUID(&wfe->SubFormat, &KSDATAFORMAT_SUBTYPE_PCM)) + { + DWORD valid = wfe->Samples.wValidBitsPerSample; + if (!valid) + valid = fmt->wBitsPerSample; + if (!valid || valid > fmt->wBitsPerSample) + break; + switch (fmt->wBitsPerSample) { + case 8: + if (valid == 8) + This->ss.format = PA_SAMPLE_U8; + break; + case 16: + if (valid == 16) + This->ss.format = PA_SAMPLE_S16LE; + break; + case 24: + if (valid == 24) + This->ss.format = PA_SAMPLE_S24LE; + break; + case 32: + if (valid == 24) + This->ss.format = PA_SAMPLE_S24_32LE; + else if (valid == 32) + This->ss.format = PA_SAMPLE_S32LE; + default: + break; + } + } + This->map.channels = fmt->nChannels; + if (!mask) + mask = get_channel_mask(fmt->nChannels); + if (mask & SPEAKER_FRONT_LEFT) This->map.map[i++] = PA_CHANNEL_POSITION_FRONT_LEFT; + if (mask & SPEAKER_FRONT_RIGHT) This->map.map[i++] = PA_CHANNEL_POSITION_FRONT_RIGHT; + if (mask & SPEAKER_FRONT_CENTER) This->map.map[i++] = PA_CHANNEL_POSITION_FRONT_CENTER; + if (mask & SPEAKER_LOW_FREQUENCY) This->map.map[i++] = PA_CHANNEL_POSITION_SUBWOOFER; + if (mask & SPEAKER_BACK_LEFT) This->map.map[i++] = PA_CHANNEL_POSITION_REAR_LEFT; + if (mask & SPEAKER_BACK_RIGHT) This->map.map[i++] = PA_CHANNEL_POSITION_REAR_RIGHT; + if (mask & SPEAKER_BACK_CENTER) This->map.map[i++] = PA_CHANNEL_POSITION_REAR_CENTER; + if (mask & SPEAKER_FRONT_LEFT_OF_CENTER) This->map.map[i++] = PA_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER; + if (mask & SPEAKER_FRONT_RIGHT_OF_CENTER) This->map.map[i++] = PA_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER; + if (mask & SPEAKER_BACK_CENTER) This->map.map[i++] = PA_CHANNEL_POSITION_REAR_CENTER; + if (mask & SPEAKER_SIDE_LEFT) This->map.map[i++] = PA_CHANNEL_POSITION_SIDE_LEFT; + if (mask & SPEAKER_SIDE_RIGHT) This->map.map[i++] = PA_CHANNEL_POSITION_SIDE_RIGHT; + if (mask & SPEAKER_TOP_CENTER) This->map.map[i++] = PA_CHANNEL_POSITION_TOP_CENTER; + if (mask & SPEAKER_TOP_FRONT_LEFT) This->map.map[i++] = PA_CHANNEL_POSITION_TOP_FRONT_LEFT; + if (mask & SPEAKER_TOP_FRONT_CENTER) This->map.map[i++] = PA_CHANNEL_POSITION_TOP_FRONT_CENTER; + if (mask & SPEAKER_TOP_FRONT_RIGHT) This->map.map[i++] = PA_CHANNEL_POSITION_TOP_FRONT_RIGHT; + if (mask & SPEAKER_TOP_BACK_LEFT) This->map.map[i++] = PA_CHANNEL_POSITION_TOP_REAR_LEFT; + if (mask & SPEAKER_TOP_BACK_CENTER) This->map.map[i++] = PA_CHANNEL_POSITION_TOP_REAR_CENTER; + if (mask & SPEAKER_TOP_BACK_RIGHT) This->map.map[i++] = PA_CHANNEL_POSITION_TOP_REAR_RIGHT; + if (mask & SPEAKER_ALL) { + This->map.map[i++] = PA_CHANNEL_POSITION_MONO; + FIXME("Is the 'all' channel mapped correctly?\n"); + } + if (i != fmt->nChannels || mask & SPEAKER_RESERVED) { + This->map.channels = 0; + FIXME("Invalid channel mask: %i/%i and %x\n", i, fmt->nChannels, mask); + break; + } + /* Special case for mono since pulse appears to map it differently */ + if (mask == SPEAKER_FRONT_CENTER) + This->map.map[0] = PA_CHANNEL_POSITION_MONO; + break; + } + default: FIXME("Unhandled tag %x\n", fmt->wFormatTag); + } + This->ss.channels = This->map.channels; + hr = AUDCLNT_E_UNSUPPORTED_FORMAT; + if (!pa_channel_map_valid(&This->map) || This->ss.format == PA_SAMPLE_INVALID) { + WARN("Invalid format! Channel spec valid: %i, format: %i\n", pa_channel_map_valid(&This->map), This->ss.format); + dump_fmt(fmt); + goto exit; + } + if (duration < 5000000) + This->bufsize_frames = fmt->nSamplesPerSec/2; + else if (duration < 20000000) + This->bufsize_frames = ceil((duration / 10000000.) * fmt->nSamplesPerSec); + else + This->bufsize_frames = 2 * fmt->nSamplesPerSec; + + hr = pulse_stream_connect(This, period); + if (SUCCEEDED(hr)) { + /* Update frames according to new size */ + This->bufsize_frames = pa_stream_get_buffer_attr(This->stream)->tlength / pa_frame_size(&This->ss); + //hr = AudioSession_CreateSession(This, sessionguid ? sessionguid : &GUID_NULL); + if (SUCCEEDED(hr)) + This->initted = TRUE; + } + This->share = mode; + This->flags = flags; + +exit: + if(FAILED(hr)) { + if (This->stream) { + pa_stream_disconnect(This->stream); + pa_stream_unref(This->stream); + This->stream = NULL; + } + } + pthread_mutex_unlock(&pulse_lock); + return hr; +} + +static HRESULT WINAPI AudioClient_GetBufferSize(IAudioClient *iface, + UINT32 *out) +{ + ACImpl *This = impl_from_IAudioClient(iface); + HRESULT hr; + + TRACE("(%p)->(%p)\n", This, out); + + if(!out) + return E_POINTER; + + pthread_mutex_lock(&pulse_lock); + hr = pulse_stream_valid(This); + if (SUCCEEDED(hr)) + *out = This->bufsize_frames; + pthread_mutex_unlock(&pulse_lock); + + return hr; +} + +static HRESULT WINAPI AudioClient_GetStreamLatency(IAudioClient *iface, + REFERENCE_TIME *latency) +{ + ACImpl *This = impl_from_IAudioClient(iface); + const pa_buffer_attr *attr; + REFERENCE_TIME lat; + HRESULT hr; + + TRACE("(%p)->(%p)\n", This, latency); + + if(!latency) + return E_POINTER; + + pthread_mutex_lock(&pulse_lock); + hr = pulse_stream_valid(This); + if (FAILED(hr)) { + pthread_mutex_unlock(&pulse_lock); + return hr; + } + attr = pa_stream_get_buffer_attr(This->stream); + if (This->dataflow == eCapture) + lat = attr->fragsize / pa_frame_size(&This->ss); + else + lat = attr->minreq / pa_frame_size(&This->ss); + *latency = 10000000; + *latency *= lat; + *latency /= This->ss.rate; + pthread_mutex_unlock(&pulse_lock); + TRACE("Latency: %u ms\n", (DWORD)(*latency / 10000)); + return S_OK; +} + +static HRESULT WINAPI AudioClient_GetCurrentPadding(IAudioClient *iface, + UINT32 *out) +{ + ACImpl *This = impl_from_IAudioClient(iface); + HRESULT hr; + + TRACE("(%p)->(%p)\n", This, out); + + if(!out) + return E_POINTER; + + pthread_mutex_lock(&pulse_lock); + hr = pulse_stream_valid(This); + if (FAILED(hr)) { + pthread_mutex_unlock(&pulse_lock); + return hr; + } + + if(This->dataflow == eRender){ + UINT32 avail = pa_stream_writable_size(This->stream) / pa_frame_size(&This->ss); + if (avail + This->extra_buffered >= This->bufsize_frames) + *out = 0; + else + *out = This->bufsize_frames - avail - This->extra_buffered; + }else if(This->dataflow == eCapture){ + if (!This->peeked) { + DWORD frag, readable = pa_stream_readable_size(This->stream); + pa_stream_peek(This->stream, (const void**)&This->locked_ptr, &frag); + if (frag != readable) { + DWORD done = frag; + This->tmp_buffer = HeapAlloc(GetProcessHeap(), 0, readable); + memcpy(This->tmp_buffer, This->locked_ptr, frag); + pa_stream_drop(This->stream); + while (done < readable) { + pa_stream_peek(This->stream, (const void **)&This->locked_ptr, &frag); + memcpy(This->tmp_buffer + done, This->locked_ptr, frag); + pa_stream_drop(This->stream); + done += frag; + } + if (done > readable) + ERR("Read %u instead of %u\n", done, This->peeked); + This->locked_ptr = NULL; + } + This->peeked = readable; + } + *out = This->peeked / pa_frame_size(&This->ss); + }else{ + pthread_mutex_unlock(&pulse_lock); + return E_UNEXPECTED; + } + pthread_mutex_unlock(&pulse_lock); + + TRACE("Pad: %u\n", *out); + + return S_OK; +} + +static HRESULT WINAPI AudioClient_IsFormatSupported(IAudioClient *iface, + AUDCLNT_SHAREMODE mode, const WAVEFORMATEX *fmt, + WAVEFORMATEX **out) +{ + ACImpl *This = impl_from_IAudioClient(iface); + HRESULT hr = S_OK; + WAVEFORMATEX *closest = NULL; + WAVEFORMATEXTENSIBLE *wfe; + + TRACE("(%p)->(%x, %p, %p)\n", This, mode, fmt, out); + + if(!fmt || (mode == AUDCLNT_SHAREMODE_SHARED && !out)) + return E_POINTER; + + if(mode != AUDCLNT_SHAREMODE_SHARED && mode != AUDCLNT_SHAREMODE_EXCLUSIVE) + return E_INVALIDARG; + + if(fmt->wFormatTag == WAVE_FORMAT_EXTENSIBLE && + fmt->cbSize < sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX)) + return E_INVALIDARG; + + dump_fmt(fmt); + + closest = clone_format(fmt); + if(!closest){ + hr = E_OUTOFMEMORY; + goto exit; + } + wfe = (WAVEFORMATEXTENSIBLE*)closest; + if (closest->wFormatTag == WAVE_FORMAT_EXTENSIBLE && !wfe->dwChannelMask) { + wfe->dwChannelMask = get_channel_mask(closest->nChannels); + hr = S_FALSE; + WARN("Fixed up channel mask %p -> %p\n", fmt, closest); + } + +exit: + if(hr == S_OK || !out){ + HeapFree(GetProcessHeap(), 0, closest); + if(out) + *out = NULL; + }else if(closest){ + closest->nBlockAlign = + closest->nChannels * closest->wBitsPerSample / 8; + closest->nAvgBytesPerSec = + closest->nBlockAlign * closest->nSamplesPerSec; + *out = closest; + } + + TRACE("returning: %08x %p\n", hr, out ? *out : NULL); + return hr; +} + +static void pulse_probe_settings(ACImpl *This) { + pa_stream *stream; + pa_channel_map map; + pa_sample_spec ss; + pa_buffer_attr attr; + int ret; + unsigned int length = 0; + + if (This->mix_ss.rate) + return; + + pa_channel_map_init_auto(&map, 2, PA_CHANNEL_MAP_ALSA); + ss.rate = 48000; + ss.format = PA_SAMPLE_FLOAT32LE; + ss.channels = map.channels; + + attr.maxlength = -1; + attr.tlength = -1; + attr.minreq = attr.fragsize = pa_frame_size(&ss); + attr.prebuf = 0; + + stream = pa_stream_new(pulse_ctx, "format test stream", &ss, &map); + if (stream) + pa_stream_set_state_callback(stream, pulse_stream_state, NULL); + if (!stream) + ret = -1; + else if (This->dataflow == eRender) + ret = pa_stream_connect_playback(stream, NULL, &attr, + PA_STREAM_START_CORKED|PA_STREAM_FIX_RATE|PA_STREAM_FIX_FORMAT|PA_STREAM_FIX_CHANNELS|PA_STREAM_EARLY_REQUESTS, NULL, NULL); + else + ret = pa_stream_connect_record(stream, NULL, &attr, + PA_STREAM_START_CORKED|PA_STREAM_FIX_RATE|PA_STREAM_FIX_FORMAT|PA_STREAM_FIX_CHANNELS|PA_STREAM_EARLY_REQUESTS); + if (ret >= 0) { + while (pa_stream_get_state(stream) == PA_STREAM_CREATING) + pthread_cond_wait(&pulse_cond, &pulse_lock); + if (pa_stream_get_state(stream) == PA_STREAM_READY) { + ss = *pa_stream_get_sample_spec(stream); + map = *pa_stream_get_channel_map(stream); + if (This->dataflow == eRender) + length = pa_stream_get_buffer_attr(stream)->minreq; + else + length = pa_stream_get_buffer_attr(stream)->fragsize; + pa_stream_disconnect(stream); + while (pa_stream_get_state(stream) == PA_STREAM_READY) + pthread_cond_wait(&pulse_cond, &pulse_lock); + } + } + if (stream) + pa_stream_unref(stream); + This->mix_ss = ss; + This->mix_map = map; + if (length) + This->def_period = This->min_period = pa_bytes_to_usec(10 * length, &This->mix_ss); + else + This->min_period = MinimumPeriod; + if (This->def_period <= MinimumPeriod) + This->def_period = MinimumPeriod; +} + +static HRESULT WINAPI AudioClient_GetMixFormat(IAudioClient *iface, + WAVEFORMATEX **pwfx) +{ + ACImpl *This = impl_from_IAudioClient(iface); + WAVEFORMATEXTENSIBLE *fmt; + HRESULT hr = S_OK; + int i; + + TRACE("(%p)->(%p)\n", This, pwfx); + + if(!pwfx) + return E_POINTER; + + *pwfx = CoTaskMemAlloc(sizeof(WAVEFORMATEXTENSIBLE)); + if(!*pwfx) + return E_OUTOFMEMORY; + + fmt = (WAVEFORMATEXTENSIBLE*)*pwfx; + + pthread_mutex_lock(&pulse_lock); + pulse_probe_settings(This); + pthread_mutex_unlock(&pulse_lock); + + (*pwfx)->wFormatTag = WAVE_FORMAT_EXTENSIBLE; + (*pwfx)->cbSize = sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX); + (*pwfx)->nChannels = This->mix_ss.channels; + (*pwfx)->wBitsPerSample = 8 * pa_sample_size_of_format(This->mix_ss.format); + (*pwfx)->nSamplesPerSec = This->mix_ss.rate; + (*pwfx)->nBlockAlign = (*pwfx)->nChannels * (*pwfx)->wBitsPerSample / 8; + (*pwfx)->nAvgBytesPerSec = (*pwfx)->nSamplesPerSec * (*pwfx)->nBlockAlign; + if (This->mix_ss.format != PA_SAMPLE_S24_32LE) + fmt->Samples.wValidBitsPerSample = (*pwfx)->wBitsPerSample; + else + fmt->Samples.wValidBitsPerSample = 24; + if (This->mix_ss.format == PA_SAMPLE_FLOAT32LE) + fmt->SubFormat = KSDATAFORMAT_SUBTYPE_IEEE_FLOAT; + else + fmt->SubFormat = KSDATAFORMAT_SUBTYPE_PCM; + + fmt->dwChannelMask = 0; + for (i = 0; i < This->mix_map.channels; ++i) + switch (This->mix_map.map[i]) { + default: FIXME("Unhandled channel %s\n", pa_channel_position_to_string(This->mix_map.map[i])); break; + case PA_CHANNEL_POSITION_FRONT_LEFT: fmt->dwChannelMask |= SPEAKER_FRONT_LEFT; break; + case PA_CHANNEL_POSITION_FRONT_RIGHT: fmt->dwChannelMask |= SPEAKER_FRONT_RIGHT; break; + case PA_CHANNEL_POSITION_MONO: + case PA_CHANNEL_POSITION_FRONT_CENTER: fmt->dwChannelMask |= SPEAKER_FRONT_CENTER; break; + case PA_CHANNEL_POSITION_REAR_LEFT: fmt->dwChannelMask |= SPEAKER_BACK_LEFT; break; + case PA_CHANNEL_POSITION_REAR_RIGHT: fmt->dwChannelMask |= SPEAKER_BACK_RIGHT; break; + case PA_CHANNEL_POSITION_SUBWOOFER: fmt->dwChannelMask |= SPEAKER_LOW_FREQUENCY; break; + case PA_CHANNEL_POSITION_SIDE_LEFT: fmt->dwChannelMask |= SPEAKER_SIDE_LEFT; break; + case PA_CHANNEL_POSITION_SIDE_RIGHT: fmt->dwChannelMask |= SPEAKER_SIDE_RIGHT; break; + } + dump_fmt((WAVEFORMATEX*)fmt); + if(FAILED(hr)) { + CoTaskMemFree(*pwfx); + *pwfx = NULL; + } + + return hr; +} + +static HRESULT WINAPI AudioClient_GetDevicePeriod(IAudioClient *iface, + REFERENCE_TIME *defperiod, REFERENCE_TIME *minperiod) +{ + ACImpl *This = impl_from_IAudioClient(iface); + + TRACE("(%p)->(%p, %p)\n", This, defperiod, minperiod); + + if(!defperiod && !minperiod) + return E_POINTER; + + pthread_mutex_lock(&pulse_lock); + pulse_probe_settings(This); + if(defperiod) + *defperiod = This->def_period; + if(minperiod) + *minperiod = This->min_period; + pthread_mutex_unlock(&pulse_lock); + + return S_OK; +} + +static HRESULT WINAPI AudioClient_Start(IAudioClient *iface) +{ + ACImpl *This = impl_from_IAudioClient(iface); + HRESULT hr = S_OK; + int success; + pa_operation *o; + + TRACE("(%p)\n", This); + + pthread_mutex_lock(&pulse_lock); + hr = pulse_stream_valid(This); + if (FAILED(hr)) { + pthread_mutex_unlock(&pulse_lock); + return hr; + } + + if((This->flags & AUDCLNT_STREAMFLAGS_EVENTCALLBACK) && !This->event){ + pthread_mutex_unlock(&pulse_lock); + return AUDCLNT_E_EVENTHANDLE_NOT_SET; + } + + if(This->started){ + pthread_mutex_unlock(&pulse_lock); + return AUDCLNT_E_NOT_STOPPED; + } + + o = pa_stream_cork(This->stream, 0, pulse_op_cb, &success); + if (o) { + while(pa_operation_get_state(o) == PA_OPERATION_RUNNING) + pthread_cond_wait(&pulse_cond, &pulse_lock); + pa_operation_unref(o); + } else + success = 0; + if (!success) + hr = E_FAIL; + if (SUCCEEDED(hr)) + This->started = TRUE; + if (This->event) + SetEvent(This->event); + pthread_mutex_unlock(&pulse_lock); + return hr; +} + +static HRESULT WINAPI AudioClient_Stop(IAudioClient *iface) +{ + ACImpl *This = impl_from_IAudioClient(iface); + HRESULT hr = S_OK; + pa_operation *o; + int success; + + TRACE("(%p)\n", This); + + pthread_mutex_lock(&pulse_lock); + hr = pulse_stream_valid(This); + if (FAILED(hr)) { + pthread_mutex_unlock(&pulse_lock); + return hr; + } + + if(!This->started){ + pthread_mutex_unlock(&pulse_lock); + return S_FALSE; + } + + o = pa_stream_cork(This->stream, 1, pulse_op_cb, &success); + if (o) { + while(pa_operation_get_state(o) == PA_OPERATION_RUNNING) + pthread_cond_wait(&pulse_cond, &pulse_lock); + pa_operation_unref(o); + } else + success = 0; + if (!success) + hr = E_FAIL; + if (SUCCEEDED(hr)) + This->started = FALSE; + pthread_mutex_unlock(&pulse_lock); + return hr; +} + +static HRESULT WINAPI AudioClient_Reset(IAudioClient *iface) +{ + ACImpl *This = impl_from_IAudioClient(iface); + pa_usec_t time; + pa_operation *o; + int success; + HRESULT hr = S_OK; + + TRACE("(%p)\n", This); + + pthread_mutex_lock(&pulse_lock); + hr = pulse_stream_valid(This); + if (FAILED(hr)) { + pthread_mutex_unlock(&pulse_lock); + return hr; + } + + if(This->started){ + pthread_mutex_unlock(&pulse_lock); + return AUDCLNT_E_NOT_STOPPED; + } + + if (pa_stream_get_time(This->stream, &time) >= 0) + This->play_ofs += time * This->ss.rate / 1000000; + + o = pa_stream_flush(This->stream, pulse_op_cb, &success); + if (o) { + while(pa_operation_get_state(o) == PA_OPERATION_RUNNING) + pthread_cond_wait(&pulse_cond, &pulse_lock); + pa_operation_unref(o); + } else + success = 0; + if (!success) + hr = S_FALSE; + pthread_mutex_unlock(&pulse_lock); + + return hr; +} + +static HRESULT WINAPI AudioClient_SetEventHandle(IAudioClient *iface, + HANDLE event) +{ + ACImpl *This = impl_from_IAudioClient(iface); + HRESULT hr; + + TRACE("(%p)->(%p)\n", This, event); + + if(!event) + return E_INVALIDARG; + + pthread_mutex_lock(&pulse_lock); + hr = pulse_stream_valid(This); + if (FAILED(hr)) { + pthread_mutex_unlock(&pulse_lock); + return hr; + } + + if(!(This->flags & AUDCLNT_STREAMFLAGS_EVENTCALLBACK)){ + pthread_mutex_unlock(&pulse_lock); + return AUDCLNT_E_EVENTHANDLE_NOT_EXPECTED; + } + This->event = event; + pthread_mutex_unlock(&pulse_lock); + return S_OK; +} + +static HRESULT WINAPI AudioClient_GetService(IAudioClient *iface, REFIID riid, + void **ppv) +{ + ACImpl *This = impl_from_IAudioClient(iface); + HRESULT hr; + + TRACE("(%p)->(%s, %p)\n", This, debugstr_guid(riid), ppv); + + if(!ppv) + return E_POINTER; + *ppv = NULL; + + pthread_mutex_lock(&pulse_lock); + hr = pulse_stream_valid(This); + pthread_mutex_unlock(&pulse_lock); + if (FAILED(hr)) + return hr; + + if(IsEqualIID(riid, &IID_IAudioRenderClient)){ + if(This->dataflow != eRender) + return AUDCLNT_E_WRONG_ENDPOINT_TYPE; + *ppv = &This->IAudioRenderClient_iface; + }else if(IsEqualIID(riid, &IID_IAudioCaptureClient)){ + if(This->dataflow != eCapture) + return AUDCLNT_E_WRONG_ENDPOINT_TYPE; + *ppv = &This->IAudioCaptureClient_iface; + }else if(IsEqualIID(riid, &IID_IAudioSessionControl)){ + *ppv = &This->IAudioSessionControl2_iface; + }else if(IsEqualIID(riid, &IID_ISimpleAudioVolume)){ + *ppv = &This->ISimpleAudioVolume_iface; + }else if(IsEqualIID(riid, &IID_IAudioClock)){ + *ppv = &This->IAudioClock_iface; + } + + if(*ppv){ + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; + } + + FIXME("stub %s\n", debugstr_guid(riid)); + return E_NOINTERFACE; +} + +static const IAudioClientVtbl AudioClient_Vtbl = +{ + AudioClient_QueryInterface, + AudioClient_AddRef, + AudioClient_Release, + AudioClient_Initialize, + AudioClient_GetBufferSize, + AudioClient_GetStreamLatency, + AudioClient_GetCurrentPadding, + AudioClient_IsFormatSupported, + AudioClient_GetMixFormat, + AudioClient_GetDevicePeriod, + AudioClient_Start, + AudioClient_Stop, + AudioClient_Reset, + AudioClient_SetEventHandle, + AudioClient_GetService +}; + +static HRESULT WINAPI AudioRenderClient_QueryInterface( + IAudioRenderClient *iface, REFIID riid, void **ppv) +{ + TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); + + if(!ppv) + return E_POINTER; + *ppv = NULL; + + if(IsEqualIID(riid, &IID_IUnknown) || + IsEqualIID(riid, &IID_IAudioRenderClient)) + *ppv = iface; + if(*ppv){ + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; + } + + WARN("Unknown interface %s\n", debugstr_guid(riid)); + return E_NOINTERFACE; +} + +static ULONG WINAPI AudioRenderClient_AddRef(IAudioRenderClient *iface) +{ + ACImpl *This = impl_from_IAudioRenderClient(iface); + return AudioClient_AddRef(&This->IAudioClient_iface); +} + +static ULONG WINAPI AudioRenderClient_Release(IAudioRenderClient *iface) +{ + ACImpl *This = impl_from_IAudioRenderClient(iface); + return AudioClient_Release(&This->IAudioClient_iface); +} + +static HRESULT WINAPI AudioRenderClient_GetBuffer(IAudioRenderClient *iface, + UINT32 frames, BYTE **data) +{ + ACImpl *This = impl_from_IAudioRenderClient(iface); + UINT32 requested, avail; + HRESULT hr = S_OK; + + TRACE("(%p)->(%u, %p)\n", This, frames, data); + + if(!data) + return E_POINTER; + + pthread_mutex_lock(&pulse_lock); + hr = pulse_stream_valid(This); + if(FAILED(hr) || This->locked){ + pthread_mutex_unlock(&pulse_lock); + return FAILED(hr) ? hr : AUDCLNT_E_OUT_OF_ORDER; + } + avail = pa_stream_writable_size(This->stream) / pa_frame_size(&This->ss); + if (avail < frames){ + pthread_mutex_unlock(&pulse_lock); + WARN("Wanted to write %u, but only %u available\n", frames, avail); + return AUDCLNT_E_BUFFER_TOO_LARGE; + } + + requested = frames * pa_frame_size(&This->ss); + pa_stream_begin_write(This->stream, (void**)data, &requested); + This->locked = frames; + if (requested / pa_frame_size(&This->ss) < frames) { + pa_stream_cancel_write(This->stream); + FIXME("Unable to allocate all (%u/%u) preparing our own buffer\n", requested / pa_frame_size(&This->ss), frames); + *data = This->locked_ptr = This->tmp_buffer = HeapAlloc(GetProcessHeap(), 0, frames * pa_frame_size(&This->ss)); + } else { + This->locked_ptr = *data; + } + pthread_mutex_unlock(&pulse_lock); + return hr; +} + +static void free_heap(void *p) +{ + HeapFree(GetProcessHeap(), 0, p); +} + +static HRESULT WINAPI AudioRenderClient_ReleaseBuffer( + IAudioRenderClient *iface, UINT32 written_frames, DWORD flags) +{ + ACImpl *This = impl_from_IAudioRenderClient(iface); + int written; + + TRACE("(%p)->(%u, %x)\n", This, written_frames, flags); + + pthread_mutex_lock(&pulse_lock); + if(!This->locked || !written_frames){ + if (This->tmp_buffer) { + HeapFree(GetProcessHeap(), 0, This->tmp_buffer); + This->tmp_buffer = NULL; + } else if (This->locked) + pa_stream_cancel_write(This->stream); + This->locked = 0; + pthread_mutex_unlock(&pulse_lock); + return written_frames ? AUDCLNT_E_OUT_OF_ORDER : S_OK; + } + + if(flags & AUDCLNT_BUFFERFLAGS_SILENT){ + if(This->ss.format == PA_SAMPLE_U8) + memset(This->locked_ptr, 128, written_frames * pa_frame_size(&This->ss)); + else + memset(This->locked_ptr, 0, written_frames * pa_frame_size(&This->ss)); + } + + This->locked = 0; + if (!This->tmp_buffer) + written = pa_stream_write(This->stream, This->locked_ptr, written_frames * pa_frame_size(&This->ss), NULL, 0, PA_SEEK_RELATIVE); + else + written = pa_stream_write(This->stream, This->locked_ptr, written_frames * pa_frame_size(&This->ss), free_heap, 0, PA_SEEK_RELATIVE); + This->tmp_buffer = NULL; + TRACE("Released %u, wrote %i\n", written_frames * pa_frame_size(&This->ss), written); + pthread_mutex_unlock(&pulse_lock); + + return S_OK; +} + +static const IAudioRenderClientVtbl AudioRenderClient_Vtbl = { + AudioRenderClient_QueryInterface, + AudioRenderClient_AddRef, + AudioRenderClient_Release, + AudioRenderClient_GetBuffer, + AudioRenderClient_ReleaseBuffer +}; + +static HRESULT WINAPI AudioCaptureClient_QueryInterface( + IAudioCaptureClient *iface, REFIID riid, void **ppv) +{ + TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); + + if(!ppv) + return E_POINTER; + *ppv = NULL; + + if(IsEqualIID(riid, &IID_IUnknown) || + IsEqualIID(riid, &IID_IAudioCaptureClient)) + *ppv = iface; + if(*ppv){ + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; + } + + WARN("Unknown interface %s\n", debugstr_guid(riid)); + return E_NOINTERFACE; +} + +static ULONG WINAPI AudioCaptureClient_AddRef(IAudioCaptureClient *iface) +{ + ACImpl *This = impl_from_IAudioCaptureClient(iface); + return IAudioClient_AddRef(&This->IAudioClient_iface); +} + +static ULONG WINAPI AudioCaptureClient_Release(IAudioCaptureClient *iface) +{ + ACImpl *This = impl_from_IAudioCaptureClient(iface); + return IAudioClient_Release(&This->IAudioClient_iface); +} + +static HRESULT WINAPI AudioCaptureClient_GetBuffer(IAudioCaptureClient *iface, + BYTE **data, UINT32 *frames, DWORD *flags, UINT64 *devpos, + UINT64 *qpcpos) +{ + ACImpl *This = impl_from_IAudioCaptureClient(iface); + HRESULT hr; + + TRACE("(%p)->(%p, %p, %p, %p, %p)\n", This, data, frames, flags, + devpos, qpcpos); + + if(!data || !frames || !flags) + return E_POINTER; + + pthread_mutex_lock(&pulse_lock); + hr = pulse_stream_valid(This); + if(FAILED(hr) || This->locked){ + pthread_mutex_unlock(&pulse_lock); + return FAILED(hr) ? hr : AUDCLNT_E_OUT_OF_ORDER; + } + *data = NULL; + *flags = 0; + *frames = This->peeked / pa_frame_size(&This->ss); + if (*frames) + *data = This->locked_ptr ? This->locked_ptr : This->tmp_buffer; + This->locked = *frames; + pthread_mutex_unlock(&pulse_lock); + if(devpos || qpcpos) + IAudioClock_GetPosition(&This->IAudioClock_iface, devpos, qpcpos); + + return *frames ? S_OK : AUDCLNT_S_BUFFER_EMPTY; +} + +static HRESULT WINAPI AudioCaptureClient_ReleaseBuffer( + IAudioCaptureClient *iface, UINT32 done) +{ + ACImpl *This = impl_from_IAudioCaptureClient(iface); + + TRACE("(%p)->(%u)\n", This, done); + + pthread_mutex_lock(&pulse_lock); + if (done) { + if (This->locked_ptr) { + pa_stream_drop(This->stream); + This->locked_ptr = NULL; + } else { + HeapFree(GetProcessHeap(), 0, This->tmp_buffer); + This->tmp_buffer = NULL; + } + This->peeked = 0; + } + This->locked = 0; + pthread_mutex_unlock(&pulse_lock); + return S_OK; +} + +static HRESULT WINAPI AudioCaptureClient_GetNextPacketSize( + IAudioCaptureClient *iface, UINT32 *frames) +{ + ACImpl *This = impl_from_IAudioCaptureClient(iface); + + TRACE("(%p)->(%p)\n", This, frames); + return AudioClient_GetCurrentPadding(&This->IAudioClient_iface, frames); +} + +static const IAudioCaptureClientVtbl AudioCaptureClient_Vtbl = +{ + AudioCaptureClient_QueryInterface, + AudioCaptureClient_AddRef, + AudioCaptureClient_Release, + AudioCaptureClient_GetBuffer, + AudioCaptureClient_ReleaseBuffer, + AudioCaptureClient_GetNextPacketSize +}; + +static HRESULT WINAPI SimpleAudioVolume_QueryInterface( + ISimpleAudioVolume *iface, REFIID riid, void **ppv) +{ + TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); + + if(!ppv) + return E_POINTER; + *ppv = NULL; + + if(IsEqualIID(riid, &IID_IUnknown) || + IsEqualIID(riid, &IID_ISimpleAudioVolume)) + *ppv = iface; + if(*ppv){ + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; + } + + WARN("Unknown interface %s\n", debugstr_guid(riid)); + return E_NOINTERFACE; +} + +static ULONG WINAPI SimpleAudioVolume_AddRef(ISimpleAudioVolume *iface) +{ + ACImpl *This = impl_from_ISimpleAudioVolume(iface); + return IAudioClient_AddRef(&This->IAudioClient_iface); +} + +static ULONG WINAPI SimpleAudioVolume_Release(ISimpleAudioVolume *iface) +{ + ACImpl *This = impl_from_ISimpleAudioVolume(iface); + return IAudioClient_Release(&This->IAudioClient_iface); +} + +static HRESULT WINAPI SimpleAudioVolume_SetMasterVolume( + ISimpleAudioVolume *iface, float level, const GUID *context) +{ + ACImpl *This = impl_from_ISimpleAudioVolume(iface); + + FIXME("(%p)->(%f, %p) - stub\n", This, level, context); + + return E_NOTIMPL; +} + +static HRESULT WINAPI SimpleAudioVolume_GetMasterVolume( + ISimpleAudioVolume *iface, float *level) +{ + ACImpl *This = impl_from_ISimpleAudioVolume(iface); + + FIXME("(%p)->(%p) - stub\n", This, level); + + return E_NOTIMPL; +} + +static HRESULT WINAPI SimpleAudioVolume_SetMute(ISimpleAudioVolume *iface, + BOOL mute, const GUID *context) +{ + ACImpl *This = impl_from_ISimpleAudioVolume(iface); + + FIXME("(%p)->(%u, %p) - stub\n", This, mute, context); + + return E_NOTIMPL; +} + +static HRESULT WINAPI SimpleAudioVolume_GetMute(ISimpleAudioVolume *iface, + BOOL *mute) +{ + ACImpl *This = impl_from_ISimpleAudioVolume(iface); + + FIXME("(%p)->(%p) - stub\n", This, mute); + + return E_NOTIMPL; +} + +static const ISimpleAudioVolumeVtbl SimpleAudioVolume_Vtbl = +{ + SimpleAudioVolume_QueryInterface, + SimpleAudioVolume_AddRef, + SimpleAudioVolume_Release, + SimpleAudioVolume_SetMasterVolume, + SimpleAudioVolume_GetMasterVolume, + SimpleAudioVolume_SetMute, + SimpleAudioVolume_GetMute +}; + +static HRESULT WINAPI AudioClock_QueryInterface(IAudioClock *iface, + REFIID riid, void **ppv) +{ + ACImpl *This = impl_from_IAudioClock(iface); + + TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); + + if(!ppv) + return E_POINTER; + *ppv = NULL; + + if(IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IAudioClock)) + *ppv = iface; + else if(IsEqualIID(riid, &IID_IAudioClock2)) + *ppv = &This->IAudioClock2_iface; + if(*ppv){ + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; + } + + WARN("Unknown interface %s\n", debugstr_guid(riid)); + return E_NOINTERFACE; +} + +static ULONG WINAPI AudioClock_AddRef(IAudioClock *iface) +{ + ACImpl *This = impl_from_IAudioClock(iface); + return IAudioClient_AddRef(&This->IAudioClient_iface); +} + +static ULONG WINAPI AudioClock_Release(IAudioClock *iface) +{ + ACImpl *This = impl_from_IAudioClock(iface); + return IAudioClient_Release(&This->IAudioClient_iface); +} + +static HRESULT WINAPI AudioClock_GetFrequency(IAudioClock *iface, UINT64 *freq) +{ + ACImpl *This = impl_from_IAudioClock(iface); + + TRACE("(%p)->(%p)\n", This, freq); + + *freq = This->ss.rate; + return S_OK; +} + +static HRESULT WINAPI AudioClock_GetPosition(IAudioClock *iface, UINT64 *pos, + UINT64 *qpctime) +{ + ACImpl *This = impl_from_IAudioClock(iface); + pa_usec_t time; + + TRACE("(%p)->(%p, %p)\n", This, pos, qpctime); + + if(!pos) + return E_POINTER; + + pthread_mutex_lock(&pulse_lock); + if (pa_stream_get_time(This->stream, &time) >= 0) + *pos = time * This->ss.rate / 1000000 - This->play_ofs; + else + *pos = This->play_ofs; + TRACE("Position: %u\n", (unsigned)*pos); + pthread_mutex_unlock(&pulse_lock); + + if(qpctime){ + LARGE_INTEGER stamp, freq; + QueryPerformanceCounter(&stamp); + QueryPerformanceFrequency(&freq); + *qpctime = (stamp.QuadPart * (INT64)10000000) / freq.QuadPart; + } + + return S_OK; +} + +static HRESULT WINAPI AudioClock_GetCharacteristics(IAudioClock *iface, + DWORD *chars) +{ + ACImpl *This = impl_from_IAudioClock(iface); + + TRACE("(%p)->(%p)\n", This, chars); + + if(!chars) + return E_POINTER; + + *chars = AUDIOCLOCK_CHARACTERISTIC_FIXED_FREQ; + + return S_OK; +} + +static const IAudioClockVtbl AudioClock_Vtbl = +{ + AudioClock_QueryInterface, + AudioClock_AddRef, + AudioClock_Release, + AudioClock_GetFrequency, + AudioClock_GetPosition, + AudioClock_GetCharacteristics +}; + +static HRESULT WINAPI AudioClock2_QueryInterface(IAudioClock2 *iface, + REFIID riid, void **ppv) +{ + ACImpl *This = impl_from_IAudioClock2(iface); + return IAudioClock_QueryInterface(&This->IAudioClock_iface, riid, ppv); +} + +static ULONG WINAPI AudioClock2_AddRef(IAudioClock2 *iface) +{ + ACImpl *This = impl_from_IAudioClock2(iface); + return IAudioClient_AddRef(&This->IAudioClient_iface); +} + +static ULONG WINAPI AudioClock2_Release(IAudioClock2 *iface) +{ + ACImpl *This = impl_from_IAudioClock2(iface); + return IAudioClient_Release(&This->IAudioClient_iface); +} + +static HRESULT WINAPI AudioClock2_GetDevicePosition(IAudioClock2 *iface, + UINT64 *pos, UINT64 *qpctime) +{ + ACImpl *This = impl_from_IAudioClock2(iface); + return AudioClock_GetPosition(&This->IAudioClock_iface, pos, qpctime); +} + +static const IAudioClock2Vtbl AudioClock2_Vtbl = +{ + AudioClock2_QueryInterface, + AudioClock2_AddRef, + AudioClock2_Release, + AudioClock2_GetDevicePosition +}; + +static HRESULT WINAPI AudioSessionControl_QueryInterface( + IAudioSessionControl2 *iface, REFIID riid, void **ppv) +{ + TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); + + if(!ppv) + return E_POINTER; + *ppv = NULL; + + if(IsEqualIID(riid, &IID_IUnknown) || + IsEqualIID(riid, &IID_IAudioSessionControl) || + IsEqualIID(riid, &IID_IAudioSessionControl2)) + *ppv = iface; + if(*ppv){ + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; + } + + WARN("Unknown interface %s\n", debugstr_guid(riid)); + return E_NOINTERFACE; +} + +static ULONG WINAPI AudioSessionControl_AddRef(IAudioSessionControl2 *iface) +{ + ACImpl *This = impl_from_IAudioSessionControl2(iface); + return IAudioClient_AddRef(&This->IAudioClient_iface); +} + +static ULONG WINAPI AudioSessionControl_Release(IAudioSessionControl2 *iface) +{ + ACImpl *This = impl_from_IAudioSessionControl2(iface); + return IAudioClient_Release(&This->IAudioClient_iface); +} + +static HRESULT WINAPI AudioSessionControl_GetState(IAudioSessionControl2 *iface, + AudioSessionState *state) +{ + ACImpl *This = impl_from_IAudioSessionControl2(iface); + + FIXME("(%p)->(%p) - stub\n", This, state); + + if(!state) + return E_POINTER; + + return E_NOTIMPL; +} + +static HRESULT WINAPI AudioSessionControl_GetDisplayName( + IAudioSessionControl2 *iface, WCHAR **name) +{ + ACImpl *This = impl_from_IAudioSessionControl2(iface); + + FIXME("(%p)->(%p) - stub\n", This, name); + + return E_NOTIMPL; +} + +static HRESULT WINAPI AudioSessionControl_SetDisplayName( + IAudioSessionControl2 *iface, const WCHAR *name, const GUID *session) +{ + ACImpl *This = impl_from_IAudioSessionControl2(iface); + + FIXME("(%p)->(%p, %s) - stub\n", This, name, debugstr_guid(session)); + + return E_NOTIMPL; +} + +static HRESULT WINAPI AudioSessionControl_GetIconPath( + IAudioSessionControl2 *iface, WCHAR **path) +{ + ACImpl *This = impl_from_IAudioSessionControl2(iface); + + FIXME("(%p)->(%p) - stub\n", This, path); + + return E_NOTIMPL; +} + +static HRESULT WINAPI AudioSessionControl_SetIconPath( + IAudioSessionControl2 *iface, const WCHAR *path, const GUID *session) +{ + ACImpl *This = impl_from_IAudioSessionControl2(iface); + + FIXME("(%p)->(%p, %s) - stub\n", This, path, debugstr_guid(session)); + + return E_NOTIMPL; +} + +static HRESULT WINAPI AudioSessionControl_GetGroupingParam( + IAudioSessionControl2 *iface, GUID *group) +{ + ACImpl *This = impl_from_IAudioSessionControl2(iface); + + FIXME("(%p)->(%p) - stub\n", This, group); + + return E_NOTIMPL; +} + +static HRESULT WINAPI AudioSessionControl_SetGroupingParam( + IAudioSessionControl2 *iface, const GUID *group, const GUID *session) +{ + ACImpl *This = impl_from_IAudioSessionControl2(iface); + + FIXME("(%p)->(%s, %s) - stub\n", This, debugstr_guid(group), + debugstr_guid(session)); + + return E_NOTIMPL; +} + +static HRESULT WINAPI AudioSessionControl_RegisterAudioSessionNotification( + IAudioSessionControl2 *iface, IAudioSessionEvents *events) +{ + ACImpl *This = impl_from_IAudioSessionControl2(iface); + + FIXME("(%p)->(%p) - stub\n", This, events); + + return S_OK; +} + +static HRESULT WINAPI AudioSessionControl_UnregisterAudioSessionNotification( + IAudioSessionControl2 *iface, IAudioSessionEvents *events) +{ + ACImpl *This = impl_from_IAudioSessionControl2(iface); + + FIXME("(%p)->(%p) - stub\n", This, events); + + return S_OK; +} + +static HRESULT WINAPI AudioSessionControl_GetSessionIdentifier( + IAudioSessionControl2 *iface, WCHAR **id) +{ + ACImpl *This = impl_from_IAudioSessionControl2(iface); + + FIXME("(%p)->(%p) - stub\n", This, id); + + return E_NOTIMPL; +} + +static HRESULT WINAPI AudioSessionControl_GetSessionInstanceIdentifier( + IAudioSessionControl2 *iface, WCHAR **id) +{ + ACImpl *This = impl_from_IAudioSessionControl2(iface); + + FIXME("(%p)->(%p) - stub\n", This, id); + + return E_NOTIMPL; +} + +static HRESULT WINAPI AudioSessionControl_GetProcessId( + IAudioSessionControl2 *iface, DWORD *pid) +{ + ACImpl *This = impl_from_IAudioSessionControl2(iface); + + TRACE("(%p)->(%p)\n", This, pid); + + if(!pid) + return E_POINTER; + + *pid = GetCurrentProcessId(); + + return S_OK; +} + +static HRESULT WINAPI AudioSessionControl_IsSystemSoundsSession( + IAudioSessionControl2 *iface) +{ + ACImpl *This = impl_from_IAudioSessionControl2(iface); + + TRACE("(%p)\n", This); + + return S_FALSE; +} + +static HRESULT WINAPI AudioSessionControl_SetDuckingPreference( + IAudioSessionControl2 *iface, BOOL optout) +{ + ACImpl *This = impl_from_IAudioSessionControl2(iface); + + TRACE("(%p)->(%d)\n", This, optout); + + return S_OK; +} + +static const IAudioSessionControl2Vtbl AudioSessionControl2_Vtbl = +{ + AudioSessionControl_QueryInterface, + AudioSessionControl_AddRef, + AudioSessionControl_Release, + AudioSessionControl_GetState, + AudioSessionControl_GetDisplayName, + AudioSessionControl_SetDisplayName, + AudioSessionControl_GetIconPath, + AudioSessionControl_SetIconPath, + AudioSessionControl_GetGroupingParam, + AudioSessionControl_SetGroupingParam, + AudioSessionControl_RegisterAudioSessionNotification, + AudioSessionControl_UnregisterAudioSessionNotification, + AudioSessionControl_GetSessionIdentifier, + AudioSessionControl_GetSessionInstanceIdentifier, + AudioSessionControl_GetProcessId, + AudioSessionControl_IsSystemSoundsSession, + AudioSessionControl_SetDuckingPreference +}; + +typedef struct _SessionMgr { + IAudioSessionManager2 IAudioSessionManager2_iface; + + LONG ref; + + IMMDevice *device; +} SessionMgr; + +HRESULT WINAPI AudioSessionManager_QueryInterface(IAudioSessionManager2 *iface, + REFIID riid, void **ppv) +{ + TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); + + if(!ppv) + return E_POINTER; + *ppv = NULL; + + if(IsEqualIID(riid, &IID_IUnknown) || + IsEqualIID(riid, &IID_IAudioSessionManager) || + IsEqualIID(riid, &IID_IAudioSessionManager2)) + *ppv = iface; + if(*ppv){ + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; + } + + WARN("Unknown interface %s\n", debugstr_guid(riid)); + return E_NOINTERFACE; +} + +static inline SessionMgr *impl_from_IAudioSessionManager2(IAudioSessionManager2 *iface) +{ + return CONTAINING_RECORD(iface, SessionMgr, IAudioSessionManager2_iface); +} + +ULONG WINAPI AudioSessionManager_AddRef(IAudioSessionManager2 *iface) +{ + SessionMgr *This = impl_from_IAudioSessionManager2(iface); + ULONG ref; + ref = InterlockedIncrement(&This->ref); + TRACE("(%p) Refcount now %u\n", This, ref); + return ref; +} + +ULONG WINAPI AudioSessionManager_Release(IAudioSessionManager2 *iface) +{ + SessionMgr *This = impl_from_IAudioSessionManager2(iface); + ULONG ref; + ref = InterlockedDecrement(&This->ref); + TRACE("(%p) Refcount now %u\n", This, ref); + if(!ref) + HeapFree(GetProcessHeap(), 0, This); + return ref; +} + +HRESULT WINAPI AudioSessionManager_GetAudioSessionControl( + IAudioSessionManager2 *iface, const GUID *session_guid, DWORD flags, + IAudioSessionControl **out) +{ +#if 0 + SessionMgr *This = impl_from_IAudioSessionManager2(iface); + AudioSession *session; + AudioSessionWrapper *wrapper; + HRESULT hr; + + TRACE("(%p)->(%s, %x, %p)\n", This, debugstr_guid(session_guid), + flags, out); + + hr = get_audio_session(session_guid, This->device, 0, &session); + if(FAILED(hr)) + return hr; + + wrapper = AudioSessionWrapper_Create(NULL); + if(!wrapper) + return E_OUTOFMEMORY; + + wrapper->session = session; + + *out = (IAudioSessionControl*)&wrapper->IAudioSessionControl2_iface; + + return S_OK; +#else + FIXME("stub\n"); + return E_NOTIMPL; +#endif +} + +HRESULT WINAPI AudioSessionManager_GetSimpleAudioVolume( + IAudioSessionManager2 *iface, const GUID *session_guid, DWORD flags, + ISimpleAudioVolume **out) +{ +#if 0 + SessionMgr *This = impl_from_IAudioSessionManager2(iface); + AudioSession *session; + AudioSessionWrapper *wrapper; + HRESULT hr; + + TRACE("(%p)->(%s, %x, %p)\n", This, debugstr_guid(session_guid), + flags, out); + + hr = get_audio_session(session_guid, This->device, 0, &session); + if(FAILED(hr)) + return hr; + + wrapper = AudioSessionWrapper_Create(NULL); + if(!wrapper) + return E_OUTOFMEMORY; + + wrapper->session = session; + + *out = &wrapper->ISimpleAudioVolume_iface; + + return S_OK; +#else + FIXME("stub\n"); + return E_NOTIMPL; +#endif +} + +HRESULT WINAPI AudioSessionManager_GetSessionEnumerator( + IAudioSessionManager2 *iface, IAudioSessionEnumerator **out) +{ + SessionMgr *This = impl_from_IAudioSessionManager2(iface); + FIXME("(%p)->(%p) - stub\n", This, out); + return E_NOTIMPL; +} + +HRESULT WINAPI AudioSessionManager_RegisterSessionNotification( + IAudioSessionManager2 *iface, IAudioSessionNotification *notification) +{ + SessionMgr *This = impl_from_IAudioSessionManager2(iface); + FIXME("(%p)->(%p) - stub\n", This, notification); + return E_NOTIMPL; +} + +HRESULT WINAPI AudioSessionManager_UnregisterSessionNotification( + IAudioSessionManager2 *iface, IAudioSessionNotification *notification) +{ + SessionMgr *This = impl_from_IAudioSessionManager2(iface); + FIXME("(%p)->(%p) - stub\n", This, notification); + return E_NOTIMPL; +} + +HRESULT WINAPI AudioSessionManager_RegisterDuckNotification( + IAudioSessionManager2 *iface, const WCHAR *session_id, + IAudioVolumeDuckNotification *notification) +{ + SessionMgr *This = impl_from_IAudioSessionManager2(iface); + FIXME("(%p)->(%p) - stub\n", This, notification); + return E_NOTIMPL; +} + +HRESULT WINAPI AudioSessionManager_UnregisterDuckNotification( + IAudioSessionManager2 *iface, + IAudioVolumeDuckNotification *notification) +{ + SessionMgr *This = impl_from_IAudioSessionManager2(iface); + FIXME("(%p)->(%p) - stub\n", This, notification); + return E_NOTIMPL; +} + +static const IAudioSessionManager2Vtbl AudioSessionManager2_Vtbl = +{ + AudioSessionManager_QueryInterface, + AudioSessionManager_AddRef, + AudioSessionManager_Release, + AudioSessionManager_GetAudioSessionControl, + AudioSessionManager_GetSimpleAudioVolume, + AudioSessionManager_GetSessionEnumerator, + AudioSessionManager_RegisterSessionNotification, + AudioSessionManager_UnregisterSessionNotification, + AudioSessionManager_RegisterDuckNotification, + AudioSessionManager_UnregisterDuckNotification +}; + +HRESULT WINAPI AUDDRV_GetAudioSessionManager(IMMDevice *device, + IAudioSessionManager2 **out) +{ + SessionMgr *This; + + This = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(SessionMgr)); + if(!This) + return E_OUTOFMEMORY; + + This->IAudioSessionManager2_iface.lpVtbl = &AudioSessionManager2_Vtbl; + This->device = device; + This->ref = 1; + + *out = &This->IAudioSessionManager2_iface; + + return S_OK; +} diff --git a/dlls_winepulse.drv_winepulse.drv b/dlls_winepulse.drv_winepulse.drv new file mode 100644 index 0000000..819ea12 --- /dev/null +++ b/dlls_winepulse.drv_winepulse.drv @@ -0,0 +1,4 @@ +# MMDevAPI driver functions +@ stdcall -private GetEndpointIDs(long ptr ptr ptr ptr) AUDDRV_GetEndpointIDs +@ stdcall -private GetAudioEndpoint(ptr ptr long ptr) AUDDRV_GetAudioEndpoint +@ stdcall -private GetAudioSessionManager(ptr ptr) AUDDRV_GetAudioSessionManager diff --git a/sources b/sources index 5e16a24..c732477 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -c9850862748bde7994bd757574e8974e wine-1.3.24.tar.bz2 -a9db1ff36532dace37b93771408a7620 wine-1.3.24.tar.bz2.sign +15471f78fee9d211c63381da815cbfb6 wine-1.3.25.tar.bz2 +ba96a3c648f23df05fc5c9d6c412292e wine-1.3.25.tar.bz2.sign diff --git a/wine-README-fedora-pulseaudio b/wine-README-fedora-pulseaudio deleted file mode 100644 index 41645fb..0000000 --- a/wine-README-fedora-pulseaudio +++ /dev/null @@ -1,61 +0,0 @@ -Wine and Pulseaudio Support ---------------------------- -Currently wine does not have native support for pulseaudio. However, some -patches exist to make wine use a native pulseaudio backend (see [1]) -These have been included into the fedora wine package. If you have problems -please do _not_ report them to the wine project. - -Here are some useful configuration options taken from [1]: - -HKCU\Software\Wine\Drivers:Audio -A string which contains a comma seperated list of audio backends for wine to -try, in order of preference. For example “pulse,alsa,esd”. Settable through -winecfg. - -HKCU\Software\Wine\Pulse Driver:MonitorDevices -A string which contains Y or N. If Y, sink monitors will show up as input -devices. If N, only capture sources will be show up as input devices. -Default is Y. - -HKCU\Software\Wine\DirectSound:HardwareAcceleration -A string. Also settable in winecfg. When set to “Emulation” WaveOut will be -used for directsound, which is more likely to work, but will have more latency. -When set to “Full” the directsound driver is tried for directsound support, -resulting in less latency, but possibley failure or bad sound. - -[1] - http://art.ified.ca/?page_id=40 - -Other ways to get wine working with pulseaudio are described below: - -ALSA ----- -To achieve sound output via the wine alsa driver you need to add -a pulseaudio alsa device to the alsa configuration and activate it in wine. See -http://www.pulseaudio.org/wiki/PerfectSetup#ALSAApplications on how to do this. -For this alsa-plugins-pulseaudio.i386 should be installed. - - -Esound ------- -If the pulseaudio-esound-compat package is installed selecting the EsounD driver -in wine should enable sound via pulseaudio. - -OSS ---- -To use the oss driver of wine copy the following script to ~/bin/wine and make -sure that ~/bin is in your path with a higher priority then /usr/bin. The script -will call the pulseaudio dsp wrapper padsp. - -#!/bin/sh -if [ -x /usr/lib*/alsa-lib/libasound_module_pcm_pulse.so ] && [ -x "/usr/bin/padsp" ] ; then - echo "Running padsp as pulseaudio wrapper for wine" - exec padsp -n Wine -- /usr/bin/wine "$@" -else - exec /usr/bin/wine "$@" -fi - -For more information on a good pulseaudio setup see: -http://www.pulseaudio.org/wiki/PerfectSetup - -If you think you have found a bug related to this take a look at the bug -reporting procedure at http://fedoraproject.org/wiki/AndreasBierfert/Wine. diff --git a/wine-pulseaudio-configure.patch b/wine-pulseaudio-configure.patch new file mode 100644 index 0000000..eda998f --- /dev/null +++ b/wine-pulseaudio-configure.patch @@ -0,0 +1,223 @@ +--- wine-1.3.25/configure.winepulse-configure 2011-07-22 19:32:43.000000000 +0200 ++++ wine-1.3.25/configure 2011-08-01 19:53:18.268715283 +0200 +@@ -628,6 +628,8 @@ + ALSALIBS + GSTREAMER_INCL + GSTREAMER_LIBS ++PULSEINCL ++PULSELIBS + LIBGETTEXTPO + ZLIB + FREETYPEINCL +@@ -799,6 +801,7 @@ + with_oss + with_png + with_pthread ++with_pulse + with_sane + with_tiff + with_v4l +@@ -1488,6 +1491,7 @@ + --without-oss do not use the OSS sound support + --without-png do not use PNG + --without-pthread do not use the pthread library ++ --without-pulse do not use PulseAudio sound support + --without-sane do not use SANE (scanner support) + --without-tiff do not use TIFF + --without-v4l do not use v4l1 (v4l support) +@@ -2661,6 +2665,12 @@ + fi + + ++# Check whether --with-pulse was given. ++if test "${with_pulse+set}" = set; then : ++ withval=$with_pulse; ++fi ++ ++ + # Check whether --with-sane was given. + if test "${with_sane+set}" = set; then : + withval=$with_sane; +@@ -10504,6 +10514,87 @@ + fi + fi + ++PULSELIBS="" ++ ++PULSEINCL="" ++ ++if test "x$with_pulse" != "xno"; ++then ++ ac_save_CPPFLAGS="$CPPFLAGS" ++ if test "$PKG_CONFIG" != "false"; ++ then ++ ac_pulse_libs="`$PKG_CONFIG --libs libpulse 2>/dev/null`" ++ ac_pulse_cflags="`$PKG_CONFIG --cflags-only-I libpulse 2>/dev/null`" ++ ++ CPPFLAGS="$CPPFLAGS $ac_pulse_cflags" ++ for ac_header in pulse/pulseaudio.h ++do : ++ ac_fn_c_check_header_mongrel "$LINENO" "pulse/pulseaudio.h" "ac_cv_header_pulse_pulseaudio_h" "$ac_includes_default" ++if test "x$ac_cv_header_pulse_pulseaudio_h" = xyes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_PULSE_PULSEAUDIO_H 1 ++_ACEOF ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pa_stream_is_corked in -lpulse" >&5 ++$as_echo_n "checking for pa_stream_is_corked in -lpulse... " >&6; } ++if ${ac_cv_lib_pulse_pa_stream_is_corked+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lpulse $ac_pulse_libs $LIBS" ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++/* Override any GCC internal prototype to avoid an error. ++ Use char because int might match the return type of a GCC ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char pa_stream_is_corked (); ++int ++main () ++{ ++return pa_stream_is_corked (); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_lib_pulse_pa_stream_is_corked=yes ++else ++ ac_cv_lib_pulse_pa_stream_is_corked=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pulse_pa_stream_is_corked" >&5 ++$as_echo "$ac_cv_lib_pulse_pa_stream_is_corked" >&6; } ++if test "x$ac_cv_lib_pulse_pa_stream_is_corked" = xyes; then : ++ ++$as_echo "#define HAVE_PULSEAUDIO 1" >>confdefs.h ++ ++ PULSELIBS="$ac_pulse_libs" ++ PULSEINCL="$ac_pulse_cflags" ++fi ++ ++ ++fi ++ ++done ++ ++ fi ++ CPPFLAGS="$ac_save_CPPFLAGS" ++fi ++if test "$ac_cv_lib_pulse_pa_stream_is_corked" != "yes"; then : ++ case "x$with_pulse" in ++ x) as_fn_append wine_warnings "|libpulse ${notice_platform}development files not found or too old, Pulse won't be supported." ;; ++ xno) ;; ++ *) as_fn_error $? "libpulse ${notice_platform}development files not found or too old, Pulse won't be supported. ++This is an error since --with-pulse was requested." "$LINENO" 5 ;; ++esac ++fi ++ + if test "x$with_gstreamer" != "xno" + then + ac_save_CPPFLAGS="$CPPFLAGS" +@@ -11742,12 +11833,13 @@ + + test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no} + test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no} ++test -n "$PULSELIBS" || enable_winepulse_drv=${enable_winepulse_drv:-no} + test "x$ac_cv_member_oss_sysinfo_numaudioengines" = xyes || enable_wineoss_drv=${enable_wineoss_drv:-no} + test "$ac_cv_header_linux_joystick_h" = "yes" || enable_winejoystick_drv=${enable_winejoystick_drv:-no} + +-if test "x$ALSALIBS$COREAUDIOLIBS" = "x" -a \ ++if test "x$ALSALIBS$COREAUDIOLIBS$PULSELIBS" = "x" -a \ + "x$ac_cv_member_oss_sysinfo_numaudioengines" != xyes -a \ +- "x$with_alsa$with_coreaudio$with_oss" != xnonono ++ "x$with_alsa$with_coreaudio$with_oss$with_pulse" != xnonono + then + as_fn_append wine_warnings "|No sound system was found. Windows applications will be silent." + fi +@@ -15155,10 +15247,12 @@ + wine_fn_config_dll winegstreamer enable_winegstreamer + wine_fn_config_dll winejoystick.drv enable_winejoystick_drv + wine_fn_config_dll winemapi enable_winemapi ++wine_fn_config_dll winemmaudio.drv enable_winemmaudio_drv + wine_fn_config_dll winemp3.acm enable_winemp3_acm + wine_fn_config_dll wineoss.drv enable_wineoss_drv + wine_fn_config_dll wineps.drv enable_wineps_drv install-lib + wine_fn_config_dll wineps16.drv16 enable_win16 ++wine_fn_config_dll winepulse.drv enable_winepulse_drv + wine_fn_config_dll wineqtdecoder enable_wineqtdecoder + wine_fn_config_dll winequartz.drv enable_winequartz_drv + wine_fn_config_dll winex11.drv enable_winex11_drv +--- wine-1.3.25/configure.ac.winepulse-configure 2011-07-22 19:32:43.000000000 +0200 ++++ wine-1.3.25/configure.ac 2011-08-01 19:51:41.206755129 +0200 +@@ -73,6 +73,7 @@ + [if test "x$withval" = "xno"; then ac_cv_header_png_h=no; fi]) + AC_ARG_WITH(pthread, AS_HELP_STRING([--without-pthread],[do not use the pthread library]), + [if test "x$withval" = "xno"; then ac_cv_header_pthread_h=no; fi]) ++AC_ARG_WITH(pulse, AC_HELP_STRING([--without-pulse],[do not use PulseAudio sound support])) + AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)])) + AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF]), + [if test "x$withval" = "xno"; then ac_cv_header_tiffio_h=no; fi]) +@@ -1435,6 +1436,30 @@ + WINE_WARNING_WITH(gettextpo,[test "x$LIBGETTEXTPO" = "x"],[GetText ${notice_platform}development files not found (or too old). Internationalization won't be fully supported.]) + fi + ++dnl **** Check for PulseAudio **** ++AC_SUBST(PULSELIBS,"") ++AC_SUBST(PULSEINCL,"") ++if test "x$with_pulse" != "xno"; ++then ++ ac_save_CPPFLAGS="$CPPFLAGS" ++ if test "$PKG_CONFIG" != "false"; ++ then ++ ac_pulse_libs="`$PKG_CONFIG --libs libpulse 2>/dev/null`" ++ ac_pulse_cflags="`$PKG_CONFIG --cflags-only-I libpulse 2>/dev/null`" ++ ++ CPPFLAGS="$CPPFLAGS $ac_pulse_cflags" ++ AC_CHECK_HEADERS(pulse/pulseaudio.h, ++ [AC_CHECK_LIB(pulse, pa_stream_is_corked, ++ [AC_DEFINE(HAVE_PULSEAUDIO, 1, [Define if you have pulseaudio]) ++ PULSELIBS="$ac_pulse_libs" ++ PULSEINCL="$ac_pulse_cflags"],,$ac_pulse_libs) ++ ]) ++ fi ++ CPPFLAGS="$ac_save_CPPFLAGS" ++fi ++WINE_WARNING_WITH(pulse, [test "$ac_cv_lib_pulse_pa_stream_is_corked" != "yes"], ++ [libpulse ${notice_platform}development files not found or too old, Pulse won't be supported.]) ++ + dnl **** Check for gstreamer **** + if test "x$with_gstreamer" != "xno" + then +@@ -1636,13 +1661,14 @@ + dnl **** Disable unsupported winmm drivers **** + test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no} + test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no} ++test -n "$PULSELIBS" || enable_winepulse_drv=${enable_winepulse_drv:-no} + test "x$ac_cv_member_oss_sysinfo_numaudioengines" = xyes || enable_wineoss_drv=${enable_wineoss_drv:-no} + test "$ac_cv_header_linux_joystick_h" = "yes" || enable_winejoystick_drv=${enable_winejoystick_drv:-no} + + dnl **** Check for any sound system **** +-if test "x$ALSALIBS$COREAUDIOLIBS" = "x" -a \ ++if test "x$ALSALIBS$COREAUDIOLIBS$PULSELIBS" = "x" -a \ + "x$ac_cv_member_oss_sysinfo_numaudioengines" != xyes -a \ +- "x$with_alsa$with_coreaudio$with_oss" != xnonono ++ "x$with_alsa$with_coreaudio$with_oss$with_pulse" != xnonono + then + WINE_WARNING([No sound system was found. Windows applications will be silent.]) + fi +@@ -2832,6 +2858,7 @@ + WINE_CONFIG_DLL(wineoss.drv) + WINE_CONFIG_DLL(wineps.drv,,[install-lib]) + WINE_CONFIG_DLL(wineps16.drv16,enable_win16) ++WINE_CONFIG_DLL(winepulse.drv) + WINE_CONFIG_DLL(wineqtdecoder) + WINE_CONFIG_DLL(winequartz.drv) + WINE_CONFIG_DLL(winex11.drv) diff --git a/wine-udisks1.patch b/wine-udisks1.patch new file mode 100644 index 0000000..597271a --- /dev/null +++ b/wine-udisks1.patch @@ -0,0 +1,116 @@ +From: Detlef Riekenberg +Subject: [PATCH 1/2] mountmgr: Make parse_uuid visible, when hal or dbus/udisks is used [try 4] +Message-Id: <1311335756-9824-1-git-send-email-wine.dev@web.de> +Date: Fri, 22 Jul 2011 13:55:55 +0200 + +try 2: +make parse_uuid only visible, when hal or dbus/udisks is used +try 3: +resend without changes +try 4: +Add a comment as reminder to parse NTFS serial number + +-- +By by ... Detlef +--- + dlls/mountmgr.sys/device.c | 32 ++++++++++++++++++++++++++++++++ + dlls/mountmgr.sys/hal.c | 27 --------------------------- + dlls/mountmgr.sys/mountmgr.h | 1 + + 3 files changed, 33 insertions(+), 27 deletions(-) + +diff --git a/dlls/mountmgr.sys/device.c b/dlls/mountmgr.sys/device.c +index a3aa81c..9537551 100644 +--- a/dlls/mountmgr.sys/device.c ++++ b/dlls/mountmgr.sys/device.c +@@ -121,6 +121,38 @@ static char *strdupA( const char *str ) + return ret; + } + ++#if defined (SONAME_LIBDBUS_1) || defined (SONAME_LIBHAL) ++GUID *parse_uuid( GUID *guid, const char *str ) ++{ ++ /* standard uuid format */ ++ if (strlen(str) == 36) ++ { ++ UNICODE_STRING strW; ++ WCHAR buffer[39]; ++ ++ if (MultiByteToWideChar( CP_UNIXCP, 0, str, 36, buffer + 1, 36 )) ++ { ++ buffer[0] = '{'; ++ buffer[37] = '}'; ++ buffer[38] = 0; ++ RtlInitUnicodeString( &strW, buffer ); ++ if (!RtlGUIDFromString( &strW, guid )) return guid; ++ } ++ } ++ ++ /* ToDo: Check for NTFS serial number */ ++ ++ /* check for xxxx-xxxx format (FAT serial number) */ ++ if (strlen(str) == 9 && str[4] == '-') ++ { ++ memset( guid, 0, sizeof(*guid) ); ++ if (sscanf( str, "%hx-%hx", &guid->Data2, &guid->Data3 ) == 2) return guid; ++ } ++ ++ return NULL; ++} ++#endif ++ + static const GUID *get_default_uuid( int letter ) + { + static GUID guid; +diff --git a/dlls/mountmgr.sys/hal.c b/dlls/mountmgr.sys/hal.c +index 82a70e9..ff10a3e 100644 +--- a/dlls/mountmgr.sys/hal.c ++++ b/dlls/mountmgr.sys/hal.c +@@ -106,33 +106,6 @@ static LONG WINAPI assert_fault(EXCEPTION_POINTERS *eptr) + return EXCEPTION_CONTINUE_SEARCH; + } + +-static GUID *parse_uuid( GUID *guid, const char *str ) +-{ +- /* standard uuid format */ +- if (strlen(str) == 36) +- { +- UNICODE_STRING strW; +- WCHAR buffer[39]; +- +- if (MultiByteToWideChar( CP_UNIXCP, 0, str, 36, buffer + 1, 36 )) +- { +- buffer[0] = '{'; +- buffer[37] = '}'; +- buffer[38] = 0; +- RtlInitUnicodeString( &strW, buffer ); +- if (!RtlGUIDFromString( &strW, guid )) return guid; +- } +- } +- +- /* check for xxxx-xxxx format (FAT serial number) */ +- if (strlen(str) == 9 && str[4] == '-') +- { +- memset( guid, 0, sizeof(*guid) ); +- if (sscanf( str, "%hx-%hx", &guid->Data2, &guid->Data3 ) == 2) return guid; +- } +- return NULL; +-} +- + /* HAL callback for new device */ + static void new_device( LibHalContext *ctx, const char *udi ) + { +diff --git a/dlls/mountmgr.sys/mountmgr.h b/dlls/mountmgr.sys/mountmgr.h +index a47a3e3..a8e4389 100644 +--- a/dlls/mountmgr.sys/mountmgr.h ++++ b/dlls/mountmgr.sys/mountmgr.h +@@ -52,6 +52,7 @@ enum device_type + DEVICE_RAMDISK + }; + ++extern GUID *parse_uuid( GUID *guid, const char *str ) DECLSPEC_HIDDEN; + extern NTSTATUS add_volume( const char *udi, const char *device, const char *mount_point, + enum device_type type, const GUID *guid ) DECLSPEC_HIDDEN; + extern NTSTATUS remove_volume( const char *udi ) DECLSPEC_HIDDEN; +-- +1.7.5.4 + diff --git a/wine-udisks2.patch b/wine-udisks2.patch new file mode 100644 index 0000000..e83b339 --- /dev/null +++ b/wine-udisks2.patch @@ -0,0 +1,719 @@ +From: Detlef Riekenberg +Subject: [PATCH 2/2] mountmgr: Support the dbus service udisks for dynamic devices :-) [try 4] +Message-Id: <1311335756-9824-2-git-send-email-wine.dev@web.de> +Date: Fri, 22 Jul 2011 13:55:56 +0200 + +udisks is prefered, but libhal support is still present as fallback. +This allow the libhal requirement on linux to die. + +libhal support in binary packages is only needed, when udisk is +optional for a linux distribution. + +The logic to add/remove the devices/volumes is the same as present in +our libhal support. + +autoheader/autoconf are needed before compilation + +try 2: +remove a trailing space in the code an a trailing " \" in Makefile.in +try 3: +changes for configure.ac where missing in try 2 +try 4 +sync to current git (wineesd was removed) + +-- +By by ... Detlef +--- + configure.ac | 20 ++- + dlls/mountmgr.sys/Makefile.in | 5 +- + dlls/mountmgr.sys/hal.c | 15 ++ + dlls/mountmgr.sys/mountmgr.c | 2 + + dlls/mountmgr.sys/mountmgr.h | 3 + + dlls/mountmgr.sys/udisks.c | 554 +++++++++++++++++++++++++++++++++++++++++ + 6 files changed, 596 insertions(+), 3 deletions(-) + create mode 100644 dlls/mountmgr.sys/udisks.c + +diff --git a/configure.ac b/configure.ac +index b213923..d9d2472 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -42,6 +42,7 @@ AC_ARG_WITH(coreaudio, AS_HELP_STRING([--without-coreaudio],[do not use the Core + AC_ARG_WITH(cups, AS_HELP_STRING([--without-cups],[do not use CUPS])) + AC_ARG_WITH(curses, AS_HELP_STRING([--without-curses],[do not use (n)curses]), + [if test "x$withval" = "xno"; then ac_cv_header_ncurses_h=no; ac_cv_header_curses_h=no; fi]) ++AC_ARG_WITH(dbus, AS_HELP_STRING([--without-dbus],[do not use dbus (dynamic device support)])) + AC_ARG_WITH(fontconfig,AS_HELP_STRING([--without-fontconfig],[do not use fontconfig]), + [if test "x$withval" = "xno"; then ac_cv_header_fontconfig_fontconfig_h=no; fi]) + AC_ARG_WITH(freetype, AS_HELP_STRING([--without-freetype],[do not use the FreeType library])) +@@ -1196,6 +1197,23 @@ fi + WINE_WARNING_WITH(xslt,[test "x$ac_cv_lib_soname_xslt" = "x"], + [libxslt ${notice_platform}development files not found, xslt won't be supported.]) + ++dnl **** Check for libdbus **** ++AC_SUBST(DBUSINCL,"") ++if test "x$with_dbus" != "xno" ++then ++ ac_save_CPPFLAGS="$CPPFLAGS" ++ if test "$PKG_CONFIG" != "false" ++ then ++ ac_dbus_libs="`$PKG_CONFIG --libs dbus-1 2>/dev/null`" ++ ac_dbus_cflags="`$PKG_CONFIG --cflags dbus-1 2>/dev/null`" ++ CPPFLAGS="$CPPFLAGS $ac_dbus_cflags" ++ fi ++ AC_CHECK_HEADER(dbus/dbus.h, ++ [WINE_CHECK_SONAME(dbus-1,dbus_bus_get,[DBUSINCL="$ac_dbus_cflags"],,[$ac_dbus_libs])]) ++ ++ CPPFLAGS="$ac_save_CPPFLAGS" ++fi ++ + dnl **** Check for libhal **** + AC_SUBST(HALINCL,"") + if test "x$with_hal" != "xno" +@@ -1216,7 +1234,7 @@ then + fi + CPPFLAGS="$ac_save_CPPFLAGS" + fi +-WINE_NOTICE_WITH(hal,[test "x$ac_cv_lib_soname_hal" = "x" -a "x$ac_cv_header_DiskArbitration_DiskArbitration_h" != "xyes"], ++WINE_NOTICE_WITH(hal,[test "x$ac_cv_lib_soname_hal" = "x" -a "x$ac_cv_lib_soname_dbus_1" = "x" -a "x$ac_cv_header_DiskArbitration_DiskArbitration_h" != "xyes"], + [libhal/libdbus ${notice_platform}development files not found, no dynamic device support.]) + + dnl **** Check for libgnutls **** +diff --git a/dlls/mountmgr.sys/Makefile.in b/dlls/mountmgr.sys/Makefile.in +index 91203e1..f3355e0 100644 +--- a/dlls/mountmgr.sys/Makefile.in ++++ b/dlls/mountmgr.sys/Makefile.in +@@ -2,13 +2,14 @@ MODULE = mountmgr.sys + IMPORTS = uuid advapi32 ntoskrnl.exe + DELAYIMPORTS = user32 + EXTRADLLFLAGS = -Wb,--subsystem,native +-EXTRADEFS = @HALINCL@ ++EXTRADEFS = @HALINCL@ @DBUSINCL@ + EXTRALIBS = @DISKARBITRATIONLIB@ + + C_SRCS = \ + device.c \ + diskarb.c \ + hal.c \ +- mountmgr.c ++ mountmgr.c \ ++ udisks.c + + @MAKE_DLL_RULES@ +diff --git a/dlls/mountmgr.sys/hal.c b/dlls/mountmgr.sys/hal.c +index ff10a3e..8e31624 100644 +--- a/dlls/mountmgr.sys/hal.c ++++ b/dlls/mountmgr.sys/hal.c +@@ -245,6 +245,21 @@ void initialize_hal(void) + { + HANDLE handle; + ++ /* wait for udisks, when needed */ ++ if (dbus_present) ++ { ++ DWORD res; ++ ++ TRACE("waiting for udisks\n"); ++ res = WaitForSingleObject(dbus_present, 100); ++ ++ if (!res && *udisks_version) ++ { ++ TRACE("Skipping, found udisks\n"); ++ return; ++ } ++ } ++ + if (!load_functions()) return; + if (!(handle = CreateThread( NULL, 0, hal_thread, NULL, 0, NULL ))) return; + CloseHandle( handle ); +diff --git a/dlls/mountmgr.sys/mountmgr.c b/dlls/mountmgr.sys/mountmgr.c +index 4e9900f..df0dbd3 100644 +--- a/dlls/mountmgr.sys/mountmgr.c ++++ b/dlls/mountmgr.sys/mountmgr.c +@@ -443,6 +443,8 @@ NTSTATUS WINAPI DriverEntry( DRIVER_OBJECT *driver, UNICODE_STRING *path ) + RtlInitUnicodeString( &nameW, harddiskW ); + status = IoCreateDriver( &nameW, harddisk_driver_entry ); + ++ /* start udisks before hal */ ++ initialize_udisks(); + initialize_hal(); + initialize_diskarbitration(); + +diff --git a/dlls/mountmgr.sys/mountmgr.h b/dlls/mountmgr.sys/mountmgr.h +index a8e4389..3c3c564 100644 +--- a/dlls/mountmgr.sys/mountmgr.h ++++ b/dlls/mountmgr.sys/mountmgr.h +@@ -35,8 +35,11 @@ + #define WINE_MOUNTMGR_EXTENSIONS + #include "ddk/mountmgr.h" + ++extern void initialize_udisks(void) DECLSPEC_HIDDEN; + extern void initialize_hal(void) DECLSPEC_HIDDEN; + extern void initialize_diskarbitration(void) DECLSPEC_HIDDEN; ++extern HANDLE dbus_present; ++extern char udisks_version[]; + + /* device functions */ + +diff --git a/dlls/mountmgr.sys/udisks.c b/dlls/mountmgr.sys/udisks.c +new file mode 100644 +index 0000000..898f41d +--- /dev/null ++++ b/dlls/mountmgr.sys/udisks.c +@@ -0,0 +1,554 @@ ++/* ++ * udisks devices support ++ * ++ * Copyright 2006 Alexandre Julliard ++ * Copyright 2011 Detlef Riekenberg ++ * ++ * 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, write to the Free Software ++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA ++ */ ++ ++#include "config.h" ++#include "wine/port.h" ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include "mountmgr.h" ++#include "winnls.h" ++#include "excpt.h" ++ ++#include "wine/library.h" ++#include "wine/exception.h" ++#include "wine/debug.h" ++ ++WINE_DEFAULT_DEBUG_CHANNEL(mountmgr); ++ ++HANDLE dbus_present = NULL; ++char udisks_version[32]; ++ ++#ifdef SONAME_LIBDBUS_1 ++ ++#include ++ ++/* ########## */ ++ ++typedef struct properties_s { ++ CHAR *device_file; ++ CHAR *id_usage; ++ CHAR *id_type; ++ CHAR *id_uuid; ++ BOOL device_is_mounted; ++ BOOL device_is_optical_disc; ++ BOOL device_is_removable; ++ CHAR *device_mount_paths; ++ CHAR *drive_media; ++ CHAR *drive_media_compatibility; ++ int depth; ++ const char * last_name; ++}properties_t; ++ ++static const char *my_match_rule = "interface=org.freedesktop.UDisks"; ++static const char *dest_udisks_device = "org.freedesktop.UDisks.Device"; ++static const char *dest_udisks = "org.freedesktop.UDisks"; ++static const char *path_udisks = "/org/freedesktop/UDisks"; ++static const char *iface_dbus_prop = "org.freedesktop.DBus.Properties"; ++static const char *daemonversion = "DaemonVersion"; ++ ++/* ########## */ ++ ++#define DBUS_FUNCS \ ++ DO_FUNC(dbus_bus_add_match); \ ++ DO_FUNC(dbus_bus_get); \ ++ DO_FUNC(dbus_bus_remove_match); \ ++ DO_FUNC(dbus_connection_pop_message); \ ++ DO_FUNC(dbus_connection_read_write_dispatch); \ ++ DO_FUNC(dbus_connection_send_with_reply_and_block); \ ++ DO_FUNC(dbus_connection_unref); \ ++ DO_FUNC(dbus_error_free); \ ++ DO_FUNC(dbus_error_init); \ ++ DO_FUNC(dbus_error_is_set); \ ++ DO_FUNC(dbus_message_append_args); \ ++ DO_FUNC(dbus_message_get_member); \ ++ DO_FUNC(dbus_message_iter_get_arg_type); \ ++ DO_FUNC(dbus_message_iter_get_basic); \ ++ DO_FUNC(dbus_message_iter_init); \ ++ DO_FUNC(dbus_message_iter_next); \ ++ DO_FUNC(dbus_message_iter_recurse); \ ++ DO_FUNC(dbus_message_new_method_call); \ ++ DO_FUNC(dbus_message_type_to_string); \ ++ DO_FUNC(dbus_message_unref) ++ ++#define DO_FUNC(f) static typeof(f) * p_##f ++DBUS_FUNCS; ++#undef DO_FUNC ++ ++ ++static BOOL load_dbus_functions(void) ++{ ++ void *dbus_handle; ++ char error[128]; ++ ++ if (!(dbus_handle = wine_dlopen(SONAME_LIBDBUS_1, RTLD_NOW|RTLD_GLOBAL, error, sizeof(error)))) ++ goto failed; ++ ++#define DO_FUNC(f) if (!(p_##f = wine_dlsym(RTLD_DEFAULT, #f, error, sizeof(error)))) goto failed ++ DBUS_FUNCS; ++#undef DO_FUNC ++ ++ return TRUE; ++ ++failed: ++ WARN("failed to load udisks support: %s\n", error); ++ return FALSE; ++} ++ ++/* ########## */ ++ ++static LONG WINAPI assert_fault(EXCEPTION_POINTERS *eptr) ++{ ++ if (eptr->ExceptionRecord->ExceptionCode == EXCEPTION_WINE_ASSERTION) ++ return EXCEPTION_EXECUTE_HANDLER; ++ return EXCEPTION_CONTINUE_SEARCH; ++} ++ ++/* ######################################### ++ * get_properties_from_iter [internal] ++ * ++ * NOTES ++ * format of args in a reply from GetAll: ++ * an ARRAY of DICT_ENTRY ++ * each DICT_ENTRY has a STRING (property name) and a VARIANT (property value) ++ * each VARIANT has a BOOLEAN or a STRING or an ARRAY of STRING or an here unused value ++ */ ++static BOOL get_properties_from_iter(properties_t * p, DBusMessageIter * iter) ++{ ++ DBusMessageIter sub; ++ int arg_type = p_dbus_message_iter_get_arg_type(iter); ++ ++ p->depth++; ++ while (arg_type != DBUS_TYPE_INVALID) ++ { ++ if ((arg_type == DBUS_TYPE_ARRAY) || ++ (arg_type == DBUS_TYPE_DICT_ENTRY) || ++ (arg_type == DBUS_TYPE_VARIANT)) ++ { ++ p_dbus_message_iter_recurse(iter, &sub); ++ if (!get_properties_from_iter(p, &sub)) ++ { ++ p->depth--; ++ return FALSE; ++ } ++ } ++ else if (arg_type == DBUS_TYPE_STRING) ++ { ++ char * data; ++ p_dbus_message_iter_get_basic(iter, &data); ++ if (p->depth == 3) p->last_name = data; ++ else if (p->last_name) ++ { ++ if (!strcmp(p->last_name, "DeviceFile")) ++ p->device_file = data; ++ else if (!strcmp(p->last_name, "DeviceMountPaths")) ++ p->device_mount_paths = data; /* use only the first entry */ ++ else if (!strcmp(p->last_name, "DriveMedia")) ++ p->drive_media = data; ++ else if (!strcmp(p->last_name, "DriveMediaCompatibility")) ++ p->drive_media_compatibility = data; /* use only the first entry */ ++ else if (!strcmp(p->last_name, "IdType")) ++ p->id_type = data; ++ else if (!strcmp(p->last_name, "IdUsage")) ++ p->id_usage = data; ++ else if (!strcmp(p->last_name, "IdUuid")) ++ p->id_uuid = data; ++ ++ p->last_name = NULL; ++ } ++ } ++ else if (arg_type == DBUS_TYPE_BOOLEAN) ++ { ++ dbus_bool_t data; ++ if (p->last_name) ++ { ++ p_dbus_message_iter_get_basic(iter, &data); ++ if (!strcmp(p->last_name, "DeviceIsMounted")) ++ p->device_is_mounted = data; ++ else if (!strcmp(p->last_name, "DeviceIsOpticalDisc")) ++ p->device_is_optical_disc = data; ++ else if (!strcmp(p->last_name, "DeviceIsRemovable")) ++ p->device_is_removable = data; ++ ++ p->last_name = NULL; ++ } ++ } ++ ++ p_dbus_message_iter_next(iter); ++ arg_type = p_dbus_message_iter_get_arg_type(iter); ++ } ++ p->depth--; ++ return TRUE; ++} ++ ++/* ########### */ ++ ++static DBusMessage * get_properties_from_path(properties_t * p, DBusConnection *ctx, const char * path) ++{ ++ DBusMessage *request; ++ DBusMessage *reply = NULL; ++ DBusMessageIter iter; ++ DBusError error; ++ ++ TRACE("(%p, %p, %s)\n", p, ctx, path); ++ ++ memset(p, 0, sizeof(properties_t)); ++ request = p_dbus_message_new_method_call(dest_udisks, path, iface_dbus_prop, "GetAll"); ++ if (request) ++ { ++ if (p_dbus_message_append_args(request, DBUS_TYPE_STRING, &dest_udisks_device, DBUS_TYPE_INVALID)) ++ { ++ p_dbus_error_init(&error); ++ if ((reply = p_dbus_connection_send_with_reply_and_block(ctx, request, -1, &error))) ++ { ++ p_dbus_message_iter_init(reply, &iter); ++ get_properties_from_iter(p, &iter); ++ } ++ else ++ WARN("no reply for %s\n", path); ++ ++ p_dbus_error_free(&error); ++ } ++ else ++ WARN("dbus_message_append_args failed for 'GetAll'\n"); ++ ++ p_dbus_message_unref(request); ++ } ++ return reply; ++} ++ ++/* ########### */ ++ ++static int get_drive_type(properties_t * p) ++{ ++ /* examples: optical_cd, optical_cd_rw, optical_dvd_plus_r_dl */ ++ if (p->device_is_optical_disc && p->drive_media && !memcmp(p->drive_media, "optical_", 8)) ++ { ++ if (!memcmp(p->drive_media + 8, "cd", 2)) ++ return DEVICE_CDROM; ++ else ++ return DEVICE_DVD; ++ } ++ else if (p->drive_media_compatibility && !strcmp(p->drive_media_compatibility, "floppy")) ++ return DEVICE_FLOPPY; ++ else if (!p->device_is_removable && p->id_usage && !strcmp(p->id_usage, "filesystem")) ++ return DEVICE_HARDDISK_VOL; ++ ++ return DEVICE_UNKNOWN; ++} ++ ++/* ########### */ ++ ++static void udisks_add_device(DBusConnection *ctx, const char *path) ++{ ++ DBusMessage *reply; ++ properties_t p; ++ GUID guid; ++ GUID *guid_ptr = NULL; ++ ++ TRACE("%s\n", debugstr_a(path)); ++ ++ reply = get_properties_from_path(&p, ctx, path); ++ if (reply) ++ { ++ int drive_type = get_drive_type(&p); ++ ++ TRACE("DeviceFile: %s\n", p.device_file); ++ TRACE("IdUsage: %s\n", p.id_usage); ++ TRACE("IdType: %s\n", p.id_type); ++ TRACE("IdUuid: %s\n", p.id_uuid); ++ TRACE("DeviceIsMounted: %d (%s)\n", p.device_is_mounted, p.device_is_mounted ? "true" : "false"); ++ TRACE("DeviceIsOpticalDisc: %d (%s)\n", p.device_is_optical_disc, p.device_is_optical_disc ? "true" : "false"); ++ TRACE("DeviceIsRemovable: %d (%s)\n", p.device_is_removable, p.device_is_removable ? "true" : "false"); ++ TRACE("DeviceMountPaths: %s\n", p.device_mount_paths); ++ TRACE("DriveMedia: %s\n", p.drive_media); ++ TRACE("DriveMediaCompatibility: %s\n", p.drive_media_compatibility); ++ TRACE("using drive_type: %d\n", drive_type); ++ ++ if (p.device_is_mounted && p.device_mount_paths) ++ { ++ if (p.id_uuid) ++ guid_ptr = parse_uuid(&guid, p.id_uuid); ++ ++ if (p.device_is_removable) ++ add_dos_device(-1, path, p.device_file, p.device_mount_paths, drive_type, guid_ptr); ++ else if (guid_ptr) ++ add_volume(path, p.device_file, p.device_mount_paths, DEVICE_HARDDISK_VOL, guid_ptr); ++ ++ } ++ p_dbus_message_unref(reply); ++ } ++} ++ ++static void udisks_remove_device(DBusConnection *ctx, const char *path) ++{ ++ TRACE("%s\n", debugstr_a(path)); ++ ++ if (remove_dos_device(-1, path)) ++ remove_volume(path); ++} ++ ++static void udisks_change_device(DBusConnection *ctx, const char *path) ++{ ++ DBusMessage *reply; ++ properties_t p; ++ ++ TRACE("%s\n", debugstr_a(path)); ++ ++ reply = get_properties_from_path(&p, ctx, path); ++ if (reply) ++ { ++ int drive_type = get_drive_type(&p); ++ ++ if (p.device_is_mounted && p.device_mount_paths) ++ udisks_add_device(ctx, path); ++ else ++ { ++ TRACE("DeviceFile: %s\n", p.device_file); ++ TRACE("IdUsage: %s\n", p.id_usage); ++ TRACE("IdType: %s\n", p.id_type); ++ TRACE("IdUuid: %s\n", p.id_uuid); ++ TRACE("DeviceIsMounted: %d (%s)\n", p.device_is_mounted, p.device_is_mounted ? "true" : "false"); ++ TRACE("DeviceIsOpticalDisc: %d (%s)\n", p.device_is_optical_disc, p.device_is_optical_disc ? "true" : "false"); ++ TRACE("DeviceIsRemovable: %d (%s)\n", p.device_is_removable, p.device_is_removable ? "true" : "false"); ++ TRACE("DeviceMountPaths: %s\n", p.device_mount_paths); ++ TRACE("DriveMedia: %s\n", p.drive_media); ++ TRACE("DriveMediaCompatibility: %s\n", p.drive_media_compatibility); ++ TRACE("using drive_type: %d\n", drive_type); ++ ++ udisks_remove_device(ctx, path); ++ } ++ p_dbus_message_unref(reply); ++ } ++} ++ ++/* ########### */ ++ ++static void udisks_get_all_devices(DBusConnection *ctx) ++{ ++ DBusMessage *request; ++ DBusMessage *reply; ++ DBusMessageIter iter; ++ DBusMessageIter sub; ++ DBusError error; ++ int arg_type; ++ ++ request = p_dbus_message_new_method_call(dest_udisks, path_udisks, dest_udisks, "EnumerateDevices"); ++ if (request) ++ { ++ p_dbus_error_init(&error); ++ if ((reply = p_dbus_connection_send_with_reply_and_block(ctx, request, -1, &error))) ++ { ++ p_dbus_message_iter_init(reply, &iter); ++ arg_type = p_dbus_message_iter_get_arg_type(&iter); ++ if (arg_type == DBUS_TYPE_ARRAY) ++ { ++ p_dbus_message_iter_recurse(&iter, &sub); ++ while ((arg_type = p_dbus_message_iter_get_arg_type(&sub)) == DBUS_TYPE_OBJECT_PATH) ++ { ++ char * data; ++ p_dbus_message_iter_get_basic(&sub, &data); ++ udisks_add_device(ctx, data); ++ p_dbus_message_iter_next(&sub); ++ } ++ } ++ else ++ WARN("expected ARRAY, got %c\n", arg_type); ++ ++ p_dbus_message_unref(reply); ++ } ++ p_dbus_error_free(&error); ++ p_dbus_message_unref(request); ++ } ++} ++ ++/* ########## */ ++ ++static void udisks_get_version(DBusConnection *ctx) ++{ ++ DBusMessage *request; ++ DBusMessage *reply; ++ DBusMessageIter iter; ++ DBusMessageIter sub; ++ DBusError error; ++ int arg_type; ++ ++ request = p_dbus_message_new_method_call(dest_udisks, path_udisks, iface_dbus_prop, "Get"); ++ if (request) ++ { ++ if (p_dbus_message_append_args(request, DBUS_TYPE_STRING, &dest_udisks, ++ DBUS_TYPE_STRING, &daemonversion, ++ DBUS_TYPE_INVALID)) ++ { ++ p_dbus_error_init(&error); ++ if ((reply = p_dbus_connection_send_with_reply_and_block(ctx, request, -1, &error))) ++ { ++ p_dbus_message_iter_init(reply, &iter); ++ arg_type = p_dbus_message_iter_get_arg_type(&iter); ++ if (arg_type == DBUS_TYPE_VARIANT) ++ { ++ p_dbus_message_iter_recurse(&iter, &sub); ++ arg_type = p_dbus_message_iter_get_arg_type(&sub); ++ if (arg_type == DBUS_TYPE_STRING) ++ { ++ char * data; ++ p_dbus_message_iter_get_basic(&sub, &data); ++ lstrcpynA(udisks_version, data, sizeof(udisks_version) - 1); ++ TRACE("found udisks daemon %s\n", udisks_version); ++ } ++ else ++ WARN("expected STRING, got %c\n", arg_type); ++ ++ } ++ else ++ WARN("expected VARIANT, got %c\n", arg_type); ++ ++ p_dbus_message_unref(reply); ++ } ++ p_dbus_error_free(&error); ++ } ++ else ++ WARN("dbus_message_append_args failed\n"); ++ ++ p_dbus_message_unref(request); ++ } ++ return; ++ ++} ++ ++/* ##### */ ++ ++static DWORD WINAPI udisks_thread( void *arg ) ++{ ++ DBusConnection *ctx; ++ DBusMessage *msg; ++ DBusMessageIter iter; ++ DBusError error; ++ const char *member; ++ int arg_type; ++ char *data; ++ ++ p_dbus_error_init(&error); ++ ctx = p_dbus_bus_get(DBUS_BUS_SYSTEM, &error); ++ ++ if (!ctx) ++ { ++ SetEvent(dbus_present); /* wakeup hal support */ ++ WARN("failed to get system dbus connection: %s\n", error.message); ++ p_dbus_error_free(&error); ++ return 1; ++ } ++ ++ p_dbus_bus_add_match(ctx, my_match_rule, &error); ++ if (p_dbus_error_is_set(&error)) ++ { ++ SetEvent(dbus_present); /* wakeup hal support */ ++ WARN("add dbus filter failed: %s\n", error.message); ++ p_dbus_error_free(&error); ++ p_dbus_connection_unref(ctx); ++ return 1; ++ } ++ ++ udisks_get_version(ctx); ++ SetEvent(dbus_present); /* wakeup hal support */ ++ ++ if (!*udisks_version) ++ { ++ TRACE("udisks service not available\n"); ++ p_dbus_bus_remove_match(ctx, my_match_rule, NULL); ++ p_dbus_error_free(&error); ++ p_dbus_connection_unref(ctx); ++ return 1; ++ } ++ ++ __TRY ++ { ++ /* retrieve all existing devices */ ++ udisks_get_all_devices(ctx); ++ ++ while (p_dbus_connection_read_write_dispatch(ctx, -1 )) ++ { ++ while ((msg = p_dbus_connection_pop_message(ctx))) ++ { ++ member = p_dbus_message_get_member(msg); ++ p_dbus_message_iter_init(msg, &iter); ++ arg_type = p_dbus_message_iter_get_arg_type(&iter); ++ ++ if (arg_type == DBUS_TYPE_OBJECT_PATH) ++ p_dbus_message_iter_get_basic(&iter, &data); ++ ++ if (!lstrcmpA(member, "DeviceChanged")) ++ udisks_change_device(ctx, data); ++ else if (!lstrcmpA(member, "DeviceAdded")) ++ udisks_add_device(ctx, data); ++ else if (!lstrcmpA(member, "DeviceRemoved")) ++ udisks_remove_device(ctx, data); ++ else if (lstrcmpA(member, "DeviceJobChanged")) ++ WARN("got signal for %s\n", member); ++ ++ p_dbus_message_unref(msg); ++ } ++ } ++ } ++ __EXCEPT(assert_fault) ++ { ++ WARN("dbus assertion failure, disabling UDisks support\n"); ++ return 1; ++ } ++ __ENDTRY; ++ ++ p_dbus_bus_remove_match(ctx, my_match_rule, NULL); ++ p_dbus_error_free(&error); ++ p_dbus_connection_unref(ctx); ++ return 0; ++} ++ ++void initialize_udisks(void) ++{ ++ HANDLE handle = NULL; ++ ++ dbus_present = NULL; ++ *udisks_version = 0; ++ if (!load_dbus_functions()) return; ++ ++ /* delay hal support, start udisks thread */ ++ if (!(dbus_present = CreateEventW(NULL, TRUE, FALSE, NULL)) || ++ !(handle = CreateThread(NULL, 0, udisks_thread, NULL, 0, NULL))) ++ { ++ /* something failed: wakeup hal now */ ++ if (dbus_present) SetEvent(dbus_present); ++ return; ++ } ++ CloseHandle(handle); ++} ++ ++#else /* SONAME_LIBDBUS_1 */ ++ ++void initialize_udisks(void) ++{ ++ TRACE("Skipping, DBUS support not compiled in\n"); ++} ++ ++#endif /* SONAME_LIBDBUS_1 */ +-- +1.7.5.4 + diff --git a/wine.spec b/wine.spec index c75aac4..5432bdb 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ %global no64bit 0 Name: wine -Version: 1.3.24 +Version: 1.3.25 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -37,14 +37,20 @@ Source300: wine-mime-msi.desktop Patch200: wine-imagemagick-6.5.patch -# explain how to use wine with pulseaudio -# see http://bugs.winehq.org/show_bug.cgi?id=10495 -# and http://art.ified.ca/?page_id=40 -Patch400: http://art.ified.ca/downloads/winepulse/winepulse-configure.ac-1.3.22.patch -Patch401: http://art.ified.ca/downloads/winepulse/winepulse-0.40.patch -Patch402: http://art.ified.ca/downloads/winepulse/winepulse-winecfg-1.3.11.patch -Source402: wine-README-fedora-pulseaudio - +# pull pulse parts from Maarten Lankhorst multimedia repository +# http://repo.or.cz/w/wine/multimedia.git +Patch400: wine-pulseaudio-configure.patch +Source401: dlls_winepulse.drv_Makefile.in +Source402: dlls_winepulse.drv_mmdevdrv.c +Source403: dlls_winepulse.drv_winepulse.drv + +# add udisks support +# https://bugzilla.redhat.com/show_bug.cgi?id=712755 +# http://bugs.winehq.org/show_bug.cgi?id=21713 +# http://source.winehq.org/patches/data/76788 +# http://source.winehq.org/patches/data/76787 +Patch410: wine-udisks1.patch +Patch411: wine-udisks2.patch # smooth tahoma (#693180) # disable embedded bitmaps @@ -66,7 +72,6 @@ BuildRequires: autoconf BuildRequires: desktop-file-utils BuildRequires: alsa-lib-devel BuildRequires: audiofile-devel -BuildRequires: esound-devel BuildRequires: freeglut-devel BuildRequires: lcms-devel BuildRequires: libieee1284-devel @@ -84,7 +89,6 @@ BuildRequires: sane-backends-devel BuildRequires: zlib-devel BuildRequires: fontforge freetype-devel BuildRequires: libgphoto2-devel -BuildRequires: jack-audio-connection-kit-devel # #217338 BuildRequires: isdn4k-utils-devel # modular x @@ -181,6 +185,11 @@ Obsoletes: wine-arts < 0.9.34 Provides: wine-arts = %{version}-%{release} Obsoletes: wine-tools <= 1.1.27 Provides: wine-tools = %{version}-%{release} +# removed as of 1.3.25 (new sound api) +Obsoletes: wine-esd <= 1.3.24 +Provides: wine-esd = %{version}-%{release} +Obsoletes: wine-jack <= 1.3.24 +Provides: wine-jack = %{version}-%{release} # removed as of 1.3.19 (we don't support oss4) Obsoletes: wine-oss <= 1.3.18 Provides: wine-oss = %{version}-%{release} @@ -358,28 +367,6 @@ BuildArch: noarch %description common Common wine files and scripts. -%package esd -Summary: ESD sound support for wine -Group: System Environment/Libraries -Requires: wine-core = %{version}-%{release} - -%description esd -ESD sound support for wine - -%package jack -Summary: JACK sound support for wine -Group: System Environment/Libraries -Requires: wine-core = %{version}-%{release} -%ifarch %{ix86} -Requires: jack-audio-connection-kit(x86-32) -%endif -%ifarch x86_64 -Requires: jack-audio-connection-kit(x86-64) -%endif - -%description jack -JACK sound support for wine - %package ldap Summary: LDAP support for wine Group: System Environment/Libraries @@ -452,10 +439,17 @@ This package adds an openal driver for wine. %prep %setup -q +%patch400 -p1 -b .winepulse-configure +mkdir -p dlls/winepulse.drv +cp -p %{SOURCE401} dlls/winepulse.drv/Makefile.in +cp -p %{SOURCE402} dlls/winepulse.drv/mmdevdrv.c +cp -p %{SOURCE403} dlls/winepulse.drv/winepulse.drv.spec + %patch200 -b .imagemagick -%patch400 -p1 -b .winepulse -%patch401 -p1 -b .winepulse -%patch402 -p1 -b .winepulse + +%patch410 -p1 -b .mountmgr +%patch411 -p1 -b .mountmgr + autoreconf @@ -471,6 +465,7 @@ export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno --x-includes=%{_includedir} --x-libraries=%{_libdir} \ --with-pulse \ --with-x \ + --without-xinput2 \ %ifarch x86_64 --enable-win64 \ %endif @@ -627,7 +622,6 @@ desktop-file-install \ # deploy pulseaudio readme cp %{SOURCE3} README-FEDORA -cp %{SOURCE402} README-FEDORA-PulseAudio cp %{SOURCE502} README-tahoma mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d/ @@ -732,12 +726,6 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %post core -p /sbin/ldconfig %postun core -p /sbin/ldconfig -%post esd -p /sbin/ldconfig -%postun esd -p /sbin/ldconfig - -%post jack -p /sbin/ldconfig -%postun jack -p /sbin/ldconfig - %post ldap -p /sbin/ldconfig %postun ldap -p /sbin/ldconfig @@ -1342,17 +1330,6 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %{_initrddir}/wine - -# esd subpackage -%files esd -%defattr(-,root,root,-) -%{_libdir}/wine/wineesd.drv.so - -# jack subpackage -%files jack -%defattr(-,root,root,-) -%{_libdir}/wine/winejack.drv.so - # ldap subpackage %files ldap %defattr(-,root,root,-) @@ -1406,8 +1383,6 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %files pulseaudio %defattr(-,root,root,-) -# winepulse documentation -%doc README-FEDORA-PulseAudio %{_libdir}/wine/winepulse.drv.so %files alsa @@ -1421,6 +1396,15 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Fri Jul 22 2011 Andreas Bierfert +- 1.3.25-1 +- version upgrade +- remove -jack and -esd (retired upstream) +- rebase to Maarten Lankhorst's winepulse +- drop obsolete winepulse readme +- add udisks support from pending patches (winehq#21713, rhbz#712755) +- disable xinput2 (broken) + * Sun Jul 10 2011 Andreas Bierfert - 1.3.24-1 - version upgrade diff --git a/winepulse-0.40.patch b/winepulse-0.40.patch deleted file mode 100644 index 1831943..0000000 --- a/winepulse-0.40.patch +++ /dev/null @@ -1,2757 +0,0 @@ -diff --git a/dlls/winepulse.drv/Makefile.in b/dlls/winepulse.drv/Makefile.in -new file mode 100644 -index 0000000..a6fdbf8 ---- /dev/null -+++ b/dlls/winepulse.drv/Makefile.in -@@ -0,0 +1,10 @@ -+MODULE = winepulse.drv -+IMPORTS = winmm user32 kernel32 -+EXTRALIBS = @PULSELIBS@ -+EXTRAINCL = @PULSEINCL@ -+ -+C_SRCS = waveout.c \ -+ wavein.c \ -+ pulse.c -+ -+@MAKE_DLL_RULES@ -diff --git a/dlls/winepulse.drv/pulse.c b/dlls/winepulse.drv/pulse.c -new file mode 100644 -index 0000000..04676a6 ---- /dev/null -+++ b/dlls/winepulse.drv/pulse.c -@@ -0,0 +1,880 @@ -+/* -+ * Wine Driver for PulseAudio -+ * http://pulseaudio.org/ -+ * -+ * Copyright 2009 Arthur Taylor -+ * -+ * Contains code from other wine sound drivers. -+ * -+ * 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, write to the Free Software -+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA -+ */ -+ -+#include "config.h" -+ -+#include -+#include -+ -+#include "windef.h" -+#include "winbase.h" -+#include "wingdi.h" -+#include "winuser.h" -+#include "winreg.h" -+#include "mmddk.h" -+#include "ks.h" -+#include "ksguid.h" -+#include "ksmedia.h" -+ -+#ifdef HAVE_UNISTD_H -+# include -+#endif -+#include -+ -+#ifdef HAVE_PULSEAUDIO -+ -+#include "wine/unicode.h" -+#include "wine/debug.h" -+#include "wine/library.h" -+ -+#include -+#include -+WINE_DEFAULT_DEBUG_CHANNEL(wave); -+ -+/* These strings used only for tracing */ -+const char * PULSE_getCmdString(enum win_wm_message msg) { -+ static char unknown[32]; -+#define MSG_TO_STR(x) case x: return #x -+ switch(msg) { -+ MSG_TO_STR(WINE_WM_PAUSING); -+ MSG_TO_STR(WINE_WM_RESTARTING); -+ MSG_TO_STR(WINE_WM_RESETTING); -+ MSG_TO_STR(WINE_WM_HEADER); -+ MSG_TO_STR(WINE_WM_BREAKLOOP); -+ MSG_TO_STR(WINE_WM_CLOSING); -+ MSG_TO_STR(WINE_WM_STARTING); -+ MSG_TO_STR(WINE_WM_STOPPING); -+ MSG_TO_STR(WINE_WM_XRUN); -+ MSG_TO_STR(WINE_WM_FEED); -+ } -+#undef MSG_TO_STR -+ sprintf(unknown, "UNKNOWN(0x%08x)", msg); -+ return unknown; -+} -+ -+/*======================================================================* -+ * Ring Buffer Functions - copied from winealsa.drv * -+ *======================================================================*/ -+ -+/* unless someone makes a wineserver kernel module, Unix pipes are faster than win32 events */ -+#define USE_PIPE_SYNC -+ -+#ifdef USE_PIPE_SYNC -+#define INIT_OMR(omr) do { if (pipe(omr->msg_pipe) < 0) { omr->msg_pipe[0] = omr->msg_pipe[1] = -1; } } while (0) -+#define CLOSE_OMR(omr) do { close(omr->msg_pipe[0]); close(omr->msg_pipe[1]); } while (0) -+#define SIGNAL_OMR(omr) do { int x = 0; write((omr)->msg_pipe[1], &x, sizeof(x)); } while (0) -+#define CLEAR_OMR(omr) do { int x = 0; read((omr)->msg_pipe[0], &x, sizeof(x)); } while (0) -+#define RESET_OMR(omr) do { } while (0) -+#define WAIT_OMR(omr, sleep) \ -+ do { struct pollfd pfd; pfd.fd = (omr)->msg_pipe[0]; \ -+ pfd.events = POLLIN; poll(&pfd, 1, sleep); } while (0) -+#else -+#define INIT_OMR(omr) do { omr->msg_event = CreateEventW(NULL, FALSE, FALSE, NULL); } while (0) -+#define CLOSE_OMR(omr) do { CloseHandle(omr->msg_event); } while (0) -+#define SIGNAL_OMR(omr) do { SetEvent((omr)->msg_event); } while (0) -+#define CLEAR_OMR(omr) do { } while (0) -+#define RESET_OMR(omr) do { ResetEvent((omr)->msg_event); } while (0) -+#define WAIT_OMR(omr, sleep) \ -+ do { WaitForSingleObject((omr)->msg_event, sleep); } while (0) -+#endif -+ -+#define PULSE_RING_BUFFER_INCREMENT 64 -+ -+/****************************************************************** -+ * PULSE_InitRingMessage -+ * -+ * Initialize the ring of messages for passing between driver's caller -+ * and playback/record thread -+ */ -+int PULSE_InitRingMessage(PULSE_MSG_RING* omr) -+{ -+ omr->msg_toget = 0; -+ omr->msg_tosave = 0; -+ INIT_OMR(omr); -+ omr->ring_buffer_size = PULSE_RING_BUFFER_INCREMENT; -+ omr->messages = HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,omr->ring_buffer_size * sizeof(PULSE_MSG)); -+ -+ InitializeCriticalSection(&omr->msg_crst); -+ omr->msg_crst.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": PULSE_MSG_RING.msg_crst"); -+ return 0; -+} -+ -+/****************************************************************** -+ * PULSE_DestroyRingMessage -+ * -+ */ -+int PULSE_DestroyRingMessage(PULSE_MSG_RING* omr) -+{ -+ CLOSE_OMR(omr); -+ HeapFree(GetProcessHeap(),0,omr->messages); -+ omr->messages = NULL; -+ omr->ring_buffer_size = PULSE_RING_BUFFER_INCREMENT; -+ omr->msg_crst.DebugInfo->Spare[0] = 0; -+ DeleteCriticalSection(&omr->msg_crst); -+ return 0; -+} -+/****************************************************************** -+ * PULSE_ResetRingMessage -+ * -+ */ -+void PULSE_ResetRingMessage(PULSE_MSG_RING* omr) -+{ -+ RESET_OMR(omr); -+} -+ -+/****************************************************************** -+ * PULSE_WaitRingMessage -+ * -+ */ -+void PULSE_WaitRingMessage(PULSE_MSG_RING* omr, DWORD sleep) -+{ -+ WAIT_OMR(omr, sleep); -+} -+ -+/****************************************************************** -+ * PULSE_AddRingMessage -+ * -+ * Inserts a new message into the ring (should be called from DriverProc derived routines) -+ */ -+int PULSE_AddRingMessage(PULSE_MSG_RING* omr, enum win_wm_message msg, DWORD param, BOOL wait) -+{ -+ HANDLE hEvent = INVALID_HANDLE_VALUE; -+ -+ EnterCriticalSection(&omr->msg_crst); -+ if ((omr->msg_toget == ((omr->msg_tosave + 1) % omr->ring_buffer_size))) -+ { -+ int old_ring_buffer_size = omr->ring_buffer_size; -+ omr->ring_buffer_size += PULSE_RING_BUFFER_INCREMENT; -+ omr->messages = HeapReAlloc(GetProcessHeap(),0,omr->messages, omr->ring_buffer_size * sizeof(PULSE_MSG)); -+ /* Now we need to rearrange the ring buffer so that the new -+ buffers just allocated are in between omr->msg_tosave and -+ omr->msg_toget. -+ */ -+ if (omr->msg_tosave < omr->msg_toget) -+ { -+ memmove(&(omr->messages[omr->msg_toget + PULSE_RING_BUFFER_INCREMENT]), -+ &(omr->messages[omr->msg_toget]), -+ sizeof(PULSE_MSG)*(old_ring_buffer_size - omr->msg_toget) -+ ); -+ omr->msg_toget += PULSE_RING_BUFFER_INCREMENT; -+ } -+ } -+ if (wait) -+ { -+ hEvent = CreateEventW(NULL, FALSE, FALSE, NULL); -+ if (hEvent == INVALID_HANDLE_VALUE) -+ { -+ ERR("can't create event !?\n"); -+ LeaveCriticalSection(&omr->msg_crst); -+ return 0; -+ } -+ /* fast messages have to be added at the start of the queue */ -+ omr->msg_toget = (omr->msg_toget + omr->ring_buffer_size - 1) % omr->ring_buffer_size; -+ -+ omr->messages[omr->msg_toget].msg = msg; -+ omr->messages[omr->msg_toget].param = param; -+ omr->messages[omr->msg_toget].hEvent = hEvent; -+ } -+ else -+ { -+ omr->messages[omr->msg_tosave].msg = msg; -+ omr->messages[omr->msg_tosave].param = param; -+ omr->messages[omr->msg_tosave].hEvent = INVALID_HANDLE_VALUE; -+ omr->msg_tosave = (omr->msg_tosave + 1) % omr->ring_buffer_size; -+ } -+ LeaveCriticalSection(&omr->msg_crst); -+ /* signal a new message */ -+ SIGNAL_OMR(omr); -+ if (wait) -+ { -+ /* wait for playback/record thread to have processed the message */ -+ WaitForSingleObject(hEvent, INFINITE); -+ CloseHandle(hEvent); -+ } -+ return 1; -+} -+ -+/****************************************************************** -+ * PULSE_RetrieveRingMessage -+ * -+ * Get a message from the ring. Should be called by the playback/record thread. -+ */ -+int PULSE_RetrieveRingMessage(PULSE_MSG_RING* omr, -+ enum win_wm_message *msg, DWORD *param, HANDLE *hEvent) -+{ -+ EnterCriticalSection(&omr->msg_crst); -+ -+ if (omr->msg_toget == omr->msg_tosave) /* buffer empty ? */ -+ { -+ LeaveCriticalSection(&omr->msg_crst); -+ return 0; -+ } -+ -+ *msg = omr->messages[omr->msg_toget].msg; -+ omr->messages[omr->msg_toget].msg = 0; -+ *param = omr->messages[omr->msg_toget].param; -+ *hEvent = omr->messages[omr->msg_toget].hEvent; -+ omr->msg_toget = (omr->msg_toget + 1) % omr->ring_buffer_size; -+ CLEAR_OMR(omr); -+ LeaveCriticalSection(&omr->msg_crst); -+ return 1; -+} -+ -+/************************************************************************** -+ * Win32 threaded mainloop implementation -+ *************************************************************************/ -+ -+static int poll_func(struct pollfd *ufds, unsigned long nfds, int timeout, void *userdata) { -+ int r; -+ -+ PULSE_MainloopUnlock(); -+ r = poll(ufds, nfds, timeout); -+ PULSE_MainloopLock(); -+ -+ return r; -+} -+ -+static DWORD CALLBACK PULSE_Mainloop(LPVOID lpParam) { -+ TRACE("Mainloop thread started\n"); -+ -+ pa_mainloop_set_poll_func(PULSE_ml, poll_func, NULL); -+ -+ PULSE_MainloopLock(); -+ pa_mainloop_run(PULSE_ml, NULL); -+ PULSE_MainloopUnlock(); -+ -+ return 0; -+} -+ -+void PULSE_MainloopStart(void) { -+ TRACE("Mainloop starting\n"); -+ -+ PULSE_ml_hEvent = CreateEventW(NULL, FALSE, FALSE, NULL); -+ PULSE_ml_hMutex = CreateMutexW(NULL, FALSE, NULL); -+ PULSE_ml_hThread = CreateThread(NULL, 0, PULSE_Mainloop, NULL, 0, NULL); -+ -+ TRACE("Mainloop started\n"); -+} -+ -+void PULSE_MainloopStop(void) { -+ TRACE("Mainloop stopping\n"); -+ -+ PULSE_MainloopLock(); -+ pa_mainloop_quit(PULSE_ml, 0); -+ PULSE_MainloopUnlock(); -+ -+ WaitForSingleObject(PULSE_ml_hThread, INFINITE); -+ CloseHandle(PULSE_ml_hThread); -+ CloseHandle(PULSE_ml_hEvent); -+ CloseHandle(PULSE_ml_hMutex); -+ -+ TRACE("Mainloop stopped\n"); -+} -+ -+void PULSE_MainloopLock(void) { -+ DWORD res = WaitForSingleObject(PULSE_ml_hMutex, INFINITE); -+ if (res != WAIT_OBJECT_0) -+ ERR("PULSE_MainloopLock mutex acquire failed: 0x%x\n", res); -+} -+ -+void PULSE_MainloopUnlock(void) { -+ if (!ReleaseMutex(PULSE_ml_hMutex)) -+ ERR("PULSE_MainloopUnlock mutex release failed\n"); -+} -+ -+void PULSE_MainloopWait(void) { -+ DWORD res = SignalObjectAndWait(PULSE_ml_hMutex, PULSE_ml_hEvent, INFINITE, FALSE); -+ if (res != WAIT_OBJECT_0) -+ ERR("PULSE_MainloopWait failed: 0x%x\n", res); -+ -+ PULSE_MainloopLock(); -+} -+ -+void PULSE_MainloopSignal(void) { -+ if (!PulseEvent(PULSE_ml_hEvent)) -+ ERR("PULSE_MainloopSignal failed\n"); -+} -+ -+/************************************************************************** -+ * Utility Functions -+ *************************************************************************/ -+ -+/****************************************************************** -+ * PULSE_SetupFormat -+ * -+ * Checks to see if the audio format in wf is supported, and if so set up the -+ * pa_sample_spec at ss to that format. -+ */ -+BOOL PULSE_SetupFormat(LPWAVEFORMATEX wf, pa_sample_spec *ss) { -+ WAVEFORMATEXTENSIBLE *wfex; -+ -+ ss->channels = wf->nChannels; -+ ss->rate = wf->nSamplesPerSec; -+ ss->format = PA_SAMPLE_INVALID; -+ -+ if (ss->rate < DSBFREQUENCY_MIN || ss->rate > DSBFREQUENCY_MAX) return FALSE; -+ -+ switch (wf->wFormatTag) { -+ case WAVE_FORMAT_PCM: -+ /* MSDN says that for WAVE_FORMAT_PCM, nChannels must be 1 or 2 and -+ * wBitsPerSample must be 8 or 16, yet other values are used by some -+ * applications in the wild for surround. */ -+ if (ss->channels > 6 || ss->channels < 1) return FALSE; -+ ss->format = wf->wBitsPerSample == 8 ? PA_SAMPLE_U8 -+ : wf->wBitsPerSample == 16 ? PA_SAMPLE_S16NE -+ : wf->wBitsPerSample == 32 ? PA_SAMPLE_S32NE -+ : PA_SAMPLE_INVALID; -+ break; -+ -+ case WAVE_FORMAT_MULAW: -+ if (wf->wBitsPerSample == 8) ss->format = PA_SAMPLE_ULAW; -+ break; -+ -+ case WAVE_FORMAT_ALAW: -+ if (wf->wBitsPerSample == 8) ss->format = PA_SAMPLE_ALAW; -+ break; -+ -+ case WAVE_FORMAT_EXTENSIBLE: -+ if (wf->cbSize > 22) return FALSE; -+ if (ss->channels < 1 || ss->channels > 6) return FALSE; -+ wfex = (WAVEFORMATEXTENSIBLE *)wf; -+ if (IsEqualGUID(&wfex->SubFormat, &KSDATAFORMAT_SUBTYPE_PCM)) { -+ if (wf->wBitsPerSample == wfex->Samples.wValidBitsPerSample) { -+ ss->format = wf->wBitsPerSample == 8 ? PA_SAMPLE_U8 -+ : wf->wBitsPerSample == 16 ? PA_SAMPLE_S16NE -+ : wf->wBitsPerSample == 32 ? PA_SAMPLE_S32NE -+ : PA_SAMPLE_INVALID; -+ } else { -+ return FALSE; -+ } -+ } else if (wf->wBitsPerSample != wfex->Samples.wValidBitsPerSample) { -+ return FALSE; -+ } else if ((IsEqualGUID(&wfex->SubFormat, &KSDATAFORMAT_SUBTYPE_IEEE_FLOAT))) { -+ ss->format = PA_SAMPLE_FLOAT32NE; -+ } else { -+ WARN("only KSDATAFORMAT_SUBTYPE_PCM and KSDATAFORMAT_SUBTYPE_IEEE_FLOAT of WAVE_FORMAT_EXTENSIBLE supported\n"); -+ return FALSE; -+ } -+ break; -+ -+ default: -+ WARN("only WAVE_FORMAT_PCM, WAVE_FORMAT_MULAW, WAVE_FORMAT_ALAW and WAVE_FORMAT_EXTENSIBLE supported\n"); -+ return FALSE; -+ } -+ -+ if (!pa_sample_spec_valid(ss)) return FALSE; -+ if (wf->nBlockAlign != pa_frame_size(ss)) { -+ ERR("wf->nBlockAlign != the format frame size!\n"); -+ return FALSE; -+ } -+ -+ return TRUE; -+} -+ -+/****************************************************************** -+ * PULSE_SetupFormat -+ * -+ * Converts the current time to a MMTIME structure. lpTime shold be validated -+ * before calling. -+ */ -+HRESULT PULSE_UsecToMMTime(pa_usec_t time, LPMMTIME lpTime, const pa_sample_spec *ss) { -+ pa_usec_t temp; -+ size_t bytes; -+ -+ /* Convert to milliseconds */ -+ time /= 1000; -+ -+ bytes = time * pa_bytes_per_second(ss) / 1000; -+ /* Align to frame size */ -+ bytes -= bytes % pa_frame_size(ss); -+ -+ switch (lpTime->wType) { -+ case TIME_SAMPLES: -+ lpTime->u.sample = bytes / pa_frame_size(ss); -+ TRACE("TIME_SAMPLES=%u\n", lpTime->u.sample); -+ break; -+ case TIME_MS: -+ lpTime->u.ms = time; -+ TRACE("TIME_MS=%u\n", lpTime->u.ms); -+ break; -+ case TIME_SMPTE: -+ lpTime->u.smpte.fps = 30; -+ temp = bytes / pa_frame_size(ss); -+ temp += ss->rate / lpTime->u.smpte.fps - 1; -+ lpTime->u.smpte.sec = time/1000; -+ temp -= lpTime->u.smpte.sec * ss->rate; -+ lpTime->u.smpte.min = lpTime->u.smpte.sec / 60; -+ lpTime->u.smpte.sec -= 60 * lpTime->u.smpte.min; -+ lpTime->u.smpte.hour = lpTime->u.smpte.min / 60; -+ lpTime->u.smpte.min -= 60 * lpTime->u.smpte.hour; -+ lpTime->u.smpte.frame = temp * lpTime->u.smpte.fps / ss->rate; -+ TRACE("TIME_SMPTE=%02u:%02u:%02u:%02u\n", -+ lpTime->u.smpte.hour, lpTime->u.smpte.min, -+ lpTime->u.smpte.sec, lpTime->u.smpte.frame); -+ break; -+ default: -+ WARN("Format %d not supported, using TIME_BYTES !\n", lpTime->wType); -+ lpTime->wType = TIME_BYTES; -+ /* fall through */ -+ case TIME_BYTES: -+ lpTime->u.cb = bytes; -+ TRACE("TIME_BYTES=%u\n", lpTime->u.cb); -+ break; -+ } -+ -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * PULSE_WaitForOperation -+ * -+ * Waits for pa operations to complete, and dereferences the operation. -+ */ -+void PULSE_WaitForOperation(pa_operation *o) { -+ if (!o) return; -+ -+ for (;;) { -+ if (pa_operation_get_state(o) != PA_OPERATION_RUNNING) -+ break; -+ PULSE_MainloopWait(); -+ } -+ pa_operation_unref(o); -+} -+ -+/************************************************************************** -+ * Common Callbacks -+ */ -+ -+/************************************************************************** -+ * PULSE_StreamRequestCallback -+ * -+ * Called by the pulse mainloop whenever it wants/has audio data. -+ */ -+void PULSE_StreamRequestCallback(pa_stream *s, size_t nbytes, void *userdata) { -+ WINE_WAVEINST *ww = (WINE_WAVEINST*)userdata; -+ -+ TRACE("Server has %u bytes\n", nbytes); -+ -+ /* Make sure that the player/recorder is running */ -+ if (ww->hThread != INVALID_HANDLE_VALUE && ww->msgRing.messages) { -+ PULSE_AddRingMessage(&ww->msgRing, WINE_WM_FEED, (DWORD)nbytes, FALSE); -+ } -+} -+ -+ -+/************************************************************************** -+ * PULSE_StreamSuspendedCallback [internal] -+ * -+ * Called by the pulse mainloop any time stream playback is intentionally -+ * suspended or resumed from being suspended. -+ */ -+void PULSE_StreamSuspendedCallback(pa_stream *s, void *userdata) { -+ WINE_WAVEINST *wwo = (WINE_WAVEINST*)userdata; -+ assert(s && wwo); -+ -+ /* Currently we handle this kinda like an underrun. Perhaps we should -+ * tell the client somehow so it doesn't just hang? */ -+ -+ if (!pa_stream_is_suspended(s) && wwo->hThread != INVALID_HANDLE_VALUE && wwo->msgRing.ring_buffer_size > 0) -+ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_XRUN, 0, FALSE); -+} -+ -+/************************************************************************** -+ * PULSE_StreamUnderflowCallback [internal] -+ * -+ * Called by the pulse mainloop when the prebuf runs out of data. -+ */ -+void PULSE_StreamUnderflowCallback(pa_stream *s, void *userdata) { -+ WINE_WAVEINST *wwo = (WINE_WAVEINST*)userdata; -+ assert(s && wwo); -+ -+ /* If we aren't playing, don't care ^_^ */ -+ if (wwo->state != WINE_WS_PLAYING) return; -+ -+ TRACE("Underrun occurred.\n"); -+ -+ if (wwo->hThread != INVALID_HANDLE_VALUE && wwo->msgRing.ring_buffer_size > 0) -+ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_XRUN, 0, FALSE); -+} -+ -+/************************************************************************** -+ * PULSE_StreamMovedCallback [internal] -+ * -+ * Called by the pulse mainloop when the stream gets moved, resulting in -+ * possibly different metrics. -+ */ -+void PULSE_StreamMovedCallback(pa_stream *s, void *userdata) { -+ FIXME("stub"); -+} -+ -+ -+/****************************************************************** -+ * PULSE_StreamStateCallback -+ * -+ * Called by pulse whenever the state of the stream changes. -+ */ -+void PULSE_StreamStateCallback(pa_stream *s, void *userdata) { -+ assert(s); -+ -+ switch (pa_stream_get_state(s)) { -+ case PA_STREAM_READY: -+ TRACE("Stream %p ready\n", userdata); -+ break; -+ -+ case PA_STREAM_TERMINATED: /* Stream closed normally */ -+ TRACE("Stream %p terminated\n", userdata); -+ break; -+ -+ case PA_STREAM_FAILED: /* Stream closed not-normally */ -+ ERR("Stream %p failed!\n", userdata); -+ break; -+ -+ case PA_STREAM_UNCONNECTED: -+ case PA_STREAM_CREATING: -+ return; -+ } -+ PULSE_MainloopSignal(); -+} -+ -+/************************************************************************** -+ * PULSE_StreamSucessCallback -+ */ -+void PULSE_StreamSuccessCallback(pa_stream *s, int success, void *userdata) { -+ if (!success) -+ WARN("Stream %p operation failed: %s\n", userdata, pa_strerror(pa_context_errno(PULSE_context))); -+ -+ PULSE_MainloopSignal(); -+} -+ -+/************************************************************************** -+ * PULSE_ContextSuccessCallback -+ */ -+void PULSE_ContextSuccessCallback(pa_context *c, int success, void *userdata) { -+ if (!success) ERR("Context operation failed: %s\n", pa_strerror(pa_context_errno(c))); -+ PULSE_MainloopSignal(); -+} -+ -+/************************************************************************** -+ * Connection management and sink / source management. -+ */ -+ -+/************************************************************************** -+ * PULSE_ContextStateCallback [internal] -+ */ -+static void PULSE_ContextStateCallback(pa_context *c, void *userdata) { -+ assert(c); -+ -+ switch (pa_context_get_state(c)) { -+ case PA_CONTEXT_CONNECTING: -+ case PA_CONTEXT_UNCONNECTED: -+ case PA_CONTEXT_AUTHORIZING: -+ case PA_CONTEXT_SETTING_NAME: -+ break; -+ -+ case PA_CONTEXT_READY: -+ case PA_CONTEXT_TERMINATED: -+ PULSE_MainloopSignal(); -+ break; -+ -+ case PA_CONTEXT_FAILED: -+ ERR("Context failed: %s\n", pa_strerror(pa_context_errno(c))); -+ PULSE_MainloopSignal(); -+ break; -+ } -+} -+ -+/************************************************************************** -+ * PULSE_AllocateWaveinDevice [internal] -+ * -+ * Creates or adds a device to WInDev based on the pa_source_info. -+ */ -+static void PULSE_AllocateWaveinDevice(const char *name, const char *device, const char *description, const pa_cvolume *v) { -+ WINE_WAVEDEV *wdi; -+ -+ if (WInDev) -+ wdi = HeapReAlloc(GetProcessHeap(), 0, WInDev, sizeof(WINE_WAVEDEV) * (PULSE_WidNumDevs + 1)); -+ else -+ wdi = HeapAlloc(GetProcessHeap(), 0, sizeof(WINE_WAVEDEV)); -+ -+ if (!wdi) return; -+ -+ WInDev = wdi; -+ wdi = &WInDev[PULSE_WidNumDevs++]; -+ memset(wdi, 0, sizeof(WINE_WAVEDEV)); -+ memset(&(wdi->caps.in), 0, sizeof(wdi->caps.in)); -+ snprintf(wdi->interface_name, MAXPNAMELEN * 2, "winepulse: %s", name); -+ wdi->device_name = pa_xstrdup(device); -+ MultiByteToWideChar(CP_UTF8, 0, description, -1, wdi->caps.in.szPname, sizeof(wdi->caps.in.szPname)/sizeof(WCHAR)); -+ wdi->caps.in.szPname[sizeof(wdi->caps.in.szPname)/sizeof(WCHAR) - 1] = '\0'; -+ wdi->caps.in.wMid = MM_CREATIVE; -+ wdi->caps.in.wPid = MM_CREATIVE_SBP16_WAVEOUT; -+ wdi->caps.in.vDriverVersion = 0x0100; -+ wdi->caps.in.wChannels = v->channels == 1 ? 1 : 2; -+ wdi->caps.in.dwFormats = PULSE_ALL_FORMATS; -+ memset(&wdi->ds_desc, 0, sizeof(DSDRIVERDESC)); -+ memcpy(wdi->ds_desc.szDesc, description, min(sizeof(wdi->ds_desc.szDesc) - 1, strlen(description))); -+ memcpy(wdi->ds_desc.szDrvname, "winepulse.drv", 14); -+ wdi->ds_caps.dwMinSecondarySampleRate = DSBFREQUENCY_MIN; -+ wdi->ds_caps.dwMaxSecondarySampleRate = DSBFREQUENCY_MAX; -+ wdi->ds_caps.dwPrimaryBuffers = 1; -+ wdi->ds_caps.dwFlags = \ -+ DSCAPS_PRIMARYMONO | -+ DSCAPS_PRIMARYSTEREO | -+ DSCAPS_PRIMARY8BIT | -+ DSCAPS_PRIMARY16BIT | -+ DSCAPS_SECONDARYMONO | -+ DSCAPS_SECONDARYSTEREO | -+ DSCAPS_SECONDARY8BIT | -+ DSCAPS_SECONDARY16BIT | -+ DSCCAPS_MULTIPLECAPTURE; -+} -+ -+/************************************************************************** -+ * PULSE_AllocateWaveoutDevice [internal] -+ * -+ * Creates or adds a sink to the WOutDev array. -+ */ -+static void PULSE_AllocateWaveoutDevice(const char *name, const char *device, const char *description, const pa_cvolume *v) { -+ WINE_WAVEDEV *wdo; -+ int x; -+ -+ if (WOutDev) -+ wdo = HeapReAlloc(GetProcessHeap(), 0, WOutDev, sizeof(WINE_WAVEDEV) * (PULSE_WodNumDevs + 1)); -+ else -+ wdo = HeapAlloc(GetProcessHeap(), 0, sizeof(WINE_WAVEDEV)); -+ -+ if (!wdo) return; -+ -+ WOutDev = wdo; -+ wdo = &WOutDev[PULSE_WodNumDevs++]; -+ memset(wdo, 0, sizeof(WINE_WAVEDEV)); -+ -+ wdo->device_name = pa_xstrdup(device); -+ wdo->volume.channels = v->channels; -+ for (x = 0; x < v->channels; x++) wdo->volume.values[x] = v->values[x]; -+ snprintf(wdo->interface_name, MAXPNAMELEN * 2, "winepulse: %s", name); -+ MultiByteToWideChar(CP_UTF8, 0, description, -1, wdo->caps.out.szPname, sizeof(wdo->caps.out.szPname)/sizeof(WCHAR)); -+ wdo->caps.out.szPname[sizeof(wdo->caps.out.szPname)/sizeof(WCHAR) - 1] = '\0'; -+ wdo->caps.out.wMid = MM_CREATIVE; -+ wdo->caps.out.wPid = MM_CREATIVE_SBP16_WAVEOUT; -+ wdo->caps.out.vDriverVersion = 0x0100; -+ wdo->caps.out.dwSupport = WAVECAPS_VOLUME | WAVECAPS_SAMPLEACCURATE;// | WAVECAPS_DIRECTSOUND; -+ if (v->channels >= 2) { -+ wdo->caps.out.wChannels = 2; -+ wdo->caps.out.dwSupport |= WAVECAPS_LRVOLUME; -+ } else -+ wdo->caps.out.wChannels = 1; -+ wdo->caps.out.dwFormats = PULSE_ALL_FORMATS; -+ memset(&wdo->ds_desc, 0, sizeof(DSDRIVERDESC)); -+ memcpy(wdo->ds_desc.szDesc, description, min(sizeof(wdo->ds_desc.szDesc) - 1, strlen(description))); -+ memcpy(wdo->ds_desc.szDrvname, "winepulse.drv", 14); -+ wdo->ds_caps.dwMinSecondarySampleRate = DSBFREQUENCY_MIN; -+ wdo->ds_caps.dwMaxSecondarySampleRate = DSBFREQUENCY_MAX; -+ wdo->ds_caps.dwPrimaryBuffers = 1; -+ wdo->ds_caps.dwFlags = \ -+ DSCAPS_PRIMARYMONO | -+ DSCAPS_PRIMARYSTEREO | -+ DSCAPS_PRIMARY8BIT | -+ DSCAPS_PRIMARY16BIT | -+ DSCAPS_SECONDARYMONO | -+ DSCAPS_SECONDARYSTEREO | -+ DSCAPS_SECONDARY8BIT | -+ DSCAPS_SECONDARY16BIT | -+ DSCAPS_CONTINUOUSRATE; -+} -+ -+/************************************************************************** -+ * PULSE_SourceInfoCallback [internal] -+ */ -+static void PULSE_SourceInfoCallback(pa_context *c, const pa_source_info *i, int eol, void *userdata) { -+ -+ if (!eol && i) -+ PULSE_AllocateWaveinDevice(i->name, i->name, i->description, &i->volume); -+ -+ PULSE_MainloopSignal(); -+} -+ -+/************************************************************************** -+ * PULSE_SinkInfoCallback [internal] -+ */ -+static void PULSE_SinkInfoCallback(pa_context *c, const pa_sink_info *i, int eol, void *userdata) { -+ -+ if (!eol && i) -+ PULSE_AllocateWaveoutDevice(i->name, i->name, i->description, &i->volume); -+ -+ PULSE_MainloopSignal(); -+} -+ -+/************************************************************************** -+ * PULSE_ContextNotifyCallback [internal] -+ */ -+static void PULSE_ContextNotifyCallback(pa_context *c, void *userdata) { -+ PULSE_MainloopSignal(); -+} -+ -+/************************************************************************** -+ * PULSE_WaveClose [internal] -+ * -+ * Disconnect from the server, deallocated the WaveIn/WaveOut devices, stop and -+ * free the mainloop. -+ */ -+static LONG PULSE_WaveClose(void) { -+ int x; -+ TRACE("()\n"); -+ if (!PULSE_ml) return DRV_FAILURE; -+ -+ PULSE_MainloopLock(); -+ /* device_name is allocated with pa_xstrdup, free with pa_xfree */ -+ for (x = 0; x < PULSE_WodNumDevs; x++) pa_xfree(WOutDev[x].device_name); -+ for (x = 0; x < PULSE_WidNumDevs; x++) pa_xfree(WInDev[x].device_name); -+ HeapFree(GetProcessHeap(), 0, WOutDev); -+ HeapFree(GetProcessHeap(), 0, WInDev); -+ if (PULSE_context) { -+ PULSE_WaitForOperation(pa_context_drain(PULSE_context, PULSE_ContextNotifyCallback, NULL)); -+ pa_context_disconnect(PULSE_context); -+ pa_context_unref(PULSE_context); -+ PULSE_context = NULL; -+ } -+ -+ PULSE_MainloopUnlock(); -+ PULSE_MainloopStop(); -+ pa_mainloop_free(PULSE_ml); -+ PULSE_ml = NULL; -+ -+ return DRV_SUCCESS; -+} -+ -+/************************************************************************** -+ * PULSE_WaveInit [internal] -+ * -+ * Connects to the pulseaudio server, tries to discover sinks and sources and -+ * allocates the WaveIn/WaveOut devices. -+ */ -+static LONG PULSE_WaveInit(void) { -+ char *app_name; -+ char path[PATH_MAX]; -+ char *offset = NULL; -+ pa_cvolume fake_cvolume; -+ -+ WOutDev = NULL; -+ WInDev = NULL; -+ PULSE_WodNumDevs = 0; -+ PULSE_WidNumDevs = 0; -+ PULSE_context = NULL; -+ PULSE_ml = NULL; -+ -+ if (!(PULSE_ml = pa_mainloop_new())) { -+ ERR("Failed to create mainloop object."); -+ return DRV_FAILURE; -+ } -+ -+ /* Application name giving to pulse should be unique to the binary so that -+ * pulse-*-restore can be useful */ -+ -+ /* Get binary path, and remove path a-la strrchr */ -+ if (GetModuleFileNameA(NULL, path, PATH_MAX)) -+ offset = strrchr(path, '\\'); -+ -+ if (offset && ++offset && offset < path + PATH_MAX) { -+ app_name = pa_xmalloc(strlen(offset) + 8); -+ snprintf(app_name, strlen(offset) + 8, "WINE [%s]", offset); -+ } else -+ app_name = pa_xstrdup("WINE Application"); -+ -+ TRACE("App name is \"%s\"\n", app_name); -+ -+ PULSE_MainloopStart(); -+ PULSE_context = pa_context_new(pa_mainloop_get_api(PULSE_ml), app_name); -+ assert(PULSE_context); -+ pa_xfree(app_name); -+ -+ pa_context_set_state_callback(PULSE_context, PULSE_ContextStateCallback, NULL); -+ -+ PULSE_MainloopLock(); -+ -+ TRACE("libpulse protocol version: %u. API Version %u\n", pa_context_get_protocol_version(PULSE_context), PA_API_VERSION); -+ if (pa_context_connect(PULSE_context, NULL, 0, NULL) < 0) -+ goto fail; -+ -+ /* Wait for connection */ -+ for (;;) { -+ pa_context_state_t state = pa_context_get_state(PULSE_context); -+ -+ if (state == PA_CONTEXT_FAILED || state == PA_CONTEXT_TERMINATED) -+ goto fail; -+ -+ if (state == PA_CONTEXT_READY) -+ break; -+ -+ PULSE_MainloopWait(); -+ } -+ -+ TRACE("Connected to server %s with protocol version: %i.\n", -+ pa_context_get_server(PULSE_context), -+ pa_context_get_server_protocol_version(PULSE_context)); -+ -+ fake_cvolume.channels = 2; -+ pa_cvolume_reset(&fake_cvolume, 2); -+ /* FIXME Translations? */ -+ PULSE_AllocateWaveoutDevice("default", NULL, "Default", &fake_cvolume); -+ PULSE_AllocateWaveinDevice("default", NULL, "Default", &fake_cvolume); -+ PULSE_WaitForOperation(pa_context_get_sink_info_list(PULSE_context, PULSE_SinkInfoCallback, &PULSE_WodNumDevs)); -+ PULSE_WaitForOperation(pa_context_get_source_info_list(PULSE_context, PULSE_SourceInfoCallback, &PULSE_WidNumDevs)); -+ TRACE("Found %u output and %u input device(s).\n", PULSE_WodNumDevs - 1, PULSE_WidNumDevs - 1); -+ -+ PULSE_MainloopUnlock(); -+ -+ return DRV_SUCCESS; -+ -+fail: -+ PULSE_MainloopUnlock(); -+ /* Only warn, because if we failed wine may still choose the next driver */ -+ WARN("Failed to connect to server\n"); -+ return DRV_FAILURE; -+} -+ -+#endif /* HAVE_PULSEAUDIO */ -+ -+/************************************************************************** -+ * DriverProc (WINEPULSE.@) -+ */ -+LRESULT CALLBACK PULSE_DriverProc(DWORD_PTR dwDevID, HDRVR hDriv, UINT wMsg, -+ LPARAM dwParam1, LPARAM dwParam2) { -+ -+ switch(wMsg) { -+#ifdef HAVE_PULSEAUDIO -+ case DRV_LOAD: return PULSE_WaveInit(); -+ case DRV_FREE: return PULSE_WaveClose(); -+ case DRV_OPEN: return 1; -+ case DRV_CLOSE: return 1; -+ case DRV_ENABLE: return 1; -+ case DRV_DISABLE: return 1; -+ case DRV_QUERYCONFIGURE: return 1; -+ case DRV_CONFIGURE: MessageBoxA(0, "PulseAudio MultiMedia Driver !", "PulseAudio Driver", MB_OK); return 1; -+ case DRV_INSTALL: return DRVCNF_RESTART; -+ case DRV_REMOVE: return DRVCNF_RESTART; -+#endif -+ default: -+ return DefDriverProc(dwDevID, hDriv, wMsg, dwParam1, dwParam2); -+ } -+} -diff --git a/dlls/winepulse.drv/wavein.c b/dlls/winepulse.drv/wavein.c -new file mode 100644 -index 0000000..82bff06 ---- /dev/null -+++ b/dlls/winepulse.drv/wavein.c -@@ -0,0 +1,589 @@ -+/* -+ * Wine Driver for PulseAudio - WaveIn Functionality -+ * http://pulseaudio.org/ -+ * -+ * Copyright 2009 Arthur Taylor -+ * -+ * Contains code from other wine multimedia drivers. -+ * -+ * 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, write to the Free Software -+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA -+ */ -+ -+#include "config.h" -+ -+#include -+ -+#include "windef.h" -+#include "winbase.h" -+#include "wingdi.h" -+#include "winuser.h" -+#include "winnls.h" -+#include "mmddk.h" -+ -+#include -+ -+#include "wine/debug.h" -+ -+WINE_DEFAULT_DEBUG_CHANNEL(wave); -+ -+#if HAVE_PULSEAUDIO -+ -+/*======================================================================* -+ * WAVE IN specific PulseAudio Callbacks * -+ *======================================================================*/ -+ -+/************************************************************************** -+ * widNotifyClient [internal] -+*/ -+static DWORD widNotifyClient(WINE_WAVEINST* wwi, WORD wMsg, DWORD dwParam1, DWORD dwParam2) { -+ TRACE("wMsg = 0x%04x dwParm1 = %04X dwParam2 = %04X\n", wMsg, dwParam1, dwParam2); -+ -+ switch (wMsg) { -+ case WIM_OPEN: -+ case WIM_CLOSE: -+ case WIM_DATA: -+ if (wwi->wFlags != DCB_NULL && -+ !DriverCallback(wwi->waveDesc.dwCallback, wwi->wFlags, (HDRVR)wwi->waveDesc.hWave, -+ wMsg, wwi->waveDesc.dwInstance, dwParam1, dwParam2)) { -+ WARN("can't notify client !\n"); -+ return MMSYSERR_ERROR; -+ } -+ break; -+ default: -+ FIXME("Unknown callback message %u\n", wMsg); -+ return MMSYSERR_INVALPARAM; -+ } -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * widRecorder_CopyData [internal] -+ * -+ * Copys data from the fragments pulse returns to queued buffers. -+ */ -+static void widRecorder_CopyData(WINE_WAVEINST *wwi) { -+ LPWAVEHDR lpWaveHdr = wwi->lpQueuePtr; -+ size_t bytes_avail; -+ -+ /* Get this value once and trust it. Note that the total available is made -+ * of one _or more_ fragments. These fragments will probably not align with -+ * the wavehdr buffer sizes. */ -+ PULSE_MainloopLock(); -+ bytes_avail = pa_stream_readable_size(wwi->stream); -+ PULSE_MainloopUnlock(); -+ -+ if (bytes_avail == -1) { -+ ERR("pa_stream_readable_size() returned -1, record stream has failed.\n"); -+ return; -+ } -+ -+ /* If there is an already peeked buffer, add it to the total */ -+ if (wwi->buffer) -+ bytes_avail += wwi->buffer_length - wwi->buffer_read_offset; -+ -+ for (;bytes_avail && lpWaveHdr; lpWaveHdr = wwi->lpQueuePtr) { -+ size_t peek_avail; -+ -+ if (!wwi->buffer) { -+ PULSE_MainloopLock(); -+ pa_stream_peek(wwi->stream, &wwi->buffer, &wwi->buffer_length); -+ PULSE_MainloopUnlock(); -+ wwi->buffer_read_offset = 0; -+ -+ if (!wwi->buffer || !wwi->buffer_length) { -+ WARN("pa_stream_peek failed\n"); -+ break; -+ } -+ } -+ -+ peek_avail = min(wwi->buffer_length - wwi->buffer_read_offset, -+ lpWaveHdr->dwBufferLength - lpWaveHdr->dwBytesRecorded); -+ -+ memcpy(lpWaveHdr->lpData + lpWaveHdr->dwBytesRecorded, -+ (PBYTE)wwi->buffer + wwi->buffer_read_offset, -+ peek_avail); -+ -+ wwi->buffer_read_offset += peek_avail; -+ lpWaveHdr->dwBytesRecorded += peek_avail; -+ bytes_avail -= peek_avail; -+ -+ if (lpWaveHdr->dwBytesRecorded == lpWaveHdr->dwBufferLength) { -+ lpWaveHdr->dwFlags &= ~WHDR_INQUEUE; -+ lpWaveHdr->dwFlags |= WHDR_DONE; -+ wwi->lpQueuePtr = lpWaveHdr->lpNext; -+ widNotifyClient(wwi, WIM_DATA, (DWORD)lpWaveHdr, 0); -+ } -+ -+ if (wwi->buffer_read_offset == wwi->buffer_length) { -+ PULSE_MainloopLock(); -+ pa_stream_drop(wwi->stream); -+ wwi->buffer = NULL; -+ PULSE_MainloopUnlock(); -+ } -+ } /* for(bytes_avail && lpWaveHdr) */ -+ -+ return; -+} -+ -+static void widRecorder_ProcessMessages(WINE_WAVEINST* wwi) { -+ LPWAVEHDR lpWaveHdr; -+ enum win_wm_message msg; -+ DWORD param; -+ HANDLE ev; -+ -+ -+ while (PULSE_RetrieveRingMessage(&wwi->msgRing, &msg, ¶m, &ev)) { -+ TRACE("Received %s %x\n", PULSE_getCmdString(msg), param); -+ -+ switch (msg) { -+ case WINE_WM_FEED: -+ /* Spin the loop in widRecorder */ -+ SetEvent(ev); -+ break; -+ -+ case WINE_WM_STARTING: -+ wwi->dwLastReset = wwi->timing_info->read_index; -+ PULSE_MainloopLock(); -+ PULSE_WaitForOperation(pa_stream_cork(wwi->stream, 0, PULSE_StreamSuccessCallback, NULL)); -+ PULSE_MainloopUnlock(); -+ wwi->state = WINE_WS_PLAYING; -+ SetEvent(ev); -+ break; -+ -+ case WINE_WM_HEADER: -+ lpWaveHdr = (LPWAVEHDR)param; -+ lpWaveHdr->lpNext = 0; -+ /* insert buffer at the end of queue */ -+ { -+ LPWAVEHDR *wh; -+ for (wh = &(wwi->lpQueuePtr); *wh; wh = &((*wh)->lpNext)); -+ *wh = lpWaveHdr; -+ } -+ break; -+ -+ case WINE_WM_STOPPING: -+ if (wwi->state != WINE_WS_STOPPED) { -+ wwi->state = WINE_WS_STOPPED; -+ PULSE_MainloopLock(); -+ PULSE_WaitForOperation(pa_stream_cork(wwi->stream, 1, PULSE_StreamSuccessCallback, NULL)); -+ if (wwi->buffer) { -+ pa_stream_drop(wwi->stream); -+ wwi->buffer = NULL; -+ } -+ PULSE_MainloopUnlock(); -+ -+ /* return only the current buffer to app */ -+ if ((lpWaveHdr = wwi->lpQueuePtr)) { -+ LPWAVEHDR lpNext = lpWaveHdr->lpNext; -+ TRACE("stop %p %p\n", lpWaveHdr, lpWaveHdr->lpNext); -+ lpWaveHdr->dwFlags &= ~WHDR_INQUEUE; -+ lpWaveHdr->dwFlags |= WHDR_DONE; -+ wwi->lpQueuePtr = lpNext; -+ widNotifyClient(wwi, WIM_DATA, (DWORD)lpWaveHdr, 0); -+ } -+ } -+ SetEvent(ev); -+ break; -+ -+ case WINE_WM_RESETTING: -+ if (wwi->state != WINE_WS_STOPPED) { -+ wwi->state = WINE_WS_STOPPED; -+ PULSE_MainloopLock(); -+ PULSE_WaitForOperation(pa_stream_cork(wwi->stream, 1, PULSE_StreamSuccessCallback, NULL)); -+ if (wwi->buffer) { -+ pa_stream_drop(wwi->stream); -+ wwi->buffer = NULL; -+ } -+ PULSE_MainloopUnlock(); -+ } -+ -+ /* return all the buffers to the app */ -+ lpWaveHdr = wwi->lpPlayPtr ? wwi->lpPlayPtr : wwi->lpQueuePtr; -+ for (; lpWaveHdr; lpWaveHdr = wwi->lpQueuePtr) { -+ lpWaveHdr->dwFlags &= ~WHDR_INQUEUE; -+ lpWaveHdr->dwFlags |= WHDR_DONE; -+ wwi->lpQueuePtr = lpWaveHdr->lpNext; -+ widNotifyClient(wwi, WIM_DATA, (DWORD)lpWaveHdr, 0); -+ } -+ SetEvent(ev); -+ break; -+ -+ case WINE_WM_CLOSING: -+ wwi->hThread = 0; -+ wwi->state = WINE_WS_CLOSED; -+ SetEvent(ev); -+ ExitThread(0); -+ /* shouldn't go here */ -+ -+ default: -+ FIXME("unknown message %d\n", msg); -+ break; -+ } -+ } -+} -+ -+/************************************************************************** -+ * widRecorder [internal] -+ */ -+static DWORD CALLBACK widRecorder(LPVOID lpParam) { -+ WINE_WAVEINST *wwi = (WINE_WAVEINST*)lpParam; -+ -+ wwi->state = WINE_WS_STOPPED; -+ SetEvent(wwi->hStartUpEvent); -+ -+ for (;;) { -+ PULSE_WaitRingMessage(&wwi->msgRing, INFINITE); -+ widRecorder_ProcessMessages(wwi); -+ if (wwi->state == WINE_WS_PLAYING && wwi->lpQueuePtr) -+ widRecorder_CopyData(wwi); -+ } -+ -+ return 0; -+} -+ -+/************************************************************************** -+ * widOpen [internal] -+ */ -+static DWORD widOpen(WORD wDevID, DWORD_PTR *lpdwUser, LPWAVEOPENDESC lpDesc, DWORD dwFlags) { -+ WINE_WAVEDEV *wdi; -+ WINE_WAVEINST *wwi = NULL; -+ DWORD ret = MMSYSERR_NOERROR; -+ -+ TRACE("(%u, %p, %08X);\n", wDevID, lpDesc, dwFlags); -+ if (lpDesc == NULL) { -+ WARN("Invalid Parameter !\n"); -+ return MMSYSERR_INVALPARAM; -+ } -+ -+ if (wDevID >= PULSE_WidNumDevs) { -+ TRACE("Asked for device %d, but only %d known!\n", wDevID, PULSE_WidNumDevs); -+ return MMSYSERR_BADDEVICEID; -+ } -+ wdi = &WInDev[wDevID]; -+ -+ wwi = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(WINE_WAVEINST)); -+ if (!wwi) return MMSYSERR_NOMEM; -+ *lpdwUser = (DWORD_PTR)wwi; -+ -+ /* check to see if format is supported and make pa_sample_spec struct */ -+ if (!PULSE_SetupFormat(lpDesc->lpFormat, &wwi->sample_spec)) { -+ WARN("Bad format: tag=%04X nChannels=%d nSamplesPerSec=%d !\n", -+ lpDesc->lpFormat->wFormatTag, lpDesc->lpFormat->nChannels, -+ lpDesc->lpFormat->nSamplesPerSec); -+ ret = WAVERR_BADFORMAT; -+ goto exit; -+ } -+ -+ if (TRACE_ON(wave)) { -+ char t[PA_SAMPLE_SPEC_SNPRINT_MAX]; -+ pa_sample_spec_snprint(t, sizeof(t), &wwi->sample_spec); -+ TRACE("Sample spec '%s'\n", t); -+ } -+ -+ if (dwFlags & WAVE_FORMAT_QUERY) { -+ TRACE("Query format: tag=%04X nChannels=%d nSamplesPerSec=%d !\n", -+ lpDesc->lpFormat->wFormatTag, lpDesc->lpFormat->nChannels, -+ lpDesc->lpFormat->nSamplesPerSec); -+ ret = MMSYSERR_NOERROR; -+ goto exit; -+ } -+ -+ wwi->wFlags = HIWORD(dwFlags & CALLBACK_TYPEMASK); -+ wwi->waveDesc = *lpDesc; -+ PULSE_InitRingMessage(&wwi->msgRing); -+ -+ wwi->stream = pa_stream_new(PULSE_context, "WaveIn", &wwi->sample_spec, NULL); -+ if (!wwi->stream) { -+ ret = WAVERR_BADFORMAT; -+ goto exit; -+ } -+ -+ pa_stream_set_state_callback(wwi->stream, PULSE_StreamStateCallback, wwi); -+ pa_stream_set_read_callback (wwi->stream, PULSE_StreamRequestCallback, wwi); -+ -+ wwi->buffer_attr.maxlength = (uint32_t)-1; -+ wwi->buffer_attr.fragsize = pa_bytes_per_second(&wwi->sample_spec) / 100; -+ -+ PULSE_MainloopLock(); -+ TRACE("Asking to open %s for recording.\n", wdi->device_name); -+ pa_stream_connect_record(wwi->stream, wdi->device_name, &wwi->buffer_attr, -+ PA_STREAM_START_CORKED | -+ PA_STREAM_AUTO_TIMING_UPDATE | -+ PA_STREAM_ADJUST_LATENCY); -+ -+ for (;;) { -+ pa_context_state_t cstate = pa_context_get_state(PULSE_context); -+ pa_stream_state_t sstate = pa_stream_get_state(wwi->stream); -+ -+ if (cstate == PA_CONTEXT_FAILED || cstate == PA_CONTEXT_TERMINATED || -+ sstate == PA_STREAM_FAILED || sstate == PA_STREAM_TERMINATED) { -+ ERR("Failed to connect context object: %s\n", pa_strerror(pa_context_errno(PULSE_context))); -+ ret = MMSYSERR_NODRIVER; -+ PULSE_MainloopUnlock(); -+ goto exit; -+ } -+ -+ if (sstate == PA_STREAM_READY) -+ break; -+ -+ PULSE_MainloopWait(); -+ } -+ TRACE("(%p)->stream connected for recording.\n", wwi); -+ -+ PULSE_WaitForOperation(pa_stream_update_timing_info(wwi->stream, PULSE_StreamSuccessCallback, wwi)); -+ -+ wwi->timing_info = pa_stream_get_timing_info(wwi->stream); -+ assert(wwi->timing_info); -+ PULSE_MainloopUnlock(); -+ -+ wwi->hStartUpEvent = CreateEventW(NULL, FALSE, FALSE, NULL); -+ wwi->hThread = CreateThread(NULL, 0, widRecorder, (LPVOID)wwi, 0, &(wwi->dwThreadID)); -+ if (wwi->hThread) -+ SetThreadPriority(wwi->hThread, THREAD_PRIORITY_TIME_CRITICAL); -+ else { -+ ERR("Thread creation for the widRecorder failed!\n"); -+ ret = MMSYSERR_NOMEM; -+ goto exit; -+ } -+ WaitForSingleObject(wwi->hStartUpEvent, INFINITE); -+ CloseHandle(wwi->hStartUpEvent); -+ wwi->hStartUpEvent = INVALID_HANDLE_VALUE; -+ -+ return widNotifyClient(wwi, WIM_OPEN, 0L, 0L); -+ -+exit: -+ if (!wwi) -+ return ret; -+ -+ if (wwi->hStartUpEvent != INVALID_HANDLE_VALUE) -+ CloseHandle(wwi->hStartUpEvent); -+ -+ if (wwi->msgRing.ring_buffer_size > 0) -+ PULSE_DestroyRingMessage(&wwi->msgRing); -+ -+ if (wwi->stream) { -+ if (pa_stream_get_state(wwi->stream) == PA_STREAM_READY) -+ pa_stream_disconnect(wwi->stream); -+ pa_stream_unref(wwi->stream); -+ } -+ HeapFree(GetProcessHeap(), 0, wwi); -+ -+ return ret; -+} -+/************************************************************************** -+ * widClose [internal] -+ */ -+static DWORD widClose(WORD wDevID, WINE_WAVEINST *wwi) { -+ DWORD ret; -+ -+ TRACE("(%u, %p);\n", wDevID, wwi); -+ if (wDevID >= PULSE_WidNumDevs) { -+ WARN("Asked for device %d, but only %d known!\n", wDevID, PULSE_WodNumDevs); -+ return MMSYSERR_INVALHANDLE; -+ } else if (!wwi) { -+ WARN("Stream instance invalid.\n"); -+ return MMSYSERR_INVALHANDLE; -+ } -+ -+ if (wwi->state != WINE_WS_FAILED) { -+ if (wwi->lpQueuePtr) { -+ WARN("buffers recording recording !\n"); -+ return WAVERR_STILLPLAYING; -+ } -+ -+ PULSE_MainloopLock(); -+ if (pa_stream_get_state(wwi->stream) == PA_STREAM_READY) -+ pa_stream_drop(wwi->stream); -+ pa_stream_disconnect(wwi->stream); -+ PULSE_MainloopUnlock(); -+ -+ if (wwi->hThread != INVALID_HANDLE_VALUE) -+ PULSE_AddRingMessage(&wwi->msgRing, WINE_WM_CLOSING, 0, TRUE); -+ -+ PULSE_DestroyRingMessage(&wwi->msgRing); -+ } -+ ret = widNotifyClient(wwi, WIM_CLOSE, 0L, 0L); -+ -+ pa_stream_unref(wwi->stream); -+ TRACE("Deallocating record instance.\n"); -+ HeapFree(GetProcessHeap(), 0, wwi); -+ return ret; -+} -+ -+/************************************************************************** -+ * widAddBuffer [internal] -+ * -+ */ -+static DWORD widAddBuffer(WINE_WAVEINST* wwi, LPWAVEHDR lpWaveHdr, DWORD dwSize) { -+ TRACE("(%p, %p, %08X);\n", wwi, lpWaveHdr, dwSize); -+ -+ if (!wwi || wwi->state == WINE_WS_FAILED) { -+ WARN("Stream instance invalid.\n"); -+ return MMSYSERR_INVALHANDLE; -+ } -+ -+ if (lpWaveHdr->lpData == NULL || !(lpWaveHdr->dwFlags & WHDR_PREPARED)) -+ return WAVERR_UNPREPARED; -+ -+ if (lpWaveHdr->dwFlags & WHDR_INQUEUE) -+ return WAVERR_STILLPLAYING; -+ -+ lpWaveHdr->dwFlags &= ~WHDR_DONE; -+ lpWaveHdr->dwFlags |= WHDR_INQUEUE; -+ lpWaveHdr->dwBytesRecorded = 0; -+ lpWaveHdr->lpNext = 0; -+ -+ PULSE_AddRingMessage(&wwi->msgRing, WINE_WM_HEADER, (DWORD)lpWaveHdr, FALSE); -+ -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * widRecorderMessage [internal] -+ */ -+static DWORD widRecorderMessage(WINE_WAVEINST *wwi, enum win_wm_message message) { -+ if (!wwi || wwi->state == WINE_WS_FAILED) { -+ WARN("Stream instance invalid.\n"); -+ return MMSYSERR_INVALHANDLE; -+ } -+ -+ PULSE_AddRingMessage(&wwi->msgRing, message, 0, TRUE); -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * widGetPosition [internal] -+ */ -+static DWORD widGetPosition(WINE_WAVEINST *wwi, LPMMTIME lpTime, DWORD uSize) { -+ -+ if (!wwi || wwi->state == WINE_WS_FAILED) { -+ WARN("Stream instance invalid.\n"); -+ return MMSYSERR_INVALHANDLE; -+ } -+ -+ if (lpTime == NULL) return MMSYSERR_INVALPARAM; -+ -+ return PULSE_UsecToMMTime(pa_bytes_to_usec(wwi->timing_info->read_index - wwi->dwLastReset, &wwi->sample_spec), lpTime, &wwi->sample_spec); -+} -+ -+/************************************************************************** -+ * widGetDevCaps [internal] -+ */ -+static DWORD widGetDevCaps(DWORD wDevID, LPWAVEINCAPSW lpCaps, DWORD dwSize) { -+ TRACE("(%u, %p, %u);\n", wDevID, lpCaps, dwSize); -+ -+ if (lpCaps == NULL) return MMSYSERR_NOTENABLED; -+ -+ if (wDevID >= PULSE_WidNumDevs) { -+ TRACE("Asked for device %d, but only %d known!\n", wDevID, PULSE_WidNumDevs); -+ return MMSYSERR_INVALHANDLE; -+ } -+ -+ memcpy(lpCaps, &(WInDev[wDevID].caps.in), min(dwSize, sizeof(*lpCaps))); -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * widGetNumDevs [internal] -+ * Context-sanity check here, as if we respond with 0, WINE will move on -+ * to the next wavein driver. -+ */ -+static DWORD widGetNumDevs(void) { -+ if (pa_context_get_state(PULSE_context) != PA_CONTEXT_READY) -+ return 0; -+ -+ return PULSE_WidNumDevs; -+} -+ -+/************************************************************************** -+ * widDevInterfaceSize [internal] -+ */ -+static DWORD widDevInterfaceSize(UINT wDevID, LPDWORD dwParam1) { -+ TRACE("(%u, %p)\n", wDevID, dwParam1); -+ -+ *dwParam1 = MultiByteToWideChar(CP_UTF8, 0, WInDev[wDevID].interface_name, -1, -+ NULL, 0 ) * sizeof(WCHAR); -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * widDevInterface [internal] -+ */ -+static DWORD widDevInterface(UINT wDevID, PWCHAR dwParam1, DWORD dwParam2) { -+ if (dwParam2 >= MultiByteToWideChar(CP_UTF8, 0, WInDev[wDevID].interface_name, -1, -+ NULL, 0 ) * sizeof(WCHAR)) -+ { -+ MultiByteToWideChar(CP_UTF8, 0, WInDev[wDevID].interface_name, -1, -+ dwParam1, dwParam2 / sizeof(WCHAR)); -+ return MMSYSERR_NOERROR; -+ } -+ return MMSYSERR_INVALPARAM; -+} -+ -+/************************************************************************** -+ * widDsDesc [internal] -+ */ -+DWORD widDsDesc(UINT wDevID, PDSDRIVERDESC desc) -+{ -+ *desc = WInDev[wDevID].ds_desc; -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * widMessage (WINEPULSE.@) -+ */ -+DWORD WINAPI PULSE_widMessage(UINT wDevID, UINT wMsg, DWORD_PTR dwUser, -+ DWORD_PTR dwParam1, DWORD_PTR dwParam2) { -+ -+ switch (wMsg) { -+ case DRVM_INIT: -+ case DRVM_EXIT: -+ case DRVM_ENABLE: -+ case DRVM_DISABLE: -+ /* FIXME: Pretend this is supported */ -+ return 0; -+ case WIDM_OPEN: return widOpen (wDevID, (DWORD_PTR*)dwUser, (LPWAVEOPENDESC)dwParam1, dwParam2); -+ case WIDM_CLOSE: return widClose (wDevID, (WINE_WAVEINST*)dwUser); -+ case WIDM_ADDBUFFER: return widAddBuffer ((WINE_WAVEINST*)dwUser, (LPWAVEHDR)dwParam1, dwParam2); -+ case WIDM_PREPARE: return MMSYSERR_NOTSUPPORTED; -+ case WIDM_UNPREPARE: return MMSYSERR_NOTSUPPORTED; -+ case WIDM_GETDEVCAPS: return widGetDevCaps(wDevID, (LPWAVEINCAPSW)dwParam1, dwParam2); -+ case WIDM_GETNUMDEVS: return widGetNumDevs(); -+ case WIDM_GETPOS: return widGetPosition ((WINE_WAVEINST*)dwUser, (LPMMTIME)dwParam1, dwParam2); -+ case WIDM_RESET: return widRecorderMessage((WINE_WAVEINST*)dwUser, WINE_WM_RESETTING); -+ case WIDM_START: return widRecorderMessage((WINE_WAVEINST*)dwUser, WINE_WM_STARTING); -+ case WIDM_STOP: return widRecorderMessage((WINE_WAVEINST*)dwUser, WINE_WM_STOPPING); -+ case DRV_QUERYDEVICEINTERFACESIZE: return widDevInterfaceSize(wDevID, (LPDWORD)dwParam1); -+ case DRV_QUERYDEVICEINTERFACE: return widDevInterface(wDevID, (PWCHAR)dwParam1, dwParam2); -+ case DRV_QUERYDSOUNDIFACE: return MMSYSERR_NOTSUPPORTED; /* Use emulation, as there is no advantage */ -+ case DRV_QUERYDSOUNDDESC: return widDsDesc(wDevID, (PDSDRIVERDESC)dwParam1); -+ default: -+ FIXME("unknown message %d!\n", wMsg); -+ } -+ return MMSYSERR_NOTSUPPORTED; -+} -+ -+#else /* HAVE_PULSEAUDIO */ -+ -+/************************************************************************** -+ * widMessage (WINEPULSE.@) -+ */ -+DWORD WINAPI PULSE_widMessage(WORD wDevID, WORD wMsg, DWORD dwUser, -+ DWORD dwParam1, DWORD dwParam2) { -+ FIXME("(%u, %04X, %08X, %08X, %08X):stub\n", wDevID, wMsg, dwUser, dwParam1, dwParam2); -+ return MMSYSERR_NOTENABLED; -+} -+ -+#endif /* HAVE_PULSEAUDIO */ -diff --git a/dlls/winepulse.drv/waveout.c b/dlls/winepulse.drv/waveout.c -new file mode 100644 -index 0000000..3f52c83 ---- /dev/null -+++ b/dlls/winepulse.drv/waveout.c -@@ -0,0 +1,1029 @@ -+/* -+ * Wine Driver for PulseAudio - WaveOut Functionality -+ * http://pulseaudio.org/ -+ * -+ * Copyright 2009 Arthur Taylor -+ * -+ * Contains code from other wine multimedia drivers. -+ * -+ * 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, write to the Free Software -+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA -+ */ -+ -+#include "config.h" -+ -+#include -+ -+#include "windef.h" -+#include "winbase.h" -+#include "wingdi.h" -+#include "winuser.h" -+#include "winnls.h" -+#include "winerror.h" -+#include "mmddk.h" -+ -+#include -+ -+#include "wine/debug.h" -+ -+WINE_DEFAULT_DEBUG_CHANNEL(wave); -+ -+#if HAVE_PULSEAUDIO -+ -+/* Use this to make the infinite wait not so infinite */ -+#define PULSE_INFINITE 10000 -+ -+/* state diagram for waveOut writing: -+ * -+ * +---------+-------------+---------------+---------------------------------+ -+ * | state | function | event | new state | -+ * +---------+-------------+---------------+---------------------------------+ -+ * | | open() | | STOPPED | -+ * | PAUSED | write() | | PAUSED | -+ * | STOPPED | write() | | PLAYING | -+ * | PLAYING | write() | HEADER | PLAYING | -+ * | (other) | write() | | | -+ * | (any) | pause() | PAUSING | PAUSED | -+ * | PAUSED | restart() | RESTARTING | PLAYING (if no thrd => STOPPED) | -+ * | PAUSED | reset() | RESETTING | PAUSED | -+ * | (other) | reset() | RESETTING | STOPPED | -+ * | (any) | close() | CLOSING | CLOSED | -+ * +---------+-------------+---------------+---------------------------------+ -+ */ -+ -+/* -+ * - It is currently unknown if pausing in a loop works the same as expected. -+ */ -+ -+/*======================================================================* -+ * WAVE OUT specific PulseAudio Callbacks * -+ *======================================================================*/ -+ -+/************************************************************************** -+ * WAVEOUT_SinkInputInfoCallback [internal] -+ * -+ * Called by the pulse thread. Used for wodGetVolume. -+ */ -+static void WAVEOUT_SinkInputInfoCallback(pa_context *c, const pa_sink_input_info *i, int eol, void *userdata) { -+ WINE_WAVEINST* wwo = (WINE_WAVEINST*)userdata; -+ if (!eol && i) { -+ for (wwo->volume.channels = 0; wwo->volume.channels != i->volume.channels; wwo->volume.channels++) -+ wwo->volume.values[wwo->volume.channels] = i->volume.values[wwo->volume.channels]; -+ PULSE_MainloopSignal(); -+ } -+} -+ -+/*======================================================================* -+ * "Low level" WAVE OUT implementation * -+ *======================================================================*/ -+ -+/************************************************************************** -+ * wodPlayer_NotifyClient [internal] -+ */ -+static DWORD wodPlayer_NotifyClient(WINE_WAVEINST* wwo, WORD wMsg, DWORD dwParam1, DWORD dwParam2) { -+ /* TRACE("wMsg = 0x%04x dwParm1 = %04X dwParam2 = %04X\n", wMsg, dwParam1, dwParam2); */ -+ -+ switch (wMsg) { -+ case WOM_OPEN: -+ case WOM_CLOSE: -+ case WOM_DONE: -+ if (wwo->wFlags != DCB_NULL && -+ !DriverCallback(wwo->waveDesc.dwCallback, wwo->wFlags, (HDRVR)wwo->waveDesc.hWave, -+ wMsg, wwo->waveDesc.dwInstance, dwParam1, dwParam2)) { -+ WARN("can't notify client !\n"); -+ return MMSYSERR_ERROR; -+ } -+ break; -+ default: -+ FIXME("Unknown callback message %u\n", wMsg); -+ return MMSYSERR_INVALPARAM; -+ } -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * wodPlayer_BeginWaveHdr [internal] -+ * -+ * Makes the specified lpWaveHdr the currently playing wave header. -+ * If the specified wave header is a begin loop and we're not already in -+ * a loop, setup the loop. -+ */ -+static void wodPlayer_BeginWaveHdr(WINE_WAVEINST* wwo, LPWAVEHDR lpWaveHdr) { -+ wwo->lpPlayPtr = lpWaveHdr; -+ -+ if (!lpWaveHdr) return; -+ -+ if (lpWaveHdr->dwFlags & WHDR_BEGINLOOP) { -+ if (wwo->lpLoopPtr) { -+ WARN("Already in a loop. Discarding loop on this header (%p)\n", lpWaveHdr); -+ } else { -+ TRACE("Starting loop (%dx) with %p\n", lpWaveHdr->dwLoops, lpWaveHdr); -+ wwo->lpLoopPtr = lpWaveHdr; -+ /* Windows does not touch WAVEHDR.dwLoops, -+ * so we need to make an internal copy */ -+ wwo->dwLoops = lpWaveHdr->dwLoops; -+ } -+ } -+ wwo->dwPartialOffset = 0; -+} -+ -+/************************************************************************** -+ * wodPlayer_PlayPtrNext [internal] -+ * -+ * Advance the play pointer to the next waveheader, looping if required. -+ */ -+static LPWAVEHDR wodPlayer_PlayPtrNext(WINE_WAVEINST* wwo) { -+ LPWAVEHDR lpWaveHdr = wwo->lpPlayPtr; -+ -+ wwo->dwPartialOffset = 0; -+ if ((lpWaveHdr->dwFlags & WHDR_ENDLOOP) && wwo->lpLoopPtr) { -+ /* We're at the end of a loop, loop if required */ -+ if (--wwo->dwLoops > 0) { -+ wwo->lpPlayPtr = wwo->lpLoopPtr; -+ } else { -+ /* Handle overlapping loops correctly */ -+ if (wwo->lpLoopPtr != lpWaveHdr && (lpWaveHdr->dwFlags & WHDR_BEGINLOOP)) { -+ FIXME("Correctly handled case ? (ending loop buffer also starts a new loop)\n"); -+ /* shall we consider the END flag for the closing loop or for -+ * the opening one or for both ??? -+ * code assumes for closing loop only -+ */ -+ } else { -+ lpWaveHdr = lpWaveHdr->lpNext; -+ } -+ wwo->lpLoopPtr = NULL; -+ wodPlayer_BeginWaveHdr(wwo, lpWaveHdr); -+ } -+ } else { -+ /* We're not in a loop. Advance to the next wave header */ -+ wodPlayer_BeginWaveHdr(wwo, lpWaveHdr = lpWaveHdr->lpNext); -+ } -+ -+ return lpWaveHdr; -+} -+ -+/************************************************************************** -+ * wodPlayer_CheckReleasing [internal] -+ * -+ * Check to make sure that playback has not stalled. If stalled ask to reduce -+ * the size of the buffer on the pulse server side. -+ */ -+static void wodPlayer_CheckReleasing(WINE_WAVEINST *wwo) { -+ LPWAVEHDR lpWaveHdr; -+ -+ if (wwo->buffer_attr.tlength == -1) { -+ PULSE_MainloopLock(); -+ if (!wwo->timing_info->playing) { -+ -+ /* Calculate how large a buffer the application has made so far */ -+ wwo->buffer_attr.tlength = 0; -+ wwo->buffer_attr.minreq = wwo->lpQueuePtr->dwBufferLength; -+ for (lpWaveHdr = wwo->lpQueuePtr; lpWaveHdr; lpWaveHdr = lpWaveHdr->lpNext) -+ wwo->buffer_attr.tlength += lpWaveHdr->dwBufferLength; -+ -+ WARN("Asking for new buffer target length of %llums (%u bytes)\n", -+ pa_bytes_to_usec(wwo->buffer_attr.tlength, &wwo->sample_spec) / 1000, -+ wwo->buffer_attr.tlength); -+ -+ /* Try and adjust the buffer attributes so that playback can start. -+ * Because of bugs pa_stream_set_buffer_attr() does not work on started -+ * streams for server version 0.9.11 to 0.9.14 */ -+ PULSE_WaitForOperation(pa_stream_set_buffer_attr(wwo->stream, &wwo->buffer_attr, PULSE_StreamSuccessCallback, wwo)); -+ TRACE("Triggering stream and hoping for the best\n"); -+ PULSE_WaitForOperation(pa_stream_trigger(wwo->stream, PULSE_StreamSuccessCallback, wwo)); -+ } -+ PULSE_MainloopUnlock(); -+ } -+} -+ -+/************************************************************************** -+ * wodPlayer_NotifyCompletions [internal] -+ * -+ * Notifies the client of wavehdr completion starting from lpQueuePtr and -+ * stopping when hitting an unwritten wavehdr, the beginning of a loop or a -+ * wavehdr that has not been played, when referenced to the time parameter. -+ */ -+static DWORD wodPlayer_NotifyCompletions(WINE_WAVEINST* wwo, BOOL force, pa_usec_t time) { -+ LPWAVEHDR lpWaveHdr = wwo->lpQueuePtr; -+ pa_usec_t wait; -+ -+ while (lpWaveHdr) { -+ if (!force) { -+ /* Start from lpQueuePtr and keep notifying until: -+ * - we hit an unwritten wavehdr -+ * - we hit the beginning of a running loop -+ * - we hit a wavehdr which hasn't finished playing -+ */ -+ if (lpWaveHdr == wwo->lpLoopPtr) { TRACE("loop %p\n", lpWaveHdr); return PULSE_INFINITE; } -+ if (lpWaveHdr == wwo->lpPlayPtr) { TRACE("play %p\n", lpWaveHdr); return PULSE_INFINITE; } -+ -+ /* See if this data has been played, and if not, return when it will have been */ -+ wait = pa_bytes_to_usec(lpWaveHdr->reserved + lpWaveHdr->dwBufferLength, &wwo->sample_spec); -+ if (wait >= time) { -+ wait = ((wait - time) + (pa_usec_t)999) / (pa_usec_t)1000; -+ return wait ?: 1; -+ } -+ } -+ TRACE("Returning %p.[%i]\n", lpWaveHdr, (DWORD)lpWaveHdr->reserved); -+ -+ /* return the wavehdr */ -+ wwo->lpQueuePtr = lpWaveHdr->lpNext; -+ lpWaveHdr->dwFlags &= ~WHDR_INQUEUE; -+ lpWaveHdr->dwFlags |= WHDR_DONE; -+ -+ wodPlayer_NotifyClient(wwo, WOM_DONE, (DWORD)lpWaveHdr, 0); -+ lpWaveHdr = wwo->lpQueuePtr; -+ } -+ /* No more wavehdrs */ -+ TRACE("Empty queue\n"); -+ return PULSE_INFINITE; -+} -+ -+/************************************************************************** -+ * wodPlayer_WriteMax [internal] -+ * -+ * Write either how much free space or how much data we have, depending on -+ * which is less -+ */ -+static DWORD wodPlayer_WriteMax(WINE_WAVEINST *wwo, size_t *space) { -+ LPWAVEHDR lpWaveHdr = wwo->lpPlayPtr; -+ size_t nbytes; -+ -+ nbytes = min(lpWaveHdr->dwBufferLength - wwo->dwPartialOffset, *space); -+ -+ TRACE("Writing wavehdr %p.%u[%u]\n", lpWaveHdr, wwo->dwPartialOffset, lpWaveHdr->dwBufferLength); -+ pa_stream_write(wwo->stream, lpWaveHdr->lpData + wwo->dwPartialOffset, nbytes, NULL, 0, PA_SEEK_RELATIVE); -+ -+ /* Check to see if we wrote all of the wavehdr */ -+ if ((wwo->dwPartialOffset += nbytes) >= lpWaveHdr->dwBufferLength) -+ wodPlayer_PlayPtrNext(wwo); -+ -+ *space -= nbytes; -+ -+ return nbytes; -+} -+ -+/************************************************************************** -+ * wodPlayer_Feed [internal] -+ * -+ * Feed as much sound data as we can into pulse using wodPlayer_WriteMax. -+ * size_t space _must_ have come from either pa_stream_writable_size() or -+ * the value from a stream write callback, as if it isn't you run the risk -+ * of a buffer overflow in which audio data will be lost. -+ */ -+static void wodPlayer_Feed(WINE_WAVEINST* wwo, size_t space) { -+ -+ if (!space || !wwo->stream || !PULSE_context || -+ pa_context_get_state(PULSE_context) != PA_CONTEXT_READY || -+ pa_stream_get_state(wwo->stream) != PA_STREAM_READY) -+ return; -+ -+ PULSE_MainloopLock(); -+ /* Feed from a partial wavehdr */ -+ if (wwo->lpPlayPtr && wwo->dwPartialOffset != 0) -+ wodPlayer_WriteMax(wwo, &space); -+ -+ /* Feed wavehdrs until we run out of wavehdrs or buffer space */ -+ if (wwo->dwPartialOffset == 0 && wwo->lpPlayPtr) { -+ do { -+ wwo->lpPlayPtr->reserved = wwo->timing_info->write_index; -+ } while (wodPlayer_WriteMax(wwo, &space) && wwo->lpPlayPtr && space > 0); -+ } -+ -+ PULSE_MainloopUnlock(); -+} -+ -+/************************************************************************** -+ * wodPlayer_Reset [internal] -+ * -+ * wodPlayer helper. Resets current output stream. -+ */ -+static void wodPlayer_Reset(WINE_WAVEINST* wwo) { -+ enum win_wm_message msg; -+ DWORD param; -+ HANDLE ev; -+ -+ TRACE("(%p)\n", wwo); -+ -+ /* Remove any buffer */ -+ wodPlayer_NotifyCompletions(wwo, TRUE, 0); -+ -+ wwo->lpPlayPtr = wwo->lpQueuePtr = wwo->lpLoopPtr = NULL; -+ if (wwo->state != WINE_WS_PAUSED) -+ wwo->state = WINE_WS_STOPPED; -+ -+ wwo->dwPartialOffset = 0; -+ -+ if (!wwo->stream || -+ !PULSE_context || -+ pa_context_get_state(PULSE_context) != PA_CONTEXT_READY || -+ pa_stream_get_state(wwo->stream) != PA_STREAM_READY) { -+ return; -+ } -+ -+ PULSE_MainloopLock(); -+ -+ /* Flush the output buffer of written data*/ -+ PULSE_WaitForOperation(pa_stream_flush(wwo->stream, PULSE_StreamSuccessCallback, NULL)); -+ -+ /* Reset the written byte count as some data may have been flushed */ -+ if (wwo->timing_info->write_index_corrupt) -+ PULSE_WaitForOperation(pa_stream_update_timing_info(wwo->stream, PULSE_StreamSuccessCallback, wwo)); -+ -+ wwo->dwLastReset = wwo->timing_info->write_index; -+ -+ /* Return all pending headers in queue */ -+ EnterCriticalSection(&wwo->msgRing.msg_crst); -+ while (PULSE_RetrieveRingMessage(&wwo->msgRing, &msg, ¶m, &ev)) { -+ if (msg != WINE_WM_HEADER) { -+ SetEvent(ev); -+ continue; -+ } -+ ((LPWAVEHDR)param)->dwFlags &= ~WHDR_INQUEUE; -+ ((LPWAVEHDR)param)->dwFlags |= WHDR_DONE; -+ wodPlayer_NotifyClient(wwo, WOM_DONE, param, 0); -+ } -+ PULSE_ResetRingMessage(&wwo->msgRing); -+ LeaveCriticalSection(&wwo->msgRing.msg_crst); -+ -+ PULSE_MainloopUnlock(); -+} -+ -+/************************************************************************** -+ * wodPlayer_GetStreamTime [internal] -+ * -+ * Returns how many microseconds into the playback the audio stream is. Does -+ * not reset to 0 on Reset() calls. Better than pa_stream_get_time() as it is -+ * more constant. -+ */ -+static pa_usec_t wodPlayer_GetStreamTime(WINE_WAVEINST *wwo) { -+ pa_usec_t time, temp; -+ const pa_timing_info *t; -+ -+ t = wwo->timing_info; -+ -+ PULSE_MainloopLock(); -+ -+ time = pa_bytes_to_usec(t->read_index, &wwo->sample_spec); -+ if (t->read_index_corrupt) { -+ WARN("Read index corrupt?!\n"); -+ PULSE_MainloopUnlock(); -+ return time; -+ } -+ -+ if (t->playing) { -+ time += pa_timeval_age(&t->timestamp); -+ temp = t->transport_usec + t->configured_sink_usec; -+ if (temp > wwo->buffer_attr.tlength) temp = wwo->buffer_attr.tlength; -+ if (time > temp) time -= temp; else time = 0; -+ } -+ -+ /* Make sure we haven't claimed to have played more than we have written */ -+ temp = pa_bytes_to_usec(t->write_index, &wwo->sample_spec); -+ if (time > temp) time = temp; -+ -+ /* No queued buffer shows an underrun, so we lie */ -+ if (!wwo->lpQueuePtr) time = temp; -+ -+ PULSE_MainloopUnlock(); -+ -+ return time; -+} -+ -+/************************************************************************** -+ * wodPlayer_ProcessMessages [internal] -+ */ -+static void wodPlayer_ProcessMessages(WINE_WAVEINST* wwo) { -+ LPWAVEHDR lpWaveHdr; -+ enum win_wm_message msg; -+ DWORD param; -+ HANDLE ev; -+ -+ while (PULSE_RetrieveRingMessage(&wwo->msgRing, &msg, ¶m, &ev)) { -+ TRACE("Received %s %x\n", PULSE_getCmdString(msg), param); -+ -+ switch (msg) { -+ case WINE_WM_PAUSING: -+ wwo->state = WINE_WS_PAUSED; -+ PULSE_MainloopLock(); -+ PULSE_WaitForOperation(pa_stream_cork(wwo->stream, 1, PULSE_StreamSuccessCallback, wwo)); -+ PULSE_MainloopUnlock(); -+ SetEvent(ev); -+ break; -+ -+ case WINE_WM_RESTARTING: -+ if (wwo->state == WINE_WS_PAUSED) { -+ wwo->state = WINE_WS_PLAYING; -+ PULSE_MainloopLock(); -+ PULSE_WaitForOperation(pa_stream_cork(wwo->stream, 0, PULSE_StreamSuccessCallback, wwo)); -+ /* If the serverside buffer was near full before pausing, we -+ * need to have space to write soon, so force playback start */ -+ PULSE_WaitForOperation(pa_stream_trigger(wwo->stream, PULSE_StreamSuccessCallback, wwo)); -+ PULSE_MainloopUnlock(); -+ } -+ SetEvent(ev); -+ break; -+ -+ case WINE_WM_HEADER: -+ lpWaveHdr = (LPWAVEHDR)param; -+ /* insert buffer at the end of queue */ -+ { -+ LPWAVEHDR *wh; -+ for (wh = &(wwo->lpQueuePtr); *wh; wh = &((*wh)->lpNext)); -+ *wh = lpWaveHdr; -+ } -+ -+ if (!wwo->lpPlayPtr) -+ wodPlayer_BeginWaveHdr(wwo,lpWaveHdr); -+ if (wwo->state == WINE_WS_STOPPED) -+ wwo->state = WINE_WS_PLAYING; -+ -+ wodPlayer_Feed(wwo, pa_stream_writable_size(wwo->stream)); -+ SetEvent(ev); -+ break; -+ -+ case WINE_WM_RESETTING: -+ wodPlayer_Reset(wwo); -+ SetEvent(ev); -+ break; -+ -+ case WINE_WM_BREAKLOOP: -+ if (wwo->state == WINE_WS_PLAYING && wwo->lpLoopPtr != NULL) -+ /* ensure exit at end of current loop */ -+ wwo->dwLoops = 1; -+ SetEvent(ev); -+ break; -+ -+ case WINE_WM_FEED: /* Sent by the pulse thread */ -+ wodPlayer_Feed(wwo, pa_stream_writable_size(wwo->stream)); -+ SetEvent(ev); -+ break; -+ -+ case WINE_WM_XRUN: /* Sent by the pulse thread */ -+ WARN("Trying to recover from underrun.\n"); -+ /* Return all the queued wavehdrs, so the app will send more data */ -+ wodPlayer_NotifyCompletions(wwo, FALSE, (pa_usec_t)-1); -+ -+ SetEvent(ev); -+ break; -+ -+ case WINE_WM_CLOSING: -+ wwo->hThread = NULL; -+ wwo->state = WINE_WS_CLOSED; -+ /* sanity check: this should not happen since the device must have been reset before */ -+ if (wwo->lpQueuePtr || wwo->lpPlayPtr) ERR("out of sync\n"); -+ SetEvent(ev); -+ TRACE("Thread exiting.\n"); -+ ExitThread(0); -+ /* shouldn't go here */ -+ -+ default: -+ FIXME("unknown message %d\n", msg); -+ break; -+ } -+ } -+} -+ -+/************************************************************************** -+ * wodPlayer [internal] -+ * -+ * The thread which is responsible for returning WaveHdrs via DriverCallback, -+ * the writing of queued WaveHdrs, and all pause / reset stream management. -+ */ -+static DWORD CALLBACK wodPlayer(LPVOID lpParam) { -+ WINE_WAVEINST *wwo = (WINE_WAVEINST*)lpParam; -+ DWORD dwSleepTime = INFINITE; -+ int64_t delta_write; -+ -+ wwo->state = WINE_WS_STOPPED; -+ SetEvent(wwo->hStartUpEvent); -+ -+ /* Wait for the shortest time before an action is required. If there are -+ * no pending actions, wait forever for a command. */ -+ for (;;) { -+ TRACE("Waiting %u ms\n", dwSleepTime); -+ PULSE_WaitRingMessage(&wwo->msgRing, dwSleepTime); -+ -+ delta_write = wwo->timing_info->write_index; -+ wodPlayer_ProcessMessages(wwo); -+ -+ /* Check for a stall situaiton */ -+ if (delta_write == wwo->timing_info->write_index -+ && wwo->lpQueuePtr && !wwo->lpPlayPtr -+ && wwo->state != WINE_WS_STOPPED) -+ wodPlayer_CheckReleasing(wwo); -+ -+ /* If there is audio playing, return headers and get next timeout */ -+ if (wwo->state == WINE_WS_PLAYING) { -+ dwSleepTime = wodPlayer_NotifyCompletions(wwo, FALSE, wodPlayer_GetStreamTime(wwo)); -+ } else -+ dwSleepTime = INFINITE; -+ } -+ -+ return 0; -+} -+ -+/************************************************************************** -+ * wodOpen [internal] -+ * -+ * Create a new pa_stream and connect it to a sink while creating a new -+ * WINE_WAVEINST to represent the device to the windows application. -+ */ -+static DWORD wodOpen(WORD wDevID, DWORD_PTR lpdwUser, LPWAVEOPENDESC lpDesc, DWORD dwFlags) { -+ WINE_WAVEDEV *wdo; -+ WINE_WAVEINST *wwo = NULL; -+ DWORD ret = MMSYSERR_NOERROR; -+ -+ TRACE("(%u, %p, %08X);\n", wDevID, lpDesc, dwFlags); -+ if (lpDesc == NULL) { -+ WARN("Invalid Parameter!\n"); -+ return MMSYSERR_INVALPARAM; -+ } -+ -+ if (wDevID >= PULSE_WodNumDevs) { -+ WARN("Asked for device %d, but only %d known!\n", wDevID, PULSE_WodNumDevs); -+ return MMSYSERR_BADDEVICEID; -+ } -+ wdo = &WOutDev[wDevID]; -+ -+ wwo = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(WINE_WAVEINST)); -+ if (!wwo) { -+ WARN("Out of memory?!\n"); -+ return MMSYSERR_NOMEM; -+ } -+ *(WINE_WAVEINST**)lpdwUser = wwo; -+ -+ /* check to see if format is supported and make pa_sample_spec struct */ -+ if (!PULSE_SetupFormat(lpDesc->lpFormat, &wwo->sample_spec)) { -+ WARN("Bad format: tag=%04X nChannels=%d nSamplesPerSec=%d !\n", -+ lpDesc->lpFormat->wFormatTag, lpDesc->lpFormat->nChannels, -+ lpDesc->lpFormat->nSamplesPerSec); -+ ret = WAVERR_BADFORMAT; -+ goto exit; -+ } -+ -+ /* Check to see if this was just a query */ -+ if (dwFlags & WAVE_FORMAT_QUERY) { -+ TRACE("Query format: tag=%04X nChannels=%d nSamplesPerSec=%d !\n", -+ lpDesc->lpFormat->wFormatTag, lpDesc->lpFormat->nChannels, -+ lpDesc->lpFormat->nSamplesPerSec); -+ ret = MMSYSERR_NOERROR; -+ goto exit; -+ } -+ -+ if (TRACE_ON(wave)) { -+ char t[PA_SAMPLE_SPEC_SNPRINT_MAX]; -+ pa_sample_spec_snprint(t, sizeof(t), &wwo->sample_spec); -+ TRACE("Sample spec '%s'\n", t); -+ } -+ -+ wwo->wFlags = HIWORD(dwFlags & CALLBACK_TYPEMASK); -+ wwo->waveDesc = *lpDesc; -+ PULSE_InitRingMessage(&wwo->msgRing); -+ -+ wwo->stream = pa_stream_new(PULSE_context, "WaveOut", &wwo->sample_spec, NULL); -+ /* If server doesn't support sample_spec, it will error out here (re: 24bit) */ -+ if (!wwo->stream) { -+ ret = WAVERR_BADFORMAT; -+ goto exit; -+ } -+ -+ /* Setup callbacks */ -+ pa_stream_set_write_callback (wwo->stream, PULSE_StreamRequestCallback, wwo); -+ pa_stream_set_state_callback (wwo->stream, PULSE_StreamStateCallback, wwo); -+ pa_stream_set_underflow_callback (wwo->stream, PULSE_StreamUnderflowCallback, wwo); -+ pa_stream_set_moved_callback (wwo->stream, PULSE_StreamMovedCallback, wwo); -+ pa_stream_set_suspended_callback (wwo->stream, PULSE_StreamSuspendedCallback, wwo); -+ -+ /* Blank Buffer Attributes */ -+ wwo->buffer_attr.prebuf = (uint32_t)-1; -+ wwo->buffer_attr.tlength = (uint32_t)-1; -+ wwo->buffer_attr.minreq = (uint32_t)-1; -+ wwo->buffer_attr.maxlength = (uint32_t)-1; -+ -+ /* Try and connect */ -+ TRACE("Connecting stream for playback on %s.\n", wdo->device_name); -+ PULSE_MainloopLock(); -+ pa_stream_connect_playback(wwo->stream, wdo->device_name, &wwo->buffer_attr, PA_STREAM_AUTO_TIMING_UPDATE | PA_STREAM_ADJUST_LATENCY, NULL, NULL); -+ -+ /* Wait for connection */ -+ for (;;) { -+ pa_context_state_t cstate = pa_context_get_state(PULSE_context); -+ pa_stream_state_t sstate = pa_stream_get_state(wwo->stream); -+ -+ if (cstate == PA_CONTEXT_FAILED || cstate == PA_CONTEXT_TERMINATED || -+ sstate == PA_STREAM_FAILED || sstate == PA_STREAM_TERMINATED) { -+ ERR("Failed to connect stream context object: %s\n", pa_strerror(pa_context_errno(PULSE_context))); -+ PULSE_MainloopUnlock(); -+ ret = MMSYSERR_NODRIVER; -+ goto exit; -+ } -+ -+ if (sstate == PA_STREAM_READY) -+ break; -+ -+ PULSE_MainloopWait(); -+ } -+ TRACE("(%p)->stream connected for playback.\n", wwo); -+ -+ /* Get the pa_timing_info structure */ -+ PULSE_WaitForOperation(pa_stream_update_timing_info(wwo->stream, PULSE_StreamSuccessCallback, wwo)); -+ wwo->timing_info = pa_stream_get_timing_info(wwo->stream); -+ assert(wwo->timing_info); -+ PULSE_MainloopUnlock(); -+ -+ /* Create and start the wodPlayer() thread to manage playback */ -+ wwo->hStartUpEvent = CreateEventW(NULL, FALSE, FALSE, NULL); -+ wwo->hThread = CreateThread(NULL, 0, wodPlayer, (LPVOID)wwo, 0, &(wwo->dwThreadID)); -+ if (wwo->hThread) -+ SetThreadPriority(wwo->hThread, THREAD_PRIORITY_TIME_CRITICAL); -+ else { -+ ERR("Thread creation for the wodPlayer failed!\n"); -+ ret = MMSYSERR_NOMEM; -+ goto exit; -+ } -+ WaitForSingleObject(wwo->hStartUpEvent, INFINITE); -+ CloseHandle(wwo->hStartUpEvent); -+ wwo->hStartUpEvent = INVALID_HANDLE_VALUE; -+ -+ return wodPlayer_NotifyClient (wwo, WOM_OPEN, 0L, 0L); -+ -+exit: -+ if (!wwo) -+ return ret; -+ -+ if (wwo->hStartUpEvent != INVALID_HANDLE_VALUE) -+ CloseHandle(wwo->hStartUpEvent); -+ -+ if (wwo->msgRing.ring_buffer_size > 0) -+ PULSE_DestroyRingMessage(&wwo->msgRing); -+ -+ if (wwo->stream) { -+ if (pa_stream_get_state(wwo->stream) == PA_STREAM_READY) -+ pa_stream_disconnect(wwo->stream); -+ pa_stream_unref(wwo->stream); -+ wwo->stream = NULL; -+ } -+ HeapFree(GetProcessHeap(), 0, wwo); -+ -+ return ret; -+} -+ -+/************************************************************************** -+ * wodClose [internal] -+ */ -+static DWORD wodClose(WINE_WAVEINST *wwo) { -+ DWORD ret; -+ -+ TRACE("(%p);\n", wwo); -+ if (!wwo) { -+ WARN("Stream instance invalid.\n"); -+ return MMSYSERR_INVALHANDLE; -+ } -+ -+ if (wwo->state != WINE_WS_FAILED) { -+ if (wwo->lpQueuePtr && wwo->lpPlayPtr) { -+ WARN("buffers still playing !\n"); -+ return WAVERR_STILLPLAYING; -+ } -+ -+ PULSE_MainloopLock(); -+ PULSE_WaitForOperation(pa_stream_drain(wwo->stream, PULSE_StreamSuccessCallback, NULL)); -+ pa_stream_disconnect(wwo->stream); -+ PULSE_MainloopUnlock(); -+ -+ if (wwo->hThread != INVALID_HANDLE_VALUE) -+ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_CLOSING, 0, TRUE); -+ -+ PULSE_DestroyRingMessage(&wwo->msgRing); -+ } -+ -+ if (wwo->stream) -+ pa_stream_unref(wwo->stream); -+ ret = wodPlayer_NotifyClient(wwo, WOM_CLOSE, 0L, 0L); -+ -+ HeapFree(GetProcessHeap(), 0, wwo); -+ -+ return ret; -+} -+ -+/************************************************************************** -+ * wodWrite [internal] -+ */ -+static DWORD wodWrite(WINE_WAVEINST *wwo, LPWAVEHDR lpWaveHdr, DWORD dwSize) { -+ if (!wwo || wwo->state == WINE_WS_FAILED) { -+ WARN("Stream instance invalid.\n"); -+ return MMSYSERR_INVALHANDLE; -+ } -+ -+ if (lpWaveHdr->lpData == NULL || !(lpWaveHdr->dwFlags & WHDR_PREPARED)) -+ return WAVERR_UNPREPARED; -+ -+ if (lpWaveHdr->dwFlags & WHDR_INQUEUE) -+ return WAVERR_STILLPLAYING; -+ -+ lpWaveHdr->dwFlags &= ~WHDR_DONE; -+ lpWaveHdr->dwFlags |= WHDR_INQUEUE; -+ lpWaveHdr->lpNext = 0; -+ lpWaveHdr->reserved = 0; -+ -+ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_HEADER, (DWORD)lpWaveHdr, FALSE); -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * wodPause [internal] -+ */ -+static DWORD wodPause(WINE_WAVEINST *wwo) { -+ if (!wwo || wwo->state == WINE_WS_FAILED) { -+ WARN("Stream instance invalid.\n"); -+ return MMSYSERR_INVALHANDLE; -+ } -+ -+ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_PAUSING, 0, TRUE); -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * wodGetPosition [internal] -+ */ -+static DWORD wodGetPosition(WINE_WAVEINST *wwo, LPMMTIME lpTime, DWORD uSize) { -+ pa_usec_t time, temp; -+ -+ if (!wwo || wwo->state == WINE_WS_FAILED) { -+ WARN("Stream instance invalid.\n"); -+ return MMSYSERR_INVALHANDLE; -+ } -+ -+ if (lpTime == NULL) return MMSYSERR_INVALPARAM; -+ -+ time = wodPlayer_GetStreamTime(wwo); -+ -+ temp = pa_bytes_to_usec(wwo->dwLastReset, &wwo->sample_spec); -+ if (time > temp) time -= temp; else time = 0; -+ -+ return PULSE_UsecToMMTime(time, lpTime, &wwo->sample_spec); -+} -+/************************************************************************** -+ * wodBreakLoop [internal] -+ */ -+static DWORD wodBreakLoop(WINE_WAVEINST *wwo) { -+ if (!wwo || wwo->state == WINE_WS_FAILED) { -+ WARN("Stream instance invalid.\n"); -+ return MMSYSERR_INVALHANDLE; -+ } -+ -+ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_BREAKLOOP, 0, TRUE); -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * wodGetDevCaps [internal] -+ */ -+static DWORD wodGetDevCaps(DWORD wDevID, LPWAVEOUTCAPSW lpCaps, DWORD dwSize) { -+ TRACE("(%u, %p, %u);\n", wDevID, lpCaps, dwSize); -+ -+ if (lpCaps == NULL) return MMSYSERR_NOTENABLED; -+ -+ if (wDevID >= PULSE_WodNumDevs) { -+ TRACE("Asked for device %d, but only %d known!\n", wDevID, PULSE_WodNumDevs); -+ return MMSYSERR_INVALHANDLE; -+ } -+ -+ memcpy(lpCaps, &(WOutDev[wDevID].caps.out), min(dwSize, sizeof(*lpCaps))); -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * wodGetNumDevs [internal] -+ * Context-sanity check here, as if we respond with 0, WINE will move on -+ * to the next waveout driver. -+ */ -+static DWORD wodGetNumDevs(void) { -+ if (!PULSE_ml || !PULSE_context || pa_context_get_state(PULSE_context) != PA_CONTEXT_READY) -+ return 0; -+ -+ return PULSE_WodNumDevs; -+} -+ -+/************************************************************************** -+ * wodGetVolume [internal] -+ */ -+static DWORD wodGetVolume(WINE_WAVEINST *wwo, LPDWORD lpdwVol) { -+ double value1, value2; -+ DWORD wleft, wright; -+ -+ if (!wwo || wwo->state == WINE_WS_FAILED) { -+ WARN("Stream instance invalid.\n"); -+ return MMSYSERR_INVALHANDLE; -+ } -+ -+ TRACE("(%p, %p);\n", wwo, lpdwVol); -+ -+ if (lpdwVol == NULL) -+ return MMSYSERR_NOTENABLED; -+ -+ PULSE_MainloopLock(); -+ if (wwo->stream && PULSE_context && pa_context_get_state(PULSE_context) == PA_CONTEXT_READY && -+ pa_stream_get_state(wwo->stream) == PA_STREAM_READY) { -+ PULSE_WaitForOperation(pa_context_get_sink_input_info(PULSE_context, pa_stream_get_index(wwo->stream), WAVEOUT_SinkInputInfoCallback, wwo)); -+ } -+ PULSE_MainloopUnlock(); -+ -+ -+ if (wwo->volume.channels == 2) { -+ value1 = pa_sw_volume_to_linear(wwo->volume.values[0]); -+ value2 = pa_sw_volume_to_linear(wwo->volume.values[1]); -+ } else { -+ value1 = pa_sw_volume_to_linear(pa_cvolume_avg(&wwo->volume)); -+ value2 = value1; -+ } -+ -+ wleft = 0xFFFFl * value1; -+ wright = 0xFFFFl * value2; -+ -+ if (wleft > 0xFFFFl) -+ wleft = 0xFFFFl; -+ if (wright > 0xFFFFl) -+ wright = 0xFFFFl; -+ -+ *lpdwVol = (WORD)wleft + (WORD)(wright << 16); -+ -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * wodSetVolume [internal] -+ */ -+static DWORD wodSetVolume(WINE_WAVEINST *wwo, DWORD dwParam1) { -+ double value1, value2; -+ -+ TRACE("(%p, %08X);\n", wwo, dwParam1); -+ if (!wwo || wwo->state == WINE_WS_FAILED) { -+ WARN("Stream instance invalid.\n"); -+ return MMSYSERR_INVALHANDLE; -+ } -+ -+ value1 = (double)LOWORD(dwParam1)/(double)0xFFFFl; -+ value2 = (double)HIWORD(dwParam1)/(double)0xFFFFl; -+ -+ if (wwo->sample_spec.channels == 2) { -+ wwo->volume.channels = 2; -+ wwo->volume.values[0] = pa_sw_volume_from_linear(value1); -+ wwo->volume.values[1] = pa_sw_volume_from_linear(value2); -+ } else { -+ if (value1 != value2) FIXME("Non-stereo streams can't pan!\n"); -+ wwo->volume.channels = wwo->sample_spec.channels; -+ pa_cvolume_set(&wwo->volume, wwo->volume.channels, pa_sw_volume_from_linear(value1 > value2 ? value1 : value2)); -+ } -+ -+ if (TRACE_ON(wave)) { -+ char s[PA_CVOLUME_SNPRINT_MAX]; -+ pa_cvolume_snprint(s, PA_CVOLUME_SNPRINT_MAX, &wwo->volume); -+ TRACE("%s\n", s); -+ } -+ -+ PULSE_MainloopLock(); -+ if (!wwo->stream || !PULSE_context || pa_context_get_state(PULSE_context) != PA_CONTEXT_READY || -+ pa_stream_get_state(wwo->stream) != PA_STREAM_READY || !pa_cvolume_valid(&wwo->volume)) { -+ PULSE_MainloopUnlock(); -+ return MMSYSERR_NOERROR; -+ } -+ -+ PULSE_WaitForOperation(pa_context_set_sink_input_volume(PULSE_context, -+ pa_stream_get_index(wwo->stream), &wwo->volume, -+ PULSE_ContextSuccessCallback, wwo)); -+ PULSE_MainloopUnlock(); -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * wodRestart [internal] -+ */ -+static DWORD wodRestart(WINE_WAVEINST *wwo) { -+ if (!wwo || wwo->state == WINE_WS_FAILED) { -+ WARN("Stream instance invalid.\n"); -+ return MMSYSERR_INVALHANDLE; -+ } -+ -+ if (wwo->state == WINE_WS_PAUSED) -+ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_RESTARTING, 0, TRUE); -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * wodReset [internal] -+ */ -+static DWORD wodReset(WINE_WAVEINST *wwo) { -+ if (!wwo || wwo->state == WINE_WS_FAILED) { -+ WARN("Stream instance invalid.\n"); -+ return MMSYSERR_INVALHANDLE; -+ } -+ -+ PULSE_AddRingMessage(&wwo->msgRing, WINE_WM_RESETTING, 0, TRUE); -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * wodDevInterfaceSize [internal] -+ */ -+static DWORD wodDevInterfaceSize(UINT wDevID, LPDWORD dwParam1) { -+ -+ *dwParam1 = MultiByteToWideChar(CP_UTF8, 0, WOutDev[wDevID].interface_name, -1, NULL, 0) * sizeof(WCHAR); -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * wodDevInterface [internal] -+ */ -+static DWORD wodDevInterface(UINT wDevID, PWCHAR dwParam1, DWORD dwParam2) { -+ if (dwParam2 >= MultiByteToWideChar(CP_UTF8, 0, WOutDev[wDevID].interface_name, -1, -+ NULL, 0 ) * sizeof(WCHAR)) -+ { -+ MultiByteToWideChar(CP_UTF8, 0, WOutDev[wDevID].interface_name, -1, -+ dwParam1, dwParam2 / sizeof(WCHAR)); -+ return MMSYSERR_NOERROR; -+ } -+ return MMSYSERR_INVALPARAM; -+} -+ -+DWORD wodDsDesc(UINT wDevID, PDSDRIVERDESC desc) { -+ TRACE("(%u, %p)\n", wDevID, desc); -+ *desc = WOutDev[wDevID].ds_desc; -+ return MMSYSERR_NOERROR; -+} -+ -+/************************************************************************** -+ * wodMessage (WINEPULSE.@) -+ */ -+DWORD WINAPI PULSE_wodMessage(UINT wDevID, UINT wMsg, DWORD_PTR dwUser, DWORD_PTR dwParam1, DWORD_PTR dwParam2) { -+ -+ switch (wMsg) { -+ -+ case DRVM_INIT: -+ case DRVM_EXIT: -+ case DRVM_ENABLE: -+ case DRVM_DISABLE: -+ return 0; -+ -+ /* WaveOut Playback related functions */ -+ case WODM_OPEN: return wodOpen (wDevID, dwUser, (LPWAVEOPENDESC)dwParam1, dwParam2); -+ case WODM_CLOSE: return wodClose ((WINE_WAVEINST*)dwUser); -+ case WODM_WRITE: return wodWrite ((WINE_WAVEINST*)dwUser, (LPWAVEHDR)dwParam1, dwParam2); -+ case WODM_PAUSE: return wodPause ((WINE_WAVEINST*)dwUser); -+ case WODM_GETPOS: return wodGetPosition ((WINE_WAVEINST*)dwUser, (LPMMTIME)dwParam1, dwParam2); -+ case WODM_BREAKLOOP: return wodBreakLoop ((WINE_WAVEINST*)dwUser); -+ case WODM_RESTART: return wodRestart ((WINE_WAVEINST*)dwUser); -+ case WODM_RESET: return wodReset ((WINE_WAVEINST*)dwUser); -+ -+ case WODM_GETVOLUME: return wodGetVolume ((WINE_WAVEINST*)dwUser, (LPDWORD)dwParam1); -+ case WODM_SETVOLUME: return wodSetVolume ((WINE_WAVEINST*)dwUser, dwParam1); -+ -+ case WODM_PREPARE: -+ case WODM_UNPREPARE: -+ -+ case WODM_GETPITCH: -+ case WODM_SETPITCH: -+ -+ case WODM_GETPLAYBACKRATE: -+ case WODM_SETPLAYBACKRATE: -+ return MMSYSERR_NOTSUPPORTED; -+ -+ /* Device enumeration, directsound and capabilities */ -+ case WODM_GETDEVCAPS: return wodGetDevCaps (wDevID, (LPWAVEOUTCAPSW)dwParam1, dwParam2); -+ case WODM_GETNUMDEVS: return wodGetNumDevs (); -+ case DRV_QUERYDEVICEINTERFACESIZE: return wodDevInterfaceSize (wDevID, (LPDWORD)dwParam1); -+ case DRV_QUERYDEVICEINTERFACE: return wodDevInterface (wDevID, (PWCHAR)dwParam1, dwParam2); -+ case DRV_QUERYDSOUNDIFACE: return MMSYSERR_NOTSUPPORTED; -+ case DRV_QUERYDSOUNDDESC: return wodDsDesc (wDevID, (PDSDRIVERDESC)dwParam1); -+ -+ default: -+ FIXME("unknown message %d!\n", wMsg); -+ } -+ return MMSYSERR_NOTSUPPORTED; -+} -+ -+#else /* !HAVE_PULSEAUDIO */ -+ -+/************************************************************************** -+ * wodMessage (WINEPULSE.@) -+ */ -+DWORD WINAPI PULSE_wodMessage(WORD wDevID, WORD wMsg, DWORD dwUser, -+ DWORD dwParam1, DWORD dwParam2) { -+ FIXME("(%u, %04X, %08X, %08X, %08X):stub\n", wDevID, wMsg, dwUser, -+ dwParam1, dwParam2); -+ return MMSYSERR_NOTENABLED; -+} -+ -+#endif /* HAVE_PULSEAUDIO */ -diff --git a/dlls/winepulse.drv/winepulse.drv.spec b/dlls/winepulse.drv/winepulse.drv.spec -new file mode 100644 -index 0000000..1b49460 ---- /dev/null -+++ b/dlls/winepulse.drv/winepulse.drv.spec -@@ -0,0 +1,3 @@ -+@ stdcall -private DriverProc(long long long long long long) PULSE_DriverProc -+@ stdcall -private wodMessage(long long long long long long) PULSE_wodMessage -+@ stdcall -private widMessage(long long long long long long) PULSE_widMessage -diff --git a/dlls/winepulse.drv/winepulse.h b/dlls/winepulse.drv/winepulse.h -new file mode 100644 -index 0000000..30eacfd ---- /dev/null -+++ b/dlls/winepulse.drv/winepulse.h -@@ -0,0 +1,210 @@ -+/* Definitions for PulseAudio Wine Driver -+ * -+ * Copyright 2009 Arthur Taylor -+ * -+ * 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, write to the Free Software -+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA -+ */ -+ -+#ifndef __WINE_CONFIG_H -+# error You must include config.h to use this header -+#endif -+ -+#if defined(HAVE_PULSEAUDIO) && !defined(__WINEPULSE_H) -+#define __WINEPULSE_H -+ -+#include "mmreg.h" -+#include "dsound.h" -+#include "dsdriver.h" -+ -+#include "ks.h" -+#include "ksmedia.h" -+#include "ksguid.h" -+ -+#include -+ -+/* state diagram for waveOut writing: -+ * -+ * +---------+-------------+---------------+---------------------------------+ -+ * | state | function | event | new state | -+ * +---------+-------------+---------------+---------------------------------+ -+ * | | open() | | STOPPED | -+ * | PAUSED | write() | | PAUSED | -+ * | STOPPED | write() | | PLAYING | -+ * | PLAYING | write() | HEADER | PLAYING | -+ * | (other) | write() | | | -+ * | (any) | pause() | PAUSING | PAUSED | -+ * | PAUSED | restart() | RESTARTING | PLAYING (if no thrd => STOPPED) | -+ * | (any) | reset() | RESETTING | STOPPED | -+ * | (any) | close() | CLOSING | CLOSED | -+ * +---------+-------------+---------------+---------------------------------+ -+ */ -+ -+/* states of the playing device */ -+#define WINE_WS_PLAYING 1 -+#define WINE_WS_PAUSED 2 -+#define WINE_WS_STOPPED 3 -+#define WINE_WS_CLOSED 4 -+#define WINE_WS_FAILED 5 -+ -+#define PULSE_ALL_FORMATS \ -+ WAVE_FORMAT_1M08 | /* Mono 11025Hz 8-bit */\ -+ WAVE_FORMAT_1M16 | /* Mono 11025Hz 16-bit */\ -+ WAVE_FORMAT_1S08 | /* Stereo 11025Hz 8-bit */\ -+ WAVE_FORMAT_1S16 | /* Stereo 11025Hz 16-bit */\ -+ WAVE_FORMAT_2M08 | /* Mono 22050Hz 8-bit */\ -+ WAVE_FORMAT_2M16 | /* Mono 22050Hz 16-bit */\ -+ WAVE_FORMAT_2S08 | /* Stereo 22050Hz 8-bit */\ -+ WAVE_FORMAT_2S16 | /* Stereo 22050Hz 16-bit */\ -+ WAVE_FORMAT_4M08 | /* Mono 44100Hz 8-bit */\ -+ WAVE_FORMAT_4M16 | /* Mono 44100Hz 16-bit */\ -+ WAVE_FORMAT_4S08 | /* Stereo 44100Hz 8-bit */\ -+ WAVE_FORMAT_4S16 | /* Stereo 44100Hz 16-bit */\ -+ WAVE_FORMAT_48M08 | /* Mono 48000Hz 8-bit */\ -+ WAVE_FORMAT_48S08 | /* Stereo 48000Hz 8-bit */\ -+ WAVE_FORMAT_48M16 | /* Mono 48000Hz 16-bit */\ -+ WAVE_FORMAT_48S16 | /* Stereo 48000Hz 16-bit */\ -+ WAVE_FORMAT_96M08 | /* Mono 96000Hz 8-bit */\ -+ WAVE_FORMAT_96S08 | /* Stereo 96000Hz 8-bit */\ -+ WAVE_FORMAT_96M16 | /* Mono 96000Hz 16-bit */\ -+ WAVE_FORMAT_96S16 /* Stereo 96000Hz 16-bit */ -+ -+/* events to be sent to device */ -+enum win_wm_message { -+ WINE_WM_PAUSING = WM_USER + 1, WINE_WM_RESTARTING, WINE_WM_RESETTING, WINE_WM_HEADER, -+ WINE_WM_BREAKLOOP, WINE_WM_CLOSING, WINE_WM_STARTING, WINE_WM_STOPPING, WINE_WM_XRUN, WINE_WM_FEED -+}; -+ -+typedef struct { -+ enum win_wm_message msg; /* message identifier */ -+ DWORD param; /* parameter for this message */ -+ HANDLE hEvent; /* if message is synchronous, handle of event for synchro */ -+} PULSE_MSG; -+ -+/* implement an in-process message ring for better performance -+ * (compared to passing thru the server) -+ * this ring will be used by the input (resp output) record (resp playback) routine -+ */ -+typedef struct { -+ PULSE_MSG * messages; -+ int ring_buffer_size; -+ int msg_tosave; -+ int msg_toget; -+/* Either pipe or event is used, but that is defined in pulse.c, -+ * since this is a global header we define both here */ -+ int msg_pipe[2]; -+ HANDLE msg_event; -+ CRITICAL_SECTION msg_crst; -+} PULSE_MSG_RING; -+ -+typedef struct WINE_WAVEDEV WINE_WAVEDEV; -+typedef struct WINE_WAVEINST WINE_WAVEINST; -+ -+/* Per-playback/record device */ -+struct WINE_WAVEDEV { -+ char interface_name[MAXPNAMELEN * 2]; -+ char *device_name; -+ pa_cvolume volume; -+ -+ union { -+ WAVEOUTCAPSW out; -+ WAVEINCAPSW in; -+ } caps; -+ -+ /* DirectSound stuff */ -+ DSDRIVERDESC ds_desc; -+ DSDRIVERCAPS ds_caps; -+}; -+ -+/* Per-playback/record instance */ -+struct WINE_WAVEINST { -+ INT state; /* one of the WINE_WS_ manifest constants */ -+ WAVEOPENDESC waveDesc; -+ WORD wFlags; -+ -+ /* PulseAudio specific data */ -+ pa_stream *stream; /* The PulseAudio stream */ -+ const pa_timing_info *timing_info; /* The timing info structure for the stream */ -+ pa_sample_spec sample_spec; /* Sample spec of this stream / device */ -+ pa_cvolume volume; /* Software volume of the stream */ -+ pa_buffer_attr buffer_attr; /* Buffer attribute, may not be used */ -+ -+ /* waveIn / waveOut wavaHdr */ -+ LPWAVEHDR lpQueuePtr; /* Start of queued WAVEHDRs (waiting to be notified) */ -+ LPWAVEHDR lpPlayPtr; /* Start of not yet fully written buffers */ -+ DWORD dwPartialOffset; /* Offset of not yet written bytes in lpPlayPtr */ -+ LPWAVEHDR lpLoopPtr; /* Pointer of first buffer in loop, if any */ -+ DWORD dwLoops; /* Private copy of loop counter */ -+ DWORD dwLastReset; /* When the last reset occured, as pa stream time doesn't reset */ -+ -+ /* waveIn specific */ -+ const void *buffer; /* Pointer to the latest data fragment for recording streams */ -+ DWORD buffer_length; /* How large the latest data fragment is */ -+ DWORD buffer_read_offset; /* How far into latest data fragment we last read */ -+ -+ /* Thread communication and synchronization stuff */ -+ HANDLE hStartUpEvent; -+ HANDLE hThread; -+ DWORD dwThreadID; -+ PULSE_MSG_RING msgRing; -+}; -+ -+/* We establish one context per instance, so make it global to the lib */ -+pa_context *PULSE_context; /* Connection Context */ -+pa_mainloop *PULSE_ml; /* PA Runtime information */ -+ -+/* Win32 mainloop handles */ -+HANDLE PULSE_ml_hThread; -+HANDLE PULSE_ml_hEvent; -+HANDLE PULSE_ml_hMutex; -+ -+/* WaveIn / WaveOut devices */ -+WINE_WAVEDEV *WOutDev; -+WINE_WAVEDEV *WInDev; -+DWORD PULSE_WodNumDevs; -+DWORD PULSE_WidNumDevs; -+ -+/* pulse.c: PulseAudio Async Callbacks */ -+void PULSE_StreamRequestCallback(pa_stream *s, size_t nbytes, void *userdata); -+void PULSE_StreamSuccessCallback(pa_stream *s, int success, void *userdata); -+void PULSE_StreamStateCallback(pa_stream *s, void *userdata); -+void PULSE_StreamUnderflowCallback(pa_stream *s, void *userdata); -+void PULSE_StreamSuspendedCallback(pa_stream *s, void *userdata); -+void PULSE_StreamMovedCallback(pa_stream *s, void *userdata); -+void PULSE_ContextSuccessCallback(pa_context *c, int success, void *userdata); -+ -+/* pulse.c: General Functions */ -+void PULSE_WaitForOperation(pa_operation *o); -+BOOL PULSE_SetupFormat(LPWAVEFORMATEX wf, pa_sample_spec *ss); -+HRESULT PULSE_UsecToMMTime(pa_usec_t time, LPMMTIME lpTime, const pa_sample_spec *ss); -+ -+/* pulse.c: Win32 Mainloop */ -+void PULSE_MainloopStart(void); -+void PULSE_MainloopStop(void); -+void PULSE_MainloopLock(void); -+void PULSE_MainloopUnlock(void); -+void PULSE_MainloopWait(void); -+void PULSE_MainloopSignal(void); -+ -+/* pulse.c: Message Ring */ -+int PULSE_InitRingMessage(PULSE_MSG_RING* omr); -+int PULSE_DestroyRingMessage(PULSE_MSG_RING* omr); -+void PULSE_ResetRingMessage(PULSE_MSG_RING* omr); -+void PULSE_WaitRingMessage(PULSE_MSG_RING* omr, DWORD sleep); -+int PULSE_AddRingMessage(PULSE_MSG_RING* omr, enum win_wm_message msg, DWORD param, BOOL wait); -+int PULSE_RetrieveRingMessage(PULSE_MSG_RING* omr, enum win_wm_message *msg, DWORD *param, HANDLE *hEvent); -+ -+/* pulse.c: Tracing */ -+const char * PULSE_getCmdString(enum win_wm_message msg); -+#endif diff --git a/winepulse-configure.ac-1.3.22.patch b/winepulse-configure.ac-1.3.22.patch deleted file mode 100644 index 32afe85..0000000 --- a/winepulse-configure.ac-1.3.22.patch +++ /dev/null @@ -1,60 +0,0 @@ -diff --git a/configure.ac b/configure.ac -index 2e20f24..fe07d5b 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -78,6 +78,7 @@ AC_ARG_WITH(png, AS_HELP_STRING([--without-png],[do not use PNG]), - [if test "x$withval" = "xno"; then ac_cv_header_png_h=no; fi]) - AC_ARG_WITH(pthread, AS_HELP_STRING([--without-pthread],[do not use the pthread library]), - [if test "x$withval" = "xno"; then ac_cv_header_pthread_h=no; fi]) -+AC_ARG_WITH(pulse, AC_HELP_STRING([--without-pulse],[do not use PulseAudio sound support])) - AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)])) - AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF]), - [if test "x$withval" = "xno"; then ac_cv_header_tiffio_h=no; fi]) -@@ -1479,6 +1480,30 @@ then - CFLAGS="$save_CFLAGS" - fi - -+dnl **** Check for PulseAudio **** -+AC_SUBST(PULSELIBS,"") -+AC_SUBST(PULSEINCL,"") -+if test "x$with_pulse" != "xno"; -+then -+ ac_save_CPPFLAGS="$CPPFLAGS" -+ if test "$PKG_CONFIG" != "false"; -+ then -+ ac_pulse_libs="`$PKG_CONFIG --libs libpulse 2>/dev/null`" -+ ac_pulse_cflags="`$PKG_CONFIG --cflags-only-I libpulse 2>/dev/null`" -+ -+ CPPFLAGS="$CPPFLAGS $ac_pulse_cflags" -+ AC_CHECK_HEADERS(pulse/pulseaudio.h, -+ [AC_CHECK_LIB(pulse, pa_stream_is_corked, -+ [AC_DEFINE(HAVE_PULSEAUDIO, 1, [Define if you have pulseaudio]) -+ PULSELIBS="$ac_pulse_libs" -+ PULSEINCL="$ac_pulse_cflags"],,$ac_pulse_libs) -+ ]) -+ fi -+ CPPFLAGS="$ac_save_CPPFLAGS" -+fi -+WINE_WARNING_WITH(pulse, [test "$ac_cv_lib_pulse_pa_stream_is_corked" != "yes"], -+ [libpulse ${notice_platform}development files not found or too old, Pulse won't be supported.]) -+ - dnl **** Check for gstreamer **** - if test "x$with_gstreamer" != "xno" - then -@@ -1693,7 +1718,7 @@ test "x$ac_cv_member_oss_sysinfo_numaudioengines" = xyes || enable_wineoss_drv=$ - test "$ac_cv_header_linux_joystick_h" = "yes" || enable_winejoystick_drv=${enable_winejoystick_drv:-no} - - dnl **** Check for any sound system **** --if test "x$ALSALIBS$COREAUDIO$NASLIBS$ESDLIBS$ac_cv_lib_soname_jack" = "x" -a \ -+if test "x$ALSALIBS$COREAUDIO$NASLIBS$ESDLIBS$PULSELIBS$ac_cv_lib_soname_jack" = "x" -a \ - "x$ac_cv_member_oss_sysinfo_numaudioengines" != xyes -a \ - "x$with_alsa$with_coreaudio$with_nas$with_esd$with_jack$with_oss" != xnononononono - then -@@ -2883,6 +2908,7 @@ WINE_CONFIG_DLL(winenas.drv) - WINE_CONFIG_DLL(wineoss.drv) - WINE_CONFIG_DLL(wineps.drv,,[install-lib]) - WINE_CONFIG_DLL(wineps16.drv16,enable_win16) -+WINE_CONFIG_DLL(winepulse.drv) - WINE_CONFIG_DLL(wineqtdecoder) - WINE_CONFIG_DLL(winequartz.drv) - WINE_CONFIG_DLL(winex11.drv) diff --git a/winepulse-winecfg-1.3.11.patch b/winepulse-winecfg-1.3.11.patch deleted file mode 100644 index 3c5c3f8..0000000 --- a/winepulse-winecfg-1.3.11.patch +++ /dev/null @@ -1,49 +0,0 @@ -diff --git a/programs/winecfg/audio.c b/programs/winecfg/audio.c -index 4c90282..fcf3236 100644 ---- a/programs/winecfg/audio.c -+++ b/programs/winecfg/audio.c -@@ -90,6 +90,7 @@ typedef struct - } AUDIO_DRIVER; - - static AUDIO_DRIVER sAudioDrivers[] = { -+ {IDS_DRIVER_PULSE, "pulse"}, - {IDS_DRIVER_ALSA, "alsa"}, - {IDS_DRIVER_OSS, "oss"}, - {IDS_DRIVER_COREAUDIO, "coreaudio"}, -diff --git a/programs/winecfg/libraries.c b/programs/winecfg/libraries.c -index e402b4e..f0264ca 100644 ---- a/programs/winecfg/libraries.c -+++ b/programs/winecfg/libraries.c -@@ -73,6 +73,7 @@ static const char * const builtin_only[] = - "winedos", - "winemp3.acm", - "wineps", -+ "winepulse.drv", - "winmm", - "wintab32", - "wnaspi32", -diff --git a/programs/winecfg/resource.h b/programs/winecfg/resource.h -index 3bed6aa..2f347d9 100644 ---- a/programs/winecfg/resource.h -+++ b/programs/winecfg/resource.h -@@ -186,7 +186,7 @@ - #define IDS_ACCEL_BASIC 8302 - #define IDS_ACCEL_EMULATION 8303 - #define IDS_DRIVER_ALSA 8304 -- -+#define IDS_DRIVER_PULSE 8305 - #define IDS_DRIVER_ESOUND 8306 - #define IDS_DRIVER_OSS 8307 - #define IDS_DRIVER_JACK 8308 -diff --git a/programs/winecfg/winecfg.rc b/programs/winecfg/winecfg.rc -index f98a14d..314bd65 100644 ---- a/programs/winecfg/winecfg.rc -+++ b/programs/winecfg/winecfg.rc -@@ -97,6 +97,7 @@ BEGIN - IDS_ACCEL_STANDARD "Standard" - IDS_ACCEL_BASIC "Basic" - IDS_ACCEL_EMULATION "Emulation" -+ IDS_DRIVER_PULSE "PulseAudio Driver" - IDS_DRIVER_ALSA "ALSA Driver" - IDS_DRIVER_ESOUND "EsounD Driver" - IDS_DRIVER_OSS "OSS Driver" From d915dddf2d997a74de72d8e8d78c6e9342123e72 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 22 Aug 2011 22:15:50 +0200 Subject: [PATCH 203/715] 1.3.26-2 drop pulse patches make pulseaudio package meta and require alsa pa plugin update udisks patch --- .gitignore | 2 + dlls_winepulse.drv_Makefile.in | 9 - dlls_winepulse.drv_mmdevdrv.c | 2096 ------------------------------ dlls_winepulse.drv_winepulse.drv | 4 - sources | 4 +- wine-pulseaudio-configure.patch | 223 ---- wine-udisks1.patch | 739 +++++++++-- wine-udisks2.patch | 719 ---------- wine.spec | 53 +- 9 files changed, 689 insertions(+), 3160 deletions(-) delete mode 100644 dlls_winepulse.drv_Makefile.in delete mode 100644 dlls_winepulse.drv_mmdevdrv.c delete mode 100644 dlls_winepulse.drv_winepulse.drv delete mode 100644 wine-pulseaudio-configure.patch delete mode 100644 wine-udisks2.patch diff --git a/.gitignore b/.gitignore index 764ba8b..42cb21b 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,5 @@ /wine-1.3.24.tar.bz2.sign /wine-1.3.25.tar.bz2 /wine-1.3.25.tar.bz2.sign +/wine-1.3.26.tar.bz2 +/wine-1.3.26.tar.bz2.sign diff --git a/dlls_winepulse.drv_Makefile.in b/dlls_winepulse.drv_Makefile.in deleted file mode 100644 index 0f595f1..0000000 --- a/dlls_winepulse.drv_Makefile.in +++ /dev/null @@ -1,9 +0,0 @@ -MODULE = winepulse.drv -IMPORTS = dxguid uuid winmm user32 advapi32 ole32 -EXTRALIBS = @PULSELIBS@ @LIBPTHREAD@ -EXTRAINCL = @PULSEINCL@ - -C_SRCS = \ - mmdevdrv.c - -@MAKE_DLL_RULES@ diff --git a/dlls_winepulse.drv_mmdevdrv.c b/dlls_winepulse.drv_mmdevdrv.c deleted file mode 100644 index 8ba2a92..0000000 --- a/dlls_winepulse.drv_mmdevdrv.c +++ /dev/null @@ -1,2096 +0,0 @@ -/* - * Copyright 2010-2011 Maarten Lankhorst for CodeWeavers - * Copyright 2011 Andrew Eikum for CodeWeavers - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - * - * Pulseaudio driver support.. hell froze over - */ - -#define NONAMELESSUNION -#define COBJMACROS -#include "config.h" -#include -#include - -#include -#include -#include -#include - -#include - -#include "windef.h" -#include "winbase.h" -#include "winnls.h" -#include "winreg.h" -#include "wine/debug.h" -#include "wine/unicode.h" -#include "wine/list.h" - -#include "ole2.h" -#include "dshow.h" -#include "dsound.h" -#include "propsys.h" - -#include "initguid.h" -#include "ks.h" -#include "ksmedia.h" -#include "mmdeviceapi.h" -#include "audioclient.h" -#include "endpointvolume.h" -#include "audiopolicy.h" - -#include "wine/list.h" - -WINE_DEFAULT_DEBUG_CHANNEL(pulse); - -static const REFERENCE_TIME MinimumPeriod = 100000; - -static pa_context *pulse_ctx; -static pa_mainloop *pulse_ml; - -static HANDLE pulse_thread; -static pthread_mutex_t pulse_lock = PTHREAD_MUTEX_INITIALIZER; -static pthread_cond_t pulse_cond = PTHREAD_COND_INITIALIZER; - -static struct list session_list = LIST_INIT( session_list ); - -typedef struct _AudioSession { - GUID guid; - - EDataFlow dataflow; - - float master_vol; - UINT32 channel_count; - float *channel_vols; - - struct list entry; -} AudioSession; - -typedef struct ACImpl { - IAudioClient IAudioClient_iface; - IAudioRenderClient IAudioRenderClient_iface; - IAudioCaptureClient IAudioCaptureClient_iface; - IAudioSessionControl2 IAudioSessionControl2_iface; - ISimpleAudioVolume ISimpleAudioVolume_iface; - IAudioClock IAudioClock_iface; - IAudioClock2 IAudioClock2_iface; - - LONG ref; - - IMMDevice *parent; - - EDataFlow dataflow; - DWORD flags; - AUDCLNT_SHAREMODE share; - HANDLE event; - - BOOL initted, started; - UINT32 bufsize_frames; - BYTE *locked_ptr, *tmp_buffer; - UINT32 locked, peeked, extra_buffered; - UINT64 play_ofs; - - pa_stream *stream; - pa_sample_spec ss; - pa_channel_map map; - - /* Mixer format + period times */ - pa_sample_spec mix_ss; - pa_channel_map mix_map; - REFERENCE_TIME min_period, def_period; -} ACImpl; - -static const WCHAR defaultW[] = {'P','u','l','s','e','a','u','d','i','o',0}; - -static const IAudioClientVtbl AudioClient_Vtbl; -static const IAudioRenderClientVtbl AudioRenderClient_Vtbl; -static const IAudioCaptureClientVtbl AudioCaptureClient_Vtbl; -static const IAudioSessionControl2Vtbl AudioSessionControl2_Vtbl; -static const ISimpleAudioVolumeVtbl SimpleAudioVolume_Vtbl; -static const IAudioClockVtbl AudioClock_Vtbl; -static const IAudioClock2Vtbl AudioClock2_Vtbl; - -static inline ACImpl *impl_from_IAudioClient(IAudioClient *iface) -{ - return CONTAINING_RECORD(iface, ACImpl, IAudioClient_iface); -} - -static inline ACImpl *impl_from_IAudioRenderClient(IAudioRenderClient *iface) -{ - return CONTAINING_RECORD(iface, ACImpl, IAudioRenderClient_iface); -} - -static inline ACImpl *impl_from_IAudioCaptureClient(IAudioCaptureClient *iface) -{ - return CONTAINING_RECORD(iface, ACImpl, IAudioCaptureClient_iface); -} - -static inline ACImpl *impl_from_IAudioSessionControl2(IAudioSessionControl2 *iface) -{ - return CONTAINING_RECORD(iface, ACImpl, IAudioSessionControl2_iface); -} - -static inline ACImpl *impl_from_ISimpleAudioVolume(ISimpleAudioVolume *iface) -{ - return CONTAINING_RECORD(iface, ACImpl, ISimpleAudioVolume_iface); -} - -static inline ACImpl *impl_from_IAudioClock(IAudioClock *iface) -{ - return CONTAINING_RECORD(iface, ACImpl, IAudioClock_iface); -} - -static inline ACImpl *impl_from_IAudioClock2(IAudioClock2 *iface) -{ - return CONTAINING_RECORD(iface, ACImpl, IAudioClock2_iface); -} - -/* Following pulseaudio design here, mainloop has the lock taken whenever - * it is handling something for pulse, and the lock is required whenever - * doing any pa_* call that can affect the state in any way - * - * pa_cond_wait is used when waiting on results, because the mainloop needs - * the same lock taken to affect the state - * - * This is basically the same as the pa_threaded_mainloop implementation, - * but that cannot be used because it uses pthread_create directly - * - * pa_threaded_mainloop_(un)lock -> pthread_mutex_(un)lock - * pa_threaded_mainloop_signal -> pthread_cond_signal - * pa_threaded_mainloop_wait -> pthread_cond_wait - */ - -static int pulse_poll_func(struct pollfd *ufds, unsigned long nfds, int timeout, void *userdata) { - int r; - pthread_mutex_unlock(&pulse_lock); - r = poll(ufds, nfds, timeout); - pthread_mutex_lock(&pulse_lock); - return r; -} - -static DWORD CALLBACK pulse_mainloop_thread(void *tmp) { - int ret; - pulse_ml = pa_mainloop_new(); - pa_mainloop_set_poll_func(pulse_ml, pulse_poll_func, NULL); - pthread_mutex_lock(&pulse_lock); - pthread_cond_signal(&pulse_cond); - pa_mainloop_run(pulse_ml, &ret); - pthread_mutex_unlock(&pulse_lock); - pa_mainloop_free(pulse_ml); - CloseHandle(pulse_thread); - return ret; -} - -static void pulse_contextcallback(pa_context *c, void *userdata); - -static HRESULT pulse_connect(void) -{ - int len; - WCHAR path[PATH_MAX], *name; - char *str; - - if (!pulse_thread) - { - if (!(pulse_thread = CreateThread(NULL, 0, pulse_mainloop_thread, NULL, 0, NULL))) - { - ERR("Failed to create mainloop thread."); - return E_FAIL; - } - pthread_cond_wait(&pulse_cond, &pulse_lock); - } - - if (pulse_ctx && PA_CONTEXT_IS_GOOD(pa_context_get_state(pulse_ctx))) - return S_OK; - if (pulse_ctx) - pa_context_unref(pulse_ctx); - - GetModuleFileNameW(NULL, path, sizeof(path)/sizeof(*path)); - name = strrchrW(path, '\\'); - if (!name) - name = path; - else - name++; - len = WideCharToMultiByte(CP_UNIXCP, 0, name, -1, NULL, 0, NULL, NULL); - str = pa_xmalloc(len); - WideCharToMultiByte(CP_UNIXCP, 0, name, -1, str, len, NULL, NULL); - TRACE("Name: %s\n", str); - pulse_ctx = pa_context_new(pa_mainloop_get_api(pulse_ml), str); - pa_xfree(str); - if (!pulse_ctx) { - ERR("Failed to create context\n"); - return E_FAIL; - } - - pa_context_set_state_callback(pulse_ctx, pulse_contextcallback, NULL); - - TRACE("libpulse protocol version: %u. API Version %u\n", pa_context_get_protocol_version(pulse_ctx), PA_API_VERSION); - if (pa_context_connect(pulse_ctx, NULL, 0, NULL) < 0) - goto fail; - - /* Wait for connection */ - while (pthread_cond_wait(&pulse_cond, &pulse_lock)) { - pa_context_state_t state = pa_context_get_state(pulse_ctx); - - if (state == PA_CONTEXT_FAILED || state == PA_CONTEXT_TERMINATED) - goto fail; - - if (state == PA_CONTEXT_READY) - break; - } - - TRACE("Connected to server %s with protocol version: %i.\n", - pa_context_get_server(pulse_ctx), - pa_context_get_server_protocol_version(pulse_ctx)); - return S_OK; - -fail: - pa_context_unref(pulse_ctx); - pulse_ctx = NULL; - return E_FAIL; -} - -static void pulse_contextcallback(pa_context *c, void *userdata) { - switch (pa_context_get_state(c)) { - default: - FIXME("Unhandled state: %i\n", pa_context_get_state(c)); - case PA_CONTEXT_CONNECTING: - case PA_CONTEXT_UNCONNECTED: - case PA_CONTEXT_AUTHORIZING: - case PA_CONTEXT_SETTING_NAME: - TRACE("State change to %i\n", pa_context_get_state(c)); - return; - - case PA_CONTEXT_READY: - TRACE("Ready\n"); - break; - - case PA_CONTEXT_TERMINATED: - case PA_CONTEXT_FAILED: - ERR("Context failed: %s\n", pa_strerror(pa_context_errno(c))); - } - pthread_cond_signal(&pulse_cond); -} - -static void pulse_stream_state(pa_stream *s, void *user); - -static HRESULT pulse_stream_valid(ACImpl *This) { - if (!This->initted) - return AUDCLNT_E_NOT_INITIALIZED; - if (!This->stream || pa_stream_get_state(This->stream) != PA_STREAM_READY) - return AUDCLNT_E_DEVICE_INVALIDATED; - return S_OK; -} - -static void dump_attr(const pa_buffer_attr *attr) { - TRACE("maxlength: %u\n", attr->maxlength); - TRACE("minreq: %u\n", attr->minreq); - TRACE("fragsize: %u\n", attr->fragsize); - TRACE("tlength: %u\n", attr->tlength); - TRACE("prebuf: %u\n", attr->prebuf); -} - -static void pulse_op_cb(pa_stream *s, int success, void *user) { - TRACE("Success: %i\n", success); - *(int*)user = success; - pthread_cond_signal(&pulse_cond); -} - -static void pulse_attr_update(pa_stream *s, void *user) { - const pa_buffer_attr *attr = pa_stream_get_buffer_attr(s); - TRACE("New attributes or device moved:\n"); - dump_attr(attr); -} - -static HRESULT pulse_stream_connect(ACImpl *This, REFERENCE_TIME period) { - int ret; - char buffer[64]; - static LONG number; - pa_buffer_attr attr; - if (This->stream) { - pa_stream_disconnect(This->stream); - while (pa_stream_get_state(This->stream) == PA_STREAM_READY) - pthread_cond_wait(&pulse_cond, &pulse_lock); - pa_stream_unref(This->stream); - } - ret = InterlockedIncrement(&number); - sprintf(buffer, "audio stream #%i", ret); - This->stream = pa_stream_new(pulse_ctx, buffer, &This->ss, &This->map); - pa_stream_set_state_callback(This->stream, pulse_stream_state, This); - pa_stream_set_buffer_attr_callback(This->stream, pulse_attr_update, This); - pa_stream_set_moved_callback(This->stream, pulse_attr_update, This); - - attr.maxlength = -1; - attr.tlength = This->bufsize_frames * pa_frame_size(&This->ss); - if (This->def_period > period) - period = This->def_period; - attr.minreq = attr.fragsize = pa_usec_to_bytes(period/10, &This->ss); - attr.prebuf = 0; - dump_attr(&attr); - if (This->dataflow == eRender) - ret = pa_stream_connect_playback(This->stream, NULL, &attr, - PA_STREAM_START_CORKED|PA_STREAM_START_UNMUTED|PA_STREAM_AUTO_TIMING_UPDATE|PA_STREAM_INTERPOLATE_TIMING|PA_STREAM_EARLY_REQUESTS, NULL, NULL); - else - ret = pa_stream_connect_record(This->stream, NULL, &attr, - PA_STREAM_START_CORKED|PA_STREAM_START_UNMUTED|PA_STREAM_AUTO_TIMING_UPDATE|PA_STREAM_INTERPOLATE_TIMING|PA_STREAM_EARLY_REQUESTS); - if (ret < 0) { - WARN("Returns %i\n", ret); - return AUDCLNT_E_ENDPOINT_CREATE_FAILED; - } - while (pa_stream_get_state(This->stream) == PA_STREAM_CREATING) - pthread_cond_wait(&pulse_cond, &pulse_lock); - if (pa_stream_get_state(This->stream) != PA_STREAM_READY) - return AUDCLNT_E_ENDPOINT_CREATE_FAILED; - return S_OK; -} - -static void pulse_stream_state(pa_stream *s, void *user) -{ - pa_stream_state_t state = pa_stream_get_state(s); - TRACE("Stream state changed to %i\n", state); - pthread_cond_signal(&pulse_cond); -} - -HRESULT WINAPI AUDDRV_GetEndpointIDs(EDataFlow flow, WCHAR ***ids, void ***keys, - UINT *num, UINT *def_index) -{ - HRESULT hr = S_OK; - TRACE("%d %p %p %p\n", flow, ids, num, def_index); - - pthread_mutex_lock(&pulse_lock); - hr = pulse_connect(); - pthread_mutex_unlock(&pulse_lock); - if (FAILED(hr)) - return hr; - *num = 1; - *def_index = 0; - - *ids = HeapAlloc(GetProcessHeap(), 0, sizeof(WCHAR *)); - if(!*ids) - return E_OUTOFMEMORY; - - (*ids)[0] = HeapAlloc(GetProcessHeap(), 0, sizeof(defaultW)); - if(!(*ids)[0]){ - HeapFree(GetProcessHeap(), 0, *ids); - return E_OUTOFMEMORY; - } - - lstrcpyW((*ids)[0], defaultW); - - *keys = HeapAlloc(GetProcessHeap(), 0, sizeof(void *)); - (*keys)[0] = NULL; - - return S_OK; -} - -HRESULT WINAPI AUDDRV_GetAudioEndpoint(void *key, IMMDevice *dev, - EDataFlow dataflow, IAudioClient **out) -{ - HRESULT hr; - ACImpl *This; - - TRACE("%p %p %d %p\n", key, dev, dataflow, out); - - *out = NULL; - pthread_mutex_lock(&pulse_lock); - hr = pulse_connect(); - pthread_mutex_unlock(&pulse_lock); - if (FAILED(hr)) - return hr; - - This = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(ACImpl)); - if(!This) - return E_OUTOFMEMORY; - - This->IAudioClient_iface.lpVtbl = &AudioClient_Vtbl; - This->IAudioRenderClient_iface.lpVtbl = &AudioRenderClient_Vtbl; - This->IAudioCaptureClient_iface.lpVtbl = &AudioCaptureClient_Vtbl; - This->IAudioSessionControl2_iface.lpVtbl = &AudioSessionControl2_Vtbl; - This->ISimpleAudioVolume_iface.lpVtbl = &SimpleAudioVolume_Vtbl; - This->IAudioClock_iface.lpVtbl = &AudioClock_Vtbl; - This->IAudioClock2_iface.lpVtbl = &AudioClock2_Vtbl; - - This->dataflow = dataflow; - - if(dataflow != eRender && dataflow != eCapture) { - HeapFree(GetProcessHeap(), 0, This); - return E_UNEXPECTED; - } - - This->parent = dev; - IMMDevice_AddRef(This->parent); - - *out = &This->IAudioClient_iface; - IAudioClient_AddRef(&This->IAudioClient_iface); - - return S_OK; -} - -static HRESULT WINAPI AudioClient_QueryInterface(IAudioClient *iface, - REFIID riid, void **ppv) -{ - TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); - - if(!ppv) - return E_POINTER; - *ppv = NULL; - if(IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IAudioClient)) - *ppv = iface; - if(*ppv){ - IUnknown_AddRef((IUnknown*)*ppv); - return S_OK; - } - WARN("Unknown interface %s\n", debugstr_guid(riid)); - return E_NOINTERFACE; -} - -static ULONG WINAPI AudioClient_AddRef(IAudioClient *iface) -{ - ACImpl *This = impl_from_IAudioClient(iface); - ULONG ref; - ref = InterlockedIncrement(&This->ref); - TRACE("(%p) Refcount now %u\n", This, ref); - return ref; -} - -static ULONG WINAPI AudioClient_Release(IAudioClient *iface) -{ - ACImpl *This = impl_from_IAudioClient(iface); - ULONG ref; - ref = InterlockedDecrement(&This->ref); - TRACE("(%p) Refcount now %u\n", This, ref); - if(!ref){ - IAudioClient_Stop(iface); - if (This->stream) { - pthread_mutex_lock(&pulse_lock); - if (pa_stream_get_state(This->stream) == PA_STREAM_READY) - pa_stream_disconnect(This->stream); - pa_stream_unref(This->stream); - pthread_mutex_unlock(&pulse_lock); - } - IMMDevice_Release(This->parent); - HeapFree(GetProcessHeap(), 0, This); - } - return ref; -} - -static void dump_fmt(const WAVEFORMATEX *fmt) -{ - TRACE("wFormatTag: 0x%x (", fmt->wFormatTag); - switch(fmt->wFormatTag){ - case WAVE_FORMAT_PCM: - TRACE("WAVE_FORMAT_PCM"); - break; - case WAVE_FORMAT_IEEE_FLOAT: - TRACE("WAVE_FORMAT_IEEE_FLOAT"); - break; - case WAVE_FORMAT_EXTENSIBLE: - TRACE("WAVE_FORMAT_EXTENSIBLE"); - break; - default: - TRACE("Unknown"); - break; - } - TRACE(")\n"); - - TRACE("nChannels: %u\n", fmt->nChannels); - TRACE("nSamplesPerSec: %u\n", fmt->nSamplesPerSec); - TRACE("nAvgBytesPerSec: %u\n", fmt->nAvgBytesPerSec); - TRACE("nBlockAlign: %u\n", fmt->nBlockAlign); - TRACE("wBitsPerSample: %u\n", fmt->wBitsPerSample); - TRACE("cbSize: %u\n", fmt->cbSize); - - if(fmt->wFormatTag == WAVE_FORMAT_EXTENSIBLE){ - WAVEFORMATEXTENSIBLE *fmtex = (void*)fmt; - TRACE("dwChannelMask: %08x\n", fmtex->dwChannelMask); - TRACE("Samples: %04x\n", fmtex->Samples.wReserved); - TRACE("SubFormat: %s\n", wine_dbgstr_guid(&fmtex->SubFormat)); - } -} - -static WAVEFORMATEX *clone_format(const WAVEFORMATEX *fmt) -{ - WAVEFORMATEX *ret; - size_t size; - - if(fmt->wFormatTag == WAVE_FORMAT_EXTENSIBLE) - size = sizeof(WAVEFORMATEXTENSIBLE); - else - size = sizeof(WAVEFORMATEX); - - ret = HeapAlloc(GetProcessHeap(), 0, size); - if(!ret) - return NULL; - - memcpy(ret, fmt, size); - - ret->cbSize = size - sizeof(WAVEFORMATEX); - - return ret; -} - -static DWORD get_channel_mask(unsigned int channels) -{ - switch(channels){ - case 0: - return 0; - case 1: - return SPEAKER_FRONT_CENTER; - case 2: - return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT; - case 3: - return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | - SPEAKER_LOW_FREQUENCY; - case 4: - return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT | - SPEAKER_BACK_RIGHT; - case 5: - return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT | - SPEAKER_BACK_RIGHT | SPEAKER_LOW_FREQUENCY; - case 6: - return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT | - SPEAKER_BACK_RIGHT | SPEAKER_LOW_FREQUENCY | SPEAKER_FRONT_CENTER; - case 7: - return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT | - SPEAKER_BACK_RIGHT | SPEAKER_LOW_FREQUENCY | SPEAKER_FRONT_CENTER | - SPEAKER_BACK_CENTER; - case 8: - return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT | - SPEAKER_BACK_RIGHT | SPEAKER_LOW_FREQUENCY | SPEAKER_FRONT_CENTER | - SPEAKER_SIDE_LEFT | SPEAKER_SIDE_RIGHT; - } - FIXME("Unknown speaker configuration: %u\n", channels); - return 0; -} - -static HRESULT WINAPI AudioClient_Initialize(IAudioClient *iface, - AUDCLNT_SHAREMODE mode, DWORD flags, REFERENCE_TIME duration, - REFERENCE_TIME period, const WAVEFORMATEX *fmt, - const GUID *sessionguid) -{ - ACImpl *This = impl_from_IAudioClient(iface); - HRESULT hr = S_OK; - - TRACE("(%p)->(%x, %x, %s, %s, %p, %s)\n", This, mode, flags, - wine_dbgstr_longlong(duration), wine_dbgstr_longlong(period), fmt, debugstr_guid(sessionguid)); - - if(!fmt) - return E_POINTER; - - if(mode != AUDCLNT_SHAREMODE_SHARED && mode != AUDCLNT_SHAREMODE_EXCLUSIVE) - return AUDCLNT_E_NOT_INITIALIZED; - - if(flags & ~(AUDCLNT_STREAMFLAGS_CROSSPROCESS | - AUDCLNT_STREAMFLAGS_LOOPBACK | - AUDCLNT_STREAMFLAGS_EVENTCALLBACK | - AUDCLNT_STREAMFLAGS_NOPERSIST | - AUDCLNT_STREAMFLAGS_RATEADJUST | - AUDCLNT_SESSIONFLAGS_EXPIREWHENUNOWNED | - AUDCLNT_SESSIONFLAGS_DISPLAY_HIDE | - AUDCLNT_SESSIONFLAGS_DISPLAY_HIDEWHENEXPIRED)){ - TRACE("Unknown flags: %08x\n", flags); - return E_INVALIDARG; - } - - pthread_mutex_lock(&pulse_lock); - if(This->initted){ - pthread_mutex_unlock(&pulse_lock); - return AUDCLNT_E_ALREADY_INITIALIZED; - } - pa_channel_map_init(&This->map); - This->ss.rate = fmt->nSamplesPerSec; - This->ss.format = PA_SAMPLE_INVALID; - switch(fmt->wFormatTag){ - case WAVE_FORMAT_PCM: - if(fmt->wBitsPerSample == 8) - This->ss.format = PA_SAMPLE_U8; - else if(fmt->wBitsPerSample == 16) - This->ss.format = PA_SAMPLE_S16LE; - if (fmt->nChannels == 1 || fmt->nChannels == 2) - pa_channel_map_init_auto(&This->map, fmt->nChannels, PA_CHANNEL_MAP_ALSA); - break; - case WAVE_FORMAT_IEEE_FLOAT: - This->ss.format = PA_SAMPLE_FLOAT32LE; - if (fmt->nChannels == 1 || fmt->nChannels == 2) - pa_channel_map_init_auto(&This->map, fmt->nChannels, PA_CHANNEL_MAP_ALSA); - break; - case WAVE_FORMAT_EXTENSIBLE: { - WAVEFORMATEXTENSIBLE *wfe = (WAVEFORMATEXTENSIBLE*)fmt; - DWORD mask = wfe->dwChannelMask; - DWORD i = 0; - if (fmt->cbSize != (sizeof(*wfe) - sizeof(*fmt)) && fmt->cbSize != sizeof(*wfe)) - break; - if (IsEqualGUID(&wfe->SubFormat, &KSDATAFORMAT_SUBTYPE_IEEE_FLOAT)) - This->ss.format = PA_SAMPLE_FLOAT32LE; - else if (IsEqualGUID(&wfe->SubFormat, &KSDATAFORMAT_SUBTYPE_PCM)) - { - DWORD valid = wfe->Samples.wValidBitsPerSample; - if (!valid) - valid = fmt->wBitsPerSample; - if (!valid || valid > fmt->wBitsPerSample) - break; - switch (fmt->wBitsPerSample) { - case 8: - if (valid == 8) - This->ss.format = PA_SAMPLE_U8; - break; - case 16: - if (valid == 16) - This->ss.format = PA_SAMPLE_S16LE; - break; - case 24: - if (valid == 24) - This->ss.format = PA_SAMPLE_S24LE; - break; - case 32: - if (valid == 24) - This->ss.format = PA_SAMPLE_S24_32LE; - else if (valid == 32) - This->ss.format = PA_SAMPLE_S32LE; - default: - break; - } - } - This->map.channels = fmt->nChannels; - if (!mask) - mask = get_channel_mask(fmt->nChannels); - if (mask & SPEAKER_FRONT_LEFT) This->map.map[i++] = PA_CHANNEL_POSITION_FRONT_LEFT; - if (mask & SPEAKER_FRONT_RIGHT) This->map.map[i++] = PA_CHANNEL_POSITION_FRONT_RIGHT; - if (mask & SPEAKER_FRONT_CENTER) This->map.map[i++] = PA_CHANNEL_POSITION_FRONT_CENTER; - if (mask & SPEAKER_LOW_FREQUENCY) This->map.map[i++] = PA_CHANNEL_POSITION_SUBWOOFER; - if (mask & SPEAKER_BACK_LEFT) This->map.map[i++] = PA_CHANNEL_POSITION_REAR_LEFT; - if (mask & SPEAKER_BACK_RIGHT) This->map.map[i++] = PA_CHANNEL_POSITION_REAR_RIGHT; - if (mask & SPEAKER_BACK_CENTER) This->map.map[i++] = PA_CHANNEL_POSITION_REAR_CENTER; - if (mask & SPEAKER_FRONT_LEFT_OF_CENTER) This->map.map[i++] = PA_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER; - if (mask & SPEAKER_FRONT_RIGHT_OF_CENTER) This->map.map[i++] = PA_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER; - if (mask & SPEAKER_BACK_CENTER) This->map.map[i++] = PA_CHANNEL_POSITION_REAR_CENTER; - if (mask & SPEAKER_SIDE_LEFT) This->map.map[i++] = PA_CHANNEL_POSITION_SIDE_LEFT; - if (mask & SPEAKER_SIDE_RIGHT) This->map.map[i++] = PA_CHANNEL_POSITION_SIDE_RIGHT; - if (mask & SPEAKER_TOP_CENTER) This->map.map[i++] = PA_CHANNEL_POSITION_TOP_CENTER; - if (mask & SPEAKER_TOP_FRONT_LEFT) This->map.map[i++] = PA_CHANNEL_POSITION_TOP_FRONT_LEFT; - if (mask & SPEAKER_TOP_FRONT_CENTER) This->map.map[i++] = PA_CHANNEL_POSITION_TOP_FRONT_CENTER; - if (mask & SPEAKER_TOP_FRONT_RIGHT) This->map.map[i++] = PA_CHANNEL_POSITION_TOP_FRONT_RIGHT; - if (mask & SPEAKER_TOP_BACK_LEFT) This->map.map[i++] = PA_CHANNEL_POSITION_TOP_REAR_LEFT; - if (mask & SPEAKER_TOP_BACK_CENTER) This->map.map[i++] = PA_CHANNEL_POSITION_TOP_REAR_CENTER; - if (mask & SPEAKER_TOP_BACK_RIGHT) This->map.map[i++] = PA_CHANNEL_POSITION_TOP_REAR_RIGHT; - if (mask & SPEAKER_ALL) { - This->map.map[i++] = PA_CHANNEL_POSITION_MONO; - FIXME("Is the 'all' channel mapped correctly?\n"); - } - if (i != fmt->nChannels || mask & SPEAKER_RESERVED) { - This->map.channels = 0; - FIXME("Invalid channel mask: %i/%i and %x\n", i, fmt->nChannels, mask); - break; - } - /* Special case for mono since pulse appears to map it differently */ - if (mask == SPEAKER_FRONT_CENTER) - This->map.map[0] = PA_CHANNEL_POSITION_MONO; - break; - } - default: FIXME("Unhandled tag %x\n", fmt->wFormatTag); - } - This->ss.channels = This->map.channels; - hr = AUDCLNT_E_UNSUPPORTED_FORMAT; - if (!pa_channel_map_valid(&This->map) || This->ss.format == PA_SAMPLE_INVALID) { - WARN("Invalid format! Channel spec valid: %i, format: %i\n", pa_channel_map_valid(&This->map), This->ss.format); - dump_fmt(fmt); - goto exit; - } - if (duration < 5000000) - This->bufsize_frames = fmt->nSamplesPerSec/2; - else if (duration < 20000000) - This->bufsize_frames = ceil((duration / 10000000.) * fmt->nSamplesPerSec); - else - This->bufsize_frames = 2 * fmt->nSamplesPerSec; - - hr = pulse_stream_connect(This, period); - if (SUCCEEDED(hr)) { - /* Update frames according to new size */ - This->bufsize_frames = pa_stream_get_buffer_attr(This->stream)->tlength / pa_frame_size(&This->ss); - //hr = AudioSession_CreateSession(This, sessionguid ? sessionguid : &GUID_NULL); - if (SUCCEEDED(hr)) - This->initted = TRUE; - } - This->share = mode; - This->flags = flags; - -exit: - if(FAILED(hr)) { - if (This->stream) { - pa_stream_disconnect(This->stream); - pa_stream_unref(This->stream); - This->stream = NULL; - } - } - pthread_mutex_unlock(&pulse_lock); - return hr; -} - -static HRESULT WINAPI AudioClient_GetBufferSize(IAudioClient *iface, - UINT32 *out) -{ - ACImpl *This = impl_from_IAudioClient(iface); - HRESULT hr; - - TRACE("(%p)->(%p)\n", This, out); - - if(!out) - return E_POINTER; - - pthread_mutex_lock(&pulse_lock); - hr = pulse_stream_valid(This); - if (SUCCEEDED(hr)) - *out = This->bufsize_frames; - pthread_mutex_unlock(&pulse_lock); - - return hr; -} - -static HRESULT WINAPI AudioClient_GetStreamLatency(IAudioClient *iface, - REFERENCE_TIME *latency) -{ - ACImpl *This = impl_from_IAudioClient(iface); - const pa_buffer_attr *attr; - REFERENCE_TIME lat; - HRESULT hr; - - TRACE("(%p)->(%p)\n", This, latency); - - if(!latency) - return E_POINTER; - - pthread_mutex_lock(&pulse_lock); - hr = pulse_stream_valid(This); - if (FAILED(hr)) { - pthread_mutex_unlock(&pulse_lock); - return hr; - } - attr = pa_stream_get_buffer_attr(This->stream); - if (This->dataflow == eCapture) - lat = attr->fragsize / pa_frame_size(&This->ss); - else - lat = attr->minreq / pa_frame_size(&This->ss); - *latency = 10000000; - *latency *= lat; - *latency /= This->ss.rate; - pthread_mutex_unlock(&pulse_lock); - TRACE("Latency: %u ms\n", (DWORD)(*latency / 10000)); - return S_OK; -} - -static HRESULT WINAPI AudioClient_GetCurrentPadding(IAudioClient *iface, - UINT32 *out) -{ - ACImpl *This = impl_from_IAudioClient(iface); - HRESULT hr; - - TRACE("(%p)->(%p)\n", This, out); - - if(!out) - return E_POINTER; - - pthread_mutex_lock(&pulse_lock); - hr = pulse_stream_valid(This); - if (FAILED(hr)) { - pthread_mutex_unlock(&pulse_lock); - return hr; - } - - if(This->dataflow == eRender){ - UINT32 avail = pa_stream_writable_size(This->stream) / pa_frame_size(&This->ss); - if (avail + This->extra_buffered >= This->bufsize_frames) - *out = 0; - else - *out = This->bufsize_frames - avail - This->extra_buffered; - }else if(This->dataflow == eCapture){ - if (!This->peeked) { - DWORD frag, readable = pa_stream_readable_size(This->stream); - pa_stream_peek(This->stream, (const void**)&This->locked_ptr, &frag); - if (frag != readable) { - DWORD done = frag; - This->tmp_buffer = HeapAlloc(GetProcessHeap(), 0, readable); - memcpy(This->tmp_buffer, This->locked_ptr, frag); - pa_stream_drop(This->stream); - while (done < readable) { - pa_stream_peek(This->stream, (const void **)&This->locked_ptr, &frag); - memcpy(This->tmp_buffer + done, This->locked_ptr, frag); - pa_stream_drop(This->stream); - done += frag; - } - if (done > readable) - ERR("Read %u instead of %u\n", done, This->peeked); - This->locked_ptr = NULL; - } - This->peeked = readable; - } - *out = This->peeked / pa_frame_size(&This->ss); - }else{ - pthread_mutex_unlock(&pulse_lock); - return E_UNEXPECTED; - } - pthread_mutex_unlock(&pulse_lock); - - TRACE("Pad: %u\n", *out); - - return S_OK; -} - -static HRESULT WINAPI AudioClient_IsFormatSupported(IAudioClient *iface, - AUDCLNT_SHAREMODE mode, const WAVEFORMATEX *fmt, - WAVEFORMATEX **out) -{ - ACImpl *This = impl_from_IAudioClient(iface); - HRESULT hr = S_OK; - WAVEFORMATEX *closest = NULL; - WAVEFORMATEXTENSIBLE *wfe; - - TRACE("(%p)->(%x, %p, %p)\n", This, mode, fmt, out); - - if(!fmt || (mode == AUDCLNT_SHAREMODE_SHARED && !out)) - return E_POINTER; - - if(mode != AUDCLNT_SHAREMODE_SHARED && mode != AUDCLNT_SHAREMODE_EXCLUSIVE) - return E_INVALIDARG; - - if(fmt->wFormatTag == WAVE_FORMAT_EXTENSIBLE && - fmt->cbSize < sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX)) - return E_INVALIDARG; - - dump_fmt(fmt); - - closest = clone_format(fmt); - if(!closest){ - hr = E_OUTOFMEMORY; - goto exit; - } - wfe = (WAVEFORMATEXTENSIBLE*)closest; - if (closest->wFormatTag == WAVE_FORMAT_EXTENSIBLE && !wfe->dwChannelMask) { - wfe->dwChannelMask = get_channel_mask(closest->nChannels); - hr = S_FALSE; - WARN("Fixed up channel mask %p -> %p\n", fmt, closest); - } - -exit: - if(hr == S_OK || !out){ - HeapFree(GetProcessHeap(), 0, closest); - if(out) - *out = NULL; - }else if(closest){ - closest->nBlockAlign = - closest->nChannels * closest->wBitsPerSample / 8; - closest->nAvgBytesPerSec = - closest->nBlockAlign * closest->nSamplesPerSec; - *out = closest; - } - - TRACE("returning: %08x %p\n", hr, out ? *out : NULL); - return hr; -} - -static void pulse_probe_settings(ACImpl *This) { - pa_stream *stream; - pa_channel_map map; - pa_sample_spec ss; - pa_buffer_attr attr; - int ret; - unsigned int length = 0; - - if (This->mix_ss.rate) - return; - - pa_channel_map_init_auto(&map, 2, PA_CHANNEL_MAP_ALSA); - ss.rate = 48000; - ss.format = PA_SAMPLE_FLOAT32LE; - ss.channels = map.channels; - - attr.maxlength = -1; - attr.tlength = -1; - attr.minreq = attr.fragsize = pa_frame_size(&ss); - attr.prebuf = 0; - - stream = pa_stream_new(pulse_ctx, "format test stream", &ss, &map); - if (stream) - pa_stream_set_state_callback(stream, pulse_stream_state, NULL); - if (!stream) - ret = -1; - else if (This->dataflow == eRender) - ret = pa_stream_connect_playback(stream, NULL, &attr, - PA_STREAM_START_CORKED|PA_STREAM_FIX_RATE|PA_STREAM_FIX_FORMAT|PA_STREAM_FIX_CHANNELS|PA_STREAM_EARLY_REQUESTS, NULL, NULL); - else - ret = pa_stream_connect_record(stream, NULL, &attr, - PA_STREAM_START_CORKED|PA_STREAM_FIX_RATE|PA_STREAM_FIX_FORMAT|PA_STREAM_FIX_CHANNELS|PA_STREAM_EARLY_REQUESTS); - if (ret >= 0) { - while (pa_stream_get_state(stream) == PA_STREAM_CREATING) - pthread_cond_wait(&pulse_cond, &pulse_lock); - if (pa_stream_get_state(stream) == PA_STREAM_READY) { - ss = *pa_stream_get_sample_spec(stream); - map = *pa_stream_get_channel_map(stream); - if (This->dataflow == eRender) - length = pa_stream_get_buffer_attr(stream)->minreq; - else - length = pa_stream_get_buffer_attr(stream)->fragsize; - pa_stream_disconnect(stream); - while (pa_stream_get_state(stream) == PA_STREAM_READY) - pthread_cond_wait(&pulse_cond, &pulse_lock); - } - } - if (stream) - pa_stream_unref(stream); - This->mix_ss = ss; - This->mix_map = map; - if (length) - This->def_period = This->min_period = pa_bytes_to_usec(10 * length, &This->mix_ss); - else - This->min_period = MinimumPeriod; - if (This->def_period <= MinimumPeriod) - This->def_period = MinimumPeriod; -} - -static HRESULT WINAPI AudioClient_GetMixFormat(IAudioClient *iface, - WAVEFORMATEX **pwfx) -{ - ACImpl *This = impl_from_IAudioClient(iface); - WAVEFORMATEXTENSIBLE *fmt; - HRESULT hr = S_OK; - int i; - - TRACE("(%p)->(%p)\n", This, pwfx); - - if(!pwfx) - return E_POINTER; - - *pwfx = CoTaskMemAlloc(sizeof(WAVEFORMATEXTENSIBLE)); - if(!*pwfx) - return E_OUTOFMEMORY; - - fmt = (WAVEFORMATEXTENSIBLE*)*pwfx; - - pthread_mutex_lock(&pulse_lock); - pulse_probe_settings(This); - pthread_mutex_unlock(&pulse_lock); - - (*pwfx)->wFormatTag = WAVE_FORMAT_EXTENSIBLE; - (*pwfx)->cbSize = sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX); - (*pwfx)->nChannels = This->mix_ss.channels; - (*pwfx)->wBitsPerSample = 8 * pa_sample_size_of_format(This->mix_ss.format); - (*pwfx)->nSamplesPerSec = This->mix_ss.rate; - (*pwfx)->nBlockAlign = (*pwfx)->nChannels * (*pwfx)->wBitsPerSample / 8; - (*pwfx)->nAvgBytesPerSec = (*pwfx)->nSamplesPerSec * (*pwfx)->nBlockAlign; - if (This->mix_ss.format != PA_SAMPLE_S24_32LE) - fmt->Samples.wValidBitsPerSample = (*pwfx)->wBitsPerSample; - else - fmt->Samples.wValidBitsPerSample = 24; - if (This->mix_ss.format == PA_SAMPLE_FLOAT32LE) - fmt->SubFormat = KSDATAFORMAT_SUBTYPE_IEEE_FLOAT; - else - fmt->SubFormat = KSDATAFORMAT_SUBTYPE_PCM; - - fmt->dwChannelMask = 0; - for (i = 0; i < This->mix_map.channels; ++i) - switch (This->mix_map.map[i]) { - default: FIXME("Unhandled channel %s\n", pa_channel_position_to_string(This->mix_map.map[i])); break; - case PA_CHANNEL_POSITION_FRONT_LEFT: fmt->dwChannelMask |= SPEAKER_FRONT_LEFT; break; - case PA_CHANNEL_POSITION_FRONT_RIGHT: fmt->dwChannelMask |= SPEAKER_FRONT_RIGHT; break; - case PA_CHANNEL_POSITION_MONO: - case PA_CHANNEL_POSITION_FRONT_CENTER: fmt->dwChannelMask |= SPEAKER_FRONT_CENTER; break; - case PA_CHANNEL_POSITION_REAR_LEFT: fmt->dwChannelMask |= SPEAKER_BACK_LEFT; break; - case PA_CHANNEL_POSITION_REAR_RIGHT: fmt->dwChannelMask |= SPEAKER_BACK_RIGHT; break; - case PA_CHANNEL_POSITION_SUBWOOFER: fmt->dwChannelMask |= SPEAKER_LOW_FREQUENCY; break; - case PA_CHANNEL_POSITION_SIDE_LEFT: fmt->dwChannelMask |= SPEAKER_SIDE_LEFT; break; - case PA_CHANNEL_POSITION_SIDE_RIGHT: fmt->dwChannelMask |= SPEAKER_SIDE_RIGHT; break; - } - dump_fmt((WAVEFORMATEX*)fmt); - if(FAILED(hr)) { - CoTaskMemFree(*pwfx); - *pwfx = NULL; - } - - return hr; -} - -static HRESULT WINAPI AudioClient_GetDevicePeriod(IAudioClient *iface, - REFERENCE_TIME *defperiod, REFERENCE_TIME *minperiod) -{ - ACImpl *This = impl_from_IAudioClient(iface); - - TRACE("(%p)->(%p, %p)\n", This, defperiod, minperiod); - - if(!defperiod && !minperiod) - return E_POINTER; - - pthread_mutex_lock(&pulse_lock); - pulse_probe_settings(This); - if(defperiod) - *defperiod = This->def_period; - if(minperiod) - *minperiod = This->min_period; - pthread_mutex_unlock(&pulse_lock); - - return S_OK; -} - -static HRESULT WINAPI AudioClient_Start(IAudioClient *iface) -{ - ACImpl *This = impl_from_IAudioClient(iface); - HRESULT hr = S_OK; - int success; - pa_operation *o; - - TRACE("(%p)\n", This); - - pthread_mutex_lock(&pulse_lock); - hr = pulse_stream_valid(This); - if (FAILED(hr)) { - pthread_mutex_unlock(&pulse_lock); - return hr; - } - - if((This->flags & AUDCLNT_STREAMFLAGS_EVENTCALLBACK) && !This->event){ - pthread_mutex_unlock(&pulse_lock); - return AUDCLNT_E_EVENTHANDLE_NOT_SET; - } - - if(This->started){ - pthread_mutex_unlock(&pulse_lock); - return AUDCLNT_E_NOT_STOPPED; - } - - o = pa_stream_cork(This->stream, 0, pulse_op_cb, &success); - if (o) { - while(pa_operation_get_state(o) == PA_OPERATION_RUNNING) - pthread_cond_wait(&pulse_cond, &pulse_lock); - pa_operation_unref(o); - } else - success = 0; - if (!success) - hr = E_FAIL; - if (SUCCEEDED(hr)) - This->started = TRUE; - if (This->event) - SetEvent(This->event); - pthread_mutex_unlock(&pulse_lock); - return hr; -} - -static HRESULT WINAPI AudioClient_Stop(IAudioClient *iface) -{ - ACImpl *This = impl_from_IAudioClient(iface); - HRESULT hr = S_OK; - pa_operation *o; - int success; - - TRACE("(%p)\n", This); - - pthread_mutex_lock(&pulse_lock); - hr = pulse_stream_valid(This); - if (FAILED(hr)) { - pthread_mutex_unlock(&pulse_lock); - return hr; - } - - if(!This->started){ - pthread_mutex_unlock(&pulse_lock); - return S_FALSE; - } - - o = pa_stream_cork(This->stream, 1, pulse_op_cb, &success); - if (o) { - while(pa_operation_get_state(o) == PA_OPERATION_RUNNING) - pthread_cond_wait(&pulse_cond, &pulse_lock); - pa_operation_unref(o); - } else - success = 0; - if (!success) - hr = E_FAIL; - if (SUCCEEDED(hr)) - This->started = FALSE; - pthread_mutex_unlock(&pulse_lock); - return hr; -} - -static HRESULT WINAPI AudioClient_Reset(IAudioClient *iface) -{ - ACImpl *This = impl_from_IAudioClient(iface); - pa_usec_t time; - pa_operation *o; - int success; - HRESULT hr = S_OK; - - TRACE("(%p)\n", This); - - pthread_mutex_lock(&pulse_lock); - hr = pulse_stream_valid(This); - if (FAILED(hr)) { - pthread_mutex_unlock(&pulse_lock); - return hr; - } - - if(This->started){ - pthread_mutex_unlock(&pulse_lock); - return AUDCLNT_E_NOT_STOPPED; - } - - if (pa_stream_get_time(This->stream, &time) >= 0) - This->play_ofs += time * This->ss.rate / 1000000; - - o = pa_stream_flush(This->stream, pulse_op_cb, &success); - if (o) { - while(pa_operation_get_state(o) == PA_OPERATION_RUNNING) - pthread_cond_wait(&pulse_cond, &pulse_lock); - pa_operation_unref(o); - } else - success = 0; - if (!success) - hr = S_FALSE; - pthread_mutex_unlock(&pulse_lock); - - return hr; -} - -static HRESULT WINAPI AudioClient_SetEventHandle(IAudioClient *iface, - HANDLE event) -{ - ACImpl *This = impl_from_IAudioClient(iface); - HRESULT hr; - - TRACE("(%p)->(%p)\n", This, event); - - if(!event) - return E_INVALIDARG; - - pthread_mutex_lock(&pulse_lock); - hr = pulse_stream_valid(This); - if (FAILED(hr)) { - pthread_mutex_unlock(&pulse_lock); - return hr; - } - - if(!(This->flags & AUDCLNT_STREAMFLAGS_EVENTCALLBACK)){ - pthread_mutex_unlock(&pulse_lock); - return AUDCLNT_E_EVENTHANDLE_NOT_EXPECTED; - } - This->event = event; - pthread_mutex_unlock(&pulse_lock); - return S_OK; -} - -static HRESULT WINAPI AudioClient_GetService(IAudioClient *iface, REFIID riid, - void **ppv) -{ - ACImpl *This = impl_from_IAudioClient(iface); - HRESULT hr; - - TRACE("(%p)->(%s, %p)\n", This, debugstr_guid(riid), ppv); - - if(!ppv) - return E_POINTER; - *ppv = NULL; - - pthread_mutex_lock(&pulse_lock); - hr = pulse_stream_valid(This); - pthread_mutex_unlock(&pulse_lock); - if (FAILED(hr)) - return hr; - - if(IsEqualIID(riid, &IID_IAudioRenderClient)){ - if(This->dataflow != eRender) - return AUDCLNT_E_WRONG_ENDPOINT_TYPE; - *ppv = &This->IAudioRenderClient_iface; - }else if(IsEqualIID(riid, &IID_IAudioCaptureClient)){ - if(This->dataflow != eCapture) - return AUDCLNT_E_WRONG_ENDPOINT_TYPE; - *ppv = &This->IAudioCaptureClient_iface; - }else if(IsEqualIID(riid, &IID_IAudioSessionControl)){ - *ppv = &This->IAudioSessionControl2_iface; - }else if(IsEqualIID(riid, &IID_ISimpleAudioVolume)){ - *ppv = &This->ISimpleAudioVolume_iface; - }else if(IsEqualIID(riid, &IID_IAudioClock)){ - *ppv = &This->IAudioClock_iface; - } - - if(*ppv){ - IUnknown_AddRef((IUnknown*)*ppv); - return S_OK; - } - - FIXME("stub %s\n", debugstr_guid(riid)); - return E_NOINTERFACE; -} - -static const IAudioClientVtbl AudioClient_Vtbl = -{ - AudioClient_QueryInterface, - AudioClient_AddRef, - AudioClient_Release, - AudioClient_Initialize, - AudioClient_GetBufferSize, - AudioClient_GetStreamLatency, - AudioClient_GetCurrentPadding, - AudioClient_IsFormatSupported, - AudioClient_GetMixFormat, - AudioClient_GetDevicePeriod, - AudioClient_Start, - AudioClient_Stop, - AudioClient_Reset, - AudioClient_SetEventHandle, - AudioClient_GetService -}; - -static HRESULT WINAPI AudioRenderClient_QueryInterface( - IAudioRenderClient *iface, REFIID riid, void **ppv) -{ - TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); - - if(!ppv) - return E_POINTER; - *ppv = NULL; - - if(IsEqualIID(riid, &IID_IUnknown) || - IsEqualIID(riid, &IID_IAudioRenderClient)) - *ppv = iface; - if(*ppv){ - IUnknown_AddRef((IUnknown*)*ppv); - return S_OK; - } - - WARN("Unknown interface %s\n", debugstr_guid(riid)); - return E_NOINTERFACE; -} - -static ULONG WINAPI AudioRenderClient_AddRef(IAudioRenderClient *iface) -{ - ACImpl *This = impl_from_IAudioRenderClient(iface); - return AudioClient_AddRef(&This->IAudioClient_iface); -} - -static ULONG WINAPI AudioRenderClient_Release(IAudioRenderClient *iface) -{ - ACImpl *This = impl_from_IAudioRenderClient(iface); - return AudioClient_Release(&This->IAudioClient_iface); -} - -static HRESULT WINAPI AudioRenderClient_GetBuffer(IAudioRenderClient *iface, - UINT32 frames, BYTE **data) -{ - ACImpl *This = impl_from_IAudioRenderClient(iface); - UINT32 requested, avail; - HRESULT hr = S_OK; - - TRACE("(%p)->(%u, %p)\n", This, frames, data); - - if(!data) - return E_POINTER; - - pthread_mutex_lock(&pulse_lock); - hr = pulse_stream_valid(This); - if(FAILED(hr) || This->locked){ - pthread_mutex_unlock(&pulse_lock); - return FAILED(hr) ? hr : AUDCLNT_E_OUT_OF_ORDER; - } - avail = pa_stream_writable_size(This->stream) / pa_frame_size(&This->ss); - if (avail < frames){ - pthread_mutex_unlock(&pulse_lock); - WARN("Wanted to write %u, but only %u available\n", frames, avail); - return AUDCLNT_E_BUFFER_TOO_LARGE; - } - - requested = frames * pa_frame_size(&This->ss); - pa_stream_begin_write(This->stream, (void**)data, &requested); - This->locked = frames; - if (requested / pa_frame_size(&This->ss) < frames) { - pa_stream_cancel_write(This->stream); - FIXME("Unable to allocate all (%u/%u) preparing our own buffer\n", requested / pa_frame_size(&This->ss), frames); - *data = This->locked_ptr = This->tmp_buffer = HeapAlloc(GetProcessHeap(), 0, frames * pa_frame_size(&This->ss)); - } else { - This->locked_ptr = *data; - } - pthread_mutex_unlock(&pulse_lock); - return hr; -} - -static void free_heap(void *p) -{ - HeapFree(GetProcessHeap(), 0, p); -} - -static HRESULT WINAPI AudioRenderClient_ReleaseBuffer( - IAudioRenderClient *iface, UINT32 written_frames, DWORD flags) -{ - ACImpl *This = impl_from_IAudioRenderClient(iface); - int written; - - TRACE("(%p)->(%u, %x)\n", This, written_frames, flags); - - pthread_mutex_lock(&pulse_lock); - if(!This->locked || !written_frames){ - if (This->tmp_buffer) { - HeapFree(GetProcessHeap(), 0, This->tmp_buffer); - This->tmp_buffer = NULL; - } else if (This->locked) - pa_stream_cancel_write(This->stream); - This->locked = 0; - pthread_mutex_unlock(&pulse_lock); - return written_frames ? AUDCLNT_E_OUT_OF_ORDER : S_OK; - } - - if(flags & AUDCLNT_BUFFERFLAGS_SILENT){ - if(This->ss.format == PA_SAMPLE_U8) - memset(This->locked_ptr, 128, written_frames * pa_frame_size(&This->ss)); - else - memset(This->locked_ptr, 0, written_frames * pa_frame_size(&This->ss)); - } - - This->locked = 0; - if (!This->tmp_buffer) - written = pa_stream_write(This->stream, This->locked_ptr, written_frames * pa_frame_size(&This->ss), NULL, 0, PA_SEEK_RELATIVE); - else - written = pa_stream_write(This->stream, This->locked_ptr, written_frames * pa_frame_size(&This->ss), free_heap, 0, PA_SEEK_RELATIVE); - This->tmp_buffer = NULL; - TRACE("Released %u, wrote %i\n", written_frames * pa_frame_size(&This->ss), written); - pthread_mutex_unlock(&pulse_lock); - - return S_OK; -} - -static const IAudioRenderClientVtbl AudioRenderClient_Vtbl = { - AudioRenderClient_QueryInterface, - AudioRenderClient_AddRef, - AudioRenderClient_Release, - AudioRenderClient_GetBuffer, - AudioRenderClient_ReleaseBuffer -}; - -static HRESULT WINAPI AudioCaptureClient_QueryInterface( - IAudioCaptureClient *iface, REFIID riid, void **ppv) -{ - TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); - - if(!ppv) - return E_POINTER; - *ppv = NULL; - - if(IsEqualIID(riid, &IID_IUnknown) || - IsEqualIID(riid, &IID_IAudioCaptureClient)) - *ppv = iface; - if(*ppv){ - IUnknown_AddRef((IUnknown*)*ppv); - return S_OK; - } - - WARN("Unknown interface %s\n", debugstr_guid(riid)); - return E_NOINTERFACE; -} - -static ULONG WINAPI AudioCaptureClient_AddRef(IAudioCaptureClient *iface) -{ - ACImpl *This = impl_from_IAudioCaptureClient(iface); - return IAudioClient_AddRef(&This->IAudioClient_iface); -} - -static ULONG WINAPI AudioCaptureClient_Release(IAudioCaptureClient *iface) -{ - ACImpl *This = impl_from_IAudioCaptureClient(iface); - return IAudioClient_Release(&This->IAudioClient_iface); -} - -static HRESULT WINAPI AudioCaptureClient_GetBuffer(IAudioCaptureClient *iface, - BYTE **data, UINT32 *frames, DWORD *flags, UINT64 *devpos, - UINT64 *qpcpos) -{ - ACImpl *This = impl_from_IAudioCaptureClient(iface); - HRESULT hr; - - TRACE("(%p)->(%p, %p, %p, %p, %p)\n", This, data, frames, flags, - devpos, qpcpos); - - if(!data || !frames || !flags) - return E_POINTER; - - pthread_mutex_lock(&pulse_lock); - hr = pulse_stream_valid(This); - if(FAILED(hr) || This->locked){ - pthread_mutex_unlock(&pulse_lock); - return FAILED(hr) ? hr : AUDCLNT_E_OUT_OF_ORDER; - } - *data = NULL; - *flags = 0; - *frames = This->peeked / pa_frame_size(&This->ss); - if (*frames) - *data = This->locked_ptr ? This->locked_ptr : This->tmp_buffer; - This->locked = *frames; - pthread_mutex_unlock(&pulse_lock); - if(devpos || qpcpos) - IAudioClock_GetPosition(&This->IAudioClock_iface, devpos, qpcpos); - - return *frames ? S_OK : AUDCLNT_S_BUFFER_EMPTY; -} - -static HRESULT WINAPI AudioCaptureClient_ReleaseBuffer( - IAudioCaptureClient *iface, UINT32 done) -{ - ACImpl *This = impl_from_IAudioCaptureClient(iface); - - TRACE("(%p)->(%u)\n", This, done); - - pthread_mutex_lock(&pulse_lock); - if (done) { - if (This->locked_ptr) { - pa_stream_drop(This->stream); - This->locked_ptr = NULL; - } else { - HeapFree(GetProcessHeap(), 0, This->tmp_buffer); - This->tmp_buffer = NULL; - } - This->peeked = 0; - } - This->locked = 0; - pthread_mutex_unlock(&pulse_lock); - return S_OK; -} - -static HRESULT WINAPI AudioCaptureClient_GetNextPacketSize( - IAudioCaptureClient *iface, UINT32 *frames) -{ - ACImpl *This = impl_from_IAudioCaptureClient(iface); - - TRACE("(%p)->(%p)\n", This, frames); - return AudioClient_GetCurrentPadding(&This->IAudioClient_iface, frames); -} - -static const IAudioCaptureClientVtbl AudioCaptureClient_Vtbl = -{ - AudioCaptureClient_QueryInterface, - AudioCaptureClient_AddRef, - AudioCaptureClient_Release, - AudioCaptureClient_GetBuffer, - AudioCaptureClient_ReleaseBuffer, - AudioCaptureClient_GetNextPacketSize -}; - -static HRESULT WINAPI SimpleAudioVolume_QueryInterface( - ISimpleAudioVolume *iface, REFIID riid, void **ppv) -{ - TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); - - if(!ppv) - return E_POINTER; - *ppv = NULL; - - if(IsEqualIID(riid, &IID_IUnknown) || - IsEqualIID(riid, &IID_ISimpleAudioVolume)) - *ppv = iface; - if(*ppv){ - IUnknown_AddRef((IUnknown*)*ppv); - return S_OK; - } - - WARN("Unknown interface %s\n", debugstr_guid(riid)); - return E_NOINTERFACE; -} - -static ULONG WINAPI SimpleAudioVolume_AddRef(ISimpleAudioVolume *iface) -{ - ACImpl *This = impl_from_ISimpleAudioVolume(iface); - return IAudioClient_AddRef(&This->IAudioClient_iface); -} - -static ULONG WINAPI SimpleAudioVolume_Release(ISimpleAudioVolume *iface) -{ - ACImpl *This = impl_from_ISimpleAudioVolume(iface); - return IAudioClient_Release(&This->IAudioClient_iface); -} - -static HRESULT WINAPI SimpleAudioVolume_SetMasterVolume( - ISimpleAudioVolume *iface, float level, const GUID *context) -{ - ACImpl *This = impl_from_ISimpleAudioVolume(iface); - - FIXME("(%p)->(%f, %p) - stub\n", This, level, context); - - return E_NOTIMPL; -} - -static HRESULT WINAPI SimpleAudioVolume_GetMasterVolume( - ISimpleAudioVolume *iface, float *level) -{ - ACImpl *This = impl_from_ISimpleAudioVolume(iface); - - FIXME("(%p)->(%p) - stub\n", This, level); - - return E_NOTIMPL; -} - -static HRESULT WINAPI SimpleAudioVolume_SetMute(ISimpleAudioVolume *iface, - BOOL mute, const GUID *context) -{ - ACImpl *This = impl_from_ISimpleAudioVolume(iface); - - FIXME("(%p)->(%u, %p) - stub\n", This, mute, context); - - return E_NOTIMPL; -} - -static HRESULT WINAPI SimpleAudioVolume_GetMute(ISimpleAudioVolume *iface, - BOOL *mute) -{ - ACImpl *This = impl_from_ISimpleAudioVolume(iface); - - FIXME("(%p)->(%p) - stub\n", This, mute); - - return E_NOTIMPL; -} - -static const ISimpleAudioVolumeVtbl SimpleAudioVolume_Vtbl = -{ - SimpleAudioVolume_QueryInterface, - SimpleAudioVolume_AddRef, - SimpleAudioVolume_Release, - SimpleAudioVolume_SetMasterVolume, - SimpleAudioVolume_GetMasterVolume, - SimpleAudioVolume_SetMute, - SimpleAudioVolume_GetMute -}; - -static HRESULT WINAPI AudioClock_QueryInterface(IAudioClock *iface, - REFIID riid, void **ppv) -{ - ACImpl *This = impl_from_IAudioClock(iface); - - TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); - - if(!ppv) - return E_POINTER; - *ppv = NULL; - - if(IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IAudioClock)) - *ppv = iface; - else if(IsEqualIID(riid, &IID_IAudioClock2)) - *ppv = &This->IAudioClock2_iface; - if(*ppv){ - IUnknown_AddRef((IUnknown*)*ppv); - return S_OK; - } - - WARN("Unknown interface %s\n", debugstr_guid(riid)); - return E_NOINTERFACE; -} - -static ULONG WINAPI AudioClock_AddRef(IAudioClock *iface) -{ - ACImpl *This = impl_from_IAudioClock(iface); - return IAudioClient_AddRef(&This->IAudioClient_iface); -} - -static ULONG WINAPI AudioClock_Release(IAudioClock *iface) -{ - ACImpl *This = impl_from_IAudioClock(iface); - return IAudioClient_Release(&This->IAudioClient_iface); -} - -static HRESULT WINAPI AudioClock_GetFrequency(IAudioClock *iface, UINT64 *freq) -{ - ACImpl *This = impl_from_IAudioClock(iface); - - TRACE("(%p)->(%p)\n", This, freq); - - *freq = This->ss.rate; - return S_OK; -} - -static HRESULT WINAPI AudioClock_GetPosition(IAudioClock *iface, UINT64 *pos, - UINT64 *qpctime) -{ - ACImpl *This = impl_from_IAudioClock(iface); - pa_usec_t time; - - TRACE("(%p)->(%p, %p)\n", This, pos, qpctime); - - if(!pos) - return E_POINTER; - - pthread_mutex_lock(&pulse_lock); - if (pa_stream_get_time(This->stream, &time) >= 0) - *pos = time * This->ss.rate / 1000000 - This->play_ofs; - else - *pos = This->play_ofs; - TRACE("Position: %u\n", (unsigned)*pos); - pthread_mutex_unlock(&pulse_lock); - - if(qpctime){ - LARGE_INTEGER stamp, freq; - QueryPerformanceCounter(&stamp); - QueryPerformanceFrequency(&freq); - *qpctime = (stamp.QuadPart * (INT64)10000000) / freq.QuadPart; - } - - return S_OK; -} - -static HRESULT WINAPI AudioClock_GetCharacteristics(IAudioClock *iface, - DWORD *chars) -{ - ACImpl *This = impl_from_IAudioClock(iface); - - TRACE("(%p)->(%p)\n", This, chars); - - if(!chars) - return E_POINTER; - - *chars = AUDIOCLOCK_CHARACTERISTIC_FIXED_FREQ; - - return S_OK; -} - -static const IAudioClockVtbl AudioClock_Vtbl = -{ - AudioClock_QueryInterface, - AudioClock_AddRef, - AudioClock_Release, - AudioClock_GetFrequency, - AudioClock_GetPosition, - AudioClock_GetCharacteristics -}; - -static HRESULT WINAPI AudioClock2_QueryInterface(IAudioClock2 *iface, - REFIID riid, void **ppv) -{ - ACImpl *This = impl_from_IAudioClock2(iface); - return IAudioClock_QueryInterface(&This->IAudioClock_iface, riid, ppv); -} - -static ULONG WINAPI AudioClock2_AddRef(IAudioClock2 *iface) -{ - ACImpl *This = impl_from_IAudioClock2(iface); - return IAudioClient_AddRef(&This->IAudioClient_iface); -} - -static ULONG WINAPI AudioClock2_Release(IAudioClock2 *iface) -{ - ACImpl *This = impl_from_IAudioClock2(iface); - return IAudioClient_Release(&This->IAudioClient_iface); -} - -static HRESULT WINAPI AudioClock2_GetDevicePosition(IAudioClock2 *iface, - UINT64 *pos, UINT64 *qpctime) -{ - ACImpl *This = impl_from_IAudioClock2(iface); - return AudioClock_GetPosition(&This->IAudioClock_iface, pos, qpctime); -} - -static const IAudioClock2Vtbl AudioClock2_Vtbl = -{ - AudioClock2_QueryInterface, - AudioClock2_AddRef, - AudioClock2_Release, - AudioClock2_GetDevicePosition -}; - -static HRESULT WINAPI AudioSessionControl_QueryInterface( - IAudioSessionControl2 *iface, REFIID riid, void **ppv) -{ - TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); - - if(!ppv) - return E_POINTER; - *ppv = NULL; - - if(IsEqualIID(riid, &IID_IUnknown) || - IsEqualIID(riid, &IID_IAudioSessionControl) || - IsEqualIID(riid, &IID_IAudioSessionControl2)) - *ppv = iface; - if(*ppv){ - IUnknown_AddRef((IUnknown*)*ppv); - return S_OK; - } - - WARN("Unknown interface %s\n", debugstr_guid(riid)); - return E_NOINTERFACE; -} - -static ULONG WINAPI AudioSessionControl_AddRef(IAudioSessionControl2 *iface) -{ - ACImpl *This = impl_from_IAudioSessionControl2(iface); - return IAudioClient_AddRef(&This->IAudioClient_iface); -} - -static ULONG WINAPI AudioSessionControl_Release(IAudioSessionControl2 *iface) -{ - ACImpl *This = impl_from_IAudioSessionControl2(iface); - return IAudioClient_Release(&This->IAudioClient_iface); -} - -static HRESULT WINAPI AudioSessionControl_GetState(IAudioSessionControl2 *iface, - AudioSessionState *state) -{ - ACImpl *This = impl_from_IAudioSessionControl2(iface); - - FIXME("(%p)->(%p) - stub\n", This, state); - - if(!state) - return E_POINTER; - - return E_NOTIMPL; -} - -static HRESULT WINAPI AudioSessionControl_GetDisplayName( - IAudioSessionControl2 *iface, WCHAR **name) -{ - ACImpl *This = impl_from_IAudioSessionControl2(iface); - - FIXME("(%p)->(%p) - stub\n", This, name); - - return E_NOTIMPL; -} - -static HRESULT WINAPI AudioSessionControl_SetDisplayName( - IAudioSessionControl2 *iface, const WCHAR *name, const GUID *session) -{ - ACImpl *This = impl_from_IAudioSessionControl2(iface); - - FIXME("(%p)->(%p, %s) - stub\n", This, name, debugstr_guid(session)); - - return E_NOTIMPL; -} - -static HRESULT WINAPI AudioSessionControl_GetIconPath( - IAudioSessionControl2 *iface, WCHAR **path) -{ - ACImpl *This = impl_from_IAudioSessionControl2(iface); - - FIXME("(%p)->(%p) - stub\n", This, path); - - return E_NOTIMPL; -} - -static HRESULT WINAPI AudioSessionControl_SetIconPath( - IAudioSessionControl2 *iface, const WCHAR *path, const GUID *session) -{ - ACImpl *This = impl_from_IAudioSessionControl2(iface); - - FIXME("(%p)->(%p, %s) - stub\n", This, path, debugstr_guid(session)); - - return E_NOTIMPL; -} - -static HRESULT WINAPI AudioSessionControl_GetGroupingParam( - IAudioSessionControl2 *iface, GUID *group) -{ - ACImpl *This = impl_from_IAudioSessionControl2(iface); - - FIXME("(%p)->(%p) - stub\n", This, group); - - return E_NOTIMPL; -} - -static HRESULT WINAPI AudioSessionControl_SetGroupingParam( - IAudioSessionControl2 *iface, const GUID *group, const GUID *session) -{ - ACImpl *This = impl_from_IAudioSessionControl2(iface); - - FIXME("(%p)->(%s, %s) - stub\n", This, debugstr_guid(group), - debugstr_guid(session)); - - return E_NOTIMPL; -} - -static HRESULT WINAPI AudioSessionControl_RegisterAudioSessionNotification( - IAudioSessionControl2 *iface, IAudioSessionEvents *events) -{ - ACImpl *This = impl_from_IAudioSessionControl2(iface); - - FIXME("(%p)->(%p) - stub\n", This, events); - - return S_OK; -} - -static HRESULT WINAPI AudioSessionControl_UnregisterAudioSessionNotification( - IAudioSessionControl2 *iface, IAudioSessionEvents *events) -{ - ACImpl *This = impl_from_IAudioSessionControl2(iface); - - FIXME("(%p)->(%p) - stub\n", This, events); - - return S_OK; -} - -static HRESULT WINAPI AudioSessionControl_GetSessionIdentifier( - IAudioSessionControl2 *iface, WCHAR **id) -{ - ACImpl *This = impl_from_IAudioSessionControl2(iface); - - FIXME("(%p)->(%p) - stub\n", This, id); - - return E_NOTIMPL; -} - -static HRESULT WINAPI AudioSessionControl_GetSessionInstanceIdentifier( - IAudioSessionControl2 *iface, WCHAR **id) -{ - ACImpl *This = impl_from_IAudioSessionControl2(iface); - - FIXME("(%p)->(%p) - stub\n", This, id); - - return E_NOTIMPL; -} - -static HRESULT WINAPI AudioSessionControl_GetProcessId( - IAudioSessionControl2 *iface, DWORD *pid) -{ - ACImpl *This = impl_from_IAudioSessionControl2(iface); - - TRACE("(%p)->(%p)\n", This, pid); - - if(!pid) - return E_POINTER; - - *pid = GetCurrentProcessId(); - - return S_OK; -} - -static HRESULT WINAPI AudioSessionControl_IsSystemSoundsSession( - IAudioSessionControl2 *iface) -{ - ACImpl *This = impl_from_IAudioSessionControl2(iface); - - TRACE("(%p)\n", This); - - return S_FALSE; -} - -static HRESULT WINAPI AudioSessionControl_SetDuckingPreference( - IAudioSessionControl2 *iface, BOOL optout) -{ - ACImpl *This = impl_from_IAudioSessionControl2(iface); - - TRACE("(%p)->(%d)\n", This, optout); - - return S_OK; -} - -static const IAudioSessionControl2Vtbl AudioSessionControl2_Vtbl = -{ - AudioSessionControl_QueryInterface, - AudioSessionControl_AddRef, - AudioSessionControl_Release, - AudioSessionControl_GetState, - AudioSessionControl_GetDisplayName, - AudioSessionControl_SetDisplayName, - AudioSessionControl_GetIconPath, - AudioSessionControl_SetIconPath, - AudioSessionControl_GetGroupingParam, - AudioSessionControl_SetGroupingParam, - AudioSessionControl_RegisterAudioSessionNotification, - AudioSessionControl_UnregisterAudioSessionNotification, - AudioSessionControl_GetSessionIdentifier, - AudioSessionControl_GetSessionInstanceIdentifier, - AudioSessionControl_GetProcessId, - AudioSessionControl_IsSystemSoundsSession, - AudioSessionControl_SetDuckingPreference -}; - -typedef struct _SessionMgr { - IAudioSessionManager2 IAudioSessionManager2_iface; - - LONG ref; - - IMMDevice *device; -} SessionMgr; - -HRESULT WINAPI AudioSessionManager_QueryInterface(IAudioSessionManager2 *iface, - REFIID riid, void **ppv) -{ - TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); - - if(!ppv) - return E_POINTER; - *ppv = NULL; - - if(IsEqualIID(riid, &IID_IUnknown) || - IsEqualIID(riid, &IID_IAudioSessionManager) || - IsEqualIID(riid, &IID_IAudioSessionManager2)) - *ppv = iface; - if(*ppv){ - IUnknown_AddRef((IUnknown*)*ppv); - return S_OK; - } - - WARN("Unknown interface %s\n", debugstr_guid(riid)); - return E_NOINTERFACE; -} - -static inline SessionMgr *impl_from_IAudioSessionManager2(IAudioSessionManager2 *iface) -{ - return CONTAINING_RECORD(iface, SessionMgr, IAudioSessionManager2_iface); -} - -ULONG WINAPI AudioSessionManager_AddRef(IAudioSessionManager2 *iface) -{ - SessionMgr *This = impl_from_IAudioSessionManager2(iface); - ULONG ref; - ref = InterlockedIncrement(&This->ref); - TRACE("(%p) Refcount now %u\n", This, ref); - return ref; -} - -ULONG WINAPI AudioSessionManager_Release(IAudioSessionManager2 *iface) -{ - SessionMgr *This = impl_from_IAudioSessionManager2(iface); - ULONG ref; - ref = InterlockedDecrement(&This->ref); - TRACE("(%p) Refcount now %u\n", This, ref); - if(!ref) - HeapFree(GetProcessHeap(), 0, This); - return ref; -} - -HRESULT WINAPI AudioSessionManager_GetAudioSessionControl( - IAudioSessionManager2 *iface, const GUID *session_guid, DWORD flags, - IAudioSessionControl **out) -{ -#if 0 - SessionMgr *This = impl_from_IAudioSessionManager2(iface); - AudioSession *session; - AudioSessionWrapper *wrapper; - HRESULT hr; - - TRACE("(%p)->(%s, %x, %p)\n", This, debugstr_guid(session_guid), - flags, out); - - hr = get_audio_session(session_guid, This->device, 0, &session); - if(FAILED(hr)) - return hr; - - wrapper = AudioSessionWrapper_Create(NULL); - if(!wrapper) - return E_OUTOFMEMORY; - - wrapper->session = session; - - *out = (IAudioSessionControl*)&wrapper->IAudioSessionControl2_iface; - - return S_OK; -#else - FIXME("stub\n"); - return E_NOTIMPL; -#endif -} - -HRESULT WINAPI AudioSessionManager_GetSimpleAudioVolume( - IAudioSessionManager2 *iface, const GUID *session_guid, DWORD flags, - ISimpleAudioVolume **out) -{ -#if 0 - SessionMgr *This = impl_from_IAudioSessionManager2(iface); - AudioSession *session; - AudioSessionWrapper *wrapper; - HRESULT hr; - - TRACE("(%p)->(%s, %x, %p)\n", This, debugstr_guid(session_guid), - flags, out); - - hr = get_audio_session(session_guid, This->device, 0, &session); - if(FAILED(hr)) - return hr; - - wrapper = AudioSessionWrapper_Create(NULL); - if(!wrapper) - return E_OUTOFMEMORY; - - wrapper->session = session; - - *out = &wrapper->ISimpleAudioVolume_iface; - - return S_OK; -#else - FIXME("stub\n"); - return E_NOTIMPL; -#endif -} - -HRESULT WINAPI AudioSessionManager_GetSessionEnumerator( - IAudioSessionManager2 *iface, IAudioSessionEnumerator **out) -{ - SessionMgr *This = impl_from_IAudioSessionManager2(iface); - FIXME("(%p)->(%p) - stub\n", This, out); - return E_NOTIMPL; -} - -HRESULT WINAPI AudioSessionManager_RegisterSessionNotification( - IAudioSessionManager2 *iface, IAudioSessionNotification *notification) -{ - SessionMgr *This = impl_from_IAudioSessionManager2(iface); - FIXME("(%p)->(%p) - stub\n", This, notification); - return E_NOTIMPL; -} - -HRESULT WINAPI AudioSessionManager_UnregisterSessionNotification( - IAudioSessionManager2 *iface, IAudioSessionNotification *notification) -{ - SessionMgr *This = impl_from_IAudioSessionManager2(iface); - FIXME("(%p)->(%p) - stub\n", This, notification); - return E_NOTIMPL; -} - -HRESULT WINAPI AudioSessionManager_RegisterDuckNotification( - IAudioSessionManager2 *iface, const WCHAR *session_id, - IAudioVolumeDuckNotification *notification) -{ - SessionMgr *This = impl_from_IAudioSessionManager2(iface); - FIXME("(%p)->(%p) - stub\n", This, notification); - return E_NOTIMPL; -} - -HRESULT WINAPI AudioSessionManager_UnregisterDuckNotification( - IAudioSessionManager2 *iface, - IAudioVolumeDuckNotification *notification) -{ - SessionMgr *This = impl_from_IAudioSessionManager2(iface); - FIXME("(%p)->(%p) - stub\n", This, notification); - return E_NOTIMPL; -} - -static const IAudioSessionManager2Vtbl AudioSessionManager2_Vtbl = -{ - AudioSessionManager_QueryInterface, - AudioSessionManager_AddRef, - AudioSessionManager_Release, - AudioSessionManager_GetAudioSessionControl, - AudioSessionManager_GetSimpleAudioVolume, - AudioSessionManager_GetSessionEnumerator, - AudioSessionManager_RegisterSessionNotification, - AudioSessionManager_UnregisterSessionNotification, - AudioSessionManager_RegisterDuckNotification, - AudioSessionManager_UnregisterDuckNotification -}; - -HRESULT WINAPI AUDDRV_GetAudioSessionManager(IMMDevice *device, - IAudioSessionManager2 **out) -{ - SessionMgr *This; - - This = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(SessionMgr)); - if(!This) - return E_OUTOFMEMORY; - - This->IAudioSessionManager2_iface.lpVtbl = &AudioSessionManager2_Vtbl; - This->device = device; - This->ref = 1; - - *out = &This->IAudioSessionManager2_iface; - - return S_OK; -} diff --git a/dlls_winepulse.drv_winepulse.drv b/dlls_winepulse.drv_winepulse.drv deleted file mode 100644 index 819ea12..0000000 --- a/dlls_winepulse.drv_winepulse.drv +++ /dev/null @@ -1,4 +0,0 @@ -# MMDevAPI driver functions -@ stdcall -private GetEndpointIDs(long ptr ptr ptr ptr) AUDDRV_GetEndpointIDs -@ stdcall -private GetAudioEndpoint(ptr ptr long ptr) AUDDRV_GetAudioEndpoint -@ stdcall -private GetAudioSessionManager(ptr ptr) AUDDRV_GetAudioSessionManager diff --git a/sources b/sources index c732477..9e184fa 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -15471f78fee9d211c63381da815cbfb6 wine-1.3.25.tar.bz2 -ba96a3c648f23df05fc5c9d6c412292e wine-1.3.25.tar.bz2.sign +92ea09eb11aec92672671853ce9b792b wine-1.3.26.tar.bz2 +fceac48a09b2dc176c7ef9b22dc1b47a wine-1.3.26.tar.bz2.sign diff --git a/wine-pulseaudio-configure.patch b/wine-pulseaudio-configure.patch deleted file mode 100644 index eda998f..0000000 --- a/wine-pulseaudio-configure.patch +++ /dev/null @@ -1,223 +0,0 @@ ---- wine-1.3.25/configure.winepulse-configure 2011-07-22 19:32:43.000000000 +0200 -+++ wine-1.3.25/configure 2011-08-01 19:53:18.268715283 +0200 -@@ -628,6 +628,8 @@ - ALSALIBS - GSTREAMER_INCL - GSTREAMER_LIBS -+PULSEINCL -+PULSELIBS - LIBGETTEXTPO - ZLIB - FREETYPEINCL -@@ -799,6 +801,7 @@ - with_oss - with_png - with_pthread -+with_pulse - with_sane - with_tiff - with_v4l -@@ -1488,6 +1491,7 @@ - --without-oss do not use the OSS sound support - --without-png do not use PNG - --without-pthread do not use the pthread library -+ --without-pulse do not use PulseAudio sound support - --without-sane do not use SANE (scanner support) - --without-tiff do not use TIFF - --without-v4l do not use v4l1 (v4l support) -@@ -2661,6 +2665,12 @@ - fi - - -+# Check whether --with-pulse was given. -+if test "${with_pulse+set}" = set; then : -+ withval=$with_pulse; -+fi -+ -+ - # Check whether --with-sane was given. - if test "${with_sane+set}" = set; then : - withval=$with_sane; -@@ -10504,6 +10514,87 @@ - fi - fi - -+PULSELIBS="" -+ -+PULSEINCL="" -+ -+if test "x$with_pulse" != "xno"; -+then -+ ac_save_CPPFLAGS="$CPPFLAGS" -+ if test "$PKG_CONFIG" != "false"; -+ then -+ ac_pulse_libs="`$PKG_CONFIG --libs libpulse 2>/dev/null`" -+ ac_pulse_cflags="`$PKG_CONFIG --cflags-only-I libpulse 2>/dev/null`" -+ -+ CPPFLAGS="$CPPFLAGS $ac_pulse_cflags" -+ for ac_header in pulse/pulseaudio.h -+do : -+ ac_fn_c_check_header_mongrel "$LINENO" "pulse/pulseaudio.h" "ac_cv_header_pulse_pulseaudio_h" "$ac_includes_default" -+if test "x$ac_cv_header_pulse_pulseaudio_h" = xyes; then : -+ cat >>confdefs.h <<_ACEOF -+#define HAVE_PULSE_PULSEAUDIO_H 1 -+_ACEOF -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pa_stream_is_corked in -lpulse" >&5 -+$as_echo_n "checking for pa_stream_is_corked in -lpulse... " >&6; } -+if ${ac_cv_lib_pulse_pa_stream_is_corked+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ ac_check_lib_save_LIBS=$LIBS -+LIBS="-lpulse $ac_pulse_libs $LIBS" -+cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+ -+/* Override any GCC internal prototype to avoid an error. -+ Use char because int might match the return type of a GCC -+ builtin and then its argument prototype would still apply. */ -+#ifdef __cplusplus -+extern "C" -+#endif -+char pa_stream_is_corked (); -+int -+main () -+{ -+return pa_stream_is_corked (); -+ ; -+ return 0; -+} -+_ACEOF -+if ac_fn_c_try_link "$LINENO"; then : -+ ac_cv_lib_pulse_pa_stream_is_corked=yes -+else -+ ac_cv_lib_pulse_pa_stream_is_corked=no -+fi -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext -+LIBS=$ac_check_lib_save_LIBS -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pulse_pa_stream_is_corked" >&5 -+$as_echo "$ac_cv_lib_pulse_pa_stream_is_corked" >&6; } -+if test "x$ac_cv_lib_pulse_pa_stream_is_corked" = xyes; then : -+ -+$as_echo "#define HAVE_PULSEAUDIO 1" >>confdefs.h -+ -+ PULSELIBS="$ac_pulse_libs" -+ PULSEINCL="$ac_pulse_cflags" -+fi -+ -+ -+fi -+ -+done -+ -+ fi -+ CPPFLAGS="$ac_save_CPPFLAGS" -+fi -+if test "$ac_cv_lib_pulse_pa_stream_is_corked" != "yes"; then : -+ case "x$with_pulse" in -+ x) as_fn_append wine_warnings "|libpulse ${notice_platform}development files not found or too old, Pulse won't be supported." ;; -+ xno) ;; -+ *) as_fn_error $? "libpulse ${notice_platform}development files not found or too old, Pulse won't be supported. -+This is an error since --with-pulse was requested." "$LINENO" 5 ;; -+esac -+fi -+ - if test "x$with_gstreamer" != "xno" - then - ac_save_CPPFLAGS="$CPPFLAGS" -@@ -11742,12 +11833,13 @@ - - test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no} - test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no} -+test -n "$PULSELIBS" || enable_winepulse_drv=${enable_winepulse_drv:-no} - test "x$ac_cv_member_oss_sysinfo_numaudioengines" = xyes || enable_wineoss_drv=${enable_wineoss_drv:-no} - test "$ac_cv_header_linux_joystick_h" = "yes" || enable_winejoystick_drv=${enable_winejoystick_drv:-no} - --if test "x$ALSALIBS$COREAUDIOLIBS" = "x" -a \ -+if test "x$ALSALIBS$COREAUDIOLIBS$PULSELIBS" = "x" -a \ - "x$ac_cv_member_oss_sysinfo_numaudioengines" != xyes -a \ -- "x$with_alsa$with_coreaudio$with_oss" != xnonono -+ "x$with_alsa$with_coreaudio$with_oss$with_pulse" != xnonono - then - as_fn_append wine_warnings "|No sound system was found. Windows applications will be silent." - fi -@@ -15155,10 +15247,12 @@ - wine_fn_config_dll winegstreamer enable_winegstreamer - wine_fn_config_dll winejoystick.drv enable_winejoystick_drv - wine_fn_config_dll winemapi enable_winemapi -+wine_fn_config_dll winemmaudio.drv enable_winemmaudio_drv - wine_fn_config_dll winemp3.acm enable_winemp3_acm - wine_fn_config_dll wineoss.drv enable_wineoss_drv - wine_fn_config_dll wineps.drv enable_wineps_drv install-lib - wine_fn_config_dll wineps16.drv16 enable_win16 -+wine_fn_config_dll winepulse.drv enable_winepulse_drv - wine_fn_config_dll wineqtdecoder enable_wineqtdecoder - wine_fn_config_dll winequartz.drv enable_winequartz_drv - wine_fn_config_dll winex11.drv enable_winex11_drv ---- wine-1.3.25/configure.ac.winepulse-configure 2011-07-22 19:32:43.000000000 +0200 -+++ wine-1.3.25/configure.ac 2011-08-01 19:51:41.206755129 +0200 -@@ -73,6 +73,7 @@ - [if test "x$withval" = "xno"; then ac_cv_header_png_h=no; fi]) - AC_ARG_WITH(pthread, AS_HELP_STRING([--without-pthread],[do not use the pthread library]), - [if test "x$withval" = "xno"; then ac_cv_header_pthread_h=no; fi]) -+AC_ARG_WITH(pulse, AC_HELP_STRING([--without-pulse],[do not use PulseAudio sound support])) - AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)])) - AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF]), - [if test "x$withval" = "xno"; then ac_cv_header_tiffio_h=no; fi]) -@@ -1435,6 +1436,30 @@ - WINE_WARNING_WITH(gettextpo,[test "x$LIBGETTEXTPO" = "x"],[GetText ${notice_platform}development files not found (or too old). Internationalization won't be fully supported.]) - fi - -+dnl **** Check for PulseAudio **** -+AC_SUBST(PULSELIBS,"") -+AC_SUBST(PULSEINCL,"") -+if test "x$with_pulse" != "xno"; -+then -+ ac_save_CPPFLAGS="$CPPFLAGS" -+ if test "$PKG_CONFIG" != "false"; -+ then -+ ac_pulse_libs="`$PKG_CONFIG --libs libpulse 2>/dev/null`" -+ ac_pulse_cflags="`$PKG_CONFIG --cflags-only-I libpulse 2>/dev/null`" -+ -+ CPPFLAGS="$CPPFLAGS $ac_pulse_cflags" -+ AC_CHECK_HEADERS(pulse/pulseaudio.h, -+ [AC_CHECK_LIB(pulse, pa_stream_is_corked, -+ [AC_DEFINE(HAVE_PULSEAUDIO, 1, [Define if you have pulseaudio]) -+ PULSELIBS="$ac_pulse_libs" -+ PULSEINCL="$ac_pulse_cflags"],,$ac_pulse_libs) -+ ]) -+ fi -+ CPPFLAGS="$ac_save_CPPFLAGS" -+fi -+WINE_WARNING_WITH(pulse, [test "$ac_cv_lib_pulse_pa_stream_is_corked" != "yes"], -+ [libpulse ${notice_platform}development files not found or too old, Pulse won't be supported.]) -+ - dnl **** Check for gstreamer **** - if test "x$with_gstreamer" != "xno" - then -@@ -1636,13 +1661,14 @@ - dnl **** Disable unsupported winmm drivers **** - test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no} - test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no} -+test -n "$PULSELIBS" || enable_winepulse_drv=${enable_winepulse_drv:-no} - test "x$ac_cv_member_oss_sysinfo_numaudioengines" = xyes || enable_wineoss_drv=${enable_wineoss_drv:-no} - test "$ac_cv_header_linux_joystick_h" = "yes" || enable_winejoystick_drv=${enable_winejoystick_drv:-no} - - dnl **** Check for any sound system **** --if test "x$ALSALIBS$COREAUDIOLIBS" = "x" -a \ -+if test "x$ALSALIBS$COREAUDIOLIBS$PULSELIBS" = "x" -a \ - "x$ac_cv_member_oss_sysinfo_numaudioengines" != xyes -a \ -- "x$with_alsa$with_coreaudio$with_oss" != xnonono -+ "x$with_alsa$with_coreaudio$with_oss$with_pulse" != xnonono - then - WINE_WARNING([No sound system was found. Windows applications will be silent.]) - fi -@@ -2832,6 +2858,7 @@ - WINE_CONFIG_DLL(wineoss.drv) - WINE_CONFIG_DLL(wineps.drv,,[install-lib]) - WINE_CONFIG_DLL(wineps16.drv16,enable_win16) -+WINE_CONFIG_DLL(winepulse.drv) - WINE_CONFIG_DLL(wineqtdecoder) - WINE_CONFIG_DLL(winequartz.drv) - WINE_CONFIG_DLL(winex11.drv) diff --git a/wine-udisks1.patch b/wine-udisks1.patch index 597271a..f3213ff 100644 --- a/wine-udisks1.patch +++ b/wine-udisks1.patch @@ -1,33 +1,261 @@ From: Detlef Riekenberg -Subject: [PATCH 1/2] mountmgr: Make parse_uuid visible, when hal or dbus/udisks is used [try 4] -Message-Id: <1311335756-9824-1-git-send-email-wine.dev@web.de> -Date: Fri, 22 Jul 2011 13:55:55 +0200 +Subject: [PATCH] mountmgr: Support the dbus service udisks for dynamic devices :-) [try 5] +Message-Id: <1313451410-25324-1-git-send-email-wine.dev@web.de> +Date: Tue, 16 Aug 2011 01:36:50 +0200 + +This Patch allow the libhal requirement on linux to die. + +Recent distributions depend on udisks, so the libhal development package +should be uninstalled or disabled when building Wine (--without-hal). + +libhal support is still present for old OS without udisks support. + +The logic to add/remove the devices/volumes is the same as present in +our libhal support. + +autoheader/autoconf are needed before compilation + +try 5 +As requested by julliard, not moving around the parse_uuid helper and +no sync between hal support and udisks support. + +try 4 +sync to current git (wineesd was removed) -try 2: -make parse_uuid only visible, when hal or dbus/udisks is used try 3: -resend without changes -try 4: -Add a comment as reminder to parse NTFS serial number +changes for configure.ac where missing in try 2 + +try 2: +remove a trailing space in the code an a trailing " \" in Makefile.in -- By by ... Detlef --- - dlls/mountmgr.sys/device.c | 32 ++++++++++++++++++++++++++++++++ - dlls/mountmgr.sys/hal.c | 27 --------------------------- - dlls/mountmgr.sys/mountmgr.h | 1 + - 3 files changed, 33 insertions(+), 27 deletions(-) + configure.ac | 20 ++- + dlls/mountmgr.sys/Makefile.in | 5 +- + dlls/mountmgr.sys/mountmgr.c | 2 + + dlls/mountmgr.sys/mountmgr.h | 1 + + dlls/mountmgr.sys/udisks.c | 556 +++++++++++++++++++++++++++++++++++++++++ + 5 files changed, 581 insertions(+), 3 deletions(-) + create mode 100644 dlls/mountmgr.sys/udisks.c -diff --git a/dlls/mountmgr.sys/device.c b/dlls/mountmgr.sys/device.c -index a3aa81c..9537551 100644 ---- a/dlls/mountmgr.sys/device.c -+++ b/dlls/mountmgr.sys/device.c -@@ -121,6 +121,38 @@ static char *strdupA( const char *str ) - return ret; - } +diff --git a/configure.ac b/configure.ac +index e6bbb2a..09eb1c6 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -42,6 +42,7 @@ AC_ARG_WITH(coreaudio, AS_HELP_STRING([--without-coreaudio],[do not use the Core + AC_ARG_WITH(cups, AS_HELP_STRING([--without-cups],[do not use CUPS])) + AC_ARG_WITH(curses, AS_HELP_STRING([--without-curses],[do not use (n)curses]), + [if test "x$withval" = "xno"; then ac_cv_header_ncurses_h=no; ac_cv_header_curses_h=no; fi]) ++AC_ARG_WITH(dbus, AS_HELP_STRING([--without-dbus],[do not use dbus (dynamic device support)])) + AC_ARG_WITH(fontconfig,AS_HELP_STRING([--without-fontconfig],[do not use fontconfig]), + [if test "x$withval" = "xno"; then ac_cv_header_fontconfig_fontconfig_h=no; fi]) + AC_ARG_WITH(freetype, AS_HELP_STRING([--without-freetype],[do not use the FreeType library])) +@@ -1201,6 +1202,23 @@ fi + WINE_WARNING_WITH(xslt,[test "x$ac_cv_lib_soname_xslt" = "x"], + [libxslt ${notice_platform}development files not found, xslt won't be supported.]) + ++dnl **** Check for libdbus **** ++AC_SUBST(DBUSINCL,"") ++if test "x$with_dbus" != "xno" ++then ++ ac_save_CPPFLAGS="$CPPFLAGS" ++ if test "$PKG_CONFIG" != "false" ++ then ++ ac_dbus_libs="`$PKG_CONFIG --libs dbus-1 2>/dev/null`" ++ ac_dbus_cflags="`$PKG_CONFIG --cflags dbus-1 2>/dev/null`" ++ CPPFLAGS="$CPPFLAGS $ac_dbus_cflags" ++ fi ++ AC_CHECK_HEADER(dbus/dbus.h, ++ [WINE_CHECK_SONAME(dbus-1,dbus_bus_get,[DBUSINCL="$ac_dbus_cflags"],,[$ac_dbus_libs])]) ++ ++ CPPFLAGS="$ac_save_CPPFLAGS" ++fi ++ + dnl **** Check for libhal **** + AC_SUBST(HALINCL,"") + if test "x$with_hal" != "xno" +@@ -1221,7 +1239,7 @@ then + fi + CPPFLAGS="$ac_save_CPPFLAGS" + fi +-WINE_NOTICE_WITH(hal,[test "x$ac_cv_lib_soname_hal" = "x" -a "x$ac_cv_header_DiskArbitration_DiskArbitration_h" != "xyes"], ++WINE_NOTICE_WITH(hal,[test "x$ac_cv_lib_soname_hal" = "x" -a "x$ac_cv_lib_soname_dbus_1" = "x" -a "x$ac_cv_header_DiskArbitration_DiskArbitration_h" != "xyes"], + [libhal/libdbus ${notice_platform}development files not found, no dynamic device support.]) + + dnl **** Check for libgnutls **** +diff --git a/dlls/mountmgr.sys/Makefile.in b/dlls/mountmgr.sys/Makefile.in +index 91203e1..f3355e0 100644 +--- a/dlls/mountmgr.sys/Makefile.in ++++ b/dlls/mountmgr.sys/Makefile.in +@@ -2,13 +2,14 @@ MODULE = mountmgr.sys + IMPORTS = uuid advapi32 ntoskrnl.exe + DELAYIMPORTS = user32 + EXTRADLLFLAGS = -Wb,--subsystem,native +-EXTRADEFS = @HALINCL@ ++EXTRADEFS = @HALINCL@ @DBUSINCL@ + EXTRALIBS = @DISKARBITRATIONLIB@ + + C_SRCS = \ + device.c \ + diskarb.c \ + hal.c \ +- mountmgr.c ++ mountmgr.c \ ++ udisks.c + + @MAKE_DLL_RULES@ +diff --git a/dlls/mountmgr.sys/mountmgr.c b/dlls/mountmgr.sys/mountmgr.c +index 4e9900f..df0dbd3 100644 +--- a/dlls/mountmgr.sys/mountmgr.c ++++ b/dlls/mountmgr.sys/mountmgr.c +@@ -443,6 +443,8 @@ NTSTATUS WINAPI DriverEntry( DRIVER_OBJECT *driver, UNICODE_STRING *path ) + RtlInitUnicodeString( &nameW, harddiskW ); + status = IoCreateDriver( &nameW, harddisk_driver_entry ); + ++ /* start udisks before hal */ ++ initialize_udisks(); + initialize_hal(); + initialize_diskarbitration(); + +diff --git a/dlls/mountmgr.sys/mountmgr.h b/dlls/mountmgr.sys/mountmgr.h +index a47a3e3..7d07b45 100644 +--- a/dlls/mountmgr.sys/mountmgr.h ++++ b/dlls/mountmgr.sys/mountmgr.h +@@ -35,6 +35,7 @@ + #define WINE_MOUNTMGR_EXTENSIONS + #include "ddk/mountmgr.h" + ++extern void initialize_udisks(void) DECLSPEC_HIDDEN; + extern void initialize_hal(void) DECLSPEC_HIDDEN; + extern void initialize_diskarbitration(void) DECLSPEC_HIDDEN; -+#if defined (SONAME_LIBDBUS_1) || defined (SONAME_LIBHAL) -+GUID *parse_uuid( GUID *guid, const char *str ) +diff --git a/dlls/mountmgr.sys/udisks.c b/dlls/mountmgr.sys/udisks.c +new file mode 100644 +index 0000000..6b7fe13 +--- /dev/null ++++ b/dlls/mountmgr.sys/udisks.c +@@ -0,0 +1,556 @@ ++/* ++ * udisks devices support ++ * ++ * Copyright 2006 Alexandre Julliard ++ * Copyright 2011 Detlef Riekenberg ++ * ++ * 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, write to the Free Software ++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA ++ */ ++ ++#include "config.h" ++#include "wine/port.h" ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include "mountmgr.h" ++#include "winnls.h" ++#include "excpt.h" ++ ++#include "wine/library.h" ++#include "wine/exception.h" ++#include "wine/debug.h" ++ ++WINE_DEFAULT_DEBUG_CHANNEL(mountmgr); ++ ++ ++static char udisks_version[32]; ++ ++#ifdef SONAME_LIBDBUS_1 ++ ++#include ++ ++/* ########## */ ++ ++typedef struct properties_s { ++ CHAR *device_file; ++ CHAR *id_usage; ++ CHAR *id_type; ++ CHAR *id_uuid; ++ BOOL device_is_mounted; ++ BOOL device_is_optical_disc; ++ BOOL device_is_removable; ++ CHAR *device_mount_paths; ++ CHAR *drive_media; ++ CHAR *drive_media_compatibility; ++ int depth; ++ const char * last_name; ++}properties_t; ++ ++static const char *my_match_rule = "interface=org.freedesktop.UDisks"; ++static const char *dest_udisks_device = "org.freedesktop.UDisks.Device"; ++static const char *dest_udisks = "org.freedesktop.UDisks"; ++static const char *path_udisks = "/org/freedesktop/UDisks"; ++static const char *iface_dbus_prop = "org.freedesktop.DBus.Properties"; ++static const char *daemonversion = "DaemonVersion"; ++ ++/* ########## */ ++ ++#define DBUS_FUNCS \ ++ DO_FUNC(dbus_bus_add_match); \ ++ DO_FUNC(dbus_bus_get); \ ++ DO_FUNC(dbus_bus_remove_match); \ ++ DO_FUNC(dbus_connection_pop_message); \ ++ DO_FUNC(dbus_connection_read_write_dispatch); \ ++ DO_FUNC(dbus_connection_send_with_reply_and_block); \ ++ DO_FUNC(dbus_connection_unref); \ ++ DO_FUNC(dbus_error_free); \ ++ DO_FUNC(dbus_error_init); \ ++ DO_FUNC(dbus_error_is_set); \ ++ DO_FUNC(dbus_message_append_args); \ ++ DO_FUNC(dbus_message_get_member); \ ++ DO_FUNC(dbus_message_iter_get_arg_type); \ ++ DO_FUNC(dbus_message_iter_get_basic); \ ++ DO_FUNC(dbus_message_iter_init); \ ++ DO_FUNC(dbus_message_iter_next); \ ++ DO_FUNC(dbus_message_iter_recurse); \ ++ DO_FUNC(dbus_message_new_method_call); \ ++ DO_FUNC(dbus_message_type_to_string); \ ++ DO_FUNC(dbus_message_unref) ++ ++#define DO_FUNC(f) static typeof(f) * p_##f ++DBUS_FUNCS; ++#undef DO_FUNC ++ ++ ++static BOOL load_dbus_functions(void) ++{ ++ void *dbus_handle; ++ char error[128]; ++ ++ if (!(dbus_handle = wine_dlopen(SONAME_LIBDBUS_1, RTLD_NOW|RTLD_GLOBAL, error, sizeof(error)))) ++ goto failed; ++ ++#define DO_FUNC(f) if (!(p_##f = wine_dlsym(RTLD_DEFAULT, #f, error, sizeof(error)))) goto failed ++ DBUS_FUNCS; ++#undef DO_FUNC ++ ++ return TRUE; ++ ++failed: ++ WARN("failed to load udisks support: %s\n", error); ++ return FALSE; ++} ++ ++static GUID *parse_uuid( GUID *guid, const char *str ) +{ + /* standard uuid format */ + if (strlen(str) == 36) @@ -45,72 +273,425 @@ index a3aa81c..9537551 100644 + } + } + -+ /* ToDo: Check for NTFS serial number */ -+ + /* check for xxxx-xxxx format (FAT serial number) */ + if (strlen(str) == 9 && str[4] == '-') + { + memset( guid, 0, sizeof(*guid) ); + if (sscanf( str, "%hx-%hx", &guid->Data2, &guid->Data3 ) == 2) return guid; + } -+ + return NULL; +} -+#endif -+ - static const GUID *get_default_uuid( int letter ) - { - static GUID guid; -diff --git a/dlls/mountmgr.sys/hal.c b/dlls/mountmgr.sys/hal.c -index 82a70e9..ff10a3e 100644 ---- a/dlls/mountmgr.sys/hal.c -+++ b/dlls/mountmgr.sys/hal.c -@@ -106,33 +106,6 @@ static LONG WINAPI assert_fault(EXCEPTION_POINTERS *eptr) - return EXCEPTION_CONTINUE_SEARCH; - } - --static GUID *parse_uuid( GUID *guid, const char *str ) --{ -- /* standard uuid format */ -- if (strlen(str) == 36) -- { -- UNICODE_STRING strW; -- WCHAR buffer[39]; -- -- if (MultiByteToWideChar( CP_UNIXCP, 0, str, 36, buffer + 1, 36 )) -- { -- buffer[0] = '{'; -- buffer[37] = '}'; -- buffer[38] = 0; -- RtlInitUnicodeString( &strW, buffer ); -- if (!RtlGUIDFromString( &strW, guid )) return guid; -- } -- } -- -- /* check for xxxx-xxxx format (FAT serial number) */ -- if (strlen(str) == 9 && str[4] == '-') -- { -- memset( guid, 0, sizeof(*guid) ); -- if (sscanf( str, "%hx-%hx", &guid->Data2, &guid->Data3 ) == 2) return guid; -- } -- return NULL; --} -- - /* HAL callback for new device */ - static void new_device( LibHalContext *ctx, const char *udi ) - { -diff --git a/dlls/mountmgr.sys/mountmgr.h b/dlls/mountmgr.sys/mountmgr.h -index a47a3e3..a8e4389 100644 ---- a/dlls/mountmgr.sys/mountmgr.h -+++ b/dlls/mountmgr.sys/mountmgr.h -@@ -52,6 +52,7 @@ enum device_type - DEVICE_RAMDISK - }; - -+extern GUID *parse_uuid( GUID *guid, const char *str ) DECLSPEC_HIDDEN; - extern NTSTATUS add_volume( const char *udi, const char *device, const char *mount_point, - enum device_type type, const GUID *guid ) DECLSPEC_HIDDEN; - extern NTSTATUS remove_volume( const char *udi ) DECLSPEC_HIDDEN; ++ ++static LONG WINAPI assert_fault(EXCEPTION_POINTERS *eptr) ++{ ++ if (eptr->ExceptionRecord->ExceptionCode == EXCEPTION_WINE_ASSERTION) ++ return EXCEPTION_EXECUTE_HANDLER; ++ return EXCEPTION_CONTINUE_SEARCH; ++} ++ ++/* ######################################### ++ * get_properties_from_iter [internal] ++ * ++ * NOTES ++ * format of args in a reply from GetAll: ++ * an ARRAY of DICT_ENTRY ++ * each DICT_ENTRY has a STRING (property name) and a VARIANT (property value) ++ * each VARIANT has a BOOLEAN or a STRING or an ARRAY of STRING or an here unused value ++ */ ++static BOOL get_properties_from_iter(properties_t * p, DBusMessageIter * iter) ++{ ++ DBusMessageIter sub; ++ int arg_type = p_dbus_message_iter_get_arg_type(iter); ++ ++ p->depth++; ++ while (arg_type != DBUS_TYPE_INVALID) ++ { ++ if ((arg_type == DBUS_TYPE_ARRAY) || ++ (arg_type == DBUS_TYPE_DICT_ENTRY) || ++ (arg_type == DBUS_TYPE_VARIANT)) ++ { ++ p_dbus_message_iter_recurse(iter, &sub); ++ if (!get_properties_from_iter(p, &sub)) ++ { ++ p->depth--; ++ return FALSE; ++ } ++ } ++ else if (arg_type == DBUS_TYPE_STRING) ++ { ++ char * data; ++ p_dbus_message_iter_get_basic(iter, &data); ++ if (p->depth == 3) p->last_name = data; ++ else if (p->last_name) ++ { ++ if (!strcmp(p->last_name, "DeviceFile")) ++ p->device_file = data; ++ else if (!strcmp(p->last_name, "DeviceMountPaths")) ++ p->device_mount_paths = data; /* use only the first entry */ ++ else if (!strcmp(p->last_name, "DriveMedia")) ++ p->drive_media = data; ++ else if (!strcmp(p->last_name, "DriveMediaCompatibility")) ++ p->drive_media_compatibility = data; /* use only the first entry */ ++ else if (!strcmp(p->last_name, "IdType")) ++ p->id_type = data; ++ else if (!strcmp(p->last_name, "IdUsage")) ++ p->id_usage = data; ++ else if (!strcmp(p->last_name, "IdUuid")) ++ p->id_uuid = data; ++ ++ p->last_name = NULL; ++ } ++ } ++ else if (arg_type == DBUS_TYPE_BOOLEAN) ++ { ++ dbus_bool_t data; ++ if (p->last_name) ++ { ++ p_dbus_message_iter_get_basic(iter, &data); ++ if (!strcmp(p->last_name, "DeviceIsMounted")) ++ p->device_is_mounted = data; ++ else if (!strcmp(p->last_name, "DeviceIsOpticalDisc")) ++ p->device_is_optical_disc = data; ++ else if (!strcmp(p->last_name, "DeviceIsRemovable")) ++ p->device_is_removable = data; ++ ++ p->last_name = NULL; ++ } ++ } ++ ++ p_dbus_message_iter_next(iter); ++ arg_type = p_dbus_message_iter_get_arg_type(iter); ++ } ++ p->depth--; ++ return TRUE; ++} ++ ++static DBusMessage * get_properties_from_path(properties_t * p, DBusConnection *ctx, const char * path) ++{ ++ DBusMessage *request; ++ DBusMessage *reply = NULL; ++ DBusMessageIter iter; ++ DBusError error; ++ ++ TRACE("(%p, %p, %s)\n", p, ctx, path); ++ ++ memset(p, 0, sizeof(properties_t)); ++ request = p_dbus_message_new_method_call(dest_udisks, path, iface_dbus_prop, "GetAll"); ++ if (request) ++ { ++ if (p_dbus_message_append_args(request, DBUS_TYPE_STRING, &dest_udisks_device, DBUS_TYPE_INVALID)) ++ { ++ p_dbus_error_init(&error); ++ if ((reply = p_dbus_connection_send_with_reply_and_block(ctx, request, -1, &error))) ++ { ++ p_dbus_message_iter_init(reply, &iter); ++ get_properties_from_iter(p, &iter); ++ } ++ else ++ WARN("no reply for %s\n", path); ++ ++ p_dbus_error_free(&error); ++ } ++ else ++ WARN("dbus_message_append_args failed for 'GetAll'\n"); ++ ++ p_dbus_message_unref(request); ++ } ++ return reply; ++} ++ ++static int get_drive_type(properties_t * p) ++{ ++ /* examples: optical_cd, optical_cd_rw, optical_dvd_plus_r_dl */ ++ if (p->device_is_optical_disc && p->drive_media && !memcmp(p->drive_media, "optical_", 8)) ++ { ++ if (!memcmp(p->drive_media + 8, "cd", 2)) ++ return DEVICE_CDROM; ++ else ++ return DEVICE_DVD; ++ } ++ else if (p->drive_media_compatibility && !strcmp(p->drive_media_compatibility, "floppy")) ++ return DEVICE_FLOPPY; ++ else if (!p->device_is_removable && p->id_usage && !strcmp(p->id_usage, "filesystem")) ++ return DEVICE_HARDDISK_VOL; ++ ++ return DEVICE_UNKNOWN; ++} ++ ++static void udisks_add_device(DBusConnection *ctx, const char *path) ++{ ++ DBusMessage *reply; ++ properties_t p; ++ GUID guid; ++ GUID *guid_ptr = NULL; ++ ++ TRACE("%s\n", debugstr_a(path)); ++ ++ reply = get_properties_from_path(&p, ctx, path); ++ if (reply) ++ { ++ int drive_type = get_drive_type(&p); ++ ++ TRACE("DeviceFile: %s\n", p.device_file); ++ TRACE("IdUsage: %s\n", p.id_usage); ++ TRACE("IdType: %s\n", p.id_type); ++ TRACE("IdUuid: %s\n", p.id_uuid); ++ TRACE("DeviceIsMounted: %d (%s)\n", p.device_is_mounted, p.device_is_mounted ? "true" : "false"); ++ TRACE("DeviceIsOpticalDisc: %d (%s)\n", p.device_is_optical_disc, p.device_is_optical_disc ? "true" : "false"); ++ TRACE("DeviceIsRemovable: %d (%s)\n", p.device_is_removable, p.device_is_removable ? "true" : "false"); ++ TRACE("DeviceMountPaths: %s\n", p.device_mount_paths); ++ TRACE("DriveMedia: %s\n", p.drive_media); ++ TRACE("DriveMediaCompatibility: %s\n", p.drive_media_compatibility); ++ TRACE("using drive_type: %d\n", drive_type); ++ ++ if (p.device_is_mounted && p.device_mount_paths) ++ { ++ if (p.id_uuid) ++ guid_ptr = parse_uuid(&guid, p.id_uuid); ++ ++ if (p.device_is_removable) ++ add_dos_device(-1, path, p.device_file, p.device_mount_paths, drive_type, guid_ptr); ++ else if (guid_ptr) ++ add_volume(path, p.device_file, p.device_mount_paths, DEVICE_HARDDISK_VOL, guid_ptr); ++ ++ } ++ p_dbus_message_unref(reply); ++ } ++} ++ ++static void udisks_remove_device(DBusConnection *ctx, const char *path) ++{ ++ TRACE("%s\n", debugstr_a(path)); ++ ++ if (remove_dos_device(-1, path)) ++ remove_volume(path); ++} ++ ++static void udisks_change_device(DBusConnection *ctx, const char *path) ++{ ++ DBusMessage *reply; ++ properties_t p; ++ ++ TRACE("%s\n", debugstr_a(path)); ++ ++ reply = get_properties_from_path(&p, ctx, path); ++ if (reply) ++ { ++ int drive_type = get_drive_type(&p); ++ ++ if (p.device_is_mounted && p.device_mount_paths) ++ udisks_add_device(ctx, path); ++ else ++ { ++ TRACE("DeviceFile: %s\n", p.device_file); ++ TRACE("IdUsage: %s\n", p.id_usage); ++ TRACE("IdType: %s\n", p.id_type); ++ TRACE("IdUuid: %s\n", p.id_uuid); ++ TRACE("DeviceIsMounted: %d (%s)\n", p.device_is_mounted, p.device_is_mounted ? "true" : "false"); ++ TRACE("DeviceIsOpticalDisc: %d (%s)\n", p.device_is_optical_disc, p.device_is_optical_disc ? "true" : "false"); ++ TRACE("DeviceIsRemovable: %d (%s)\n", p.device_is_removable, p.device_is_removable ? "true" : "false"); ++ TRACE("DeviceMountPaths: %s\n", p.device_mount_paths); ++ TRACE("DriveMedia: %s\n", p.drive_media); ++ TRACE("DriveMediaCompatibility: %s\n", p.drive_media_compatibility); ++ TRACE("using drive_type: %d\n", drive_type); ++ ++ udisks_remove_device(ctx, path); ++ } ++ p_dbus_message_unref(reply); ++ } ++} ++ ++/* ########### */ ++ ++static void udisks_get_all_devices(DBusConnection *ctx) ++{ ++ DBusMessage *request; ++ DBusMessage *reply; ++ DBusMessageIter iter; ++ DBusMessageIter sub; ++ DBusError error; ++ int arg_type; ++ ++ request = p_dbus_message_new_method_call(dest_udisks, path_udisks, dest_udisks, "EnumerateDevices"); ++ if (request) ++ { ++ p_dbus_error_init(&error); ++ if ((reply = p_dbus_connection_send_with_reply_and_block(ctx, request, -1, &error))) ++ { ++ p_dbus_message_iter_init(reply, &iter); ++ arg_type = p_dbus_message_iter_get_arg_type(&iter); ++ if (arg_type == DBUS_TYPE_ARRAY) ++ { ++ p_dbus_message_iter_recurse(&iter, &sub); ++ while ((arg_type = p_dbus_message_iter_get_arg_type(&sub)) == DBUS_TYPE_OBJECT_PATH) ++ { ++ char * data; ++ p_dbus_message_iter_get_basic(&sub, &data); ++ udisks_add_device(ctx, data); ++ p_dbus_message_iter_next(&sub); ++ } ++ } ++ else ++ WARN("expected ARRAY, got %c\n", arg_type); ++ ++ p_dbus_message_unref(reply); ++ } ++ p_dbus_error_free(&error); ++ p_dbus_message_unref(request); ++ } ++} ++ ++static void udisks_get_version(DBusConnection *ctx) ++{ ++ DBusMessage *request; ++ DBusMessage *reply; ++ DBusMessageIter iter; ++ DBusMessageIter sub; ++ DBusError error; ++ int arg_type; ++ ++ request = p_dbus_message_new_method_call(dest_udisks, path_udisks, iface_dbus_prop, "Get"); ++ if (request) ++ { ++ if (p_dbus_message_append_args(request, DBUS_TYPE_STRING, &dest_udisks, ++ DBUS_TYPE_STRING, &daemonversion, ++ DBUS_TYPE_INVALID)) ++ { ++ p_dbus_error_init(&error); ++ if ((reply = p_dbus_connection_send_with_reply_and_block(ctx, request, -1, &error))) ++ { ++ p_dbus_message_iter_init(reply, &iter); ++ arg_type = p_dbus_message_iter_get_arg_type(&iter); ++ if (arg_type == DBUS_TYPE_VARIANT) ++ { ++ p_dbus_message_iter_recurse(&iter, &sub); ++ arg_type = p_dbus_message_iter_get_arg_type(&sub); ++ if (arg_type == DBUS_TYPE_STRING) ++ { ++ char * data; ++ p_dbus_message_iter_get_basic(&sub, &data); ++ lstrcpynA(udisks_version, data, sizeof(udisks_version) - 1); ++ TRACE("found udisks daemon %s\n", udisks_version); ++ } ++ else ++ WARN("expected STRING, got %c\n", arg_type); ++ ++ } ++ else ++ WARN("expected VARIANT, got %c\n", arg_type); ++ ++ p_dbus_message_unref(reply); ++ } ++ p_dbus_error_free(&error); ++ } ++ else ++ WARN("dbus_message_append_args failed\n"); ++ ++ p_dbus_message_unref(request); ++ } ++ return; ++ ++} ++ ++static DWORD WINAPI udisks_thread( void *arg ) ++{ ++ DBusConnection *ctx; ++ DBusMessage *msg; ++ DBusMessageIter iter; ++ DBusError error; ++ const char *member; ++ int arg_type; ++ char *data; ++ ++ p_dbus_error_init(&error); ++ ctx = p_dbus_bus_get(DBUS_BUS_SYSTEM, &error); ++ ++ if (!ctx) ++ { ++ WARN("failed to get system dbus connection: %s\n", error.message); ++ p_dbus_error_free(&error); ++ return 1; ++ } ++ ++ p_dbus_bus_add_match(ctx, my_match_rule, &error); ++ if (p_dbus_error_is_set(&error)) ++ { ++ WARN("add dbus filter failed: %s\n", error.message); ++ p_dbus_error_free(&error); ++ p_dbus_connection_unref(ctx); ++ return 1; ++ } ++ ++ udisks_get_version(ctx); ++ ++ if (!*udisks_version) ++ { ++ TRACE("udisks service not available\n"); ++ p_dbus_bus_remove_match(ctx, my_match_rule, NULL); ++ p_dbus_error_free(&error); ++ p_dbus_connection_unref(ctx); ++ return 1; ++ } ++ ++ __TRY ++ { ++ /* retrieve all existing devices */ ++ udisks_get_all_devices(ctx); ++ ++ while (p_dbus_connection_read_write_dispatch(ctx, -1 )) ++ { ++ while ((msg = p_dbus_connection_pop_message(ctx))) ++ { ++ member = p_dbus_message_get_member(msg); ++ p_dbus_message_iter_init(msg, &iter); ++ arg_type = p_dbus_message_iter_get_arg_type(&iter); ++ ++ if (arg_type == DBUS_TYPE_OBJECT_PATH) ++ p_dbus_message_iter_get_basic(&iter, &data); ++ ++ if (!lstrcmpA(member, "DeviceChanged")) ++ udisks_change_device(ctx, data); ++ else if (!lstrcmpA(member, "DeviceAdded")) ++ udisks_add_device(ctx, data); ++ else if (!lstrcmpA(member, "DeviceRemoved")) ++ udisks_remove_device(ctx, data); ++ else if (lstrcmpA(member, "DeviceJobChanged")) ++ WARN("got signal for %s\n", member); ++ ++ p_dbus_message_unref(msg); ++ } ++ } ++ } ++ __EXCEPT(assert_fault) ++ { ++ WARN("dbus assertion failure, disabling UDisks support\n"); ++ return 1; ++ } ++ __ENDTRY; ++ ++ p_dbus_bus_remove_match(ctx, my_match_rule, NULL); ++ p_dbus_error_free(&error); ++ p_dbus_connection_unref(ctx); ++ return 0; ++} ++ ++void initialize_udisks(void) ++{ ++ HANDLE handle = NULL; ++ ++ if (!load_dbus_functions()) return; ++ if (!(handle = CreateThread(NULL, 0, udisks_thread, NULL, 0, NULL))) return; ++ CloseHandle(handle); ++} ++ ++#else /* SONAME_LIBDBUS_1 */ ++ ++void initialize_udisks(void) ++{ ++ TRACE("Skipping, DBUS support not compiled in\n"); ++} ++ ++#endif /* SONAME_LIBDBUS_1 */ -- 1.7.5.4 diff --git a/wine-udisks2.patch b/wine-udisks2.patch deleted file mode 100644 index e83b339..0000000 --- a/wine-udisks2.patch +++ /dev/null @@ -1,719 +0,0 @@ -From: Detlef Riekenberg -Subject: [PATCH 2/2] mountmgr: Support the dbus service udisks for dynamic devices :-) [try 4] -Message-Id: <1311335756-9824-2-git-send-email-wine.dev@web.de> -Date: Fri, 22 Jul 2011 13:55:56 +0200 - -udisks is prefered, but libhal support is still present as fallback. -This allow the libhal requirement on linux to die. - -libhal support in binary packages is only needed, when udisk is -optional for a linux distribution. - -The logic to add/remove the devices/volumes is the same as present in -our libhal support. - -autoheader/autoconf are needed before compilation - -try 2: -remove a trailing space in the code an a trailing " \" in Makefile.in -try 3: -changes for configure.ac where missing in try 2 -try 4 -sync to current git (wineesd was removed) - --- -By by ... Detlef ---- - configure.ac | 20 ++- - dlls/mountmgr.sys/Makefile.in | 5 +- - dlls/mountmgr.sys/hal.c | 15 ++ - dlls/mountmgr.sys/mountmgr.c | 2 + - dlls/mountmgr.sys/mountmgr.h | 3 + - dlls/mountmgr.sys/udisks.c | 554 +++++++++++++++++++++++++++++++++++++++++ - 6 files changed, 596 insertions(+), 3 deletions(-) - create mode 100644 dlls/mountmgr.sys/udisks.c - -diff --git a/configure.ac b/configure.ac -index b213923..d9d2472 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -42,6 +42,7 @@ AC_ARG_WITH(coreaudio, AS_HELP_STRING([--without-coreaudio],[do not use the Core - AC_ARG_WITH(cups, AS_HELP_STRING([--without-cups],[do not use CUPS])) - AC_ARG_WITH(curses, AS_HELP_STRING([--without-curses],[do not use (n)curses]), - [if test "x$withval" = "xno"; then ac_cv_header_ncurses_h=no; ac_cv_header_curses_h=no; fi]) -+AC_ARG_WITH(dbus, AS_HELP_STRING([--without-dbus],[do not use dbus (dynamic device support)])) - AC_ARG_WITH(fontconfig,AS_HELP_STRING([--without-fontconfig],[do not use fontconfig]), - [if test "x$withval" = "xno"; then ac_cv_header_fontconfig_fontconfig_h=no; fi]) - AC_ARG_WITH(freetype, AS_HELP_STRING([--without-freetype],[do not use the FreeType library])) -@@ -1196,6 +1197,23 @@ fi - WINE_WARNING_WITH(xslt,[test "x$ac_cv_lib_soname_xslt" = "x"], - [libxslt ${notice_platform}development files not found, xslt won't be supported.]) - -+dnl **** Check for libdbus **** -+AC_SUBST(DBUSINCL,"") -+if test "x$with_dbus" != "xno" -+then -+ ac_save_CPPFLAGS="$CPPFLAGS" -+ if test "$PKG_CONFIG" != "false" -+ then -+ ac_dbus_libs="`$PKG_CONFIG --libs dbus-1 2>/dev/null`" -+ ac_dbus_cflags="`$PKG_CONFIG --cflags dbus-1 2>/dev/null`" -+ CPPFLAGS="$CPPFLAGS $ac_dbus_cflags" -+ fi -+ AC_CHECK_HEADER(dbus/dbus.h, -+ [WINE_CHECK_SONAME(dbus-1,dbus_bus_get,[DBUSINCL="$ac_dbus_cflags"],,[$ac_dbus_libs])]) -+ -+ CPPFLAGS="$ac_save_CPPFLAGS" -+fi -+ - dnl **** Check for libhal **** - AC_SUBST(HALINCL,"") - if test "x$with_hal" != "xno" -@@ -1216,7 +1234,7 @@ then - fi - CPPFLAGS="$ac_save_CPPFLAGS" - fi --WINE_NOTICE_WITH(hal,[test "x$ac_cv_lib_soname_hal" = "x" -a "x$ac_cv_header_DiskArbitration_DiskArbitration_h" != "xyes"], -+WINE_NOTICE_WITH(hal,[test "x$ac_cv_lib_soname_hal" = "x" -a "x$ac_cv_lib_soname_dbus_1" = "x" -a "x$ac_cv_header_DiskArbitration_DiskArbitration_h" != "xyes"], - [libhal/libdbus ${notice_platform}development files not found, no dynamic device support.]) - - dnl **** Check for libgnutls **** -diff --git a/dlls/mountmgr.sys/Makefile.in b/dlls/mountmgr.sys/Makefile.in -index 91203e1..f3355e0 100644 ---- a/dlls/mountmgr.sys/Makefile.in -+++ b/dlls/mountmgr.sys/Makefile.in -@@ -2,13 +2,14 @@ MODULE = mountmgr.sys - IMPORTS = uuid advapi32 ntoskrnl.exe - DELAYIMPORTS = user32 - EXTRADLLFLAGS = -Wb,--subsystem,native --EXTRADEFS = @HALINCL@ -+EXTRADEFS = @HALINCL@ @DBUSINCL@ - EXTRALIBS = @DISKARBITRATIONLIB@ - - C_SRCS = \ - device.c \ - diskarb.c \ - hal.c \ -- mountmgr.c -+ mountmgr.c \ -+ udisks.c - - @MAKE_DLL_RULES@ -diff --git a/dlls/mountmgr.sys/hal.c b/dlls/mountmgr.sys/hal.c -index ff10a3e..8e31624 100644 ---- a/dlls/mountmgr.sys/hal.c -+++ b/dlls/mountmgr.sys/hal.c -@@ -245,6 +245,21 @@ void initialize_hal(void) - { - HANDLE handle; - -+ /* wait for udisks, when needed */ -+ if (dbus_present) -+ { -+ DWORD res; -+ -+ TRACE("waiting for udisks\n"); -+ res = WaitForSingleObject(dbus_present, 100); -+ -+ if (!res && *udisks_version) -+ { -+ TRACE("Skipping, found udisks\n"); -+ return; -+ } -+ } -+ - if (!load_functions()) return; - if (!(handle = CreateThread( NULL, 0, hal_thread, NULL, 0, NULL ))) return; - CloseHandle( handle ); -diff --git a/dlls/mountmgr.sys/mountmgr.c b/dlls/mountmgr.sys/mountmgr.c -index 4e9900f..df0dbd3 100644 ---- a/dlls/mountmgr.sys/mountmgr.c -+++ b/dlls/mountmgr.sys/mountmgr.c -@@ -443,6 +443,8 @@ NTSTATUS WINAPI DriverEntry( DRIVER_OBJECT *driver, UNICODE_STRING *path ) - RtlInitUnicodeString( &nameW, harddiskW ); - status = IoCreateDriver( &nameW, harddisk_driver_entry ); - -+ /* start udisks before hal */ -+ initialize_udisks(); - initialize_hal(); - initialize_diskarbitration(); - -diff --git a/dlls/mountmgr.sys/mountmgr.h b/dlls/mountmgr.sys/mountmgr.h -index a8e4389..3c3c564 100644 ---- a/dlls/mountmgr.sys/mountmgr.h -+++ b/dlls/mountmgr.sys/mountmgr.h -@@ -35,8 +35,11 @@ - #define WINE_MOUNTMGR_EXTENSIONS - #include "ddk/mountmgr.h" - -+extern void initialize_udisks(void) DECLSPEC_HIDDEN; - extern void initialize_hal(void) DECLSPEC_HIDDEN; - extern void initialize_diskarbitration(void) DECLSPEC_HIDDEN; -+extern HANDLE dbus_present; -+extern char udisks_version[]; - - /* device functions */ - -diff --git a/dlls/mountmgr.sys/udisks.c b/dlls/mountmgr.sys/udisks.c -new file mode 100644 -index 0000000..898f41d ---- /dev/null -+++ b/dlls/mountmgr.sys/udisks.c -@@ -0,0 +1,554 @@ -+/* -+ * udisks devices support -+ * -+ * Copyright 2006 Alexandre Julliard -+ * Copyright 2011 Detlef Riekenberg -+ * -+ * 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, write to the Free Software -+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA -+ */ -+ -+#include "config.h" -+#include "wine/port.h" -+ -+#include -+#include -+#include -+#include -+#include -+ -+#include "mountmgr.h" -+#include "winnls.h" -+#include "excpt.h" -+ -+#include "wine/library.h" -+#include "wine/exception.h" -+#include "wine/debug.h" -+ -+WINE_DEFAULT_DEBUG_CHANNEL(mountmgr); -+ -+HANDLE dbus_present = NULL; -+char udisks_version[32]; -+ -+#ifdef SONAME_LIBDBUS_1 -+ -+#include -+ -+/* ########## */ -+ -+typedef struct properties_s { -+ CHAR *device_file; -+ CHAR *id_usage; -+ CHAR *id_type; -+ CHAR *id_uuid; -+ BOOL device_is_mounted; -+ BOOL device_is_optical_disc; -+ BOOL device_is_removable; -+ CHAR *device_mount_paths; -+ CHAR *drive_media; -+ CHAR *drive_media_compatibility; -+ int depth; -+ const char * last_name; -+}properties_t; -+ -+static const char *my_match_rule = "interface=org.freedesktop.UDisks"; -+static const char *dest_udisks_device = "org.freedesktop.UDisks.Device"; -+static const char *dest_udisks = "org.freedesktop.UDisks"; -+static const char *path_udisks = "/org/freedesktop/UDisks"; -+static const char *iface_dbus_prop = "org.freedesktop.DBus.Properties"; -+static const char *daemonversion = "DaemonVersion"; -+ -+/* ########## */ -+ -+#define DBUS_FUNCS \ -+ DO_FUNC(dbus_bus_add_match); \ -+ DO_FUNC(dbus_bus_get); \ -+ DO_FUNC(dbus_bus_remove_match); \ -+ DO_FUNC(dbus_connection_pop_message); \ -+ DO_FUNC(dbus_connection_read_write_dispatch); \ -+ DO_FUNC(dbus_connection_send_with_reply_and_block); \ -+ DO_FUNC(dbus_connection_unref); \ -+ DO_FUNC(dbus_error_free); \ -+ DO_FUNC(dbus_error_init); \ -+ DO_FUNC(dbus_error_is_set); \ -+ DO_FUNC(dbus_message_append_args); \ -+ DO_FUNC(dbus_message_get_member); \ -+ DO_FUNC(dbus_message_iter_get_arg_type); \ -+ DO_FUNC(dbus_message_iter_get_basic); \ -+ DO_FUNC(dbus_message_iter_init); \ -+ DO_FUNC(dbus_message_iter_next); \ -+ DO_FUNC(dbus_message_iter_recurse); \ -+ DO_FUNC(dbus_message_new_method_call); \ -+ DO_FUNC(dbus_message_type_to_string); \ -+ DO_FUNC(dbus_message_unref) -+ -+#define DO_FUNC(f) static typeof(f) * p_##f -+DBUS_FUNCS; -+#undef DO_FUNC -+ -+ -+static BOOL load_dbus_functions(void) -+{ -+ void *dbus_handle; -+ char error[128]; -+ -+ if (!(dbus_handle = wine_dlopen(SONAME_LIBDBUS_1, RTLD_NOW|RTLD_GLOBAL, error, sizeof(error)))) -+ goto failed; -+ -+#define DO_FUNC(f) if (!(p_##f = wine_dlsym(RTLD_DEFAULT, #f, error, sizeof(error)))) goto failed -+ DBUS_FUNCS; -+#undef DO_FUNC -+ -+ return TRUE; -+ -+failed: -+ WARN("failed to load udisks support: %s\n", error); -+ return FALSE; -+} -+ -+/* ########## */ -+ -+static LONG WINAPI assert_fault(EXCEPTION_POINTERS *eptr) -+{ -+ if (eptr->ExceptionRecord->ExceptionCode == EXCEPTION_WINE_ASSERTION) -+ return EXCEPTION_EXECUTE_HANDLER; -+ return EXCEPTION_CONTINUE_SEARCH; -+} -+ -+/* ######################################### -+ * get_properties_from_iter [internal] -+ * -+ * NOTES -+ * format of args in a reply from GetAll: -+ * an ARRAY of DICT_ENTRY -+ * each DICT_ENTRY has a STRING (property name) and a VARIANT (property value) -+ * each VARIANT has a BOOLEAN or a STRING or an ARRAY of STRING or an here unused value -+ */ -+static BOOL get_properties_from_iter(properties_t * p, DBusMessageIter * iter) -+{ -+ DBusMessageIter sub; -+ int arg_type = p_dbus_message_iter_get_arg_type(iter); -+ -+ p->depth++; -+ while (arg_type != DBUS_TYPE_INVALID) -+ { -+ if ((arg_type == DBUS_TYPE_ARRAY) || -+ (arg_type == DBUS_TYPE_DICT_ENTRY) || -+ (arg_type == DBUS_TYPE_VARIANT)) -+ { -+ p_dbus_message_iter_recurse(iter, &sub); -+ if (!get_properties_from_iter(p, &sub)) -+ { -+ p->depth--; -+ return FALSE; -+ } -+ } -+ else if (arg_type == DBUS_TYPE_STRING) -+ { -+ char * data; -+ p_dbus_message_iter_get_basic(iter, &data); -+ if (p->depth == 3) p->last_name = data; -+ else if (p->last_name) -+ { -+ if (!strcmp(p->last_name, "DeviceFile")) -+ p->device_file = data; -+ else if (!strcmp(p->last_name, "DeviceMountPaths")) -+ p->device_mount_paths = data; /* use only the first entry */ -+ else if (!strcmp(p->last_name, "DriveMedia")) -+ p->drive_media = data; -+ else if (!strcmp(p->last_name, "DriveMediaCompatibility")) -+ p->drive_media_compatibility = data; /* use only the first entry */ -+ else if (!strcmp(p->last_name, "IdType")) -+ p->id_type = data; -+ else if (!strcmp(p->last_name, "IdUsage")) -+ p->id_usage = data; -+ else if (!strcmp(p->last_name, "IdUuid")) -+ p->id_uuid = data; -+ -+ p->last_name = NULL; -+ } -+ } -+ else if (arg_type == DBUS_TYPE_BOOLEAN) -+ { -+ dbus_bool_t data; -+ if (p->last_name) -+ { -+ p_dbus_message_iter_get_basic(iter, &data); -+ if (!strcmp(p->last_name, "DeviceIsMounted")) -+ p->device_is_mounted = data; -+ else if (!strcmp(p->last_name, "DeviceIsOpticalDisc")) -+ p->device_is_optical_disc = data; -+ else if (!strcmp(p->last_name, "DeviceIsRemovable")) -+ p->device_is_removable = data; -+ -+ p->last_name = NULL; -+ } -+ } -+ -+ p_dbus_message_iter_next(iter); -+ arg_type = p_dbus_message_iter_get_arg_type(iter); -+ } -+ p->depth--; -+ return TRUE; -+} -+ -+/* ########### */ -+ -+static DBusMessage * get_properties_from_path(properties_t * p, DBusConnection *ctx, const char * path) -+{ -+ DBusMessage *request; -+ DBusMessage *reply = NULL; -+ DBusMessageIter iter; -+ DBusError error; -+ -+ TRACE("(%p, %p, %s)\n", p, ctx, path); -+ -+ memset(p, 0, sizeof(properties_t)); -+ request = p_dbus_message_new_method_call(dest_udisks, path, iface_dbus_prop, "GetAll"); -+ if (request) -+ { -+ if (p_dbus_message_append_args(request, DBUS_TYPE_STRING, &dest_udisks_device, DBUS_TYPE_INVALID)) -+ { -+ p_dbus_error_init(&error); -+ if ((reply = p_dbus_connection_send_with_reply_and_block(ctx, request, -1, &error))) -+ { -+ p_dbus_message_iter_init(reply, &iter); -+ get_properties_from_iter(p, &iter); -+ } -+ else -+ WARN("no reply for %s\n", path); -+ -+ p_dbus_error_free(&error); -+ } -+ else -+ WARN("dbus_message_append_args failed for 'GetAll'\n"); -+ -+ p_dbus_message_unref(request); -+ } -+ return reply; -+} -+ -+/* ########### */ -+ -+static int get_drive_type(properties_t * p) -+{ -+ /* examples: optical_cd, optical_cd_rw, optical_dvd_plus_r_dl */ -+ if (p->device_is_optical_disc && p->drive_media && !memcmp(p->drive_media, "optical_", 8)) -+ { -+ if (!memcmp(p->drive_media + 8, "cd", 2)) -+ return DEVICE_CDROM; -+ else -+ return DEVICE_DVD; -+ } -+ else if (p->drive_media_compatibility && !strcmp(p->drive_media_compatibility, "floppy")) -+ return DEVICE_FLOPPY; -+ else if (!p->device_is_removable && p->id_usage && !strcmp(p->id_usage, "filesystem")) -+ return DEVICE_HARDDISK_VOL; -+ -+ return DEVICE_UNKNOWN; -+} -+ -+/* ########### */ -+ -+static void udisks_add_device(DBusConnection *ctx, const char *path) -+{ -+ DBusMessage *reply; -+ properties_t p; -+ GUID guid; -+ GUID *guid_ptr = NULL; -+ -+ TRACE("%s\n", debugstr_a(path)); -+ -+ reply = get_properties_from_path(&p, ctx, path); -+ if (reply) -+ { -+ int drive_type = get_drive_type(&p); -+ -+ TRACE("DeviceFile: %s\n", p.device_file); -+ TRACE("IdUsage: %s\n", p.id_usage); -+ TRACE("IdType: %s\n", p.id_type); -+ TRACE("IdUuid: %s\n", p.id_uuid); -+ TRACE("DeviceIsMounted: %d (%s)\n", p.device_is_mounted, p.device_is_mounted ? "true" : "false"); -+ TRACE("DeviceIsOpticalDisc: %d (%s)\n", p.device_is_optical_disc, p.device_is_optical_disc ? "true" : "false"); -+ TRACE("DeviceIsRemovable: %d (%s)\n", p.device_is_removable, p.device_is_removable ? "true" : "false"); -+ TRACE("DeviceMountPaths: %s\n", p.device_mount_paths); -+ TRACE("DriveMedia: %s\n", p.drive_media); -+ TRACE("DriveMediaCompatibility: %s\n", p.drive_media_compatibility); -+ TRACE("using drive_type: %d\n", drive_type); -+ -+ if (p.device_is_mounted && p.device_mount_paths) -+ { -+ if (p.id_uuid) -+ guid_ptr = parse_uuid(&guid, p.id_uuid); -+ -+ if (p.device_is_removable) -+ add_dos_device(-1, path, p.device_file, p.device_mount_paths, drive_type, guid_ptr); -+ else if (guid_ptr) -+ add_volume(path, p.device_file, p.device_mount_paths, DEVICE_HARDDISK_VOL, guid_ptr); -+ -+ } -+ p_dbus_message_unref(reply); -+ } -+} -+ -+static void udisks_remove_device(DBusConnection *ctx, const char *path) -+{ -+ TRACE("%s\n", debugstr_a(path)); -+ -+ if (remove_dos_device(-1, path)) -+ remove_volume(path); -+} -+ -+static void udisks_change_device(DBusConnection *ctx, const char *path) -+{ -+ DBusMessage *reply; -+ properties_t p; -+ -+ TRACE("%s\n", debugstr_a(path)); -+ -+ reply = get_properties_from_path(&p, ctx, path); -+ if (reply) -+ { -+ int drive_type = get_drive_type(&p); -+ -+ if (p.device_is_mounted && p.device_mount_paths) -+ udisks_add_device(ctx, path); -+ else -+ { -+ TRACE("DeviceFile: %s\n", p.device_file); -+ TRACE("IdUsage: %s\n", p.id_usage); -+ TRACE("IdType: %s\n", p.id_type); -+ TRACE("IdUuid: %s\n", p.id_uuid); -+ TRACE("DeviceIsMounted: %d (%s)\n", p.device_is_mounted, p.device_is_mounted ? "true" : "false"); -+ TRACE("DeviceIsOpticalDisc: %d (%s)\n", p.device_is_optical_disc, p.device_is_optical_disc ? "true" : "false"); -+ TRACE("DeviceIsRemovable: %d (%s)\n", p.device_is_removable, p.device_is_removable ? "true" : "false"); -+ TRACE("DeviceMountPaths: %s\n", p.device_mount_paths); -+ TRACE("DriveMedia: %s\n", p.drive_media); -+ TRACE("DriveMediaCompatibility: %s\n", p.drive_media_compatibility); -+ TRACE("using drive_type: %d\n", drive_type); -+ -+ udisks_remove_device(ctx, path); -+ } -+ p_dbus_message_unref(reply); -+ } -+} -+ -+/* ########### */ -+ -+static void udisks_get_all_devices(DBusConnection *ctx) -+{ -+ DBusMessage *request; -+ DBusMessage *reply; -+ DBusMessageIter iter; -+ DBusMessageIter sub; -+ DBusError error; -+ int arg_type; -+ -+ request = p_dbus_message_new_method_call(dest_udisks, path_udisks, dest_udisks, "EnumerateDevices"); -+ if (request) -+ { -+ p_dbus_error_init(&error); -+ if ((reply = p_dbus_connection_send_with_reply_and_block(ctx, request, -1, &error))) -+ { -+ p_dbus_message_iter_init(reply, &iter); -+ arg_type = p_dbus_message_iter_get_arg_type(&iter); -+ if (arg_type == DBUS_TYPE_ARRAY) -+ { -+ p_dbus_message_iter_recurse(&iter, &sub); -+ while ((arg_type = p_dbus_message_iter_get_arg_type(&sub)) == DBUS_TYPE_OBJECT_PATH) -+ { -+ char * data; -+ p_dbus_message_iter_get_basic(&sub, &data); -+ udisks_add_device(ctx, data); -+ p_dbus_message_iter_next(&sub); -+ } -+ } -+ else -+ WARN("expected ARRAY, got %c\n", arg_type); -+ -+ p_dbus_message_unref(reply); -+ } -+ p_dbus_error_free(&error); -+ p_dbus_message_unref(request); -+ } -+} -+ -+/* ########## */ -+ -+static void udisks_get_version(DBusConnection *ctx) -+{ -+ DBusMessage *request; -+ DBusMessage *reply; -+ DBusMessageIter iter; -+ DBusMessageIter sub; -+ DBusError error; -+ int arg_type; -+ -+ request = p_dbus_message_new_method_call(dest_udisks, path_udisks, iface_dbus_prop, "Get"); -+ if (request) -+ { -+ if (p_dbus_message_append_args(request, DBUS_TYPE_STRING, &dest_udisks, -+ DBUS_TYPE_STRING, &daemonversion, -+ DBUS_TYPE_INVALID)) -+ { -+ p_dbus_error_init(&error); -+ if ((reply = p_dbus_connection_send_with_reply_and_block(ctx, request, -1, &error))) -+ { -+ p_dbus_message_iter_init(reply, &iter); -+ arg_type = p_dbus_message_iter_get_arg_type(&iter); -+ if (arg_type == DBUS_TYPE_VARIANT) -+ { -+ p_dbus_message_iter_recurse(&iter, &sub); -+ arg_type = p_dbus_message_iter_get_arg_type(&sub); -+ if (arg_type == DBUS_TYPE_STRING) -+ { -+ char * data; -+ p_dbus_message_iter_get_basic(&sub, &data); -+ lstrcpynA(udisks_version, data, sizeof(udisks_version) - 1); -+ TRACE("found udisks daemon %s\n", udisks_version); -+ } -+ else -+ WARN("expected STRING, got %c\n", arg_type); -+ -+ } -+ else -+ WARN("expected VARIANT, got %c\n", arg_type); -+ -+ p_dbus_message_unref(reply); -+ } -+ p_dbus_error_free(&error); -+ } -+ else -+ WARN("dbus_message_append_args failed\n"); -+ -+ p_dbus_message_unref(request); -+ } -+ return; -+ -+} -+ -+/* ##### */ -+ -+static DWORD WINAPI udisks_thread( void *arg ) -+{ -+ DBusConnection *ctx; -+ DBusMessage *msg; -+ DBusMessageIter iter; -+ DBusError error; -+ const char *member; -+ int arg_type; -+ char *data; -+ -+ p_dbus_error_init(&error); -+ ctx = p_dbus_bus_get(DBUS_BUS_SYSTEM, &error); -+ -+ if (!ctx) -+ { -+ SetEvent(dbus_present); /* wakeup hal support */ -+ WARN("failed to get system dbus connection: %s\n", error.message); -+ p_dbus_error_free(&error); -+ return 1; -+ } -+ -+ p_dbus_bus_add_match(ctx, my_match_rule, &error); -+ if (p_dbus_error_is_set(&error)) -+ { -+ SetEvent(dbus_present); /* wakeup hal support */ -+ WARN("add dbus filter failed: %s\n", error.message); -+ p_dbus_error_free(&error); -+ p_dbus_connection_unref(ctx); -+ return 1; -+ } -+ -+ udisks_get_version(ctx); -+ SetEvent(dbus_present); /* wakeup hal support */ -+ -+ if (!*udisks_version) -+ { -+ TRACE("udisks service not available\n"); -+ p_dbus_bus_remove_match(ctx, my_match_rule, NULL); -+ p_dbus_error_free(&error); -+ p_dbus_connection_unref(ctx); -+ return 1; -+ } -+ -+ __TRY -+ { -+ /* retrieve all existing devices */ -+ udisks_get_all_devices(ctx); -+ -+ while (p_dbus_connection_read_write_dispatch(ctx, -1 )) -+ { -+ while ((msg = p_dbus_connection_pop_message(ctx))) -+ { -+ member = p_dbus_message_get_member(msg); -+ p_dbus_message_iter_init(msg, &iter); -+ arg_type = p_dbus_message_iter_get_arg_type(&iter); -+ -+ if (arg_type == DBUS_TYPE_OBJECT_PATH) -+ p_dbus_message_iter_get_basic(&iter, &data); -+ -+ if (!lstrcmpA(member, "DeviceChanged")) -+ udisks_change_device(ctx, data); -+ else if (!lstrcmpA(member, "DeviceAdded")) -+ udisks_add_device(ctx, data); -+ else if (!lstrcmpA(member, "DeviceRemoved")) -+ udisks_remove_device(ctx, data); -+ else if (lstrcmpA(member, "DeviceJobChanged")) -+ WARN("got signal for %s\n", member); -+ -+ p_dbus_message_unref(msg); -+ } -+ } -+ } -+ __EXCEPT(assert_fault) -+ { -+ WARN("dbus assertion failure, disabling UDisks support\n"); -+ return 1; -+ } -+ __ENDTRY; -+ -+ p_dbus_bus_remove_match(ctx, my_match_rule, NULL); -+ p_dbus_error_free(&error); -+ p_dbus_connection_unref(ctx); -+ return 0; -+} -+ -+void initialize_udisks(void) -+{ -+ HANDLE handle = NULL; -+ -+ dbus_present = NULL; -+ *udisks_version = 0; -+ if (!load_dbus_functions()) return; -+ -+ /* delay hal support, start udisks thread */ -+ if (!(dbus_present = CreateEventW(NULL, TRUE, FALSE, NULL)) || -+ !(handle = CreateThread(NULL, 0, udisks_thread, NULL, 0, NULL))) -+ { -+ /* something failed: wakeup hal now */ -+ if (dbus_present) SetEvent(dbus_present); -+ return; -+ } -+ CloseHandle(handle); -+} -+ -+#else /* SONAME_LIBDBUS_1 */ -+ -+void initialize_udisks(void) -+{ -+ TRACE("Skipping, DBUS support not compiled in\n"); -+} -+ -+#endif /* SONAME_LIBDBUS_1 */ --- -1.7.5.4 - diff --git a/wine.spec b/wine.spec index 5432bdb..33e24a8 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %global no64bit 0 Name: wine -Version: 1.3.25 -Release: 1%{?dist} +Version: 1.3.26 +Release: 2%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -37,20 +37,11 @@ Source300: wine-mime-msi.desktop Patch200: wine-imagemagick-6.5.patch -# pull pulse parts from Maarten Lankhorst multimedia repository -# http://repo.or.cz/w/wine/multimedia.git -Patch400: wine-pulseaudio-configure.patch -Source401: dlls_winepulse.drv_Makefile.in -Source402: dlls_winepulse.drv_mmdevdrv.c -Source403: dlls_winepulse.drv_winepulse.drv - # add udisks support # https://bugzilla.redhat.com/show_bug.cgi?id=712755 # http://bugs.winehq.org/show_bug.cgi?id=21713 -# http://source.winehq.org/patches/data/76788 -# http://source.winehq.org/patches/data/76787 +# http://source.winehq.org/patches/data/77534 Patch410: wine-udisks1.patch -Patch411: wine-udisks2.patch # smooth tahoma (#693180) # disable embedded bitmaps @@ -412,11 +403,16 @@ with the Wine Windows(TM) emulation libraries. Summary: Pulseaudio support for wine Group: System Environment/Libraries Requires: wine-core = %{version}-%{release} +%ifarch %{ix86} +Requires: alsa-plugins-pulseaudio(x86-32) +%endif +%ifarch x86_64 +Requires: alsa-plugins-pulseaudio(x86-64) +%endif %description pulseaudio -This package adds a native pulseaudio driver for wine. This is not an official -wine audio driver. Please do not report bugs regarding this driver at -winehq.org. +This package pulse in the alsa pulseaudio backend to allow for pulse playback +over alsa. %package alsa Summary: Alsa support for wine @@ -439,17 +435,9 @@ This package adds an openal driver for wine. %prep %setup -q -%patch400 -p1 -b .winepulse-configure -mkdir -p dlls/winepulse.drv -cp -p %{SOURCE401} dlls/winepulse.drv/Makefile.in -cp -p %{SOURCE402} dlls/winepulse.drv/mmdevdrv.c -cp -p %{SOURCE403} dlls/winepulse.drv/winepulse.drv.spec - %patch200 -b .imagemagick %patch410 -p1 -b .mountmgr -%patch411 -p1 -b .mountmgr - autoreconf @@ -620,8 +608,8 @@ desktop-file-install \ --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE300} -# deploy pulseaudio readme cp %{SOURCE3} README-FEDORA + cp %{SOURCE502} README-tahoma mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d/ @@ -738,9 +726,6 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %post capi -p /sbin/ldconfig %postun capi -p /sbin/ldconfig -%post pulseaudio -p /sbin/ldconfig -%postun pulseaudio -p /sbin/ldconfig - %post alsa -p /sbin/ldconfig %postun alsa -p /sbin/ldconfig @@ -936,6 +921,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/iccvid.dll.so %{_libdir}/wine/icinfo.exe.so %{_libdir}/wine/icmp.dll.so +%{_libdir}/wine/ieframe.dll.so %{_libdir}/wine/imaadp32.acm.so %{_libdir}/wine/imagehlp.dll.so %{_libdir}/wine/imm32.dll.so @@ -1134,6 +1120,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/wlanapi.dll.so %{_libdir}/wine/wnaspi32.dll.so %{_libdir}/wine/ws2_32.dll.so +%{_libdir}/wine/wshom.ocx.so %{_libdir}/wine/wsock32.dll.so %{_libdir}/wine/wtsapi32.dll.so %{_libdir}/wine/wuapi.dll.so @@ -1383,7 +1370,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %files pulseaudio %defattr(-,root,root,-) -%{_libdir}/wine/winepulse.drv.so +# empty meta package for deps %files alsa %defattr(-,root,root,-) @@ -1396,6 +1383,16 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Mon Aug 22 2011 Andreas Bierfert +- 1.3.26-2 +- drop pulse patches +- make pulseaudio package meta and require alsa pa plugin +- update udisks patch + +* Sun Aug 07 2011 Andreas Bierfert +- 1.3.26-1 +- version upgrade + * Fri Jul 22 2011 Andreas Bierfert - 1.3.25-1 - version upgrade From 6b2ac760fc26a04802109e36f13376a6be0aa6a3 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Tue, 23 Aug 2011 20:57:01 +0200 Subject: [PATCH 204/715] 1.3.26-3 drop pulse configure option fix f16 build (dbus/hal configure options) --- wine.spec | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/wine.spec b/wine.spec index 33e24a8..5e0a000 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %global no64bit 0 Name: wine Version: 1.3.26 -Release: 2%{?dist} +Release: 3%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -451,7 +451,7 @@ export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno %configure \ --sysconfdir=%{_sysconfdir}/wine \ --x-includes=%{_includedir} --x-libraries=%{_libdir} \ - --with-pulse \ + --without-hal --with-dbus \ --with-x \ --without-xinput2 \ %ifarch x86_64 @@ -1383,6 +1383,11 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Tue Aug 23 2011 Andreas Bierfert +- 1.3.26-3 +- drop pulse configure option +- fix f16 build (dbus/hal configure options) + * Mon Aug 22 2011 Andreas Bierfert - 1.3.26-2 - drop pulse patches From 09657f93a8b1b4a82249d9c9d5ca4b083057c272 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Tue, 30 Aug 2011 17:42:27 +0200 Subject: [PATCH 205/715] 1.3.27-1 version upgrade fix epel build (rhbz#733802) --- .gitignore | 2 ++ sources | 4 ++-- wine.spec | 13 ++++++++----- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 42cb21b..81b5710 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,5 @@ /wine-1.3.25.tar.bz2.sign /wine-1.3.26.tar.bz2 /wine-1.3.26.tar.bz2.sign +/wine-1.3.27.tar.bz2 +/wine-1.3.27.tar.bz2.sign diff --git a/sources b/sources index 9e184fa..8582850 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -92ea09eb11aec92672671853ce9b792b wine-1.3.26.tar.bz2 -fceac48a09b2dc176c7ef9b22dc1b47a wine-1.3.26.tar.bz2.sign +d717ecec6959d8cab194c61c29c3dcdf wine-1.3.27.tar.bz2 +4dcaba398a449b27568ae84f08c9a7a6 wine-1.3.27.tar.bz2.sign diff --git a/wine.spec b/wine.spec index 5e0a000..9ee8a16 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %global no64bit 0 Name: wine -Version: 1.3.26 -Release: 3%{?dist} +Version: 1.3.27 +Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -114,9 +114,6 @@ BuildRequires: chrpath %if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 BuildRequires: openal-soft-devel -%endif - -%if 0%{?fedora} >= 10 BuildRequires: icoutils %endif @@ -1030,6 +1027,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/pdh.dll.so %{_libdir}/wine/pidgen.dll.so %{_libdir}/wine/powrprof.dll.so +%{_libdir}/wine/presentationfontcache.exe.so %{_libdir}/wine/printui.dll.so %{_libdir}/wine/propsys.dll.so %{_libdir}/wine/psapi.dll.so @@ -1383,6 +1381,11 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Mon Aug 29 2011 Andreas Bierfert +- 1.3.27-1 +- version upgrade +- fix epel build (rhbz#733802) + * Tue Aug 23 2011 Andreas Bierfert - 1.3.26-3 - drop pulse configure option From 0a90623a7ab1a18d174f27dd06a10d768803ce1a Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 11 Sep 2011 19:43:25 +0200 Subject: [PATCH 206/715] 1.3.28-1 version upgrade require -alsa from -pulseaudio package for new sound api --- .gitignore | 2 ++ sources | 4 ++-- wine.spec | 12 +++++++++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 81b5710..bb4bd12 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,5 @@ /wine-1.3.26.tar.bz2.sign /wine-1.3.27.tar.bz2 /wine-1.3.27.tar.bz2.sign +/wine-1.3.28.tar.bz2 +/wine-1.3.28.tar.bz2.sign diff --git a/sources b/sources index 8582850..d0a349e 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -d717ecec6959d8cab194c61c29c3dcdf wine-1.3.27.tar.bz2 -4dcaba398a449b27568ae84f08c9a7a6 wine-1.3.27.tar.bz2.sign +70574d609161cec8523804cd9364bcd2 wine-1.3.28.tar.bz2 +da9a073fc0d04bbbc4c4b26d6a28e29e wine-1.3.28.tar.bz2.sign diff --git a/wine.spec b/wine.spec index 9ee8a16..9a84b1c 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ %global no64bit 0 Name: wine -Version: 1.3.27 +Version: 1.3.28 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -401,9 +401,11 @@ Summary: Pulseaudio support for wine Group: System Environment/Libraries Requires: wine-core = %{version}-%{release} %ifarch %{ix86} +Requires: wine-alsa = %{version}-%{release} Requires: alsa-plugins-pulseaudio(x86-32) %endif %ifarch x86_64 +Requires: wine-alsa = %{version}-%{release} Requires: alsa-plugins-pulseaudio(x86-64) %endif @@ -805,6 +807,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/oleview.exe.so %{_libdir}/wine/ping.exe.so %{_libdir}/wine/reg.exe.so +%{_libdir}/wine/regasm.exe.so %{_libdir}/wine/regedit.exe.so %{_libdir}/wine/regsvcs.exe.so %{_libdir}/wine/regsvr32.exe.so @@ -815,6 +818,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/services.exe.so %{_libdir}/wine/start.exe.so %{_libdir}/wine/termsv.exe.so +%{_libdir}/wine/view.exe.so %{_libdir}/wine/winebrowser.exe.so %{_libdir}/wine/wineconsole.exe.so %{_libdir}/wine/winemenubuilder.exe.so @@ -1139,6 +1143,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/xinput1_3.dll.so %{_libdir}/wine/xinput9_1_0.dll.so %{_libdir}/wine/xmllite.dll.so +%{_libdir}/wine/xolehlp.dll.so # 16 bit and other non 64bit stuff %ifnarch x86_64 @@ -1381,6 +1386,11 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sun Sep 11 2011 Andreas Bierfert +- 1.3.28-1 +- version upgrade +- require -alsa from -pulseaudio package for new sound api + * Mon Aug 29 2011 Andreas Bierfert - 1.3.27-1 - version upgrade From bd9844c16c19ac428a3ddaf51599896270bb0c30 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 24 Sep 2011 19:44:09 +0200 Subject: [PATCH 207/715] 1.3.29-1 version upgrade --- .gitignore | 31 ++----------------------------- sources | 4 ++-- wine.spec | 6 +++++- 3 files changed, 9 insertions(+), 32 deletions(-) diff --git a/.gitignore b/.gitignore index bb4bd12..5a2f713 100644 --- a/.gitignore +++ b/.gitignore @@ -1,29 +1,2 @@ -/wine-1.3.5.tar.bz2 -/wine-1.3.6.tar.bz2 -/wine-1.3.7.tar.bz2 -/wine-1.3.8.tar.bz2 -/wine-1.3.9.tar.bz2 -/wine-1.3.10.tar.bz2 -/wine-1.3.11.tar.bz2 -/wine-1.3.12.tar.bz2 -/wine-1.3.13.tar.bz2 -/wine-1.3.14.tar.bz2 -/wine-1.3.15.tar.bz2 -/wine-1.3.16.tar.bz2 -/wine-1.3.17.tar.bz2 -/wine-1.3.18.tar.bz2 -/wine-1.3.19.tar.bz2 -/wine-1.3.20.tar.bz2 -/wine-1.3.21.tar.bz2 -/wine-1.3.22.tar.bz2 -/wine-1.3.23.tar.bz2 -/wine-1.3.24.tar.bz2 -/wine-1.3.24.tar.bz2.sign -/wine-1.3.25.tar.bz2 -/wine-1.3.25.tar.bz2.sign -/wine-1.3.26.tar.bz2 -/wine-1.3.26.tar.bz2.sign -/wine-1.3.27.tar.bz2 -/wine-1.3.27.tar.bz2.sign -/wine-1.3.28.tar.bz2 -/wine-1.3.28.tar.bz2.sign +/wine-1.3.29.tar.bz2 +/wine-1.3.29.tar.bz2.sign diff --git a/sources b/sources index d0a349e..98c805a 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -70574d609161cec8523804cd9364bcd2 wine-1.3.28.tar.bz2 -da9a073fc0d04bbbc4c4b26d6a28e29e wine-1.3.28.tar.bz2.sign +6c4159ef53c81faf5e52f29211ac50de wine-1.3.29.tar.bz2 +c2174dff877f5d7c0186b77062570e79 wine-1.3.29.tar.bz2.sign diff --git a/wine.spec b/wine.spec index 9a84b1c..78a5b17 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ %global no64bit 0 Name: wine -Version: 1.3.28 +Version: 1.3.29 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -1386,6 +1386,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sat Sep 24 2011 Andreas Bierfert +- 1.3.29-1 +- version upgrade + * Sun Sep 11 2011 Andreas Bierfert - 1.3.28-1 - version upgrade From 1dd2f868718487b26c434bba9b4063ee9fe47a0f Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 10 Oct 2011 22:36:12 +0200 Subject: [PATCH 208/715] 1.3.30-1 version upgrade --- .gitignore | 2 ++ sources | 4 ++-- wine.spec | 6 +++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 5a2f713..f983822 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ /wine-1.3.29.tar.bz2 /wine-1.3.29.tar.bz2.sign +/wine-1.3.30.tar.bz2 +/wine-1.3.30.tar.bz2.sign diff --git a/sources b/sources index 98c805a..cdcab42 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -6c4159ef53c81faf5e52f29211ac50de wine-1.3.29.tar.bz2 -c2174dff877f5d7c0186b77062570e79 wine-1.3.29.tar.bz2.sign +faec785343aa228d743d6913f47afc28 wine-1.3.30.tar.bz2 +88af36ada0b9629e991e7e7e17d7a554 wine-1.3.30.tar.bz2.sign diff --git a/wine.spec b/wine.spec index 78a5b17..f7a4be4 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ %global no64bit 0 Name: wine -Version: 1.3.29 +Version: 1.3.30 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -1386,6 +1386,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Mon Oct 10 2011 Andreas Bierfert +- 1.3.30-1 +- version upgrade + * Sat Sep 24 2011 Andreas Bierfert - 1.3.29-1 - version upgrade From ed520bf3dc61a1ab909db7f8982c2d730be5ef9b Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 23 Oct 2011 22:37:51 +0200 Subject: [PATCH 209/715] 1.3.31-1 version upgrade --- .gitignore | 2 ++ sources | 4 ++-- wine.spec | 7 ++++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index f983822..6d24287 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ /wine-1.3.29.tar.bz2.sign /wine-1.3.30.tar.bz2 /wine-1.3.30.tar.bz2.sign +/wine-1.3.31.tar.bz2 +/wine-1.3.31.tar.bz2.sign diff --git a/sources b/sources index cdcab42..cb31f2c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -faec785343aa228d743d6913f47afc28 wine-1.3.30.tar.bz2 -88af36ada0b9629e991e7e7e17d7a554 wine-1.3.30.tar.bz2.sign +9c575dbbb308d269ad76e1c6f5a0866d wine-1.3.31.tar.bz2 +2c5a3282026ae7d03770a148cfc73c20 wine-1.3.31.tar.bz2.sign diff --git a/wine.spec b/wine.spec index f7a4be4..edc30c5 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ %global no64bit 0 Name: wine -Version: 1.3.30 +Version: 1.3.31 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -952,6 +952,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/mciwave.dll.so %{_libdir}/wine/midimap.dll.so %{_libdir}/wine/mlang.dll.so +%{_libdir}/wine/mmcndmgr.dll.so %{_libdir}/wine/mmdevapi.dll.so %{_libdir}/wine/mofcomp.exe.so %{_libdir}/wine/mountmgr.sys.so @@ -1386,6 +1387,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sun Oct 23 2011 Andreas Bierfert +- 1.3.31-1 +- version upgrade + * Mon Oct 10 2011 Andreas Bierfert - 1.3.30-1 - version upgrade From 0e75074e58723edaf0ebad3516872ada0428f45d Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Wed, 26 Oct 2011 16:21:16 +0200 Subject: [PATCH 210/715] 1.3.31-1 version upgrade --- wine.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index edc30c5..1982f49 100644 --- a/wine.spec +++ b/wine.spec @@ -436,7 +436,7 @@ This package adds an openal driver for wine. %patch200 -b .imagemagick -%patch410 -p1 -b .mountmgr +#%patch410 -p1 -b .mountmgr autoreconf From 51ebb3bb52b67ea0820a3bea39907518ddd03e99 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 6 Nov 2011 22:32:02 +0100 Subject: [PATCH 211/715] 1.3.32-1 version upgrade (rhbz#745434) --- .gitignore | 2 ++ sources | 4 ++-- wine.spec | 18 ++++++++++++++---- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 6d24287..e405ca4 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,5 @@ /wine-1.3.30.tar.bz2.sign /wine-1.3.31.tar.bz2 /wine-1.3.31.tar.bz2.sign +/wine-1.3.32.tar.bz2 +/wine-1.3.32.tar.bz2.sign diff --git a/sources b/sources index cb31f2c..429e221 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -9c575dbbb308d269ad76e1c6f5a0866d wine-1.3.31.tar.bz2 -2c5a3282026ae7d03770a148cfc73c20 wine-1.3.31.tar.bz2.sign +2f8655434711b0ef11247f1bf7c28d13 wine-1.3.32.tar.bz2 +8e3f2eb812fc9e8299732f8e9a312251 wine-1.3.32.tar.bz2.sign diff --git a/wine.spec b/wine.spec index 1982f49..e34bc42 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ %global no64bit 0 Name: wine -Version: 1.3.31 +Version: 1.3.32 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -401,11 +401,11 @@ Summary: Pulseaudio support for wine Group: System Environment/Libraries Requires: wine-core = %{version}-%{release} %ifarch %{ix86} -Requires: wine-alsa = %{version}-%{release} +Requires: wine-alsa(x86-32) = %{version}-%{release} Requires: alsa-plugins-pulseaudio(x86-32) %endif %ifarch x86_64 -Requires: wine-alsa = %{version}-%{release} +Requires: wine-alsa(x86-64) = %{version}-%{release} Requires: alsa-plugins-pulseaudio(x86-64) %endif @@ -459,7 +459,8 @@ export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno --enable-maintainer-mode \ --disable-tests -%{__make} TARGETFLAGS="" %{?_smp_mflags} +# -32 disable smp flags again +%{__make} TARGETFLAGS="" #%{?_smp_mflags} %install rm -rf %{buildroot} @@ -834,6 +835,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/advapi32.dll.so %{_libdir}/wine/advpack.dll.so %{_libdir}/wine/amstream.dll.so +%{_libdir}/wine/apphelp.dll.so %{_libdir}/wine/appwiz.cpl.so %{_libdir}/wine/atl.dll.so %{_libdir}/wine/authz.dll.so @@ -1387,6 +1389,14 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sat Nov 05 2011 Andreas Bierfert +- 1.3.32-1 +- version upgrade (rhbz#745434) + +* Fri Nov 04 2011 Andreas Bierfert +- 1.3.31-2 +- pull in correct wine-alsa arch in the pa meta package (rhbz#737431) + * Sun Oct 23 2011 Andreas Bierfert - 1.3.31-1 - version upgrade From 7678ade2901fb4a658f2d36ae1e8feb9884a78c8 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 20 Nov 2011 19:47:28 +0100 Subject: [PATCH 212/715] 1.3.33-1 version upgrade(rhbz#755192) --- .gitignore | 2 ++ sources | 4 ++-- wine.spec | 9 +++++++-- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index e405ca4..bb8747a 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,5 @@ /wine-1.3.31.tar.bz2.sign /wine-1.3.32.tar.bz2 /wine-1.3.32.tar.bz2.sign +/wine-1.3.33.tar.bz2 +/wine-1.3.33.tar.bz2.sign diff --git a/sources b/sources index 429e221..0c4bff4 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -2f8655434711b0ef11247f1bf7c28d13 wine-1.3.32.tar.bz2 -8e3f2eb812fc9e8299732f8e9a312251 wine-1.3.32.tar.bz2.sign +24807ef7d9a5e8c2635541880672db7b wine-1.3.33.tar.bz2 +71fb807ea162b388a6283e2243df3f65 wine-1.3.33.tar.bz2.sign diff --git a/wine.spec b/wine.spec index e34bc42..a637dbc 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ %global no64bit 0 Name: wine -Version: 1.3.32 +Version: 1.3.33 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -460,7 +460,7 @@ export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno --disable-tests # -32 disable smp flags again -%{__make} TARGETFLAGS="" #%{?_smp_mflags} +%{__make} TARGETFLAGS="" %{?_smp_mflags} %install rm -rf %{buildroot} @@ -1060,6 +1060,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/sc.exe.so %{_libdir}/wine/scarddlg.dll.so %{_libdir}/wine/sccbase.dll.so +%{_libdir}/wine/scrrun.dll.so %{_libdir}/wine/schannel.dll.so %{_libdir}/wine/secur32.dll.so %{_libdir}/wine/sensapi.dll.so @@ -1389,6 +1390,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sun Nov 20 2011 Andreas Bierfert +- 1.3.33-1 +- version upgrade(rhbz#755192) + * Sat Nov 05 2011 Andreas Bierfert - 1.3.32-1 - version upgrade (rhbz#745434) From 3d97533b9ebf7cd02462566845b752cdcb4a5530 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Thu, 8 Dec 2011 21:02:16 +0100 Subject: [PATCH 213/715] 1.3.34-1 version upgrade --- .gitignore | 2 ++ sources | 4 ++-- wine.spec | 7 +++++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index bb8747a..5214f13 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,5 @@ /wine-1.3.32.tar.bz2.sign /wine-1.3.33.tar.bz2 /wine-1.3.33.tar.bz2.sign +/wine-1.3.34.tar.bz2 +/wine-1.3.34.tar.bz2.sign diff --git a/sources b/sources index 0c4bff4..af48012 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -24807ef7d9a5e8c2635541880672db7b wine-1.3.33.tar.bz2 -71fb807ea162b388a6283e2243df3f65 wine-1.3.33.tar.bz2.sign +ae7be1767e95e27360fc86f573649c19 wine-1.3.34.tar.bz2 +a828c17b3976d0c3081435ca7a167c86 wine-1.3.34.tar.bz2.sign diff --git a/wine.spec b/wine.spec index a637dbc..98b2492 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ %global no64bit 0 Name: wine -Version: 1.3.33 +Version: 1.3.34 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -459,7 +459,6 @@ export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno --enable-maintainer-mode \ --disable-tests -# -32 disable smp flags again %{__make} TARGETFLAGS="" %{?_smp_mflags} %install @@ -1390,6 +1389,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Thu Dec 08 2011 Andreas Bierfert +- 1.3.34-1 +- version upgrade + * Sun Nov 20 2011 Andreas Bierfert - 1.3.33-1 - version upgrade(rhbz#755192) From c6428dd7263d2abcc36949621c17efe7b5bef0ab Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 19 Dec 2011 21:48:09 +0100 Subject: [PATCH 214/715] 1.3.35-1 version upgrade --- .gitignore | 2 ++ sources | 4 ++-- wine.spec | 6 +++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 5214f13..81925c4 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,5 @@ /wine-1.3.33.tar.bz2.sign /wine-1.3.34.tar.bz2 /wine-1.3.34.tar.bz2.sign +/wine-1.3.35.tar.bz2 +/wine-1.3.35.tar.bz2.sign diff --git a/sources b/sources index af48012..fb675f0 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -ae7be1767e95e27360fc86f573649c19 wine-1.3.34.tar.bz2 -a828c17b3976d0c3081435ca7a167c86 wine-1.3.34.tar.bz2.sign +5833787fcd7fee5a2299fade10a2760d wine-1.3.35.tar.bz2 +8cff2dd91e4d6451b1d8b7420aef8e19 wine-1.3.35.tar.bz2.sign diff --git a/wine.spec b/wine.spec index 98b2492..01ec03a 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ %global no64bit 0 Name: wine -Version: 1.3.34 +Version: 1.3.35 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -1389,6 +1389,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Mon Dec 19 2011 Andreas Bierfert +- 1.3.35-1 +- version upgrade + * Thu Dec 08 2011 Andreas Bierfert - 1.3.34-1 - version upgrade From d381521eea6f5a796677d33c420564eb145e0961 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 1 Jan 2012 01:59:31 +0100 Subject: [PATCH 215/715] 1.3.36-1 version upgrade --- .gitignore | 2 ++ sources | 4 ++-- wine.spec | 8 +++++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 81925c4..999be66 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,5 @@ /wine-1.3.34.tar.bz2.sign /wine-1.3.35.tar.bz2 /wine-1.3.35.tar.bz2.sign +/wine-1.3.36.tar.bz2 +/wine-1.3.36.tar.bz2.sign diff --git a/sources b/sources index fb675f0..e31e43a 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -5833787fcd7fee5a2299fade10a2760d wine-1.3.35.tar.bz2 -8cff2dd91e4d6451b1d8b7420aef8e19 wine-1.3.35.tar.bz2.sign +51e20231aa72a7b9db89aefdae8e92e3 wine-1.3.36.tar.bz2 +1890221ac30affc8fc151884ee3ed3b0 wine-1.3.36.tar.bz2.sign diff --git a/wine.spec b/wine.spec index 01ec03a..46c31e8 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ %global no64bit 0 Name: wine -Version: 1.3.35 +Version: 1.3.36 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -794,6 +794,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/attrib.exe.so %{_libdir}/wine/aspnet_regiis.exe.so %{_libdir}/wine/cacls.exe.so +%{_libdir}/wine/cscript.exe.so %{_libdir}/wine/expand.exe.so %{_libdir}/wine/extrac32.exe.so %{_libdir}/wine/hostname.exe.so @@ -875,6 +876,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/ddraw.dll.so %{_libdir}/wine/ddrawex.dll.so %{_libdir}/wine/devenum.dll.so +%{_libdir}/wine/dhcpcsvc.dll.so %{_libdir}/wine/dinput.dll.so %{_libdir}/wine/dinput8.dll.so %{_libdir}/wine/dispex.dll.so @@ -1389,6 +1391,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sat Dec 31 2011 Andreas Bierfert +- 1.3.36-1 +- version upgrade + * Mon Dec 19 2011 Andreas Bierfert - 1.3.35-1 - version upgrade From 994061d9db667eb2894f4b7526a8b7d8b9b3e867 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Sat, 14 Jan 2012 02:20:23 -0600 Subject: [PATCH 216/715] - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild --- wine.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 46c31e8..b285e52 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %global no64bit 0 Name: wine Version: 1.3.36 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -1391,6 +1391,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sat Jan 14 2012 Fedora Release Engineering - 1.3.36-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + * Sat Dec 31 2011 Andreas Bierfert - 1.3.36-1 - version upgrade From d7bfabcfc4d3531f34b2d91a9d231631c7a14353 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 14 Jan 2012 20:42:52 +0100 Subject: [PATCH 217/715] 1.3.37-1 version upgrade drop obsoleted patches --- .gitignore | 2 + sources | 4 +- wine-imagemagick-6.5.patch | 40 --- wine-udisks1.patch | 697 ------------------------------------- wine.spec | 26 +- 5 files changed, 15 insertions(+), 754 deletions(-) delete mode 100644 wine-imagemagick-6.5.patch delete mode 100644 wine-udisks1.patch diff --git a/.gitignore b/.gitignore index 999be66..8d9e71c 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,5 @@ /wine-1.3.35.tar.bz2.sign /wine-1.3.36.tar.bz2 /wine-1.3.36.tar.bz2.sign +/wine-1.3.37.tar.bz2 +/wine-1.3.37.tar.bz2.sign diff --git a/sources b/sources index e31e43a..7cfc721 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -51e20231aa72a7b9db89aefdae8e92e3 wine-1.3.36.tar.bz2 -1890221ac30affc8fc151884ee3ed3b0 wine-1.3.36.tar.bz2.sign +4bf25be22c130765283d9953d03b65c4 wine-1.3.37.tar.bz2 +301c7ed5210002c0dcd50a69253c0107 wine-1.3.37.tar.bz2.sign diff --git a/wine-imagemagick-6.5.patch b/wine-imagemagick-6.5.patch deleted file mode 100644 index 4d3826a..0000000 --- a/wine-imagemagick-6.5.patch +++ /dev/null @@ -1,40 +0,0 @@ ---- configure.orig 2010-10-04 21:40:28.000000000 +0200 -+++ configure 2010-10-04 21:41:40.000000000 +0200 -@@ -5135,7 +5135,7 @@ - then - convert_version_major=`expr "$convert_version" : '.* \([0-9]*\)\.[0-9]*'` - convert_version_minor=`expr "$convert_version" : '.* [0-9]*\.\([0-9]*\)'` -- if test "$convert_version_major" -eq 6 -a "$convert_version_minor" -lt 6 -+ if test "$convert_version_major" -eq 6 -a "$convert_version_minor" -lt 5 - then - CONVERT=false - fi -@@ -5144,7 +5144,7 @@ - then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no ($convert_version_major.$convert_version_minor)" >&5 - $as_echo "no ($convert_version_major.$convert_version_minor)" >&6; } -- as_fn_error $? "You need imagemagick version 6.6 or newer to rebuild icons in maintainer mode." "$LINENO" 5 -+ as_fn_error $? "You need imagemagick version 6.5 or newer to rebuild icons in maintainer mode." "$LINENO" 5 - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes ($convert_version_major.$convert_version_minor)" >&5 - $as_echo "yes ($convert_version_major.$convert_version_minor)" >&6; } ---- configure.ac.orig 2010-10-04 21:42:45.000000000 +0200 -+++ configure.ac 2010-10-04 21:43:18.000000000 +0200 -@@ -309,7 +309,7 @@ - then - convert_version_major=`expr "$convert_version" : '.* \([[0-9]]*\)\.[[0-9]]*'` - convert_version_minor=`expr "$convert_version" : '.* [[0-9]]*\.\([[0-9]]*\)'` -- if test "$convert_version_major" -eq 6 -a "$convert_version_minor" -lt 6 -+ if test "$convert_version_major" -eq 6 -a "$convert_version_minor" -lt 5 - then - CONVERT=false - fi -@@ -317,7 +317,7 @@ - if test "$CONVERT" = false - then - AC_MSG_RESULT([no ($convert_version_major.$convert_version_minor)]) -- AC_MSG_ERROR([You need imagemagick version 6.6 or newer to rebuild icons in maintainer mode.]) -+ AC_MSG_ERROR([You need imagemagick version 6.5 or newer to rebuild icons in maintainer mode.]) - else - AC_MSG_RESULT([yes ($convert_version_major.$convert_version_minor)]) - fi diff --git a/wine-udisks1.patch b/wine-udisks1.patch deleted file mode 100644 index f3213ff..0000000 --- a/wine-udisks1.patch +++ /dev/null @@ -1,697 +0,0 @@ -From: Detlef Riekenberg -Subject: [PATCH] mountmgr: Support the dbus service udisks for dynamic devices :-) [try 5] -Message-Id: <1313451410-25324-1-git-send-email-wine.dev@web.de> -Date: Tue, 16 Aug 2011 01:36:50 +0200 - -This Patch allow the libhal requirement on linux to die. - -Recent distributions depend on udisks, so the libhal development package -should be uninstalled or disabled when building Wine (--without-hal). - -libhal support is still present for old OS without udisks support. - -The logic to add/remove the devices/volumes is the same as present in -our libhal support. - -autoheader/autoconf are needed before compilation - -try 5 -As requested by julliard, not moving around the parse_uuid helper and -no sync between hal support and udisks support. - -try 4 -sync to current git (wineesd was removed) - -try 3: -changes for configure.ac where missing in try 2 - -try 2: -remove a trailing space in the code an a trailing " \" in Makefile.in - --- -By by ... Detlef ---- - configure.ac | 20 ++- - dlls/mountmgr.sys/Makefile.in | 5 +- - dlls/mountmgr.sys/mountmgr.c | 2 + - dlls/mountmgr.sys/mountmgr.h | 1 + - dlls/mountmgr.sys/udisks.c | 556 +++++++++++++++++++++++++++++++++++++++++ - 5 files changed, 581 insertions(+), 3 deletions(-) - create mode 100644 dlls/mountmgr.sys/udisks.c - -diff --git a/configure.ac b/configure.ac -index e6bbb2a..09eb1c6 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -42,6 +42,7 @@ AC_ARG_WITH(coreaudio, AS_HELP_STRING([--without-coreaudio],[do not use the Core - AC_ARG_WITH(cups, AS_HELP_STRING([--without-cups],[do not use CUPS])) - AC_ARG_WITH(curses, AS_HELP_STRING([--without-curses],[do not use (n)curses]), - [if test "x$withval" = "xno"; then ac_cv_header_ncurses_h=no; ac_cv_header_curses_h=no; fi]) -+AC_ARG_WITH(dbus, AS_HELP_STRING([--without-dbus],[do not use dbus (dynamic device support)])) - AC_ARG_WITH(fontconfig,AS_HELP_STRING([--without-fontconfig],[do not use fontconfig]), - [if test "x$withval" = "xno"; then ac_cv_header_fontconfig_fontconfig_h=no; fi]) - AC_ARG_WITH(freetype, AS_HELP_STRING([--without-freetype],[do not use the FreeType library])) -@@ -1201,6 +1202,23 @@ fi - WINE_WARNING_WITH(xslt,[test "x$ac_cv_lib_soname_xslt" = "x"], - [libxslt ${notice_platform}development files not found, xslt won't be supported.]) - -+dnl **** Check for libdbus **** -+AC_SUBST(DBUSINCL,"") -+if test "x$with_dbus" != "xno" -+then -+ ac_save_CPPFLAGS="$CPPFLAGS" -+ if test "$PKG_CONFIG" != "false" -+ then -+ ac_dbus_libs="`$PKG_CONFIG --libs dbus-1 2>/dev/null`" -+ ac_dbus_cflags="`$PKG_CONFIG --cflags dbus-1 2>/dev/null`" -+ CPPFLAGS="$CPPFLAGS $ac_dbus_cflags" -+ fi -+ AC_CHECK_HEADER(dbus/dbus.h, -+ [WINE_CHECK_SONAME(dbus-1,dbus_bus_get,[DBUSINCL="$ac_dbus_cflags"],,[$ac_dbus_libs])]) -+ -+ CPPFLAGS="$ac_save_CPPFLAGS" -+fi -+ - dnl **** Check for libhal **** - AC_SUBST(HALINCL,"") - if test "x$with_hal" != "xno" -@@ -1221,7 +1239,7 @@ then - fi - CPPFLAGS="$ac_save_CPPFLAGS" - fi --WINE_NOTICE_WITH(hal,[test "x$ac_cv_lib_soname_hal" = "x" -a "x$ac_cv_header_DiskArbitration_DiskArbitration_h" != "xyes"], -+WINE_NOTICE_WITH(hal,[test "x$ac_cv_lib_soname_hal" = "x" -a "x$ac_cv_lib_soname_dbus_1" = "x" -a "x$ac_cv_header_DiskArbitration_DiskArbitration_h" != "xyes"], - [libhal/libdbus ${notice_platform}development files not found, no dynamic device support.]) - - dnl **** Check for libgnutls **** -diff --git a/dlls/mountmgr.sys/Makefile.in b/dlls/mountmgr.sys/Makefile.in -index 91203e1..f3355e0 100644 ---- a/dlls/mountmgr.sys/Makefile.in -+++ b/dlls/mountmgr.sys/Makefile.in -@@ -2,13 +2,14 @@ MODULE = mountmgr.sys - IMPORTS = uuid advapi32 ntoskrnl.exe - DELAYIMPORTS = user32 - EXTRADLLFLAGS = -Wb,--subsystem,native --EXTRADEFS = @HALINCL@ -+EXTRADEFS = @HALINCL@ @DBUSINCL@ - EXTRALIBS = @DISKARBITRATIONLIB@ - - C_SRCS = \ - device.c \ - diskarb.c \ - hal.c \ -- mountmgr.c -+ mountmgr.c \ -+ udisks.c - - @MAKE_DLL_RULES@ -diff --git a/dlls/mountmgr.sys/mountmgr.c b/dlls/mountmgr.sys/mountmgr.c -index 4e9900f..df0dbd3 100644 ---- a/dlls/mountmgr.sys/mountmgr.c -+++ b/dlls/mountmgr.sys/mountmgr.c -@@ -443,6 +443,8 @@ NTSTATUS WINAPI DriverEntry( DRIVER_OBJECT *driver, UNICODE_STRING *path ) - RtlInitUnicodeString( &nameW, harddiskW ); - status = IoCreateDriver( &nameW, harddisk_driver_entry ); - -+ /* start udisks before hal */ -+ initialize_udisks(); - initialize_hal(); - initialize_diskarbitration(); - -diff --git a/dlls/mountmgr.sys/mountmgr.h b/dlls/mountmgr.sys/mountmgr.h -index a47a3e3..7d07b45 100644 ---- a/dlls/mountmgr.sys/mountmgr.h -+++ b/dlls/mountmgr.sys/mountmgr.h -@@ -35,6 +35,7 @@ - #define WINE_MOUNTMGR_EXTENSIONS - #include "ddk/mountmgr.h" - -+extern void initialize_udisks(void) DECLSPEC_HIDDEN; - extern void initialize_hal(void) DECLSPEC_HIDDEN; - extern void initialize_diskarbitration(void) DECLSPEC_HIDDEN; - -diff --git a/dlls/mountmgr.sys/udisks.c b/dlls/mountmgr.sys/udisks.c -new file mode 100644 -index 0000000..6b7fe13 ---- /dev/null -+++ b/dlls/mountmgr.sys/udisks.c -@@ -0,0 +1,556 @@ -+/* -+ * udisks devices support -+ * -+ * Copyright 2006 Alexandre Julliard -+ * Copyright 2011 Detlef Riekenberg -+ * -+ * 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, write to the Free Software -+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA -+ */ -+ -+#include "config.h" -+#include "wine/port.h" -+ -+#include -+#include -+#include -+#include -+#include -+ -+#include "mountmgr.h" -+#include "winnls.h" -+#include "excpt.h" -+ -+#include "wine/library.h" -+#include "wine/exception.h" -+#include "wine/debug.h" -+ -+WINE_DEFAULT_DEBUG_CHANNEL(mountmgr); -+ -+ -+static char udisks_version[32]; -+ -+#ifdef SONAME_LIBDBUS_1 -+ -+#include -+ -+/* ########## */ -+ -+typedef struct properties_s { -+ CHAR *device_file; -+ CHAR *id_usage; -+ CHAR *id_type; -+ CHAR *id_uuid; -+ BOOL device_is_mounted; -+ BOOL device_is_optical_disc; -+ BOOL device_is_removable; -+ CHAR *device_mount_paths; -+ CHAR *drive_media; -+ CHAR *drive_media_compatibility; -+ int depth; -+ const char * last_name; -+}properties_t; -+ -+static const char *my_match_rule = "interface=org.freedesktop.UDisks"; -+static const char *dest_udisks_device = "org.freedesktop.UDisks.Device"; -+static const char *dest_udisks = "org.freedesktop.UDisks"; -+static const char *path_udisks = "/org/freedesktop/UDisks"; -+static const char *iface_dbus_prop = "org.freedesktop.DBus.Properties"; -+static const char *daemonversion = "DaemonVersion"; -+ -+/* ########## */ -+ -+#define DBUS_FUNCS \ -+ DO_FUNC(dbus_bus_add_match); \ -+ DO_FUNC(dbus_bus_get); \ -+ DO_FUNC(dbus_bus_remove_match); \ -+ DO_FUNC(dbus_connection_pop_message); \ -+ DO_FUNC(dbus_connection_read_write_dispatch); \ -+ DO_FUNC(dbus_connection_send_with_reply_and_block); \ -+ DO_FUNC(dbus_connection_unref); \ -+ DO_FUNC(dbus_error_free); \ -+ DO_FUNC(dbus_error_init); \ -+ DO_FUNC(dbus_error_is_set); \ -+ DO_FUNC(dbus_message_append_args); \ -+ DO_FUNC(dbus_message_get_member); \ -+ DO_FUNC(dbus_message_iter_get_arg_type); \ -+ DO_FUNC(dbus_message_iter_get_basic); \ -+ DO_FUNC(dbus_message_iter_init); \ -+ DO_FUNC(dbus_message_iter_next); \ -+ DO_FUNC(dbus_message_iter_recurse); \ -+ DO_FUNC(dbus_message_new_method_call); \ -+ DO_FUNC(dbus_message_type_to_string); \ -+ DO_FUNC(dbus_message_unref) -+ -+#define DO_FUNC(f) static typeof(f) * p_##f -+DBUS_FUNCS; -+#undef DO_FUNC -+ -+ -+static BOOL load_dbus_functions(void) -+{ -+ void *dbus_handle; -+ char error[128]; -+ -+ if (!(dbus_handle = wine_dlopen(SONAME_LIBDBUS_1, RTLD_NOW|RTLD_GLOBAL, error, sizeof(error)))) -+ goto failed; -+ -+#define DO_FUNC(f) if (!(p_##f = wine_dlsym(RTLD_DEFAULT, #f, error, sizeof(error)))) goto failed -+ DBUS_FUNCS; -+#undef DO_FUNC -+ -+ return TRUE; -+ -+failed: -+ WARN("failed to load udisks support: %s\n", error); -+ return FALSE; -+} -+ -+static GUID *parse_uuid( GUID *guid, const char *str ) -+{ -+ /* standard uuid format */ -+ if (strlen(str) == 36) -+ { -+ UNICODE_STRING strW; -+ WCHAR buffer[39]; -+ -+ if (MultiByteToWideChar( CP_UNIXCP, 0, str, 36, buffer + 1, 36 )) -+ { -+ buffer[0] = '{'; -+ buffer[37] = '}'; -+ buffer[38] = 0; -+ RtlInitUnicodeString( &strW, buffer ); -+ if (!RtlGUIDFromString( &strW, guid )) return guid; -+ } -+ } -+ -+ /* check for xxxx-xxxx format (FAT serial number) */ -+ if (strlen(str) == 9 && str[4] == '-') -+ { -+ memset( guid, 0, sizeof(*guid) ); -+ if (sscanf( str, "%hx-%hx", &guid->Data2, &guid->Data3 ) == 2) return guid; -+ } -+ return NULL; -+} -+ -+static LONG WINAPI assert_fault(EXCEPTION_POINTERS *eptr) -+{ -+ if (eptr->ExceptionRecord->ExceptionCode == EXCEPTION_WINE_ASSERTION) -+ return EXCEPTION_EXECUTE_HANDLER; -+ return EXCEPTION_CONTINUE_SEARCH; -+} -+ -+/* ######################################### -+ * get_properties_from_iter [internal] -+ * -+ * NOTES -+ * format of args in a reply from GetAll: -+ * an ARRAY of DICT_ENTRY -+ * each DICT_ENTRY has a STRING (property name) and a VARIANT (property value) -+ * each VARIANT has a BOOLEAN or a STRING or an ARRAY of STRING or an here unused value -+ */ -+static BOOL get_properties_from_iter(properties_t * p, DBusMessageIter * iter) -+{ -+ DBusMessageIter sub; -+ int arg_type = p_dbus_message_iter_get_arg_type(iter); -+ -+ p->depth++; -+ while (arg_type != DBUS_TYPE_INVALID) -+ { -+ if ((arg_type == DBUS_TYPE_ARRAY) || -+ (arg_type == DBUS_TYPE_DICT_ENTRY) || -+ (arg_type == DBUS_TYPE_VARIANT)) -+ { -+ p_dbus_message_iter_recurse(iter, &sub); -+ if (!get_properties_from_iter(p, &sub)) -+ { -+ p->depth--; -+ return FALSE; -+ } -+ } -+ else if (arg_type == DBUS_TYPE_STRING) -+ { -+ char * data; -+ p_dbus_message_iter_get_basic(iter, &data); -+ if (p->depth == 3) p->last_name = data; -+ else if (p->last_name) -+ { -+ if (!strcmp(p->last_name, "DeviceFile")) -+ p->device_file = data; -+ else if (!strcmp(p->last_name, "DeviceMountPaths")) -+ p->device_mount_paths = data; /* use only the first entry */ -+ else if (!strcmp(p->last_name, "DriveMedia")) -+ p->drive_media = data; -+ else if (!strcmp(p->last_name, "DriveMediaCompatibility")) -+ p->drive_media_compatibility = data; /* use only the first entry */ -+ else if (!strcmp(p->last_name, "IdType")) -+ p->id_type = data; -+ else if (!strcmp(p->last_name, "IdUsage")) -+ p->id_usage = data; -+ else if (!strcmp(p->last_name, "IdUuid")) -+ p->id_uuid = data; -+ -+ p->last_name = NULL; -+ } -+ } -+ else if (arg_type == DBUS_TYPE_BOOLEAN) -+ { -+ dbus_bool_t data; -+ if (p->last_name) -+ { -+ p_dbus_message_iter_get_basic(iter, &data); -+ if (!strcmp(p->last_name, "DeviceIsMounted")) -+ p->device_is_mounted = data; -+ else if (!strcmp(p->last_name, "DeviceIsOpticalDisc")) -+ p->device_is_optical_disc = data; -+ else if (!strcmp(p->last_name, "DeviceIsRemovable")) -+ p->device_is_removable = data; -+ -+ p->last_name = NULL; -+ } -+ } -+ -+ p_dbus_message_iter_next(iter); -+ arg_type = p_dbus_message_iter_get_arg_type(iter); -+ } -+ p->depth--; -+ return TRUE; -+} -+ -+static DBusMessage * get_properties_from_path(properties_t * p, DBusConnection *ctx, const char * path) -+{ -+ DBusMessage *request; -+ DBusMessage *reply = NULL; -+ DBusMessageIter iter; -+ DBusError error; -+ -+ TRACE("(%p, %p, %s)\n", p, ctx, path); -+ -+ memset(p, 0, sizeof(properties_t)); -+ request = p_dbus_message_new_method_call(dest_udisks, path, iface_dbus_prop, "GetAll"); -+ if (request) -+ { -+ if (p_dbus_message_append_args(request, DBUS_TYPE_STRING, &dest_udisks_device, DBUS_TYPE_INVALID)) -+ { -+ p_dbus_error_init(&error); -+ if ((reply = p_dbus_connection_send_with_reply_and_block(ctx, request, -1, &error))) -+ { -+ p_dbus_message_iter_init(reply, &iter); -+ get_properties_from_iter(p, &iter); -+ } -+ else -+ WARN("no reply for %s\n", path); -+ -+ p_dbus_error_free(&error); -+ } -+ else -+ WARN("dbus_message_append_args failed for 'GetAll'\n"); -+ -+ p_dbus_message_unref(request); -+ } -+ return reply; -+} -+ -+static int get_drive_type(properties_t * p) -+{ -+ /* examples: optical_cd, optical_cd_rw, optical_dvd_plus_r_dl */ -+ if (p->device_is_optical_disc && p->drive_media && !memcmp(p->drive_media, "optical_", 8)) -+ { -+ if (!memcmp(p->drive_media + 8, "cd", 2)) -+ return DEVICE_CDROM; -+ else -+ return DEVICE_DVD; -+ } -+ else if (p->drive_media_compatibility && !strcmp(p->drive_media_compatibility, "floppy")) -+ return DEVICE_FLOPPY; -+ else if (!p->device_is_removable && p->id_usage && !strcmp(p->id_usage, "filesystem")) -+ return DEVICE_HARDDISK_VOL; -+ -+ return DEVICE_UNKNOWN; -+} -+ -+static void udisks_add_device(DBusConnection *ctx, const char *path) -+{ -+ DBusMessage *reply; -+ properties_t p; -+ GUID guid; -+ GUID *guid_ptr = NULL; -+ -+ TRACE("%s\n", debugstr_a(path)); -+ -+ reply = get_properties_from_path(&p, ctx, path); -+ if (reply) -+ { -+ int drive_type = get_drive_type(&p); -+ -+ TRACE("DeviceFile: %s\n", p.device_file); -+ TRACE("IdUsage: %s\n", p.id_usage); -+ TRACE("IdType: %s\n", p.id_type); -+ TRACE("IdUuid: %s\n", p.id_uuid); -+ TRACE("DeviceIsMounted: %d (%s)\n", p.device_is_mounted, p.device_is_mounted ? "true" : "false"); -+ TRACE("DeviceIsOpticalDisc: %d (%s)\n", p.device_is_optical_disc, p.device_is_optical_disc ? "true" : "false"); -+ TRACE("DeviceIsRemovable: %d (%s)\n", p.device_is_removable, p.device_is_removable ? "true" : "false"); -+ TRACE("DeviceMountPaths: %s\n", p.device_mount_paths); -+ TRACE("DriveMedia: %s\n", p.drive_media); -+ TRACE("DriveMediaCompatibility: %s\n", p.drive_media_compatibility); -+ TRACE("using drive_type: %d\n", drive_type); -+ -+ if (p.device_is_mounted && p.device_mount_paths) -+ { -+ if (p.id_uuid) -+ guid_ptr = parse_uuid(&guid, p.id_uuid); -+ -+ if (p.device_is_removable) -+ add_dos_device(-1, path, p.device_file, p.device_mount_paths, drive_type, guid_ptr); -+ else if (guid_ptr) -+ add_volume(path, p.device_file, p.device_mount_paths, DEVICE_HARDDISK_VOL, guid_ptr); -+ -+ } -+ p_dbus_message_unref(reply); -+ } -+} -+ -+static void udisks_remove_device(DBusConnection *ctx, const char *path) -+{ -+ TRACE("%s\n", debugstr_a(path)); -+ -+ if (remove_dos_device(-1, path)) -+ remove_volume(path); -+} -+ -+static void udisks_change_device(DBusConnection *ctx, const char *path) -+{ -+ DBusMessage *reply; -+ properties_t p; -+ -+ TRACE("%s\n", debugstr_a(path)); -+ -+ reply = get_properties_from_path(&p, ctx, path); -+ if (reply) -+ { -+ int drive_type = get_drive_type(&p); -+ -+ if (p.device_is_mounted && p.device_mount_paths) -+ udisks_add_device(ctx, path); -+ else -+ { -+ TRACE("DeviceFile: %s\n", p.device_file); -+ TRACE("IdUsage: %s\n", p.id_usage); -+ TRACE("IdType: %s\n", p.id_type); -+ TRACE("IdUuid: %s\n", p.id_uuid); -+ TRACE("DeviceIsMounted: %d (%s)\n", p.device_is_mounted, p.device_is_mounted ? "true" : "false"); -+ TRACE("DeviceIsOpticalDisc: %d (%s)\n", p.device_is_optical_disc, p.device_is_optical_disc ? "true" : "false"); -+ TRACE("DeviceIsRemovable: %d (%s)\n", p.device_is_removable, p.device_is_removable ? "true" : "false"); -+ TRACE("DeviceMountPaths: %s\n", p.device_mount_paths); -+ TRACE("DriveMedia: %s\n", p.drive_media); -+ TRACE("DriveMediaCompatibility: %s\n", p.drive_media_compatibility); -+ TRACE("using drive_type: %d\n", drive_type); -+ -+ udisks_remove_device(ctx, path); -+ } -+ p_dbus_message_unref(reply); -+ } -+} -+ -+/* ########### */ -+ -+static void udisks_get_all_devices(DBusConnection *ctx) -+{ -+ DBusMessage *request; -+ DBusMessage *reply; -+ DBusMessageIter iter; -+ DBusMessageIter sub; -+ DBusError error; -+ int arg_type; -+ -+ request = p_dbus_message_new_method_call(dest_udisks, path_udisks, dest_udisks, "EnumerateDevices"); -+ if (request) -+ { -+ p_dbus_error_init(&error); -+ if ((reply = p_dbus_connection_send_with_reply_and_block(ctx, request, -1, &error))) -+ { -+ p_dbus_message_iter_init(reply, &iter); -+ arg_type = p_dbus_message_iter_get_arg_type(&iter); -+ if (arg_type == DBUS_TYPE_ARRAY) -+ { -+ p_dbus_message_iter_recurse(&iter, &sub); -+ while ((arg_type = p_dbus_message_iter_get_arg_type(&sub)) == DBUS_TYPE_OBJECT_PATH) -+ { -+ char * data; -+ p_dbus_message_iter_get_basic(&sub, &data); -+ udisks_add_device(ctx, data); -+ p_dbus_message_iter_next(&sub); -+ } -+ } -+ else -+ WARN("expected ARRAY, got %c\n", arg_type); -+ -+ p_dbus_message_unref(reply); -+ } -+ p_dbus_error_free(&error); -+ p_dbus_message_unref(request); -+ } -+} -+ -+static void udisks_get_version(DBusConnection *ctx) -+{ -+ DBusMessage *request; -+ DBusMessage *reply; -+ DBusMessageIter iter; -+ DBusMessageIter sub; -+ DBusError error; -+ int arg_type; -+ -+ request = p_dbus_message_new_method_call(dest_udisks, path_udisks, iface_dbus_prop, "Get"); -+ if (request) -+ { -+ if (p_dbus_message_append_args(request, DBUS_TYPE_STRING, &dest_udisks, -+ DBUS_TYPE_STRING, &daemonversion, -+ DBUS_TYPE_INVALID)) -+ { -+ p_dbus_error_init(&error); -+ if ((reply = p_dbus_connection_send_with_reply_and_block(ctx, request, -1, &error))) -+ { -+ p_dbus_message_iter_init(reply, &iter); -+ arg_type = p_dbus_message_iter_get_arg_type(&iter); -+ if (arg_type == DBUS_TYPE_VARIANT) -+ { -+ p_dbus_message_iter_recurse(&iter, &sub); -+ arg_type = p_dbus_message_iter_get_arg_type(&sub); -+ if (arg_type == DBUS_TYPE_STRING) -+ { -+ char * data; -+ p_dbus_message_iter_get_basic(&sub, &data); -+ lstrcpynA(udisks_version, data, sizeof(udisks_version) - 1); -+ TRACE("found udisks daemon %s\n", udisks_version); -+ } -+ else -+ WARN("expected STRING, got %c\n", arg_type); -+ -+ } -+ else -+ WARN("expected VARIANT, got %c\n", arg_type); -+ -+ p_dbus_message_unref(reply); -+ } -+ p_dbus_error_free(&error); -+ } -+ else -+ WARN("dbus_message_append_args failed\n"); -+ -+ p_dbus_message_unref(request); -+ } -+ return; -+ -+} -+ -+static DWORD WINAPI udisks_thread( void *arg ) -+{ -+ DBusConnection *ctx; -+ DBusMessage *msg; -+ DBusMessageIter iter; -+ DBusError error; -+ const char *member; -+ int arg_type; -+ char *data; -+ -+ p_dbus_error_init(&error); -+ ctx = p_dbus_bus_get(DBUS_BUS_SYSTEM, &error); -+ -+ if (!ctx) -+ { -+ WARN("failed to get system dbus connection: %s\n", error.message); -+ p_dbus_error_free(&error); -+ return 1; -+ } -+ -+ p_dbus_bus_add_match(ctx, my_match_rule, &error); -+ if (p_dbus_error_is_set(&error)) -+ { -+ WARN("add dbus filter failed: %s\n", error.message); -+ p_dbus_error_free(&error); -+ p_dbus_connection_unref(ctx); -+ return 1; -+ } -+ -+ udisks_get_version(ctx); -+ -+ if (!*udisks_version) -+ { -+ TRACE("udisks service not available\n"); -+ p_dbus_bus_remove_match(ctx, my_match_rule, NULL); -+ p_dbus_error_free(&error); -+ p_dbus_connection_unref(ctx); -+ return 1; -+ } -+ -+ __TRY -+ { -+ /* retrieve all existing devices */ -+ udisks_get_all_devices(ctx); -+ -+ while (p_dbus_connection_read_write_dispatch(ctx, -1 )) -+ { -+ while ((msg = p_dbus_connection_pop_message(ctx))) -+ { -+ member = p_dbus_message_get_member(msg); -+ p_dbus_message_iter_init(msg, &iter); -+ arg_type = p_dbus_message_iter_get_arg_type(&iter); -+ -+ if (arg_type == DBUS_TYPE_OBJECT_PATH) -+ p_dbus_message_iter_get_basic(&iter, &data); -+ -+ if (!lstrcmpA(member, "DeviceChanged")) -+ udisks_change_device(ctx, data); -+ else if (!lstrcmpA(member, "DeviceAdded")) -+ udisks_add_device(ctx, data); -+ else if (!lstrcmpA(member, "DeviceRemoved")) -+ udisks_remove_device(ctx, data); -+ else if (lstrcmpA(member, "DeviceJobChanged")) -+ WARN("got signal for %s\n", member); -+ -+ p_dbus_message_unref(msg); -+ } -+ } -+ } -+ __EXCEPT(assert_fault) -+ { -+ WARN("dbus assertion failure, disabling UDisks support\n"); -+ return 1; -+ } -+ __ENDTRY; -+ -+ p_dbus_bus_remove_match(ctx, my_match_rule, NULL); -+ p_dbus_error_free(&error); -+ p_dbus_connection_unref(ctx); -+ return 0; -+} -+ -+void initialize_udisks(void) -+{ -+ HANDLE handle = NULL; -+ -+ if (!load_dbus_functions()) return; -+ if (!(handle = CreateThread(NULL, 0, udisks_thread, NULL, 0, NULL))) return; -+ CloseHandle(handle); -+} -+ -+#else /* SONAME_LIBDBUS_1 */ -+ -+void initialize_udisks(void) -+{ -+ TRACE("Skipping, DBUS support not compiled in\n"); -+} -+ -+#endif /* SONAME_LIBDBUS_1 */ --- -1.7.5.4 - diff --git a/wine.spec b/wine.spec index 46c31e8..adc3fed 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ %global no64bit 0 Name: wine -Version: 1.3.36 +Version: 1.3.37 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -9,12 +9,14 @@ License: LGPLv2+ URL: http://www.winehq.org/ Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-%{version}.tar.bz2 Source10: http://downloads.sourceforge.net/wine/wine-%{version}.tar.bz2.sign + Source1: wine.init Source2: wine.systemd Source3: wine-README-Fedora Source4: wine-32.conf Source5: wine-64.conf -# desktop stuff + +# desktop files Source100: wine-notepad.desktop Source101: wine-regedit.desktop Source102: wine-uninstaller.desktop @@ -35,13 +37,6 @@ Source201: wine.directory # mime types Source300: wine-mime-msi.desktop -Patch200: wine-imagemagick-6.5.patch - -# add udisks support -# https://bugzilla.redhat.com/show_bug.cgi?id=712755 -# http://bugs.winehq.org/show_bug.cgi?id=21713 -# http://source.winehq.org/patches/data/77534 -Patch410: wine-udisks1.patch # smooth tahoma (#693180) # disable embedded bitmaps @@ -434,12 +429,6 @@ This package adds an openal driver for wine. %prep %setup -q -%patch200 -b .imagemagick - -#%patch410 -p1 -b .mountmgr - -autoreconf - %build # disable fortify as it breaks wine # http://bugs.winehq.org/show_bug.cgi?id=24606 @@ -1033,6 +1022,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/olesvr32.dll.so %{_libdir}/wine/olethk32.dll.so %{_libdir}/wine/pdh.dll.so +%{_libdir}/wine/photometadatahandler.dll.so %{_libdir}/wine/pidgen.dll.so %{_libdir}/wine/powrprof.dll.so %{_libdir}/wine/presentationfontcache.exe.so @@ -1149,6 +1139,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/xinput9_1_0.dll.so %{_libdir}/wine/xmllite.dll.so %{_libdir}/wine/xolehlp.dll.so +%{_libdir}/wine/xpsprint.dll.so # 16 bit and other non 64bit stuff %ifnarch x86_64 @@ -1391,6 +1382,11 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Fri Jan 13 2012 Andreas Bierfert +- 1.3.37-1 +- version upgrade +- drop obsoleted patches + * Sat Dec 31 2011 Andreas Bierfert - 1.3.36-1 - version upgrade From 0725c0bf4d46be39172879919dcc56ba49d8642c Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Wed, 25 Jan 2012 21:55:51 +0100 Subject: [PATCH 218/715] Add initial support for wine on ARM --- wine.spec | 43 ++++++++++++++++++++++++++++++++++--------- 1 file changed, 34 insertions(+), 9 deletions(-) diff --git a/wine.spec b/wine.spec index adc3fed..17169c0 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %global no64bit 0 Name: wine Version: 1.3.37 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -47,9 +47,9 @@ Source502: wine-README-tahoma Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) %if !%{?no64bit} -ExclusiveArch: %{ix86} x86_64 +ExclusiveArch: %{ix86} x86_64 %{arm} %else -ExclusiveArch: %{ix86} +ExclusiveArch: %{ix86} %{arm} %endif BuildRequires: bison @@ -76,7 +76,10 @@ BuildRequires: zlib-devel BuildRequires: fontforge freetype-devel BuildRequires: libgphoto2-devel # #217338 +# isdn has issues on ARM atm +%ifnarch %{arm} BuildRequires: isdn4k-utils-devel +%endif # modular x BuildRequires: libX11-devel BuildRequires: mesa-libGL-devel mesa-libGLU-devel @@ -143,7 +146,7 @@ Conflicts: wine-wow(x86-32) = %{version}-%{release} %endif # 32bit only parts -%ifarch %{ix86} +%ifarch %{ix86} %{arm} Requires: wine-wow(x86-32) = %{version}-%{release} %endif @@ -199,6 +202,15 @@ Requires: gnutls(x86-64) Requires: libXrender(x86-64) Requires: libXcursor(x86-64) %endif +%ifarch %{arm} +Requires: freetype +Requires: nss-mdns +# require Xrender isa on x86_64 (#510947) +Requires: libXrender +# requireXcursor (#655255) +Requires: libXcursor +Requires: gnutls +%endif %description core Wine core package includes the basic wine stuff needed by all other packages. @@ -208,9 +220,13 @@ Summary: Files for wine wow separation Group: Applications/Emulators %ifarch x86_64 Requires: wine-core(x86-64) = %{version}-%{release} -%else +%endif +%ifarch %{ix86} Requires: wine-core(x86-32) = %{version}-%{release} %endif +%ifarch %{arm} +Requires: wine-core = %{version}-%{release} +%endif %description wow %{summary} @@ -403,6 +419,10 @@ Requires: alsa-plugins-pulseaudio(x86-32) Requires: wine-alsa(x86-64) = %{version}-%{release} Requires: alsa-plugins-pulseaudio(x86-64) %endif +%ifarch %{arm} +Requires: wine-alsa = %{version}-%{release} +Requires: alsa-plugins-pulseaudio +%endif %description pulseaudio This package pulse in the alsa pulseaudio backend to allow for pulse playback @@ -602,7 +622,7 @@ cp %{SOURCE502} README-tahoma mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d/ -%ifarch %{ix86} +%ifarch %{ix86} %{arm} install -p -m644 %{SOURCE4} %{buildroot}%{_sysconfdir}/ld.so.conf.d/ %endif @@ -728,7 +748,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %files wow %defattr(-,root,root,-) -%ifarch %{ix86} +%ifarch %{ix86} %{arm} %{_bindir}/wine %endif %{_bindir}/wineserver @@ -765,9 +785,11 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/write.exe.so %{_libdir}/wine/dxdiag.exe.so -%ifarch %{ix86} +%ifarch %{ix86} %{arm} %{_bindir}/wine +%ifnarch %{arm} %{_bindir}/wine-preloader +%endif %config %{_sysconfdir}/ld.so.conf.d/wine-32.conf %endif @@ -1142,7 +1164,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/xpsprint.dll.so # 16 bit and other non 64bit stuff -%ifnarch x86_64 +%ifnarch x86_64 %{arm} %{_libdir}/wine/winevdm.exe.so %{_libdir}/wine/ifsmgr.vxd.so %{_libdir}/wine/mmdevldr.vxd.so @@ -1382,6 +1404,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Wed Jan 25 2012 Peter Robinson - 1.3.37-2 +- Add initial support for wine on ARM + * Fri Jan 13 2012 Andreas Bierfert - 1.3.37-1 - version upgrade From f1f1f4a8c2544bb22c171d9999651278689e74e9 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 28 Jan 2012 16:57:39 +0100 Subject: [PATCH 219/715] 1.4-0.1.rc1 - version upgrade --- .gitignore | 2 ++ sources | 4 ++-- wine.spec | 14 +++++++++----- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 8d9e71c..fd0393c 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,5 @@ /wine-1.3.36.tar.bz2.sign /wine-1.3.37.tar.bz2 /wine-1.3.37.tar.bz2.sign +/wine-1.4-rc1.tar.bz2.sign +/wine-1.4-rc1.tar.bz2 diff --git a/sources b/sources index 7cfc721..e37c072 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -4bf25be22c130765283d9953d03b65c4 wine-1.3.37.tar.bz2 -301c7ed5210002c0dcd50a69253c0107 wine-1.3.37.tar.bz2.sign +d268353482c700f301ce038a9ecc9769 wine-1.4-rc1.tar.bz2.sign +c8b7c5c1adaeebc8be1de01f5aa5b6c6 wine-1.4-rc1.tar.bz2 diff --git a/wine.spec b/wine.spec index 17169c0..383e652 100644 --- a/wine.spec +++ b/wine.spec @@ -1,14 +1,14 @@ %global no64bit 0 Name: wine -Version: 1.3.37 -Release: 2%{?dist} +Version: 1.4 +Release: 0.1.rc1%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-%{version}.tar.bz2 -Source10: http://downloads.sourceforge.net/wine/wine-%{version}.tar.bz2.sign +Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-%{version}-rc1.tar.bz2 +Source10: http://downloads.sourceforge.net/wine/wine-%{version}-rc1.tar.bz2.sign Source1: wine.init Source2: wine.systemd @@ -447,7 +447,7 @@ This package adds an openal driver for wine. %endif %prep -%setup -q +%setup -q -n %{name}-%{version}-rc1 %build # disable fortify as it breaks wine @@ -1404,6 +1404,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sat Jan 28 2012 Andreas Bierfert +- 1.4-0.1.rc1 +- version upgrade + * Wed Jan 25 2012 Peter Robinson - 1.3.37-2 - Add initial support for wine on ARM From 63708939ed05293ee8fb7798ea0d3302979115da Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Thu, 2 Feb 2012 22:08:02 +0100 Subject: [PATCH 220/715] 1.4-0.2.rc2 - version upgrade --- .gitignore | 2 ++ sources | 4 ++-- wine.spec | 12 ++++++++---- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index fd0393c..6a8e404 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,5 @@ /wine-1.3.37.tar.bz2.sign /wine-1.4-rc1.tar.bz2.sign /wine-1.4-rc1.tar.bz2 +/wine-1.4-rc2.tar.bz2.sign +/wine-1.4-rc2.tar.bz2 diff --git a/sources b/sources index e37c072..26c28c7 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -d268353482c700f301ce038a9ecc9769 wine-1.4-rc1.tar.bz2.sign -c8b7c5c1adaeebc8be1de01f5aa5b6c6 wine-1.4-rc1.tar.bz2 +d50fd5278cbf49474df73b1ce48a314f wine-1.4-rc2.tar.bz2.sign +41e1a9c293cfab5e8ada6e908eebf534 wine-1.4-rc2.tar.bz2 diff --git a/wine.spec b/wine.spec index 383e652..f0d6837 100644 --- a/wine.spec +++ b/wine.spec @@ -1,14 +1,14 @@ %global no64bit 0 Name: wine Version: 1.4 -Release: 0.1.rc1%{?dist} +Release: 0.2.rc2%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-%{version}-rc1.tar.bz2 -Source10: http://downloads.sourceforge.net/wine/wine-%{version}-rc1.tar.bz2.sign +Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-%{version}-rc2.tar.bz2 +Source10: http://downloads.sourceforge.net/wine/wine-%{version}-rc2.tar.bz2.sign Source1: wine.init Source2: wine.systemd @@ -447,7 +447,7 @@ This package adds an openal driver for wine. %endif %prep -%setup -q -n %{name}-%{version}-rc1 +%setup -q -n %{name}-%{version}-rc2 %build # disable fortify as it breaks wine @@ -1404,6 +1404,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Thu Feb 02 2012 Andreas Bierfert +- 1.4-0.2.rc2 +- version upgrade + * Sat Jan 28 2012 Andreas Bierfert - 1.4-0.1.rc1 - version upgrade From a8273748622c4669e573473ea1715e7ddbe4fa7b Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Fri, 17 Feb 2012 13:02:25 +0000 Subject: [PATCH 221/715] Fix architecture dependencies on ARM so it installs --- wine.spec | 42 +++++++++++++++++++++++++++--------------- 1 file changed, 27 insertions(+), 15 deletions(-) diff --git a/wine.spec b/wine.spec index f0d6837..3d0c374 100644 --- a/wine.spec +++ b/wine.spec @@ -63,6 +63,8 @@ BuildRequires: lcms-devel BuildRequires: libieee1284-devel BuildRequires: libjpeg-devel BuildRequires: libpng-devel +BuildRequires: librsvg2 +BuildRequires: librsvg2-devel BuildRequires: libstdc++-devel BuildRequires: libusb-devel BuildRequires: libxml2-devel @@ -119,7 +121,8 @@ BuildRequires: icoutils Requires: wine-desktop = %{version}-%{release} Requires: wine-fonts = %{version}-%{release} -# 32bit parts +# x86-32 parts +%ifarch %{ix86} Requires: wine-core(x86-32) = %{version}-%{release} Requires: wine-capi(x86-32) = %{version}-%{release} Requires: wine-cms(x86-32) = %{version}-%{release} @@ -128,9 +131,11 @@ Requires: wine-twain(x86-32) = %{version}-%{release} Requires: wine-pulseaudio(x86-32) = %{version}-%{release} %if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 Requires: wine-openal(x86-32) = %{version}-%{release} +Requires: wine-wow(x86-32) = %{version}-%{release} +%endif %endif -# 64bit +# x86-64 parts %ifarch x86_64 Requires: wine-core(x86-64) = %{version}-%{release} Requires: wine-capi(x86-64) = %{version}-%{release} @@ -145,9 +150,16 @@ Requires: wine-wow(x86-64) = %{version}-%{release} Conflicts: wine-wow(x86-32) = %{version}-%{release} %endif -# 32bit only parts -%ifarch %{ix86} %{arm} -Requires: wine-wow(x86-32) = %{version}-%{release} +# ARM parts +%ifarch %{arm} +Requires: wine-core = %{version}-%{release} +Requires: wine-capi = %{version}-%{release} +Requires: wine-cms = %{version}-%{release} +Requires: wine-ldap = %{version}-%{release} +Requires: wine-twain = %{version}-%{release} +Requires: wine-pulseaudio = %{version}-%{release} +Requires: wine-openal = %{version}-%{release} +Requires: wine-wow = %{version}-%{release} %endif %description @@ -189,15 +201,13 @@ Requires: wine-common = %{version}-%{release} %ifarch %{ix86} Requires: freetype(x86-32) Requires: nss-mdns(x86-32) -# require Xrender isa on x86_64 (#510947) +Requires: gnutls(x86-32) Requires: libXrender(x86-32) -# requireXcursor (#655255) Requires: libXcursor(x86-32) -Requires: gnutls(x86-32) %endif %ifarch x86_64 -Requires: nss-mdns(x86-64) Requires: freetype(x86-64) +Requires: nss-mdns(x86-64) Requires: gnutls(x86-64) Requires: libXrender(x86-64) Requires: libXcursor(x86-64) @@ -205,11 +215,9 @@ Requires: libXcursor(x86-64) %ifarch %{arm} Requires: freetype Requires: nss-mdns -# require Xrender isa on x86_64 (#510947) +Requires: gnutls Requires: libXrender -# requireXcursor (#655255) Requires: libXcursor -Requires: gnutls %endif %description core @@ -258,7 +266,11 @@ Requires(post): /sbin/chkconfig, /sbin/service, Requires(post): desktop-file-utils >= 0.8 Requires(preun): /sbin/chkconfig, /sbin/service Requires(postun): desktop-file-utils >= 0.8 +%ifarch %{arm} +Requires: wine-core = %{version}-%{release} +%else Requires: wine-core(x86-32) = %{version}-%{release} +%endif Requires: wine-common = %{version}-%{release} %if 0%{?fedora} >= 15 Requires: wine-systemd = %{version}-%{release} @@ -283,9 +295,7 @@ Requires: wine-tahoma-fonts = %{version}-%{release} Requires: wine-symbol-fonts = %{version}-%{release} # intermediate fix for #593140 Requires: liberation-sans-fonts liberation-serif-fonts liberation-mono-fonts -%if 0%{?fedora} > 12 Requires: liberation-narrow-fonts -%endif %description fonts %{summary} @@ -472,7 +482,6 @@ export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno %install rm -rf %{buildroot} - %makeinstall \ includedir=%{buildroot}%{_includedir}/wine \ sysconfdir=%{buildroot}%{_sysconfdir}/wine \ @@ -1404,6 +1413,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Fri Feb 17 2012 Peter Robinson - 1.4-0.3.rc2 +- Fix architecture dependencies on ARM so it installs + * Thu Feb 02 2012 Andreas Bierfert - 1.4-0.2.rc2 - version upgrade From 649eed1737767bcebad2c33eaf492872a7b43202 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Fri, 17 Feb 2012 15:38:06 +0100 Subject: [PATCH 222/715] - add BR parts from a8273748622c4669e573473ea1715e7ddbe4fa7b --- wine.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/wine.spec b/wine.spec index f0d6837..d5b0d0a 100644 --- a/wine.spec +++ b/wine.spec @@ -63,6 +63,8 @@ BuildRequires: lcms-devel BuildRequires: libieee1284-devel BuildRequires: libjpeg-devel BuildRequires: libpng-devel +BuildRequires: librsvg2 +BuildRequires: librsvg2-devel BuildRequires: libstdc++-devel BuildRequires: libusb-devel BuildRequires: libxml2-devel From ee3bf5e2f9cb65548aee145e7e163ec4d5db12ac Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Fri, 17 Feb 2012 15:49:45 +0100 Subject: [PATCH 223/715] - cleanup arm dep fixes --- wine.spec | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/wine.spec b/wine.spec index 3d0c374..98d2e7c 100644 --- a/wine.spec +++ b/wine.spec @@ -122,7 +122,7 @@ Requires: wine-desktop = %{version}-%{release} Requires: wine-fonts = %{version}-%{release} # x86-32 parts -%ifarch %{ix86} +%ifarch %{ix86} x86_64 Requires: wine-core(x86-32) = %{version}-%{release} Requires: wine-capi(x86-32) = %{version}-%{release} Requires: wine-cms(x86-32) = %{version}-%{release} @@ -196,8 +196,7 @@ Obsoletes: wine-nas <= 1.3.15 Provides: wine-nas = %{version}-%{release} # require -common so we get wine.inf (#528335) Requires: wine-common = %{version}-%{release} -# fix dns resolution (#492700) -# require both to be sure 64bit is present as well... + %ifarch %{ix86} Requires: freetype(x86-32) Requires: nss-mdns(x86-32) @@ -205,6 +204,7 @@ Requires: gnutls(x86-32) Requires: libXrender(x86-32) Requires: libXcursor(x86-32) %endif + %ifarch x86_64 Requires: freetype(x86-64) Requires: nss-mdns(x86-64) @@ -212,6 +212,7 @@ Requires: gnutls(x86-64) Requires: libXrender(x86-64) Requires: libXcursor(x86-64) %endif + %ifarch %{arm} Requires: freetype Requires: nss-mdns @@ -226,12 +227,15 @@ Wine core package includes the basic wine stuff needed by all other packages. %package wow Summary: Files for wine wow separation Group: Applications/Emulators + %ifarch x86_64 Requires: wine-core(x86-64) = %{version}-%{release} %endif + %ifarch %{ix86} Requires: wine-core(x86-32) = %{version}-%{release} %endif + %ifarch %{arm} Requires: wine-core = %{version}-%{release} %endif @@ -295,7 +299,9 @@ Requires: wine-tahoma-fonts = %{version}-%{release} Requires: wine-symbol-fonts = %{version}-%{release} # intermediate fix for #593140 Requires: liberation-sans-fonts liberation-serif-fonts liberation-mono-fonts +%if 0%{?fedora} > 12 Requires: liberation-narrow-fonts +%endif %description fonts %{summary} @@ -482,6 +488,7 @@ export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno %install rm -rf %{buildroot} + %makeinstall \ includedir=%{buildroot}%{_includedir}/wine \ sysconfdir=%{buildroot}%{_sysconfdir}/wine \ From 403bb748e51f3091b2474f58562f058f0191910f Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Fri, 17 Feb 2012 16:32:59 +0100 Subject: [PATCH 224/715] 1.4-0.4.rc3 - version upgrade - cleanup arm dependency fixes --- .gitignore | 2 ++ sources | 4 ++-- wine.spec | 14 +++++++++----- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 6a8e404..af7ffc9 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,5 @@ /wine-1.4-rc1.tar.bz2 /wine-1.4-rc2.tar.bz2.sign /wine-1.4-rc2.tar.bz2 +/wine-1.4-rc3.tar.bz2 +/wine-1.4-rc3.tar.bz2.sign diff --git a/sources b/sources index 26c28c7..237c357 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -d50fd5278cbf49474df73b1ce48a314f wine-1.4-rc2.tar.bz2.sign -41e1a9c293cfab5e8ada6e908eebf534 wine-1.4-rc2.tar.bz2 +cbbf30fe43de9676abbb8ea88b1b5cde wine-1.4-rc3.tar.bz2 +434e48052531f3616821360bacc1df2a wine-1.4-rc3.tar.bz2.sign diff --git a/wine.spec b/wine.spec index 98d2e7c..b22f209 100644 --- a/wine.spec +++ b/wine.spec @@ -1,14 +1,14 @@ %global no64bit 0 Name: wine Version: 1.4 -Release: 0.2.rc2%{?dist} +Release: 0.4.rc3%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-%{version}-rc2.tar.bz2 -Source10: http://downloads.sourceforge.net/wine/wine-%{version}-rc2.tar.bz2.sign +Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-%{version}-rc3.tar.bz2 +Source10: http://downloads.sourceforge.net/wine/wine-%{version}-rc3.tar.bz2.sign Source1: wine.init Source2: wine.systemd @@ -463,7 +463,7 @@ This package adds an openal driver for wine. %endif %prep -%setup -q -n %{name}-%{version}-rc2 +%setup -q -n %{name}-%{version}-rc3 %build # disable fortify as it breaks wine @@ -481,7 +481,6 @@ export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno %ifarch x86_64 --enable-win64 \ %endif - --enable-maintainer-mode \ --disable-tests %{__make} TARGETFLAGS="" %{?_smp_mflags} @@ -1420,6 +1419,11 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Fri Feb 17 2012 Andreas Bierfert +- 1.4-0.4.rc3 +- version upgrade +- cleanup arm dependency fixes + * Fri Feb 17 2012 Peter Robinson - 1.4-0.3.rc2 - Fix architecture dependencies on ARM so it installs From c20c5554a20819e92fa0495b5ca171fb11bee0f0 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 19 Feb 2012 16:33:42 +0100 Subject: [PATCH 225/715] 1.4-0.5.rc4 - version upgrade --- .gitignore | 2 ++ sources | 4 ++-- wine.spec | 12 ++++++++---- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index af7ffc9..4383266 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,5 @@ /wine-1.4-rc2.tar.bz2 /wine-1.4-rc3.tar.bz2 /wine-1.4-rc3.tar.bz2.sign +/wine-1.4-rc4.tar.bz2 +/wine-1.4-rc4.tar.bz2.sign diff --git a/sources b/sources index 237c357..b298222 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -cbbf30fe43de9676abbb8ea88b1b5cde wine-1.4-rc3.tar.bz2 -434e48052531f3616821360bacc1df2a wine-1.4-rc3.tar.bz2.sign +74d6ae855718b8fdc9c70fe95026941b wine-1.4-rc4.tar.bz2 +d397f320c48155c6ec8c9b870aa819d9 wine-1.4-rc4.tar.bz2.sign diff --git a/wine.spec b/wine.spec index b22f209..49dcd37 100644 --- a/wine.spec +++ b/wine.spec @@ -1,14 +1,14 @@ %global no64bit 0 Name: wine Version: 1.4 -Release: 0.4.rc3%{?dist} +Release: 0.5.rc4%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-%{version}-rc3.tar.bz2 -Source10: http://downloads.sourceforge.net/wine/wine-%{version}-rc3.tar.bz2.sign +Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-%{version}-rc4.tar.bz2 +Source10: http://downloads.sourceforge.net/wine/wine-%{version}-rc4.tar.bz2.sign Source1: wine.init Source2: wine.systemd @@ -463,7 +463,7 @@ This package adds an openal driver for wine. %endif %prep -%setup -q -n %{name}-%{version}-rc3 +%setup -q -n %{name}-%{version}-rc4 %build # disable fortify as it breaks wine @@ -1419,6 +1419,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sun Feb 19 2012 Andreas Bierfert +- 1.4-0.5.rc4 +- version upgrade + * Fri Feb 17 2012 Andreas Bierfert - 1.4-0.4.rc3 - version upgrade From ea0b78145de970bcbc33dcc6e89575de43f0255b Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Tue, 21 Feb 2012 12:34:39 +0100 Subject: [PATCH 226/715] 1.4-0.6.rc4 - fix dependency issue (#795295) --- wine.spec | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 49dcd37..9af2bd9 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %global no64bit 0 Name: wine Version: 1.4 -Release: 0.5.rc4%{?dist} +Release: 0.6.rc4%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -131,6 +131,11 @@ Requires: wine-twain(x86-32) = %{version}-%{release} Requires: wine-pulseaudio(x86-32) = %{version}-%{release} %if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 Requires: wine-openal(x86-32) = %{version}-%{release} +%endif +%endif + +%ifarch %{ix86} +%if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 Requires: wine-wow(x86-32) = %{version}-%{release} %endif %endif @@ -1419,6 +1424,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Tue Feb 21 2012 Andreas Bierfert +- 1.4-0.6.rc4 +- fix dependency issue (#795295) + * Sun Feb 19 2012 Andreas Bierfert - 1.4-0.5.rc4 - version upgrade From 2e6ee7f6505167c3d179f70eb180240721377541 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 25 Feb 2012 17:18:35 +0100 Subject: [PATCH 227/715] 1.4-0.7.rc5 - version upgrade --- .gitignore | 2 ++ sources | 4 ++-- wine.spec | 12 ++++++++---- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 4383266..53d4274 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,5 @@ /wine-1.4-rc3.tar.bz2.sign /wine-1.4-rc4.tar.bz2 /wine-1.4-rc4.tar.bz2.sign +/wine-1.4-rc5.tar.bz2 +/wine-1.4-rc5.tar.bz2.sign diff --git a/sources b/sources index b298222..803b420 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -74d6ae855718b8fdc9c70fe95026941b wine-1.4-rc4.tar.bz2 -d397f320c48155c6ec8c9b870aa819d9 wine-1.4-rc4.tar.bz2.sign +80b324aec2a07610e4ad07a56f429db3 wine-1.4-rc5.tar.bz2 +e8fb7874cb8e28dcb2b8708b99d57a09 wine-1.4-rc5.tar.bz2.sign diff --git a/wine.spec b/wine.spec index 9af2bd9..089e555 100644 --- a/wine.spec +++ b/wine.spec @@ -1,14 +1,14 @@ %global no64bit 0 Name: wine Version: 1.4 -Release: 0.6.rc4%{?dist} +Release: 0.7.rc5%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-%{version}-rc4.tar.bz2 -Source10: http://downloads.sourceforge.net/wine/wine-%{version}-rc4.tar.bz2.sign +Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-%{version}-rc5.tar.bz2 +Source10: http://downloads.sourceforge.net/wine/wine-%{version}-rc5.tar.bz2.sign Source1: wine.init Source2: wine.systemd @@ -468,7 +468,7 @@ This package adds an openal driver for wine. %endif %prep -%setup -q -n %{name}-%{version}-rc4 +%setup -q -n %{name}-%{version}-rc5 %build # disable fortify as it breaks wine @@ -1424,6 +1424,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sat Feb 25 2012 Andreas Bierfert +- 1.4-0.7.rc5 +- version upgrade + * Tue Feb 21 2012 Andreas Bierfert - 1.4-0.6.rc4 - fix dependency issue (#795295) From 0a8872f65f26eed8063c0afb20b7701d8ede3f67 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Tue, 6 Mar 2012 16:44:05 +0100 Subject: [PATCH 228/715] 1.4-0.8.rc6 - version upgrade --- .gitignore | 2 ++ sources | 4 ++-- wine.spec | 12 ++++++++---- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 53d4274..1c0265a 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,5 @@ /wine-1.4-rc4.tar.bz2.sign /wine-1.4-rc5.tar.bz2 /wine-1.4-rc5.tar.bz2.sign +/wine-1.4-rc6.tar.bz2 +/wine-1.4-rc6.tar.bz2.sign diff --git a/sources b/sources index 803b420..812e868 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -80b324aec2a07610e4ad07a56f429db3 wine-1.4-rc5.tar.bz2 -e8fb7874cb8e28dcb2b8708b99d57a09 wine-1.4-rc5.tar.bz2.sign +64e59d31b25753202bbf1b4696468826 wine-1.4-rc6.tar.bz2 +b6aacc8c9f2336ea82fba1322589383b wine-1.4-rc6.tar.bz2.sign diff --git a/wine.spec b/wine.spec index 089e555..64cb9d8 100644 --- a/wine.spec +++ b/wine.spec @@ -1,14 +1,14 @@ %global no64bit 0 Name: wine Version: 1.4 -Release: 0.7.rc5%{?dist} +Release: 0.8.rc6%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-%{version}-rc5.tar.bz2 -Source10: http://downloads.sourceforge.net/wine/wine-%{version}-rc5.tar.bz2.sign +Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-%{version}-rc6.tar.bz2 +Source10: http://downloads.sourceforge.net/wine/wine-%{version}-rc6.tar.bz2.sign Source1: wine.init Source2: wine.systemd @@ -468,7 +468,7 @@ This package adds an openal driver for wine. %endif %prep -%setup -q -n %{name}-%{version}-rc5 +%setup -q -n %{name}-%{version}-rc6 %build # disable fortify as it breaks wine @@ -1424,6 +1424,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Tue Mar 06 2012 Andreas Bierfert +- 1.4-0.8.rc6 +- version upgrade + * Sat Feb 25 2012 Andreas Bierfert - 1.4-0.7.rc5 - version upgrade From e613af0f4f9fb9b045668a47970c91fad4539734 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Wed, 7 Mar 2012 21:31:06 +0100 Subject: [PATCH 229/715] 1.4-1 - version upgrade --- .gitignore | 2 ++ sources | 4 ++-- wine.spec | 12 ++++++++---- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 1c0265a..5bcb878 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,5 @@ /wine-1.4-rc5.tar.bz2.sign /wine-1.4-rc6.tar.bz2 /wine-1.4-rc6.tar.bz2.sign +/wine-1.4.tar.bz2 +/wine-1.4.tar.bz2.sign diff --git a/sources b/sources index 812e868..20b8c4c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -64e59d31b25753202bbf1b4696468826 wine-1.4-rc6.tar.bz2 -b6aacc8c9f2336ea82fba1322589383b wine-1.4-rc6.tar.bz2.sign +6594ab86a4b1fb2c09dadfb4ea7fc4af wine-1.4.tar.bz2 +d3f2bda67c9724a2850dd58e18167fea wine-1.4.tar.bz2.sign diff --git a/wine.spec b/wine.spec index 64cb9d8..f2e44ad 100644 --- a/wine.spec +++ b/wine.spec @@ -1,14 +1,14 @@ %global no64bit 0 Name: wine Version: 1.4 -Release: 0.8.rc6%{?dist} +Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-%{version}-rc6.tar.bz2 -Source10: http://downloads.sourceforge.net/wine/wine-%{version}-rc6.tar.bz2.sign +Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-%{version}.tar.bz2 +Source10: http://downloads.sourceforge.net/wine/wine-%{version}.tar.bz2.sign Source1: wine.init Source2: wine.systemd @@ -468,7 +468,7 @@ This package adds an openal driver for wine. %endif %prep -%setup -q -n %{name}-%{version}-rc6 +%setup -q %build # disable fortify as it breaks wine @@ -1424,6 +1424,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Wed Mar 07 2012 Andreas Bierfert +- 1.4-1 +- version upgrade + * Tue Mar 06 2012 Andreas Bierfert - 1.4-0.8.rc6 - version upgrade From af67a91e016f2637467cbce68ed50113afc1f7c4 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 19 Mar 2012 22:04:49 +0100 Subject: [PATCH 230/715] 1.5.0-1 - version upgrade --- .gitignore | 32 ++------------------------------ sources | 4 ++-- wine.spec | 12 ++++++++++-- 3 files changed, 14 insertions(+), 34 deletions(-) diff --git a/.gitignore b/.gitignore index 5bcb878..cd738de 100644 --- a/.gitignore +++ b/.gitignore @@ -1,32 +1,4 @@ -/wine-1.3.29.tar.bz2 -/wine-1.3.29.tar.bz2.sign -/wine-1.3.30.tar.bz2 -/wine-1.3.30.tar.bz2.sign -/wine-1.3.31.tar.bz2 -/wine-1.3.31.tar.bz2.sign -/wine-1.3.32.tar.bz2 -/wine-1.3.32.tar.bz2.sign -/wine-1.3.33.tar.bz2 -/wine-1.3.33.tar.bz2.sign -/wine-1.3.34.tar.bz2 -/wine-1.3.34.tar.bz2.sign -/wine-1.3.35.tar.bz2 -/wine-1.3.35.tar.bz2.sign -/wine-1.3.36.tar.bz2 -/wine-1.3.36.tar.bz2.sign -/wine-1.3.37.tar.bz2 -/wine-1.3.37.tar.bz2.sign -/wine-1.4-rc1.tar.bz2.sign -/wine-1.4-rc1.tar.bz2 -/wine-1.4-rc2.tar.bz2.sign -/wine-1.4-rc2.tar.bz2 -/wine-1.4-rc3.tar.bz2 -/wine-1.4-rc3.tar.bz2.sign -/wine-1.4-rc4.tar.bz2 -/wine-1.4-rc4.tar.bz2.sign -/wine-1.4-rc5.tar.bz2 -/wine-1.4-rc5.tar.bz2.sign -/wine-1.4-rc6.tar.bz2 -/wine-1.4-rc6.tar.bz2.sign /wine-1.4.tar.bz2 /wine-1.4.tar.bz2.sign +/wine-1.5.0.tar.bz2 +/wine-1.5.0.tar.bz2.sign diff --git a/sources b/sources index 20b8c4c..a976dff 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -6594ab86a4b1fb2c09dadfb4ea7fc4af wine-1.4.tar.bz2 -d3f2bda67c9724a2850dd58e18167fea wine-1.4.tar.bz2.sign +c9242ff56223186124c1d42ceb03afe4 wine-1.5.0.tar.bz2 +8c5f03081f3bbdf900ed6e6ba24c585b wine-1.5.0.tar.bz2.sign diff --git a/wine.spec b/wine.spec index f2e44ad..1a25422 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ %global no64bit 0 Name: wine -Version: 1.4 +Version: 1.5.0 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -803,6 +803,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/winver.exe.so %{_libdir}/wine/wordpad.exe.so %{_libdir}/wine/write.exe.so +%{_libdir}/wine/wusa.exe.so %{_libdir}/wine/dxdiag.exe.so %ifarch %{ix86} %{arm} @@ -982,8 +983,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/mapistub.dll.so %{_libdir}/wine/mciavi32.dll.so %{_libdir}/wine/mcicda.dll.so +%{_libdir}/wine/mciqtz32.dll.so %{_libdir}/wine/mciseq.dll.so %{_libdir}/wine/mciwave.dll.so +%{_libdir}/wine/mgmtapi.dll.so %{_libdir}/wine/midimap.dll.so %{_libdir}/wine/mlang.dll.so %{_libdir}/wine/mmcndmgr.dll.so @@ -992,7 +995,6 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/mountmgr.sys.so %{_libdir}/wine/mpr.dll.so %{_libdir}/wine/mprapi.dll.so -%{_libdir}/wine/mciqtz32.dll.so %{_libdir}/wine/msacm32.dll.so %{_libdir}/wine/msacm32.drv.so %{_libdir}/wine/msadp32.acm.so @@ -1007,6 +1009,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/mshtml.dll.so %{_libdir}/wine/mshtml.tlb.so %{_libdir}/wine/msi.dll.so +%{_libdir}/wine/msident.dll.so %{_libdir}/wine/msimtf.dll.so %{_libdir}/wine/msimg32.dll.so %{_libdir}/wine/msimsg.dll.so @@ -1136,6 +1139,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/version.dll.so %{_libdir}/wine/wbemprox.dll.so %{_libdir}/wine/wer.dll.so +%{_libdir}/wine/wevtapi.dll.so %{_libdir}/wine/wiaservc.dll.so %{_libdir}/wine/windowscodecs.dll.so %{_libdir}/wine/winegstreamer.dll.so @@ -1424,6 +1428,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Mon Mar 19 2012 Andreas Bierfert +- 1.5.0-1 +- version upgrade + * Wed Mar 07 2012 Andreas Bierfert - 1.4-1 - version upgrade From e9af62c15168cee3d686a0da0733b7a38cf4f3a5 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Wed, 21 Mar 2012 10:10:31 +0100 Subject: [PATCH 231/715] 1.5.0-2 - require wine gecko from fedora mingw --- wine.spec | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 1a25422..60c6b12 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %global no64bit 0 Name: wine Version: 1.5.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -132,6 +132,9 @@ Requires: wine-pulseaudio(x86-32) = %{version}-%{release} %if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 Requires: wine-openal(x86-32) = %{version}-%{release} %endif +%if 0%{?fedora} >= 17 +Requires: mingw32-wine-gecko = 1.5 +%endif %endif %ifarch %{ix86} @@ -151,6 +154,9 @@ Requires: wine-pulseaudio(x86-64) = %{version}-%{release} %if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 Requires: wine-openal(x86-64) = %{version}-%{release} %endif +%if 0%{?fedora} >= 17 +Requires: mingw64-wine-gecko = 1.5 +%endif Requires: wine-wow(x86-64) = %{version}-%{release} Conflicts: wine-wow(x86-32) = %{version}-%{release} %endif @@ -1428,6 +1434,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Tue Mar 20 2012 Andreas Bierfert +- 1.5.0-2 +- require wine gecko from fedora mingw + * Mon Mar 19 2012 Andreas Bierfert - 1.5.0-1 - version upgrade From fe2d90dc10301b2ed6299a943465817e746a60ec Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 31 Mar 2012 10:23:41 +0200 Subject: [PATCH 232/715] 1.5.1-1 - version upgrade --- .gitignore | 2 ++ sources | 4 ++-- wine.spec | 9 +++++++-- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index cd738de..80fbb24 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ /wine-1.4.tar.bz2.sign /wine-1.5.0.tar.bz2 /wine-1.5.0.tar.bz2.sign +/wine-1.5.1.tar.bz2 +/wine-1.5.1.tar.bz2.sign diff --git a/sources b/sources index a976dff..a8f9125 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -c9242ff56223186124c1d42ceb03afe4 wine-1.5.0.tar.bz2 -8c5f03081f3bbdf900ed6e6ba24c585b wine-1.5.0.tar.bz2.sign +406c61b0162962ab7f539fefd77229af wine-1.5.1.tar.bz2 +2e8b9c17b2b933bee079c91a5b3012c3 wine-1.5.1.tar.bz2.sign diff --git a/wine.spec b/wine.spec index 60c6b12..b6d2581 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %global no64bit 0 Name: wine -Version: 1.5.0 -Release: 2%{?dist} +Version: 1.5.1 +Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -1141,6 +1141,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/userenv.dll.so %{_libdir}/wine/vbscript.dll.so %{_libdir}/wine/vcomp.dll.so +%{_libdir}/wine/vcomp100.dll.so %{_libdir}/wine/vdmdbg.dll.so %{_libdir}/wine/version.dll.so %{_libdir}/wine/wbemprox.dll.so @@ -1434,6 +1435,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sat Mar 31 2012 Andreas Bierfert +- 1.5.1-1 +- version upgrade + * Tue Mar 20 2012 Andreas Bierfert - 1.5.0-2 - require wine gecko from fedora mingw From 745df01e6ac8950454dc861cd747839b3d112917 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 14 Apr 2012 17:00:21 +0200 Subject: [PATCH 233/715] 1.5.2-1 - version upgrade --- .gitignore | 2 ++ sources | 4 ++-- wine.spec | 7 ++++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 80fbb24..e556ce9 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,5 @@ /wine-1.5.0.tar.bz2.sign /wine-1.5.1.tar.bz2 /wine-1.5.1.tar.bz2.sign +/wine-1.5.2.tar.bz2 +/wine-1.5.2.tar.bz2.sign diff --git a/sources b/sources index a8f9125..5298d96 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -406c61b0162962ab7f539fefd77229af wine-1.5.1.tar.bz2 -2e8b9c17b2b933bee079c91a5b3012c3 wine-1.5.1.tar.bz2.sign +a994a2d8ef526407b2085408f0a5e9b4 wine-1.5.2.tar.bz2 +03d2bd37fab79a5be3580cc33ec896ce wine-1.5.2.tar.bz2.sign diff --git a/wine.spec b/wine.spec index b6d2581..dd8b0cf 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ %global no64bit 0 Name: wine -Version: 1.5.1 +Version: 1.5.2 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -876,6 +876,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/apphelp.dll.so %{_libdir}/wine/appwiz.cpl.so %{_libdir}/wine/atl.dll.so +%{_libdir}/wine/atl80.dll.so %{_libdir}/wine/authz.dll.so %{_libdir}/wine/avicap32.dll.so %{_libdir}/wine/avifil32.dll.so @@ -1435,6 +1436,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sat Apr 14 2012 Andreas Bierfert +- 1.5.2-1 +- version upgrade + * Sat Mar 31 2012 Andreas Bierfert - 1.5.1-1 - version upgrade From d4ceea2e7ecf47622b23d8cc3f436a03794c747d Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 21 Apr 2012 10:20:43 +0200 Subject: [PATCH 234/715] 1.5.2-2 - reenable xinput2 (rhbz#801436) --- wine.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index dd8b0cf..1160666 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %global no64bit 0 Name: wine Version: 1.5.2 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -1436,6 +1436,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sat Apr 21 2012 Andreas Bierfert +- 1.5.2-2 +- reenable xinput2 (rhbz#801436) + * Sat Apr 14 2012 Andreas Bierfert - 1.5.2-1 - version upgrade From 41df06f0f4763d4f1bf08010936800990d87b02d Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 21 Apr 2012 10:24:36 +0200 Subject: [PATCH 235/715] actually enable xinput --- wine.spec | 1 - 1 file changed, 1 deletion(-) diff --git a/wine.spec b/wine.spec index 1160666..e3c3812 100644 --- a/wine.spec +++ b/wine.spec @@ -488,7 +488,6 @@ export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno --x-includes=%{_includedir} --x-libraries=%{_libdir} \ --without-hal --with-dbus \ --with-x \ - --without-xinput2 \ %ifarch x86_64 --enable-win64 \ %endif From f71c49509dad5aa33fb0a08aef196485e2e29b52 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 30 Apr 2012 22:09:18 +0200 Subject: [PATCH 236/715] 1.5.3-1 - version upgrade --- .gitignore | 2 ++ sources | 4 ++-- wine.spec | 8 ++++++-- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index e556ce9..74d7520 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,5 @@ /wine-1.5.1.tar.bz2.sign /wine-1.5.2.tar.bz2 /wine-1.5.2.tar.bz2.sign +/wine-1.5.3.tar.bz2 +/wine-1.5.3.tar.bz2.sign diff --git a/sources b/sources index 5298d96..006ce19 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -a994a2d8ef526407b2085408f0a5e9b4 wine-1.5.2.tar.bz2 -03d2bd37fab79a5be3580cc33ec896ce wine-1.5.2.tar.bz2.sign +91ce7a52a402e8609d6f80a7ab409cfd wine-1.5.3.tar.bz2 +4ebfaabe84f449e90d49eba894dadb11 wine-1.5.3.tar.bz2.sign diff --git a/wine.spec b/wine.spec index e3c3812..0884ade 100644 --- a/wine.spec +++ b/wine.spec @@ -1,7 +1,7 @@ %global no64bit 0 Name: wine -Version: 1.5.2 -Release: 2%{?dist} +Version: 1.5.3 +Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator Group: Applications/Emulators @@ -1435,6 +1435,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Mon Apr 30 2012 Andreas Bierfert +- 1.5.3-1 +- version upgrade + * Sat Apr 21 2012 Andreas Bierfert - 1.5.2-2 - reenable xinput2 (rhbz#801436) From b7cc107b34a15ce1ea120c5a81133509867e6e37 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 14 May 2012 22:11:45 +0200 Subject: [PATCH 237/715] 1.5.4-1 - version upgrade --- .gitignore | 2 ++ sources | 4 ++-- wine.spec | 10 +++++++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 74d7520..6cedb9d 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,5 @@ /wine-1.5.2.tar.bz2.sign /wine-1.5.3.tar.bz2 /wine-1.5.3.tar.bz2.sign +/wine-1.5.4.tar.bz2 +/wine-1.5.4.tar.bz2.sign diff --git a/sources b/sources index 006ce19..082ab70 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -91ce7a52a402e8609d6f80a7ab409cfd wine-1.5.3.tar.bz2 -4ebfaabe84f449e90d49eba894dadb11 wine-1.5.3.tar.bz2.sign +e7eb0f4b1f16359005fef12e00bd12df wine-1.5.4.tar.bz2 +57ca3f782c9a01380a347fdc0e9feef7 wine-1.5.4.tar.bz2.sign diff --git a/wine.spec b/wine.spec index 0884ade..e1a1f51 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ %global no64bit 0 Name: wine -Version: 1.5.3 +Version: 1.5.4 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -1028,6 +1028,8 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/msrle32.dll.so %{_libdir}/wine/mstask.dll.so %{_libdir}/wine/msvcirt.dll.so +%{_libdir}/wine/msvcm80.dll.so +%{_libdir}/wine/msvcm90.dll.so %{_libdir}/wine/msvcp60.dll.so %{_libdir}/wine/msvcp70.dll.so %{_libdir}/wine/msvcp71.dll.so @@ -1163,6 +1165,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/wmi.dll.so %{_libdir}/wine/wmic.exe.so %{_libdir}/wine/wmiutils.dll.so +%{_libdir}/wine/wmvcore.dll.so %{_libdir}/wine/spoolss.dll.so %{_libdir}/wine/winscard.dll.so %{_libdir}/wine/wintab32.dll.so @@ -1171,6 +1174,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/wnaspi32.dll.so %{_libdir}/wine/ws2_32.dll.so %{_libdir}/wine/wshom.ocx.so +%{_libdir}/wine/wsnmp32.dll.so %{_libdir}/wine/wsock32.dll.so %{_libdir}/wine/wtsapi32.dll.so %{_libdir}/wine/wuapi.dll.so @@ -1435,6 +1439,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Mon May 14 2012 Andreas Bierfert +- 1.5.4-1 +- version upgrade + * Mon Apr 30 2012 Andreas Bierfert - 1.5.3-1 - version upgrade From 6da7bf2da489d140fa906e527263a8450bf4ddef Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Thu, 31 May 2012 19:05:08 +0200 Subject: [PATCH 238/715] 1.5.5-1 - version upgrade (rhbz#817257) - split out -filesystem and clean up -common/-core requires - re-add winepulse driver (rhbz#821207, rhbz#783699) - add font replacements for CJK to wine.inf and add information for cjk users to fedora readme (rhbz#815125, rhbz#820096) - add support for and require wine-mono --- .gitignore | 2 + sources | 4 +- wine-README-Fedora | 6 + wine-cjk.patch | 21 + wine-pulse-1.5.4.patch | 3359 ++++++++++++++++++++++++++++++++++++++++ wine.spec | 142 +- 6 files changed, 3480 insertions(+), 54 deletions(-) create mode 100644 wine-cjk.patch create mode 100644 wine-pulse-1.5.4.patch diff --git a/.gitignore b/.gitignore index 6cedb9d..c30c581 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,5 @@ /wine-1.5.3.tar.bz2.sign /wine-1.5.4.tar.bz2 /wine-1.5.4.tar.bz2.sign +/wine-1.5.5.tar.bz2 +/wine-1.5.5.tar.bz2.sign diff --git a/sources b/sources index 082ab70..f4f87a4 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -e7eb0f4b1f16359005fef12e00bd12df wine-1.5.4.tar.bz2 -57ca3f782c9a01380a347fdc0e9feef7 wine-1.5.4.tar.bz2.sign +63639cfe9addb75cd40726cac36bcf8a wine-1.5.5.tar.bz2 +9274664843d2505ea7a19c1e4b6c5c2d wine-1.5.5.tar.bz2.sign diff --git a/wine-README-Fedora b/wine-README-Fedora index f0e5205..225a865 100644 --- a/wine-README-Fedora +++ b/wine-README-Fedora @@ -20,3 +20,9 @@ If you find a bug, please take the time to move your ${HOME}/.wine directory someplace and try with a fresh version (like mv ${HOME}/.wine{,-save}). If the bug is still there look trough https://bugzilla.redhat.com and see if the bug is already reported. In case it is not please report it. + +CJK support: +============ +Fedora carries a modified wine.inf file with support for cjk through the +wqy-microhei font family. If you want to use cjk fonts install the +wqy-microhei-fonts.noarch package. diff --git a/wine-cjk.patch b/wine-cjk.patch new file mode 100644 index 0000000..fbdd3d7 --- /dev/null +++ b/wine-cjk.patch @@ -0,0 +1,21 @@ +diff -up wine-1.5.5/tools/wine.inf.in.orig wine-1.5.5/tools/wine.inf.in +--- wine-1.5.5/tools/wine.inf.in.orig 2012-05-28 16:31:47.995343241 +0200 ++++ wine-1.5.5/tools/wine.inf.in 2012-05-28 16:55:08.075906186 +0200 +@@ -610,6 +610,17 @@ HKLM,%FontSubStr%,"Times New Roman CE,23 + HKLM,%FontSubStr%,"Times New Roman CYR,204",,"Times New Roman,204" + HKLM,%FontSubStr%,"Times New Roman Greek,161",,"Times New Roman,161" + HKLM,%FontSubStr%,"Times New Roman TUR,162",,"Times New Roman,162" ++HKCU,Software\Wine\Fonts\Replacements,"SimSun",,"WenQuanYi Micro Hei" ++HKCU,Software\Wine\Fonts\Replacements,"PMingLiU",,"WenQuanYi Micro Hei" ++HKCU,Software\Wine\Fonts\Replacements,"MS Gothic",,"Ume Gothic" ++HKCU,Software\Wine\Fonts\Replacements,"MS PGothic",,"Ume P Gothic" ++HKCU,Software\Wine\Fonts\Replacements,"MS UI Gothic",,"Ume UI Gothic" ++HKCU,Software\Wine\Fonts\Replacements,"MS Mincho",,"Ume Mincho" ++HKCU,Software\Wine\Fonts\Replacements,"MS PMincho",,"Ume P Mincho" ++HKCU,Software\Wine\Fonts\Replacements,"Batang",,"UnBatang" ++HKCU,Software\Wine\Fonts\Replacements,"Dotum",,"UnDotum" ++HKCU,Software\Wine\Fonts\Replacements,"Gulim",,"UnDotum" ++HKCU,Software\Wine\Fonts\Replacements,"Arial Unicode MS",,"Droid Sans Fallback" + HKLM,System\CurrentControlSet\Hardware Profiles\Current\Software\Fonts,"LogPixels",0x10003,0x00000060 + + [MCI] diff --git a/wine-pulse-1.5.4.patch b/wine-pulse-1.5.4.patch new file mode 100644 index 0000000..54e7f0d --- /dev/null +++ b/wine-pulse-1.5.4.patch @@ -0,0 +1,3359 @@ +diff -uNr wine-1.5.4.old/configure wine-1.5.4/configure +--- wine-1.5.4.old/configure 2012-05-11 21:08:09.000000000 +0300 ++++ wine-1.5.4/configure 2012-05-23 12:37:16.166737017 +0300 +@@ -629,6 +629,8 @@ + ALSALIBS + GSTREAMER_INCL + GSTREAMER_LIBS ++PULSEINCL ++PULSELIBS + LIBGETTEXTPO + ZLIB + FREETYPEINCL +@@ -805,6 +807,7 @@ + with_oss + with_png + with_pthread ++with_pulse + with_sane + with_tiff + with_v4l +@@ -1495,6 +1498,7 @@ + --without-oss do not use the OSS sound support + --without-png do not use PNG + --without-pthread do not use the pthread library ++ --without-pulse do not use PulseAudio sound support + --without-sane do not use SANE (scanner support) + --without-tiff do not use TIFF + --without-v4l do not use v4l1 (v4l support) +@@ -2679,6 +2683,12 @@ + fi + + ++# Check whether --with-pulse was given. ++if test "${with_pulse+set}" = set; then : ++ withval=$with_pulse; ++fi ++ ++ + # Check whether --with-sane was given. + if test "${with_sane+set}" = set; then : + withval=$with_sane; +@@ -10639,6 +10649,87 @@ + fi + fi + ++PULSELIBS="" ++ ++PULSEINCL="" ++ ++if test "x$with_pulse" != "xno"; ++then ++ ac_save_CPPFLAGS="$CPPFLAGS" ++ if test "$PKG_CONFIG" != "false"; ++ then ++ ac_pulse_libs="`$PKG_CONFIG --libs libpulse 2>/dev/null`" ++ ac_pulse_cflags="`$PKG_CONFIG --cflags-only-I libpulse 2>/dev/null`" ++ ++ CPPFLAGS="$CPPFLAGS $ac_pulse_cflags" ++ for ac_header in pulse/pulseaudio.h ++do : ++ ac_fn_c_check_header_mongrel "$LINENO" "pulse/pulseaudio.h" "ac_cv_header_pulse_pulseaudio_h" "$ac_includes_default" ++if test "x$ac_cv_header_pulse_pulseaudio_h" = xyes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_PULSE_PULSEAUDIO_H 1 ++_ACEOF ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pa_stream_is_corked in -lpulse" >&5 ++$as_echo_n "checking for pa_stream_is_corked in -lpulse... " >&6; } ++if ${ac_cv_lib_pulse_pa_stream_is_corked+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lpulse $ac_pulse_libs $LIBS" ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++/* Override any GCC internal prototype to avoid an error. ++ Use char because int might match the return type of a GCC ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char pa_stream_is_corked (); ++int ++main () ++{ ++return pa_stream_is_corked (); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_lib_pulse_pa_stream_is_corked=yes ++else ++ ac_cv_lib_pulse_pa_stream_is_corked=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pulse_pa_stream_is_corked" >&5 ++$as_echo "$ac_cv_lib_pulse_pa_stream_is_corked" >&6; } ++if test "x$ac_cv_lib_pulse_pa_stream_is_corked" = xyes; then : ++ ++$as_echo "#define HAVE_PULSEAUDIO 1" >>confdefs.h ++ ++ PULSELIBS="$ac_pulse_libs" ++ PULSEINCL="$ac_pulse_cflags" ++fi ++ ++ ++fi ++ ++done ++ ++ fi ++ CPPFLAGS="$ac_save_CPPFLAGS" ++fi ++if test "$ac_cv_lib_pulse_pa_stream_is_corked" != "yes"; then : ++ case "x$with_pulse" in ++ x) as_fn_append wine_warnings "|libpulse ${notice_platform}development files not found or too old, Pulse won't be supported." ;; ++ xno) ;; ++ *) as_fn_error $? "libpulse ${notice_platform}development files not found or too old, Pulse won't be supported. ++This is an error since --with-pulse was requested." "$LINENO" 5 ;; ++esac ++fi ++ + if test "x$with_gstreamer" != "xno" + then + ac_save_CPPFLAGS="$CPPFLAGS" +@@ -11898,12 +11989,13 @@ + + test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no} + test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no} ++test -n "$PULSELIBS" || enable_winepulse_drv=${enable_winepulse_drv:-no} + test "x$ac_cv_member_oss_sysinfo_numaudioengines" = xyes || enable_wineoss_drv=${enable_wineoss_drv:-no} + test "$ac_cv_header_linux_joystick_h" = "yes" || enable_winejoystick_drv=${enable_winejoystick_drv:-no} + +-if test "x$ALSALIBS$COREAUDIO" = "x" -a \ ++if test "x$ALSALIBS$COREAUDIO$PULSELIBS" = "x" -a \ + "x$ac_cv_member_oss_sysinfo_numaudioengines" != xyes -a \ +- "x$with_alsa$with_coreaudio$with_oss" != xnonono ++ "x$with_alsa$with_coreaudio$with_oss$with_pulse" != xnononono + then + as_fn_append wine_warnings "|No sound system was found. Windows applications will be silent." + fi +@@ -15430,6 +15522,7 @@ + wine_fn_config_dll wineoss.drv enable_wineoss_drv + wine_fn_config_dll wineps.drv enable_wineps_drv install-lib,po + wine_fn_config_dll wineps16.drv16 enable_win16 ++wine_fn_config_dll winepulse.drv enable_winepulse_drv + wine_fn_config_dll wineqtdecoder enable_wineqtdecoder + wine_fn_config_dll winequartz.drv enable_winequartz_drv + wine_fn_config_dll winex11.drv enable_winex11_drv +diff -uNr wine-1.5.4.old/configure.ac wine-1.5.4/configure.ac +--- wine-1.5.4.old/configure.ac 2012-05-11 21:08:09.000000000 +0300 ++++ wine-1.5.4/configure.ac 2012-05-23 12:38:20.969468598 +0300 +@@ -74,6 +74,7 @@ + [if test "x$withval" = "xno"; then ac_cv_header_png_h=no; fi]) + AC_ARG_WITH(pthread, AS_HELP_STRING([--without-pthread],[do not use the pthread library]), + [if test "x$withval" = "xno"; then ac_cv_header_pthread_h=no; fi]) ++AC_ARG_WITH(pulse, AC_HELP_STRING([--without-pulse],[do not use PulseAudio sound support])) + AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)])) + AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF]), + [if test "x$withval" = "xno"; then ac_cv_header_tiffio_h=no; fi]) +@@ -1482,6 +1483,30 @@ + [GetText ${notice_platform}development files not found (or too old), po files can't be rebuilt.]) + fi + ++dnl **** Check for PulseAudio **** ++AC_SUBST(PULSELIBS,"") ++AC_SUBST(PULSEINCL,"") ++if test "x$with_pulse" != "xno"; ++then ++ ac_save_CPPFLAGS="$CPPFLAGS" ++ if test "$PKG_CONFIG" != "false"; ++ then ++ ac_pulse_libs="`$PKG_CONFIG --libs libpulse 2>/dev/null`" ++ ac_pulse_cflags="`$PKG_CONFIG --cflags-only-I libpulse 2>/dev/null`" ++ ++ CPPFLAGS="$CPPFLAGS $ac_pulse_cflags" ++ AC_CHECK_HEADERS(pulse/pulseaudio.h, ++ [AC_CHECK_LIB(pulse, pa_stream_is_corked, ++ [AC_DEFINE(HAVE_PULSEAUDIO, 1, [Define if you have pulseaudio]) ++ PULSELIBS="$ac_pulse_libs" ++ PULSEINCL="$ac_pulse_cflags"],,$ac_pulse_libs) ++ ]) ++ fi ++ CPPFLAGS="$ac_save_CPPFLAGS" ++fi ++WINE_WARNING_WITH(pulse, [test "$ac_cv_lib_pulse_pa_stream_is_corked" != "yes"], ++ [libpulse ${notice_platform}development files not found or too old, Pulse won't be supported.]) ++ + dnl **** Check for gstreamer **** + if test "x$with_gstreamer" != "xno" + then +@@ -1688,13 +1713,14 @@ + dnl **** Disable unsupported winmm drivers **** + test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no} + test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no} ++test -n "$PULSELIBS" || enable_winepulse_drv=${enable_winepulse_drv:-no} + test "x$ac_cv_member_oss_sysinfo_numaudioengines" = xyes || enable_wineoss_drv=${enable_wineoss_drv:-no} + test "$ac_cv_header_linux_joystick_h" = "yes" || enable_winejoystick_drv=${enable_winejoystick_drv:-no} + + dnl **** Check for any sound system **** +-if test "x$ALSALIBS$COREAUDIO" = "x" -a \ ++if test "x$ALSALIBS$COREAUDIO$PULSELIBS" = "x" -a \ + "x$ac_cv_member_oss_sysinfo_numaudioengines" != xyes -a \ +- "x$with_alsa$with_coreaudio$with_oss" != xnonono ++ "x$with_alsa$with_coreaudio$with_oss$with_pulse" != xnononono + then + WINE_WARNING([No sound system was found. Windows applications will be silent.]) + fi +@@ -2918,6 +2944,7 @@ + WINE_CONFIG_DLL(wineoss.drv) + WINE_CONFIG_DLL(wineps.drv,,[install-lib,po]) + WINE_CONFIG_DLL(wineps16.drv16,enable_win16) ++WINE_CONFIG_DLL(winepulse.drv) + WINE_CONFIG_DLL(wineqtdecoder) + WINE_CONFIG_DLL(winequartz.drv) + WINE_CONFIG_DLL(winex11.drv) +diff -uNr wine-1.5.4.old/dlls/mmdevapi/main.c wine-1.5.4/dlls/mmdevapi/main.c +--- wine-1.5.4.old/dlls/mmdevapi/main.c 2012-05-11 21:08:09.000000000 +0300 ++++ wine-1.5.4/dlls/mmdevapi/main.c 2012-05-23 12:13:41.597012820 +0300 +@@ -111,7 +111,7 @@ + { + static const WCHAR drv_value[] = {'A','u','d','i','o',0}; + +- static WCHAR default_list[] = {'a','l','s','a',',','o','s','s',',', ++ static WCHAR default_list[] = {'p','u','l','s','e',',','a','l','s','a',',','o','s','s',',', + 'c','o','r','e','a','u','d','i','o',0}; + + DriverFuncs driver; +diff -uNr wine-1.5.4.old/dlls/winepulse.drv/Makefile.in wine-1.5.4/dlls/winepulse.drv/Makefile.in +--- wine-1.5.4.old/dlls/winepulse.drv/Makefile.in 1970-01-01 02:00:00.000000000 +0200 ++++ wine-1.5.4/dlls/winepulse.drv/Makefile.in 2012-05-23 12:03:21.068645000 +0300 +@@ -0,0 +1,9 @@ ++MODULE = winepulse.drv ++IMPORTS = dxguid uuid winmm user32 advapi32 ole32 ++EXTRALIBS = @PULSELIBS@ @LIBPTHREAD@ ++EXTRAINCL = @PULSEINCL@ ++ ++C_SRCS = \ ++ mmdevdrv.c ++ ++@MAKE_DLL_RULES@ +diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse.drv/mmdevdrv.c +--- wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c 1970-01-01 02:00:00.000000000 +0200 ++++ wine-1.5.4/dlls/winepulse.drv/mmdevdrv.c 2012-05-23 12:03:21.069645000 +0300 +@@ -0,0 +1,3101 @@ ++/* ++ * Copyright 2011-2012 Maarten Lankhorst ++ * Copyright 2010-2011 Maarten Lankhorst for CodeWeavers ++ * Copyright 2011 Andrew Eikum for CodeWeavers ++ * ++ * 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, write to the Free Software ++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA ++ * ++ * Pulseaudio driver support.. hell froze over ++ */ ++ ++#define NONAMELESSUNION ++#define COBJMACROS ++#include "config.h" ++#include ++#include ++ ++#include ++#include ++#include ++#include ++ ++#include ++ ++#include "windef.h" ++#include "winbase.h" ++#include "winnls.h" ++#include "winreg.h" ++#include "wine/debug.h" ++#include "wine/unicode.h" ++#include "wine/list.h" ++ ++#include "ole2.h" ++#include "dshow.h" ++#include "dsound.h" ++#include "propsys.h" ++ ++#include "initguid.h" ++#include "ks.h" ++#include "ksmedia.h" ++#include "mmdeviceapi.h" ++#include "audioclient.h" ++#include "endpointvolume.h" ++#include "audiopolicy.h" ++ ++#include "wine/list.h" ++ ++#define NULL_PTR_ERR MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, RPC_X_NULL_REF_POINTER) ++ ++WINE_DEFAULT_DEBUG_CHANNEL(pulse); ++WINE_DECLARE_DEBUG_CHANNEL(winediag); ++ ++static const REFERENCE_TIME MinimumPeriod = 30000; ++static const REFERENCE_TIME DefaultPeriod = 100000; ++ ++static pa_context *pulse_ctx; ++static pa_mainloop *pulse_ml; ++ ++static HANDLE pulse_thread; ++static pthread_mutex_t pulse_lock = PTHREAD_MUTEX_INITIALIZER; ++static pthread_cond_t pulse_cond = PTHREAD_COND_INITIALIZER; ++static struct list g_sessions = LIST_INIT(g_sessions); ++ ++/* Mixer format + period times */ ++static WAVEFORMATEXTENSIBLE pulse_fmt[2]; ++static REFERENCE_TIME pulse_min_period[2], pulse_def_period[2]; ++ ++static DWORD pulse_stream_volume; ++ ++const WCHAR pulse_keyW[] = {'S','o','f','t','w','a','r','e','\\', ++ 'W','i','n','e','\\','P','u','l','s','e',0}; ++const WCHAR pulse_streamW[] = { 'S','t','r','e','a','m','V','o','l',0 }; ++ ++static GUID pulse_render_guid = ++{ 0xfd47d9cc, 0x4218, 0x4135, { 0x9c, 0xe2, 0x0c, 0x19, 0x5c, 0x87, 0x40, 0x5b } }; ++static GUID pulse_capture_guid = ++{ 0x25da76d0, 0x033c, 0x4235, { 0x90, 0x02, 0x19, 0xf4, 0x88, 0x94, 0xac, 0x6f } }; ++ ++static HANDLE warn_once; ++ ++BOOL WINAPI DllMain(HINSTANCE dll, DWORD reason, void *reserved) ++{ ++ if (reason == DLL_PROCESS_ATTACH) { ++ HKEY key; ++ if (RegOpenKeyW(HKEY_CURRENT_USER, pulse_keyW, &key) == ERROR_SUCCESS) { ++ DWORD size = sizeof(pulse_stream_volume); ++ RegQueryValueExW(key, pulse_streamW, 0, NULL, ++ (BYTE*)&pulse_stream_volume, &size); ++ RegCloseKey(key); ++ } ++ DisableThreadLibraryCalls(dll); ++ } else if (reason == DLL_PROCESS_DETACH) { ++ if (pulse_ctx) { ++ pa_context_disconnect(pulse_ctx); ++ pa_context_unref(pulse_ctx); ++ } ++ if (pulse_ml) ++ pa_mainloop_quit(pulse_ml, 0); ++ if (pulse_thread) ++ CloseHandle(pulse_thread); ++ if (warn_once) ++ CloseHandle(warn_once); ++ } ++ return TRUE; ++} ++ ++typedef struct ACImpl ACImpl; ++ ++typedef struct _AudioSession { ++ GUID guid; ++ struct list clients; ++ ++ IMMDevice *device; ++ ++ float master_vol; ++ UINT32 channel_count; ++ float *channel_vols; ++ BOOL mute; ++ ++ struct list entry; ++} AudioSession; ++ ++typedef struct _AudioSessionWrapper { ++ IAudioSessionControl2 IAudioSessionControl2_iface; ++ IChannelAudioVolume IChannelAudioVolume_iface; ++ ISimpleAudioVolume ISimpleAudioVolume_iface; ++ ++ LONG ref; ++ ++ ACImpl *client; ++ AudioSession *session; ++} AudioSessionWrapper; ++ ++typedef struct _ACPacket { ++ struct list entry; ++ UINT64 qpcpos; ++ BYTE *data; ++ UINT32 discont; ++} ACPacket; ++ ++struct ACImpl { ++ IAudioClient IAudioClient_iface; ++ IAudioRenderClient IAudioRenderClient_iface; ++ IAudioCaptureClient IAudioCaptureClient_iface; ++ IAudioClock IAudioClock_iface; ++ IAudioClock2 IAudioClock2_iface; ++ IAudioStreamVolume IAudioStreamVolume_iface; ++ IMMDevice *parent; ++ struct list entry; ++ float vol[PA_CHANNELS_MAX]; ++ ++ LONG ref; ++ EDataFlow dataflow; ++ DWORD flags; ++ AUDCLNT_SHAREMODE share; ++ HANDLE event; ++ ++ UINT32 bufsize_frames, bufsize_bytes, locked, capture_period, pad, started, peek_ofs; ++ void *locked_ptr, *tmp_buffer; ++ ++ pa_stream *stream; ++ pa_sample_spec ss; ++ pa_channel_map map; ++ ++ INT64 clock_lastpos, clock_written; ++ pa_usec_t clock_pulse; ++ ++ AudioSession *session; ++ AudioSessionWrapper *session_wrapper; ++ struct list packet_free_head; ++ struct list packet_filled_head; ++}; ++ ++static const WCHAR defaultW[] = {'P','u','l','s','e','a','u','d','i','o',0}; ++ ++static const IAudioClientVtbl AudioClient_Vtbl; ++static const IAudioRenderClientVtbl AudioRenderClient_Vtbl; ++static const IAudioCaptureClientVtbl AudioCaptureClient_Vtbl; ++static const IAudioSessionControl2Vtbl AudioSessionControl2_Vtbl; ++static const ISimpleAudioVolumeVtbl SimpleAudioVolume_Vtbl; ++static const IChannelAudioVolumeVtbl ChannelAudioVolume_Vtbl; ++static const IAudioClockVtbl AudioClock_Vtbl; ++static const IAudioClock2Vtbl AudioClock2_Vtbl; ++static const IAudioStreamVolumeVtbl AudioStreamVolume_Vtbl; ++ ++static AudioSessionWrapper *AudioSessionWrapper_Create(ACImpl *client); ++ ++static inline ACImpl *impl_from_IAudioClient(IAudioClient *iface) ++{ ++ return CONTAINING_RECORD(iface, ACImpl, IAudioClient_iface); ++} ++ ++static inline ACImpl *impl_from_IAudioRenderClient(IAudioRenderClient *iface) ++{ ++ return CONTAINING_RECORD(iface, ACImpl, IAudioRenderClient_iface); ++} ++ ++static inline ACImpl *impl_from_IAudioCaptureClient(IAudioCaptureClient *iface) ++{ ++ return CONTAINING_RECORD(iface, ACImpl, IAudioCaptureClient_iface); ++} ++ ++static inline AudioSessionWrapper *impl_from_IAudioSessionControl2(IAudioSessionControl2 *iface) ++{ ++ return CONTAINING_RECORD(iface, AudioSessionWrapper, IAudioSessionControl2_iface); ++} ++ ++static inline AudioSessionWrapper *impl_from_ISimpleAudioVolume(ISimpleAudioVolume *iface) ++{ ++ return CONTAINING_RECORD(iface, AudioSessionWrapper, ISimpleAudioVolume_iface); ++} ++ ++static inline AudioSessionWrapper *impl_from_IChannelAudioVolume(IChannelAudioVolume *iface) ++{ ++ return CONTAINING_RECORD(iface, AudioSessionWrapper, IChannelAudioVolume_iface); ++} ++ ++static inline ACImpl *impl_from_IAudioClock(IAudioClock *iface) ++{ ++ return CONTAINING_RECORD(iface, ACImpl, IAudioClock_iface); ++} ++ ++static inline ACImpl *impl_from_IAudioClock2(IAudioClock2 *iface) ++{ ++ return CONTAINING_RECORD(iface, ACImpl, IAudioClock2_iface); ++} ++ ++static inline ACImpl *impl_from_IAudioStreamVolume(IAudioStreamVolume *iface) ++{ ++ return CONTAINING_RECORD(iface, ACImpl, IAudioStreamVolume_iface); ++} ++ ++/* Following pulseaudio design here, mainloop has the lock taken whenever ++ * it is handling something for pulse, and the lock is required whenever ++ * doing any pa_* call that can affect the state in any way ++ * ++ * pa_cond_wait is used when waiting on results, because the mainloop needs ++ * the same lock taken to affect the state ++ * ++ * This is basically the same as the pa_threaded_mainloop implementation, ++ * but that cannot be used because it uses pthread_create directly ++ * ++ * pa_threaded_mainloop_(un)lock -> pthread_mutex_(un)lock ++ * pa_threaded_mainloop_signal -> pthread_cond_signal ++ * pa_threaded_mainloop_wait -> pthread_cond_wait ++ */ ++ ++static int pulse_poll_func(struct pollfd *ufds, unsigned long nfds, int timeout, void *userdata) { ++ int r; ++ pthread_mutex_unlock(&pulse_lock); ++ r = poll(ufds, nfds, timeout); ++ pthread_mutex_lock(&pulse_lock); ++ return r; ++} ++ ++static DWORD CALLBACK pulse_mainloop_thread(void *tmp) { ++ int ret; ++ pulse_ml = pa_mainloop_new(); ++ pa_mainloop_set_poll_func(pulse_ml, pulse_poll_func, NULL); ++ pthread_mutex_lock(&pulse_lock); ++ pthread_cond_signal(&pulse_cond); ++ pa_mainloop_run(pulse_ml, &ret); ++ pthread_mutex_unlock(&pulse_lock); ++ pa_mainloop_free(pulse_ml); ++ CloseHandle(pulse_thread); ++ return ret; ++} ++ ++static void pulse_contextcallback(pa_context *c, void *userdata); ++static void pulse_stream_state(pa_stream *s, void *user); ++ ++static const enum pa_channel_position pulse_pos_from_wfx[] = { ++ PA_CHANNEL_POSITION_FRONT_LEFT, ++ PA_CHANNEL_POSITION_FRONT_RIGHT, ++ PA_CHANNEL_POSITION_FRONT_CENTER, ++ PA_CHANNEL_POSITION_LFE, ++ PA_CHANNEL_POSITION_REAR_LEFT, ++ PA_CHANNEL_POSITION_REAR_RIGHT, ++ PA_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER, ++ PA_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER, ++ PA_CHANNEL_POSITION_REAR_CENTER, ++ PA_CHANNEL_POSITION_SIDE_LEFT, ++ PA_CHANNEL_POSITION_SIDE_RIGHT, ++ PA_CHANNEL_POSITION_TOP_CENTER, ++ PA_CHANNEL_POSITION_TOP_FRONT_LEFT, ++ PA_CHANNEL_POSITION_TOP_FRONT_CENTER, ++ PA_CHANNEL_POSITION_TOP_FRONT_RIGHT, ++ PA_CHANNEL_POSITION_TOP_REAR_LEFT, ++ PA_CHANNEL_POSITION_TOP_REAR_CENTER, ++ PA_CHANNEL_POSITION_TOP_REAR_RIGHT ++}; ++ ++static void pulse_probe_settings(int render, WAVEFORMATEXTENSIBLE *fmt) { ++ WAVEFORMATEX *wfx = &fmt->Format; ++ pa_stream *stream; ++ pa_channel_map map; ++ pa_sample_spec ss; ++ pa_buffer_attr attr; ++ int ret, i; ++ unsigned int length = 0; ++ ++ pa_channel_map_init_auto(&map, 2, PA_CHANNEL_MAP_ALSA); ++ ss.rate = 48000; ++ ss.format = PA_SAMPLE_FLOAT32LE; ++ ss.channels = map.channels; ++ ++ attr.maxlength = -1; ++ attr.tlength = -1; ++ attr.minreq = attr.fragsize = pa_frame_size(&ss); ++ attr.prebuf = 0; ++ ++ stream = pa_stream_new(pulse_ctx, "format test stream", &ss, &map); ++ if (stream) ++ pa_stream_set_state_callback(stream, pulse_stream_state, NULL); ++ if (!stream) ++ ret = -1; ++ else if (render) ++ ret = pa_stream_connect_playback(stream, NULL, &attr, ++ PA_STREAM_START_CORKED|PA_STREAM_FIX_RATE|PA_STREAM_FIX_CHANNELS|PA_STREAM_EARLY_REQUESTS, NULL, NULL); ++ else ++ ret = pa_stream_connect_record(stream, NULL, &attr, PA_STREAM_START_CORKED|PA_STREAM_FIX_RATE|PA_STREAM_FIX_CHANNELS|PA_STREAM_EARLY_REQUESTS); ++ if (ret >= 0) { ++ while (pa_stream_get_state(stream) == PA_STREAM_CREATING) ++ pthread_cond_wait(&pulse_cond, &pulse_lock); ++ if (pa_stream_get_state(stream) == PA_STREAM_READY) { ++ ss = *pa_stream_get_sample_spec(stream); ++ map = *pa_stream_get_channel_map(stream); ++ if (render) ++ length = pa_stream_get_buffer_attr(stream)->minreq; ++ else ++ length = pa_stream_get_buffer_attr(stream)->fragsize; ++ pa_stream_disconnect(stream); ++ while (pa_stream_get_state(stream) == PA_STREAM_READY) ++ pthread_cond_wait(&pulse_cond, &pulse_lock); ++ } ++ } ++ if (stream) ++ pa_stream_unref(stream); ++ if (length) ++ pulse_def_period[!render] = pulse_min_period[!render] = pa_bytes_to_usec(10 * length, &ss); ++ else ++ pulse_min_period[!render] = MinimumPeriod; ++ if (pulse_def_period[!render] <= DefaultPeriod) ++ pulse_def_period[!render] = DefaultPeriod; ++ ++ wfx->wFormatTag = WAVE_FORMAT_EXTENSIBLE; ++ wfx->cbSize = sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX); ++ wfx->nChannels = ss.channels; ++ wfx->wBitsPerSample = 8 * pa_sample_size_of_format(ss.format); ++ wfx->nSamplesPerSec = ss.rate; ++ wfx->nBlockAlign = pa_frame_size(&ss); ++ wfx->nAvgBytesPerSec = wfx->nSamplesPerSec * wfx->nBlockAlign; ++ if (ss.format != PA_SAMPLE_S24_32LE) ++ fmt->Samples.wValidBitsPerSample = wfx->wBitsPerSample; ++ else ++ fmt->Samples.wValidBitsPerSample = 24; ++ if (ss.format == PA_SAMPLE_FLOAT32LE) ++ fmt->SubFormat = KSDATAFORMAT_SUBTYPE_IEEE_FLOAT; ++ else ++ fmt->SubFormat = KSDATAFORMAT_SUBTYPE_PCM; ++ ++ fmt->dwChannelMask = 0; ++ for (i = 0; i < map.channels; ++i) ++ switch (map.map[i]) { ++ default: FIXME("Unhandled channel %s\n", pa_channel_position_to_string(map.map[i])); break; ++ case PA_CHANNEL_POSITION_FRONT_LEFT: fmt->dwChannelMask |= SPEAKER_FRONT_LEFT; break; ++ case PA_CHANNEL_POSITION_MONO: ++ case PA_CHANNEL_POSITION_FRONT_CENTER: fmt->dwChannelMask |= SPEAKER_FRONT_CENTER; break; ++ case PA_CHANNEL_POSITION_FRONT_RIGHT: fmt->dwChannelMask |= SPEAKER_FRONT_RIGHT; break; ++ case PA_CHANNEL_POSITION_REAR_LEFT: fmt->dwChannelMask |= SPEAKER_BACK_LEFT; break; ++ case PA_CHANNEL_POSITION_REAR_CENTER: fmt->dwChannelMask |= SPEAKER_BACK_CENTER; break; ++ case PA_CHANNEL_POSITION_REAR_RIGHT: fmt->dwChannelMask |= SPEAKER_BACK_RIGHT; break; ++ case PA_CHANNEL_POSITION_LFE: fmt->dwChannelMask |= SPEAKER_LOW_FREQUENCY; break; ++ case PA_CHANNEL_POSITION_SIDE_LEFT: fmt->dwChannelMask |= SPEAKER_SIDE_LEFT; break; ++ case PA_CHANNEL_POSITION_SIDE_RIGHT: fmt->dwChannelMask |= SPEAKER_SIDE_RIGHT; break; ++ case PA_CHANNEL_POSITION_TOP_CENTER: fmt->dwChannelMask |= SPEAKER_TOP_CENTER; break; ++ case PA_CHANNEL_POSITION_TOP_FRONT_LEFT: fmt->dwChannelMask |= SPEAKER_TOP_FRONT_LEFT; break; ++ case PA_CHANNEL_POSITION_TOP_FRONT_CENTER: fmt->dwChannelMask |= SPEAKER_TOP_FRONT_CENTER; break; ++ case PA_CHANNEL_POSITION_TOP_FRONT_RIGHT: fmt->dwChannelMask |= SPEAKER_TOP_FRONT_RIGHT; break; ++ case PA_CHANNEL_POSITION_TOP_REAR_LEFT: fmt->dwChannelMask |= SPEAKER_TOP_BACK_LEFT; break; ++ case PA_CHANNEL_POSITION_TOP_REAR_CENTER: fmt->dwChannelMask |= SPEAKER_TOP_BACK_CENTER; break; ++ case PA_CHANNEL_POSITION_TOP_REAR_RIGHT: fmt->dwChannelMask |= SPEAKER_TOP_BACK_RIGHT; break; ++ } ++} ++ ++static HRESULT pulse_connect(void) ++{ ++ int len; ++ WCHAR path[PATH_MAX], *name; ++ char *str; ++ ++ if (!pulse_thread) ++ { ++ if (!(pulse_thread = CreateThread(NULL, 0, pulse_mainloop_thread, NULL, 0, NULL))) ++ { ++ ERR("Failed to create mainloop thread."); ++ return E_FAIL; ++ } ++ SetThreadPriority(pulse_thread, THREAD_PRIORITY_TIME_CRITICAL); ++ pthread_cond_wait(&pulse_cond, &pulse_lock); ++ } ++ ++ if (pulse_ctx && PA_CONTEXT_IS_GOOD(pa_context_get_state(pulse_ctx))) ++ return S_OK; ++ if (pulse_ctx) ++ pa_context_unref(pulse_ctx); ++ ++ GetModuleFileNameW(NULL, path, sizeof(path)/sizeof(*path)); ++ name = strrchrW(path, '\\'); ++ if (!name) ++ name = path; ++ else ++ name++; ++ len = WideCharToMultiByte(CP_UNIXCP, 0, name, -1, NULL, 0, NULL, NULL); ++ str = pa_xmalloc(len); ++ WideCharToMultiByte(CP_UNIXCP, 0, name, -1, str, len, NULL, NULL); ++ TRACE("Name: %s\n", str); ++ pulse_ctx = pa_context_new(pa_mainloop_get_api(pulse_ml), str); ++ pa_xfree(str); ++ if (!pulse_ctx) { ++ ERR("Failed to create context\n"); ++ return E_FAIL; ++ } ++ ++ pa_context_set_state_callback(pulse_ctx, pulse_contextcallback, NULL); ++ ++ TRACE("libpulse protocol version: %u. API Version %u\n", pa_context_get_protocol_version(pulse_ctx), PA_API_VERSION); ++ if (pa_context_connect(pulse_ctx, NULL, 0, NULL) < 0) ++ goto fail; ++ ++ /* Wait for connection */ ++ while (pthread_cond_wait(&pulse_cond, &pulse_lock)) { ++ pa_context_state_t state = pa_context_get_state(pulse_ctx); ++ ++ if (state == PA_CONTEXT_FAILED || state == PA_CONTEXT_TERMINATED) ++ goto fail; ++ ++ if (state == PA_CONTEXT_READY) ++ break; ++ } ++ ++ TRACE("Connected to server %s with protocol version: %i.\n", ++ pa_context_get_server(pulse_ctx), ++ pa_context_get_server_protocol_version(pulse_ctx)); ++ pulse_probe_settings(1, &pulse_fmt[0]); ++ pulse_probe_settings(0, &pulse_fmt[1]); ++ return S_OK; ++ ++fail: ++ pa_context_unref(pulse_ctx); ++ pulse_ctx = NULL; ++ return E_FAIL; ++} ++ ++static void pulse_contextcallback(pa_context *c, void *userdata) { ++ switch (pa_context_get_state(c)) { ++ default: ++ FIXME("Unhandled state: %i\n", pa_context_get_state(c)); ++ case PA_CONTEXT_CONNECTING: ++ case PA_CONTEXT_UNCONNECTED: ++ case PA_CONTEXT_AUTHORIZING: ++ case PA_CONTEXT_SETTING_NAME: ++ case PA_CONTEXT_TERMINATED: ++ TRACE("State change to %i\n", pa_context_get_state(c)); ++ return; ++ ++ case PA_CONTEXT_READY: ++ TRACE("Ready\n"); ++ break; ++ ++ case PA_CONTEXT_FAILED: ++ ERR("Context failed: %s\n", pa_strerror(pa_context_errno(c))); ++ break; ++ } ++ pthread_cond_signal(&pulse_cond); ++} ++ ++static HRESULT pulse_stream_valid(ACImpl *This) { ++ if (!This->stream) ++ return AUDCLNT_E_NOT_INITIALIZED; ++ if (!This->stream || pa_stream_get_state(This->stream) != PA_STREAM_READY) ++ return AUDCLNT_E_DEVICE_INVALIDATED; ++ return S_OK; ++} ++ ++static void dump_attr(const pa_buffer_attr *attr) { ++ TRACE("maxlength: %u\n", attr->maxlength); ++ TRACE("minreq: %u\n", attr->minreq); ++ TRACE("fragsize: %u\n", attr->fragsize); ++ TRACE("tlength: %u\n", attr->tlength); ++ TRACE("prebuf: %u\n", attr->prebuf); ++} ++ ++static void pulse_op_cb(pa_stream *s, int success, void *user) { ++ TRACE("Success: %i\n", success); ++ *(int*)user = success; ++ pthread_cond_signal(&pulse_cond); ++} ++ ++static void pulse_ctx_op_cb(pa_context *c, int success, void *user) { ++ TRACE("Success: %i\n", success); ++ *(int*)user = success; ++ pthread_cond_signal(&pulse_cond); ++} ++ ++static void pulse_attr_update(pa_stream *s, void *user) { ++ const pa_buffer_attr *attr = pa_stream_get_buffer_attr(s); ++ TRACE("New attributes or device moved:\n"); ++ dump_attr(attr); ++} ++ ++static void pulse_wr_callback(pa_stream *s, size_t bytes, void *userdata) ++{ ++ ACImpl *This = userdata; ++ pa_usec_t time; ++ UINT32 oldpad = This->pad; ++ ++ if (bytes < This->bufsize_bytes) ++ This->pad = This->bufsize_bytes - bytes; ++ else ++ This->pad = 0; ++ ++ assert(oldpad >= This->pad); ++ ++ if (0 && This->pad && pa_stream_get_time(This->stream, &time) >= 0) ++ This->clock_pulse = time; ++ else ++ This->clock_pulse = PA_USEC_INVALID; ++ ++ This->clock_written += oldpad - This->pad; ++ TRACE("New pad: %u (-%u)\n", This->pad / pa_frame_size(&This->ss), (oldpad - This->pad) / pa_frame_size(&This->ss)); ++ ++ if (This->event) ++ SetEvent(This->event); ++} ++ ++static void pulse_underflow_callback(pa_stream *s, void *userdata) ++{ ++ ACImpl *This = userdata; ++ This->clock_pulse = PA_USEC_INVALID; ++ WARN("Underflow\n"); ++} ++ ++/* Latency is periodically updated even when nothing is played, ++ * because of PA_STREAM_AUTO_TIMING_UPDATE so use it as timer ++ * ++ * Perfect for passing all tests :) ++ */ ++static void pulse_latency_callback(pa_stream *s, void *userdata) ++{ ++ ACImpl *This = userdata; ++ if (!This->pad && This->event) ++ SetEvent(This->event); ++} ++ ++static void pulse_started_callback(pa_stream *s, void *userdata) ++{ ++ ACImpl *This = userdata; ++ pa_usec_t time; ++ ++ TRACE("(Re)started playing\n"); ++ assert(This->clock_pulse == PA_USEC_INVALID); ++ if (0 && pa_stream_get_time(This->stream, &time) >= 0) ++ This->clock_pulse = time; ++ if (This->event) ++ SetEvent(This->event); ++} ++ ++static void pulse_rd_loop(ACImpl *This, size_t bytes) ++{ ++ while (bytes >= This->capture_period) { ++ ACPacket *p, *next; ++ LARGE_INTEGER stamp, freq; ++ BYTE *dst, *src; ++ UINT32 src_len, copy, rem = This->capture_period; ++ if (!(p = (ACPacket*)list_head(&This->packet_free_head))) { ++ p = (ACPacket*)list_head(&This->packet_filled_head); ++ if (!p->discont) { ++ next = (ACPacket*)p->entry.next; ++ next->discont = 1; ++ } else ++ p = (ACPacket*)list_tail(&This->packet_filled_head); ++ assert(This->pad == This->bufsize_bytes); ++ } else { ++ assert(This->pad < This->bufsize_bytes); ++ This->pad += This->capture_period; ++ assert(This->pad <= This->bufsize_bytes); ++ } ++ QueryPerformanceCounter(&stamp); ++ QueryPerformanceFrequency(&freq); ++ p->qpcpos = (stamp.QuadPart * (INT64)10000000) / freq.QuadPart; ++ p->discont = 0; ++ list_remove(&p->entry); ++ list_add_tail(&This->packet_filled_head, &p->entry); ++ ++ dst = p->data; ++ while (rem) { ++ pa_stream_peek(This->stream, (const void**)&src, &src_len); ++ assert(src_len); ++ assert(This->peek_ofs < src_len); ++ src += This->peek_ofs; ++ src_len -= This->peek_ofs; ++ assert(src_len <= bytes); ++ ++ copy = rem; ++ if (copy > src_len) ++ copy = src_len; ++ memcpy(dst, src, rem); ++ src += copy; ++ src_len -= copy; ++ dst += copy; ++ rem -= copy; ++ ++ if (!src_len) { ++ This->peek_ofs = 0; ++ pa_stream_drop(This->stream); ++ } else ++ This->peek_ofs += copy; ++ } ++ bytes -= This->capture_period; ++ } ++} ++ ++static void pulse_rd_drop(ACImpl *This, size_t bytes) ++{ ++ while (bytes >= This->capture_period) { ++ UINT32 src_len, copy, rem = This->capture_period; ++ while (rem) { ++ const void *src; ++ pa_stream_peek(This->stream, &src, &src_len); ++ assert(src_len); ++ assert(This->peek_ofs < src_len); ++ src_len -= This->peek_ofs; ++ assert(src_len <= bytes); ++ ++ copy = rem; ++ if (copy > src_len) ++ copy = src_len; ++ ++ src_len -= copy; ++ rem -= copy; ++ ++ if (!src_len) { ++ This->peek_ofs = 0; ++ pa_stream_drop(This->stream); ++ } else ++ This->peek_ofs += copy; ++ bytes -= copy; ++ } ++ } ++} ++ ++static void pulse_rd_callback(pa_stream *s, size_t bytes, void *userdata) ++{ ++ ACImpl *This = userdata; ++ ++ TRACE("Readable total: %u, fragsize: %u\n", bytes, pa_stream_get_buffer_attr(s)->fragsize); ++ assert(bytes >= This->peek_ofs); ++ bytes -= This->peek_ofs; ++ if (bytes < This->capture_period) ++ return; ++ ++ if (This->started) ++ pulse_rd_loop(This, bytes); ++ else ++ pulse_rd_drop(This, bytes); ++ ++ if (This->event) ++ SetEvent(This->event); ++} ++ ++static void pulse_stream_state(pa_stream *s, void *user) ++{ ++ pa_stream_state_t state = pa_stream_get_state(s); ++ TRACE("Stream state changed to %i\n", state); ++ pthread_cond_signal(&pulse_cond); ++} ++ ++static HRESULT pulse_stream_connect(ACImpl *This, UINT32 period_bytes) { ++ int ret; ++ char buffer[64]; ++ static LONG number; ++ pa_buffer_attr attr; ++ if (This->stream) { ++ pa_stream_disconnect(This->stream); ++ while (pa_stream_get_state(This->stream) == PA_STREAM_READY) ++ pthread_cond_wait(&pulse_cond, &pulse_lock); ++ pa_stream_unref(This->stream); ++ } ++ ret = InterlockedIncrement(&number); ++ sprintf(buffer, "audio stream #%i", ret); ++ This->stream = pa_stream_new(pulse_ctx, buffer, &This->ss, &This->map); ++ pa_stream_set_state_callback(This->stream, pulse_stream_state, This); ++ pa_stream_set_buffer_attr_callback(This->stream, pulse_attr_update, This); ++ pa_stream_set_moved_callback(This->stream, pulse_attr_update, This); ++ ++ /* Pulseaudio will fill in correct values */ ++ attr.minreq = attr.fragsize = period_bytes; ++ attr.maxlength = attr.tlength = This->bufsize_bytes; ++ attr.prebuf = pa_frame_size(&This->ss); ++ dump_attr(&attr); ++ if (This->dataflow == eRender) ++ ret = pa_stream_connect_playback(This->stream, NULL, &attr, ++ PA_STREAM_START_CORKED|PA_STREAM_START_UNMUTED|PA_STREAM_AUTO_TIMING_UPDATE|PA_STREAM_INTERPOLATE_TIMING|PA_STREAM_EARLY_REQUESTS, NULL, NULL); ++ else ++ ret = pa_stream_connect_record(This->stream, NULL, &attr, ++ PA_STREAM_START_CORKED|PA_STREAM_START_UNMUTED|PA_STREAM_AUTO_TIMING_UPDATE|PA_STREAM_INTERPOLATE_TIMING|PA_STREAM_EARLY_REQUESTS); ++ if (ret < 0) { ++ WARN("Returns %i\n", ret); ++ return AUDCLNT_E_ENDPOINT_CREATE_FAILED; ++ } ++ while (pa_stream_get_state(This->stream) == PA_STREAM_CREATING) ++ pthread_cond_wait(&pulse_cond, &pulse_lock); ++ if (pa_stream_get_state(This->stream) != PA_STREAM_READY) ++ return AUDCLNT_E_ENDPOINT_CREATE_FAILED; ++ ++ if (This->dataflow == eRender) { ++ pa_stream_set_write_callback(This->stream, pulse_wr_callback, This); ++ pa_stream_set_underflow_callback(This->stream, pulse_underflow_callback, This); ++ pa_stream_set_started_callback(This->stream, pulse_started_callback, This); ++ } else ++ pa_stream_set_read_callback(This->stream, pulse_rd_callback, This); ++ return S_OK; ++} ++ ++HRESULT WINAPI AUDDRV_GetEndpointIDs(EDataFlow flow, const WCHAR ***ids, GUID **keys, ++ UINT *num, UINT *def_index) ++{ ++ HRESULT hr = S_OK; ++ TRACE("%d %p %p %p\n", flow, ids, num, def_index); ++ ++ pthread_mutex_lock(&pulse_lock); ++ hr = pulse_connect(); ++ pthread_mutex_unlock(&pulse_lock); ++ if (FAILED(hr)) ++ return hr; ++ *num = 1; ++ *def_index = 0; ++ ++ *ids = HeapAlloc(GetProcessHeap(), 0, sizeof(**ids)); ++ if (!*ids) ++ return E_OUTOFMEMORY; ++ (*ids)[0] = defaultW; ++ ++ *keys = HeapAlloc(GetProcessHeap(), 0, sizeof(**keys)); ++ if (!*keys) { ++ HeapFree(GetProcessHeap(), 0, *ids); ++ *ids = NULL; ++ return E_OUTOFMEMORY; ++ } ++ if (flow == eRender) ++ (*keys)[0] = pulse_render_guid; ++ else ++ (*keys)[0] = pulse_capture_guid; ++ ++ return S_OK; ++} ++ ++int WINAPI AUDDRV_GetPriority(void) ++{ ++ HRESULT hr; ++ if (getenv("WINENOPULSE")) { ++ FIXME_(winediag)("winepulse has been temporarily disabled through the environment\n"); ++ return 0; ++ } ++ pthread_mutex_lock(&pulse_lock); ++ hr = pulse_connect(); ++ pthread_mutex_unlock(&pulse_lock); ++ return SUCCEEDED(hr) ? 3 : 0; ++} ++ ++HRESULT WINAPI AUDDRV_GetAudioEndpoint(GUID *guid, IMMDevice *dev, IAudioClient **out) ++{ ++ HRESULT hr; ++ ACImpl *This; ++ int i; ++ EDataFlow dataflow; ++ ++ /* Give one visible warning per session ++ * Sadly wine has chosen not to accept the winepulse patch, so support ourselves ++ */ ++ if (!warn_once && (warn_once = CreateEventA(0, 0, 0, "__winepulse_warn_event")) && GetLastError() != ERROR_ALREADY_EXISTS) { ++ FIXME_(winediag)("Winepulse is not officially supported by the wine project\n"); ++ FIXME_(winediag)("For sound related feedback and support, please visit http://ubuntuforums.org/showthread.php?t=1960599\n"); ++ } else { ++ WARN_(winediag)("Winepulse is not officially supported by the wine project\n"); ++ WARN_(winediag)("For sound related feedback and support, please visit http://ubuntuforums.org/showthread.php?t=1960599\n"); ++ } ++ ++ TRACE("%s %p %p\n", debugstr_guid(guid), dev, out); ++ if (IsEqualGUID(guid, &pulse_render_guid)) ++ dataflow = eRender; ++ else if (IsEqualGUID(guid, &pulse_capture_guid)) ++ dataflow = eCapture; ++ else ++ return E_UNEXPECTED; ++ ++ *out = NULL; ++ pthread_mutex_lock(&pulse_lock); ++ hr = pulse_connect(); ++ pthread_mutex_unlock(&pulse_lock); ++ if (FAILED(hr)) ++ return hr; ++ ++ This = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*This)); ++ if (!This) ++ return E_OUTOFMEMORY; ++ ++ This->IAudioClient_iface.lpVtbl = &AudioClient_Vtbl; ++ This->IAudioRenderClient_iface.lpVtbl = &AudioRenderClient_Vtbl; ++ This->IAudioCaptureClient_iface.lpVtbl = &AudioCaptureClient_Vtbl; ++ This->IAudioClock_iface.lpVtbl = &AudioClock_Vtbl; ++ This->IAudioClock2_iface.lpVtbl = &AudioClock2_Vtbl; ++ This->IAudioStreamVolume_iface.lpVtbl = &AudioStreamVolume_Vtbl; ++ This->dataflow = dataflow; ++ This->parent = dev; ++ This->clock_pulse = PA_USEC_INVALID; ++ for (i = 0; i < PA_CHANNELS_MAX; ++i) ++ This->vol[i] = 1.f; ++ IMMDevice_AddRef(This->parent); ++ ++ *out = &This->IAudioClient_iface; ++ IAudioClient_AddRef(&This->IAudioClient_iface); ++ ++ return S_OK; ++} ++ ++static HRESULT WINAPI AudioClient_QueryInterface(IAudioClient *iface, ++ REFIID riid, void **ppv) ++{ ++ TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); ++ ++ if (!ppv) ++ return E_POINTER; ++ *ppv = NULL; ++ if (IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IAudioClient)) ++ *ppv = iface; ++ if (*ppv) { ++ IUnknown_AddRef((IUnknown*)*ppv); ++ return S_OK; ++ } ++ WARN("Unknown interface %s\n", debugstr_guid(riid)); ++ return E_NOINTERFACE; ++} ++ ++static ULONG WINAPI AudioClient_AddRef(IAudioClient *iface) ++{ ++ ACImpl *This = impl_from_IAudioClient(iface); ++ ULONG ref; ++ ref = InterlockedIncrement(&This->ref); ++ TRACE("(%p) Refcount now %u\n", This, ref); ++ return ref; ++} ++ ++static ULONG WINAPI AudioClient_Release(IAudioClient *iface) ++{ ++ ACImpl *This = impl_from_IAudioClient(iface); ++ ULONG ref; ++ ref = InterlockedDecrement(&This->ref); ++ TRACE("(%p) Refcount now %u\n", This, ref); ++ if (!ref) { ++ if (This->stream) { ++ pthread_mutex_lock(&pulse_lock); ++ if (PA_STREAM_IS_GOOD(pa_stream_get_state(This->stream))) { ++ pa_stream_disconnect(This->stream); ++ while (PA_STREAM_IS_GOOD(pa_stream_get_state(This->stream))) ++ pthread_cond_wait(&pulse_cond, &pulse_lock); ++ } ++ pa_stream_unref(This->stream); ++ This->stream = NULL; ++ list_remove(&This->entry); ++ pthread_mutex_unlock(&pulse_lock); ++ } ++ IMMDevice_Release(This->parent); ++ HeapFree(GetProcessHeap(), 0, This->tmp_buffer); ++ HeapFree(GetProcessHeap(), 0, This); ++ } ++ return ref; ++} ++ ++static void dump_fmt(const WAVEFORMATEX *fmt) ++{ ++ TRACE("wFormatTag: 0x%x (", fmt->wFormatTag); ++ switch(fmt->wFormatTag) { ++ case WAVE_FORMAT_PCM: ++ TRACE("WAVE_FORMAT_PCM"); ++ break; ++ case WAVE_FORMAT_IEEE_FLOAT: ++ TRACE("WAVE_FORMAT_IEEE_FLOAT"); ++ break; ++ case WAVE_FORMAT_EXTENSIBLE: ++ TRACE("WAVE_FORMAT_EXTENSIBLE"); ++ break; ++ default: ++ TRACE("Unknown"); ++ break; ++ } ++ TRACE(")\n"); ++ ++ TRACE("nChannels: %u\n", fmt->nChannels); ++ TRACE("nSamplesPerSec: %u\n", fmt->nSamplesPerSec); ++ TRACE("nAvgBytesPerSec: %u\n", fmt->nAvgBytesPerSec); ++ TRACE("nBlockAlign: %u\n", fmt->nBlockAlign); ++ TRACE("wBitsPerSample: %u\n", fmt->wBitsPerSample); ++ TRACE("cbSize: %u\n", fmt->cbSize); ++ ++ if (fmt->wFormatTag == WAVE_FORMAT_EXTENSIBLE) { ++ WAVEFORMATEXTENSIBLE *fmtex = (void*)fmt; ++ TRACE("dwChannelMask: %08x\n", fmtex->dwChannelMask); ++ TRACE("Samples: %04x\n", fmtex->Samples.wReserved); ++ TRACE("SubFormat: %s\n", wine_dbgstr_guid(&fmtex->SubFormat)); ++ } ++} ++ ++static WAVEFORMATEX *clone_format(const WAVEFORMATEX *fmt) ++{ ++ WAVEFORMATEX *ret; ++ size_t size; ++ ++ if (fmt->wFormatTag == WAVE_FORMAT_EXTENSIBLE) ++ size = sizeof(WAVEFORMATEXTENSIBLE); ++ else ++ size = sizeof(WAVEFORMATEX); ++ ++ ret = CoTaskMemAlloc(size); ++ if (!ret) ++ return NULL; ++ ++ memcpy(ret, fmt, size); ++ ++ ret->cbSize = size - sizeof(WAVEFORMATEX); ++ ++ return ret; ++} ++ ++static DWORD get_channel_mask(unsigned int channels) ++{ ++ switch(channels) { ++ case 0: ++ return 0; ++ case 1: ++ return SPEAKER_FRONT_CENTER; ++ case 2: ++ return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT; ++ case 3: ++ return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | ++ SPEAKER_LOW_FREQUENCY; ++ case 4: ++ return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT | ++ SPEAKER_BACK_RIGHT; ++ case 5: ++ return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT | ++ SPEAKER_BACK_RIGHT | SPEAKER_LOW_FREQUENCY; ++ case 6: ++ return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT | ++ SPEAKER_BACK_RIGHT | SPEAKER_LOW_FREQUENCY | SPEAKER_FRONT_CENTER; ++ case 7: ++ return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT | ++ SPEAKER_BACK_RIGHT | SPEAKER_LOW_FREQUENCY | SPEAKER_FRONT_CENTER | ++ SPEAKER_BACK_CENTER; ++ case 8: ++ return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT | ++ SPEAKER_BACK_RIGHT | SPEAKER_LOW_FREQUENCY | SPEAKER_FRONT_CENTER | ++ SPEAKER_SIDE_LEFT | SPEAKER_SIDE_RIGHT; ++ } ++ FIXME("Unknown speaker configuration: %u\n", channels); ++ return 0; ++} ++ ++static void session_init_vols(AudioSession *session, UINT channels) ++{ ++ if (session->channel_count < channels) { ++ UINT i; ++ ++ if (session->channel_vols) ++ session->channel_vols = HeapReAlloc(GetProcessHeap(), 0, ++ session->channel_vols, sizeof(float) * channels); ++ else ++ session->channel_vols = HeapAlloc(GetProcessHeap(), 0, ++ sizeof(float) * channels); ++ if (!session->channel_vols) ++ return; ++ ++ for(i = session->channel_count; i < channels; ++i) ++ session->channel_vols[i] = 1.f; ++ ++ session->channel_count = channels; ++ } ++} ++ ++static AudioSession *create_session(const GUID *guid, IMMDevice *device, ++ UINT num_channels) ++{ ++ AudioSession *ret; ++ ++ ret = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(AudioSession)); ++ if (!ret) ++ return NULL; ++ ++ memcpy(&ret->guid, guid, sizeof(GUID)); ++ ++ ret->device = device; ++ ++ list_init(&ret->clients); ++ ++ list_add_head(&g_sessions, &ret->entry); ++ ++ session_init_vols(ret, num_channels); ++ ++ ret->master_vol = 1.f; ++ ++ return ret; ++} ++ ++/* if channels == 0, then this will return or create a session with ++ * matching dataflow and GUID. otherwise, channels must also match */ ++static HRESULT get_audio_session(const GUID *sessionguid, ++ IMMDevice *device, UINT channels, AudioSession **out) ++{ ++ AudioSession *session; ++ ++ if (!sessionguid || IsEqualGUID(sessionguid, &GUID_NULL)) { ++ *out = create_session(&GUID_NULL, device, channels); ++ if (!*out) ++ return E_OUTOFMEMORY; ++ ++ return S_OK; ++ } ++ ++ *out = NULL; ++ LIST_FOR_EACH_ENTRY(session, &g_sessions, AudioSession, entry) { ++ if (session->device == device && ++ IsEqualGUID(sessionguid, &session->guid)) { ++ session_init_vols(session, channels); ++ *out = session; ++ break; ++ } ++ } ++ ++ if (!*out) { ++ *out = create_session(sessionguid, device, channels); ++ if (!*out) ++ return E_OUTOFMEMORY; ++ } ++ ++ return S_OK; ++} ++ ++static HRESULT pulse_spec_from_waveformat(ACImpl *This, const WAVEFORMATEX *fmt) ++{ ++ pa_channel_map_init(&This->map); ++ This->ss.rate = fmt->nSamplesPerSec; ++ This->ss.format = PA_SAMPLE_INVALID; ++ switch(fmt->wFormatTag) { ++ case WAVE_FORMAT_IEEE_FLOAT: ++ if (!fmt->nChannels || fmt->nChannels > 2 || fmt->wBitsPerSample != 32) ++ break; ++ This->ss.format = PA_SAMPLE_FLOAT32LE; ++ pa_channel_map_init_auto(&This->map, fmt->nChannels, PA_CHANNEL_MAP_ALSA); ++ break; ++ case WAVE_FORMAT_PCM: ++ if (!fmt->nChannels || fmt->nChannels > 2) ++ break; ++ if (fmt->wBitsPerSample == 8) ++ This->ss.format = PA_SAMPLE_U8; ++ else if (fmt->wBitsPerSample == 16) ++ This->ss.format = PA_SAMPLE_S16LE; ++ else ++ return AUDCLNT_E_UNSUPPORTED_FORMAT; ++ pa_channel_map_init_auto(&This->map, fmt->nChannels, PA_CHANNEL_MAP_ALSA); ++ break; ++ case WAVE_FORMAT_EXTENSIBLE: { ++ WAVEFORMATEXTENSIBLE *wfe = (WAVEFORMATEXTENSIBLE*)fmt; ++ DWORD mask = wfe->dwChannelMask; ++ DWORD i = 0, j; ++ if (fmt->cbSize != (sizeof(*wfe) - sizeof(*fmt)) && fmt->cbSize != sizeof(*wfe)) ++ break; ++ if (IsEqualGUID(&wfe->SubFormat, &KSDATAFORMAT_SUBTYPE_IEEE_FLOAT) && ++ (!wfe->Samples.wValidBitsPerSample || wfe->Samples.wValidBitsPerSample == 32) && ++ fmt->wBitsPerSample == 32) ++ This->ss.format = PA_SAMPLE_FLOAT32LE; ++ else if (IsEqualGUID(&wfe->SubFormat, &KSDATAFORMAT_SUBTYPE_PCM)) { ++ DWORD valid = wfe->Samples.wValidBitsPerSample; ++ if (!valid) ++ valid = fmt->wBitsPerSample; ++ if (!valid || valid > fmt->wBitsPerSample) ++ break; ++ switch (fmt->wBitsPerSample) { ++ case 8: ++ if (valid == 8) ++ This->ss.format = PA_SAMPLE_U8; ++ break; ++ case 16: ++ if (valid == 16) ++ This->ss.format = PA_SAMPLE_S16LE; ++ break; ++ case 24: ++ if (valid == 24) ++ This->ss.format = PA_SAMPLE_S24LE; ++ break; ++ case 32: ++ if (valid == 24) ++ This->ss.format = PA_SAMPLE_S24_32LE; ++ else if (valid == 32) ++ This->ss.format = PA_SAMPLE_S32LE; ++ break; ++ default: ++ return AUDCLNT_E_UNSUPPORTED_FORMAT; ++ } ++ } ++ This->map.channels = fmt->nChannels; ++ if (!mask || mask == SPEAKER_ALL) ++ mask = get_channel_mask(fmt->nChannels); ++ else if (mask == ~0U && fmt->nChannels == 1) ++ mask = SPEAKER_FRONT_CENTER; ++ for (j = 0; j < sizeof(pulse_pos_from_wfx)/sizeof(*pulse_pos_from_wfx) && i < fmt->nChannels; ++j) { ++ if (mask & (1 << j)) ++ This->map.map[i++] = pulse_pos_from_wfx[j]; ++ } ++ ++ /* Special case for mono since pulse appears to map it differently */ ++ if (mask == SPEAKER_FRONT_CENTER) ++ This->map.map[0] = PA_CHANNEL_POSITION_MONO; ++ ++ if (i < fmt->nChannels || (mask & SPEAKER_RESERVED)) { ++ This->map.channels = 0; ++ ERR("Invalid channel mask: %i/%i and %x(%x)\n", i, fmt->nChannels, mask, wfe->dwChannelMask); ++ break; ++ } ++ break; ++ } ++ case WAVE_FORMAT_ALAW: ++ case WAVE_FORMAT_MULAW: ++ if (fmt->wBitsPerSample != 8) { ++ FIXME("Unsupported bpp %u for LAW\n", fmt->wBitsPerSample); ++ return AUDCLNT_E_UNSUPPORTED_FORMAT; ++ } ++ if (fmt->nChannels != 1 && fmt->nChannels != 2) { ++ FIXME("Unsupported channels %u for LAW\n", fmt->nChannels); ++ return AUDCLNT_E_UNSUPPORTED_FORMAT; ++ } ++ This->ss.format = fmt->wFormatTag == WAVE_FORMAT_MULAW ? PA_SAMPLE_ULAW : PA_SAMPLE_ALAW; ++ pa_channel_map_init_auto(&This->map, fmt->nChannels, PA_CHANNEL_MAP_ALSA); ++ break; ++ default: ++ WARN("Unhandled tag %x\n", fmt->wFormatTag); ++ return AUDCLNT_E_UNSUPPORTED_FORMAT; ++ } ++ This->ss.channels = This->map.channels; ++ if (!pa_channel_map_valid(&This->map) || This->ss.format == PA_SAMPLE_INVALID) { ++ ERR("Invalid format! Channel spec valid: %i, format: %i\n", pa_channel_map_valid(&This->map), This->ss.format); ++ dump_fmt(fmt); ++ return AUDCLNT_E_UNSUPPORTED_FORMAT; ++ } ++ return S_OK; ++} ++ ++static HRESULT WINAPI AudioClient_Initialize(IAudioClient *iface, ++ AUDCLNT_SHAREMODE mode, DWORD flags, REFERENCE_TIME duration, ++ REFERENCE_TIME period, const WAVEFORMATEX *fmt, ++ const GUID *sessionguid) ++{ ++ ACImpl *This = impl_from_IAudioClient(iface); ++ HRESULT hr = S_OK; ++ UINT period_bytes; ++ ++ TRACE("(%p)->(%x, %x, %s, %s, %p, %s)\n", This, mode, flags, ++ wine_dbgstr_longlong(duration), wine_dbgstr_longlong(period), fmt, debugstr_guid(sessionguid)); ++ ++ if (!fmt) ++ return E_POINTER; ++ ++ if (mode != AUDCLNT_SHAREMODE_SHARED && mode != AUDCLNT_SHAREMODE_EXCLUSIVE) ++ return AUDCLNT_E_NOT_INITIALIZED; ++ if (mode == AUDCLNT_SHAREMODE_EXCLUSIVE) ++ return AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED; ++ ++ if (flags & ~(AUDCLNT_STREAMFLAGS_CROSSPROCESS | ++ AUDCLNT_STREAMFLAGS_LOOPBACK | ++ AUDCLNT_STREAMFLAGS_EVENTCALLBACK | ++ AUDCLNT_STREAMFLAGS_NOPERSIST | ++ AUDCLNT_STREAMFLAGS_RATEADJUST | ++ AUDCLNT_SESSIONFLAGS_EXPIREWHENUNOWNED | ++ AUDCLNT_SESSIONFLAGS_DISPLAY_HIDE | ++ AUDCLNT_SESSIONFLAGS_DISPLAY_HIDEWHENEXPIRED)) { ++ TRACE("Unknown flags: %08x\n", flags); ++ return E_INVALIDARG; ++ } ++ ++ pthread_mutex_lock(&pulse_lock); ++ if (This->stream) { ++ pthread_mutex_unlock(&pulse_lock); ++ return AUDCLNT_E_ALREADY_INITIALIZED; ++ } ++ ++ hr = pulse_spec_from_waveformat(This, fmt); ++ if (FAILED(hr)) ++ goto exit; ++ ++ if (mode == AUDCLNT_SHAREMODE_SHARED) { ++ period = pulse_def_period[This->dataflow == eCapture]; ++ if (duration < 2 * period) ++ duration = 2 * period; ++ } ++ period_bytes = pa_frame_size(&This->ss) * MulDiv(period, This->ss.rate, 10000000); ++ ++ if (duration < 20000000) ++ This->bufsize_frames = ceil((duration / 10000000.) * fmt->nSamplesPerSec); ++ else ++ This->bufsize_frames = 2 * fmt->nSamplesPerSec; ++ This->bufsize_bytes = This->bufsize_frames * pa_frame_size(&This->ss); ++ ++ This->share = mode; ++ This->flags = flags; ++ hr = pulse_stream_connect(This, period_bytes); ++ if (SUCCEEDED(hr)) { ++ UINT32 unalign; ++ const pa_buffer_attr *attr = pa_stream_get_buffer_attr(This->stream); ++ /* Update frames according to new size */ ++ dump_attr(attr); ++ if (This->dataflow == eRender) ++ This->bufsize_bytes = attr->tlength; ++ else { ++ This->capture_period = period_bytes = attr->fragsize; ++ if ((unalign = This->bufsize_bytes % period_bytes)) ++ This->bufsize_bytes += period_bytes - unalign; ++ } ++ This->bufsize_frames = This->bufsize_bytes / pa_frame_size(&This->ss); ++ } ++ if (SUCCEEDED(hr)) { ++ UINT32 i, capture_packets = This->capture_period ? This->bufsize_bytes / This->capture_period : 0; ++ This->tmp_buffer = HeapAlloc(GetProcessHeap(), 0, This->bufsize_bytes + capture_packets * sizeof(ACPacket)); ++ if (!This->tmp_buffer) ++ hr = E_OUTOFMEMORY; ++ else { ++ ACPacket *cur_packet = (ACPacket*)((char*)This->tmp_buffer + This->bufsize_bytes); ++ BYTE *data = This->tmp_buffer; ++ memset(This->tmp_buffer, This->ss.format == PA_SAMPLE_U8 ? 0x80 : 0, This->bufsize_bytes); ++ list_init(&This->packet_free_head); ++ list_init(&This->packet_filled_head); ++ for (i = 0; i < capture_packets; ++i, ++cur_packet) { ++ list_add_tail(&This->packet_free_head, &cur_packet->entry); ++ cur_packet->data = data; ++ data += This->capture_period; ++ } ++ assert(!This->capture_period || This->bufsize_bytes == This->capture_period * capture_packets); ++ assert(!capture_packets || data - This->bufsize_bytes == This->tmp_buffer); ++ } ++ } ++ if (SUCCEEDED(hr)) ++ hr = get_audio_session(sessionguid, This->parent, fmt->nChannels, &This->session); ++ if (SUCCEEDED(hr)) ++ list_add_tail(&This->session->clients, &This->entry); ++ ++exit: ++ if (FAILED(hr)) { ++ HeapFree(GetProcessHeap(), 0, This->tmp_buffer); ++ This->tmp_buffer = NULL; ++ if (This->stream) { ++ pa_stream_disconnect(This->stream); ++ pa_stream_unref(This->stream); ++ This->stream = NULL; ++ } ++ } ++ pthread_mutex_unlock(&pulse_lock); ++ return hr; ++} ++ ++static HRESULT WINAPI AudioClient_GetBufferSize(IAudioClient *iface, ++ UINT32 *out) ++{ ++ ACImpl *This = impl_from_IAudioClient(iface); ++ HRESULT hr; ++ ++ TRACE("(%p)->(%p)\n", This, out); ++ ++ if (!out) ++ return E_POINTER; ++ ++ pthread_mutex_lock(&pulse_lock); ++ hr = pulse_stream_valid(This); ++ if (SUCCEEDED(hr)) ++ *out = This->bufsize_frames; ++ pthread_mutex_unlock(&pulse_lock); ++ ++ return hr; ++} ++ ++static HRESULT WINAPI AudioClient_GetStreamLatency(IAudioClient *iface, ++ REFERENCE_TIME *latency) ++{ ++ ACImpl *This = impl_from_IAudioClient(iface); ++ const pa_buffer_attr *attr; ++ REFERENCE_TIME lat; ++ HRESULT hr; ++ ++ TRACE("(%p)->(%p)\n", This, latency); ++ ++ if (!latency) ++ return E_POINTER; ++ ++ pthread_mutex_lock(&pulse_lock); ++ hr = pulse_stream_valid(This); ++ if (FAILED(hr)) { ++ pthread_mutex_unlock(&pulse_lock); ++ return hr; ++ } ++ attr = pa_stream_get_buffer_attr(This->stream); ++ if (This->dataflow == eRender) ++ lat = attr->minreq / pa_frame_size(&This->ss); ++ else ++ lat = attr->fragsize / pa_frame_size(&This->ss); ++ *latency = 10000000; ++ *latency *= lat; ++ *latency /= This->ss.rate; ++ pthread_mutex_unlock(&pulse_lock); ++ TRACE("Latency: %u ms\n", (DWORD)(*latency / 10000)); ++ return S_OK; ++} ++ ++static void ACImpl_GetRenderPad(ACImpl *This, UINT32 *out) ++{ ++ *out = This->pad / pa_frame_size(&This->ss); ++} ++ ++static void ACImpl_GetCapturePad(ACImpl *This, UINT32 *out) ++{ ++ ACPacket *packet = This->locked_ptr; ++ if (!packet && !list_empty(&This->packet_filled_head)) { ++ packet = (ACPacket*)list_head(&This->packet_filled_head); ++ This->locked_ptr = packet; ++ list_remove(&packet->entry); ++ } ++ if (out) ++ *out = This->pad / pa_frame_size(&This->ss); ++} ++ ++static HRESULT WINAPI AudioClient_GetCurrentPadding(IAudioClient *iface, ++ UINT32 *out) ++{ ++ ACImpl *This = impl_from_IAudioClient(iface); ++ HRESULT hr; ++ ++ TRACE("(%p)->(%p)\n", This, out); ++ ++ if (!out) ++ return E_POINTER; ++ ++ pthread_mutex_lock(&pulse_lock); ++ hr = pulse_stream_valid(This); ++ if (FAILED(hr)) { ++ pthread_mutex_unlock(&pulse_lock); ++ return hr; ++ } ++ ++ if (This->dataflow == eRender) ++ ACImpl_GetRenderPad(This, out); ++ else ++ ACImpl_GetCapturePad(This, out); ++ pthread_mutex_unlock(&pulse_lock); ++ ++ TRACE("%p Pad: %u ms (%u)\n", This, MulDiv(*out, 1000, This->ss.rate), *out); ++ return S_OK; ++} ++ ++static HRESULT WINAPI AudioClient_IsFormatSupported(IAudioClient *iface, ++ AUDCLNT_SHAREMODE mode, const WAVEFORMATEX *fmt, ++ WAVEFORMATEX **out) ++{ ++ ACImpl *This = impl_from_IAudioClient(iface); ++ HRESULT hr = S_OK; ++ WAVEFORMATEX *closest = NULL; ++ ++ TRACE("(%p)->(%x, %p, %p)\n", This, mode, fmt, out); ++ ++ if (!fmt || (mode == AUDCLNT_SHAREMODE_SHARED && !out)) ++ return E_POINTER; ++ ++ if (out) ++ *out = NULL; ++ if (mode != AUDCLNT_SHAREMODE_SHARED && mode != AUDCLNT_SHAREMODE_EXCLUSIVE) ++ return E_INVALIDARG; ++ if (mode == AUDCLNT_SHAREMODE_EXCLUSIVE) ++ return This->dataflow == eCapture ? AUDCLNT_E_UNSUPPORTED_FORMAT : AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED; ++ switch (fmt->wFormatTag) { ++ case WAVE_FORMAT_EXTENSIBLE: ++ if (fmt->cbSize < sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX)) ++ return E_INVALIDARG; ++ dump_fmt(fmt); ++ break; ++ case WAVE_FORMAT_ALAW: ++ case WAVE_FORMAT_MULAW: ++ case WAVE_FORMAT_IEEE_FLOAT: ++ case WAVE_FORMAT_PCM: ++ dump_fmt(fmt); ++ break; ++ default: ++ dump_fmt(fmt); ++ return AUDCLNT_E_UNSUPPORTED_FORMAT; ++ } ++ if (fmt->nChannels == 0) ++ return AUDCLNT_E_UNSUPPORTED_FORMAT; ++ closest = clone_format(fmt); ++ if (!closest) { ++ if (out) ++ *out = NULL; ++ return E_OUTOFMEMORY; ++ } ++ ++ if (fmt->wFormatTag == WAVE_FORMAT_EXTENSIBLE) { ++ UINT32 mask = 0, i, channels = 0; ++ WAVEFORMATEXTENSIBLE *ext = (WAVEFORMATEXTENSIBLE*)closest; ++ ++ if ((fmt->nChannels > 1 && ext->dwChannelMask == SPEAKER_ALL) || ++ (fmt->nChannels == 1 && ext->dwChannelMask == ~0U)) { ++ mask = ext->dwChannelMask; ++ channels = fmt->nChannels; ++ } else if (ext->dwChannelMask) { ++ for (i = 1; !(i & SPEAKER_RESERVED); i <<= 1) { ++ if (i & ext->dwChannelMask) { ++ mask |= i; ++ channels++; ++ } ++ } ++ if (channels < fmt->nChannels) ++ mask = get_channel_mask(fmt->nChannels); ++ } else ++ mask = ext->dwChannelMask; ++ if (ext->dwChannelMask != mask) { ++ ext->dwChannelMask = mask; ++ hr = S_FALSE; ++ } ++ } ++ ++ if (hr == S_OK || !out) { ++ CoTaskMemFree(closest); ++ if (out) ++ *out = NULL; ++ } else if (closest) { ++ closest->nBlockAlign = ++ closest->nChannels * closest->wBitsPerSample / 8; ++ closest->nAvgBytesPerSec = ++ closest->nBlockAlign * closest->nSamplesPerSec; ++ *out = closest; ++ } ++ ++ TRACE("returning: %08x %p\n", hr, out ? *out : NULL); ++ return hr; ++} ++ ++static HRESULT WINAPI AudioClient_GetMixFormat(IAudioClient *iface, ++ WAVEFORMATEX **pwfx) ++{ ++ ACImpl *This = impl_from_IAudioClient(iface); ++ WAVEFORMATEXTENSIBLE *fmt = &pulse_fmt[This->dataflow == eCapture]; ++ ++ TRACE("(%p)->(%p)\n", This, pwfx); ++ ++ if (!pwfx) ++ return E_POINTER; ++ ++ *pwfx = clone_format(&fmt->Format); ++ if (!*pwfx) ++ return E_OUTOFMEMORY; ++ dump_fmt(*pwfx); ++ return S_OK; ++} ++ ++static HRESULT WINAPI AudioClient_GetDevicePeriod(IAudioClient *iface, ++ REFERENCE_TIME *defperiod, REFERENCE_TIME *minperiod) ++{ ++ ACImpl *This = impl_from_IAudioClient(iface); ++ ++ TRACE("(%p)->(%p, %p)\n", This, defperiod, minperiod); ++ ++ if (!defperiod && !minperiod) ++ return E_POINTER; ++ ++ if (defperiod) ++ *defperiod = pulse_def_period[This->dataflow == eCapture]; ++ if (minperiod) ++ *minperiod = pulse_min_period[This->dataflow == eCapture]; ++ ++ return S_OK; ++} ++ ++static HRESULT WINAPI AudioClient_Start(IAudioClient *iface) ++{ ++ ACImpl *This = impl_from_IAudioClient(iface); ++ HRESULT hr = S_OK; ++ int success; ++ pa_operation *o; ++ ++ TRACE("(%p)\n", This); ++ ++ pthread_mutex_lock(&pulse_lock); ++ hr = pulse_stream_valid(This); ++ if (FAILED(hr)) { ++ pthread_mutex_unlock(&pulse_lock); ++ return hr; ++ } ++ ++ if ((This->flags & AUDCLNT_STREAMFLAGS_EVENTCALLBACK) && !This->event) { ++ pthread_mutex_unlock(&pulse_lock); ++ return AUDCLNT_E_EVENTHANDLE_NOT_SET; ++ } ++ ++ if (This->started) { ++ pthread_mutex_unlock(&pulse_lock); ++ return AUDCLNT_E_NOT_STOPPED; ++ } ++ This->clock_pulse = PA_USEC_INVALID; ++ ++ if (pa_stream_is_corked(This->stream)) { ++ o = pa_stream_cork(This->stream, 0, pulse_op_cb, &success); ++ if (o) { ++ while(pa_operation_get_state(o) == PA_OPERATION_RUNNING) ++ pthread_cond_wait(&pulse_cond, &pulse_lock); ++ pa_operation_unref(o); ++ } else ++ success = 0; ++ if (!success) ++ hr = E_FAIL; ++ } ++ if (SUCCEEDED(hr)) { ++ This->started = TRUE; ++ if (This->dataflow == eRender && This->event) ++ pa_stream_set_latency_update_callback(This->stream, pulse_latency_callback, This); ++ } ++ pthread_mutex_unlock(&pulse_lock); ++ return hr; ++} ++ ++static HRESULT WINAPI AudioClient_Stop(IAudioClient *iface) ++{ ++ ACImpl *This = impl_from_IAudioClient(iface); ++ HRESULT hr = S_OK; ++ pa_operation *o; ++ int success; ++ ++ TRACE("(%p)\n", This); ++ ++ pthread_mutex_lock(&pulse_lock); ++ hr = pulse_stream_valid(This); ++ if (FAILED(hr)) { ++ pthread_mutex_unlock(&pulse_lock); ++ return hr; ++ } ++ ++ if (!This->started) { ++ pthread_mutex_unlock(&pulse_lock); ++ return S_FALSE; ++ } ++ ++ if (This->dataflow == eRender) { ++ o = pa_stream_cork(This->stream, 1, pulse_op_cb, &success); ++ if (o) { ++ while(pa_operation_get_state(o) == PA_OPERATION_RUNNING) ++ pthread_cond_wait(&pulse_cond, &pulse_lock); ++ pa_operation_unref(o); ++ } else ++ success = 0; ++ if (!success) ++ hr = E_FAIL; ++ } ++ if (SUCCEEDED(hr)) { ++ This->started = FALSE; ++ This->clock_pulse = PA_USEC_INVALID; ++ } ++ pthread_mutex_unlock(&pulse_lock); ++ return hr; ++} ++ ++static HRESULT WINAPI AudioClient_Reset(IAudioClient *iface) ++{ ++ ACImpl *This = impl_from_IAudioClient(iface); ++ HRESULT hr = S_OK; ++ ++ TRACE("(%p)\n", This); ++ ++ pthread_mutex_lock(&pulse_lock); ++ hr = pulse_stream_valid(This); ++ if (FAILED(hr)) { ++ pthread_mutex_unlock(&pulse_lock); ++ return hr; ++ } ++ ++ if (This->started) { ++ pthread_mutex_unlock(&pulse_lock); ++ return AUDCLNT_E_NOT_STOPPED; ++ } ++ ++ if (This->locked) { ++ pthread_mutex_unlock(&pulse_lock); ++ return AUDCLNT_E_BUFFER_OPERATION_PENDING; ++ } ++ ++ if (This->dataflow == eRender) { ++ /* If there is still data in the render buffer it needs to be removed from the server */ ++ int success = 0; ++ if (This->pad) { ++ pa_operation *o = pa_stream_flush(This->stream, pulse_op_cb, &success); ++ if (o) { ++ while(pa_operation_get_state(o) == PA_OPERATION_RUNNING) ++ pthread_cond_wait(&pulse_cond, &pulse_lock); ++ pa_operation_unref(o); ++ } ++ } ++ if (success || !This->pad) ++ This->clock_lastpos = This->clock_written = This->pad = 0; ++ } else { ++ ACPacket *p; ++ This->clock_written += This->pad; ++ This->pad = 0; ++ ++ if ((p = This->locked_ptr)) { ++ This->locked_ptr = NULL; ++ list_add_tail(&This->packet_free_head, &p->entry); ++ } ++ list_move_tail(&This->packet_free_head, &This->packet_filled_head); ++ } ++ pthread_mutex_unlock(&pulse_lock); ++ ++ return hr; ++} ++ ++static HRESULT WINAPI AudioClient_SetEventHandle(IAudioClient *iface, ++ HANDLE event) ++{ ++ ACImpl *This = impl_from_IAudioClient(iface); ++ HRESULT hr; ++ ++ TRACE("(%p)->(%p)\n", This, event); ++ ++ if (!event) ++ return E_INVALIDARG; ++ ++ pthread_mutex_lock(&pulse_lock); ++ hr = pulse_stream_valid(This); ++ if (FAILED(hr)) { ++ pthread_mutex_unlock(&pulse_lock); ++ return hr; ++ } ++ ++ if (!(This->flags & AUDCLNT_STREAMFLAGS_EVENTCALLBACK)) ++ hr = AUDCLNT_E_EVENTHANDLE_NOT_EXPECTED; ++ else if (This->event) ++ hr = HRESULT_FROM_WIN32(ERROR_INVALID_NAME); ++ else ++ This->event = event; ++ pthread_mutex_unlock(&pulse_lock); ++ return hr; ++} ++ ++static HRESULT WINAPI AudioClient_GetService(IAudioClient *iface, REFIID riid, ++ void **ppv) ++{ ++ ACImpl *This = impl_from_IAudioClient(iface); ++ HRESULT hr; ++ ++ TRACE("(%p)->(%s, %p)\n", This, debugstr_guid(riid), ppv); ++ ++ if (!ppv) ++ return E_POINTER; ++ *ppv = NULL; ++ ++ pthread_mutex_lock(&pulse_lock); ++ hr = pulse_stream_valid(This); ++ pthread_mutex_unlock(&pulse_lock); ++ if (FAILED(hr)) ++ return hr; ++ ++ if (IsEqualIID(riid, &IID_IAudioRenderClient)) { ++ if (This->dataflow != eRender) ++ return AUDCLNT_E_WRONG_ENDPOINT_TYPE; ++ *ppv = &This->IAudioRenderClient_iface; ++ } else if (IsEqualIID(riid, &IID_IAudioCaptureClient)) { ++ if (This->dataflow != eCapture) ++ return AUDCLNT_E_WRONG_ENDPOINT_TYPE; ++ *ppv = &This->IAudioCaptureClient_iface; ++ } else if (IsEqualIID(riid, &IID_IAudioClock)) { ++ *ppv = &This->IAudioClock_iface; ++ } else if (IsEqualIID(riid, &IID_IAudioStreamVolume)) { ++ *ppv = &This->IAudioStreamVolume_iface; ++ } else if (IsEqualIID(riid, &IID_IAudioSessionControl) || ++ IsEqualIID(riid, &IID_IChannelAudioVolume) || ++ IsEqualIID(riid, &IID_ISimpleAudioVolume)) { ++ if (!This->session_wrapper) { ++ This->session_wrapper = AudioSessionWrapper_Create(This); ++ if (!This->session_wrapper) ++ return E_OUTOFMEMORY; ++ } ++ if (IsEqualIID(riid, &IID_IAudioSessionControl)) ++ *ppv = &This->session_wrapper->IAudioSessionControl2_iface; ++ else if (IsEqualIID(riid, &IID_IChannelAudioVolume)) ++ *ppv = &This->session_wrapper->IChannelAudioVolume_iface; ++ else if (IsEqualIID(riid, &IID_ISimpleAudioVolume)) ++ *ppv = &This->session_wrapper->ISimpleAudioVolume_iface; ++ } ++ ++ if (*ppv) { ++ IUnknown_AddRef((IUnknown*)*ppv); ++ return S_OK; ++ } ++ ++ FIXME("stub %s\n", debugstr_guid(riid)); ++ return E_NOINTERFACE; ++} ++ ++static const IAudioClientVtbl AudioClient_Vtbl = ++{ ++ AudioClient_QueryInterface, ++ AudioClient_AddRef, ++ AudioClient_Release, ++ AudioClient_Initialize, ++ AudioClient_GetBufferSize, ++ AudioClient_GetStreamLatency, ++ AudioClient_GetCurrentPadding, ++ AudioClient_IsFormatSupported, ++ AudioClient_GetMixFormat, ++ AudioClient_GetDevicePeriod, ++ AudioClient_Start, ++ AudioClient_Stop, ++ AudioClient_Reset, ++ AudioClient_SetEventHandle, ++ AudioClient_GetService ++}; ++ ++static HRESULT WINAPI AudioRenderClient_QueryInterface( ++ IAudioRenderClient *iface, REFIID riid, void **ppv) ++{ ++ TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); ++ ++ if (!ppv) ++ return E_POINTER; ++ *ppv = NULL; ++ ++ if (IsEqualIID(riid, &IID_IUnknown) || ++ IsEqualIID(riid, &IID_IAudioRenderClient)) ++ *ppv = iface; ++ if (*ppv) { ++ IUnknown_AddRef((IUnknown*)*ppv); ++ return S_OK; ++ } ++ ++ WARN("Unknown interface %s\n", debugstr_guid(riid)); ++ return E_NOINTERFACE; ++} ++ ++static ULONG WINAPI AudioRenderClient_AddRef(IAudioRenderClient *iface) ++{ ++ ACImpl *This = impl_from_IAudioRenderClient(iface); ++ return AudioClient_AddRef(&This->IAudioClient_iface); ++} ++ ++static ULONG WINAPI AudioRenderClient_Release(IAudioRenderClient *iface) ++{ ++ ACImpl *This = impl_from_IAudioRenderClient(iface); ++ return AudioClient_Release(&This->IAudioClient_iface); ++} ++ ++static HRESULT WINAPI AudioRenderClient_GetBuffer(IAudioRenderClient *iface, ++ UINT32 frames, BYTE **data) ++{ ++ ACImpl *This = impl_from_IAudioRenderClient(iface); ++ UINT32 avail, pad, req, bytes = frames * pa_frame_size(&This->ss); ++ HRESULT hr = S_OK; ++ int ret = -1; ++ ++ TRACE("(%p)->(%u, %p)\n", This, frames, data); ++ ++ if (!data) ++ return E_POINTER; ++ *data = NULL; ++ ++ pthread_mutex_lock(&pulse_lock); ++ hr = pulse_stream_valid(This); ++ if (FAILED(hr) || This->locked) { ++ pthread_mutex_unlock(&pulse_lock); ++ return FAILED(hr) ? hr : AUDCLNT_E_OUT_OF_ORDER; ++ } ++ if (!frames) { ++ pthread_mutex_unlock(&pulse_lock); ++ return S_OK; ++ } ++ ++ ACImpl_GetRenderPad(This, &pad); ++ avail = This->bufsize_frames - pad; ++ if (avail < frames || bytes > This->bufsize_bytes) { ++ pthread_mutex_unlock(&pulse_lock); ++ WARN("Wanted to write %u, but only %u available\n", frames, avail); ++ return AUDCLNT_E_BUFFER_TOO_LARGE; ++ } ++ ++ This->locked = frames; ++ req = bytes; ++ ret = pa_stream_begin_write(This->stream, &This->locked_ptr, &req); ++ if (ret < 0 || req < bytes) { ++ FIXME("%p Not using pulse locked data: %i %u/%u %u/%u\n", This, ret, req/pa_frame_size(&This->ss), frames, pad, This->bufsize_frames); ++ if (ret >= 0) ++ pa_stream_cancel_write(This->stream); ++ *data = This->tmp_buffer; ++ This->locked_ptr = NULL; ++ } else ++ *data = This->locked_ptr; ++ pthread_mutex_unlock(&pulse_lock); ++ return hr; ++} ++ ++static HRESULT WINAPI AudioRenderClient_ReleaseBuffer( ++ IAudioRenderClient *iface, UINT32 written_frames, DWORD flags) ++{ ++ ACImpl *This = impl_from_IAudioRenderClient(iface); ++ UINT32 written_bytes = written_frames * pa_frame_size(&This->ss); ++ ++ TRACE("(%p)->(%u, %x)\n", This, written_frames, flags); ++ ++ pthread_mutex_lock(&pulse_lock); ++ if (!This->locked || !written_frames) { ++ if (This->locked_ptr) ++ pa_stream_cancel_write(This->stream); ++ This->locked = 0; ++ This->locked_ptr = NULL; ++ pthread_mutex_unlock(&pulse_lock); ++ return written_frames ? AUDCLNT_E_OUT_OF_ORDER : S_OK; ++ } ++ ++ if (This->locked < written_frames) { ++ pthread_mutex_unlock(&pulse_lock); ++ return AUDCLNT_E_INVALID_SIZE; ++ } ++ ++ if (flags & AUDCLNT_BUFFERFLAGS_SILENT) { ++ if (This->ss.format == PA_SAMPLE_U8) ++ memset(This->tmp_buffer, 128, written_bytes); ++ else ++ memset(This->tmp_buffer, 0, written_bytes); ++ } ++ ++ This->locked = 0; ++ if (This->locked_ptr) ++ pa_stream_write(This->stream, This->locked_ptr, written_bytes, NULL, 0, PA_SEEK_RELATIVE); ++ else ++ pa_stream_write(This->stream, This->tmp_buffer, written_bytes, NULL, 0, PA_SEEK_RELATIVE); ++ This->pad += written_bytes; ++ This->locked_ptr = NULL; ++ TRACE("Released %u, pad %u\n", written_frames, This->pad / pa_frame_size(&This->ss)); ++ assert(This->pad <= This->bufsize_bytes); ++ pthread_mutex_unlock(&pulse_lock); ++ return S_OK; ++} ++ ++static const IAudioRenderClientVtbl AudioRenderClient_Vtbl = { ++ AudioRenderClient_QueryInterface, ++ AudioRenderClient_AddRef, ++ AudioRenderClient_Release, ++ AudioRenderClient_GetBuffer, ++ AudioRenderClient_ReleaseBuffer ++}; ++ ++static HRESULT WINAPI AudioCaptureClient_QueryInterface( ++ IAudioCaptureClient *iface, REFIID riid, void **ppv) ++{ ++ TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); ++ ++ if (!ppv) ++ return E_POINTER; ++ *ppv = NULL; ++ ++ if (IsEqualIID(riid, &IID_IUnknown) || ++ IsEqualIID(riid, &IID_IAudioCaptureClient)) ++ *ppv = iface; ++ if (*ppv) { ++ IUnknown_AddRef((IUnknown*)*ppv); ++ return S_OK; ++ } ++ ++ WARN("Unknown interface %s\n", debugstr_guid(riid)); ++ return E_NOINTERFACE; ++} ++ ++static ULONG WINAPI AudioCaptureClient_AddRef(IAudioCaptureClient *iface) ++{ ++ ACImpl *This = impl_from_IAudioCaptureClient(iface); ++ return IAudioClient_AddRef(&This->IAudioClient_iface); ++} ++ ++static ULONG WINAPI AudioCaptureClient_Release(IAudioCaptureClient *iface) ++{ ++ ACImpl *This = impl_from_IAudioCaptureClient(iface); ++ return IAudioClient_Release(&This->IAudioClient_iface); ++} ++ ++static HRESULT WINAPI AudioCaptureClient_GetBuffer(IAudioCaptureClient *iface, ++ BYTE **data, UINT32 *frames, DWORD *flags, UINT64 *devpos, ++ UINT64 *qpcpos) ++{ ++ ACImpl *This = impl_from_IAudioCaptureClient(iface); ++ HRESULT hr; ++ ACPacket *packet; ++ ++ TRACE("(%p)->(%p, %p, %p, %p, %p)\n", This, data, frames, flags, ++ devpos, qpcpos); ++ ++ if (!data || !frames || !flags) ++ return E_POINTER; ++ ++ pthread_mutex_lock(&pulse_lock); ++ hr = pulse_stream_valid(This); ++ if (FAILED(hr) || This->locked) { ++ pthread_mutex_unlock(&pulse_lock); ++ return FAILED(hr) ? hr : AUDCLNT_E_OUT_OF_ORDER; ++ } ++ ++ ACImpl_GetCapturePad(This, NULL); ++ if ((packet = This->locked_ptr)) { ++ *frames = This->capture_period / pa_frame_size(&This->ss); ++ *flags = 0; ++ if (packet->discont) ++ *flags |= AUDCLNT_BUFFERFLAGS_DATA_DISCONTINUITY; ++ if (devpos) { ++ if (packet->discont) ++ *devpos = (This->clock_written + This->capture_period) / pa_frame_size(&This->ss); ++ else ++ *devpos = This->clock_written / pa_frame_size(&This->ss); ++ } ++ if (qpcpos) ++ *qpcpos = packet->qpcpos; ++ *data = packet->data; ++ } ++ else ++ *frames = 0; ++ This->locked = *frames; ++ pthread_mutex_unlock(&pulse_lock); ++ return *frames ? S_OK : AUDCLNT_S_BUFFER_EMPTY; ++} ++ ++static HRESULT WINAPI AudioCaptureClient_ReleaseBuffer( ++ IAudioCaptureClient *iface, UINT32 done) ++{ ++ ACImpl *This = impl_from_IAudioCaptureClient(iface); ++ ++ TRACE("(%p)->(%u)\n", This, done); ++ ++ pthread_mutex_lock(&pulse_lock); ++ if (!This->locked && done) { ++ pthread_mutex_unlock(&pulse_lock); ++ return AUDCLNT_E_OUT_OF_ORDER; ++ } ++ if (done && This->locked != done) { ++ pthread_mutex_unlock(&pulse_lock); ++ return AUDCLNT_E_INVALID_SIZE; ++ } ++ if (done) { ++ ACPacket *packet = This->locked_ptr; ++ This->locked_ptr = NULL; ++ This->pad -= This->capture_period; ++ if (packet->discont) ++ This->clock_written += 2 * This->capture_period; ++ else ++ This->clock_written += This->capture_period; ++ list_add_tail(&This->packet_free_head, &packet->entry); ++ } ++ This->locked = 0; ++ pthread_mutex_unlock(&pulse_lock); ++ return S_OK; ++} ++ ++static HRESULT WINAPI AudioCaptureClient_GetNextPacketSize( ++ IAudioCaptureClient *iface, UINT32 *frames) ++{ ++ ACImpl *This = impl_from_IAudioCaptureClient(iface); ++ ACPacket *p; ++ ++ TRACE("(%p)->(%p)\n", This, frames); ++ if (!frames) ++ return E_POINTER; ++ ++ pthread_mutex_lock(&pulse_lock); ++ ACImpl_GetCapturePad(This, NULL); ++ p = This->locked_ptr; ++ if (p) ++ *frames = This->capture_period / pa_frame_size(&This->ss); ++ else ++ *frames = 0; ++ pthread_mutex_unlock(&pulse_lock); ++ return S_OK; ++} ++ ++static const IAudioCaptureClientVtbl AudioCaptureClient_Vtbl = ++{ ++ AudioCaptureClient_QueryInterface, ++ AudioCaptureClient_AddRef, ++ AudioCaptureClient_Release, ++ AudioCaptureClient_GetBuffer, ++ AudioCaptureClient_ReleaseBuffer, ++ AudioCaptureClient_GetNextPacketSize ++}; ++ ++static HRESULT WINAPI AudioClock_QueryInterface(IAudioClock *iface, ++ REFIID riid, void **ppv) ++{ ++ ACImpl *This = impl_from_IAudioClock(iface); ++ ++ TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); ++ ++ if (!ppv) ++ return E_POINTER; ++ *ppv = NULL; ++ ++ if (IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IAudioClock)) ++ *ppv = iface; ++ else if (IsEqualIID(riid, &IID_IAudioClock2)) ++ *ppv = &This->IAudioClock2_iface; ++ if (*ppv) { ++ IUnknown_AddRef((IUnknown*)*ppv); ++ return S_OK; ++ } ++ ++ WARN("Unknown interface %s\n", debugstr_guid(riid)); ++ return E_NOINTERFACE; ++} ++ ++static ULONG WINAPI AudioClock_AddRef(IAudioClock *iface) ++{ ++ ACImpl *This = impl_from_IAudioClock(iface); ++ return IAudioClient_AddRef(&This->IAudioClient_iface); ++} ++ ++static ULONG WINAPI AudioClock_Release(IAudioClock *iface) ++{ ++ ACImpl *This = impl_from_IAudioClock(iface); ++ return IAudioClient_Release(&This->IAudioClient_iface); ++} ++ ++static HRESULT WINAPI AudioClock_GetFrequency(IAudioClock *iface, UINT64 *freq) ++{ ++ ACImpl *This = impl_from_IAudioClock(iface); ++ HRESULT hr; ++ ++ TRACE("(%p)->(%p)\n", This, freq); ++ ++ pthread_mutex_lock(&pulse_lock); ++ hr = pulse_stream_valid(This); ++ if (SUCCEEDED(hr)) ++ *freq = This->ss.rate * pa_frame_size(&This->ss); ++ pthread_mutex_unlock(&pulse_lock); ++ return hr; ++} ++ ++static HRESULT WINAPI AudioClock_GetPosition(IAudioClock *iface, UINT64 *pos, ++ UINT64 *qpctime) ++{ ++ ACImpl *This = impl_from_IAudioClock(iface); ++ pa_usec_t time; ++ HRESULT hr; ++ ++ TRACE("(%p)->(%p, %p)\n", This, pos, qpctime); ++ ++ if (!pos) ++ return E_POINTER; ++ ++ pthread_mutex_lock(&pulse_lock); ++ hr = pulse_stream_valid(This); ++ if (FAILED(hr)) { ++ pthread_mutex_unlock(&pulse_lock); ++ return hr; ++ } ++ ++ *pos = This->clock_written; ++ if (This->clock_pulse != PA_USEC_INVALID && pa_stream_get_time(This->stream, &time) >= 0) { ++ UINT32 delta = pa_usec_to_bytes(time - This->clock_pulse, &This->ss); ++ if (delta < This->pad) ++ *pos += delta; ++ else ++ *pos += This->pad; ++ } ++ ++ /* Make time never go backwards */ ++ if (*pos < This->clock_lastpos) ++ *pos = This->clock_lastpos; ++ else ++ This->clock_lastpos = *pos; ++ pthread_mutex_unlock(&pulse_lock); ++ ++ TRACE("%p Position: %u\n", This, (unsigned)*pos); ++ ++ if (qpctime) { ++ LARGE_INTEGER stamp, freq; ++ QueryPerformanceCounter(&stamp); ++ QueryPerformanceFrequency(&freq); ++ *qpctime = (stamp.QuadPart * (INT64)10000000) / freq.QuadPart; ++ } ++ ++ return S_OK; ++} ++ ++static HRESULT WINAPI AudioClock_GetCharacteristics(IAudioClock *iface, ++ DWORD *chars) ++{ ++ ACImpl *This = impl_from_IAudioClock(iface); ++ ++ TRACE("(%p)->(%p)\n", This, chars); ++ ++ if (!chars) ++ return E_POINTER; ++ ++ *chars = AUDIOCLOCK_CHARACTERISTIC_FIXED_FREQ; ++ ++ return S_OK; ++} ++ ++static const IAudioClockVtbl AudioClock_Vtbl = ++{ ++ AudioClock_QueryInterface, ++ AudioClock_AddRef, ++ AudioClock_Release, ++ AudioClock_GetFrequency, ++ AudioClock_GetPosition, ++ AudioClock_GetCharacteristics ++}; ++ ++static HRESULT WINAPI AudioClock2_QueryInterface(IAudioClock2 *iface, ++ REFIID riid, void **ppv) ++{ ++ ACImpl *This = impl_from_IAudioClock2(iface); ++ return IAudioClock_QueryInterface(&This->IAudioClock_iface, riid, ppv); ++} ++ ++static ULONG WINAPI AudioClock2_AddRef(IAudioClock2 *iface) ++{ ++ ACImpl *This = impl_from_IAudioClock2(iface); ++ return IAudioClient_AddRef(&This->IAudioClient_iface); ++} ++ ++static ULONG WINAPI AudioClock2_Release(IAudioClock2 *iface) ++{ ++ ACImpl *This = impl_from_IAudioClock2(iface); ++ return IAudioClient_Release(&This->IAudioClient_iface); ++} ++ ++static HRESULT WINAPI AudioClock2_GetDevicePosition(IAudioClock2 *iface, ++ UINT64 *pos, UINT64 *qpctime) ++{ ++ ACImpl *This = impl_from_IAudioClock2(iface); ++ HRESULT hr = AudioClock_GetPosition(&This->IAudioClock_iface, pos, qpctime); ++ if (SUCCEEDED(hr)) ++ *pos /= pa_frame_size(&This->ss); ++ return hr; ++} ++ ++static const IAudioClock2Vtbl AudioClock2_Vtbl = ++{ ++ AudioClock2_QueryInterface, ++ AudioClock2_AddRef, ++ AudioClock2_Release, ++ AudioClock2_GetDevicePosition ++}; ++ ++static HRESULT WINAPI AudioStreamVolume_QueryInterface( ++ IAudioStreamVolume *iface, REFIID riid, void **ppv) ++{ ++ TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); ++ ++ if (!ppv) ++ return E_POINTER; ++ *ppv = NULL; ++ ++ if (IsEqualIID(riid, &IID_IUnknown) || ++ IsEqualIID(riid, &IID_IAudioStreamVolume)) ++ *ppv = iface; ++ if (*ppv) { ++ IUnknown_AddRef((IUnknown*)*ppv); ++ return S_OK; ++ } ++ ++ WARN("Unknown interface %s\n", debugstr_guid(riid)); ++ return E_NOINTERFACE; ++} ++ ++static ULONG WINAPI AudioStreamVolume_AddRef(IAudioStreamVolume *iface) ++{ ++ ACImpl *This = impl_from_IAudioStreamVolume(iface); ++ return IAudioClient_AddRef(&This->IAudioClient_iface); ++} ++ ++static ULONG WINAPI AudioStreamVolume_Release(IAudioStreamVolume *iface) ++{ ++ ACImpl *This = impl_from_IAudioStreamVolume(iface); ++ return IAudioClient_Release(&This->IAudioClient_iface); ++} ++ ++static HRESULT WINAPI AudioStreamVolume_GetChannelCount( ++ IAudioStreamVolume *iface, UINT32 *out) ++{ ++ ACImpl *This = impl_from_IAudioStreamVolume(iface); ++ ++ TRACE("(%p)->(%p)\n", This, out); ++ ++ if (!out) ++ return E_POINTER; ++ ++ *out = This->ss.channels; ++ ++ return S_OK; ++} ++ ++struct pulse_info_cb_data { ++ UINT32 n; ++ float *levels; ++}; ++ ++static void pulse_sink_input_info_cb(pa_context *c, const pa_sink_input_info *info, int eol, void *data) ++{ ++ struct pulse_info_cb_data *d = data; ++ int i; ++ if (eol) ++ return; ++ for (i = 0; i < d->n; ++i) ++ d->levels[i] = (float)info->volume.values[i] / (float)PA_VOLUME_NORM; ++ pthread_cond_signal(&pulse_cond); ++} ++ ++static void pulse_source_info_cb(pa_context *c, const pa_source_info *info, int eol, void *data) ++{ ++ struct pulse_info_cb_data *d = data; ++ int i; ++ if (eol) ++ return; ++ for (i = 0; i < d->n; ++i) ++ d->levels[i] = (float)info->volume.values[i] / (float)PA_VOLUME_NORM; ++ pthread_cond_signal(&pulse_cond); ++} ++ ++static HRESULT WINAPI AudioStreamVolume_SetAllVolumes( ++ IAudioStreamVolume *iface, UINT32 count, const float *levels) ++{ ++ ACImpl *This = impl_from_IAudioStreamVolume(iface); ++ pa_operation *o; ++ HRESULT hr; ++ int success = 0, i; ++ pa_cvolume cv; ++ ++ TRACE("(%p)->(%d, %p)\n", This, count, levels); ++ ++ if (!levels) ++ return E_POINTER; ++ ++ if (count != This->ss.channels) ++ return E_INVALIDARG; ++ ++ pthread_mutex_lock(&pulse_lock); ++ hr = pulse_stream_valid(This); ++ if (FAILED(hr)) ++ goto out; ++ ++ if (pulse_stream_volume) { ++ cv.channels = count; ++ for (i = 0; i < cv.channels; ++i) ++ cv.values[i] = levels[i] * (float)PA_VOLUME_NORM; ++ if (This->dataflow == eRender) ++ o = pa_context_set_sink_input_volume(pulse_ctx, pa_stream_get_index(This->stream), &cv, pulse_ctx_op_cb, &success); ++ else ++ o = pa_context_set_source_volume_by_index(pulse_ctx, pa_stream_get_device_index(This->stream), &cv, pulse_ctx_op_cb, &success); ++ if (o) { ++ while(pa_operation_get_state(o) == PA_OPERATION_RUNNING) ++ pthread_cond_wait(&pulse_cond, &pulse_lock); ++ pa_operation_unref(o); ++ } ++ if (!success) ++ hr = AUDCLNT_E_BUFFER_ERROR; ++ } else { ++ int i; ++ for (i = 0; i < count; ++i) ++ This->vol[i] = levels[i]; ++ } ++ ++out: ++ pthread_mutex_unlock(&pulse_lock); ++ return hr; ++} ++ ++static HRESULT WINAPI AudioStreamVolume_GetAllVolumes( ++ IAudioStreamVolume *iface, UINT32 count, float *levels) ++{ ++ ACImpl *This = impl_from_IAudioStreamVolume(iface); ++ pa_operation *o; ++ HRESULT hr; ++ struct pulse_info_cb_data info; ++ ++ TRACE("(%p)->(%d, %p)\n", This, count, levels); ++ ++ if (!levels) ++ return E_POINTER; ++ ++ if (count != This->ss.channels) ++ return E_INVALIDARG; ++ ++ pthread_mutex_lock(&pulse_lock); ++ hr = pulse_stream_valid(This); ++ if (FAILED(hr)) ++ goto out; ++ ++ if (pulse_stream_volume) { ++ info.n = count; ++ info.levels = levels; ++ if (This->dataflow == eRender) ++ o = pa_context_get_sink_input_info(pulse_ctx, pa_stream_get_index(This->stream), pulse_sink_input_info_cb, &info); ++ else ++ o = pa_context_get_source_info_by_index(pulse_ctx, pa_stream_get_device_index(This->stream), pulse_source_info_cb, &info); ++ if (o) { ++ while(pa_operation_get_state(o) == PA_OPERATION_RUNNING) ++ pthread_cond_wait(&pulse_cond, &pulse_lock); ++ pa_operation_unref(o); ++ } else ++ hr = AUDCLNT_E_BUFFER_ERROR; ++ } else { ++ int i; ++ for (i = 0; i < count; ++i) ++ levels[i] = This->vol[i]; ++ } ++ ++out: ++ pthread_mutex_unlock(&pulse_lock); ++ return hr; ++} ++ ++static HRESULT WINAPI AudioStreamVolume_SetChannelVolume( ++ IAudioStreamVolume *iface, UINT32 index, float level) ++{ ++ ACImpl *This = impl_from_IAudioStreamVolume(iface); ++ HRESULT hr; ++ float volumes[PA_CHANNELS_MAX]; ++ ++ TRACE("(%p)->(%d, %f)\n", This, index, level); ++ ++ if (level < 0.f || level > 1.f) ++ return E_INVALIDARG; ++ ++ if (index >= This->ss.channels) ++ return E_INVALIDARG; ++ ++ hr = AudioStreamVolume_GetAllVolumes(iface, This->ss.channels, volumes); ++ volumes[index] = level; ++ if (SUCCEEDED(hr)) ++ hr = AudioStreamVolume_SetAllVolumes(iface, This->ss.channels, volumes); ++ return hr; ++} ++ ++static HRESULT WINAPI AudioStreamVolume_GetChannelVolume( ++ IAudioStreamVolume *iface, UINT32 index, float *level) ++{ ++ ACImpl *This = impl_from_IAudioStreamVolume(iface); ++ float volumes[PA_CHANNELS_MAX]; ++ HRESULT hr; ++ ++ TRACE("(%p)->(%d, %p)\n", This, index, level); ++ ++ if (!level) ++ return E_POINTER; ++ ++ if (index >= This->ss.channels) ++ return E_INVALIDARG; ++ ++ hr = AudioStreamVolume_GetAllVolumes(iface, This->ss.channels, volumes); ++ if (SUCCEEDED(hr)) ++ *level = volumes[index]; ++ return hr; ++} ++ ++static const IAudioStreamVolumeVtbl AudioStreamVolume_Vtbl = ++{ ++ AudioStreamVolume_QueryInterface, ++ AudioStreamVolume_AddRef, ++ AudioStreamVolume_Release, ++ AudioStreamVolume_GetChannelCount, ++ AudioStreamVolume_SetChannelVolume, ++ AudioStreamVolume_GetChannelVolume, ++ AudioStreamVolume_SetAllVolumes, ++ AudioStreamVolume_GetAllVolumes ++}; ++ ++static AudioSessionWrapper *AudioSessionWrapper_Create(ACImpl *client) ++{ ++ AudioSessionWrapper *ret; ++ ++ ret = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, ++ sizeof(AudioSessionWrapper)); ++ if (!ret) ++ return NULL; ++ ++ ret->IAudioSessionControl2_iface.lpVtbl = &AudioSessionControl2_Vtbl; ++ ret->ISimpleAudioVolume_iface.lpVtbl = &SimpleAudioVolume_Vtbl; ++ ret->IChannelAudioVolume_iface.lpVtbl = &ChannelAudioVolume_Vtbl; ++ ++ ret->ref = !client; ++ ++ ret->client = client; ++ if (client) { ++ ret->session = client->session; ++ AudioClient_AddRef(&client->IAudioClient_iface); ++ } ++ ++ return ret; ++} ++ ++static HRESULT WINAPI AudioSessionControl_QueryInterface( ++ IAudioSessionControl2 *iface, REFIID riid, void **ppv) ++{ ++ TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); ++ ++ if (!ppv) ++ return E_POINTER; ++ *ppv = NULL; ++ ++ if (IsEqualIID(riid, &IID_IUnknown) || ++ IsEqualIID(riid, &IID_IAudioSessionControl) || ++ IsEqualIID(riid, &IID_IAudioSessionControl2)) ++ *ppv = iface; ++ if (*ppv) { ++ IUnknown_AddRef((IUnknown*)*ppv); ++ return S_OK; ++ } ++ ++ WARN("Unknown interface %s\n", debugstr_guid(riid)); ++ return E_NOINTERFACE; ++} ++ ++static ULONG WINAPI AudioSessionControl_AddRef(IAudioSessionControl2 *iface) ++{ ++ AudioSessionWrapper *This = impl_from_IAudioSessionControl2(iface); ++ ULONG ref; ++ ref = InterlockedIncrement(&This->ref); ++ TRACE("(%p) Refcount now %u\n", This, ref); ++ return ref; ++} ++ ++static ULONG WINAPI AudioSessionControl_Release(IAudioSessionControl2 *iface) ++{ ++ AudioSessionWrapper *This = impl_from_IAudioSessionControl2(iface); ++ ULONG ref; ++ ref = InterlockedDecrement(&This->ref); ++ TRACE("(%p) Refcount now %u\n", This, ref); ++ if (!ref) { ++ if (This->client) { ++ This->client->session_wrapper = NULL; ++ AudioClient_Release(&This->client->IAudioClient_iface); ++ } ++ HeapFree(GetProcessHeap(), 0, This); ++ } ++ return ref; ++} ++ ++static HRESULT WINAPI AudioSessionControl_GetState(IAudioSessionControl2 *iface, ++ AudioSessionState *state) ++{ ++ AudioSessionWrapper *This = impl_from_IAudioSessionControl2(iface); ++ ACImpl *client; ++ ++ TRACE("(%p)->(%p)\n", This, state); ++ ++ if (!state) ++ return NULL_PTR_ERR; ++ ++ pthread_mutex_lock(&pulse_lock); ++ if (list_empty(&This->session->clients)) { ++ *state = AudioSessionStateExpired; ++ goto out; ++ } ++ LIST_FOR_EACH_ENTRY(client, &This->session->clients, ACImpl, entry) { ++ if (client->started) { ++ *state = AudioSessionStateActive; ++ goto out; ++ } ++ } ++ *state = AudioSessionStateInactive; ++ ++out: ++ pthread_mutex_unlock(&pulse_lock); ++ return S_OK; ++} ++ ++static HRESULT WINAPI AudioSessionControl_GetDisplayName( ++ IAudioSessionControl2 *iface, WCHAR **name) ++{ ++ AudioSessionWrapper *This = impl_from_IAudioSessionControl2(iface); ++ ++ FIXME("(%p)->(%p) - stub\n", This, name); ++ ++ return E_NOTIMPL; ++} ++ ++static HRESULT WINAPI AudioSessionControl_SetDisplayName( ++ IAudioSessionControl2 *iface, const WCHAR *name, const GUID *session) ++{ ++ AudioSessionWrapper *This = impl_from_IAudioSessionControl2(iface); ++ ++ FIXME("(%p)->(%p, %s) - stub\n", This, name, debugstr_guid(session)); ++ ++ return E_NOTIMPL; ++} ++ ++static HRESULT WINAPI AudioSessionControl_GetIconPath( ++ IAudioSessionControl2 *iface, WCHAR **path) ++{ ++ AudioSessionWrapper *This = impl_from_IAudioSessionControl2(iface); ++ ++ FIXME("(%p)->(%p) - stub\n", This, path); ++ ++ return E_NOTIMPL; ++} ++ ++static HRESULT WINAPI AudioSessionControl_SetIconPath( ++ IAudioSessionControl2 *iface, const WCHAR *path, const GUID *session) ++{ ++ AudioSessionWrapper *This = impl_from_IAudioSessionControl2(iface); ++ ++ FIXME("(%p)->(%p, %s) - stub\n", This, path, debugstr_guid(session)); ++ ++ return E_NOTIMPL; ++} ++ ++static HRESULT WINAPI AudioSessionControl_GetGroupingParam( ++ IAudioSessionControl2 *iface, GUID *group) ++{ ++ AudioSessionWrapper *This = impl_from_IAudioSessionControl2(iface); ++ ++ FIXME("(%p)->(%p) - stub\n", This, group); ++ ++ return E_NOTIMPL; ++} ++ ++static HRESULT WINAPI AudioSessionControl_SetGroupingParam( ++ IAudioSessionControl2 *iface, const GUID *group, const GUID *session) ++{ ++ AudioSessionWrapper *This = impl_from_IAudioSessionControl2(iface); ++ ++ FIXME("(%p)->(%s, %s) - stub\n", This, debugstr_guid(group), ++ debugstr_guid(session)); ++ ++ return E_NOTIMPL; ++} ++ ++static HRESULT WINAPI AudioSessionControl_RegisterAudioSessionNotification( ++ IAudioSessionControl2 *iface, IAudioSessionEvents *events) ++{ ++ AudioSessionWrapper *This = impl_from_IAudioSessionControl2(iface); ++ ++ FIXME("(%p)->(%p) - stub\n", This, events); ++ ++ return S_OK; ++} ++ ++static HRESULT WINAPI AudioSessionControl_UnregisterAudioSessionNotification( ++ IAudioSessionControl2 *iface, IAudioSessionEvents *events) ++{ ++ AudioSessionWrapper *This = impl_from_IAudioSessionControl2(iface); ++ ++ FIXME("(%p)->(%p) - stub\n", This, events); ++ ++ return S_OK; ++} ++ ++static HRESULT WINAPI AudioSessionControl_GetSessionIdentifier( ++ IAudioSessionControl2 *iface, WCHAR **id) ++{ ++ AudioSessionWrapper *This = impl_from_IAudioSessionControl2(iface); ++ ++ FIXME("(%p)->(%p) - stub\n", This, id); ++ ++ return E_NOTIMPL; ++} ++ ++static HRESULT WINAPI AudioSessionControl_GetSessionInstanceIdentifier( ++ IAudioSessionControl2 *iface, WCHAR **id) ++{ ++ AudioSessionWrapper *This = impl_from_IAudioSessionControl2(iface); ++ ++ FIXME("(%p)->(%p) - stub\n", This, id); ++ ++ return E_NOTIMPL; ++} ++ ++static HRESULT WINAPI AudioSessionControl_GetProcessId( ++ IAudioSessionControl2 *iface, DWORD *pid) ++{ ++ AudioSessionWrapper *This = impl_from_IAudioSessionControl2(iface); ++ ++ TRACE("(%p)->(%p)\n", This, pid); ++ ++ if (!pid) ++ return E_POINTER; ++ ++ *pid = GetCurrentProcessId(); ++ ++ return S_OK; ++} ++ ++static HRESULT WINAPI AudioSessionControl_IsSystemSoundsSession( ++ IAudioSessionControl2 *iface) ++{ ++ AudioSessionWrapper *This = impl_from_IAudioSessionControl2(iface); ++ ++ TRACE("(%p)\n", This); ++ ++ return S_FALSE; ++} ++ ++static HRESULT WINAPI AudioSessionControl_SetDuckingPreference( ++ IAudioSessionControl2 *iface, BOOL optout) ++{ ++ AudioSessionWrapper *This = impl_from_IAudioSessionControl2(iface); ++ ++ TRACE("(%p)->(%d)\n", This, optout); ++ ++ return S_OK; ++} ++ ++static const IAudioSessionControl2Vtbl AudioSessionControl2_Vtbl = ++{ ++ AudioSessionControl_QueryInterface, ++ AudioSessionControl_AddRef, ++ AudioSessionControl_Release, ++ AudioSessionControl_GetState, ++ AudioSessionControl_GetDisplayName, ++ AudioSessionControl_SetDisplayName, ++ AudioSessionControl_GetIconPath, ++ AudioSessionControl_SetIconPath, ++ AudioSessionControl_GetGroupingParam, ++ AudioSessionControl_SetGroupingParam, ++ AudioSessionControl_RegisterAudioSessionNotification, ++ AudioSessionControl_UnregisterAudioSessionNotification, ++ AudioSessionControl_GetSessionIdentifier, ++ AudioSessionControl_GetSessionInstanceIdentifier, ++ AudioSessionControl_GetProcessId, ++ AudioSessionControl_IsSystemSoundsSession, ++ AudioSessionControl_SetDuckingPreference ++}; ++ ++typedef struct _SessionMgr { ++ IAudioSessionManager2 IAudioSessionManager2_iface; ++ ++ LONG ref; ++ ++ IMMDevice *device; ++} SessionMgr; ++ ++static HRESULT WINAPI AudioSessionManager_QueryInterface(IAudioSessionManager2 *iface, ++ REFIID riid, void **ppv) ++{ ++ TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); ++ ++ if (!ppv) ++ return E_POINTER; ++ *ppv = NULL; ++ ++ if (IsEqualIID(riid, &IID_IUnknown) || ++ IsEqualIID(riid, &IID_IAudioSessionManager) || ++ IsEqualIID(riid, &IID_IAudioSessionManager2)) ++ *ppv = iface; ++ if (*ppv) { ++ IUnknown_AddRef((IUnknown*)*ppv); ++ return S_OK; ++ } ++ ++ WARN("Unknown interface %s\n", debugstr_guid(riid)); ++ return E_NOINTERFACE; ++} ++ ++static inline SessionMgr *impl_from_IAudioSessionManager2(IAudioSessionManager2 *iface) ++{ ++ return CONTAINING_RECORD(iface, SessionMgr, IAudioSessionManager2_iface); ++} ++ ++static ULONG WINAPI AudioSessionManager_AddRef(IAudioSessionManager2 *iface) ++{ ++ SessionMgr *This = impl_from_IAudioSessionManager2(iface); ++ ULONG ref; ++ ref = InterlockedIncrement(&This->ref); ++ TRACE("(%p) Refcount now %u\n", This, ref); ++ return ref; ++} ++ ++static ULONG WINAPI AudioSessionManager_Release(IAudioSessionManager2 *iface) ++{ ++ SessionMgr *This = impl_from_IAudioSessionManager2(iface); ++ ULONG ref; ++ ref = InterlockedDecrement(&This->ref); ++ TRACE("(%p) Refcount now %u\n", This, ref); ++ if (!ref) ++ HeapFree(GetProcessHeap(), 0, This); ++ return ref; ++} ++ ++static HRESULT WINAPI AudioSessionManager_GetAudioSessionControl( ++ IAudioSessionManager2 *iface, const GUID *session_guid, DWORD flags, ++ IAudioSessionControl **out) ++{ ++ SessionMgr *This = impl_from_IAudioSessionManager2(iface); ++ AudioSession *session; ++ AudioSessionWrapper *wrapper; ++ HRESULT hr; ++ ++ TRACE("(%p)->(%s, %x, %p)\n", This, debugstr_guid(session_guid), ++ flags, out); ++ ++ hr = get_audio_session(session_guid, This->device, 0, &session); ++ if (FAILED(hr)) ++ return hr; ++ ++ wrapper = AudioSessionWrapper_Create(NULL); ++ if (!wrapper) ++ return E_OUTOFMEMORY; ++ ++ wrapper->session = session; ++ ++ *out = (IAudioSessionControl*)&wrapper->IAudioSessionControl2_iface; ++ ++ return S_OK; ++} ++ ++static HRESULT WINAPI AudioSessionManager_GetSimpleAudioVolume( ++ IAudioSessionManager2 *iface, const GUID *session_guid, DWORD flags, ++ ISimpleAudioVolume **out) ++{ ++ SessionMgr *This = impl_from_IAudioSessionManager2(iface); ++ AudioSession *session; ++ AudioSessionWrapper *wrapper; ++ HRESULT hr; ++ ++ TRACE("(%p)->(%s, %x, %p)\n", This, debugstr_guid(session_guid), ++ flags, out); ++ ++ hr = get_audio_session(session_guid, This->device, 0, &session); ++ if (FAILED(hr)) ++ return hr; ++ ++ wrapper = AudioSessionWrapper_Create(NULL); ++ if (!wrapper) ++ return E_OUTOFMEMORY; ++ ++ wrapper->session = session; ++ ++ *out = &wrapper->ISimpleAudioVolume_iface; ++ ++ return S_OK; ++} ++ ++static HRESULT WINAPI AudioSessionManager_GetSessionEnumerator( ++ IAudioSessionManager2 *iface, IAudioSessionEnumerator **out) ++{ ++ SessionMgr *This = impl_from_IAudioSessionManager2(iface); ++ FIXME("(%p)->(%p) - stub\n", This, out); ++ return E_NOTIMPL; ++} ++ ++static HRESULT WINAPI AudioSessionManager_RegisterSessionNotification( ++ IAudioSessionManager2 *iface, IAudioSessionNotification *notification) ++{ ++ SessionMgr *This = impl_from_IAudioSessionManager2(iface); ++ FIXME("(%p)->(%p) - stub\n", This, notification); ++ return E_NOTIMPL; ++} ++ ++static HRESULT WINAPI AudioSessionManager_UnregisterSessionNotification( ++ IAudioSessionManager2 *iface, IAudioSessionNotification *notification) ++{ ++ SessionMgr *This = impl_from_IAudioSessionManager2(iface); ++ FIXME("(%p)->(%p) - stub\n", This, notification); ++ return E_NOTIMPL; ++} ++ ++static HRESULT WINAPI AudioSessionManager_RegisterDuckNotification( ++ IAudioSessionManager2 *iface, const WCHAR *session_id, ++ IAudioVolumeDuckNotification *notification) ++{ ++ SessionMgr *This = impl_from_IAudioSessionManager2(iface); ++ FIXME("(%p)->(%p) - stub\n", This, notification); ++ return E_NOTIMPL; ++} ++ ++static HRESULT WINAPI AudioSessionManager_UnregisterDuckNotification( ++ IAudioSessionManager2 *iface, ++ IAudioVolumeDuckNotification *notification) ++{ ++ SessionMgr *This = impl_from_IAudioSessionManager2(iface); ++ FIXME("(%p)->(%p) - stub\n", This, notification); ++ return E_NOTIMPL; ++} ++ ++static const IAudioSessionManager2Vtbl AudioSessionManager2_Vtbl = ++{ ++ AudioSessionManager_QueryInterface, ++ AudioSessionManager_AddRef, ++ AudioSessionManager_Release, ++ AudioSessionManager_GetAudioSessionControl, ++ AudioSessionManager_GetSimpleAudioVolume, ++ AudioSessionManager_GetSessionEnumerator, ++ AudioSessionManager_RegisterSessionNotification, ++ AudioSessionManager_UnregisterSessionNotification, ++ AudioSessionManager_RegisterDuckNotification, ++ AudioSessionManager_UnregisterDuckNotification ++}; ++ ++static HRESULT WINAPI SimpleAudioVolume_QueryInterface( ++ ISimpleAudioVolume *iface, REFIID riid, void **ppv) ++{ ++ TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); ++ ++ if (!ppv) ++ return E_POINTER; ++ *ppv = NULL; ++ ++ if (IsEqualIID(riid, &IID_IUnknown) || ++ IsEqualIID(riid, &IID_ISimpleAudioVolume)) ++ *ppv = iface; ++ if (*ppv) { ++ IUnknown_AddRef((IUnknown*)*ppv); ++ return S_OK; ++ } ++ ++ WARN("Unknown interface %s\n", debugstr_guid(riid)); ++ return E_NOINTERFACE; ++} ++ ++static ULONG WINAPI SimpleAudioVolume_AddRef(ISimpleAudioVolume *iface) ++{ ++ AudioSessionWrapper *This = impl_from_ISimpleAudioVolume(iface); ++ return AudioSessionControl_AddRef(&This->IAudioSessionControl2_iface); ++} ++ ++static ULONG WINAPI SimpleAudioVolume_Release(ISimpleAudioVolume *iface) ++{ ++ AudioSessionWrapper *This = impl_from_ISimpleAudioVolume(iface); ++ return AudioSessionControl_Release(&This->IAudioSessionControl2_iface); ++} ++ ++static HRESULT WINAPI SimpleAudioVolume_SetMasterVolume( ++ ISimpleAudioVolume *iface, float level, const GUID *context) ++{ ++ AudioSessionWrapper *This = impl_from_ISimpleAudioVolume(iface); ++ AudioSession *session = This->session; ++ ++ TRACE("(%p)->(%f, %s)\n", session, level, wine_dbgstr_guid(context)); ++ ++ if (level < 0.f || level > 1.f) ++ return E_INVALIDARG; ++ ++ if (context) ++ FIXME("Notifications not supported yet\n"); ++ ++ TRACE("Pulseaudio does not support session volume control\n"); ++ ++ pthread_mutex_lock(&pulse_lock); ++ session->master_vol = level; ++ pthread_mutex_unlock(&pulse_lock); ++ ++ return S_OK; ++} ++ ++static HRESULT WINAPI SimpleAudioVolume_GetMasterVolume( ++ ISimpleAudioVolume *iface, float *level) ++{ ++ AudioSessionWrapper *This = impl_from_ISimpleAudioVolume(iface); ++ AudioSession *session = This->session; ++ ++ TRACE("(%p)->(%p)\n", session, level); ++ ++ if (!level) ++ return NULL_PTR_ERR; ++ ++ *level = session->master_vol; ++ ++ return S_OK; ++} ++ ++static HRESULT WINAPI SimpleAudioVolume_SetMute(ISimpleAudioVolume *iface, ++ BOOL mute, const GUID *context) ++{ ++ AudioSessionWrapper *This = impl_from_ISimpleAudioVolume(iface); ++ AudioSession *session = This->session; ++ ++ TRACE("(%p)->(%u, %p)\n", session, mute, context); ++ ++ if (context) ++ FIXME("Notifications not supported yet\n"); ++ ++ session->mute = mute; ++ ++ return S_OK; ++} ++ ++static HRESULT WINAPI SimpleAudioVolume_GetMute(ISimpleAudioVolume *iface, ++ BOOL *mute) ++{ ++ AudioSessionWrapper *This = impl_from_ISimpleAudioVolume(iface); ++ AudioSession *session = This->session; ++ ++ TRACE("(%p)->(%p)\n", session, mute); ++ ++ if (!mute) ++ return NULL_PTR_ERR; ++ ++ *mute = session->mute; ++ ++ return S_OK; ++} ++ ++static const ISimpleAudioVolumeVtbl SimpleAudioVolume_Vtbl = ++{ ++ SimpleAudioVolume_QueryInterface, ++ SimpleAudioVolume_AddRef, ++ SimpleAudioVolume_Release, ++ SimpleAudioVolume_SetMasterVolume, ++ SimpleAudioVolume_GetMasterVolume, ++ SimpleAudioVolume_SetMute, ++ SimpleAudioVolume_GetMute ++}; ++ ++static HRESULT WINAPI ChannelAudioVolume_QueryInterface( ++ IChannelAudioVolume *iface, REFIID riid, void **ppv) ++{ ++ TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); ++ ++ if (!ppv) ++ return E_POINTER; ++ *ppv = NULL; ++ ++ if (IsEqualIID(riid, &IID_IUnknown) || ++ IsEqualIID(riid, &IID_IChannelAudioVolume)) ++ *ppv = iface; ++ if (*ppv) { ++ IUnknown_AddRef((IUnknown*)*ppv); ++ return S_OK; ++ } ++ ++ WARN("Unknown interface %s\n", debugstr_guid(riid)); ++ return E_NOINTERFACE; ++} ++ ++static ULONG WINAPI ChannelAudioVolume_AddRef(IChannelAudioVolume *iface) ++{ ++ AudioSessionWrapper *This = impl_from_IChannelAudioVolume(iface); ++ return AudioSessionControl_AddRef(&This->IAudioSessionControl2_iface); ++} ++ ++static ULONG WINAPI ChannelAudioVolume_Release(IChannelAudioVolume *iface) ++{ ++ AudioSessionWrapper *This = impl_from_IChannelAudioVolume(iface); ++ return AudioSessionControl_Release(&This->IAudioSessionControl2_iface); ++} ++ ++static HRESULT WINAPI ChannelAudioVolume_GetChannelCount( ++ IChannelAudioVolume *iface, UINT32 *out) ++{ ++ AudioSessionWrapper *This = impl_from_IChannelAudioVolume(iface); ++ AudioSession *session = This->session; ++ ++ TRACE("(%p)->(%p)\n", session, out); ++ ++ if (!out) ++ return NULL_PTR_ERR; ++ ++ *out = session->channel_count; ++ ++ return S_OK; ++} ++ ++static HRESULT WINAPI ChannelAudioVolume_SetChannelVolume( ++ IChannelAudioVolume *iface, UINT32 index, float level, ++ const GUID *context) ++{ ++ AudioSessionWrapper *This = impl_from_IChannelAudioVolume(iface); ++ AudioSession *session = This->session; ++ ++ TRACE("(%p)->(%d, %f, %s)\n", session, index, level, ++ wine_dbgstr_guid(context)); ++ ++ if (level < 0.f || level > 1.f) ++ return E_INVALIDARG; ++ ++ if (index >= session->channel_count) ++ return E_INVALIDARG; ++ ++ if (context) ++ FIXME("Notifications not supported yet\n"); ++ ++ TRACE("Pulseaudio does not support session volume control\n"); ++ ++ pthread_mutex_lock(&pulse_lock); ++ session->channel_vols[index] = level; ++ pthread_mutex_unlock(&pulse_lock); ++ ++ return S_OK; ++} ++ ++static HRESULT WINAPI ChannelAudioVolume_GetChannelVolume( ++ IChannelAudioVolume *iface, UINT32 index, float *level) ++{ ++ AudioSessionWrapper *This = impl_from_IChannelAudioVolume(iface); ++ AudioSession *session = This->session; ++ ++ TRACE("(%p)->(%d, %p)\n", session, index, level); ++ ++ if (!level) ++ return NULL_PTR_ERR; ++ ++ if (index >= session->channel_count) ++ return E_INVALIDARG; ++ ++ *level = session->channel_vols[index]; ++ ++ return S_OK; ++} ++ ++static HRESULT WINAPI ChannelAudioVolume_SetAllVolumes( ++ IChannelAudioVolume *iface, UINT32 count, const float *levels, ++ const GUID *context) ++{ ++ AudioSessionWrapper *This = impl_from_IChannelAudioVolume(iface); ++ AudioSession *session = This->session; ++ int i; ++ ++ TRACE("(%p)->(%d, %p, %s)\n", session, count, levels, ++ wine_dbgstr_guid(context)); ++ ++ if (!levels) ++ return NULL_PTR_ERR; ++ ++ if (count != session->channel_count) ++ return E_INVALIDARG; ++ ++ if (context) ++ FIXME("Notifications not supported yet\n"); ++ ++ TRACE("Pulseaudio does not support session volume control\n"); ++ ++ pthread_mutex_lock(&pulse_lock); ++ for(i = 0; i < count; ++i) ++ session->channel_vols[i] = levels[i]; ++ pthread_mutex_unlock(&pulse_lock); ++ return S_OK; ++} ++ ++static HRESULT WINAPI ChannelAudioVolume_GetAllVolumes( ++ IChannelAudioVolume *iface, UINT32 count, float *levels) ++{ ++ AudioSessionWrapper *This = impl_from_IChannelAudioVolume(iface); ++ AudioSession *session = This->session; ++ int i; ++ ++ TRACE("(%p)->(%d, %p)\n", session, count, levels); ++ ++ if (!levels) ++ return NULL_PTR_ERR; ++ ++ if (count != session->channel_count) ++ return E_INVALIDARG; ++ ++ for(i = 0; i < count; ++i) ++ levels[i] = session->channel_vols[i]; ++ ++ return S_OK; ++} ++ ++static const IChannelAudioVolumeVtbl ChannelAudioVolume_Vtbl = ++{ ++ ChannelAudioVolume_QueryInterface, ++ ChannelAudioVolume_AddRef, ++ ChannelAudioVolume_Release, ++ ChannelAudioVolume_GetChannelCount, ++ ChannelAudioVolume_SetChannelVolume, ++ ChannelAudioVolume_GetChannelVolume, ++ ChannelAudioVolume_SetAllVolumes, ++ ChannelAudioVolume_GetAllVolumes ++}; ++ ++HRESULT WINAPI AUDDRV_GetAudioSessionManager(IMMDevice *device, ++ IAudioSessionManager2 **out) ++{ ++ SessionMgr *This = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(SessionMgr)); ++ *out = NULL; ++ if (!This) ++ return E_OUTOFMEMORY; ++ This->IAudioSessionManager2_iface.lpVtbl = &AudioSessionManager2_Vtbl; ++ This->device = device; ++ This->ref = 1; ++ *out = &This->IAudioSessionManager2_iface; ++ return S_OK; ++} +diff -uNr wine-1.5.4.old/dlls/winepulse.drv/winepulse.drv.spec wine-1.5.4/dlls/winepulse.drv/winepulse.drv.spec +--- wine-1.5.4.old/dlls/winepulse.drv/winepulse.drv.spec 1970-01-01 02:00:00.000000000 +0200 ++++ wine-1.5.4/dlls/winepulse.drv/winepulse.drv.spec 2012-05-23 12:03:21.069645000 +0300 +@@ -0,0 +1,5 @@ ++# MMDevAPI driver functions ++@ stdcall -private GetPriority() AUDDRV_GetPriority ++@ stdcall -private GetEndpointIDs(long ptr ptr ptr ptr) AUDDRV_GetEndpointIDs ++@ stdcall -private GetAudioEndpoint(ptr ptr ptr) AUDDRV_GetAudioEndpoint ++@ stdcall -private GetAudioSessionManager(ptr ptr) AUDDRV_GetAudioSessionManager diff --git a/wine.spec b/wine.spec index e1a1f51..b2ddea4 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,8 @@ -%global no64bit 0 +%global no64bit 0 +%global winegecko 1.5.0 +%global winemono 0.0.4 Name: wine -Version: 1.5.4 +Version: 1.5.5 Release: 1%{?dist} Summary: A Windows 16/32/64 bit emulator @@ -44,6 +46,12 @@ Source501: wine-tahoma.conf # and provide a readme Source502: wine-README-tahoma +Patch511: wine-cjk.patch + +# winepulse backend +# http://repo.or.cz/w/wine/multimedia.git +Patch1001: wine-pulse-1.5.4.patch + Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) %if !%{?no64bit} @@ -117,7 +125,7 @@ BuildRequires: openal-soft-devel BuildRequires: icoutils %endif - +Requires: wine-common = %{version}-%{release} Requires: wine-desktop = %{version}-%{release} Requires: wine-fonts = %{version}-%{release} @@ -133,7 +141,8 @@ Requires: wine-pulseaudio(x86-32) = %{version}-%{release} Requires: wine-openal(x86-32) = %{version}-%{release} %endif %if 0%{?fedora} >= 17 -Requires: mingw32-wine-gecko = 1.5 +Requires: mingw32-wine-gecko = %winegecko +Requires: mingw-wine-mono = %winemono %endif %endif @@ -155,7 +164,8 @@ Requires: wine-pulseaudio(x86-64) = %{version}-%{release} Requires: wine-openal(x86-64) = %{version}-%{release} %endif %if 0%{?fedora} >= 17 -Requires: mingw64-wine-gecko = 1.5 +Requires: mingw64-wine-gecko = %winegecko +Requires: mingw-wine-mono = %winemono %endif Requires: wine-wow(x86-64) = %{version}-%{release} Conflicts: wine-wow(x86-32) = %{version}-%{release} @@ -190,23 +200,9 @@ Summary: Wine core package Group: Applications/Emulators Requires(post): /sbin/ldconfig Requires(postun): /sbin/ldconfig -Obsoletes: wine-arts < 0.9.34 -Provides: wine-arts = %{version}-%{release} -Obsoletes: wine-tools <= 1.1.27 -Provides: wine-tools = %{version}-%{release} -# removed as of 1.3.25 (new sound api) -Obsoletes: wine-esd <= 1.3.24 -Provides: wine-esd = %{version}-%{release} -Obsoletes: wine-jack <= 1.3.24 -Provides: wine-jack = %{version}-%{release} -# removed as of 1.3.19 (we don't support oss4) -Obsoletes: wine-oss <= 1.3.18 -Provides: wine-oss = %{version}-%{release} -# removed as of 1.3.16 -Obsoletes: wine-nas <= 1.3.15 -Provides: wine-nas = %{version}-%{release} -# require -common so we get wine.inf (#528335) -Requires: wine-common = %{version}-%{release} + +# require -filesystem +Requires: wine-filesystem = %{version}-%{release} %ifarch %{ix86} Requires: freetype(x86-32) @@ -232,6 +228,26 @@ Requires: libXrender Requires: libXcursor %endif +# old removed packages +Obsoletes: wine-arts < 0.9.34 +Provides: wine-arts = %{version}-%{release} +Obsoletes: wine-tools <= 1.1.27 +Provides: wine-tools = %{version}-%{release} + +# removed as of 1.3.25 (new sound api) +Obsoletes: wine-esd <= 1.3.24 +Provides: wine-esd = %{version}-%{release} +Obsoletes: wine-jack <= 1.3.24 +Provides: wine-jack = %{version}-%{release} + +# removed as of 1.3.19 (we don't support oss4) +Obsoletes: wine-oss <= 1.3.18 +Provides: wine-oss = %{version}-%{release} + +# removed as of 1.3.16 +Obsoletes: wine-nas <= 1.3.15 +Provides: wine-nas = %{version}-%{release} + %description core Wine core package includes the basic wine stuff needed by all other packages. @@ -274,6 +290,23 @@ BuildArch: noarch Register the wine binary handler for windows executables via SysV init files. %endif +%package filesystem +Summary: Filesystem directories for wine +Group: Applications/Emulators +BuildArch: noarch + +%description filesystem +Filesystem directories and basic configuration for wine. + +%package common +Summary: Common files +Group: Applications/Emulators +Requires: wine-core = %{version}-%{release} +BuildArch: noarch + +%description common +Common wine files and scripts. + %package desktop Summary: Desktop integration features for wine Group: Applications/Emulators @@ -384,15 +417,6 @@ Requires: fontpackages-filesystem %description symbol-fonts %{summary} -%package common -Summary: Common files -Group: Applications/Emulators -Requires: wine-core = %{version}-%{release} -BuildArch: noarch - -%description common -Common wine files and scripts. - %package ldap Summary: LDAP support for wine Group: System Environment/Libraries @@ -438,22 +462,10 @@ with the Wine Windows(TM) emulation libraries. Summary: Pulseaudio support for wine Group: System Environment/Libraries Requires: wine-core = %{version}-%{release} -%ifarch %{ix86} -Requires: wine-alsa(x86-32) = %{version}-%{release} -Requires: alsa-plugins-pulseaudio(x86-32) -%endif -%ifarch x86_64 -Requires: wine-alsa(x86-64) = %{version}-%{release} -Requires: alsa-plugins-pulseaudio(x86-64) -%endif -%ifarch %{arm} -Requires: wine-alsa = %{version}-%{release} -Requires: alsa-plugins-pulseaudio -%endif %description pulseaudio -This package pulse in the alsa pulseaudio backend to allow for pulse playback -over alsa. +This package adds a pulseaudio driver for wine. Please do not report bugs in +the pulseaudio wine backend at winehq. %package alsa Summary: Alsa support for wine @@ -476,6 +488,12 @@ This package adds an openal driver for wine. %prep %setup -q +%patch511 -p1 -b.cjk + +%patch1001 -p1 -b.winepulse + +autoreconf + %build # disable fortify as it breaks wine # http://bugs.winehq.org/show_bug.cgi?id=24606 @@ -488,6 +506,7 @@ export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno --x-includes=%{_includedir} --x-libraries=%{_libdir} \ --without-hal --with-dbus \ --with-x \ + --with-pulse \ %ifarch x86_64 --enable-win64 \ %endif @@ -536,6 +555,9 @@ install -p -m 644 %{SOURCE201} \ # add gecko dir mkdir -p %{buildroot}%{_datadir}/wine/gecko +# add mono dir +mkdir -p %{buildroot}%{_datadir}/wine/mono + # extract and install icons %if 0%{?fedora} > 10 mkdir -p %{buildroot}%{_datadir}/icons/hicolor/scalable/apps @@ -1265,6 +1287,17 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/wow32.dll.so %endif +%files filesystem +%defattr(-,root,root,-) +%doc COPYING.LIB +%dir %{_datadir}/wine +%dir %{_datadir}/wine/gecko +%dir %{_datadir}/wine/mono +%dir %{_datadir}/wine/fonts +%{_datadir}/wine/generic.ppd +%{_datadir}/wine/wine.inf +%{_datadir}/wine/l_intl.nls + %files common %defattr(-,root,root,-) %{_bindir}/notepad @@ -1279,8 +1312,6 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_bindir}/wineboot %{_bindir}/wineconsole %{_bindir}/winecfg -%dir %{_datadir}/wine -%dir %{_datadir}/wine/gecko %{_mandir}/man1/wine.1* %{_mandir}/man1/wineserver.1* %{_mandir}/man1/msiexec.1* @@ -1298,13 +1329,11 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %lang(de) %{_mandir}/de.UTF-8/man1/wine.1* %lang(de) %{_mandir}/de.UTF-8/man1/wineserver.1* %lang(pl) %{_mandir}/pl.UTF-8/man1/wine.1* -%{_datadir}/wine/generic.ppd -%{_datadir}/wine/wine.inf -%{_datadir}/wine/l_intl.nls %files fonts %defattr(-,root,root,-) -%dir %{_datadir}/wine/fonts +# meta package + %files courier-fonts %defattr(-,root,root,-) @@ -1426,7 +1455,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %files pulseaudio %defattr(-,root,root,-) -# empty meta package for deps +%{_libdir}/wine/winepulse.drv.so %files alsa %defattr(-,root,root,-) @@ -1439,6 +1468,15 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Mon May 28 2012 Andreas Bierfert +- 1.5.5-1 +- version upgrade (rhbz#817257) +- split out -filesystem and clean up -common/-core requires +- re-add winepulse driver (rhbz#821207, rhbz#783699) +- add font replacements for CJK to wine.inf and add information for cjk users + to fedora readme (rhbz#815125, rhbz#820096) +- add support for and require wine-mono + * Mon May 14 2012 Andreas Bierfert - 1.5.4-1 - version upgrade From dede88fafd950d0c936e74d8a96aab51b9fbc59a Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Tue, 12 Jun 2012 19:17:06 +0200 Subject: [PATCH 239/715] 1.5.6-1 - version upgrade (rhbz#830424) - split tahoma font package and add -system subpackage (rhbz#693180) --- .gitignore | 14 ++----------- sources | 4 ++-- wine-cjk.patch | 4 ++-- wine.spec | 53 ++++++++++++++++++++++++++++++++++++++------------ 4 files changed, 47 insertions(+), 28 deletions(-) diff --git a/.gitignore b/.gitignore index c30c581..fab94da 100644 --- a/.gitignore +++ b/.gitignore @@ -1,14 +1,4 @@ /wine-1.4.tar.bz2 /wine-1.4.tar.bz2.sign -/wine-1.5.0.tar.bz2 -/wine-1.5.0.tar.bz2.sign -/wine-1.5.1.tar.bz2 -/wine-1.5.1.tar.bz2.sign -/wine-1.5.2.tar.bz2 -/wine-1.5.2.tar.bz2.sign -/wine-1.5.3.tar.bz2 -/wine-1.5.3.tar.bz2.sign -/wine-1.5.4.tar.bz2 -/wine-1.5.4.tar.bz2.sign -/wine-1.5.5.tar.bz2 -/wine-1.5.5.tar.bz2.sign +/wine-1.5.6.tar.bz2 +/wine-1.5.6.tar.bz2.sign diff --git a/sources b/sources index f4f87a4..f9c52a5 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -63639cfe9addb75cd40726cac36bcf8a wine-1.5.5.tar.bz2 -9274664843d2505ea7a19c1e4b6c5c2d wine-1.5.5.tar.bz2.sign +83bc2532cef560a21cad7dda979cadda wine-1.5.6.tar.bz2 +c48c402a54a59b722b4628b3f339b624 wine-1.5.6.tar.bz2.sign diff --git a/wine-cjk.patch b/wine-cjk.patch index fbdd3d7..92da6a5 100644 --- a/wine-cjk.patch +++ b/wine-cjk.patch @@ -5,8 +5,8 @@ diff -up wine-1.5.5/tools/wine.inf.in.orig wine-1.5.5/tools/wine.inf.in HKLM,%FontSubStr%,"Times New Roman CYR,204",,"Times New Roman,204" HKLM,%FontSubStr%,"Times New Roman Greek,161",,"Times New Roman,161" HKLM,%FontSubStr%,"Times New Roman TUR,162",,"Times New Roman,162" -+HKCU,Software\Wine\Fonts\Replacements,"SimSun",,"WenQuanYi Micro Hei" -+HKCU,Software\Wine\Fonts\Replacements,"PMingLiU",,"WenQuanYi Micro Hei" ++HKCU,Software\Wine\Fonts\Replacements,"SimSun",,"WenQuanYi Zen Hei Sharp" ++HKCU,Software\Wine\Fonts\Replacements,"PMingLiU",,"WenQuanYi Zen Hei Sharp" +HKCU,Software\Wine\Fonts\Replacements,"MS Gothic",,"Ume Gothic" +HKCU,Software\Wine\Fonts\Replacements,"MS PGothic",,"Ume P Gothic" +HKCU,Software\Wine\Fonts\Replacements,"MS UI Gothic",,"Ume UI Gothic" diff --git a/wine.spec b/wine.spec index b2ddea4..b994fcb 100644 --- a/wine.spec +++ b/wine.spec @@ -1,10 +1,11 @@ %global no64bit 0 -%global winegecko 1.5.0 +%global winegecko 1.5 %global winemono 0.0.4 + Name: wine -Version: 1.5.5 +Version: 1.5.6 Release: 1%{?dist} -Summary: A Windows 16/32/64 bit emulator +Summary: A compatibility layer for windows applications Group: Applications/Emulators License: LGPLv2+ @@ -184,11 +185,9 @@ Requires: wine-wow = %{version}-%{release} %endif %description -While Wine is usually thought of as a Windows(TM) emulator, the Wine -developers would prefer that users thought of Wine as a Windows -compatibility layer for UNIX. This package includes a program loader, -which allows unmodified Windows 3.x/9x/NT binaries to run on x86 and x86_64 -Unixes. Wine does not require MS Windows, but it can use native system +Wine as a compatibility layer for UNIX to run Windows applications. This +package includes a program loader, which allows unmodified Windows +3.x/9x/NT binaries to run on x86 and x86_64 Unixes. Wine can use native system .dll files if they are available. In Fedora wine is a meta-package which will install everything needed for wine @@ -397,16 +396,28 @@ Requires: fontpackages-filesystem %description ms-sans-serif-fonts %{summary} - +# rhbz#693180 +# http://lists.fedoraproject.org/pipermail/devel/2012-June/168153.html %package tahoma-fonts Summary: Wine Tahoma font family Group: User Interface/X BuildArch: noarch -Requires: fontpackages-filesystem +Requires: wine-filesystem = %{version}-%{release} %description tahoma-fonts %{summary} +Please note: If you want system integration for wine tahoma fonts install the +wine-tahoma-fonts-system package. + +%package tahoma-fonts-system +Summary: Wine Tahoma font family system integration +Group: User Interface/X +BuildArch: noarch +Requires: fontpackages-filesystem +Requires: wine-tahoma-fonts = %{version}-%{release} +%description tahoma-fonts-system +%{summary} %package symbol-fonts Summary: Wine Symbol font family @@ -697,7 +708,10 @@ install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-ms-sans-serif-fonts mv %{buildroot}/%{_datadir}/wine/fonts/sse* %{buildroot}/%{_datadir}/fonts/wine-ms-sans-serif-fonts/ install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-tahoma-fonts -mv %{buildroot}/%{_datadir}/wine/fonts/tahoma* %{buildroot}/%{_datadir}/fonts/wine-tahoma-fonts/ +pushd %{buildroot}/%{_datadir}/fonts/wine-tahoma-fonts +ln -s ../../wine/fonts/tahoma.ttf tahoma.ttf +ln -s ../../wine/fonts/tahomabd.ttf tahomabd.ttf +popd install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-symbol-fonts mv %{buildroot}/%{_datadir}/wine/fonts/symbol.ttf %{buildroot}/%{_datadir}/fonts/wine-symbol-fonts/ @@ -999,6 +1013,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/iphlpapi.dll.so %{_libdir}/wine/itircl.dll.so %{_libdir}/wine/itss.dll.so +%{_libdir}/wine/joy.cpl.so %{_libdir}/wine/jscript.dll.so %{_libdir}/wine/kernel32.dll.so %{_libdir}/wine/ktmw32.dll.so @@ -1362,7 +1377,12 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %files tahoma-fonts %defattr(-,root,root,-) -%doc COPYING.LIB README-tahoma +%doc COPYING.LIB +%{_datadir}/wine/fonts/tahoma*ttf + +%files tahoma-fonts-system +%defattr(-,root,root,-) +%doc README-tahoma %{_datadir}/fonts/wine-tahoma-fonts %{_fontconfig_confdir}/20-wine-tahoma*conf %{_fontconfig_templatedir}/20-wine-tahoma*conf @@ -1468,6 +1488,15 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sat Jun 09 2012 Andreas Bierfert +- 1.5.6-1 +- version upgrade (rhbz#830424) +- split tahoma font package and add -system subpackage (rhbz#693180) + +* Thu May 31 2012 Andreas Bierfert +- 1.5.5-2 +- fix description + * Mon May 28 2012 Andreas Bierfert - 1.5.5-1 - version upgrade (rhbz#817257) From fe10d8eff1325bbcc51e929b715f760b20ccc42b Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 24 Jun 2012 23:57:18 +0200 Subject: [PATCH 240/715] 1.5.7-1 - version upgrade - require new wine-gecko version --- .gitignore | 2 ++ sources | 4 ++-- wine.spec | 10 ++++++++-- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index fab94da..07f6f56 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ /wine-1.4.tar.bz2.sign /wine-1.5.6.tar.bz2 /wine-1.5.6.tar.bz2.sign +/wine-1.5.7.tar.bz2 +/wine-1.5.7.tar.bz2.sign diff --git a/sources b/sources index f9c52a5..c9e4460 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -83bc2532cef560a21cad7dda979cadda wine-1.5.6.tar.bz2 -c48c402a54a59b722b4628b3f339b624 wine-1.5.6.tar.bz2.sign +fde93976e0178a00dce55d2f43022e5b wine-1.5.7.tar.bz2 +dd73152885a062fef1f79fb4e4c4fb44 wine-1.5.7.tar.bz2.sign diff --git a/wine.spec b/wine.spec index b994fcb..8a3e048 100644 --- a/wine.spec +++ b/wine.spec @@ -1,9 +1,10 @@ %global no64bit 0 -%global winegecko 1.5 +%global winegecko 1.6 %global winemono 0.0.4 +%define __os_install_post %{nil} Name: wine -Version: 1.5.6 +Version: 1.5.7 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1488,6 +1489,11 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sun Jun 24 2012 Andreas Bierfert +- 1.5.7-1 +- version upgrade +- require new wine-gecko version + * Sat Jun 09 2012 Andreas Bierfert - 1.5.6-1 - version upgrade (rhbz#830424) From 5430e29aca6487050e488523d31ae34eed5d38ad Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Tue, 26 Jun 2012 22:22:04 +0200 Subject: [PATCH 241/715] add version upgrade bug --- wine.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 8a3e048..d70e55e 100644 --- a/wine.spec +++ b/wine.spec @@ -1491,7 +1491,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %changelog * Sun Jun 24 2012 Andreas Bierfert - 1.5.7-1 -- version upgrade +- version upgrade (rhbz#834762) - require new wine-gecko version * Sat Jun 09 2012 Andreas Bierfert From ae4b9235c33ff9de4f068ac834e29f1486eab31c Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Wed, 4 Jul 2012 18:33:31 +0200 Subject: [PATCH 242/715] 1.5.8-1 - version upgrade (rhbz#834762) - change {mingw-,}wine-mono require --- .gitignore | 2 ++ sources | 4 ++-- wine.spec | 12 ++++++++---- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 07f6f56..b1c6c69 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,5 @@ /wine-1.5.6.tar.bz2.sign /wine-1.5.7.tar.bz2 /wine-1.5.7.tar.bz2.sign +/wine-1.5.8.tar.bz2 +/wine-1.5.8.tar.bz2.sign diff --git a/sources b/sources index c9e4460..1b18078 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -fde93976e0178a00dce55d2f43022e5b wine-1.5.7.tar.bz2 -dd73152885a062fef1f79fb4e4c4fb44 wine-1.5.7.tar.bz2.sign +68ec9abe25b84104228cb24e7ff98c41 wine-1.5.8.tar.bz2 +dd2fe8e65223c52888dd1fef8f122fff wine-1.5.8.tar.bz2.sign diff --git a/wine.spec b/wine.spec index d70e55e..2ccd8b3 100644 --- a/wine.spec +++ b/wine.spec @@ -1,10 +1,9 @@ %global no64bit 0 %global winegecko 1.6 %global winemono 0.0.4 -%define __os_install_post %{nil} Name: wine -Version: 1.5.7 +Version: 1.5.8 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -144,7 +143,7 @@ Requires: wine-openal(x86-32) = %{version}-%{release} %endif %if 0%{?fedora} >= 17 Requires: mingw32-wine-gecko = %winegecko -Requires: mingw-wine-mono = %winemono +Requires: wine-mono = %winemono %endif %endif @@ -167,7 +166,7 @@ Requires: wine-openal(x86-64) = %{version}-%{release} %endif %if 0%{?fedora} >= 17 Requires: mingw64-wine-gecko = %winegecko -Requires: mingw-wine-mono = %winemono +Requires: wine-mono = %winemono %endif Requires: wine-wow(x86-64) = %{version}-%{release} Conflicts: wine-wow(x86-32) = %{version}-%{release} @@ -1489,6 +1488,11 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Wed Jul 04 2012 Andreas Bierfert +- 1.5.8-1 +- version upgrade (rhbz#834762) +- change {mingw-,}wine-mono require + * Sun Jun 24 2012 Andreas Bierfert - 1.5.7-1 - version upgrade (rhbz#834762) From 7220098ecd7ed9aeacdc1757f446593a45a88f1a Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Thu, 12 Jul 2012 19:59:21 +0200 Subject: [PATCH 243/715] 1.5.8-2 - bump for libgphoto2 2.5.0 --- wine.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 2ccd8b3..d03ca59 100644 --- a/wine.spec +++ b/wine.spec @@ -4,7 +4,7 @@ Name: wine Version: 1.5.8 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -1488,6 +1488,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Thu Jul 12 2012 Andreas Bierfert +- 1.5.8-2 +- bump for libgphoto2 2.5.0 + * Wed Jul 04 2012 Andreas Bierfert - 1.5.8-1 - version upgrade (rhbz#834762) From 2849be0c6691ebfdc716a16e1780c60316e6db70 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Wed, 18 Jul 2012 21:50:37 +0200 Subject: [PATCH 244/715] 1.5.9-1 - version upgrade - clean up cjk patch to comply with default fonts where possible - update fedora readme to point out required font packages per cjk locale --- .gitignore | 2 ++ sources | 4 ++-- wine-README-Fedora | 22 +++++++++++++++++++--- wine-cjk.patch | 24 ++++++++++++------------ wine.spec | 10 ++++++++-- 5 files changed, 43 insertions(+), 19 deletions(-) diff --git a/.gitignore b/.gitignore index b1c6c69..b1835a4 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,5 @@ /wine-1.5.7.tar.bz2.sign /wine-1.5.8.tar.bz2 /wine-1.5.8.tar.bz2.sign +/wine-1.5.9.tar.bz2 +/wine-1.5.9.tar.bz2.sign diff --git a/sources b/sources index 1b18078..f73c0c9 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -68ec9abe25b84104228cb24e7ff98c41 wine-1.5.8.tar.bz2 -dd2fe8e65223c52888dd1fef8f122fff wine-1.5.8.tar.bz2.sign +65a98308d60f878462f4c404d2d013b2 wine-1.5.9.tar.bz2 +145243a4801c7ee6d3b631d71702995d wine-1.5.9.tar.bz2.sign diff --git a/wine-README-Fedora b/wine-README-Fedora index 225a865..8baf94e 100644 --- a/wine-README-Fedora +++ b/wine-README-Fedora @@ -23,6 +23,22 @@ is already reported. In case it is not please report it. CJK support: ============ -Fedora carries a modified wine.inf file with support for cjk through the -wqy-microhei font family. If you want to use cjk fonts install the -wqy-microhei-fonts.noarch package. +Fedora carries a modified wine.inf file with support for cjk complying to the +fedora default fonts (see +http://tagoh.fedorapeople.org/fonts/fedora-current-defaultfonts.html) + +wine does _not_ pull in the cjk font packages automatically. The following +font packages may need to be installed depending on your locale: + +zh_CN: +wqy-microhei + +jp: +vlgothic-fonts +vlgothic-p-fonts +ipa-mincho-fonts +ipa-pmincho-fonts + +ko: +nhn-nanum-gothic-fonts +nhn-nanum-myeongjo-fonts.noarch diff --git a/wine-cjk.patch b/wine-cjk.patch index 92da6a5..236a4c7 100644 --- a/wine-cjk.patch +++ b/wine-cjk.patch @@ -1,20 +1,20 @@ -diff -up wine-1.5.5/tools/wine.inf.in.orig wine-1.5.5/tools/wine.inf.in ---- wine-1.5.5/tools/wine.inf.in.orig 2012-05-28 16:31:47.995343241 +0200 -+++ wine-1.5.5/tools/wine.inf.in 2012-05-28 16:55:08.075906186 +0200 -@@ -610,6 +610,17 @@ HKLM,%FontSubStr%,"Times New Roman CE,23 +diff -up wine-1.5.9/tools/wine.inf.in.orig wine-1.5.9/tools/wine.inf.in +--- wine-1.5.9/tools/wine.inf.in.orig 2012-07-17 20:41:28.000000000 +0200 ++++ wine-1.5.9/tools/wine.inf.in 2012-07-18 21:42:34.062266337 +0200 +@@ -617,6 +617,17 @@ HKLM,%FontSubStr%,"Times New Roman CE,23 HKLM,%FontSubStr%,"Times New Roman CYR,204",,"Times New Roman,204" HKLM,%FontSubStr%,"Times New Roman Greek,161",,"Times New Roman,161" HKLM,%FontSubStr%,"Times New Roman TUR,162",,"Times New Roman,162" +HKCU,Software\Wine\Fonts\Replacements,"SimSun",,"WenQuanYi Zen Hei Sharp" +HKCU,Software\Wine\Fonts\Replacements,"PMingLiU",,"WenQuanYi Zen Hei Sharp" -+HKCU,Software\Wine\Fonts\Replacements,"MS Gothic",,"Ume Gothic" -+HKCU,Software\Wine\Fonts\Replacements,"MS PGothic",,"Ume P Gothic" -+HKCU,Software\Wine\Fonts\Replacements,"MS UI Gothic",,"Ume UI Gothic" -+HKCU,Software\Wine\Fonts\Replacements,"MS Mincho",,"Ume Mincho" -+HKCU,Software\Wine\Fonts\Replacements,"MS PMincho",,"Ume P Mincho" -+HKCU,Software\Wine\Fonts\Replacements,"Batang",,"UnBatang" -+HKCU,Software\Wine\Fonts\Replacements,"Dotum",,"UnDotum" -+HKCU,Software\Wine\Fonts\Replacements,"Gulim",,"UnDotum" ++HKCU,Software\Wine\Fonts\Replacements,"MS Gothic",,"VL Gothic" ++HKCU,Software\Wine\Fonts\Replacements,"MS PGothic",,"VL PGothic" ++HKCU,Software\Wine\Fonts\Replacements,"MS UI Gothic",,"VL Gothic" ++HKCU,Software\Wine\Fonts\Replacements,"MS Mincho",,"IPAMincho" ++HKCU,Software\Wine\Fonts\Replacements,"MS PMincho",,"IPAPMincho" ++HKCU,Software\Wine\Fonts\Replacements,"Batang",,"NanumMyeongjo" ++HKCU,Software\Wine\Fonts\Replacements,"Dotum",,"NanumGothic" ++HKCU,Software\Wine\Fonts\Replacements,"Gulim",,"NanumGothic" +HKCU,Software\Wine\Fonts\Replacements,"Arial Unicode MS",,"Droid Sans Fallback" HKLM,System\CurrentControlSet\Hardware Profiles\Current\Software\Fonts,"LogPixels",0x10003,0x00000060 diff --git a/wine.spec b/wine.spec index d03ca59..9f9e498 100644 --- a/wine.spec +++ b/wine.spec @@ -3,8 +3,8 @@ %global winemono 0.0.4 Name: wine -Version: 1.5.8 -Release: 2%{?dist} +Version: 1.5.9 +Release: 1%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -1488,6 +1488,12 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Wed Jul 18 2012 Andreas Bierfert +- 1.5.9-1 +- version upgrade +- clean up cjk patch to comply with default fonts where possible +- update fedora readme to point out required font packages per cjk locale + * Thu Jul 12 2012 Andreas Bierfert - 1.5.8-2 - bump for libgphoto2 2.5.0 From c0370bb7cc23b67963d2fde17598d8957e63a18b Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Sat, 21 Jul 2012 13:19:12 +0100 Subject: [PATCH 245/715] isdn4linux now builds on ARM --- wine.spec | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/wine.spec b/wine.spec index 9f9e498..e93b274 100644 --- a/wine.spec +++ b/wine.spec @@ -4,7 +4,7 @@ Name: wine Version: 1.5.9 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -86,11 +86,7 @@ BuildRequires: sane-backends-devel BuildRequires: zlib-devel BuildRequires: fontforge freetype-devel BuildRequires: libgphoto2-devel -# #217338 -# isdn has issues on ARM atm -%ifnarch %{arm} BuildRequires: isdn4k-utils-devel -%endif # modular x BuildRequires: libX11-devel BuildRequires: mesa-libGL-devel mesa-libGLU-devel @@ -1488,6 +1484,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sat Jul 21 2012 Peter Robinson - 1.5.9-2 +- isdn4linux now builds on ARM + * Wed Jul 18 2012 Andreas Bierfert - 1.5.9-1 - version upgrade From b99de91493ffc7fbf5b93200a3c656c3c7bcbb8c Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Wed, 22 Aug 2012 21:53:17 +0200 Subject: [PATCH 246/715] 1.5.11-1 - version upgrade - use changed libOSMesa check from gentoo (>f18 still fails see rhbz#849405) --- .gitignore | 4 ++++ sources | 4 ++-- wine-1.5.10-osmesa-check.patch | 33 +++++++++++++++++++++++++++++++++ wine.spec | 28 +++++++++++++++++++++++----- 4 files changed, 62 insertions(+), 7 deletions(-) create mode 100644 wine-1.5.10-osmesa-check.patch diff --git a/.gitignore b/.gitignore index b1835a4..33cfea6 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,7 @@ /wine-1.5.8.tar.bz2.sign /wine-1.5.9.tar.bz2 /wine-1.5.9.tar.bz2.sign +/wine-1.5.10.tar.bz2 +/wine-1.5.10.tar.bz2.sign +/wine-1.5.11.tar.bz2 +/wine-1.5.11.tar.bz2.sign diff --git a/sources b/sources index f73c0c9..4c9f0f9 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -65a98308d60f878462f4c404d2d013b2 wine-1.5.9.tar.bz2 -145243a4801c7ee6d3b631d71702995d wine-1.5.9.tar.bz2.sign +930485c8df59edcf0a6e3fd87cca8b39 wine-1.5.11.tar.bz2 +45750fa026fd05db8480cf243235c203 wine-1.5.11.tar.bz2.sign diff --git a/wine-1.5.10-osmesa-check.patch b/wine-1.5.10-osmesa-check.patch new file mode 100644 index 0000000..1f96db3 --- /dev/null +++ b/wine-1.5.10-osmesa-check.patch @@ -0,0 +1,33 @@ +From a233e35ca650db2758de0fd31450b8ce2d86d5e3 Mon Sep 17 00:00:00 2001 +From: Alexandre Rostovtsev +Date: Tue, 7 Aug 2012 01:29:01 -0400 +Subject: [PATCH] Do not check for libGL symbols when checking libOSMesa + +If mesa had been built with shared glapi, glAccum is not available in +libOSMesa without explicitly linking to libGL. In addition, in +mesa-8.0.x and earlier, libOSMesa needs to be explicitly linked to +libglapi if mesa was built with shared glapi, see +https://bugs.gentoo.org/show_bug.cgi?id=399813 +--- + configure.ac | 5 ++++- + 1 files changed, 4 insertions(+), 1 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 4bd43d1..c7a718f 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1132,7 +1132,10 @@ This probably prevents linking to OpenGL. Try deleting the file and restarting c + + if test "$ac_cv_header_GL_osmesa_h" = "yes" + then +- WINE_CHECK_SONAME(OSMesa,glAccum,,,[$X_LIBS $X_PRE_LIBS $XLIB -lm $X_EXTRA_LIBS]) ++ WINE_CHECK_SONAME(OSMesa,OSMesaCreateContext,,,[$OPENGL_LIBS $X_LIBS $X_PRE_LIBS $XLIB -lm $X_EXTRA_LIBS]) ++ if test "x$ac_cv_lib_soname_OSMesa" = "x"; then ++ WINE_CHECK_SONAME(OSMesa,OSMesaCreateContext,,,[-lglapi $OPENGL_LIBS $X_LIBS $X_PRE_LIBS $XLIB -lm $X_EXTRA_LIBS]) ++ fi + fi + WINE_NOTICE_WITH(osmesa,[test "x$ac_cv_lib_soname_OSMesa" = "x"], + [libOSMesa ${notice_platform}development files not found (or too old), OpenGL rendering in bitmaps won't be supported.]) +-- +1.7.8.6 + diff --git a/wine.spec b/wine.spec index e93b274..4708083 100644 --- a/wine.spec +++ b/wine.spec @@ -1,16 +1,16 @@ %global no64bit 0 -%global winegecko 1.6 +%global winegecko 1.7 %global winemono 0.0.4 Name: wine -Version: 1.5.9 -Release: 2%{?dist} +Version: 1.5.11 +Release: 1%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -Source0: http://ibiblio.org/pub/linux/system/emulators/wine/wine-%{version}.tar.bz2 +Source0: http://downloads.sourceforge.net/wine/wine-%{version}.tar.bz2 Source10: http://downloads.sourceforge.net/wine/wine-%{version}.tar.bz2.sign Source1: wine.init @@ -31,6 +31,11 @@ Source107: wine-wineboot.desktop Source108: wine-wordpad.desktop Source109: wine-oleview.desktop +# build fixes +# do not check for glAccum +# wget http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/app-emulation/wine/files/wine-1.5.10-osmesa-check.patch?revision=1.1 +Patch1: wine-1.5.10-osmesa-check.patch + # wine bugs # desktop dir @@ -89,7 +94,7 @@ BuildRequires: libgphoto2-devel BuildRequires: isdn4k-utils-devel # modular x BuildRequires: libX11-devel -BuildRequires: mesa-libGL-devel mesa-libGLU-devel +BuildRequires: mesa-libGL-devel mesa-libGLU-devel mesa-libOSMesa-devel BuildRequires: libXxf86dga-devel libXxf86vm-devel BuildRequires: libXrandr-devel libXrender-devel BuildRequires: libXext-devel @@ -495,6 +500,8 @@ This package adds an openal driver for wine. %prep %setup -q +%patch1 -p1 -b.osmesa + %patch511 -p1 -b.cjk %patch1001 -p1 -b.winepulse @@ -971,6 +978,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/dssenh.dll.so %{_libdir}/wine/dswave.dll.so %{_libdir}/wine/dwmapi.dll.so +%{_libdir}/wine/dwrite.dll.so %{_libdir}/wine/dxdiagn.dll.so %{_libdir}/wine/dxgi.dll.so %{_libdir}/wine/eject.exe.so @@ -1484,6 +1492,16 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sat Aug 18 2012 Andreas Bierfert +- 1.5.11-1 +- version upgrade +- use changed libOSMesa check from gentoo (>f18 still fails see rhbz#849405) + +* Tue Jul 31 2012 Andreas Bierfert +- 1.5.10-1 +- version upgrade +- wine gecko 1.7 + * Sat Jul 21 2012 Peter Robinson - 1.5.9-2 - isdn4linux now builds on ARM From ed96577720185e0af9632ddd294072839ef3d410 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Thu, 30 Aug 2012 21:40:40 +0200 Subject: [PATCH 247/715] 1.5.11-2 - rebuild on rawhide for fixed libOSMesa --- wine.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 4708083..bc1d0c8 100644 --- a/wine.spec +++ b/wine.spec @@ -4,7 +4,7 @@ Name: wine Version: 1.5.11 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -1492,6 +1492,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Thu Aug 30 2012 Andreas Bierfert +- 1.5.11-2 +- rebuild on rawhide for fixed libOSMesa + * Sat Aug 18 2012 Andreas Bierfert - 1.5.11-1 - version upgrade From 041af751a98d4a48dae3e2b1e8b1b4f9fe5556ee Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Fri, 31 Aug 2012 21:39:20 +0200 Subject: [PATCH 248/715] 1.5.12-1 - version upgrade --- .gitignore | 2 ++ sources | 4 ++-- wine.spec | 6 +++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 33cfea6..7592ef1 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,5 @@ /wine-1.5.10.tar.bz2.sign /wine-1.5.11.tar.bz2 /wine-1.5.11.tar.bz2.sign +/wine-1.5.12.tar.bz2.sign +/wine-1.5.12.tar.bz2 diff --git a/sources b/sources index 4c9f0f9..d76f3f5 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -930485c8df59edcf0a6e3fd87cca8b39 wine-1.5.11.tar.bz2 -45750fa026fd05db8480cf243235c203 wine-1.5.11.tar.bz2.sign +1deee4edf369bce295c9ffee7aafa186 wine-1.5.12.tar.bz2.sign +42d8a0b933768447aa73447c4f0ec2ed wine-1.5.12.tar.bz2 diff --git a/wine.spec b/wine.spec index bc1d0c8..a3f5859 100644 --- a/wine.spec +++ b/wine.spec @@ -3,7 +3,7 @@ %global winemono 0.0.4 Name: wine -Version: 1.5.11 +Version: 1.5.12 Release: 2%{?dist} Summary: A compatibility layer for windows applications @@ -1492,6 +1492,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Fri Aug 31 2012 Andreas Bierfert +- 1.5.12-1 +- version upgrade + * Thu Aug 30 2012 Andreas Bierfert - 1.5.11-2 - rebuild on rawhide for fixed libOSMesa From e8316512c918240b42d9ac20bb8bfa95a1081dc7 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 15 Sep 2012 18:12:10 +0200 Subject: [PATCH 249/715] 1.5.13-1 - version upgrade --- .gitignore | 2 ++ sources | 4 ++-- wine.spec | 9 +++++++-- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 7592ef1..fcba0b8 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,5 @@ /wine-1.5.11.tar.bz2.sign /wine-1.5.12.tar.bz2.sign /wine-1.5.12.tar.bz2 +/wine-1.5.13.tar.bz2 +/wine-1.5.13.tar.bz2.sign diff --git a/sources b/sources index d76f3f5..fac3be5 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -1deee4edf369bce295c9ffee7aafa186 wine-1.5.12.tar.bz2.sign -42d8a0b933768447aa73447c4f0ec2ed wine-1.5.12.tar.bz2 +a03d2feafdf6ece0a1cdd6d0daf6a8ae wine-1.5.13.tar.bz2 +4f07f03244d26b9daa3c00ea17d03503 wine-1.5.13.tar.bz2.sign diff --git a/wine.spec b/wine.spec index a3f5859..4f855e2 100644 --- a/wine.spec +++ b/wine.spec @@ -3,8 +3,8 @@ %global winemono 0.0.4 Name: wine -Version: 1.5.12 -Release: 2%{?dist} +Version: 1.5.13 +Release: 1%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -1062,6 +1062,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/msimsg.dll.so %{_libdir}/wine/msisip.dll.so %{_libdir}/wine/msisys.ocx.so +%{_libdir}/wine/msls31.dll.so %{_libdir}/wine/msnet32.dll.so %{_libdir}/wine/mspatcha.dll.so %{_libdir}/wine/mssign32.dll.so @@ -1492,6 +1493,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sat Sep 15 2012 Andreas Bierfert +- 1.5.13-1 +- version upgrade + * Fri Aug 31 2012 Andreas Bierfert - 1.5.12-1 - version upgrade From ac3b8a8adb0c08e47ca98becc787d88213904eae Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 29 Sep 2012 20:27:20 +0200 Subject: [PATCH 250/715] 1.5.14-1 - version upgrade --- .gitignore | 18 ++---------------- sources | 4 ++-- wine.spec | 8 +++++++- 3 files changed, 11 insertions(+), 19 deletions(-) diff --git a/.gitignore b/.gitignore index fcba0b8..ed2e47d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,18 +1,4 @@ /wine-1.4.tar.bz2 /wine-1.4.tar.bz2.sign -/wine-1.5.6.tar.bz2 -/wine-1.5.6.tar.bz2.sign -/wine-1.5.7.tar.bz2 -/wine-1.5.7.tar.bz2.sign -/wine-1.5.8.tar.bz2 -/wine-1.5.8.tar.bz2.sign -/wine-1.5.9.tar.bz2 -/wine-1.5.9.tar.bz2.sign -/wine-1.5.10.tar.bz2 -/wine-1.5.10.tar.bz2.sign -/wine-1.5.11.tar.bz2 -/wine-1.5.11.tar.bz2.sign -/wine-1.5.12.tar.bz2.sign -/wine-1.5.12.tar.bz2 -/wine-1.5.13.tar.bz2 -/wine-1.5.13.tar.bz2.sign +/wine-1.5.14.tar.bz2 +/wine-1.5.14.tar.bz2.sign diff --git a/sources b/sources index fac3be5..b2c2ee9 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -a03d2feafdf6ece0a1cdd6d0daf6a8ae wine-1.5.13.tar.bz2 -4f07f03244d26b9daa3c00ea17d03503 wine-1.5.13.tar.bz2.sign +f84c54bd7422328e96b6cf14ee6e163c wine-1.5.14.tar.bz2 +dd0c87e2dea529f0c898fe2ffa5390ce wine-1.5.14.tar.bz2.sign diff --git a/wine.spec b/wine.spec index 4f855e2..b338c38 100644 --- a/wine.spec +++ b/wine.spec @@ -3,7 +3,7 @@ %global winemono 0.0.4 Name: wine -Version: 1.5.13 +Version: 1.5.14 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1107,6 +1107,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/objsel.dll.so %{_libdir}/wine/odbc32.dll.so %{_libdir}/wine/odbccp32.dll.so +%{_libdir}/wine/odbccu32.dll.so %{_libdir}/wine/ole32.dll.so %{_libdir}/wine/oleacc.dll.so %{_libdir}/wine/oleaut32.dll.so @@ -1185,6 +1186,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/userenv.dll.so %{_libdir}/wine/vbscript.dll.so %{_libdir}/wine/vcomp.dll.so +%{_libdir}/wine/vcomp90.dll.so %{_libdir}/wine/vcomp100.dll.so %{_libdir}/wine/vdmdbg.dll.so %{_libdir}/wine/version.dll.so @@ -1493,6 +1495,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sat Sep 29 2012 Andreas Bierfert +- 1.5.14-1 +- version upgrade + * Sat Sep 15 2012 Andreas Bierfert - 1.5.13-1 - version upgrade From e4b5c10c2896ea0e8ce4bf28113dca120d74ee0a Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 15 Oct 2012 21:25:03 +0200 Subject: [PATCH 251/715] 1.5.15-1 - version upgrade - wine gecko 1.8 --- .gitignore | 4 ++-- sources | 4 ++-- wine.spec | 13 ++++++++++--- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index ed2e47d..6ea484e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ /wine-1.4.tar.bz2 /wine-1.4.tar.bz2.sign -/wine-1.5.14.tar.bz2 -/wine-1.5.14.tar.bz2.sign +/wine-1.5.15.tar.bz2 +/wine-1.5.15.tar.bz2.sign diff --git a/sources b/sources index b2c2ee9..6cd3baa 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -f84c54bd7422328e96b6cf14ee6e163c wine-1.5.14.tar.bz2 -dd0c87e2dea529f0c898fe2ffa5390ce wine-1.5.14.tar.bz2.sign +41728374d14d0f13552250c70c0d40d2 wine-1.5.15.tar.bz2 +6d8a5749f3f7d45340fc9e43e906c238 wine-1.5.15.tar.bz2.sign diff --git a/wine.spec b/wine.spec index b338c38..9bf3e12 100644 --- a/wine.spec +++ b/wine.spec @@ -1,9 +1,9 @@ %global no64bit 0 -%global winegecko 1.7 +%global winegecko 1.8 %global winemono 0.0.4 Name: wine -Version: 1.5.14 +Version: 1.5.15 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -873,6 +873,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/cscript.exe.so %{_libdir}/wine/expand.exe.so %{_libdir}/wine/extrac32.exe.so +%{_libdir}/wine/findstr.exe.so %{_libdir}/wine/hostname.exe.so %{_libdir}/wine/ipconfig.exe.so %{_libdir}/wine/winhlp32.exe.so @@ -1147,8 +1148,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/sc.exe.so %{_libdir}/wine/scarddlg.dll.so %{_libdir}/wine/sccbase.dll.so -%{_libdir}/wine/scrrun.dll.so %{_libdir}/wine/schannel.dll.so +%{_libdir}/wine/scrrun.dll.so +%{_libdir}/wine/scsiport.sys.so %{_libdir}/wine/secur32.dll.so %{_libdir}/wine/sensapi.dll.so %{_libdir}/wine/serialui.dll.so @@ -1495,6 +1497,11 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Mon Oct 15 2012 Andreas Bierfert +- 1.5.15-1 +- version upgrade +- wine gecko 1.8 + * Sat Sep 29 2012 Andreas Bierfert - 1.5.14-1 - version upgrade From 398eb10909c0274fdc371355ccaa1f4818a9cd13 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 28 Oct 2012 18:54:15 +0100 Subject: [PATCH 252/715] 1.5.16-1 - version upgrade (rhbz#870611) - wine mono 0.8 - update pulse patch - fix midi in winepulse (rhbz#863129) - fix dependencies for openssl (rhbz#868576) --- .gitignore | 4 +- sources | 4 +- ...lse-1.5.4.patch => wine-pulse-1.5.16.patch | 212 +++++++++++------- ...-Load-winealsa-if-winepulse-is-found.patch | 29 +++ wine.spec | 43 +++- 5 files changed, 207 insertions(+), 85 deletions(-) rename wine-pulse-1.5.4.patch => wine-pulse-1.5.16.patch (94%) create mode 100644 wine-pulse-winmm-Load-winealsa-if-winepulse-is-found.patch diff --git a/.gitignore b/.gitignore index 6ea484e..c1dfe30 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ /wine-1.4.tar.bz2 /wine-1.4.tar.bz2.sign -/wine-1.5.15.tar.bz2 -/wine-1.5.15.tar.bz2.sign +/wine-1.5.16.tar.bz2 +/wine-1.5.16.tar.bz2.sign diff --git a/sources b/sources index 6cd3baa..81f7320 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -41728374d14d0f13552250c70c0d40d2 wine-1.5.15.tar.bz2 -6d8a5749f3f7d45340fc9e43e906c238 wine-1.5.15.tar.bz2.sign +cece715b6ff812e2cd76b7462f3fb582 wine-1.5.16.tar.bz2 +a087f0703a1778e82a73dfaa729a7aad wine-1.5.16.tar.bz2.sign diff --git a/wine-pulse-1.5.4.patch b/wine-pulse-1.5.16.patch similarity index 94% rename from wine-pulse-1.5.4.patch rename to wine-pulse-1.5.16.patch index 54e7f0d..40c7da7 100644 --- a/wine-pulse-1.5.4.patch +++ b/wine-pulse-1.5.16.patch @@ -1,7 +1,26 @@ -diff -uNr wine-1.5.4.old/configure wine-1.5.4/configure ---- wine-1.5.4.old/configure 2012-05-11 21:08:09.000000000 +0300 -+++ wine-1.5.4/configure 2012-05-23 12:37:16.166737017 +0300 -@@ -629,6 +629,8 @@ +diff -uNr wine-1.5.16.orig/configure wine-1.5.16/configure +--- wine-1.5.16.orig/configure 2012-10-28 11:24:58.288429351 +0100 ++++ wine-1.5.16/configure 2012-10-28 11:32:47.643026610 +0100 +@@ -1,6 +1,6 @@ + #! /bin/sh + # Guess values for system-dependent variables and create Makefiles. +-# Generated by GNU Autoconf 2.69 for Wine 1.5.16. ++# Generated by GNU Autoconf 2.69 for Wine 1.5.15. + # + # Report bugs to . + # +@@ -580,8 +580,8 @@ + # Identity of this package. + PACKAGE_NAME='Wine' + PACKAGE_TARNAME='wine' +-PACKAGE_VERSION='1.5.16' +-PACKAGE_STRING='Wine 1.5.16' ++PACKAGE_VERSION='1.5.15' ++PACKAGE_STRING='Wine 1.5.15' + PACKAGE_BUGREPORT='wine-devel@winehq.org' + PACKAGE_URL='http://www.winehq.org' + +@@ -649,6 +649,8 @@ ALSALIBS GSTREAMER_INCL GSTREAMER_LIBS @@ -10,7 +29,7 @@ diff -uNr wine-1.5.4.old/configure wine-1.5.4/configure LIBGETTEXTPO ZLIB FREETYPEINCL -@@ -805,6 +807,7 @@ +@@ -826,6 +828,7 @@ with_oss with_png with_pthread @@ -18,7 +37,25 @@ diff -uNr wine-1.5.4.old/configure wine-1.5.4/configure with_sane with_tiff with_v4l -@@ -1495,6 +1498,7 @@ +@@ -1400,7 +1403,7 @@ + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +-\`configure' configures Wine 1.5.16 to adapt to many kinds of systems. ++\`configure' configures Wine 1.5.15 to adapt to many kinds of systems. + + Usage: $0 [OPTION]... [VAR=VALUE]... + +@@ -1469,7 +1472,7 @@ + + if test -n "$ac_init_help"; then + case $ac_init_help in +- short | recursive ) echo "Configuration of Wine 1.5.16:";; ++ short | recursive ) echo "Configuration of Wine 1.5.15:";; + esac + cat <<\_ACEOF + +@@ -1516,6 +1519,7 @@ --without-oss do not use the OSS sound support --without-png do not use PNG --without-pthread do not use the pthread library @@ -26,7 +63,25 @@ diff -uNr wine-1.5.4.old/configure wine-1.5.4/configure --without-sane do not use SANE (scanner support) --without-tiff do not use TIFF --without-v4l do not use v4l1 (v4l support) -@@ -2679,6 +2683,12 @@ +@@ -1616,7 +1620,7 @@ + test -n "$ac_init_help" && exit $ac_status + if $ac_init_version; then + cat <<\_ACEOF +-Wine configure 1.5.16 ++Wine configure 1.5.15 + generated by GNU Autoconf 2.69 + + Copyright (C) 2012 Free Software Foundation, Inc. +@@ -2134,7 +2138,7 @@ + This file contains any messages produced by compilers while + running configure, to aid debugging if configure makes a mistake. + +-It was created by Wine $as_me 1.5.16, which was ++It was created by Wine $as_me 1.5.15, which was + generated by GNU Autoconf 2.69. Invocation command line was + + $ $0 $@ +@@ -2707,6 +2711,12 @@ fi @@ -39,7 +94,7 @@ diff -uNr wine-1.5.4.old/configure wine-1.5.4/configure # Check whether --with-sane was given. if test "${with_sane+set}" = set; then : withval=$with_sane; -@@ -10639,6 +10649,87 @@ +@@ -10807,6 +10817,87 @@ fi fi @@ -127,7 +182,7 @@ diff -uNr wine-1.5.4.old/configure wine-1.5.4/configure if test "x$with_gstreamer" != "xno" then ac_save_CPPFLAGS="$CPPFLAGS" -@@ -11898,12 +11989,13 @@ +@@ -12066,12 +12157,13 @@ test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no} test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no} @@ -143,7 +198,7 @@ diff -uNr wine-1.5.4.old/configure wine-1.5.4/configure then as_fn_append wine_warnings "|No sound system was found. Windows applications will be silent." fi -@@ -15430,6 +15522,7 @@ +@@ -15832,6 +15924,7 @@ wine_fn_config_dll wineoss.drv enable_wineoss_drv wine_fn_config_dll wineps.drv enable_wineps_drv install-lib,po wine_fn_config_dll wineps16.drv16 enable_win16 @@ -151,10 +206,28 @@ diff -uNr wine-1.5.4.old/configure wine-1.5.4/configure wine_fn_config_dll wineqtdecoder enable_wineqtdecoder wine_fn_config_dll winequartz.drv enable_winequartz_drv wine_fn_config_dll winex11.drv enable_winex11_drv -diff -uNr wine-1.5.4.old/configure.ac wine-1.5.4/configure.ac ---- wine-1.5.4.old/configure.ac 2012-05-11 21:08:09.000000000 +0300 -+++ wine-1.5.4/configure.ac 2012-05-23 12:38:20.969468598 +0300 -@@ -74,6 +74,7 @@ +@@ -16588,7 +16681,7 @@ + # report actual input values of CONFIG_FILES etc. instead of their + # values after options handling. + ac_log=" +-This file was extended by Wine $as_me 1.5.16, which was ++This file was extended by Wine $as_me 1.5.15, which was + generated by GNU Autoconf 2.69. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES +@@ -16659,7 +16752,7 @@ + cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" + ac_cs_version="\\ +-Wine config.status 1.5.16 ++Wine config.status 1.5.15 + configured by $0, generated by GNU Autoconf 2.69, + with options \\"\$ac_cs_config\\" + +diff -uNr wine-1.5.16.orig/configure.ac wine-1.5.16/configure.ac +--- wine-1.5.16.orig/configure.ac 2012-10-28 11:24:58.766394415 +0100 ++++ wine-1.5.16/configure.ac 2012-10-28 11:32:49.545887232 +0100 +@@ -76,6 +76,7 @@ [if test "x$withval" = "xno"; then ac_cv_header_png_h=no; fi]) AC_ARG_WITH(pthread, AS_HELP_STRING([--without-pthread],[do not use the pthread library]), [if test "x$withval" = "xno"; then ac_cv_header_pthread_h=no; fi]) @@ -162,7 +235,7 @@ diff -uNr wine-1.5.4.old/configure.ac wine-1.5.4/configure.ac AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)])) AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF]), [if test "x$withval" = "xno"; then ac_cv_header_tiffio_h=no; fi]) -@@ -1482,6 +1483,30 @@ +@@ -1512,6 +1513,30 @@ [GetText ${notice_platform}development files not found (or too old), po files can't be rebuilt.]) fi @@ -193,7 +266,7 @@ diff -uNr wine-1.5.4.old/configure.ac wine-1.5.4/configure.ac dnl **** Check for gstreamer **** if test "x$with_gstreamer" != "xno" then -@@ -1688,13 +1713,14 @@ +@@ -1718,13 +1743,14 @@ dnl **** Disable unsupported winmm drivers **** test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no} test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no} @@ -210,7 +283,7 @@ diff -uNr wine-1.5.4.old/configure.ac wine-1.5.4/configure.ac then WINE_WARNING([No sound system was found. Windows applications will be silent.]) fi -@@ -2918,6 +2944,7 @@ +@@ -3055,6 +3081,7 @@ WINE_CONFIG_DLL(wineoss.drv) WINE_CONFIG_DLL(wineps.drv,,[install-lib,po]) WINE_CONFIG_DLL(wineps16.drv16,enable_win16) @@ -218,21 +291,9 @@ diff -uNr wine-1.5.4.old/configure.ac wine-1.5.4/configure.ac WINE_CONFIG_DLL(wineqtdecoder) WINE_CONFIG_DLL(winequartz.drv) WINE_CONFIG_DLL(winex11.drv) -diff -uNr wine-1.5.4.old/dlls/mmdevapi/main.c wine-1.5.4/dlls/mmdevapi/main.c ---- wine-1.5.4.old/dlls/mmdevapi/main.c 2012-05-11 21:08:09.000000000 +0300 -+++ wine-1.5.4/dlls/mmdevapi/main.c 2012-05-23 12:13:41.597012820 +0300 -@@ -111,7 +111,7 @@ - { - static const WCHAR drv_value[] = {'A','u','d','i','o',0}; - -- static WCHAR default_list[] = {'a','l','s','a',',','o','s','s',',', -+ static WCHAR default_list[] = {'p','u','l','s','e',',','a','l','s','a',',','o','s','s',',', - 'c','o','r','e','a','u','d','i','o',0}; - - DriverFuncs driver; -diff -uNr wine-1.5.4.old/dlls/winepulse.drv/Makefile.in wine-1.5.4/dlls/winepulse.drv/Makefile.in ---- wine-1.5.4.old/dlls/winepulse.drv/Makefile.in 1970-01-01 02:00:00.000000000 +0200 -+++ wine-1.5.4/dlls/winepulse.drv/Makefile.in 2012-05-23 12:03:21.068645000 +0300 +diff -uNr wine-1.5.16.orig/dlls/winepulse.drv/Makefile.in wine-1.5.16/dlls/winepulse.drv/Makefile.in +--- wine-1.5.16.orig/dlls/winepulse.drv/Makefile.in 1970-01-01 01:00:00.000000000 +0100 ++++ wine-1.5.16/dlls/winepulse.drv/Makefile.in 2012-10-28 11:31:38.175116035 +0100 @@ -0,0 +1,9 @@ +MODULE = winepulse.drv +IMPORTS = dxguid uuid winmm user32 advapi32 ole32 @@ -243,10 +304,10 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/Makefile.in wine-1.5.4/dlls/winepuls + mmdevdrv.c + +@MAKE_DLL_RULES@ -diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse.drv/mmdevdrv.c ---- wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c 1970-01-01 02:00:00.000000000 +0200 -+++ wine-1.5.4/dlls/winepulse.drv/mmdevdrv.c 2012-05-23 12:03:21.069645000 +0300 -@@ -0,0 +1,3101 @@ +diff -uNr wine-1.5.16.orig/dlls/winepulse.drv/mmdevdrv.c wine-1.5.16/dlls/winepulse.drv/mmdevdrv.c +--- wine-1.5.16.orig/dlls/winepulse.drv/mmdevdrv.c 1970-01-01 01:00:00.000000000 +0100 ++++ wine-1.5.16/dlls/winepulse.drv/mmdevdrv.c 2012-10-28 11:31:38.176115962 +0100 +@@ -0,0 +1,3098 @@ +/* + * Copyright 2011-2012 Maarten Lankhorst + * Copyright 2010-2011 Maarten Lankhorst for CodeWeavers @@ -331,7 +392,7 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse + 'W','i','n','e','\\','P','u','l','s','e',0}; +const WCHAR pulse_streamW[] = { 'S','t','r','e','a','m','V','o','l',0 }; + -+static GUID pulse_render_guid = ++static GUID pulse_render_guid = +{ 0xfd47d9cc, 0x4218, 0x4135, { 0x9c, 0xe2, 0x0c, 0x19, 0x5c, 0x87, 0x40, 0x5b } }; +static GUID pulse_capture_guid = +{ 0x25da76d0, 0x033c, 0x4235, { 0x90, 0x02, 0x19, 0xf4, 0x88, 0x94, 0xac, 0x6f } }; @@ -350,6 +411,8 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse + } + DisableThreadLibraryCalls(dll); + } else if (reason == DLL_PROCESS_DETACH) { ++ if (pulse_thread) ++ SetThreadPriority(pulse_thread, 0); + if (pulse_ctx) { + pa_context_disconnect(pulse_ctx); + pa_context_unref(pulse_ctx); @@ -423,7 +486,6 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse + pa_channel_map map; + + INT64 clock_lastpos, clock_written; -+ pa_usec_t clock_pulse; + + AudioSession *session; + AudioSessionWrapper *session_wrapper; @@ -772,7 +834,6 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse +static void pulse_wr_callback(pa_stream *s, size_t bytes, void *userdata) +{ + ACImpl *This = userdata; -+ pa_usec_t time; + UINT32 oldpad = This->pad; + + if (bytes < This->bufsize_bytes) @@ -782,13 +843,8 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse + + assert(oldpad >= This->pad); + -+ if (0 && This->pad && pa_stream_get_time(This->stream, &time) >= 0) -+ This->clock_pulse = time; -+ else -+ This->clock_pulse = PA_USEC_INVALID; -+ + This->clock_written += oldpad - This->pad; -+ TRACE("New pad: %u (-%u)\n", This->pad / pa_frame_size(&This->ss), (oldpad - This->pad) / pa_frame_size(&This->ss)); ++ TRACE("New pad: %zu (-%zu)\n", This->pad / pa_frame_size(&This->ss), (oldpad - This->pad) / pa_frame_size(&This->ss)); + + if (This->event) + SetEvent(This->event); @@ -796,8 +852,6 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse + +static void pulse_underflow_callback(pa_stream *s, void *userdata) +{ -+ ACImpl *This = userdata; -+ This->clock_pulse = PA_USEC_INVALID; + WARN("Underflow\n"); +} + @@ -815,15 +869,7 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse + +static void pulse_started_callback(pa_stream *s, void *userdata) +{ -+ ACImpl *This = userdata; -+ pa_usec_t time; -+ + TRACE("(Re)started playing\n"); -+ assert(This->clock_pulse == PA_USEC_INVALID); -+ if (0 && pa_stream_get_time(This->stream, &time) >= 0) -+ This->clock_pulse = time; -+ if (This->event) -+ SetEvent(This->event); +} + +static void pulse_rd_loop(ACImpl *This, size_t bytes) @@ -832,7 +878,7 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse + ACPacket *p, *next; + LARGE_INTEGER stamp, freq; + BYTE *dst, *src; -+ UINT32 src_len, copy, rem = This->capture_period; ++ size_t src_len, copy, rem = This->capture_period; + if (!(p = (ACPacket*)list_head(&This->packet_free_head))) { + p = (ACPacket*)list_head(&This->packet_filled_head); + if (!p->discont) { @@ -884,7 +930,7 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse +static void pulse_rd_drop(ACImpl *This, size_t bytes) +{ + while (bytes >= This->capture_period) { -+ UINT32 src_len, copy, rem = This->capture_period; ++ size_t src_len, copy, rem = This->capture_period; + while (rem) { + const void *src; + pa_stream_peek(This->stream, &src, &src_len); @@ -914,7 +960,7 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse +{ + ACImpl *This = userdata; + -+ TRACE("Readable total: %u, fragsize: %u\n", bytes, pa_stream_get_buffer_attr(s)->fragsize); ++ TRACE("Readable total: %zu, fragsize: %u\n", bytes, pa_stream_get_buffer_attr(s)->fragsize); + assert(bytes >= This->peek_ofs); + bytes -= This->peek_ofs; + if (bytes < This->capture_period) @@ -1074,7 +1120,6 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse + This->IAudioStreamVolume_iface.lpVtbl = &AudioStreamVolume_Vtbl; + This->dataflow = dataflow; + This->parent = dev; -+ This->clock_pulse = PA_USEC_INVALID; + for (i = 0; i < PA_CHANNELS_MAX; ++i) + This->vol[i] = 1.f; + IMMDevice_AddRef(This->parent); @@ -1458,9 +1503,25 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse + goto exit; + + if (mode == AUDCLNT_SHAREMODE_SHARED) { -+ period = pulse_def_period[This->dataflow == eCapture]; ++ REFERENCE_TIME def = pulse_def_period[This->dataflow == eCapture]; ++ REFERENCE_TIME min = pulse_min_period[This->dataflow == eCapture]; ++ ++ /* Switch to low latency mode if below 2 default periods, ++ * which is 20 ms by default, this will increase the amount ++ * of interrupts but allows very low latency. In dsound I ++ * managed to get a total latency of ~8ms, which is well below ++ * default ++ */ ++ if (duration < 2 * def) ++ period = min; ++ else ++ period = def; + if (duration < 2 * period) + duration = 2 * period; ++ ++ /* Uh oh, really low latency requested.. */ ++ if (duration <= 2 * period) ++ period /= 2; + } + period_bytes = pa_frame_size(&This->ss) * MulDiv(period, This->ss.rate, 10000000); + @@ -1769,7 +1830,6 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse + pthread_mutex_unlock(&pulse_lock); + return AUDCLNT_E_NOT_STOPPED; + } -+ This->clock_pulse = PA_USEC_INVALID; + + if (pa_stream_is_corked(This->stream)) { + o = pa_stream_cork(This->stream, 0, pulse_op_cb, &success); @@ -1825,7 +1885,6 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse + } + if (SUCCEEDED(hr)) { + This->started = FALSE; -+ This->clock_pulse = PA_USEC_INVALID; + } + pthread_mutex_unlock(&pulse_lock); + return hr; @@ -2023,7 +2082,8 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse + UINT32 frames, BYTE **data) +{ + ACImpl *This = impl_from_IAudioRenderClient(iface); -+ UINT32 avail, pad, req, bytes = frames * pa_frame_size(&This->ss); ++ size_t avail, req, bytes = frames * pa_frame_size(&This->ss); ++ UINT32 pad; + HRESULT hr = S_OK; + int ret = -1; + @@ -2048,7 +2108,7 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse + avail = This->bufsize_frames - pad; + if (avail < frames || bytes > This->bufsize_bytes) { + pthread_mutex_unlock(&pulse_lock); -+ WARN("Wanted to write %u, but only %u available\n", frames, avail); ++ WARN("Wanted to write %u, but only %zu available\n", frames, avail); + return AUDCLNT_E_BUFFER_TOO_LARGE; + } + @@ -2056,7 +2116,7 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse + req = bytes; + ret = pa_stream_begin_write(This->stream, &This->locked_ptr, &req); + if (ret < 0 || req < bytes) { -+ FIXME("%p Not using pulse locked data: %i %u/%u %u/%u\n", This, ret, req/pa_frame_size(&This->ss), frames, pad, This->bufsize_frames); ++ FIXME("%p Not using pulse locked data: %i %zu/%u %u/%u\n", This, ret, req/pa_frame_size(&This->ss), frames, pad, This->bufsize_frames); + if (ret >= 0) + pa_stream_cancel_write(This->stream); + *data = This->tmp_buffer; @@ -2072,6 +2132,7 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse +{ + ACImpl *This = impl_from_IAudioRenderClient(iface); + UINT32 written_bytes = written_frames * pa_frame_size(&This->ss); ++// UINT32 period; + + TRACE("(%p)->(%u, %x)\n", This, written_frames, flags); + @@ -2104,8 +2165,13 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse + pa_stream_write(This->stream, This->tmp_buffer, written_bytes, NULL, 0, PA_SEEK_RELATIVE); + This->pad += written_bytes; + This->locked_ptr = NULL; -+ TRACE("Released %u, pad %u\n", written_frames, This->pad / pa_frame_size(&This->ss)); ++ TRACE("Released %u, pad %zu\n", written_frames, This->pad / pa_frame_size(&This->ss)); + assert(This->pad <= This->bufsize_bytes); ++ ++// period = pa_stream_get_buffer_attr(This->stream)->minreq; ++ /* Require a minimum of 3 periods filled, if possible */ ++// if (This->event && This->pad + period <= This->bufsize_bytes && This->pad < period * 3) ++// SetEvent(This->event); + pthread_mutex_unlock(&pulse_lock); + return S_OK; +} @@ -2312,7 +2378,6 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse + UINT64 *qpctime) +{ + ACImpl *This = impl_from_IAudioClock(iface); -+ pa_usec_t time; + HRESULT hr; + + TRACE("(%p)->(%p, %p)\n", This, pos, qpctime); @@ -2328,13 +2393,6 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse + } + + *pos = This->clock_written; -+ if (This->clock_pulse != PA_USEC_INVALID && pa_stream_get_time(This->stream, &time) >= 0) { -+ UINT32 delta = pa_usec_to_bytes(time - This->clock_pulse, &This->ss); -+ if (delta < This->pad) -+ *pos += delta; -+ else -+ *pos += This->pad; -+ } + + /* Make time never go backwards */ + if (*pos < This->clock_lastpos) @@ -3348,9 +3406,9 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse + *out = &This->IAudioSessionManager2_iface; + return S_OK; +} -diff -uNr wine-1.5.4.old/dlls/winepulse.drv/winepulse.drv.spec wine-1.5.4/dlls/winepulse.drv/winepulse.drv.spec ---- wine-1.5.4.old/dlls/winepulse.drv/winepulse.drv.spec 1970-01-01 02:00:00.000000000 +0200 -+++ wine-1.5.4/dlls/winepulse.drv/winepulse.drv.spec 2012-05-23 12:03:21.069645000 +0300 +diff -uNr wine-1.5.16.orig/dlls/winepulse.drv/winepulse.drv.spec wine-1.5.16/dlls/winepulse.drv/winepulse.drv.spec +--- wine-1.5.16.orig/dlls/winepulse.drv/winepulse.drv.spec 1970-01-01 01:00:00.000000000 +0100 ++++ wine-1.5.16/dlls/winepulse.drv/winepulse.drv.spec 2012-10-28 11:31:38.176115962 +0100 @@ -0,0 +1,5 @@ +# MMDevAPI driver functions +@ stdcall -private GetPriority() AUDDRV_GetPriority diff --git a/wine-pulse-winmm-Load-winealsa-if-winepulse-is-found.patch b/wine-pulse-winmm-Load-winealsa-if-winepulse-is-found.patch new file mode 100644 index 0000000..aba3925 --- /dev/null +++ b/wine-pulse-winmm-Load-winealsa-if-winepulse-is-found.patch @@ -0,0 +1,29 @@ +From 8045bdbc879ec70776427f744f30476cc2b469a4 Mon Sep 17 00:00:00 2001 +From: Maarten Lankhorst +Date: Fri, 26 Oct 2012 19:04:00 +0200 +Subject: [PATCH] winmm: Load winealsa if winepulse is found + +Fixes midi on winepulse +--- + dlls/winmm/lolvldrv.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/dlls/winmm/lolvldrv.c b/dlls/winmm/lolvldrv.c +index f387323..3b1be27 100644 +--- a/dlls/winmm/lolvldrv.c ++++ b/dlls/winmm/lolvldrv.c +@@ -543,7 +543,10 @@ static void MMDRV_Init(void) + drvA = HeapAlloc(GetProcessHeap(), 0, size); + WideCharToMultiByte(CP_ACP, 0, pv.u.pwszVal, -1, drvA, size, NULL, NULL); + +- MMDRV_Install(drvA, drvA, FALSE); ++ if (!strcasecmp(drvA, "winepulse.drv")) ++ MMDRV_Install("winealsa.drv", "winealsa.drv", 0); ++ else ++ MMDRV_Install(drvA, drvA, FALSE); + + HeapFree(GetProcessHeap(), 0, drvA); + PropVariantClear(&pv); +-- +1.7.11.7 + diff --git a/wine.spec b/wine.spec index 9bf3e12..8920a50 100644 --- a/wine.spec +++ b/wine.spec @@ -1,9 +1,9 @@ %global no64bit 0 %global winegecko 1.8 -%global winemono 0.0.4 +%global winemono 0.0.8 Name: wine -Version: 1.5.15 +Version: 1.5.16 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -54,9 +54,12 @@ Source502: wine-README-tahoma Patch511: wine-cjk.patch -# winepulse backend +## winepulse backend # http://repo.or.cz/w/wine/multimedia.git -Patch1001: wine-pulse-1.5.4.patch +# last change Fri, 26 Oct 2012 17:16:03 +0000 +Patch1001: wine-pulse-1.5.16.patch +# use winealsa for midi in the pa backend +Patch1002: wine-pulse-winmm-Load-winealsa-if-winepulse-is-found.patch Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -210,6 +213,13 @@ Requires: nss-mdns(x86-32) Requires: gnutls(x86-32) Requires: libXrender(x86-32) Requires: libXcursor(x86-32) + +%if 0%{?fedora} >= 18 +Requires: openssl-libs(x86-32) +%else +Requires: openssl(x86-32) +%endif + %endif %ifarch x86_64 @@ -218,6 +228,13 @@ Requires: nss-mdns(x86-64) Requires: gnutls(x86-64) Requires: libXrender(x86-64) Requires: libXcursor(x86-64) + +%if 0%{?fedora} >= 18 +Requires: openssl-libs(x86-64) +%else +Requires: openssl(x86-64) +%endif + %endif %ifarch %{arm} @@ -226,6 +243,13 @@ Requires: nss-mdns Requires: gnutls Requires: libXrender Requires: libXcursor + +%if 0%{?fedora} >= 18 +Requires: openssl-libs +%else +Requires: openssl +%endif + %endif # old removed packages @@ -474,6 +498,8 @@ with the Wine Windows(TM) emulation libraries. Summary: Pulseaudio support for wine Group: System Environment/Libraries Requires: wine-core = %{version}-%{release} +# midi output +Requires: wine-alsa = %{version}-%{release} %description pulseaudio This package adds a pulseaudio driver for wine. Please do not report bugs in @@ -505,6 +531,7 @@ This package adds an openal driver for wine. %patch511 -p1 -b.cjk %patch1001 -p1 -b.winepulse +%patch1002 -p1 -b.winepulse-midi autoreconf @@ -1497,6 +1524,14 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sun Oct 28 2012 Andreas Bierfert +- 1.5.16-1 +- version upgrade (rhbz#870611) +- wine mono 0.8 +- update pulse patch +- fix midi in winepulse (rhbz#863129) +- fix dependencies for openssl (rhbz#868576) + * Mon Oct 15 2012 Andreas Bierfert - 1.5.15-1 - version upgrade From f7ef8c87429fea8f5d3042e16f4ac5a3a04b294f Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 29 Oct 2012 22:52:28 +0100 Subject: [PATCH 253/715] move wineboot.exe.so to -core instead of -wow (rhbz#842820) --- wine.spec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 8920a50..3ee9007 100644 --- a/wine.spec +++ b/wine.spec @@ -843,7 +843,6 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_bindir}/wine %endif %{_bindir}/wineserver -%{_libdir}/wine/wineboot.exe.so %files core %defattr(-,root,root,-) @@ -924,6 +923,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/start.exe.so %{_libdir}/wine/termsv.exe.so %{_libdir}/wine/view.exe.so +%{_libdir}/wine/wineboot.exe.so %{_libdir}/wine/winebrowser.exe.so %{_libdir}/wine/wineconsole.exe.so %{_libdir}/wine/winemenubuilder.exe.so @@ -1531,6 +1531,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : - update pulse patch - fix midi in winepulse (rhbz#863129) - fix dependencies for openssl (rhbz#868576) +- move wineboot.exe.so to -core instead of -wow (rhbz#842820) * Mon Oct 15 2012 Andreas Bierfert - 1.5.15-1 From 95da87c27125fe8129f2e0d35c795eb4649e0e41 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 12 Nov 2012 20:16:46 +0100 Subject: [PATCH 254/715] 1.5.17-1 - version upgrade - upgraded winepulse --- .gitignore | 4 +- sources | 4 +- wine-1.5.10-osmesa-check.patch | 33 ----- wine-1.5.17-osmesa-check.patch | 38 +++++ ...se-1.5.16.patch => wine-pulse-1.5.17.patch | 135 +++++------------- wine.spec | 17 ++- 6 files changed, 93 insertions(+), 138 deletions(-) delete mode 100644 wine-1.5.10-osmesa-check.patch create mode 100644 wine-1.5.17-osmesa-check.patch rename wine-pulse-1.5.16.patch => wine-pulse-1.5.17.patch (96%) diff --git a/.gitignore b/.gitignore index c1dfe30..23e6d8e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ /wine-1.4.tar.bz2 /wine-1.4.tar.bz2.sign -/wine-1.5.16.tar.bz2 -/wine-1.5.16.tar.bz2.sign +/wine-1.5.17.tar.bz2 +/wine-1.5.17.tar.bz2.sign diff --git a/sources b/sources index 81f7320..ce20d10 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -cece715b6ff812e2cd76b7462f3fb582 wine-1.5.16.tar.bz2 -a087f0703a1778e82a73dfaa729a7aad wine-1.5.16.tar.bz2.sign +d68214e863c057d77ff2fef7226ecb9b wine-1.5.17.tar.bz2 +ebeb894424220f96ccbf053b6386fd65 wine-1.5.17.tar.bz2.sign diff --git a/wine-1.5.10-osmesa-check.patch b/wine-1.5.10-osmesa-check.patch deleted file mode 100644 index 1f96db3..0000000 --- a/wine-1.5.10-osmesa-check.patch +++ /dev/null @@ -1,33 +0,0 @@ -From a233e35ca650db2758de0fd31450b8ce2d86d5e3 Mon Sep 17 00:00:00 2001 -From: Alexandre Rostovtsev -Date: Tue, 7 Aug 2012 01:29:01 -0400 -Subject: [PATCH] Do not check for libGL symbols when checking libOSMesa - -If mesa had been built with shared glapi, glAccum is not available in -libOSMesa without explicitly linking to libGL. In addition, in -mesa-8.0.x and earlier, libOSMesa needs to be explicitly linked to -libglapi if mesa was built with shared glapi, see -https://bugs.gentoo.org/show_bug.cgi?id=399813 ---- - configure.ac | 5 ++++- - 1 files changed, 4 insertions(+), 1 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 4bd43d1..c7a718f 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1132,7 +1132,10 @@ This probably prevents linking to OpenGL. Try deleting the file and restarting c - - if test "$ac_cv_header_GL_osmesa_h" = "yes" - then -- WINE_CHECK_SONAME(OSMesa,glAccum,,,[$X_LIBS $X_PRE_LIBS $XLIB -lm $X_EXTRA_LIBS]) -+ WINE_CHECK_SONAME(OSMesa,OSMesaCreateContext,,,[$OPENGL_LIBS $X_LIBS $X_PRE_LIBS $XLIB -lm $X_EXTRA_LIBS]) -+ if test "x$ac_cv_lib_soname_OSMesa" = "x"; then -+ WINE_CHECK_SONAME(OSMesa,OSMesaCreateContext,,,[-lglapi $OPENGL_LIBS $X_LIBS $X_PRE_LIBS $XLIB -lm $X_EXTRA_LIBS]) -+ fi - fi - WINE_NOTICE_WITH(osmesa,[test "x$ac_cv_lib_soname_OSMesa" = "x"], - [libOSMesa ${notice_platform}development files not found (or too old), OpenGL rendering in bitmaps won't be supported.]) --- -1.7.8.6 - diff --git a/wine-1.5.17-osmesa-check.patch b/wine-1.5.17-osmesa-check.patch new file mode 100644 index 0000000..8236192 --- /dev/null +++ b/wine-1.5.17-osmesa-check.patch @@ -0,0 +1,38 @@ +From 1ede664b18bd8a88359a3cebb291ad49833ee033 Mon Sep 17 00:00:00 2001 +From: Alexandre Rostovtsev +Date: Tue, 7 Aug 2012 01:29:01 -0400 +Subject: [PATCH] Do not check for libGL symbols when checking libOSMesa + +If mesa had been built with shared glapi, glAccum is not available in +libOSMesa without explicitly linking to libGL. In addition, in +mesa-8.0.x and earlier, libOSMesa needs to be explicitly linked to +libglapi if mesa was built with shared glapi, see +https://bugs.gentoo.org/show_bug.cgi?id=399813 +And in mesa-8.1.x, libOSMesa in addition needs libdl, libpthread, and +libstdc++, see https://bugs.gentoo.org/show_bug.cgi?id=431832 +--- + configure.ac | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index cc32c24..275b792 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1128,7 +1128,13 @@ This probably prevents linking to OpenGL. Try deleting the file and restarting c + + if test "x$with_osmesa" != "xno" + then +- WINE_CHECK_SONAME(OSMesa,glAccum,,,[$X_LIBS $X_PRE_LIBS $XLIB -lm $X_EXTRA_LIBS]) ++ WINE_CHECK_SONAME(OSMesa,OSMesaCreateContext,,,[$X_LIBS $X_PRE_LIBS $XLIB -lm $X_EXTRA_LIBS]) ++ if test "x$ac_cv_lib_soname_OSMesa" = "x"; then ++ osmesa_save_CC=$CC ++ CC=$CXX ++ WINE_CHECK_SONAME(OSMesa,OSMesaCreateContext,,,[-lglapi -lpthread -ldl $X_LIBS $X_PRE_LIBS $XLIB -lm $X_EXTRA_LIBS]) ++ CC=$osmesa_save_CC ++ fi + WINE_NOTICE_WITH(osmesa,[test "x$ac_cv_lib_soname_OSMesa" = "x"], + [libOSMesa ${notice_platform}development files not found (or too old), OpenGL rendering in bitmaps won't be supported.]) + fi +-- +1.8.0 + diff --git a/wine-pulse-1.5.16.patch b/wine-pulse-1.5.17.patch similarity index 96% rename from wine-pulse-1.5.16.patch rename to wine-pulse-1.5.17.patch index 40c7da7..63d6379 100644 --- a/wine-pulse-1.5.16.patch +++ b/wine-pulse-1.5.17.patch @@ -1,25 +1,6 @@ -diff -uNr wine-1.5.16.orig/configure wine-1.5.16/configure ---- wine-1.5.16.orig/configure 2012-10-28 11:24:58.288429351 +0100 -+++ wine-1.5.16/configure 2012-10-28 11:32:47.643026610 +0100 -@@ -1,6 +1,6 @@ - #! /bin/sh - # Guess values for system-dependent variables and create Makefiles. --# Generated by GNU Autoconf 2.69 for Wine 1.5.16. -+# Generated by GNU Autoconf 2.69 for Wine 1.5.15. - # - # Report bugs to . - # -@@ -580,8 +580,8 @@ - # Identity of this package. - PACKAGE_NAME='Wine' - PACKAGE_TARNAME='wine' --PACKAGE_VERSION='1.5.16' --PACKAGE_STRING='Wine 1.5.16' -+PACKAGE_VERSION='1.5.15' -+PACKAGE_STRING='Wine 1.5.15' - PACKAGE_BUGREPORT='wine-devel@winehq.org' - PACKAGE_URL='http://www.winehq.org' - +diff -uhNr wine-1.5.17/configure wine-1.5.17-mm/configure +--- wine-1.5.17/configure 2012-11-09 19:46:37.000000000 +0100 ++++ wine-1.5.17-mm/configure 2012-11-12 19:24:06.932539040 +0100 @@ -649,6 +649,8 @@ ALSALIBS GSTREAMER_INCL @@ -37,24 +18,6 @@ diff -uNr wine-1.5.16.orig/configure wine-1.5.16/configure with_sane with_tiff with_v4l -@@ -1400,7 +1403,7 @@ - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF --\`configure' configures Wine 1.5.16 to adapt to many kinds of systems. -+\`configure' configures Wine 1.5.15 to adapt to many kinds of systems. - - Usage: $0 [OPTION]... [VAR=VALUE]... - -@@ -1469,7 +1472,7 @@ - - if test -n "$ac_init_help"; then - case $ac_init_help in -- short | recursive ) echo "Configuration of Wine 1.5.16:";; -+ short | recursive ) echo "Configuration of Wine 1.5.15:";; - esac - cat <<\_ACEOF - @@ -1516,6 +1519,7 @@ --without-oss do not use the OSS sound support --without-png do not use PNG @@ -63,24 +26,6 @@ diff -uNr wine-1.5.16.orig/configure wine-1.5.16/configure --without-sane do not use SANE (scanner support) --without-tiff do not use TIFF --without-v4l do not use v4l1 (v4l support) -@@ -1616,7 +1620,7 @@ - test -n "$ac_init_help" && exit $ac_status - if $ac_init_version; then - cat <<\_ACEOF --Wine configure 1.5.16 -+Wine configure 1.5.15 - generated by GNU Autoconf 2.69 - - Copyright (C) 2012 Free Software Foundation, Inc. -@@ -2134,7 +2138,7 @@ - This file contains any messages produced by compilers while - running configure, to aid debugging if configure makes a mistake. - --It was created by Wine $as_me 1.5.16, which was -+It was created by Wine $as_me 1.5.15, which was - generated by GNU Autoconf 2.69. Invocation command line was - - $ $0 $@ @@ -2707,6 +2711,12 @@ fi @@ -94,7 +39,7 @@ diff -uNr wine-1.5.16.orig/configure wine-1.5.16/configure # Check whether --with-sane was given. if test "${with_sane+set}" = set; then : withval=$with_sane; -@@ -10807,6 +10817,87 @@ +@@ -10734,6 +10744,87 @@ fi fi @@ -182,7 +127,7 @@ diff -uNr wine-1.5.16.orig/configure wine-1.5.16/configure if test "x$with_gstreamer" != "xno" then ac_save_CPPFLAGS="$CPPFLAGS" -@@ -12066,12 +12157,13 @@ +@@ -11993,12 +12084,13 @@ test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no} test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no} @@ -198,7 +143,7 @@ diff -uNr wine-1.5.16.orig/configure wine-1.5.16/configure then as_fn_append wine_warnings "|No sound system was found. Windows applications will be silent." fi -@@ -15832,6 +15924,7 @@ +@@ -15760,6 +15852,7 @@ wine_fn_config_dll wineoss.drv enable_wineoss_drv wine_fn_config_dll wineps.drv enable_wineps_drv install-lib,po wine_fn_config_dll wineps16.drv16 enable_win16 @@ -206,28 +151,10 @@ diff -uNr wine-1.5.16.orig/configure wine-1.5.16/configure wine_fn_config_dll wineqtdecoder enable_wineqtdecoder wine_fn_config_dll winequartz.drv enable_winequartz_drv wine_fn_config_dll winex11.drv enable_winex11_drv -@@ -16588,7 +16681,7 @@ - # report actual input values of CONFIG_FILES etc. instead of their - # values after options handling. - ac_log=" --This file was extended by Wine $as_me 1.5.16, which was -+This file was extended by Wine $as_me 1.5.15, which was - generated by GNU Autoconf 2.69. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES -@@ -16659,7 +16752,7 @@ - cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" - ac_cs_version="\\ --Wine config.status 1.5.16 -+Wine config.status 1.5.15 - configured by $0, generated by GNU Autoconf 2.69, - with options \\"\$ac_cs_config\\" - -diff -uNr wine-1.5.16.orig/configure.ac wine-1.5.16/configure.ac ---- wine-1.5.16.orig/configure.ac 2012-10-28 11:24:58.766394415 +0100 -+++ wine-1.5.16/configure.ac 2012-10-28 11:32:49.545887232 +0100 -@@ -76,6 +76,7 @@ +diff -uhNr wine-1.5.17/configure.ac wine-1.5.17-mm/configure.ac +--- wine-1.5.17/configure.ac 2012-11-09 19:46:37.000000000 +0100 ++++ wine-1.5.17-mm/configure.ac 2012-11-12 19:35:33.313361109 +0100 +@@ -74,6 +74,7 @@ [if test "x$withval" = "xno"; then ac_cv_header_png_h=no; fi]) AC_ARG_WITH(pthread, AS_HELP_STRING([--without-pthread],[do not use the pthread library]), [if test "x$withval" = "xno"; then ac_cv_header_pthread_h=no; fi]) @@ -235,7 +162,7 @@ diff -uNr wine-1.5.16.orig/configure.ac wine-1.5.16/configure.ac AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)])) AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF]), [if test "x$withval" = "xno"; then ac_cv_header_tiffio_h=no; fi]) -@@ -1512,6 +1513,30 @@ +@@ -1482,6 +1483,30 @@ [GetText ${notice_platform}development files not found (or too old), po files can't be rebuilt.]) fi @@ -266,7 +193,7 @@ diff -uNr wine-1.5.16.orig/configure.ac wine-1.5.16/configure.ac dnl **** Check for gstreamer **** if test "x$with_gstreamer" != "xno" then -@@ -1718,13 +1743,14 @@ +@@ -1688,13 +1713,14 @@ dnl **** Disable unsupported winmm drivers **** test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no} test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no} @@ -283,7 +210,7 @@ diff -uNr wine-1.5.16.orig/configure.ac wine-1.5.16/configure.ac then WINE_WARNING([No sound system was found. Windows applications will be silent.]) fi -@@ -3055,6 +3081,7 @@ +@@ -3026,6 +3052,7 @@ WINE_CONFIG_DLL(wineoss.drv) WINE_CONFIG_DLL(wineps.drv,,[install-lib,po]) WINE_CONFIG_DLL(wineps16.drv16,enable_win16) @@ -291,9 +218,21 @@ diff -uNr wine-1.5.16.orig/configure.ac wine-1.5.16/configure.ac WINE_CONFIG_DLL(wineqtdecoder) WINE_CONFIG_DLL(winequartz.drv) WINE_CONFIG_DLL(winex11.drv) -diff -uNr wine-1.5.16.orig/dlls/winepulse.drv/Makefile.in wine-1.5.16/dlls/winepulse.drv/Makefile.in ---- wine-1.5.16.orig/dlls/winepulse.drv/Makefile.in 1970-01-01 01:00:00.000000000 +0100 -+++ wine-1.5.16/dlls/winepulse.drv/Makefile.in 2012-10-28 11:31:38.175116035 +0100 +diff -uhNr wine-1.5.17/dlls/mmdevapi/main.c wine-1.5.17-mm/dlls/mmdevapi/main.c +--- wine-1.5.17/dlls/mmdevapi/main.c 2012-11-09 19:46:37.000000000 +0100 ++++ wine-1.5.17-mm/dlls/mmdevapi/main.c 2012-11-12 20:02:10.208624523 +0100 +@@ -110,7 +110,7 @@ + { + static const WCHAR drv_value[] = {'A','u','d','i','o',0}; + +- static WCHAR default_list[] = {'a','l','s','a',',','o','s','s',',', ++ static WCHAR default_list[] = {'p','u','l','s','e',',','a','l','s','a',',','o','s','s',',', + 'c','o','r','e','a','u','d','i','o',0}; + + DriverFuncs driver; +diff -uhNr wine-1.5.17/dlls/winepulse.drv/Makefile.in wine-1.5.17-mm/dlls/winepulse.drv/Makefile.in +--- wine-1.5.17/dlls/winepulse.drv/Makefile.in 1970-01-01 01:00:00.000000000 +0100 ++++ wine-1.5.17-mm/dlls/winepulse.drv/Makefile.in 2012-11-12 19:24:06.933539037 +0100 @@ -0,0 +1,9 @@ +MODULE = winepulse.drv +IMPORTS = dxguid uuid winmm user32 advapi32 ole32 @@ -304,10 +243,10 @@ diff -uNr wine-1.5.16.orig/dlls/winepulse.drv/Makefile.in wine-1.5.16/dlls/winep + mmdevdrv.c + +@MAKE_DLL_RULES@ -diff -uNr wine-1.5.16.orig/dlls/winepulse.drv/mmdevdrv.c wine-1.5.16/dlls/winepulse.drv/mmdevdrv.c ---- wine-1.5.16.orig/dlls/winepulse.drv/mmdevdrv.c 1970-01-01 01:00:00.000000000 +0100 -+++ wine-1.5.16/dlls/winepulse.drv/mmdevdrv.c 2012-10-28 11:31:38.176115962 +0100 -@@ -0,0 +1,3098 @@ +diff -uhNr wine-1.5.17/dlls/winepulse.drv/mmdevdrv.c wine-1.5.17-mm/dlls/winepulse.drv/mmdevdrv.c +--- wine-1.5.17/dlls/winepulse.drv/mmdevdrv.c 1970-01-01 01:00:00.000000000 +0100 ++++ wine-1.5.17-mm/dlls/winepulse.drv/mmdevdrv.c 2012-11-12 19:24:06.933539037 +0100 +@@ -0,0 +1,3102 @@ +/* + * Copyright 2011-2012 Maarten Lankhorst + * Copyright 2010-2011 Maarten Lankhorst for CodeWeavers @@ -1753,6 +1692,10 @@ diff -uNr wine-1.5.16.orig/dlls/winepulse.drv/mmdevdrv.c wine-1.5.16/dlls/winepu + } + } + ++ if (fmt->nBlockAlign != fmt->nChannels * fmt->wBitsPerSample / 8 || ++ fmt->nAvgBytesPerSec != fmt->nBlockAlign * fmt->nSamplesPerSec) ++ hr = S_FALSE; ++ + if (hr == S_OK || !out) { + CoTaskMemFree(closest); + if (out) @@ -3406,9 +3349,9 @@ diff -uNr wine-1.5.16.orig/dlls/winepulse.drv/mmdevdrv.c wine-1.5.16/dlls/winepu + *out = &This->IAudioSessionManager2_iface; + return S_OK; +} -diff -uNr wine-1.5.16.orig/dlls/winepulse.drv/winepulse.drv.spec wine-1.5.16/dlls/winepulse.drv/winepulse.drv.spec ---- wine-1.5.16.orig/dlls/winepulse.drv/winepulse.drv.spec 1970-01-01 01:00:00.000000000 +0100 -+++ wine-1.5.16/dlls/winepulse.drv/winepulse.drv.spec 2012-10-28 11:31:38.176115962 +0100 +diff -uhNr wine-1.5.17/dlls/winepulse.drv/winepulse.drv.spec wine-1.5.17-mm/dlls/winepulse.drv/winepulse.drv.spec +--- wine-1.5.17/dlls/winepulse.drv/winepulse.drv.spec 1970-01-01 01:00:00.000000000 +0100 ++++ wine-1.5.17-mm/dlls/winepulse.drv/winepulse.drv.spec 2012-11-12 19:24:06.933539037 +0100 @@ -0,0 +1,5 @@ +# MMDevAPI driver functions +@ stdcall -private GetPriority() AUDDRV_GetPriority diff --git a/wine.spec b/wine.spec index 3ee9007..f65cd40 100644 --- a/wine.spec +++ b/wine.spec @@ -3,7 +3,7 @@ %global winemono 0.0.8 Name: wine -Version: 1.5.16 +Version: 1.5.17 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -33,8 +33,8 @@ Source109: wine-oleview.desktop # build fixes # do not check for glAccum -# wget http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/app-emulation/wine/files/wine-1.5.10-osmesa-check.patch?revision=1.1 -Patch1: wine-1.5.10-osmesa-check.patch +# wget http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/app-emulation/wine/files/wine-1.5.17-osmesa-check.patch?revision=1.1 +Patch1: wine-1.5.17-osmesa-check.patch # wine bugs @@ -56,8 +56,8 @@ Patch511: wine-cjk.patch ## winepulse backend # http://repo.or.cz/w/wine/multimedia.git -# last change Fri, 26 Oct 2012 17:16:03 +0000 -Patch1001: wine-pulse-1.5.16.patch +# last change Mon, 12 Nov 2012 16:25:41 +0000 +Patch1001: wine-pulse-1.5.17.patch # use winealsa for midi in the pa backend Patch1002: wine-pulse-winmm-Load-winealsa-if-winepulse-is-found.patch @@ -917,6 +917,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/regsvr32.exe.so %{_libdir}/wine/rpcss.exe.so %{_libdir}/wine/rundll32.exe.so +%{_libdir}/wine/schtasks.exe.so %{_libdir}/wine/secedit.exe.so %{_libdir}/wine/servicemodelreg.exe.so %{_libdir}/wine/services.exe.so @@ -1270,6 +1271,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/xmllite.dll.so %{_libdir}/wine/xolehlp.dll.so %{_libdir}/wine/xpsprint.dll.so +%{_libdir}/wine/xpssvcs.dll.so # 16 bit and other non 64bit stuff %ifnarch x86_64 %{arm} @@ -1524,6 +1526,11 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Mon Nov 12 2012 Andreas Bierfert +- 1.5.17-1 +- version upgrade +- upgraded winepulse + * Sun Oct 28 2012 Andreas Bierfert - 1.5.16-1 - version upgrade (rhbz#870611) From af10eb1bef6fe8b40248519df2dfbd5b3eda7d19 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Fri, 23 Nov 2012 22:32:19 +0100 Subject: [PATCH 255/715] 1.5.18-1 - version upgrade --- .gitignore | 4 ++-- sources | 4 ++-- wine.spec | 7 ++++++- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 23e6d8e..bfdd074 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ /wine-1.4.tar.bz2 /wine-1.4.tar.bz2.sign -/wine-1.5.17.tar.bz2 -/wine-1.5.17.tar.bz2.sign +/wine-1.5.18.tar.bz2 +/wine-1.5.18.tar.bz2.sign diff --git a/sources b/sources index ce20d10..990c296 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -d68214e863c057d77ff2fef7226ecb9b wine-1.5.17.tar.bz2 -ebeb894424220f96ccbf053b6386fd65 wine-1.5.17.tar.bz2.sign +6d7c2a55673423b7318db392ba7a7da9 wine-1.5.18.tar.bz2 +33f9e2becc972b01b08a38a6cf42cba4 wine-1.5.18.tar.bz2.sign diff --git a/wine.spec b/wine.spec index f65cd40..58dd3e2 100644 --- a/wine.spec +++ b/wine.spec @@ -3,7 +3,7 @@ %global winemono 0.0.8 Name: wine -Version: 1.5.17 +Version: 1.5.18 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -944,6 +944,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/appwiz.cpl.so %{_libdir}/wine/atl.dll.so %{_libdir}/wine/atl80.dll.so +%{_libdir}/wine/atl100.dll.so %{_libdir}/wine/authz.dll.so %{_libdir}/wine/avicap32.dll.so %{_libdir}/wine/avifil32.dll.so @@ -1526,6 +1527,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Fri Nov 23 2012 Andreas Bierfert +- 1.5.18-1 +- version upgrade + * Mon Nov 12 2012 Andreas Bierfert - 1.5.17-1 - version upgrade From 4067231e7fdcdc9c081da3d28a805f07d290ecd1 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 30 Dec 2012 10:10:39 +0100 Subject: [PATCH 256/715] 1.5.20-1 - version upgrade - upgraded winepulse --- .gitignore | 4 +- sources | 4 +- ...se-1.5.17.patch => wine-pulse-1.5.20.patch | 245 +++++++++++------- ...-Load-winealsa-if-winepulse-is-found.patch | 10 +- wine.spec | 32 ++- 5 files changed, 188 insertions(+), 107 deletions(-) rename wine-pulse-1.5.17.patch => wine-pulse-1.5.20.patch (95%) diff --git a/.gitignore b/.gitignore index bfdd074..33492d5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ /wine-1.4.tar.bz2 /wine-1.4.tar.bz2.sign -/wine-1.5.18.tar.bz2 -/wine-1.5.18.tar.bz2.sign +/wine-1.5.20.tar.bz2 +/wine-1.5.20.tar.bz2.sign diff --git a/sources b/sources index 990c296..041b93b 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -6d7c2a55673423b7318db392ba7a7da9 wine-1.5.18.tar.bz2 -33f9e2becc972b01b08a38a6cf42cba4 wine-1.5.18.tar.bz2.sign +ea1c3ec9935d1da1b0f50552d540c242 wine-1.5.20.tar.bz2 +d182d4d463c02325e430a600588478dc wine-1.5.20.tar.bz2.sign diff --git a/wine-pulse-1.5.17.patch b/wine-pulse-1.5.20.patch similarity index 95% rename from wine-pulse-1.5.17.patch rename to wine-pulse-1.5.20.patch index 63d6379..7734be7 100644 --- a/wine-pulse-1.5.17.patch +++ b/wine-pulse-1.5.20.patch @@ -1,6 +1,5 @@ -diff -uhNr wine-1.5.17/configure wine-1.5.17-mm/configure ---- wine-1.5.17/configure 2012-11-09 19:46:37.000000000 +0100 -+++ wine-1.5.17-mm/configure 2012-11-12 19:24:06.932539040 +0100 +--- wine-1.5.20/configure 2012-12-21 20:14:41.000000000 +0100 ++++ wine-1.5.20-winepulse/configure 2012-12-29 08:53:10.399489081 +0100 @@ -649,6 +649,8 @@ ALSALIBS GSTREAMER_INCL @@ -39,7 +38,7 @@ diff -uhNr wine-1.5.17/configure wine-1.5.17-mm/configure # Check whether --with-sane was given. if test "${with_sane+set}" = set; then : withval=$with_sane; -@@ -10734,6 +10744,87 @@ +@@ -10746,6 +10756,87 @@ fi fi @@ -127,7 +126,7 @@ diff -uhNr wine-1.5.17/configure wine-1.5.17-mm/configure if test "x$with_gstreamer" != "xno" then ac_save_CPPFLAGS="$CPPFLAGS" -@@ -11993,12 +12084,13 @@ +@@ -12005,12 +12096,13 @@ test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no} test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no} @@ -143,17 +142,16 @@ diff -uhNr wine-1.5.17/configure wine-1.5.17-mm/configure then as_fn_append wine_warnings "|No sound system was found. Windows applications will be silent." fi -@@ -15760,6 +15852,7 @@ +@@ -15896,6 +15988,7 @@ wine_fn_config_dll wineoss.drv enable_wineoss_drv wine_fn_config_dll wineps.drv enable_wineps_drv install-lib,po wine_fn_config_dll wineps16.drv16 enable_win16 +wine_fn_config_dll winepulse.drv enable_winepulse_drv wine_fn_config_dll wineqtdecoder enable_wineqtdecoder - wine_fn_config_dll winequartz.drv enable_winequartz_drv wine_fn_config_dll winex11.drv enable_winex11_drv -diff -uhNr wine-1.5.17/configure.ac wine-1.5.17-mm/configure.ac ---- wine-1.5.17/configure.ac 2012-11-09 19:46:37.000000000 +0100 -+++ wine-1.5.17-mm/configure.ac 2012-11-12 19:35:33.313361109 +0100 + wine_fn_config_dll wing.dll16 enable_win16 +--- wine-1.5.20/configure.ac 2012-12-21 20:14:41.000000000 +0100 ++++ wine-1.5.20-winepulse/configure.ac 2012-12-29 08:53:10.399489081 +0100 @@ -74,6 +74,7 @@ [if test "x$withval" = "xno"; then ac_cv_header_png_h=no; fi]) AC_ARG_WITH(pthread, AS_HELP_STRING([--without-pthread],[do not use the pthread library]), @@ -162,7 +160,7 @@ diff -uhNr wine-1.5.17/configure.ac wine-1.5.17-mm/configure.ac AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)])) AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF]), [if test "x$withval" = "xno"; then ac_cv_header_tiffio_h=no; fi]) -@@ -1482,6 +1483,30 @@ +@@ -1490,6 +1491,30 @@ [GetText ${notice_platform}development files not found (or too old), po files can't be rebuilt.]) fi @@ -193,7 +191,7 @@ diff -uhNr wine-1.5.17/configure.ac wine-1.5.17-mm/configure.ac dnl **** Check for gstreamer **** if test "x$with_gstreamer" != "xno" then -@@ -1688,13 +1713,14 @@ +@@ -1696,13 +1721,14 @@ dnl **** Disable unsupported winmm drivers **** test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no} test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no} @@ -210,29 +208,17 @@ diff -uhNr wine-1.5.17/configure.ac wine-1.5.17-mm/configure.ac then WINE_WARNING([No sound system was found. Windows applications will be silent.]) fi -@@ -3026,6 +3052,7 @@ +@@ -3071,6 +3097,7 @@ WINE_CONFIG_DLL(wineoss.drv) WINE_CONFIG_DLL(wineps.drv,,[install-lib,po]) WINE_CONFIG_DLL(wineps16.drv16,enable_win16) +WINE_CONFIG_DLL(winepulse.drv) WINE_CONFIG_DLL(wineqtdecoder) - WINE_CONFIG_DLL(winequartz.drv) WINE_CONFIG_DLL(winex11.drv) -diff -uhNr wine-1.5.17/dlls/mmdevapi/main.c wine-1.5.17-mm/dlls/mmdevapi/main.c ---- wine-1.5.17/dlls/mmdevapi/main.c 2012-11-09 19:46:37.000000000 +0100 -+++ wine-1.5.17-mm/dlls/mmdevapi/main.c 2012-11-12 20:02:10.208624523 +0100 -@@ -110,7 +110,7 @@ - { - static const WCHAR drv_value[] = {'A','u','d','i','o',0}; - -- static WCHAR default_list[] = {'a','l','s','a',',','o','s','s',',', -+ static WCHAR default_list[] = {'p','u','l','s','e',',','a','l','s','a',',','o','s','s',',', - 'c','o','r','e','a','u','d','i','o',0}; - - DriverFuncs driver; -diff -uhNr wine-1.5.17/dlls/winepulse.drv/Makefile.in wine-1.5.17-mm/dlls/winepulse.drv/Makefile.in ---- wine-1.5.17/dlls/winepulse.drv/Makefile.in 1970-01-01 01:00:00.000000000 +0100 -+++ wine-1.5.17-mm/dlls/winepulse.drv/Makefile.in 2012-11-12 19:24:06.933539037 +0100 + WINE_CONFIG_DLL(wing.dll16,enable_win16) +diff -uhNr wine-1.5.20/dlls/winepulse.drv/Makefile.in wine-1.5.20-winepulse/dlls/winepulse.drv/Makefile.in +--- wine-1.5.20/dlls/winepulse.drv/Makefile.in 1970-01-01 01:00:00.000000000 +0100 ++++ wine-1.5.20-winepulse/dlls/winepulse.drv/Makefile.in 2012-12-29 08:53:11.106438282 +0100 @@ -0,0 +1,9 @@ +MODULE = winepulse.drv +IMPORTS = dxguid uuid winmm user32 advapi32 ole32 @@ -243,10 +229,10 @@ diff -uhNr wine-1.5.17/dlls/winepulse.drv/Makefile.in wine-1.5.17-mm/dlls/winepu + mmdevdrv.c + +@MAKE_DLL_RULES@ -diff -uhNr wine-1.5.17/dlls/winepulse.drv/mmdevdrv.c wine-1.5.17-mm/dlls/winepulse.drv/mmdevdrv.c ---- wine-1.5.17/dlls/winepulse.drv/mmdevdrv.c 1970-01-01 01:00:00.000000000 +0100 -+++ wine-1.5.17-mm/dlls/winepulse.drv/mmdevdrv.c 2012-11-12 19:24:06.933539037 +0100 -@@ -0,0 +1,3102 @@ +diff -uhNr wine-1.5.20/dlls/winepulse.drv/mmdevdrv.c wine-1.5.20-winepulse/dlls/winepulse.drv/mmdevdrv.c +--- wine-1.5.20/dlls/winepulse.drv/mmdevdrv.c 1970-01-01 01:00:00.000000000 +0100 ++++ wine-1.5.20-winepulse/dlls/winepulse.drv/mmdevdrv.c 2012-12-29 08:53:11.107438210 +0100 +@@ -0,0 +1,3171 @@ +/* + * Copyright 2011-2012 Maarten Lankhorst + * Copyright 2010-2011 Maarten Lankhorst for CodeWeavers @@ -780,7 +766,10 @@ diff -uhNr wine-1.5.17/dlls/winepulse.drv/mmdevdrv.c wine-1.5.17-mm/dlls/winepul + else + This->pad = 0; + -+ assert(oldpad >= This->pad); ++ if (oldpad == This->pad) ++ return; ++ ++ assert(oldpad > This->pad); + + This->clock_written += oldpad - This->pad; + TRACE("New pad: %zu (-%zu)\n", This->pad / pa_frame_size(&This->ss), (oldpad - This->pad) / pa_frame_size(&This->ss)); @@ -1353,10 +1342,8 @@ diff -uhNr wine-1.5.17/dlls/winepulse.drv/mmdevdrv.c wine-1.5.17-mm/dlls/winepul + } + } + This->map.channels = fmt->nChannels; -+ if (!mask || mask == SPEAKER_ALL) ++ if (!mask || (mask & (SPEAKER_ALL|SPEAKER_RESERVED))) + mask = get_channel_mask(fmt->nChannels); -+ else if (mask == ~0U && fmt->nChannels == 1) -+ mask = SPEAKER_FRONT_CENTER; + for (j = 0; j < sizeof(pulse_pos_from_wfx)/sizeof(*pulse_pos_from_wfx) && i < fmt->nChannels; ++j) { + if (mask & (1 << j)) + This->map.map[i++] = pulse_pos_from_wfx[j]; @@ -1630,83 +1617,147 @@ diff -uhNr wine-1.5.17/dlls/winepulse.drv/mmdevdrv.c wine-1.5.17-mm/dlls/winepul + ACImpl *This = impl_from_IAudioClient(iface); + HRESULT hr = S_OK; + WAVEFORMATEX *closest = NULL; ++ BOOL exclusive; + + TRACE("(%p)->(%x, %p, %p)\n", This, mode, fmt, out); + -+ if (!fmt || (mode == AUDCLNT_SHAREMODE_SHARED && !out)) ++ if (!fmt) + return E_POINTER; + + if (out) + *out = NULL; -+ if (mode != AUDCLNT_SHAREMODE_SHARED && mode != AUDCLNT_SHAREMODE_EXCLUSIVE) ++ ++ if (mode == AUDCLNT_SHAREMODE_EXCLUSIVE) { ++ exclusive = 1; ++ out = NULL; ++ } else if (mode == AUDCLNT_SHAREMODE_SHARED) { ++ exclusive = 0; ++ if (!out) ++ return E_POINTER; ++ } else + return E_INVALIDARG; -+ if (mode == AUDCLNT_SHAREMODE_EXCLUSIVE) -+ return This->dataflow == eCapture ? AUDCLNT_E_UNSUPPORTED_FORMAT : AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED; -+ switch (fmt->wFormatTag) { -+ case WAVE_FORMAT_EXTENSIBLE: -+ if (fmt->cbSize < sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX)) -+ return E_INVALIDARG; -+ dump_fmt(fmt); -+ break; -+ case WAVE_FORMAT_ALAW: -+ case WAVE_FORMAT_MULAW: -+ case WAVE_FORMAT_IEEE_FLOAT: -+ case WAVE_FORMAT_PCM: -+ dump_fmt(fmt); -+ break; -+ default: -+ dump_fmt(fmt); -+ return AUDCLNT_E_UNSUPPORTED_FORMAT; -+ } ++ + if (fmt->nChannels == 0) + return AUDCLNT_E_UNSUPPORTED_FORMAT; ++ + closest = clone_format(fmt); -+ if (!closest) { -+ if (out) -+ *out = NULL; ++ if (!closest) + return E_OUTOFMEMORY; -+ } + -+ if (fmt->wFormatTag == WAVE_FORMAT_EXTENSIBLE) { -+ UINT32 mask = 0, i, channels = 0; ++ dump_fmt(fmt); ++ ++ switch (fmt->wFormatTag) { ++ case WAVE_FORMAT_EXTENSIBLE: { + WAVEFORMATEXTENSIBLE *ext = (WAVEFORMATEXTENSIBLE*)closest; + -+ if ((fmt->nChannels > 1 && ext->dwChannelMask == SPEAKER_ALL) || -+ (fmt->nChannels == 1 && ext->dwChannelMask == ~0U)) { -+ mask = ext->dwChannelMask; -+ channels = fmt->nChannels; -+ } else if (ext->dwChannelMask) { -+ for (i = 1; !(i & SPEAKER_RESERVED); i <<= 1) { -+ if (i & ext->dwChannelMask) { -+ mask |= i; -+ channels++; ++ if ((fmt->cbSize != sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX) && ++ fmt->cbSize != sizeof(WAVEFORMATEXTENSIBLE)) || ++ fmt->nBlockAlign != fmt->wBitsPerSample / 8 * fmt->nChannels || ++ ext->Samples.wValidBitsPerSample > fmt->wBitsPerSample || ++ fmt->nAvgBytesPerSec != fmt->nBlockAlign * fmt->nSamplesPerSec) { ++ hr = E_INVALIDARG; ++ break; ++ } ++ ++ if (exclusive) { ++ UINT32 mask = 0, i, channels = 0; ++ ++ if (!(ext->dwChannelMask & (SPEAKER_ALL | SPEAKER_RESERVED))) { ++ for (i = 1; !(i & SPEAKER_RESERVED); i <<= 1) { ++ if (i & ext->dwChannelMask) { ++ mask |= i; ++ channels++; ++ } ++ } ++ ++ if (channels != fmt->nChannels || (ext->dwChannelMask & ~mask)) { ++ hr = AUDCLNT_E_UNSUPPORTED_FORMAT; ++ break; + } ++ } else { ++ hr = AUDCLNT_E_UNSUPPORTED_FORMAT; ++ break; + } -+ if (channels < fmt->nChannels) -+ mask = get_channel_mask(fmt->nChannels); -+ } else -+ mask = ext->dwChannelMask; -+ if (ext->dwChannelMask != mask) { -+ ext->dwChannelMask = mask; -+ hr = S_FALSE; + } ++ ++ if (IsEqualGUID(&ext->SubFormat, &KSDATAFORMAT_SUBTYPE_IEEE_FLOAT)) { ++ if (fmt->wBitsPerSample != 32) { ++ hr = E_INVALIDARG; ++ break; ++ } ++ ++ if (ext->Samples.wValidBitsPerSample != fmt->wBitsPerSample) { ++ hr = S_FALSE; ++ ext->Samples.wValidBitsPerSample = fmt->wBitsPerSample; ++ } ++ } else if (IsEqualGUID(&ext->SubFormat, &KSDATAFORMAT_SUBTYPE_PCM)) { ++ if (!fmt->wBitsPerSample || fmt->wBitsPerSample > 32 || fmt->wBitsPerSample % 8) { ++ hr = E_INVALIDARG; ++ break; ++ } ++ ++ if (ext->Samples.wValidBitsPerSample != fmt->wBitsPerSample && ++ !(fmt->wBitsPerSample == 32 && ++ ext->Samples.wValidBitsPerSample == 24)) { ++ hr = S_FALSE; ++ ext->Samples.wValidBitsPerSample = fmt->wBitsPerSample; ++ break; ++ } ++ } else { ++ hr = AUDCLNT_E_UNSUPPORTED_FORMAT; ++ break; ++ } ++ ++ break; + } + -+ if (fmt->nBlockAlign != fmt->nChannels * fmt->wBitsPerSample / 8 || -+ fmt->nAvgBytesPerSec != fmt->nBlockAlign * fmt->nSamplesPerSec) -+ hr = S_FALSE; ++ case WAVE_FORMAT_ALAW: ++ case WAVE_FORMAT_MULAW: ++ if (fmt->wBitsPerSample != 8) { ++ hr = E_INVALIDARG; ++ break; ++ } ++ /* Fall-through */ ++ case WAVE_FORMAT_IEEE_FLOAT: ++ if (fmt->wFormatTag == WAVE_FORMAT_IEEE_FLOAT && fmt->wBitsPerSample != 32) { ++ hr = E_INVALIDARG; ++ break; ++ } ++ /* Fall-through */ ++ case WAVE_FORMAT_PCM: ++ if (fmt->wFormatTag == WAVE_FORMAT_PCM && ++ (!fmt->wBitsPerSample || fmt->wBitsPerSample > 32 || fmt->wBitsPerSample % 8)) { ++ hr = E_INVALIDARG; ++ break; ++ } ++ ++ if (fmt->nChannels > 2) { ++ hr = AUDCLNT_E_UNSUPPORTED_FORMAT; ++ break; ++ } ++ /* ++ * fmt->cbSize, fmt->nBlockAlign and fmt->nAvgBytesPerSec seem to be ++ * ignored, invalid values are happily accepted. ++ */ ++ break; ++ default: ++ hr = AUDCLNT_E_UNSUPPORTED_FORMAT; ++ break; ++ } + -+ if (hr == S_OK || !out) { ++ if (exclusive && hr != S_OK) { ++ hr = AUDCLNT_E_UNSUPPORTED_FORMAT; ++ CoTaskMemFree(closest); ++ } else if (hr != S_FALSE) + CoTaskMemFree(closest); -+ if (out) -+ *out = NULL; -+ } else if (closest) { -+ closest->nBlockAlign = -+ closest->nChannels * closest->wBitsPerSample / 8; -+ closest->nAvgBytesPerSec = -+ closest->nBlockAlign * closest->nSamplesPerSec; ++ else + *out = closest; -+ } ++ ++ /* Winepulse does not currently support exclusive mode, if you know of an ++ * application that uses it, I will correct this.. ++ */ ++ if (hr == S_OK && exclusive) ++ return This->dataflow == eCapture ? AUDCLNT_E_UNSUPPORTED_FORMAT : AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED; + + TRACE("returning: %08x %p\n", hr, out ? *out : NULL); + return hr; @@ -2070,6 +2121,10 @@ diff -uhNr wine-1.5.17/dlls/winepulse.drv/mmdevdrv.c wine-1.5.17-mm/dlls/winepul + return hr; +} + ++static void pulse_free_noop(void *buf) ++{ ++} ++ +static HRESULT WINAPI AudioRenderClient_ReleaseBuffer( + IAudioRenderClient *iface, UINT32 written_frames, DWORD flags) +{ @@ -2105,7 +2160,7 @@ diff -uhNr wine-1.5.17/dlls/winepulse.drv/mmdevdrv.c wine-1.5.17-mm/dlls/winepul + if (This->locked_ptr) + pa_stream_write(This->stream, This->locked_ptr, written_bytes, NULL, 0, PA_SEEK_RELATIVE); + else -+ pa_stream_write(This->stream, This->tmp_buffer, written_bytes, NULL, 0, PA_SEEK_RELATIVE); ++ pa_stream_write(This->stream, This->tmp_buffer, written_bytes, pulse_free_noop, 0, PA_SEEK_RELATIVE); + This->pad += written_bytes; + This->locked_ptr = NULL; + TRACE("Released %u, pad %zu\n", written_frames, This->pad / pa_frame_size(&This->ss)); @@ -3349,9 +3404,9 @@ diff -uhNr wine-1.5.17/dlls/winepulse.drv/mmdevdrv.c wine-1.5.17-mm/dlls/winepul + *out = &This->IAudioSessionManager2_iface; + return S_OK; +} -diff -uhNr wine-1.5.17/dlls/winepulse.drv/winepulse.drv.spec wine-1.5.17-mm/dlls/winepulse.drv/winepulse.drv.spec ---- wine-1.5.17/dlls/winepulse.drv/winepulse.drv.spec 1970-01-01 01:00:00.000000000 +0100 -+++ wine-1.5.17-mm/dlls/winepulse.drv/winepulse.drv.spec 2012-11-12 19:24:06.933539037 +0100 +diff -uhNr wine-1.5.20/dlls/winepulse.drv/winepulse.drv.spec wine-1.5.20-winepulse/dlls/winepulse.drv/winepulse.drv.spec +--- wine-1.5.20/dlls/winepulse.drv/winepulse.drv.spec 1970-01-01 01:00:00.000000000 +0100 ++++ wine-1.5.20-winepulse/dlls/winepulse.drv/winepulse.drv.spec 2012-12-29 08:53:11.107438210 +0100 @@ -0,0 +1,5 @@ +# MMDevAPI driver functions +@ stdcall -private GetPriority() AUDDRV_GetPriority diff --git a/wine-pulse-winmm-Load-winealsa-if-winepulse-is-found.patch b/wine-pulse-winmm-Load-winealsa-if-winepulse-is-found.patch index aba3925..f99c72b 100644 --- a/wine-pulse-winmm-Load-winealsa-if-winepulse-is-found.patch +++ b/wine-pulse-winmm-Load-winealsa-if-winepulse-is-found.patch @@ -1,12 +1,12 @@ -From 8045bdbc879ec70776427f744f30476cc2b469a4 Mon Sep 17 00:00:00 2001 +From 8f39a12639ee1d39c8caaf5f2ab72540d281814e Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 26 Oct 2012 19:04:00 +0200 +Date: Sat, 29 Dec 2012 01:02:30 +0100 Subject: [PATCH] winmm: Load winealsa if winepulse is found Fixes midi on winepulse --- - dlls/winmm/lolvldrv.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) + dlls/winmm/lolvldrv.c | 5 ++++- + 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/dlls/winmm/lolvldrv.c b/dlls/winmm/lolvldrv.c index f387323..3b1be27 100644 @@ -25,5 +25,5 @@ index f387323..3b1be27 100644 HeapFree(GetProcessHeap(), 0, drvA); PropVariantClear(&pv); -- -1.7.11.7 +1.6.5.GIT diff --git a/wine.spec b/wine.spec index 58dd3e2..97afb19 100644 --- a/wine.spec +++ b/wine.spec @@ -3,7 +3,7 @@ %global winemono 0.0.8 Name: wine -Version: 1.5.18 +Version: 1.5.20 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -56,9 +56,10 @@ Patch511: wine-cjk.patch ## winepulse backend # http://repo.or.cz/w/wine/multimedia.git -# last change Mon, 12 Nov 2012 16:25:41 +0000 -Patch1001: wine-pulse-1.5.17.patch +# Sat, 29 Dec 2012 00:02:38 +0000 +Patch1001: wine-pulse-1.5.20.patch # use winealsa for midi in the pa backend +# http://repo.or.cz/w/wine/multimedia.git/commit/8f39a12639ee1d39c8caaf5f2ab72540d281814e Patch1002: wine-pulse-winmm-Load-winealsa-if-winepulse-is-found.patch Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -893,6 +894,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %dir %{_libdir}/wine %dir %{_libdir}/wine/fakedlls %{_libdir}/wine/fakedlls/* + %{_libdir}/wine/attrib.exe.so %{_libdir}/wine/aspnet_regiis.exe.so %{_libdir}/wine/cacls.exe.so @@ -932,7 +934,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/winedevice.exe.so %{_libdir}/wine/wscript.exe.so %{_libdir}/wine/uninstaller.exe.so + %{_libdir}/libwine.so.1* + %{_libdir}/wine/acledit.dll.so %{_libdir}/wine/aclui.dll.so %{_libdir}/wine/activeds.dll.so @@ -940,6 +944,17 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/advapi32.dll.so %{_libdir}/wine/advpack.dll.so %{_libdir}/wine/amstream.dll.so +%{_libdir}/wine/api-ms-win-core-winrt-error-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-winrt-string-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-downlevel-advapi32-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-downlevel-advapi32-l2-1-0.dll.so +%{_libdir}/wine/api-ms-win-downlevel-normaliz-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-downlevel-ole32-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-downlevel-shell32-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-downlevel-shlwapi-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-downlevel-shlwapi-l2-1-0.dll.so +%{_libdir}/wine/api-ms-win-downlevel-user32-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-downlevel-version-l1-1-0.dll.so %{_libdir}/wine/apphelp.dll.so %{_libdir}/wine/appwiz.cpl.so %{_libdir}/wine/atl.dll.so @@ -971,6 +986,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/ctl3d32.dll.so %{_libdir}/wine/d3d10.dll.so %{_libdir}/wine/d3d10core.dll.so +%{_libdir}/wine/d3d11.dll.so %{_libdir}/wine/d3dcompiler_*.dll.so %{_libdir}/wine/d3dim.dll.so %{_libdir}/wine/d3drm.dll.so @@ -1527,6 +1543,16 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Fri Dec 28 2012 Andreas Bierfert +- 1.5.20-1 +- version upgrade +- upgraded winepulse + +* Sun Dec 09 2012 Andreas Bierfert +- 1.5.19-1 +- version upgrade +- upgraded winepulse + * Fri Nov 23 2012 Andreas Bierfert - 1.5.18-1 - version upgrade From bded672b700c42812167f76710d72875dc86c4dc Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 7 Jan 2013 22:33:35 +0100 Subject: [PATCH 257/715] 1.5.21-1 - version upgrade --- .gitignore | 4 ++-- sources | 4 ++-- wine.spec | 9 ++++++++- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 33492d5..0f3ce09 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ /wine-1.4.tar.bz2 /wine-1.4.tar.bz2.sign -/wine-1.5.20.tar.bz2 -/wine-1.5.20.tar.bz2.sign +/wine-1.5.21.tar.bz2 +/wine-1.5.21.tar.bz2.sign diff --git a/sources b/sources index 041b93b..27426e9 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -ea1c3ec9935d1da1b0f50552d540c242 wine-1.5.20.tar.bz2 -d182d4d463c02325e430a600588478dc wine-1.5.20.tar.bz2.sign +0ebfc492bf22f22bff27af04c92fd9d2 wine-1.5.21.tar.bz2 +6643b7a97b2723bdb675a6541f182274 wine-1.5.21.tar.bz2.sign diff --git a/wine.spec b/wine.spec index 97afb19..ffe10cd 100644 --- a/wine.spec +++ b/wine.spec @@ -3,7 +3,7 @@ %global winemono 0.0.8 Name: wine -Version: 1.5.20 +Version: 1.5.21 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -898,6 +898,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/attrib.exe.so %{_libdir}/wine/aspnet_regiis.exe.so %{_libdir}/wine/cacls.exe.so +%{_libdir}/wine/conhost.exe.so %{_libdir}/wine/cscript.exe.so %{_libdir}/wine/expand.exe.so %{_libdir}/wine/extrac32.exe.so @@ -908,6 +909,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/mshta.exe.so %{_libdir}/wine/msiexec.exe.so %{_libdir}/wine/net.exe.so +%{_libdir}/wine/netstat.exe.so %{_libdir}/wine/ngen.exe.so %{_libdir}/wine/ntoskrnl.exe.so %{_libdir}/wine/oleview.exe.so @@ -955,6 +957,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/api-ms-win-downlevel-shlwapi-l2-1-0.dll.so %{_libdir}/wine/api-ms-win-downlevel-user32-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-downlevel-version-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-security-base-l1-1-0.dll.so %{_libdir}/wine/apphelp.dll.so %{_libdir}/wine/appwiz.cpl.so %{_libdir}/wine/atl.dll.so @@ -1543,6 +1546,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sun Jan 06 2013 Andreas Bierfert +- 1.5.21-1 +- version upgrade + * Fri Dec 28 2012 Andreas Bierfert - 1.5.20-1 - version upgrade From b74f569585b670ac6dfff14fc282261dc360cfe3 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 19 Jan 2013 20:21:22 +0100 Subject: [PATCH 258/715] 1.5.22-1 - version upgrade - upgraded winepulse - wine gecko 1.9 --- .gitignore | 4 +- sources | 4 +- ...se-1.5.20.patch => wine-pulse-1.5.22.patch | 465 +++++++++--------- wine.spec | 19 +- 4 files changed, 257 insertions(+), 235 deletions(-) rename wine-pulse-1.5.20.patch => wine-pulse-1.5.22.patch (98%) diff --git a/.gitignore b/.gitignore index 0f3ce09..bec1b73 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ /wine-1.4.tar.bz2 /wine-1.4.tar.bz2.sign -/wine-1.5.21.tar.bz2 -/wine-1.5.21.tar.bz2.sign +/wine-1.5.22.tar.bz2 +/wine-1.5.22.tar.bz2.sign diff --git a/sources b/sources index 27426e9..2bbafff 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -0ebfc492bf22f22bff27af04c92fd9d2 wine-1.5.21.tar.bz2 -6643b7a97b2723bdb675a6541f182274 wine-1.5.21.tar.bz2.sign +8b37350b58da09eb3ce63422070c27c4 wine-1.5.22.tar.bz2 +8d8148811ee6c990513de2121c47f2e3 wine-1.5.22.tar.bz2.sign diff --git a/wine-pulse-1.5.20.patch b/wine-pulse-1.5.22.patch similarity index 98% rename from wine-pulse-1.5.20.patch rename to wine-pulse-1.5.22.patch index 7734be7..ecfb5a4 100644 --- a/wine-pulse-1.5.20.patch +++ b/wine-pulse-1.5.22.patch @@ -1,224 +1,6 @@ ---- wine-1.5.20/configure 2012-12-21 20:14:41.000000000 +0100 -+++ wine-1.5.20-winepulse/configure 2012-12-29 08:53:10.399489081 +0100 -@@ -649,6 +649,8 @@ - ALSALIBS - GSTREAMER_INCL - GSTREAMER_LIBS -+PULSEINCL -+PULSELIBS - LIBGETTEXTPO - ZLIB - FREETYPEINCL -@@ -826,6 +828,7 @@ - with_oss - with_png - with_pthread -+with_pulse - with_sane - with_tiff - with_v4l -@@ -1516,6 +1519,7 @@ - --without-oss do not use the OSS sound support - --without-png do not use PNG - --without-pthread do not use the pthread library -+ --without-pulse do not use PulseAudio sound support - --without-sane do not use SANE (scanner support) - --without-tiff do not use TIFF - --without-v4l do not use v4l1 (v4l support) -@@ -2707,6 +2711,12 @@ - fi - - -+# Check whether --with-pulse was given. -+if test "${with_pulse+set}" = set; then : -+ withval=$with_pulse; -+fi -+ -+ - # Check whether --with-sane was given. - if test "${with_sane+set}" = set; then : - withval=$with_sane; -@@ -10746,6 +10756,87 @@ - fi - fi - -+PULSELIBS="" -+ -+PULSEINCL="" -+ -+if test "x$with_pulse" != "xno"; -+then -+ ac_save_CPPFLAGS="$CPPFLAGS" -+ if test "$PKG_CONFIG" != "false"; -+ then -+ ac_pulse_libs="`$PKG_CONFIG --libs libpulse 2>/dev/null`" -+ ac_pulse_cflags="`$PKG_CONFIG --cflags-only-I libpulse 2>/dev/null`" -+ -+ CPPFLAGS="$CPPFLAGS $ac_pulse_cflags" -+ for ac_header in pulse/pulseaudio.h -+do : -+ ac_fn_c_check_header_mongrel "$LINENO" "pulse/pulseaudio.h" "ac_cv_header_pulse_pulseaudio_h" "$ac_includes_default" -+if test "x$ac_cv_header_pulse_pulseaudio_h" = xyes; then : -+ cat >>confdefs.h <<_ACEOF -+#define HAVE_PULSE_PULSEAUDIO_H 1 -+_ACEOF -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pa_stream_is_corked in -lpulse" >&5 -+$as_echo_n "checking for pa_stream_is_corked in -lpulse... " >&6; } -+if ${ac_cv_lib_pulse_pa_stream_is_corked+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ ac_check_lib_save_LIBS=$LIBS -+LIBS="-lpulse $ac_pulse_libs $LIBS" -+cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+ -+/* Override any GCC internal prototype to avoid an error. -+ Use char because int might match the return type of a GCC -+ builtin and then its argument prototype would still apply. */ -+#ifdef __cplusplus -+extern "C" -+#endif -+char pa_stream_is_corked (); -+int -+main () -+{ -+return pa_stream_is_corked (); -+ ; -+ return 0; -+} -+_ACEOF -+if ac_fn_c_try_link "$LINENO"; then : -+ ac_cv_lib_pulse_pa_stream_is_corked=yes -+else -+ ac_cv_lib_pulse_pa_stream_is_corked=no -+fi -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext -+LIBS=$ac_check_lib_save_LIBS -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pulse_pa_stream_is_corked" >&5 -+$as_echo "$ac_cv_lib_pulse_pa_stream_is_corked" >&6; } -+if test "x$ac_cv_lib_pulse_pa_stream_is_corked" = xyes; then : -+ -+$as_echo "#define HAVE_PULSEAUDIO 1" >>confdefs.h -+ -+ PULSELIBS="$ac_pulse_libs" -+ PULSEINCL="$ac_pulse_cflags" -+fi -+ -+ -+fi -+ -+done -+ -+ fi -+ CPPFLAGS="$ac_save_CPPFLAGS" -+fi -+if test "$ac_cv_lib_pulse_pa_stream_is_corked" != "yes"; then : -+ case "x$with_pulse" in -+ x) as_fn_append wine_warnings "|libpulse ${notice_platform}development files not found or too old, Pulse won't be supported." ;; -+ xno) ;; -+ *) as_fn_error $? "libpulse ${notice_platform}development files not found or too old, Pulse won't be supported. -+This is an error since --with-pulse was requested." "$LINENO" 5 ;; -+esac -+fi -+ - if test "x$with_gstreamer" != "xno" - then - ac_save_CPPFLAGS="$CPPFLAGS" -@@ -12005,12 +12096,13 @@ - - test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no} - test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no} -+test -n "$PULSELIBS" || enable_winepulse_drv=${enable_winepulse_drv:-no} - test "x$ac_cv_member_oss_sysinfo_numaudioengines" = xyes || enable_wineoss_drv=${enable_wineoss_drv:-no} - test "$ac_cv_header_linux_joystick_h" = "yes" || enable_winejoystick_drv=${enable_winejoystick_drv:-no} - --if test "x$ALSALIBS$COREAUDIO" = "x" -a \ -+if test "x$ALSALIBS$COREAUDIO$PULSELIBS" = "x" -a \ - "x$ac_cv_member_oss_sysinfo_numaudioengines" != xyes -a \ -- "x$with_alsa$with_coreaudio$with_oss" != xnonono -+ "x$with_alsa$with_coreaudio$with_oss$with_pulse" != xnononono - then - as_fn_append wine_warnings "|No sound system was found. Windows applications will be silent." - fi -@@ -15896,6 +15988,7 @@ - wine_fn_config_dll wineoss.drv enable_wineoss_drv - wine_fn_config_dll wineps.drv enable_wineps_drv install-lib,po - wine_fn_config_dll wineps16.drv16 enable_win16 -+wine_fn_config_dll winepulse.drv enable_winepulse_drv - wine_fn_config_dll wineqtdecoder enable_wineqtdecoder - wine_fn_config_dll winex11.drv enable_winex11_drv - wine_fn_config_dll wing.dll16 enable_win16 ---- wine-1.5.20/configure.ac 2012-12-21 20:14:41.000000000 +0100 -+++ wine-1.5.20-winepulse/configure.ac 2012-12-29 08:53:10.399489081 +0100 -@@ -74,6 +74,7 @@ - [if test "x$withval" = "xno"; then ac_cv_header_png_h=no; fi]) - AC_ARG_WITH(pthread, AS_HELP_STRING([--without-pthread],[do not use the pthread library]), - [if test "x$withval" = "xno"; then ac_cv_header_pthread_h=no; fi]) -+AC_ARG_WITH(pulse, AC_HELP_STRING([--without-pulse],[do not use PulseAudio sound support])) - AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)])) - AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF]), - [if test "x$withval" = "xno"; then ac_cv_header_tiffio_h=no; fi]) -@@ -1490,6 +1491,30 @@ - [GetText ${notice_platform}development files not found (or too old), po files can't be rebuilt.]) - fi - -+dnl **** Check for PulseAudio **** -+AC_SUBST(PULSELIBS,"") -+AC_SUBST(PULSEINCL,"") -+if test "x$with_pulse" != "xno"; -+then -+ ac_save_CPPFLAGS="$CPPFLAGS" -+ if test "$PKG_CONFIG" != "false"; -+ then -+ ac_pulse_libs="`$PKG_CONFIG --libs libpulse 2>/dev/null`" -+ ac_pulse_cflags="`$PKG_CONFIG --cflags-only-I libpulse 2>/dev/null`" -+ -+ CPPFLAGS="$CPPFLAGS $ac_pulse_cflags" -+ AC_CHECK_HEADERS(pulse/pulseaudio.h, -+ [AC_CHECK_LIB(pulse, pa_stream_is_corked, -+ [AC_DEFINE(HAVE_PULSEAUDIO, 1, [Define if you have pulseaudio]) -+ PULSELIBS="$ac_pulse_libs" -+ PULSEINCL="$ac_pulse_cflags"],,$ac_pulse_libs) -+ ]) -+ fi -+ CPPFLAGS="$ac_save_CPPFLAGS" -+fi -+WINE_WARNING_WITH(pulse, [test "$ac_cv_lib_pulse_pa_stream_is_corked" != "yes"], -+ [libpulse ${notice_platform}development files not found or too old, Pulse won't be supported.]) -+ - dnl **** Check for gstreamer **** - if test "x$with_gstreamer" != "xno" - then -@@ -1696,13 +1721,14 @@ - dnl **** Disable unsupported winmm drivers **** - test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no} - test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no} -+test -n "$PULSELIBS" || enable_winepulse_drv=${enable_winepulse_drv:-no} - test "x$ac_cv_member_oss_sysinfo_numaudioengines" = xyes || enable_wineoss_drv=${enable_wineoss_drv:-no} - test "$ac_cv_header_linux_joystick_h" = "yes" || enable_winejoystick_drv=${enable_winejoystick_drv:-no} - - dnl **** Check for any sound system **** --if test "x$ALSALIBS$COREAUDIO" = "x" -a \ -+if test "x$ALSALIBS$COREAUDIO$PULSELIBS" = "x" -a \ - "x$ac_cv_member_oss_sysinfo_numaudioengines" != xyes -a \ -- "x$with_alsa$with_coreaudio$with_oss" != xnonono -+ "x$with_alsa$with_coreaudio$with_oss$with_pulse" != xnononono - then - WINE_WARNING([No sound system was found. Windows applications will be silent.]) - fi -@@ -3071,6 +3097,7 @@ - WINE_CONFIG_DLL(wineoss.drv) - WINE_CONFIG_DLL(wineps.drv,,[install-lib,po]) - WINE_CONFIG_DLL(wineps16.drv16,enable_win16) -+WINE_CONFIG_DLL(winepulse.drv) - WINE_CONFIG_DLL(wineqtdecoder) - WINE_CONFIG_DLL(winex11.drv) - WINE_CONFIG_DLL(wing.dll16,enable_win16) -diff -uhNr wine-1.5.20/dlls/winepulse.drv/Makefile.in wine-1.5.20-winepulse/dlls/winepulse.drv/Makefile.in ---- wine-1.5.20/dlls/winepulse.drv/Makefile.in 1970-01-01 01:00:00.000000000 +0100 -+++ wine-1.5.20-winepulse/dlls/winepulse.drv/Makefile.in 2012-12-29 08:53:11.106438282 +0100 +diff -uhNr wine-1.5.22/dlls/winepulse.drv/Makefile.in wine-1.5.22-multimedia/dlls/winepulse.drv/Makefile.in +--- wine-1.5.22/dlls/winepulse.drv/Makefile.in 1970-01-01 01:00:00.000000000 +0100 ++++ wine-1.5.22-multimedia/dlls/winepulse.drv/Makefile.in 2013-01-19 19:44:17.113421704 +0100 @@ -0,0 +1,9 @@ +MODULE = winepulse.drv +IMPORTS = dxguid uuid winmm user32 advapi32 ole32 @@ -229,9 +11,9 @@ diff -uhNr wine-1.5.20/dlls/winepulse.drv/Makefile.in wine-1.5.20-winepulse/dlls + mmdevdrv.c + +@MAKE_DLL_RULES@ -diff -uhNr wine-1.5.20/dlls/winepulse.drv/mmdevdrv.c wine-1.5.20-winepulse/dlls/winepulse.drv/mmdevdrv.c ---- wine-1.5.20/dlls/winepulse.drv/mmdevdrv.c 1970-01-01 01:00:00.000000000 +0100 -+++ wine-1.5.20-winepulse/dlls/winepulse.drv/mmdevdrv.c 2012-12-29 08:53:11.107438210 +0100 +diff -uhNr wine-1.5.22/dlls/winepulse.drv/mmdevdrv.c wine-1.5.22-multimedia/dlls/winepulse.drv/mmdevdrv.c +--- wine-1.5.22/dlls/winepulse.drv/mmdevdrv.c 1970-01-01 01:00:00.000000000 +0100 ++++ wine-1.5.22-multimedia/dlls/winepulse.drv/mmdevdrv.c 2013-01-19 19:44:17.113421704 +0100 @@ -0,0 +1,3171 @@ +/* + * Copyright 2011-2012 Maarten Lankhorst @@ -3404,12 +3186,241 @@ diff -uhNr wine-1.5.20/dlls/winepulse.drv/mmdevdrv.c wine-1.5.20-winepulse/dlls/ + *out = &This->IAudioSessionManager2_iface; + return S_OK; +} -diff -uhNr wine-1.5.20/dlls/winepulse.drv/winepulse.drv.spec wine-1.5.20-winepulse/dlls/winepulse.drv/winepulse.drv.spec ---- wine-1.5.20/dlls/winepulse.drv/winepulse.drv.spec 1970-01-01 01:00:00.000000000 +0100 -+++ wine-1.5.20-winepulse/dlls/winepulse.drv/winepulse.drv.spec 2012-12-29 08:53:11.107438210 +0100 +diff -uhNr wine-1.5.22/dlls/winepulse.drv/winepulse.drv.spec wine-1.5.22-multimedia/dlls/winepulse.drv/winepulse.drv.spec +--- wine-1.5.22/dlls/winepulse.drv/winepulse.drv.spec 1970-01-01 01:00:00.000000000 +0100 ++++ wine-1.5.22-multimedia/dlls/winepulse.drv/winepulse.drv.spec 2013-01-19 19:44:17.113421704 +0100 @@ -0,0 +1,5 @@ +# MMDevAPI driver functions +@ stdcall -private GetPriority() AUDDRV_GetPriority +@ stdcall -private GetEndpointIDs(long ptr ptr ptr ptr) AUDDRV_GetEndpointIDs +@ stdcall -private GetAudioEndpoint(ptr ptr ptr) AUDDRV_GetAudioEndpoint +@ stdcall -private GetAudioSessionManager(ptr ptr) AUDDRV_GetAudioSessionManager +--- wine-1.5.22/configure 2013-01-18 21:44:53.000000000 +0100 ++++ wine-1.5.22-multimedia/configure 2013-01-19 19:44:16.998422193 +0100 +@@ -649,6 +649,8 @@ + ALSALIBS + GSTREAMER_INCL + GSTREAMER_LIBS ++PULSEINCL ++PULSELIBS + LIBGETTEXTPO + ZLIB + FREETYPEINCL +@@ -828,6 +830,7 @@ + with_oss + with_png + with_pthread ++with_pulse + with_sane + with_tiff + with_v4l +@@ -1518,6 +1521,7 @@ + --without-oss do not use the OSS sound support + --without-png do not use PNG + --without-pthread do not use the pthread library ++ --without-pulse do not use PulseAudio sound support + --without-sane do not use SANE (scanner support) + --without-tiff do not use TIFF + --without-v4l do not use v4l1 (v4l support) +@@ -2709,6 +2713,12 @@ + fi + + ++# Check whether --with-pulse was given. ++if test "${with_pulse+set}" = set; then : ++ withval=$with_pulse; ++fi ++ ++ + # Check whether --with-sane was given. + if test "${with_sane+set}" = set; then : + withval=$with_sane; +@@ -10917,6 +10927,87 @@ + fi + fi + ++PULSELIBS="" ++ ++PULSEINCL="" ++ ++if test "x$with_pulse" != "xno"; ++then ++ ac_save_CPPFLAGS="$CPPFLAGS" ++ if test "$PKG_CONFIG" != "false"; ++ then ++ ac_pulse_libs="`$PKG_CONFIG --libs libpulse 2>/dev/null`" ++ ac_pulse_cflags="`$PKG_CONFIG --cflags-only-I libpulse 2>/dev/null`" ++ ++ CPPFLAGS="$CPPFLAGS $ac_pulse_cflags" ++ for ac_header in pulse/pulseaudio.h ++do : ++ ac_fn_c_check_header_mongrel "$LINENO" "pulse/pulseaudio.h" "ac_cv_header_pulse_pulseaudio_h" "$ac_includes_default" ++if test "x$ac_cv_header_pulse_pulseaudio_h" = xyes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_PULSE_PULSEAUDIO_H 1 ++_ACEOF ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pa_stream_is_corked in -lpulse" >&5 ++$as_echo_n "checking for pa_stream_is_corked in -lpulse... " >&6; } ++if ${ac_cv_lib_pulse_pa_stream_is_corked+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lpulse $ac_pulse_libs $LIBS" ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++/* Override any GCC internal prototype to avoid an error. ++ Use char because int might match the return type of a GCC ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char pa_stream_is_corked (); ++int ++main () ++{ ++return pa_stream_is_corked (); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_lib_pulse_pa_stream_is_corked=yes ++else ++ ac_cv_lib_pulse_pa_stream_is_corked=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pulse_pa_stream_is_corked" >&5 ++$as_echo "$ac_cv_lib_pulse_pa_stream_is_corked" >&6; } ++if test "x$ac_cv_lib_pulse_pa_stream_is_corked" = xyes; then : ++ ++$as_echo "#define HAVE_PULSEAUDIO 1" >>confdefs.h ++ ++ PULSELIBS="$ac_pulse_libs" ++ PULSEINCL="$ac_pulse_cflags" ++fi ++ ++ ++fi ++ ++done ++ ++ fi ++ CPPFLAGS="$ac_save_CPPFLAGS" ++fi ++if test "$ac_cv_lib_pulse_pa_stream_is_corked" != "yes"; then : ++ case "x$with_pulse" in ++ x) as_fn_append wine_warnings "|libpulse ${notice_platform}development files not found or too old, Pulse won't be supported." ;; ++ xno) ;; ++ *) as_fn_error $? "libpulse ${notice_platform}development files not found or too old, Pulse won't be supported. ++This is an error since --with-pulse was requested." "$LINENO" 5 ;; ++esac ++fi ++ + if test "x$with_gstreamer" != "xno" + then + ac_save_CPPFLAGS="$CPPFLAGS" +@@ -12215,12 +12306,13 @@ + + test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no} + test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no} ++test -n "$PULSELIBS" || enable_winepulse_drv=${enable_winepulse_drv:-no} + test "x$ac_cv_member_oss_sysinfo_numaudioengines" = xyes || enable_wineoss_drv=${enable_wineoss_drv:-no} + test "$ac_cv_header_linux_joystick_h" = "yes" || enable_winejoystick_drv=${enable_winejoystick_drv:-no} + +-if test "x$ALSALIBS$COREAUDIO" = "x" -a \ ++if test "x$ALSALIBS$COREAUDIO$PULSELIBS" = "x" -a \ + "x$ac_cv_member_oss_sysinfo_numaudioengines" != xyes -a \ +- "x$with_alsa$with_coreaudio$with_oss" != xnonono ++ "x$with_alsa$with_coreaudio$with_oss$with_pulse" != xnononono + then + as_fn_append wine_warnings "|No sound system was found. Windows applications will be silent." + fi +@@ -16106,6 +16198,7 @@ + wine_fn_config_dll wineoss.drv enable_wineoss_drv + wine_fn_config_dll wineps.drv enable_wineps_drv install-lib,po + wine_fn_config_dll wineps16.drv16 enable_win16 ++wine_fn_config_dll winepulse.drv enable_winepulse_drv + wine_fn_config_dll wineqtdecoder enable_wineqtdecoder + wine_fn_config_dll winex11.drv enable_winex11_drv + wine_fn_config_dll wing.dll16 enable_win16 +--- wine-1.5.22/configure.ac 2013-01-18 21:44:53.000000000 +0100 ++++ wine-1.5.22-multimedia/configure.ac 2013-01-19 19:44:17.175421440 +0100 +@@ -74,6 +74,7 @@ + [if test "x$withval" = "xno"; then ac_cv_header_png_h=no; fi]) + AC_ARG_WITH(pthread, AS_HELP_STRING([--without-pthread],[do not use the pthread library]), + [if test "x$withval" = "xno"; then ac_cv_header_pthread_h=no; fi]) ++AC_ARG_WITH(pulse, AC_HELP_STRING([--without-pulse],[do not use PulseAudio sound support])) + AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)])) + AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF]), + [if test "x$withval" = "xno"; then ac_cv_header_tiffio_h=no; fi]) +@@ -1491,6 +1492,30 @@ + [GetText ${notice_platform}development files not found (or too old), po files can't be rebuilt.]) + fi + ++dnl **** Check for PulseAudio **** ++AC_SUBST(PULSELIBS,"") ++AC_SUBST(PULSEINCL,"") ++if test "x$with_pulse" != "xno"; ++then ++ ac_save_CPPFLAGS="$CPPFLAGS" ++ if test "$PKG_CONFIG" != "false"; ++ then ++ ac_pulse_libs="`$PKG_CONFIG --libs libpulse 2>/dev/null`" ++ ac_pulse_cflags="`$PKG_CONFIG --cflags-only-I libpulse 2>/dev/null`" ++ ++ CPPFLAGS="$CPPFLAGS $ac_pulse_cflags" ++ AC_CHECK_HEADERS(pulse/pulseaudio.h, ++ [AC_CHECK_LIB(pulse, pa_stream_is_corked, ++ [AC_DEFINE(HAVE_PULSEAUDIO, 1, [Define if you have pulseaudio]) ++ PULSELIBS="$ac_pulse_libs" ++ PULSEINCL="$ac_pulse_cflags"],,$ac_pulse_libs) ++ ]) ++ fi ++ CPPFLAGS="$ac_save_CPPFLAGS" ++fi ++WINE_WARNING_WITH(pulse, [test "$ac_cv_lib_pulse_pa_stream_is_corked" != "yes"], ++ [libpulse ${notice_platform}development files not found or too old, Pulse won't be supported.]) ++ + dnl **** Check for gstreamer **** + if test "x$with_gstreamer" != "xno" + then +@@ -1697,13 +1722,14 @@ + dnl **** Disable unsupported winmm drivers **** + test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no} + test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no} ++test -n "$PULSELIBS" || enable_winepulse_drv=${enable_winepulse_drv:-no} + test "x$ac_cv_member_oss_sysinfo_numaudioengines" = xyes || enable_wineoss_drv=${enable_wineoss_drv:-no} + test "$ac_cv_header_linux_joystick_h" = "yes" || enable_winejoystick_drv=${enable_winejoystick_drv:-no} + + dnl **** Check for any sound system **** +-if test "x$ALSALIBS$COREAUDIO" = "x" -a \ ++if test "x$ALSALIBS$COREAUDIO$PULSELIBS" = "x" -a \ + "x$ac_cv_member_oss_sysinfo_numaudioengines" != xyes -a \ +- "x$with_alsa$with_coreaudio$with_oss" != xnonono ++ "x$with_alsa$with_coreaudio$with_oss$with_pulse" != xnononono + then + WINE_WARNING([No sound system was found. Windows applications will be silent.]) + fi +@@ -3072,6 +3098,7 @@ + WINE_CONFIG_DLL(wineoss.drv) + WINE_CONFIG_DLL(wineps.drv,,[install-lib,po]) + WINE_CONFIG_DLL(wineps16.drv16,enable_win16) ++WINE_CONFIG_DLL(winepulse.drv) + WINE_CONFIG_DLL(wineqtdecoder) + WINE_CONFIG_DLL(winex11.drv) + WINE_CONFIG_DLL(wing.dll16,enable_win16) +--- wine-1.5.22/dlls/mmdevapi/main.c 2013-01-18 21:44:53.000000000 +0100 ++++ wine-1.5.22-multimedia/dlls/mmdevapi/main.c 2013-01-19 19:44:17.071421883 +0100 +@@ -110,7 +110,7 @@ + { + static const WCHAR drv_value[] = {'A','u','d','i','o',0}; + +- static WCHAR default_list[] = {'a','l','s','a',',','o','s','s',',', ++ static WCHAR default_list[] = {'p','u','l','s','e',',','a','l','s','a',',','o','s','s',',', + 'c','o','r','e','a','u','d','i','o',0}; + + DriverFuncs driver; diff --git a/wine.spec b/wine.spec index ffe10cd..a89931a 100644 --- a/wine.spec +++ b/wine.spec @@ -1,9 +1,9 @@ %global no64bit 0 -%global winegecko 1.8 +%global winegecko 1.9 %global winemono 0.0.8 Name: wine -Version: 1.5.21 +Version: 1.5.22 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -56,8 +56,13 @@ Patch511: wine-cjk.patch ## winepulse backend # http://repo.or.cz/w/wine/multimedia.git -# Sat, 29 Dec 2012 00:02:38 +0000 -Patch1001: wine-pulse-1.5.20.patch +# Sat, 19 Jan 2013 00:22:27 +0000 +# configure +# configure.ac +# dlls/mmdevapi/main.c +# dlls/winepulse.drv +# +Patch1001: wine-pulse-1.5.22.patch # use winealsa for midi in the pa backend # http://repo.or.cz/w/wine/multimedia.git/commit/8f39a12639ee1d39c8caaf5f2ab72540d281814e Patch1002: wine-pulse-winmm-Load-winealsa-if-winepulse-is-found.patch @@ -1546,6 +1551,12 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sat Jan 19 2013 Andreas Bierfert +- 1.5.22-1 +- version upgrade +- upgraded winepulse +- wine gecko 1.9 + * Sun Jan 06 2013 Andreas Bierfert - 1.5.21-1 - version upgrade From 590cd9c47873c7357e47c551a25fead69c685e35 Mon Sep 17 00:00:00 2001 From: Parag Nemade Date: Sun, 10 Feb 2013 08:22:59 +0530 Subject: [PATCH 259/715] Remove vendor tag from desktop file as per https://fedorahosted.org/fesco/ticket/1077 - Cleanup spec as per recently changed packaging guidelines --- wine.spec | 52 +++++++--------------------------------------------- 1 file changed, 7 insertions(+), 45 deletions(-) diff --git a/wine.spec b/wine.spec index a89931a..6534d13 100644 --- a/wine.spec +++ b/wine.spec @@ -4,7 +4,7 @@ Name: wine Version: 1.5.22 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -67,8 +67,6 @@ Patch1001: wine-pulse-1.5.22.patch # http://repo.or.cz/w/wine/multimedia.git/commit/8f39a12639ee1d39c8caaf5f2ab72540d281814e Patch1002: wine-pulse-winmm-Load-winealsa-if-winepulse-is-found.patch -Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) - %if !%{?no64bit} ExclusiveArch: %{ix86} x86_64 %{arm} %else @@ -562,7 +560,6 @@ export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno %{__make} TARGETFLAGS="" %{?_smp_mflags} %install -rm -rf %{buildroot} %makeinstall \ includedir=%{buildroot}%{_includedir}/wine \ @@ -649,70 +646,58 @@ sed -i -e '3s/368/64/' %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/word # install desktop files desktop-file-install \ - --vendor=fedora \ --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE100} desktop-file-install \ - --vendor=fedora \ --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE101} desktop-file-install \ - --vendor=fedora \ --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE102} desktop-file-install \ - --vendor=fedora \ --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE103} desktop-file-install \ - --vendor=fedora \ --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE104} desktop-file-install \ - --vendor=fedora \ --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE105} desktop-file-install \ - --vendor=fedora \ --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE106} desktop-file-install \ - --vendor=fedora \ --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE107} desktop-file-install \ - --vendor=fedora \ --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE108} desktop-file-install \ - --vendor=fedora \ --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE109} desktop-file-install \ - --vendor=fedora \ --dir=%{buildroot}%{_datadir}/applications \ --delete-original \ %{buildroot}%{_datadir}/applications/wine.desktop #mime-types desktop-file-install \ - --vendor=fedora \ --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE300} -cp %{SOURCE3} README-FEDORA +cp -p %{SOURCE3} README-FEDORA -cp %{SOURCE502} README-tahoma +cp -p %{SOURCE502} README-tahoma mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d/ @@ -768,8 +753,6 @@ do iconv -f iso8859-1 -t utf-8 README.$lang > \ done; popd -%clean -rm -rf %{buildroot} %if 0%{?fedora} >= 15 %post sysvinit @@ -840,18 +823,15 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %files -%defattr(-,root,root,-) # meta package %files wow -%defattr(-,root,root,-) %ifarch %{ix86} %{arm} %{_bindir}/wine %endif %{_bindir}/wineserver %files core -%defattr(-,root,root,-) %doc ANNOUNCE %doc COPYING.LIB %doc LICENSE @@ -1366,7 +1346,6 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %files filesystem -%defattr(-,root,root,-) %doc COPYING.LIB %dir %{_datadir}/wine %dir %{_datadir}/wine/gecko @@ -1377,7 +1356,6 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_datadir}/wine/l_intl.nls %files common -%defattr(-,root,root,-) %{_bindir}/notepad %{_bindir}/winedbg %{_bindir}/winefile @@ -1409,54 +1387,44 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %lang(pl) %{_mandir}/pl.UTF-8/man1/wine.1* %files fonts -%defattr(-,root,root,-) # meta package %files courier-fonts -%defattr(-,root,root,-) %doc COPYING.LIB %{_datadir}/fonts/wine-courier-fonts %files system-fonts -%defattr(-,root,root,-) %doc COPYING.LIB %{_datadir}/fonts/wine-system-fonts %files small-fonts -%defattr(-,root,root,-) %doc COPYING.LIB %{_datadir}/fonts/wine-small-fonts %files marlett-fonts -%defattr(-,root,root,-) %doc COPYING.LIB %{_datadir}/fonts/wine-marlett-fonts %files ms-sans-serif-fonts -%defattr(-,root,root,-) %doc COPYING.LIB %{_datadir}/fonts/wine-ms-sans-serif-fonts %files tahoma-fonts -%defattr(-,root,root,-) %doc COPYING.LIB %{_datadir}/wine/fonts/tahoma*ttf %files tahoma-fonts-system -%defattr(-,root,root,-) %doc README-tahoma %{_datadir}/fonts/wine-tahoma-fonts %{_fontconfig_confdir}/20-wine-tahoma*conf %{_fontconfig_templatedir}/20-wine-tahoma*conf %files symbol-fonts -%defattr(-,root,root,-) %doc COPYING.LIB %{_datadir}/fonts/wine-symbol-fonts %files desktop -%defattr(-,root,root,-) %{_datadir}/applications/fedora-wine-notepad.desktop %{_datadir}/applications/fedora-wine-winefile.desktop %{_datadir}/applications/fedora-wine-winemine.desktop @@ -1477,37 +1445,30 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %if 0%{?fedora} >= 15 %files systemd -%defattr(0644,root,root) %config %{_sysconfdir}/binfmt.d/wine.conf %files sysvinit -%defattr(0755,root,root) %endif %{_initrddir}/wine # ldap subpackage %files ldap -%defattr(-,root,root,-) %{_libdir}/wine/wldap32.dll.so # cms subpackage %files cms -%defattr(-,root,root,-) %{_libdir}/wine/mscms.dll.so # twain subpackage %files twain -%defattr(-,root,root,-) %{_libdir}/wine/twain_32.dll.so %{_libdir}/wine/sane.ds.so # capi subpackage %files capi -%defattr(-,root,root,-) %{_libdir}/wine/capi2032.dll.so %files devel -%defattr(-,root,root,-) %{_bindir}/function_grep.pl %{_bindir}/widl %{_bindir}/winebuild @@ -1537,20 +1498,21 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/*.def %files pulseaudio -%defattr(-,root,root,-) %{_libdir}/wine/winepulse.drv.so %files alsa -%defattr(-,root,root,-) %{_libdir}/wine/winealsa.drv.so %if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 %files openal -%defattr(-,root,root,-) %{_libdir}/wine/openal32.dll.so %endif %changelog +* Sun Feb 10 2013 Parag Nemade - 1.5.22-2 +- Remove vendor tag from desktop file as per https://fedorahosted.org/fesco/ticket/1077 +- Cleanup spec as per recently changed packaging guidelines + * Sat Jan 19 2013 Andreas Bierfert - 1.5.22-1 - version upgrade From 3ebbc85a07df3ab2bbdbfe4ffec0f7df75a64ca8 Mon Sep 17 00:00:00 2001 From: Parag Nemade Date: Sun, 10 Feb 2013 09:44:36 +0530 Subject: [PATCH 260/715] Fix files list and bogus changelog date --- wine.spec | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/wine.spec b/wine.spec index 6534d13..7155cda 100644 --- a/wine.spec +++ b/wine.spec @@ -1425,18 +1425,18 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_datadir}/fonts/wine-symbol-fonts %files desktop -%{_datadir}/applications/fedora-wine-notepad.desktop -%{_datadir}/applications/fedora-wine-winefile.desktop -%{_datadir}/applications/fedora-wine-winemine.desktop -%{_datadir}/applications/fedora-wine-mime-msi.desktop -%{_datadir}/applications/fedora-wine.desktop -%{_datadir}/applications/fedora-wine-regedit.desktop -%{_datadir}/applications/fedora-wine-uninstaller.desktop -%{_datadir}/applications/fedora-wine-winecfg.desktop -%{_datadir}/applications/fedora-wine-wineboot.desktop -%{_datadir}/applications/fedora-wine-winhelp.desktop -%{_datadir}/applications/fedora-wine-wordpad.desktop -%{_datadir}/applications/fedora-wine-oleview.desktop +%{_datadir}/applications/wine-notepad.desktop +%{_datadir}/applications/wine-winefile.desktop +%{_datadir}/applications/wine-winemine.desktop +%{_datadir}/applications/wine-mime-msi.desktop +%{_datadir}/applications/wine.desktop +%{_datadir}/applications/wine-regedit.desktop +%{_datadir}/applications/wine-uninstaller.desktop +%{_datadir}/applications/wine-winecfg.desktop +%{_datadir}/applications/wine-wineboot.desktop +%{_datadir}/applications/wine-winhelp.desktop +%{_datadir}/applications/wine-wordpad.desktop +%{_datadir}/applications/wine-oleview.desktop %{_datadir}/desktop-directories/Wine.directory %config %{_sysconfdir}/xdg/menus/applications-merged/wine.menu %if 0%{?fedora} >= 10 @@ -1512,6 +1512,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : * Sun Feb 10 2013 Parag Nemade - 1.5.22-2 - Remove vendor tag from desktop file as per https://fedorahosted.org/fesco/ticket/1077 - Cleanup spec as per recently changed packaging guidelines +- fix bogus date changelog * Sat Jan 19 2013 Andreas Bierfert - 1.5.22-1 @@ -2720,13 +2721,13 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : * Sat Dec 13 2003 Vincent Béron 20031212-fc1 - Update to 20031212 -* Wed Nov 18 2003 Vincent Béron 20031118-fc1 +* Tue Nov 18 2003 Vincent Béron 20031118-fc1 - Update to 20031118 * Thu Oct 16 2003 Vincent Béron 20031016-1rh9 - Update to 20031016 -* Tue Sep 11 2003 Vincent Béron 20030911-1rh9 +* Thu Sep 11 2003 Vincent Béron 20030911-1rh9 - Fix of include location - Better separation of run-time and development files - Update to 20030911 @@ -2755,7 +2756,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : * Tue Mar 18 2003 Vincent Béron 20030318-1 - Update to 20030318 -* Thu Mar 11 2003 Vincent Béron 20030219-2 +* Tue Mar 11 2003 Vincent Béron 20030219-2 - Fix the symlinks in wine-c. * Wed Feb 19 2003 Vincent Béron 20030219-1 @@ -2891,7 +2892,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : * Fri Jun 23 2000 Bernhard Rosenkraenzer - Start the initscript on startup -* Mon May 9 2000 Bernhard Rosenkraenzer +* Tue May 9 2000 Bernhard Rosenkraenzer - New version - new feature: You can now launch wine by just running a windows .exe file (./some.exe or just click on it in kfm, gmc and the likes) From 69caf3039be520bfd4c10887798de462de032a61 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 10 Feb 2013 10:14:16 +0100 Subject: [PATCH 261/715] 1.5.23-1 - version upgrade --- .gitignore | 2 ++ sources | 4 ++-- wine.spec | 8 ++++++-- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index bec1b73..63b992d 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ /wine-1.4.tar.bz2.sign /wine-1.5.22.tar.bz2 /wine-1.5.22.tar.bz2.sign +/wine-1.5.23.tar.bz2 +/wine-1.5.23.tar.bz2.sign diff --git a/sources b/sources index 2bbafff..98c72e0 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -8b37350b58da09eb3ce63422070c27c4 wine-1.5.22.tar.bz2 -8d8148811ee6c990513de2121c47f2e3 wine-1.5.22.tar.bz2.sign +70228ea29efe9700a66202b495b068bc wine-1.5.23.tar.bz2 +8b8620cf523bb6c7e61d01480c167859 wine-1.5.23.tar.bz2.sign diff --git a/wine.spec b/wine.spec index 7155cda..f21fe3d 100644 --- a/wine.spec +++ b/wine.spec @@ -3,8 +3,8 @@ %global winemono 0.0.8 Name: wine -Version: 1.5.22 -Release: 2%{?dist} +Version: 1.5.23 +Release: 1%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -1509,6 +1509,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sun Feb 10 2013 Andreas Bierfert +- 1.5.23-1 +- version upgrade + * Sun Feb 10 2013 Parag Nemade - 1.5.22-2 - Remove vendor tag from desktop file as per https://fedorahosted.org/fesco/ticket/1077 - Cleanup spec as per recently changed packaging guidelines From 4e545a99fedc5f7756c7623f6e34a581581c749f Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 18 Feb 2013 18:55:51 +0100 Subject: [PATCH 262/715] 1.5.24-1 - version upgrade --- .gitignore | 2 ++ sources | 4 ++-- wine.spec | 7 ++++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 63b992d..9096b73 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,5 @@ /wine-1.5.22.tar.bz2.sign /wine-1.5.23.tar.bz2 /wine-1.5.23.tar.bz2.sign +/wine-1.5.24.tar.bz2 +/wine-1.5.24.tar.bz2.sign diff --git a/sources b/sources index 98c72e0..cd71205 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -70228ea29efe9700a66202b495b068bc wine-1.5.23.tar.bz2 -8b8620cf523bb6c7e61d01480c167859 wine-1.5.23.tar.bz2.sign +d65a64799a815de7864c27660a9307ab wine-1.5.24.tar.bz2 +45b379003c2d075fbb8c3ada4a1b44f8 wine-1.5.24.tar.bz2.sign diff --git a/wine.spec b/wine.spec index f21fe3d..4d4d1ef 100644 --- a/wine.spec +++ b/wine.spec @@ -3,7 +3,7 @@ %global winemono 0.0.8 Name: wine -Version: 1.5.23 +Version: 1.5.24 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1230,6 +1230,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/wevtapi.dll.so %{_libdir}/wine/wiaservc.dll.so %{_libdir}/wine/windowscodecs.dll.so +%{_libdir}/wine/windowscodecsext.dll.so %{_libdir}/wine/winegstreamer.dll.so %{_libdir}/wine/winejoystick.drv.so %{_libdir}/wine/winemapi.dll.so @@ -1509,6 +1510,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Mon Feb 18 2013 Andreas Bierfert +- 1.5.24-1 +- version upgrade + * Sun Feb 10 2013 Andreas Bierfert - 1.5.23-1 - version upgrade From fc7a8cecd66a5c0f94f52045aac10cc2633be573 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Tue, 5 Mar 2013 19:07:27 +0100 Subject: [PATCH 263/715] 1.5.25-1 - version upgrade - now font package for wingdings family --- .gitignore | 8 ++------ sources | 4 ++-- wine.spec | 28 ++++++++++++++++++++++++++-- 3 files changed, 30 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index 9096b73..e19a322 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,4 @@ /wine-1.4.tar.bz2 /wine-1.4.tar.bz2.sign -/wine-1.5.22.tar.bz2 -/wine-1.5.22.tar.bz2.sign -/wine-1.5.23.tar.bz2 -/wine-1.5.23.tar.bz2.sign -/wine-1.5.24.tar.bz2 -/wine-1.5.24.tar.bz2.sign +/wine-1.5.25.tar.bz2 +/wine-1.5.25.tar.bz2.sign diff --git a/sources b/sources index cd71205..180c39a 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -d65a64799a815de7864c27660a9307ab wine-1.5.24.tar.bz2 -45b379003c2d075fbb8c3ada4a1b44f8 wine-1.5.24.tar.bz2.sign +840f6d46c360d8df1a0efb98cf41ce92 wine-1.5.25.tar.bz2 +1a58052df1fa4eedaaf11121e344ed53 wine-1.5.25.tar.bz2.sign diff --git a/wine.spec b/wine.spec index 4d4d1ef..e9654d1 100644 --- a/wine.spec +++ b/wine.spec @@ -3,7 +3,7 @@ %global winemono 0.0.8 Name: wine -Version: 1.5.24 +Version: 1.5.25 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -369,6 +369,7 @@ Requires: wine-marlett-fonts = %{version}-%{release} Requires: wine-ms-sans-serif-fonts = %{version}-%{release} Requires: wine-tahoma-fonts = %{version}-%{release} Requires: wine-symbol-fonts = %{version}-%{release} +Requires: wine-wingdings-fonts = %{version}-%{release} # intermediate fix for #593140 Requires: liberation-sans-fonts liberation-serif-fonts liberation-mono-fonts %if 0%{?fedora} > 12 @@ -457,6 +458,16 @@ Requires: fontpackages-filesystem %description symbol-fonts %{summary} +%package wingdings-fonts +Summary: Wine Wingdings font family +Group: User Interface/X +BuildArch: noarch +Requires: fontpackages-filesystem + +%description wingdings-fonts +%{summary} + + %package ldap Summary: LDAP support for wine Group: System Environment/Libraries @@ -745,6 +756,10 @@ install -p -m 0644 %{SOURCE501} %{buildroot}%{_fontconfig_templatedir}/20-wine-t ln -s %{_fontconfig_templatedir}/20-wine-tahoma-nobitmaps.conf \ %{buildroot}%{_fontconfig_confdir}/20-wine-tahoma-nobitmaps.conf +install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-wingdings-fonts +mv %{buildroot}/%{_datadir}/wine/fonts/wingding.ttf %{buildroot}/%{_datadir}/fonts/wine-wingdings-fonts/ + + # clean readme files pushd documentation for lang in it hu sv es pt pt_br; @@ -1226,6 +1241,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/vdmdbg.dll.so %{_libdir}/wine/version.dll.so %{_libdir}/wine/wbemprox.dll.so +%{_libdir}/wine/webservices.dll.so %{_libdir}/wine/wer.dll.so %{_libdir}/wine/wevtapi.dll.so %{_libdir}/wine/wiaservc.dll.so @@ -1390,7 +1406,6 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %files fonts # meta package - %files courier-fonts %doc COPYING.LIB %{_datadir}/fonts/wine-courier-fonts @@ -1425,6 +1440,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %doc COPYING.LIB %{_datadir}/fonts/wine-symbol-fonts +%files wingdings-fonts +%doc COPYING.LIB +%{_datadir}/fonts/wine-wingdings-fonts + %files desktop %{_datadir}/applications/wine-notepad.desktop %{_datadir}/applications/wine-winefile.desktop @@ -1510,6 +1529,11 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Tue Mar 05 2013 Andreas Bierfert +- 1.5.25-1 +- version upgrade +- now font package for wingdings family + * Mon Feb 18 2013 Andreas Bierfert - 1.5.24-1 - version upgrade From d77e708aaaa85101f24e9008383873bd01a7f093 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 17 Mar 2013 10:28:34 +0100 Subject: [PATCH 264/715] 1.5.26-1 - version upgrade --- .gitignore | 4 ++-- sources | 4 ++-- wine.spec | 7 ++++++- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index e19a322..05e90ba 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ /wine-1.4.tar.bz2 /wine-1.4.tar.bz2.sign -/wine-1.5.25.tar.bz2 -/wine-1.5.25.tar.bz2.sign +/wine-1.5.26.tar.bz2 +/wine-1.5.26.tar.bz2.sign diff --git a/sources b/sources index 180c39a..c9245d8 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -840f6d46c360d8df1a0efb98cf41ce92 wine-1.5.25.tar.bz2 -1a58052df1fa4eedaaf11121e344ed53 wine-1.5.25.tar.bz2.sign +a2672a60ddc3ead0e8341d5173543be4 wine-1.5.26.tar.bz2 +9f26862a9e4d5d874ae0fa60fd0d9685 wine-1.5.26.tar.bz2.sign diff --git a/wine.spec b/wine.spec index e9654d1..83e3309 100644 --- a/wine.spec +++ b/wine.spec @@ -3,7 +3,7 @@ %global winemono 0.0.8 Name: wine -Version: 1.5.25 +Version: 1.5.26 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1132,6 +1132,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/msvcr80.dll.so %{_libdir}/wine/msvcr90.dll.so %{_libdir}/wine/msvcr100.dll.so +%{_libdir}/wine/msvcr110.dll.so %{_libdir}/wine/msvcrt.dll.so %{_libdir}/wine/msvcrt20.dll.so %{_libdir}/wine/msvcrt40.dll.so @@ -1529,6 +1530,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sun Mar 17 2013 Andreas Bierfert +- 1.5.26-1 +- version upgrade + * Tue Mar 05 2013 Andreas Bierfert - 1.5.25-1 - version upgrade From 02de66d867ba692f7e0f27ab08f2fc0787d6a37b Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 30 Mar 2013 17:54:47 +0100 Subject: [PATCH 265/715] 1.5.27-1 - version upgrade --- .gitignore | 2 ++ sources | 4 ++-- wine.spec | 6 +++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 05e90ba..d7a387e 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ /wine-1.4.tar.bz2.sign /wine-1.5.26.tar.bz2 /wine-1.5.26.tar.bz2.sign +/wine-1.5.27.tar.bz2 +/wine-1.5.27.tar.bz2.sign diff --git a/sources b/sources index c9245d8..0a06ab4 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -a2672a60ddc3ead0e8341d5173543be4 wine-1.5.26.tar.bz2 -9f26862a9e4d5d874ae0fa60fd0d9685 wine-1.5.26.tar.bz2.sign +ac24b230e2a18556d21e7243ccb24283 wine-1.5.27.tar.bz2 +f2793f673706504affa6c6a7319843d2 wine-1.5.27.tar.bz2.sign diff --git a/wine.spec b/wine.spec index 83e3309..9cd3207 100644 --- a/wine.spec +++ b/wine.spec @@ -3,7 +3,7 @@ %global winemono 0.0.8 Name: wine -Version: 1.5.26 +Version: 1.5.27 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1530,6 +1530,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sat Mar 30 2013 Andreas Bierfert +- 1.5.27-1 +- version upgrade + * Sun Mar 17 2013 Andreas Bierfert - 1.5.26-1 - version upgrade From 097ac3a864af95474b89b5b598dcbf1a7d8f6603 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Thu, 9 May 2013 11:07:13 +0200 Subject: [PATCH 266/715] 1.5.29-1 - version upgrade --- .gitignore | 6 ++---- sources | 4 ++-- wine.spec | 46 +++++++++++++++++++++++----------------------- 3 files changed, 27 insertions(+), 29 deletions(-) diff --git a/.gitignore b/.gitignore index d7a387e..7a6cdae 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,4 @@ /wine-1.4.tar.bz2 /wine-1.4.tar.bz2.sign -/wine-1.5.26.tar.bz2 -/wine-1.5.26.tar.bz2.sign -/wine-1.5.27.tar.bz2 -/wine-1.5.27.tar.bz2.sign +/wine-1.5.29.tar.bz2 +/wine-1.5.29.tar.bz2.sign diff --git a/sources b/sources index 0a06ab4..b047667 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -ac24b230e2a18556d21e7243ccb24283 wine-1.5.27.tar.bz2 -f2793f673706504affa6c6a7319843d2 wine-1.5.27.tar.bz2.sign +4a7dc9dad3c3c7710c202458374ed21c wine-1.5.29.tar.bz2 +811c84aa828abd82d97754b9e9c48b3c wine-1.5.29.tar.bz2.sign diff --git a/wine.spec b/wine.spec index 9cd3207..245c2ba 100644 --- a/wine.spec +++ b/wine.spec @@ -3,7 +3,7 @@ %global winemono 0.0.8 Name: wine -Version: 1.5.27 +Version: 1.5.29 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -93,7 +93,6 @@ BuildRequires: libxslt-devel BuildRequires: ncurses-devel BuildRequires: openldap-devel BuildRequires: unixODBC-devel -BuildRequires: openssl-devel BuildRequires: sane-backends-devel BuildRequires: zlib-devel BuildRequires: fontforge freetype-devel @@ -217,13 +216,6 @@ Requires: nss-mdns(x86-32) Requires: gnutls(x86-32) Requires: libXrender(x86-32) Requires: libXcursor(x86-32) - -%if 0%{?fedora} >= 18 -Requires: openssl-libs(x86-32) -%else -Requires: openssl(x86-32) -%endif - %endif %ifarch x86_64 @@ -232,13 +224,6 @@ Requires: nss-mdns(x86-64) Requires: gnutls(x86-64) Requires: libXrender(x86-64) Requires: libXcursor(x86-64) - -%if 0%{?fedora} >= 18 -Requires: openssl-libs(x86-64) -%else -Requires: openssl(x86-64) -%endif - %endif %ifarch %{arm} @@ -247,13 +232,6 @@ Requires: nss-mdns Requires: gnutls Requires: libXrender Requires: libXcursor - -%if 0%{?fedora} >= 18 -Requires: openssl-libs -%else -Requires: openssl -%endif - %endif # old removed packages @@ -363,6 +341,7 @@ Summary: Wine font files Group: Applications/Emulators BuildArch: noarch Requires: wine-courier-fonts = %{version}-%{release} +Requires: wine-fixedsys-fonts = %{version}-%{release} Requires: wine-small-fonts = %{version}-%{release} Requires: wine-system-fonts = %{version}-%{release} Requires: wine-marlett-fonts = %{version}-%{release} @@ -388,6 +367,15 @@ Requires: fontpackages-filesystem %description courier-fonts %{summary} +%package fixedsys-fonts +Summary: Wine Fixedsys font family +Group: User Interface/X +BuildArch: noarch +Requires: fontpackages-filesystem + +%description fixedsys-fonts +%{summary} + %package small-fonts Summary: Wine Small font family Group: User Interface/X @@ -725,6 +713,9 @@ install -p -m644 %{SOURCE5} %{buildroot}%{_sysconfdir}/ld.so.conf.d/ install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-courier-fonts mv %{buildroot}/%{_datadir}/wine/fonts/cou* %{buildroot}/%{_datadir}/fonts/wine-courier-fonts/ +install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-fixedsys-fonts +mv %{buildroot}/%{_datadir}/wine/fonts/*vgafix.fon %{buildroot}/%{_datadir}/fonts/wine-fixedsys-fonts/ + install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-system-fonts mv %{buildroot}/%{_datadir}/wine/fonts/*sys.* %{buildroot}/%{_datadir}/fonts/wine-system-fonts/ mv %{buildroot}/%{_datadir}/wine/fonts/vgas*.* %{buildroot}/%{_datadir}/fonts/wine-system-fonts/ @@ -1127,6 +1118,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/msvcp80.dll.so %{_libdir}/wine/msvcp90.dll.so %{_libdir}/wine/msvcp100.dll.so +%{_libdir}/wine/msvcp110.dll.so %{_libdir}/wine/msvcr70.dll.so %{_libdir}/wine/msvcr71.dll.so %{_libdir}/wine/msvcr80.dll.so @@ -1411,6 +1403,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %doc COPYING.LIB %{_datadir}/fonts/wine-courier-fonts +%files fixedsys-fonts +%doc COPYING.LIB +%{_datadir}/fonts/wine-fixedsys-fonts + %files system-fonts %doc COPYING.LIB %{_datadir}/fonts/wine-system-fonts @@ -1530,6 +1526,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Thu May 09 2013 Andreas Bierfert +- 1.5.29-1 +- version upgrade + * Sat Mar 30 2013 Andreas Bierfert - 1.5.27-1 - version upgrade From 1a575fe1915708d28e61e8229836dc7aee47fbbf Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 1 Jun 2013 10:56:05 +0200 Subject: [PATCH 267/715] 1.5.31-1 - version upgrade - upgraded winepulse - wine gecko 2.21 - wine meta: require samba-winbind-clients for ntlm --- .gitignore | 4 +- sources | 4 +- ...se-1.5.22.patch => wine-pulse-1.5.31.patch | 503 +++++++++--------- wine.spec | 22 +- 4 files changed, 283 insertions(+), 250 deletions(-) rename wine-pulse-1.5.22.patch => wine-pulse-1.5.31.patch (98%) diff --git a/.gitignore b/.gitignore index 7a6cdae..25f2258 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ /wine-1.4.tar.bz2 /wine-1.4.tar.bz2.sign -/wine-1.5.29.tar.bz2 -/wine-1.5.29.tar.bz2.sign +/wine-1.5.31.tar.bz2 +/wine-1.5.31.tar.bz2.sign diff --git a/sources b/sources index b047667..9b09dc4 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -4a7dc9dad3c3c7710c202458374ed21c wine-1.5.29.tar.bz2 -811c84aa828abd82d97754b9e9c48b3c wine-1.5.29.tar.bz2.sign +21a8326bbce7f0f051a19a64101e75bf wine-1.5.31.tar.bz2 +a848d711682f270a16675ad32bb4a778 wine-1.5.31.tar.bz2.sign diff --git a/wine-pulse-1.5.22.patch b/wine-pulse-1.5.31.patch similarity index 98% rename from wine-pulse-1.5.22.patch rename to wine-pulse-1.5.31.patch index ecfb5a4..60a873f 100644 --- a/wine-pulse-1.5.22.patch +++ b/wine-pulse-1.5.31.patch @@ -1,6 +1,235 @@ -diff -uhNr wine-1.5.22/dlls/winepulse.drv/Makefile.in wine-1.5.22-multimedia/dlls/winepulse.drv/Makefile.in ---- wine-1.5.22/dlls/winepulse.drv/Makefile.in 1970-01-01 01:00:00.000000000 +0100 -+++ wine-1.5.22-multimedia/dlls/winepulse.drv/Makefile.in 2013-01-19 19:44:17.113421704 +0100 +--- wine-1.5.31/configure 2013-05-24 20:20:05.000000000 +0200 ++++ wine-1.5.31-multimedia/configure 2013-05-30 07:55:57.501493755 +0200 +@@ -649,6 +649,8 @@ + ALSALIBS + GSTREAMER_LIBS + GSTREAMER_CFLAGS ++PULSEINCL ++PULSELIBS + LIBGETTEXTPO + ZLIB + FREETYPE_LIBS +@@ -830,6 +832,7 @@ + with_oss + with_png + with_pthread ++with_pulse + with_sane + with_tiff + with_v4l +@@ -1543,6 +1546,7 @@ + --without-oss do not use the OSS sound support + --without-png do not use PNG + --without-pthread do not use the pthread library ++ --without-pulse do not use PulseAudio sound support + --without-sane do not use SANE (scanner support) + --without-tiff do not use TIFF + --without-v4l do not use v4l1 (v4l support) +@@ -2761,6 +2765,12 @@ + fi + + ++# Check whether --with-pulse was given. ++if test "${with_pulse+set}" = set; then : ++ withval=$with_pulse; ++fi ++ ++ + # Check whether --with-sane was given. + if test "${with_sane+set}" = set; then : + withval=$with_sane; +@@ -11164,6 +11174,87 @@ + fi + fi + ++PULSELIBS="" ++ ++PULSEINCL="" ++ ++if test "x$with_pulse" != "xno"; ++then ++ ac_save_CPPFLAGS="$CPPFLAGS" ++ if test "$PKG_CONFIG" != "false"; ++ then ++ ac_pulse_libs="`$PKG_CONFIG --libs libpulse 2>/dev/null`" ++ ac_pulse_cflags="`$PKG_CONFIG --cflags-only-I libpulse 2>/dev/null`" ++ ++ CPPFLAGS="$CPPFLAGS $ac_pulse_cflags" ++ for ac_header in pulse/pulseaudio.h ++do : ++ ac_fn_c_check_header_mongrel "$LINENO" "pulse/pulseaudio.h" "ac_cv_header_pulse_pulseaudio_h" "$ac_includes_default" ++if test "x$ac_cv_header_pulse_pulseaudio_h" = xyes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_PULSE_PULSEAUDIO_H 1 ++_ACEOF ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pa_stream_is_corked in -lpulse" >&5 ++$as_echo_n "checking for pa_stream_is_corked in -lpulse... " >&6; } ++if ${ac_cv_lib_pulse_pa_stream_is_corked+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lpulse $ac_pulse_libs $LIBS" ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++/* Override any GCC internal prototype to avoid an error. ++ Use char because int might match the return type of a GCC ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char pa_stream_is_corked (); ++int ++main () ++{ ++return pa_stream_is_corked (); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_lib_pulse_pa_stream_is_corked=yes ++else ++ ac_cv_lib_pulse_pa_stream_is_corked=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pulse_pa_stream_is_corked" >&5 ++$as_echo "$ac_cv_lib_pulse_pa_stream_is_corked" >&6; } ++if test "x$ac_cv_lib_pulse_pa_stream_is_corked" = xyes; then : ++ ++$as_echo "#define HAVE_PULSEAUDIO 1" >>confdefs.h ++ ++ PULSELIBS="$ac_pulse_libs" ++ PULSEINCL="$ac_pulse_cflags" ++fi ++ ++ ++fi ++ ++done ++ ++ fi ++ CPPFLAGS="$ac_save_CPPFLAGS" ++fi ++if test "$ac_cv_lib_pulse_pa_stream_is_corked" != "yes"; then : ++ case "x$with_pulse" in ++ x) as_fn_append wine_warnings "|libpulse ${notice_platform}development files not found or too old, Pulse won't be supported." ;; ++ xno) ;; ++ *) as_fn_error $? "libpulse ${notice_platform}development files not found or too old, Pulse won't be supported. ++This is an error since --with-pulse was requested." "$LINENO" 5 ;; ++esac ++fi ++ + if test "x$with_gstreamer" != "xno" + then + ac_save_CPPFLAGS="$CPPFLAGS" +@@ -12244,12 +12335,13 @@ + + test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no} + test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no} ++test -n "$PULSELIBS" || enable_winepulse_drv=${enable_winepulse_drv:-no} + test "x$ac_cv_member_oss_sysinfo_numaudioengines" = xyes || enable_wineoss_drv=${enable_wineoss_drv:-no} + test "$ac_cv_header_linux_joystick_h" = "yes" || enable_winejoystick_drv=${enable_winejoystick_drv:-no} + +-if test "x$ALSALIBS$COREAUDIO" = "x" -a \ ++if test "x$ALSALIBS$COREAUDIO$PULSELIBS" = "x" -a \ + "x$ac_cv_member_oss_sysinfo_numaudioengines" != xyes -a \ +- "x$with_alsa$with_coreaudio$with_oss" != xnonono ++ "x$with_alsa$with_coreaudio$with_oss$with_pulse" != xnononono + then + as_fn_append wine_warnings "|No sound system was found. Windows applications will be silent." + fi +@@ -16292,6 +16384,7 @@ + wine_fn_config_dll wineoss.drv enable_wineoss_drv + wine_fn_config_dll wineps.drv enable_wineps_drv install-lib,po + wine_fn_config_dll wineps16.drv16 enable_win16 ++wine_fn_config_dll winepulse.drv enable_winepulse_drv + wine_fn_config_dll wineqtdecoder enable_wineqtdecoder + wine_fn_config_dll winex11.drv enable_winex11_drv + wine_fn_config_dll wing.dll16 enable_win16 +--- wine-1.5.31/configure.ac 2013-05-24 20:20:05.000000000 +0200 ++++ wine-1.5.31-multimedia/configure.ac 2013-05-30 07:55:57.726498855 +0200 +@@ -70,6 +70,7 @@ + AC_ARG_WITH(png, AS_HELP_STRING([--without-png],[do not use PNG])) + AC_ARG_WITH(pthread, AS_HELP_STRING([--without-pthread],[do not use the pthread library]), + [if test "x$withval" = "xno"; then ac_cv_header_pthread_h=no; fi]) ++AC_ARG_WITH(pulse, AC_HELP_STRING([--without-pulse],[do not use PulseAudio sound support])) + AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)])) + AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF]), + [if test "x$withval" = "xno"; then ac_cv_header_tiffio_h=no; fi]) +@@ -1544,6 +1545,30 @@ + [GetText ${notice_platform}development files not found (or too old), po files can't be rebuilt.]) + fi + ++dnl **** Check for PulseAudio **** ++AC_SUBST(PULSELIBS,"") ++AC_SUBST(PULSEINCL,"") ++if test "x$with_pulse" != "xno"; ++then ++ ac_save_CPPFLAGS="$CPPFLAGS" ++ if test "$PKG_CONFIG" != "false"; ++ then ++ ac_pulse_libs="`$PKG_CONFIG --libs libpulse 2>/dev/null`" ++ ac_pulse_cflags="`$PKG_CONFIG --cflags-only-I libpulse 2>/dev/null`" ++ ++ CPPFLAGS="$CPPFLAGS $ac_pulse_cflags" ++ AC_CHECK_HEADERS(pulse/pulseaudio.h, ++ [AC_CHECK_LIB(pulse, pa_stream_is_corked, ++ [AC_DEFINE(HAVE_PULSEAUDIO, 1, [Define if you have pulseaudio]) ++ PULSELIBS="$ac_pulse_libs" ++ PULSEINCL="$ac_pulse_cflags"],,$ac_pulse_libs) ++ ]) ++ fi ++ CPPFLAGS="$ac_save_CPPFLAGS" ++fi ++WINE_WARNING_WITH(pulse, [test "$ac_cv_lib_pulse_pa_stream_is_corked" != "yes"], ++ [libpulse ${notice_platform}development files not found or too old, Pulse won't be supported.]) ++ + dnl **** Check for gstreamer **** + if test "x$with_gstreamer" != "xno" + then +@@ -1733,13 +1758,14 @@ + dnl **** Disable unsupported winmm drivers **** + test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no} + test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no} ++test -n "$PULSELIBS" || enable_winepulse_drv=${enable_winepulse_drv:-no} + test "x$ac_cv_member_oss_sysinfo_numaudioengines" = xyes || enable_wineoss_drv=${enable_wineoss_drv:-no} + test "$ac_cv_header_linux_joystick_h" = "yes" || enable_winejoystick_drv=${enable_winejoystick_drv:-no} + + dnl **** Check for any sound system **** +-if test "x$ALSALIBS$COREAUDIO" = "x" -a \ ++if test "x$ALSALIBS$COREAUDIO$PULSELIBS" = "x" -a \ + "x$ac_cv_member_oss_sysinfo_numaudioengines" != xyes -a \ +- "x$with_alsa$with_coreaudio$with_oss" != xnonono ++ "x$with_alsa$with_coreaudio$with_oss$with_pulse" != xnononono + then + WINE_WARNING([No sound system was found. Windows applications will be silent.]) + fi +@@ -3116,6 +3142,7 @@ + WINE_CONFIG_DLL(wineoss.drv) + WINE_CONFIG_DLL(wineps.drv,,[install-lib,po]) + WINE_CONFIG_DLL(wineps16.drv16,enable_win16) ++WINE_CONFIG_DLL(winepulse.drv) + WINE_CONFIG_DLL(wineqtdecoder) + WINE_CONFIG_DLL(winex11.drv) + WINE_CONFIG_DLL(wing.dll16,enable_win16) +--- wine-1.5.31/dlls/mmdevapi/main.c 2013-05-24 20:20:05.000000000 +0200 ++++ wine-1.5.31-multimedia/dlls/mmdevapi/main.c 2013-05-30 07:55:57.600495999 +0200 +@@ -110,7 +110,7 @@ + { + static const WCHAR drv_value[] = {'A','u','d','i','o',0}; + +- static WCHAR default_list[] = {'a','l','s','a',',','o','s','s',',', ++ static WCHAR default_list[] = {'p','u','l','s','e',',','a','l','s','a',',','o','s','s',',', + 'c','o','r','e','a','u','d','i','o',0}; + + DriverFuncs driver; +diff -uhNr wine-1.5.31/dlls/winepulse.drv/Makefile.in wine-1.5.31-multimedia/dlls/winepulse.drv/Makefile.in +--- wine-1.5.31/dlls/winepulse.drv/Makefile.in 1970-01-01 01:00:00.000000000 +0100 ++++ wine-1.5.31-multimedia/dlls/winepulse.drv/Makefile.in 2013-05-30 07:55:57.646497041 +0200 @@ -0,0 +1,9 @@ +MODULE = winepulse.drv +IMPORTS = dxguid uuid winmm user32 advapi32 ole32 @@ -11,10 +240,10 @@ diff -uhNr wine-1.5.22/dlls/winepulse.drv/Makefile.in wine-1.5.22-multimedia/dll + mmdevdrv.c + +@MAKE_DLL_RULES@ -diff -uhNr wine-1.5.22/dlls/winepulse.drv/mmdevdrv.c wine-1.5.22-multimedia/dlls/winepulse.drv/mmdevdrv.c ---- wine-1.5.22/dlls/winepulse.drv/mmdevdrv.c 1970-01-01 01:00:00.000000000 +0100 -+++ wine-1.5.22-multimedia/dlls/winepulse.drv/mmdevdrv.c 2013-01-19 19:44:17.113421704 +0100 -@@ -0,0 +1,3171 @@ +diff -uhNr wine-1.5.31/dlls/winepulse.drv/mmdevdrv.c wine-1.5.31-multimedia/dlls/winepulse.drv/mmdevdrv.c +--- wine-1.5.31/dlls/winepulse.drv/mmdevdrv.c 1970-01-01 01:00:00.000000000 +0100 ++++ wine-1.5.31-multimedia/dlls/winepulse.drv/mmdevdrv.c 2013-05-30 07:55:57.646497041 +0200 +@@ -0,0 +1,3190 @@ +/* + * Copyright 2011-2012 Maarten Lankhorst + * Copyright 2010-2011 Maarten Lankhorst for CodeWeavers @@ -39,6 +268,8 @@ diff -uhNr wine-1.5.22/dlls/winepulse.drv/mmdevdrv.c wine-1.5.22-multimedia/dlls + +#define NONAMELESSUNION +#define COBJMACROS ++#define _GNU_SOURCE ++ +#include "config.h" +#include +#include @@ -47,6 +278,7 @@ diff -uhNr wine-1.5.22/dlls/winepulse.drv/mmdevdrv.c wine-1.5.22-multimedia/dlls +#include +#include +#include ++#include + +#include + @@ -85,7 +317,7 @@ diff -uhNr wine-1.5.22/dlls/winepulse.drv/mmdevdrv.c wine-1.5.22-multimedia/dlls +static pa_mainloop *pulse_ml; + +static HANDLE pulse_thread; -+static pthread_mutex_t pulse_lock = PTHREAD_MUTEX_INITIALIZER; ++static pthread_mutex_t pulse_lock; +static pthread_cond_t pulse_cond = PTHREAD_COND_INITIALIZER; +static struct list g_sessions = LIST_INIT(g_sessions); + @@ -110,6 +342,8 @@ diff -uhNr wine-1.5.22/dlls/winepulse.drv/mmdevdrv.c wine-1.5.22-multimedia/dlls +{ + if (reason == DLL_PROCESS_ATTACH) { + HKEY key; ++ pthread_mutexattr_t attr; ++ + if (RegOpenKeyW(HKEY_CURRENT_USER, pulse_keyW, &key) == ERROR_SUCCESS) { + DWORD size = sizeof(pulse_stream_volume); + RegQueryValueExW(key, pulse_streamW, 0, NULL, @@ -117,6 +351,12 @@ diff -uhNr wine-1.5.22/dlls/winepulse.drv/mmdevdrv.c wine-1.5.22-multimedia/dlls + RegCloseKey(key); + } + DisableThreadLibraryCalls(dll); ++ ++ pthread_mutexattr_init(&attr); ++ pthread_mutexattr_setprotocol(&attr, PTHREAD_PRIO_INHERIT); ++ ++ if (pthread_mutex_init(&pulse_lock, &attr) != 0) ++ pthread_mutex_init(&pulse_lock, NULL); + } else if (reason == DLL_PROCESS_DETACH) { + if (pulse_thread) + SetThreadPriority(pulse_thread, 0); @@ -743,6 +983,8 @@ diff -uhNr wine-1.5.22/dlls/winepulse.drv/mmdevdrv.c wine-1.5.22-multimedia/dlls + UINT *num, UINT *def_index) +{ + HRESULT hr = S_OK; ++ WCHAR *id; ++ + TRACE("%d %p %p %p\n", flow, ids, num, def_index); + + pthread_mutex_lock(&pulse_lock); @@ -754,16 +996,22 @@ diff -uhNr wine-1.5.22/dlls/winepulse.drv/mmdevdrv.c wine-1.5.22-multimedia/dlls + *def_index = 0; + + *ids = HeapAlloc(GetProcessHeap(), 0, sizeof(**ids)); ++ *keys = NULL; + if (!*ids) + return E_OUTOFMEMORY; -+ (*ids)[0] = defaultW; + ++ (*ids)[0] = id = HeapAlloc(GetProcessHeap(), 0, sizeof(defaultW)); + *keys = HeapAlloc(GetProcessHeap(), 0, sizeof(**keys)); -+ if (!*keys) { ++ if (!*keys || !id) { ++ HeapFree(GetProcessHeap(), 0, id); ++ HeapFree(GetProcessHeap(), 0, *keys); + HeapFree(GetProcessHeap(), 0, *ids); + *ids = NULL; ++ *keys = NULL; + return E_OUTOFMEMORY; + } ++ memcpy(id, defaultW, sizeof(defaultW)); ++ + if (flow == eRender) + (*keys)[0] = pulse_render_guid; + else @@ -3186,241 +3434,12 @@ diff -uhNr wine-1.5.22/dlls/winepulse.drv/mmdevdrv.c wine-1.5.22-multimedia/dlls + *out = &This->IAudioSessionManager2_iface; + return S_OK; +} -diff -uhNr wine-1.5.22/dlls/winepulse.drv/winepulse.drv.spec wine-1.5.22-multimedia/dlls/winepulse.drv/winepulse.drv.spec ---- wine-1.5.22/dlls/winepulse.drv/winepulse.drv.spec 1970-01-01 01:00:00.000000000 +0100 -+++ wine-1.5.22-multimedia/dlls/winepulse.drv/winepulse.drv.spec 2013-01-19 19:44:17.113421704 +0100 +diff -uhNr wine-1.5.31/dlls/winepulse.drv/winepulse.drv.spec wine-1.5.31-multimedia/dlls/winepulse.drv/winepulse.drv.spec +--- wine-1.5.31/dlls/winepulse.drv/winepulse.drv.spec 1970-01-01 01:00:00.000000000 +0100 ++++ wine-1.5.31-multimedia/dlls/winepulse.drv/winepulse.drv.spec 2013-05-30 07:55:57.646497041 +0200 @@ -0,0 +1,5 @@ +# MMDevAPI driver functions +@ stdcall -private GetPriority() AUDDRV_GetPriority +@ stdcall -private GetEndpointIDs(long ptr ptr ptr ptr) AUDDRV_GetEndpointIDs +@ stdcall -private GetAudioEndpoint(ptr ptr ptr) AUDDRV_GetAudioEndpoint +@ stdcall -private GetAudioSessionManager(ptr ptr) AUDDRV_GetAudioSessionManager ---- wine-1.5.22/configure 2013-01-18 21:44:53.000000000 +0100 -+++ wine-1.5.22-multimedia/configure 2013-01-19 19:44:16.998422193 +0100 -@@ -649,6 +649,8 @@ - ALSALIBS - GSTREAMER_INCL - GSTREAMER_LIBS -+PULSEINCL -+PULSELIBS - LIBGETTEXTPO - ZLIB - FREETYPEINCL -@@ -828,6 +830,7 @@ - with_oss - with_png - with_pthread -+with_pulse - with_sane - with_tiff - with_v4l -@@ -1518,6 +1521,7 @@ - --without-oss do not use the OSS sound support - --without-png do not use PNG - --without-pthread do not use the pthread library -+ --without-pulse do not use PulseAudio sound support - --without-sane do not use SANE (scanner support) - --without-tiff do not use TIFF - --without-v4l do not use v4l1 (v4l support) -@@ -2709,6 +2713,12 @@ - fi - - -+# Check whether --with-pulse was given. -+if test "${with_pulse+set}" = set; then : -+ withval=$with_pulse; -+fi -+ -+ - # Check whether --with-sane was given. - if test "${with_sane+set}" = set; then : - withval=$with_sane; -@@ -10917,6 +10927,87 @@ - fi - fi - -+PULSELIBS="" -+ -+PULSEINCL="" -+ -+if test "x$with_pulse" != "xno"; -+then -+ ac_save_CPPFLAGS="$CPPFLAGS" -+ if test "$PKG_CONFIG" != "false"; -+ then -+ ac_pulse_libs="`$PKG_CONFIG --libs libpulse 2>/dev/null`" -+ ac_pulse_cflags="`$PKG_CONFIG --cflags-only-I libpulse 2>/dev/null`" -+ -+ CPPFLAGS="$CPPFLAGS $ac_pulse_cflags" -+ for ac_header in pulse/pulseaudio.h -+do : -+ ac_fn_c_check_header_mongrel "$LINENO" "pulse/pulseaudio.h" "ac_cv_header_pulse_pulseaudio_h" "$ac_includes_default" -+if test "x$ac_cv_header_pulse_pulseaudio_h" = xyes; then : -+ cat >>confdefs.h <<_ACEOF -+#define HAVE_PULSE_PULSEAUDIO_H 1 -+_ACEOF -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pa_stream_is_corked in -lpulse" >&5 -+$as_echo_n "checking for pa_stream_is_corked in -lpulse... " >&6; } -+if ${ac_cv_lib_pulse_pa_stream_is_corked+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ ac_check_lib_save_LIBS=$LIBS -+LIBS="-lpulse $ac_pulse_libs $LIBS" -+cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+ -+/* Override any GCC internal prototype to avoid an error. -+ Use char because int might match the return type of a GCC -+ builtin and then its argument prototype would still apply. */ -+#ifdef __cplusplus -+extern "C" -+#endif -+char pa_stream_is_corked (); -+int -+main () -+{ -+return pa_stream_is_corked (); -+ ; -+ return 0; -+} -+_ACEOF -+if ac_fn_c_try_link "$LINENO"; then : -+ ac_cv_lib_pulse_pa_stream_is_corked=yes -+else -+ ac_cv_lib_pulse_pa_stream_is_corked=no -+fi -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext -+LIBS=$ac_check_lib_save_LIBS -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pulse_pa_stream_is_corked" >&5 -+$as_echo "$ac_cv_lib_pulse_pa_stream_is_corked" >&6; } -+if test "x$ac_cv_lib_pulse_pa_stream_is_corked" = xyes; then : -+ -+$as_echo "#define HAVE_PULSEAUDIO 1" >>confdefs.h -+ -+ PULSELIBS="$ac_pulse_libs" -+ PULSEINCL="$ac_pulse_cflags" -+fi -+ -+ -+fi -+ -+done -+ -+ fi -+ CPPFLAGS="$ac_save_CPPFLAGS" -+fi -+if test "$ac_cv_lib_pulse_pa_stream_is_corked" != "yes"; then : -+ case "x$with_pulse" in -+ x) as_fn_append wine_warnings "|libpulse ${notice_platform}development files not found or too old, Pulse won't be supported." ;; -+ xno) ;; -+ *) as_fn_error $? "libpulse ${notice_platform}development files not found or too old, Pulse won't be supported. -+This is an error since --with-pulse was requested." "$LINENO" 5 ;; -+esac -+fi -+ - if test "x$with_gstreamer" != "xno" - then - ac_save_CPPFLAGS="$CPPFLAGS" -@@ -12215,12 +12306,13 @@ - - test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no} - test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no} -+test -n "$PULSELIBS" || enable_winepulse_drv=${enable_winepulse_drv:-no} - test "x$ac_cv_member_oss_sysinfo_numaudioengines" = xyes || enable_wineoss_drv=${enable_wineoss_drv:-no} - test "$ac_cv_header_linux_joystick_h" = "yes" || enable_winejoystick_drv=${enable_winejoystick_drv:-no} - --if test "x$ALSALIBS$COREAUDIO" = "x" -a \ -+if test "x$ALSALIBS$COREAUDIO$PULSELIBS" = "x" -a \ - "x$ac_cv_member_oss_sysinfo_numaudioengines" != xyes -a \ -- "x$with_alsa$with_coreaudio$with_oss" != xnonono -+ "x$with_alsa$with_coreaudio$with_oss$with_pulse" != xnononono - then - as_fn_append wine_warnings "|No sound system was found. Windows applications will be silent." - fi -@@ -16106,6 +16198,7 @@ - wine_fn_config_dll wineoss.drv enable_wineoss_drv - wine_fn_config_dll wineps.drv enable_wineps_drv install-lib,po - wine_fn_config_dll wineps16.drv16 enable_win16 -+wine_fn_config_dll winepulse.drv enable_winepulse_drv - wine_fn_config_dll wineqtdecoder enable_wineqtdecoder - wine_fn_config_dll winex11.drv enable_winex11_drv - wine_fn_config_dll wing.dll16 enable_win16 ---- wine-1.5.22/configure.ac 2013-01-18 21:44:53.000000000 +0100 -+++ wine-1.5.22-multimedia/configure.ac 2013-01-19 19:44:17.175421440 +0100 -@@ -74,6 +74,7 @@ - [if test "x$withval" = "xno"; then ac_cv_header_png_h=no; fi]) - AC_ARG_WITH(pthread, AS_HELP_STRING([--without-pthread],[do not use the pthread library]), - [if test "x$withval" = "xno"; then ac_cv_header_pthread_h=no; fi]) -+AC_ARG_WITH(pulse, AC_HELP_STRING([--without-pulse],[do not use PulseAudio sound support])) - AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)])) - AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF]), - [if test "x$withval" = "xno"; then ac_cv_header_tiffio_h=no; fi]) -@@ -1491,6 +1492,30 @@ - [GetText ${notice_platform}development files not found (or too old), po files can't be rebuilt.]) - fi - -+dnl **** Check for PulseAudio **** -+AC_SUBST(PULSELIBS,"") -+AC_SUBST(PULSEINCL,"") -+if test "x$with_pulse" != "xno"; -+then -+ ac_save_CPPFLAGS="$CPPFLAGS" -+ if test "$PKG_CONFIG" != "false"; -+ then -+ ac_pulse_libs="`$PKG_CONFIG --libs libpulse 2>/dev/null`" -+ ac_pulse_cflags="`$PKG_CONFIG --cflags-only-I libpulse 2>/dev/null`" -+ -+ CPPFLAGS="$CPPFLAGS $ac_pulse_cflags" -+ AC_CHECK_HEADERS(pulse/pulseaudio.h, -+ [AC_CHECK_LIB(pulse, pa_stream_is_corked, -+ [AC_DEFINE(HAVE_PULSEAUDIO, 1, [Define if you have pulseaudio]) -+ PULSELIBS="$ac_pulse_libs" -+ PULSEINCL="$ac_pulse_cflags"],,$ac_pulse_libs) -+ ]) -+ fi -+ CPPFLAGS="$ac_save_CPPFLAGS" -+fi -+WINE_WARNING_WITH(pulse, [test "$ac_cv_lib_pulse_pa_stream_is_corked" != "yes"], -+ [libpulse ${notice_platform}development files not found or too old, Pulse won't be supported.]) -+ - dnl **** Check for gstreamer **** - if test "x$with_gstreamer" != "xno" - then -@@ -1697,13 +1722,14 @@ - dnl **** Disable unsupported winmm drivers **** - test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no} - test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no} -+test -n "$PULSELIBS" || enable_winepulse_drv=${enable_winepulse_drv:-no} - test "x$ac_cv_member_oss_sysinfo_numaudioengines" = xyes || enable_wineoss_drv=${enable_wineoss_drv:-no} - test "$ac_cv_header_linux_joystick_h" = "yes" || enable_winejoystick_drv=${enable_winejoystick_drv:-no} - - dnl **** Check for any sound system **** --if test "x$ALSALIBS$COREAUDIO" = "x" -a \ -+if test "x$ALSALIBS$COREAUDIO$PULSELIBS" = "x" -a \ - "x$ac_cv_member_oss_sysinfo_numaudioengines" != xyes -a \ -- "x$with_alsa$with_coreaudio$with_oss" != xnonono -+ "x$with_alsa$with_coreaudio$with_oss$with_pulse" != xnononono - then - WINE_WARNING([No sound system was found. Windows applications will be silent.]) - fi -@@ -3072,6 +3098,7 @@ - WINE_CONFIG_DLL(wineoss.drv) - WINE_CONFIG_DLL(wineps.drv,,[install-lib,po]) - WINE_CONFIG_DLL(wineps16.drv16,enable_win16) -+WINE_CONFIG_DLL(winepulse.drv) - WINE_CONFIG_DLL(wineqtdecoder) - WINE_CONFIG_DLL(winex11.drv) - WINE_CONFIG_DLL(wing.dll16,enable_win16) ---- wine-1.5.22/dlls/mmdevapi/main.c 2013-01-18 21:44:53.000000000 +0100 -+++ wine-1.5.22-multimedia/dlls/mmdevapi/main.c 2013-01-19 19:44:17.071421883 +0100 -@@ -110,7 +110,7 @@ - { - static const WCHAR drv_value[] = {'A','u','d','i','o',0}; - -- static WCHAR default_list[] = {'a','l','s','a',',','o','s','s',',', -+ static WCHAR default_list[] = {'p','u','l','s','e',',','a','l','s','a',',','o','s','s',',', - 'c','o','r','e','a','u','d','i','o',0}; - - DriverFuncs driver; diff --git a/wine.spec b/wine.spec index 245c2ba..6af499d 100644 --- a/wine.spec +++ b/wine.spec @@ -1,9 +1,9 @@ %global no64bit 0 -%global winegecko 1.9 +%global winegecko 2.21 %global winemono 0.0.8 Name: wine -Version: 1.5.29 +Version: 1.5.31 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -56,13 +56,13 @@ Patch511: wine-cjk.patch ## winepulse backend # http://repo.or.cz/w/wine/multimedia.git -# Sat, 19 Jan 2013 00:22:27 +0000 +# Wed, 29 May 2013 08:06:36 +0000 # configure # configure.ac # dlls/mmdevapi/main.c # dlls/winepulse.drv # -Patch1001: wine-pulse-1.5.22.patch +Patch1001: wine-pulse-1.5.31.patch # use winealsa for midi in the pa backend # http://repo.or.cz/w/wine/multimedia.git/commit/8f39a12639ee1d39c8caaf5f2ab72540d281814e Patch1002: wine-pulse-winmm-Load-winealsa-if-winepulse-is-found.patch @@ -152,6 +152,7 @@ Requires: wine-openal(x86-32) = %{version}-%{release} Requires: mingw32-wine-gecko = %winegecko Requires: wine-mono = %winemono %endif +# Requires: samba-winbind-clients(x86-32) wait for rhbz#968860 %endif %ifarch %{ix86} @@ -175,6 +176,7 @@ Requires: wine-openal(x86-64) = %{version}-%{release} Requires: mingw64-wine-gecko = %winegecko Requires: wine-mono = %winemono %endif +# Requires: samba-winbind-clients(x86-64) wait for rhbz#968860 Requires: wine-wow(x86-64) = %{version}-%{release} Conflicts: wine-wow(x86-32) = %{version}-%{release} %endif @@ -994,6 +996,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/ddrawex.dll.so %{_libdir}/wine/devenum.dll.so %{_libdir}/wine/dhcpcsvc.dll.so +%{_libdir}/wine/difxapi.dll.so %{_libdir}/wine/dinput.dll.so %{_libdir}/wine/dinput8.dll.so %{_libdir}/wine/dispex.dll.so @@ -1526,6 +1529,17 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Thu May 30 2013 Andreas Bierfert +- 1.5.31-1 +- version upgrade +- upgraded winepulse +- wine gecko 2.21 +- wine meta: require samba-winbind-clients for ntlm + +* Tue May 14 2013 Andreas Bierfert +- 1.5.30-1 +- version upgrade + * Thu May 09 2013 Andreas Bierfert - 1.5.29-1 - version upgrade From d56b52812332448a3a13db21ee0ec24ed9d65ba0 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 16 Jun 2013 19:15:18 +0200 Subject: [PATCH 268/715] 1.6-0.1.rc2 - 1.6 rc2 --- .gitignore | 2 ++ sources | 4 ++-- wine.spec | 16 +++++++++++----- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 25f2258..9feb064 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ /wine-1.4.tar.bz2.sign /wine-1.5.31.tar.bz2 /wine-1.5.31.tar.bz2.sign +/wine-1.6-rc2.tar.bz2 +/wine-1.6-rc2.tar.bz2.sign diff --git a/sources b/sources index 9b09dc4..6554c83 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -21a8326bbce7f0f051a19a64101e75bf wine-1.5.31.tar.bz2 -a848d711682f270a16675ad32bb4a778 wine-1.5.31.tar.bz2.sign +53e1f38da888c2215ea22ead59f485b0 wine-1.6-rc2.tar.bz2 +b5c6af339ba6ddde3b072cc0c95b3da7 wine-1.6-rc2.tar.bz2.sign diff --git a/wine.spec b/wine.spec index 6af499d..ee7c574 100644 --- a/wine.spec +++ b/wine.spec @@ -3,15 +3,15 @@ %global winemono 0.0.8 Name: wine -Version: 1.5.31 -Release: 1%{?dist} +Version: 1.6 +Release: 0.1.rc2%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -Source0: http://downloads.sourceforge.net/wine/wine-%{version}.tar.bz2 -Source10: http://downloads.sourceforge.net/wine/wine-%{version}.tar.bz2.sign +Source0: http://downloads.sourceforge.net/wine/wine-%{version}-rc2.tar.bz2 +Source10: http://downloads.sourceforge.net/wine/wine-%{version}-rc2.tar.bz2.sign Source1: wine.init Source2: wine.systemd @@ -529,7 +529,7 @@ This package adds an openal driver for wine. %endif %prep -%setup -q +%setup -q -n %{name}-%{version}-rc2 %patch1 -p1 -b.osmesa @@ -939,6 +939,8 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/advapi32.dll.so %{_libdir}/wine/advpack.dll.so %{_libdir}/wine/amstream.dll.so +%{_libdir}/wine/api-ms-win-core-localregistry-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-processthreads-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-winrt-error-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-winrt-string-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-downlevel-advapi32-l1-1-0.dll.so @@ -1529,6 +1531,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sun Jun 16 2013 Andreas Bierfert +- 1.6-0.1.rc2 +- 1.6 rc2 + * Thu May 30 2013 Andreas Bierfert - 1.5.31-1 - version upgrade From ba077e2ae456440c440a795e220a79b41bf5671c Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Thu, 27 Jun 2013 15:31:39 +0200 Subject: [PATCH 269/715] 1.6-0.2.rc3 - 1.6 rc3 --- .gitignore | 6 ++---- sources | 4 ++-- wine.spec | 12 ++++++++---- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index 9feb064..09145a4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,4 @@ /wine-1.4.tar.bz2 /wine-1.4.tar.bz2.sign -/wine-1.5.31.tar.bz2 -/wine-1.5.31.tar.bz2.sign -/wine-1.6-rc2.tar.bz2 -/wine-1.6-rc2.tar.bz2.sign +/wine-1.6-rc3.tar.bz2 +/wine-1.6-rc3.tar.bz2.sign diff --git a/sources b/sources index 6554c83..47f1e01 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -53e1f38da888c2215ea22ead59f485b0 wine-1.6-rc2.tar.bz2 -b5c6af339ba6ddde3b072cc0c95b3da7 wine-1.6-rc2.tar.bz2.sign +0b83833b1aba533e3ff07a57a9d2d3fa wine-1.6-rc3.tar.bz2 +7b51a0c704e8467af84f89700376eaae wine-1.6-rc3.tar.bz2.sign diff --git a/wine.spec b/wine.spec index ee7c574..22ff8d1 100644 --- a/wine.spec +++ b/wine.spec @@ -4,14 +4,14 @@ Name: wine Version: 1.6 -Release: 0.1.rc2%{?dist} +Release: 0.2.rc3%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -Source0: http://downloads.sourceforge.net/wine/wine-%{version}-rc2.tar.bz2 -Source10: http://downloads.sourceforge.net/wine/wine-%{version}-rc2.tar.bz2.sign +Source0: http://downloads.sourceforge.net/wine/wine-%{version}-rc3.tar.bz2 +Source10: http://downloads.sourceforge.net/wine/wine-%{version}-rc3.tar.bz2.sign Source1: wine.init Source2: wine.systemd @@ -529,7 +529,7 @@ This package adds an openal driver for wine. %endif %prep -%setup -q -n %{name}-%{version}-rc2 +%setup -q -n %{name}-%{version}-rc3 %patch1 -p1 -b.osmesa @@ -1531,6 +1531,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Thu Jun 27 2013 Andreas Bierfert +- 1.6-0.2.rc3 +- 1.6 rc3 + * Sun Jun 16 2013 Andreas Bierfert - 1.6-0.1.rc2 - 1.6 rc2 From 7522a05ccf3b1a7b4e6d365ac7feb64bc7c2308f Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Wed, 3 Jul 2013 18:58:06 +0200 Subject: [PATCH 270/715] 1.6-0.3.rc4 - 1.6 rc4 --- .gitignore | 6 ++---- sources | 4 ++-- wine.spec | 12 ++++++++---- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index 09145a4..00cd87a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,2 @@ -/wine-1.4.tar.bz2 -/wine-1.4.tar.bz2.sign -/wine-1.6-rc3.tar.bz2 -/wine-1.6-rc3.tar.bz2.sign +/wine-1.6-rc4.tar.bz2 +/wine-1.6-rc4.tar.bz2.sign diff --git a/sources b/sources index 47f1e01..6378d55 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -0b83833b1aba533e3ff07a57a9d2d3fa wine-1.6-rc3.tar.bz2 -7b51a0c704e8467af84f89700376eaae wine-1.6-rc3.tar.bz2.sign +9a5db73b08292742be108f12b7af54d2 wine-1.6-rc4.tar.bz2 +8950a644e6f3c728cc7e7a8556ccd71a wine-1.6-rc4.tar.bz2.sign diff --git a/wine.spec b/wine.spec index 22ff8d1..e5b2e0c 100644 --- a/wine.spec +++ b/wine.spec @@ -4,14 +4,14 @@ Name: wine Version: 1.6 -Release: 0.2.rc3%{?dist} +Release: 0.3.rc4%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -Source0: http://downloads.sourceforge.net/wine/wine-%{version}-rc3.tar.bz2 -Source10: http://downloads.sourceforge.net/wine/wine-%{version}-rc3.tar.bz2.sign +Source0: http://downloads.sourceforge.net/wine/wine-%{version}-rc4.tar.bz2 +Source10: http://downloads.sourceforge.net/wine/wine-%{version}-rc4.tar.bz2.sign Source1: wine.init Source2: wine.systemd @@ -529,7 +529,7 @@ This package adds an openal driver for wine. %endif %prep -%setup -q -n %{name}-%{version}-rc3 +%setup -q -n %{name}-%{version}-rc4 %patch1 -p1 -b.osmesa @@ -1531,6 +1531,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sat Jun 29 2013 Andreas Bierfert +- 1.6-0.3.rc4 +- 1.6 rc4 + * Thu Jun 27 2013 Andreas Bierfert - 1.6-0.2.rc3 - 1.6 rc3 From dfa3494f124ed8d6595ecb052c5953fabdd8519c Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Fri, 12 Jul 2013 22:36:16 +0200 Subject: [PATCH 271/715] 1.6-0.4.rc5 - 1.6 rc5 --- .gitignore | 4 ++-- sources | 4 ++-- wine.spec | 12 ++++++++---- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index 00cd87a..f9674f1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -/wine-1.6-rc4.tar.bz2 -/wine-1.6-rc4.tar.bz2.sign +/wine-1.6-rc5.tar.bz2 +/wine-1.6-rc5.tar.bz2.sign diff --git a/sources b/sources index 6378d55..817ad07 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -9a5db73b08292742be108f12b7af54d2 wine-1.6-rc4.tar.bz2 -8950a644e6f3c728cc7e7a8556ccd71a wine-1.6-rc4.tar.bz2.sign +43d11b6ea064e3594060dd5a527971c6 wine-1.6-rc5.tar.bz2 +33a2aa9e98613ae995aa7fac9ca5f2da wine-1.6-rc5.tar.bz2.sign diff --git a/wine.spec b/wine.spec index e5b2e0c..027b197 100644 --- a/wine.spec +++ b/wine.spec @@ -4,14 +4,14 @@ Name: wine Version: 1.6 -Release: 0.3.rc4%{?dist} +Release: 0.4.rc5%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -Source0: http://downloads.sourceforge.net/wine/wine-%{version}-rc4.tar.bz2 -Source10: http://downloads.sourceforge.net/wine/wine-%{version}-rc4.tar.bz2.sign +Source0: http://downloads.sourceforge.net/wine/wine-%{version}-rc5.tar.bz2 +Source10: http://downloads.sourceforge.net/wine/wine-%{version}-rc5.tar.bz2.sign Source1: wine.init Source2: wine.systemd @@ -529,7 +529,7 @@ This package adds an openal driver for wine. %endif %prep -%setup -q -n %{name}-%{version}-rc4 +%setup -q -n %{name}-%{version}-rc5 %patch1 -p1 -b.osmesa @@ -1531,6 +1531,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Fri Jul 12 2013 Andreas Bierfert +- 1.6-0.4.rc5 +- 1.6 rc5 + * Sat Jun 29 2013 Andreas Bierfert - 1.6-0.3.rc4 - 1.6 rc4 From 214127e8de16a11b5f2e759be360b2ac28abbcad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= Date: Thu, 18 Jul 2013 03:22:38 +0200 Subject: [PATCH 272/715] Perl 5.18 rebuild --- wine.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 027b197..adfb240 100644 --- a/wine.spec +++ b/wine.spec @@ -4,7 +4,7 @@ Name: wine Version: 1.6 -Release: 0.4.rc5%{?dist} +Release: 0.5.rc5%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -1531,6 +1531,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Thu Jul 18 2013 Petr Pisar - 1.6-0.5.rc5 +- Perl 5.18 rebuild + * Fri Jul 12 2013 Andreas Bierfert - 1.6-0.4.rc5 - 1.6 rc5 From 75e503a9ef5276db8cfa76b247ce6195e71d03e7 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 21 Jul 2013 00:10:59 +0200 Subject: [PATCH 273/715] 1.6-1 - 1.6 release --- .gitignore | 2 ++ sources | 4 ++-- wine.spec | 12 ++++++++---- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index f9674f1..f0f8e2c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ /wine-1.6-rc5.tar.bz2 /wine-1.6-rc5.tar.bz2.sign +/wine-1.6.tar.bz2.sign +/wine-1.6.tar.bz2 diff --git a/sources b/sources index 817ad07..aefe728 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -43d11b6ea064e3594060dd5a527971c6 wine-1.6-rc5.tar.bz2 -33a2aa9e98613ae995aa7fac9ca5f2da wine-1.6-rc5.tar.bz2.sign +1192b3bd38f94b823bef19bb0ebe8084 wine-1.6.tar.bz2.sign +47cf1e121d395e9c8ca1a4ab88f1e658 wine-1.6.tar.bz2 diff --git a/wine.spec b/wine.spec index adfb240..1f7d1ca 100644 --- a/wine.spec +++ b/wine.spec @@ -4,14 +4,14 @@ Name: wine Version: 1.6 -Release: 0.5.rc5%{?dist} +Release: 1%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -Source0: http://downloads.sourceforge.net/wine/wine-%{version}-rc5.tar.bz2 -Source10: http://downloads.sourceforge.net/wine/wine-%{version}-rc5.tar.bz2.sign +Source0: http://downloads.sourceforge.net/wine/wine-%{version}.tar.bz2 +Source10: http://downloads.sourceforge.net/wine/wine-%{version}.tar.bz2.sign Source1: wine.init Source2: wine.systemd @@ -529,7 +529,7 @@ This package adds an openal driver for wine. %endif %prep -%setup -q -n %{name}-%{version}-rc5 +%setup -q %patch1 -p1 -b.osmesa @@ -1531,6 +1531,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sat Jul 20 2013 Andreas Bierfert +- 1.6-1 +- 1.6 release + * Thu Jul 18 2013 Petr Pisar - 1.6-0.5.rc5 - Perl 5.18 rebuild From d8534ac2f91ecfb6e28aa4bf8218ac008724ef2c Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Tue, 23 Jul 2013 03:32:19 -0500 Subject: [PATCH 274/715] wine-desktop has architecture specific Requires so can not be noarch --- wine.spec | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/wine.spec b/wine.spec index 1f7d1ca..56ef931 100644 --- a/wine.spec +++ b/wine.spec @@ -4,7 +4,7 @@ Name: wine Version: 1.6 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -332,7 +332,6 @@ Requires: wine-common = %{version}-%{release} Requires: wine-systemd = %{version}-%{release} %endif Requires: hicolor-icon-theme -BuildArch: noarch %description desktop Desktop integration features for wine, including mime-types and a binary format @@ -1531,6 +1530,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Tue Jul 23 2013 Dennis Gilmore - 1.6-2 +- wine-desktop has architecture specific Requires so can not be noarch + * Sat Jul 20 2013 Andreas Bierfert - 1.6-1 - 1.6 release From d86257a0d7cfe8c24c56e477e6b3dcdd12263268 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Sun, 4 Aug 2013 01:59:14 -0500 Subject: [PATCH 275/715] - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild --- wine.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 56ef931..2c8f2a3 100644 --- a/wine.spec +++ b/wine.spec @@ -4,7 +4,7 @@ Name: wine Version: 1.6 -Release: 2%{?dist} +Release: 3%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -1530,6 +1530,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sun Aug 04 2013 Fedora Release Engineering - 1.6-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + * Tue Jul 23 2013 Dennis Gilmore - 1.6-2 - wine-desktop has architecture specific Requires so can not be noarch From 6c0306ef347df62ab9b53660f3bae33f570ce66e Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 17 Aug 2013 09:26:26 +0200 Subject: [PATCH 276/715] 1.7.0-1 - version upgrade - wine pulse update --- .gitignore | 4 +- sources | 4 +- ...lse-1.5.31.patch => wine-pulse-1.7.0.patch | 91 +++++++++++++------ wine.spec | 13 ++- 4 files changed, 74 insertions(+), 38 deletions(-) rename wine-pulse-1.5.31.patch => wine-pulse-1.7.0.patch (97%) diff --git a/.gitignore b/.gitignore index f0f8e2c..e59cc1e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -/wine-1.6-rc5.tar.bz2 -/wine-1.6-rc5.tar.bz2.sign /wine-1.6.tar.bz2.sign /wine-1.6.tar.bz2 +/wine-1.7.0.tar.bz2 +/wine-1.7.0.tar.bz2.sign diff --git a/sources b/sources index aefe728..5044d79 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -1192b3bd38f94b823bef19bb0ebe8084 wine-1.6.tar.bz2.sign -47cf1e121d395e9c8ca1a4ab88f1e658 wine-1.6.tar.bz2 +24789490809ddb5db5286819b3fdfed5 wine-1.7.0.tar.bz2 +dfe885d104f329308124639ab9fb6396 wine-1.7.0.tar.bz2.sign diff --git a/wine-pulse-1.5.31.patch b/wine-pulse-1.7.0.patch similarity index 97% rename from wine-pulse-1.5.31.patch rename to wine-pulse-1.7.0.patch index 60a873f..27aea6b 100644 --- a/wine-pulse-1.5.31.patch +++ b/wine-pulse-1.7.0.patch @@ -1,6 +1,6 @@ ---- wine-1.5.31/configure 2013-05-24 20:20:05.000000000 +0200 -+++ wine-1.5.31-multimedia/configure 2013-05-30 07:55:57.501493755 +0200 -@@ -649,6 +649,8 @@ +--- wine-1.7.0/configure 2013-08-02 20:09:56.000000000 +0200 ++++ wine-1.7.0-multimedia/configure 2013-08-17 08:36:36.681595552 +0200 +@@ -656,6 +656,8 @@ ALSALIBS GSTREAMER_LIBS GSTREAMER_CFLAGS @@ -9,7 +9,7 @@ LIBGETTEXTPO ZLIB FREETYPE_LIBS -@@ -830,6 +832,7 @@ +@@ -837,6 +839,7 @@ with_oss with_png with_pthread @@ -17,7 +17,7 @@ with_sane with_tiff with_v4l -@@ -1543,6 +1546,7 @@ +@@ -1558,6 +1561,7 @@ --without-oss do not use the OSS sound support --without-png do not use PNG --without-pthread do not use the pthread library @@ -25,7 +25,7 @@ --without-sane do not use SANE (scanner support) --without-tiff do not use TIFF --without-v4l do not use v4l1 (v4l support) -@@ -2761,6 +2765,12 @@ +@@ -2787,6 +2791,12 @@ fi @@ -38,7 +38,7 @@ # Check whether --with-sane was given. if test "${with_sane+set}" = set; then : withval=$with_sane; -@@ -11164,6 +11174,87 @@ +@@ -11193,6 +11203,87 @@ fi fi @@ -125,8 +125,8 @@ + if test "x$with_gstreamer" != "xno" then - ac_save_CPPFLAGS="$CPPFLAGS" -@@ -12244,12 +12335,13 @@ + if test -n "$GSTREAMER_CFLAGS"; then : +@@ -12422,12 +12513,13 @@ test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no} test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no} @@ -142,7 +142,7 @@ then as_fn_append wine_warnings "|No sound system was found. Windows applications will be silent." fi -@@ -16292,6 +16384,7 @@ +@@ -16473,6 +16565,7 @@ wine_fn_config_dll wineoss.drv enable_wineoss_drv wine_fn_config_dll wineps.drv enable_wineps_drv install-lib,po wine_fn_config_dll wineps16.drv16 enable_win16 @@ -150,17 +150,17 @@ wine_fn_config_dll wineqtdecoder enable_wineqtdecoder wine_fn_config_dll winex11.drv enable_winex11_drv wine_fn_config_dll wing.dll16 enable_win16 ---- wine-1.5.31/configure.ac 2013-05-24 20:20:05.000000000 +0200 -+++ wine-1.5.31-multimedia/configure.ac 2013-05-30 07:55:57.726498855 +0200 -@@ -70,6 +70,7 @@ +--- wine-1.7.0/configure.ac 2013-08-02 20:09:56.000000000 +0200 ++++ wine-1.7.0-multimedia/configure.ac 2013-08-17 08:36:36.682595549 +0200 +@@ -67,6 +67,7 @@ AC_ARG_WITH(png, AS_HELP_STRING([--without-png],[do not use PNG])) AC_ARG_WITH(pthread, AS_HELP_STRING([--without-pthread],[do not use the pthread library]), [if test "x$withval" = "xno"; then ac_cv_header_pthread_h=no; fi]) +AC_ARG_WITH(pulse, AC_HELP_STRING([--without-pulse],[do not use PulseAudio sound support])) AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)])) - AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF]), - [if test "x$withval" = "xno"; then ac_cv_header_tiffio_h=no; fi]) -@@ -1544,6 +1545,30 @@ + AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF])) + AC_ARG_WITH(v4l, AS_HELP_STRING([--without-v4l],[do not use v4l1 (v4l support)])) +@@ -1517,6 +1518,30 @@ [GetText ${notice_platform}development files not found (or too old), po files can't be rebuilt.]) fi @@ -191,7 +191,7 @@ dnl **** Check for gstreamer **** if test "x$with_gstreamer" != "xno" then -@@ -1733,13 +1758,14 @@ +@@ -1727,13 +1752,14 @@ dnl **** Disable unsupported winmm drivers **** test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no} test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no} @@ -208,7 +208,7 @@ then WINE_WARNING([No sound system was found. Windows applications will be silent.]) fi -@@ -3116,6 +3142,7 @@ +@@ -3113,6 +3139,7 @@ WINE_CONFIG_DLL(wineoss.drv) WINE_CONFIG_DLL(wineps.drv,,[install-lib,po]) WINE_CONFIG_DLL(wineps16.drv16,enable_win16) @@ -216,8 +216,8 @@ WINE_CONFIG_DLL(wineqtdecoder) WINE_CONFIG_DLL(winex11.drv) WINE_CONFIG_DLL(wing.dll16,enable_win16) ---- wine-1.5.31/dlls/mmdevapi/main.c 2013-05-24 20:20:05.000000000 +0200 -+++ wine-1.5.31-multimedia/dlls/mmdevapi/main.c 2013-05-30 07:55:57.600495999 +0200 +--- wine-1.7.0/dlls/mmdevapi/main.c 2013-08-02 20:09:56.000000000 +0200 ++++ wine-1.7.0-multimedia/dlls/mmdevapi/main.c 2013-08-17 08:36:36.910594852 +0200 @@ -110,7 +110,7 @@ { static const WCHAR drv_value[] = {'A','u','d','i','o',0}; @@ -227,9 +227,9 @@ 'c','o','r','e','a','u','d','i','o',0}; DriverFuncs driver; -diff -uhNr wine-1.5.31/dlls/winepulse.drv/Makefile.in wine-1.5.31-multimedia/dlls/winepulse.drv/Makefile.in ---- wine-1.5.31/dlls/winepulse.drv/Makefile.in 1970-01-01 01:00:00.000000000 +0100 -+++ wine-1.5.31-multimedia/dlls/winepulse.drv/Makefile.in 2013-05-30 07:55:57.646497041 +0200 +diff -uhNr wine-1.7.0/dlls/winepulse.drv/Makefile.in wine-1.7.0-multimedia/dlls/winepulse.drv/Makefile.in +--- wine-1.7.0/dlls/winepulse.drv/Makefile.in 1970-01-01 01:00:00.000000000 +0100 ++++ wine-1.7.0-multimedia/dlls/winepulse.drv/Makefile.in 2013-08-17 08:36:37.219593908 +0200 @@ -0,0 +1,9 @@ +MODULE = winepulse.drv +IMPORTS = dxguid uuid winmm user32 advapi32 ole32 @@ -240,10 +240,10 @@ diff -uhNr wine-1.5.31/dlls/winepulse.drv/Makefile.in wine-1.5.31-multimedia/dll + mmdevdrv.c + +@MAKE_DLL_RULES@ -diff -uhNr wine-1.5.31/dlls/winepulse.drv/mmdevdrv.c wine-1.5.31-multimedia/dlls/winepulse.drv/mmdevdrv.c ---- wine-1.5.31/dlls/winepulse.drv/mmdevdrv.c 1970-01-01 01:00:00.000000000 +0100 -+++ wine-1.5.31-multimedia/dlls/winepulse.drv/mmdevdrv.c 2013-05-30 07:55:57.646497041 +0200 -@@ -0,0 +1,3190 @@ +diff -uhNr wine-1.7.0/dlls/winepulse.drv/mmdevdrv.c wine-1.7.0-multimedia/dlls/winepulse.drv/mmdevdrv.c +--- wine-1.7.0/dlls/winepulse.drv/mmdevdrv.c 1970-01-01 01:00:00.000000000 +0100 ++++ wine-1.7.0-multimedia/dlls/winepulse.drv/mmdevdrv.c 2013-08-17 08:36:37.219593908 +0200 +@@ -0,0 +1,3221 @@ +/* + * Copyright 2011-2012 Maarten Lankhorst + * Copyright 2010-2011 Maarten Lankhorst for CodeWeavers @@ -415,6 +415,7 @@ diff -uhNr wine-1.5.31/dlls/winepulse.drv/mmdevdrv.c wine-1.5.31-multimedia/dlls + IAudioClock IAudioClock_iface; + IAudioClock2 IAudioClock2_iface; + IAudioStreamVolume IAudioStreamVolume_iface; ++ IUnknown *marshal; + IMMDevice *parent; + struct list entry; + float vol[PA_CHANNELS_MAX]; @@ -1080,6 +1081,12 @@ diff -uhNr wine-1.5.31/dlls/winepulse.drv/mmdevdrv.c wine-1.5.31-multimedia/dlls + This->parent = dev; + for (i = 0; i < PA_CHANNELS_MAX; ++i) + This->vol[i] = 1.f; ++ ++ hr = CoCreateFreeThreadedMarshaler((IUnknown*)This, &This->marshal); ++ if (hr) { ++ HeapFree(GetProcessHeap(), 0, This); ++ return hr; ++ } + IMMDevice_AddRef(This->parent); + + *out = &This->IAudioClient_iface; @@ -1091,10 +1098,13 @@ diff -uhNr wine-1.5.31/dlls/winepulse.drv/mmdevdrv.c wine-1.5.31-multimedia/dlls +static HRESULT WINAPI AudioClient_QueryInterface(IAudioClient *iface, + REFIID riid, void **ppv) +{ ++ ACImpl *This = impl_from_IAudioClient(iface); ++ + TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); + + if (!ppv) + return E_POINTER; ++ + *ppv = NULL; + if (IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IAudioClient)) + *ppv = iface; @@ -1102,6 +1112,10 @@ diff -uhNr wine-1.5.31/dlls/winepulse.drv/mmdevdrv.c wine-1.5.31-multimedia/dlls + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; + } ++ ++ if (IsEqualIID(riid, &IID_IMarshal)) ++ return IUnknown_QueryInterface(This->marshal, riid, ppv); ++ + WARN("Unknown interface %s\n", debugstr_guid(riid)); + return E_NOINTERFACE; +} @@ -1134,6 +1148,7 @@ diff -uhNr wine-1.5.31/dlls/winepulse.drv/mmdevdrv.c wine-1.5.31-multimedia/dlls + list_remove(&This->entry); + pthread_mutex_unlock(&pulse_lock); + } ++ IUnknown_Release(This->marshal); + IMMDevice_Release(This->parent); + HeapFree(GetProcessHeap(), 0, This->tmp_buffer); + HeapFree(GetProcessHeap(), 0, This); @@ -2072,6 +2087,7 @@ diff -uhNr wine-1.5.31/dlls/winepulse.drv/mmdevdrv.c wine-1.5.31-multimedia/dlls +static HRESULT WINAPI AudioRenderClient_QueryInterface( + IAudioRenderClient *iface, REFIID riid, void **ppv) +{ ++ ACImpl *This = impl_from_IAudioRenderClient(iface); + TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); + + if (!ppv) @@ -2086,6 +2102,9 @@ diff -uhNr wine-1.5.31/dlls/winepulse.drv/mmdevdrv.c wine-1.5.31-multimedia/dlls + return S_OK; + } + ++ if (IsEqualIID(riid, &IID_IMarshal)) ++ return IUnknown_QueryInterface(This->marshal, riid, ppv); ++ + WARN("Unknown interface %s\n", debugstr_guid(riid)); + return E_NOINTERFACE; +} @@ -2215,6 +2234,7 @@ diff -uhNr wine-1.5.31/dlls/winepulse.drv/mmdevdrv.c wine-1.5.31-multimedia/dlls +static HRESULT WINAPI AudioCaptureClient_QueryInterface( + IAudioCaptureClient *iface, REFIID riid, void **ppv) +{ ++ ACImpl *This = impl_from_IAudioCaptureClient(iface); + TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); + + if (!ppv) @@ -2229,6 +2249,9 @@ diff -uhNr wine-1.5.31/dlls/winepulse.drv/mmdevdrv.c wine-1.5.31-multimedia/dlls + return S_OK; + } + ++ if (IsEqualIID(riid, &IID_IMarshal)) ++ return IUnknown_QueryInterface(This->marshal, riid, ppv); ++ + WARN("Unknown interface %s\n", debugstr_guid(riid)); + return E_NOINTERFACE; +} @@ -2371,6 +2394,9 @@ diff -uhNr wine-1.5.31/dlls/winepulse.drv/mmdevdrv.c wine-1.5.31-multimedia/dlls + return S_OK; + } + ++ if (IsEqualIID(riid, &IID_IMarshal)) ++ return IUnknown_QueryInterface(This->marshal, riid, ppv); ++ + WARN("Unknown interface %s\n", debugstr_guid(riid)); + return E_NOINTERFACE; +} @@ -2506,6 +2532,8 @@ diff -uhNr wine-1.5.31/dlls/winepulse.drv/mmdevdrv.c wine-1.5.31-multimedia/dlls +static HRESULT WINAPI AudioStreamVolume_QueryInterface( + IAudioStreamVolume *iface, REFIID riid, void **ppv) +{ ++ ACImpl *This = impl_from_IAudioStreamVolume(iface); ++ + TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); + + if (!ppv) @@ -2520,6 +2548,9 @@ diff -uhNr wine-1.5.31/dlls/winepulse.drv/mmdevdrv.c wine-1.5.31-multimedia/dlls + return S_OK; + } + ++ if (IsEqualIID(riid, &IID_IMarshal)) ++ return IUnknown_QueryInterface(This->marshal, riid, ppv); ++ + WARN("Unknown interface %s\n", debugstr_guid(riid)); + return E_NOINTERFACE; +} @@ -3434,9 +3465,9 @@ diff -uhNr wine-1.5.31/dlls/winepulse.drv/mmdevdrv.c wine-1.5.31-multimedia/dlls + *out = &This->IAudioSessionManager2_iface; + return S_OK; +} -diff -uhNr wine-1.5.31/dlls/winepulse.drv/winepulse.drv.spec wine-1.5.31-multimedia/dlls/winepulse.drv/winepulse.drv.spec ---- wine-1.5.31/dlls/winepulse.drv/winepulse.drv.spec 1970-01-01 01:00:00.000000000 +0100 -+++ wine-1.5.31-multimedia/dlls/winepulse.drv/winepulse.drv.spec 2013-05-30 07:55:57.646497041 +0200 +diff -uhNr wine-1.7.0/dlls/winepulse.drv/winepulse.drv.spec wine-1.7.0-multimedia/dlls/winepulse.drv/winepulse.drv.spec +--- wine-1.7.0/dlls/winepulse.drv/winepulse.drv.spec 1970-01-01 01:00:00.000000000 +0100 ++++ wine-1.7.0-multimedia/dlls/winepulse.drv/winepulse.drv.spec 2013-08-17 08:36:37.219593908 +0200 @@ -0,0 +1,5 @@ +# MMDevAPI driver functions +@ stdcall -private GetPriority() AUDDRV_GetPriority diff --git a/wine.spec b/wine.spec index 2c8f2a3..0f81d6f 100644 --- a/wine.spec +++ b/wine.spec @@ -3,8 +3,8 @@ %global winemono 0.0.8 Name: wine -Version: 1.6 -Release: 3%{?dist} +Version: 1.7.0 +Release: 1%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -56,13 +56,13 @@ Patch511: wine-cjk.patch ## winepulse backend # http://repo.or.cz/w/wine/multimedia.git -# Wed, 29 May 2013 08:06:36 +0000 +# Fri, 2 Aug 2013 21:19:49 +0000 # configure # configure.ac # dlls/mmdevapi/main.c # dlls/winepulse.drv # -Patch1001: wine-pulse-1.5.31.patch +Patch1001: wine-pulse-1.7.0.patch # use winealsa for midi in the pa backend # http://repo.or.cz/w/wine/multimedia.git/commit/8f39a12639ee1d39c8caaf5f2ab72540d281814e Patch1002: wine-pulse-winmm-Load-winealsa-if-winepulse-is-found.patch @@ -1530,6 +1530,11 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sat Aug 17 2013 Andreas Bierfert +- 1.7.0-1 +- version upgrade +- wine pulse update + * Sun Aug 04 2013 Fedora Release Engineering - 1.6-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild From 27bf3546cd8643a32ef53401bce07f52e2040f0b Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 31 Aug 2013 09:44:56 +0200 Subject: [PATCH 277/715] 1.7.1-1 - version upgrade - build with lcms2 --- .gitignore | 4 ++-- sources | 4 ++-- wine.spec | 12 ++++++++++-- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index e59cc1e..5c22f89 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ /wine-1.6.tar.bz2.sign /wine-1.6.tar.bz2 -/wine-1.7.0.tar.bz2 -/wine-1.7.0.tar.bz2.sign +/wine-1.7.1.tar.bz2 +/wine-1.7.1.tar.bz2.sign diff --git a/sources b/sources index 5044d79..0b979a5 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -24789490809ddb5db5286819b3fdfed5 wine-1.7.0.tar.bz2 -dfe885d104f329308124639ab9fb6396 wine-1.7.0.tar.bz2.sign +3a3fae3e541ccaf1b891d89b5594ecc5 wine-1.7.1.tar.bz2 +6bc7fe035e8968b32fa2a805a1e6320e wine-1.7.1.tar.bz2.sign diff --git a/wine.spec b/wine.spec index 0f81d6f..0f2684b 100644 --- a/wine.spec +++ b/wine.spec @@ -3,7 +3,7 @@ %global winemono 0.0.8 Name: wine -Version: 1.7.0 +Version: 1.7.1 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -80,7 +80,7 @@ BuildRequires: desktop-file-utils BuildRequires: alsa-lib-devel BuildRequires: audiofile-devel BuildRequires: freeglut-devel -BuildRequires: lcms-devel +BuildRequires: lcms2-devel BuildRequires: libieee1284-devel BuildRequires: libjpeg-devel BuildRequires: libpng-devel @@ -918,6 +918,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/servicemodelreg.exe.so %{_libdir}/wine/services.exe.so %{_libdir}/wine/start.exe.so +%{_libdir}/wine/tasklist.exe.so %{_libdir}/wine/termsv.exe.so %{_libdir}/wine/view.exe.so %{_libdir}/wine/wineboot.exe.so @@ -972,6 +973,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/comctl32.dll.so %{_libdir}/wine/comdlg32.dll.so %{_libdir}/wine/compstui.dll.so +%{_libdir}/wine/comsvcs.dll.so %{_libdir}/wine/credui.dll.so %{_libdir}/wine/crtdll.dll.so %{_libdir}/wine/crypt32.dll.so @@ -1237,6 +1239,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/vcomp100.dll.so %{_libdir}/wine/vdmdbg.dll.so %{_libdir}/wine/version.dll.so +%{_libdir}/wine/wbemdisp.dll.so %{_libdir}/wine/wbemprox.dll.so %{_libdir}/wine/webservices.dll.so %{_libdir}/wine/wer.dll.so @@ -1530,6 +1533,11 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sat Aug 31 2013 Andreas Bierfert +- 1.7.1-1 +- version upgrade +- build with lcms2 + * Sat Aug 17 2013 Andreas Bierfert - 1.7.0-1 - version upgrade From 4787aa7f0706b2aaa27d6382f35f6de15601f801 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 1 Sep 2013 15:42:12 +0200 Subject: [PATCH 278/715] 1.7.1-2 - fix icons with patch provided by Frank Dana (rhbz#997543) - pull in mesa-dri-drivers in meta package to make direct rendering work out of the box (rhbz#827776) - restart systemd binfmt handler on post/postun (rhbz#912354) - add arabic translation to fedora desktop files provided by Mosaab Alzoubi (rhbz#979770) --- wine-mime-msi.desktop | 1 + wine-notepad.desktop | 2 ++ wine-oleview.desktop | 2 ++ wine-regedit.desktop | 2 ++ wine-uninstaller.desktop | 2 ++ wine-wineboot.desktop | 2 ++ wine-winecfg.desktop | 2 ++ wine-winefile.desktop | 2 ++ wine-winemine.desktop | 4 +++- wine-winhelp.desktop | 2 ++ wine-wordpad.desktop | 2 ++ wine.spec | 52 +++++++++++++++++++++++++++++++++------- 12 files changed, 65 insertions(+), 10 deletions(-) diff --git a/wine-mime-msi.desktop b/wine-mime-msi.desktop index 5dcaa46..60e7bef 100644 --- a/wine-mime-msi.desktop +++ b/wine-mime-msi.desktop @@ -1,6 +1,7 @@ [Desktop Entry] Type=Application Name=Windows Installer File +Name[ar]=مثبت حزم واين Exec=wine %f MimeType=application/x-ole-storage;text/mspg-legacyinfo; Hidden=true diff --git a/wine-notepad.desktop b/wine-notepad.desktop index cfaf6b4..b8af5b9 100644 --- a/wine-notepad.desktop +++ b/wine-notepad.desktop @@ -1,6 +1,8 @@ [Desktop Entry] Name=Notepad Comment=Text Editor +Name[ar]=مفكرة +Comment[ar]=محرر النّصوص مفكرة واين Exec=notepad Icon=notepad Terminal=false diff --git a/wine-oleview.desktop b/wine-oleview.desktop index 8f94f38..d30f78f 100644 --- a/wine-oleview.desktop +++ b/wine-oleview.desktop @@ -1,6 +1,8 @@ [Desktop Entry] Name=Wine OLE View Comment=Windows OLE View +Name[ar]=عارض العناصر +Comment[ar]=لعرض العناصر البيئية في واين Exec=wine oleview Icon=wine Terminal=false diff --git a/wine-regedit.desktop b/wine-regedit.desktop index 5fddbf4..c39cfa0 100644 --- a/wine-regedit.desktop +++ b/wine-regedit.desktop @@ -1,6 +1,8 @@ [Desktop Entry] Name=Regedit Comment=Wine registry editor +Name[ar]=محرر السّجل +Comment[ar]=محرر لسجلات واين Exec=regedit Icon=regedit Terminal=false diff --git a/wine-uninstaller.desktop b/wine-uninstaller.desktop index 2a9cf52..6087726 100644 --- a/wine-uninstaller.desktop +++ b/wine-uninstaller.desktop @@ -1,6 +1,8 @@ [Desktop Entry] Name=Wine Software Uninstaller Comment=Interface to uninstall software +Name[ar]=مزيل التطبيقات من واين +Comment[ar]=واجهة إزالة التّطبيقات من واين Exec=wine uninstaller Icon=msiexec Terminal=false diff --git a/wine-wineboot.desktop b/wine-wineboot.desktop index 1ecba53..9796c13 100644 --- a/wine-wineboot.desktop +++ b/wine-wineboot.desktop @@ -1,6 +1,8 @@ [Desktop Entry] Name=Wine Boot Comment=Simulate restart +Name[ar]=إقلاع واين +Comment[ar]=محاكاة إعادة التشغيل لواين Exec=wineboot Icon=wine Terminal=false diff --git a/wine-winecfg.desktop b/wine-winecfg.desktop index 44b13c2..6204af2 100644 --- a/wine-winecfg.desktop +++ b/wine-winecfg.desktop @@ -1,6 +1,8 @@ [Desktop Entry] Name=Wine Configuration Comment=Interface to set wine parameters +Name[ar]=إعدادات واين +Comment[ar]=لوحة تحكم بمنظومة واين Exec=winecfg Icon=winecfg Terminal=false diff --git a/wine-winefile.desktop b/wine-winefile.desktop index 855dcbf..d87955b 100644 --- a/wine-winefile.desktop +++ b/wine-winefile.desktop @@ -1,6 +1,8 @@ [Desktop Entry] Name=Wine File Comment=Wine File Browser +Name[ar]=مدير ملفات واين +Comment[ar]=إدارة الملفات بطريقة واين Exec=winefile Icon=winefile Terminal=false diff --git a/wine-winemine.desktop b/wine-winemine.desktop index 34712f9..a7816de 100644 --- a/wine-winemine.desktop +++ b/wine-winemine.desktop @@ -1,6 +1,8 @@ [Desktop Entry] Name=WineMine -Comment=Wine Minesweeper +Comment=Wine Minesweeper +Name[ar]=كانسة ألغام واين +Comment[ar]=لعبة كانسة ألغام واين Exec=winemine Icon=winemine Terminal=false diff --git a/wine-winhelp.desktop b/wine-winhelp.desktop index 2752518..db97819 100644 --- a/wine-winhelp.desktop +++ b/wine-winhelp.desktop @@ -1,6 +1,8 @@ [Desktop Entry] Name=Wine Help Comment=Windows Help Browser +Name[ar]=أداة المساعدة في واين +Comment[ar]=استعراض ملفات المساعدة بتنسيقات وندوز Exec=wine winhlp32 Icon=winhelp Terminal=false diff --git a/wine-wordpad.desktop b/wine-wordpad.desktop index 1fe4ecd..032fdbc 100644 --- a/wine-wordpad.desktop +++ b/wine-wordpad.desktop @@ -1,6 +1,8 @@ [Desktop Entry] Name=Wine Wordpad Comment=Text Editor +Name[ar]=دفتر واين +Comment[ar]=محرر النّصوص دفتر واين Exec=wine wordpad Icon=wordpad Terminal=false diff --git a/wine.spec b/wine.spec index 0f2684b..2620450 100644 --- a/wine.spec +++ b/wine.spec @@ -4,7 +4,7 @@ Name: wine Version: 1.7.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -153,6 +153,7 @@ Requires: mingw32-wine-gecko = %winegecko Requires: wine-mono = %winemono %endif # Requires: samba-winbind-clients(x86-32) wait for rhbz#968860 +Requires: mesa-dri-drivers(x86-32) %endif %ifarch %{ix86} @@ -177,6 +178,7 @@ Requires: mingw64-wine-gecko = %winegecko Requires: wine-mono = %winemono %endif # Requires: samba-winbind-clients(x86-64) wait for rhbz#968860 +Requires: mesa-dri-drivers(x86-64) Requires: wine-wow(x86-64) = %{version}-%{release} Conflicts: wine-wow(x86-32) = %{version}-%{release} %endif @@ -191,6 +193,8 @@ Requires: wine-twain = %{version}-%{release} Requires: wine-pulseaudio = %{version}-%{release} Requires: wine-openal = %{version}-%{release} Requires: wine-wow = %{version}-%{release} +Requires: mesa-dri-drivers +Requires: samba-winbind-clients %endif %description @@ -284,6 +288,8 @@ Summary: Systemd config for the wine binfmt handler Group: Applications/Emulators Requires: systemd >= 23 BuildArch: noarch +Requires(post): systemd +Requires(postun): systemd %description systemd Register the wine binary handler for windows executables via systemd binfmt @@ -606,41 +612,52 @@ mkdir -p %{buildroot}%{_datadir}/wine/mono %if 0%{?fedora} > 10 mkdir -p %{buildroot}%{_datadir}/icons/hicolor/scalable/apps +# This replacement masks a composite program icon .SVG down +# so that only its full-size scalable icon is visible +PROGRAM_ICONFIX='s/height="272"/height="256"/;'\ +'s/width="632"/width="256"\n'\ +' x="368"\n'\ +' y="8"\n'\ +' viewBox="368, 8, 256, 256"/;' + +# This icon file is still in the legacy format install -p -m 644 dlls/user32/resources/oic_winlogo.svg \ %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/wine.svg sed -i -e '3s/368/64/' %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/wine.svg +# The rest come from programs/, and contain larger scalable icons +# with a new layout that requires the PROGRAM_ICONFIX sed adjustment install -p -m 644 programs/notepad/notepad.svg \ %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/notepad.svg -sed -i -e '3s/368/64/' %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/notepad.svg +sed -i -e "$PROGRAM_ICONFIX" %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/notepad.svg install -p -m 644 programs/regedit/regedit.svg \ %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/regedit.svg -sed -i -e '3s/368/64/' %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/regedit.svg +sed -i -e "$PROGRAM_ICONFIX" %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/regedit.svg install -p -m 644 programs/msiexec/msiexec.svg \ %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/msiexec.svg -sed -i -e '3s/368/64/' %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/msiexec.svg +sed -i -e "$PROGRAM_ICONFIX" %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/msiexec.svg install -p -m 644 programs/winecfg/winecfg.svg \ %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/winecfg.svg -sed -i -e '3s/368/64/' %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/winecfg.svg +sed -i -e "$PROGRAM_ICONFIX" %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/winecfg.svg install -p -m 644 programs/winefile/winefile.svg \ %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/winefile.svg -sed -i -e '3s/368/64/' %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/winefile.svg +sed -i -e "$PROGRAM_ICONFIX" %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/winefile.svg install -p -m 644 programs/winemine/winemine.svg \ %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/winemine.svg -sed -i -e '3s/368/64/' %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/winemine.svg +sed -i -e "$PROGRAM_ICONFIX" %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/winemine.svg install -p -m 644 programs/winhlp32/winhelp.svg \ %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/winhelp.svg -sed -i -e '3s/368/64/' %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/winhelp.svg +sed -i -e "$PROGRAM_ICONFIX" %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/winhelp.svg install -p -m 644 programs/wordpad/wordpad.svg \ %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/wordpad.svg -sed -i -e '3s/368/64/' %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/wordpad.svg +sed -i -e "$PROGRAM_ICONFIX" %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/wordpad.svg %endif @@ -775,6 +792,14 @@ if [ $1 -eq 0 ]; then /sbin/chkconfig --del wine fi +%post systemd +/bin/systemctl try-restart systemd-binfmt.service + +%postun systemd +if [$1 -eq 0]; then +/bin/systemctl try-restart systemd-binfmt.service +fi + %post desktop update-desktop-database &>/dev/null || : touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : @@ -1533,6 +1558,15 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sat Aug 31 2013 Andreas Bierfert +- 1.7.1-2 +- fix icons with patch provided by Frank Dana (rhbz#997543) +- pull in mesa-dri-drivers in meta package to make direct rendering work out + of the box (rhbz#827776) +- restart systemd binfmt handler on post/postun (rhbz#912354) +- add arabic translation to fedora desktop files provided by Mosaab Alzoubi + (rhbz#979770) + * Sat Aug 31 2013 Andreas Bierfert - 1.7.1-1 - version upgrade From abc8d376de6a8618e2911aa4f6e04f75270b2404 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Tue, 17 Sep 2013 19:16:48 +0200 Subject: [PATCH 279/715] 1.7.2-1 - version upgrade - workaround for rhbz#968860 - upgraded winepulse --- .gitignore | 4 +- sources | 4 +- wine-1.5.17-osmesa-check.patch | 38 - ...ulse-1.7.0.patch => wine-pulse-1.7.1.patch | 4170 ++++++++++++----- ...-Load-winealsa-if-winepulse-is-found.patch | 29 - wine.spec | 43 +- 6 files changed, 2997 insertions(+), 1291 deletions(-) delete mode 100644 wine-1.5.17-osmesa-check.patch rename wine-pulse-1.7.0.patch => wine-pulse-1.7.1.patch (62%) delete mode 100644 wine-pulse-winmm-Load-winealsa-if-winepulse-is-found.patch diff --git a/.gitignore b/.gitignore index 5c22f89..97e4a39 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ /wine-1.6.tar.bz2.sign /wine-1.6.tar.bz2 -/wine-1.7.1.tar.bz2 -/wine-1.7.1.tar.bz2.sign +/wine-1.7.2.tar.bz2 +/wine-1.7.2.tar.bz2.sign diff --git a/sources b/sources index 0b979a5..49e3f0b 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -3a3fae3e541ccaf1b891d89b5594ecc5 wine-1.7.1.tar.bz2 -6bc7fe035e8968b32fa2a805a1e6320e wine-1.7.1.tar.bz2.sign +17ece5f22c691bd6067c86f0dd68cfd7 wine-1.7.2.tar.bz2 +f88fbe903d2e7356a44eeb89e70d41ba wine-1.7.2.tar.bz2.sign diff --git a/wine-1.5.17-osmesa-check.patch b/wine-1.5.17-osmesa-check.patch deleted file mode 100644 index 8236192..0000000 --- a/wine-1.5.17-osmesa-check.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 1ede664b18bd8a88359a3cebb291ad49833ee033 Mon Sep 17 00:00:00 2001 -From: Alexandre Rostovtsev -Date: Tue, 7 Aug 2012 01:29:01 -0400 -Subject: [PATCH] Do not check for libGL symbols when checking libOSMesa - -If mesa had been built with shared glapi, glAccum is not available in -libOSMesa without explicitly linking to libGL. In addition, in -mesa-8.0.x and earlier, libOSMesa needs to be explicitly linked to -libglapi if mesa was built with shared glapi, see -https://bugs.gentoo.org/show_bug.cgi?id=399813 -And in mesa-8.1.x, libOSMesa in addition needs libdl, libpthread, and -libstdc++, see https://bugs.gentoo.org/show_bug.cgi?id=431832 ---- - configure.ac | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index cc32c24..275b792 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1128,7 +1128,13 @@ This probably prevents linking to OpenGL. Try deleting the file and restarting c - - if test "x$with_osmesa" != "xno" - then -- WINE_CHECK_SONAME(OSMesa,glAccum,,,[$X_LIBS $X_PRE_LIBS $XLIB -lm $X_EXTRA_LIBS]) -+ WINE_CHECK_SONAME(OSMesa,OSMesaCreateContext,,,[$X_LIBS $X_PRE_LIBS $XLIB -lm $X_EXTRA_LIBS]) -+ if test "x$ac_cv_lib_soname_OSMesa" = "x"; then -+ osmesa_save_CC=$CC -+ CC=$CXX -+ WINE_CHECK_SONAME(OSMesa,OSMesaCreateContext,,,[-lglapi -lpthread -ldl $X_LIBS $X_PRE_LIBS $XLIB -lm $X_EXTRA_LIBS]) -+ CC=$osmesa_save_CC -+ fi - WINE_NOTICE_WITH(osmesa,[test "x$ac_cv_lib_soname_OSMesa" = "x"], - [libOSMesa ${notice_platform}development files not found (or too old), OpenGL rendering in bitmaps won't be supported.]) - fi --- -1.8.0 - diff --git a/wine-pulse-1.7.0.patch b/wine-pulse-1.7.1.patch similarity index 62% rename from wine-pulse-1.7.0.patch rename to wine-pulse-1.7.1.patch index 27aea6b..22235c4 100644 --- a/wine-pulse-1.7.0.patch +++ b/wine-pulse-1.7.1.patch @@ -1,6 +1,58 @@ ---- wine-1.7.0/configure 2013-08-02 20:09:56.000000000 +0200 -+++ wine-1.7.0-multimedia/configure 2013-08-17 08:36:36.681595552 +0200 -@@ -656,6 +656,8 @@ +From bea77093864177659aa16aab5d81b213015990b9 Mon Sep 17 00:00:00 2001 +From: Maarten Lankhorst +Date: Sat, 31 Aug 2013 08:36:00 +0200 +Subject: winmm: Load winealsa if winepulse is found + +Fixes midi on winepulse +--- + dlls/winmm/lolvldrv.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/dlls/winmm/lolvldrv.c b/dlls/winmm/lolvldrv.c +index f387323..3b1be27 100644 +--- a/dlls/winmm/lolvldrv.c ++++ b/dlls/winmm/lolvldrv.c +@@ -543,7 +543,10 @@ static void MMDRV_Init(void) + drvA = HeapAlloc(GetProcessHeap(), 0, size); + WideCharToMultiByte(CP_ACP, 0, pv.u.pwszVal, -1, drvA, size, NULL, NULL); + +- MMDRV_Install(drvA, drvA, FALSE); ++ if (!strcasecmp(drvA, "winepulse.drv")) ++ MMDRV_Install("winealsa.drv", "winealsa.drv", 0); ++ else ++ MMDRV_Install(drvA, drvA, FALSE); + + HeapFree(GetProcessHeap(), 0, drvA); + PropVariantClear(&pv); +-- +1.8.3.1 + + +From 713158f967a19d0c257ccdbffd63dc21ab53444f Mon Sep 17 00:00:00 2001 +From: Maarten Lankhorst +Date: Sat, 31 Aug 2013 08:36:00 +0200 +Subject: winepulse: Add initial stub for pulseaudio support + +--- +Just the basic of initialization and pulseaudio mainloop support is +added here. +--- + configure | 97 +++++++++++- + configure.ac | 31 +++- + dlls/mmdevapi/main.c | 2 +- + dlls/winepulse.drv/Makefile.in | 9 ++ + dlls/winepulse.drv/mmdevdrv.c | 290 ++++++++++++++++++++++++++++++++++ + dlls/winepulse.drv/winepulse.drv.spec | 5 + + 6 files changed, 429 insertions(+), 5 deletions(-) + create mode 100644 dlls/winepulse.drv/Makefile.in + create mode 100644 dlls/winepulse.drv/mmdevdrv.c + create mode 100644 dlls/winepulse.drv/winepulse.drv.spec + +diff --git a/configure b/configure +index d0f15d0..e4dba75 100755 +--- a/configure ++++ b/configure +@@ -657,6 +657,8 @@ OSS4INCL ALSALIBS GSTREAMER_LIBS GSTREAMER_CFLAGS @@ -9,7 +61,7 @@ LIBGETTEXTPO ZLIB FREETYPE_LIBS -@@ -837,6 +839,7 @@ +@@ -838,6 +840,7 @@ with_osmesa with_oss with_png with_pthread @@ -17,7 +69,7 @@ with_sane with_tiff with_v4l -@@ -1558,6 +1561,7 @@ +@@ -1559,6 +1562,7 @@ Optional Packages: --without-oss do not use the OSS sound support --without-png do not use PNG --without-pthread do not use the pthread library @@ -25,7 +77,7 @@ --without-sane do not use SANE (scanner support) --without-tiff do not use TIFF --without-v4l do not use v4l1 (v4l support) -@@ -2787,6 +2791,12 @@ +@@ -2788,6 +2792,12 @@ if test "${with_pthread+set}" = set; then : fi @@ -38,7 +90,7 @@ # Check whether --with-sane was given. if test "${with_sane+set}" = set; then : withval=$with_sane; -@@ -11193,6 +11203,87 @@ +@@ -11109,6 +11119,87 @@ esac fi fi @@ -126,7 +178,7 @@ if test "x$with_gstreamer" != "xno" then if test -n "$GSTREAMER_CFLAGS"; then : -@@ -12422,12 +12513,13 @@ +@@ -12386,12 +12477,13 @@ fi test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no} test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no} @@ -142,7 +194,7 @@ then as_fn_append wine_warnings "|No sound system was found. Windows applications will be silent." fi -@@ -16473,6 +16565,7 @@ +@@ -16439,6 +16531,7 @@ wine_fn_config_dll winemp3.acm enable_winemp3_acm wine_fn_config_dll wineoss.drv enable_wineoss_drv wine_fn_config_dll wineps.drv enable_wineps_drv install-lib,po wine_fn_config_dll wineps16.drv16 enable_win16 @@ -150,9 +202,11 @@ wine_fn_config_dll wineqtdecoder enable_wineqtdecoder wine_fn_config_dll winex11.drv enable_winex11_drv wine_fn_config_dll wing.dll16 enable_win16 ---- wine-1.7.0/configure.ac 2013-08-02 20:09:56.000000000 +0200 -+++ wine-1.7.0-multimedia/configure.ac 2013-08-17 08:36:36.682595549 +0200 -@@ -67,6 +67,7 @@ +diff --git a/configure.ac b/configure.ac +index d8033cf..abb40e9 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -67,6 +67,7 @@ AC_ARG_WITH(oss, AS_HELP_STRING([--without-oss],[do not use the OSS sound AC_ARG_WITH(png, AS_HELP_STRING([--without-png],[do not use PNG])) AC_ARG_WITH(pthread, AS_HELP_STRING([--without-pthread],[do not use the pthread library]), [if test "x$withval" = "xno"; then ac_cv_header_pthread_h=no; fi]) @@ -160,7 +214,7 @@ AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)])) AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF])) AC_ARG_WITH(v4l, AS_HELP_STRING([--without-v4l],[do not use v4l1 (v4l support)])) -@@ -1517,6 +1518,30 @@ +@@ -1513,6 +1514,30 @@ then [GetText ${notice_platform}development files not found (or too old), po files can't be rebuilt.]) fi @@ -191,7 +245,7 @@ dnl **** Check for gstreamer **** if test "x$with_gstreamer" != "xno" then -@@ -1727,13 +1752,14 @@ +@@ -1731,13 +1756,14 @@ WINE_CHECK_SONAME(odbc,SQLConnect,,[AC_DEFINE_UNQUOTED(SONAME_LIBODBC,["libodbc. dnl **** Disable unsupported winmm drivers **** test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no} test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no} @@ -208,7 +262,7 @@ then WINE_WARNING([No sound system was found. Windows applications will be silent.]) fi -@@ -3113,6 +3139,7 @@ +@@ -3121,6 +3147,7 @@ WINE_CONFIG_DLL(winemp3.acm) WINE_CONFIG_DLL(wineoss.drv) WINE_CONFIG_DLL(wineps.drv,,[install-lib,po]) WINE_CONFIG_DLL(wineps16.drv16,enable_win16) @@ -216,9 +270,11 @@ WINE_CONFIG_DLL(wineqtdecoder) WINE_CONFIG_DLL(winex11.drv) WINE_CONFIG_DLL(wing.dll16,enable_win16) ---- wine-1.7.0/dlls/mmdevapi/main.c 2013-08-02 20:09:56.000000000 +0200 -+++ wine-1.7.0-multimedia/dlls/mmdevapi/main.c 2013-08-17 08:36:36.910594852 +0200 -@@ -110,7 +110,7 @@ +diff --git a/dlls/mmdevapi/main.c b/dlls/mmdevapi/main.c +index 447813f..b9ae99e 100644 +--- a/dlls/mmdevapi/main.c ++++ b/dlls/mmdevapi/main.c +@@ -110,7 +110,7 @@ static BOOL init_driver(void) { static const WCHAR drv_value[] = {'A','u','d','i','o',0}; @@ -227,9 +283,11 @@ 'c','o','r','e','a','u','d','i','o',0}; DriverFuncs driver; -diff -uhNr wine-1.7.0/dlls/winepulse.drv/Makefile.in wine-1.7.0-multimedia/dlls/winepulse.drv/Makefile.in ---- wine-1.7.0/dlls/winepulse.drv/Makefile.in 1970-01-01 01:00:00.000000000 +0100 -+++ wine-1.7.0-multimedia/dlls/winepulse.drv/Makefile.in 2013-08-17 08:36:37.219593908 +0200 +diff --git a/dlls/winepulse.drv/Makefile.in b/dlls/winepulse.drv/Makefile.in +new file mode 100644 +index 0000000..0f595f1 +--- /dev/null ++++ b/dlls/winepulse.drv/Makefile.in @@ -0,0 +1,9 @@ +MODULE = winepulse.drv +IMPORTS = dxguid uuid winmm user32 advapi32 ole32 @@ -240,10 +298,12 @@ diff -uhNr wine-1.7.0/dlls/winepulse.drv/Makefile.in wine-1.7.0-multimedia/dlls/ + mmdevdrv.c + +@MAKE_DLL_RULES@ -diff -uhNr wine-1.7.0/dlls/winepulse.drv/mmdevdrv.c wine-1.7.0-multimedia/dlls/winepulse.drv/mmdevdrv.c ---- wine-1.7.0/dlls/winepulse.drv/mmdevdrv.c 1970-01-01 01:00:00.000000000 +0100 -+++ wine-1.7.0-multimedia/dlls/winepulse.drv/mmdevdrv.c 2013-08-17 08:36:37.219593908 +0200 -@@ -0,0 +1,3221 @@ +diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c +new file mode 100644 +index 0000000..d187bdc +--- /dev/null ++++ b/dlls/winepulse.drv/mmdevdrv.c +@@ -0,0 +1,290 @@ +/* + * Copyright 2011-2012 Maarten Lankhorst + * Copyright 2010-2011 Maarten Lankhorst for CodeWeavers @@ -268,8 +328,6 @@ diff -uhNr wine-1.7.0/dlls/winepulse.drv/mmdevdrv.c wine-1.7.0-multimedia/dlls/w + +#define NONAMELESSUNION +#define COBJMACROS -+#define _GNU_SOURCE -+ +#include "config.h" +#include +#include @@ -278,7 +336,6 @@ diff -uhNr wine-1.7.0/dlls/winepulse.drv/mmdevdrv.c wine-1.7.0-multimedia/dlls/w +#include +#include +#include -+#include + +#include + @@ -308,7 +365,6 @@ diff -uhNr wine-1.7.0/dlls/winepulse.drv/mmdevdrv.c wine-1.7.0-multimedia/dlls/w +#define NULL_PTR_ERR MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, RPC_X_NULL_REF_POINTER) + +WINE_DEFAULT_DEBUG_CHANNEL(pulse); -+WINE_DECLARE_DEBUG_CHANNEL(winediag); + +static const REFERENCE_TIME MinimumPeriod = 30000; +static const REFERENCE_TIME DefaultPeriod = 100000; @@ -317,13 +373,8 @@ diff -uhNr wine-1.7.0/dlls/winepulse.drv/mmdevdrv.c wine-1.7.0-multimedia/dlls/w +static pa_mainloop *pulse_ml; + +static HANDLE pulse_thread; -+static pthread_mutex_t pulse_lock; ++static pthread_mutex_t pulse_lock = PTHREAD_MUTEX_INITIALIZER; +static pthread_cond_t pulse_cond = PTHREAD_COND_INITIALIZER; -+static struct list g_sessions = LIST_INIT(g_sessions); -+ -+/* Mixer format + period times */ -+static WAVEFORMATEXTENSIBLE pulse_fmt[2]; -+static REFERENCE_TIME pulse_min_period[2], pulse_def_period[2]; + +static DWORD pulse_stream_volume; + @@ -331,19 +382,10 @@ diff -uhNr wine-1.7.0/dlls/winepulse.drv/mmdevdrv.c wine-1.7.0-multimedia/dlls/w + 'W','i','n','e','\\','P','u','l','s','e',0}; +const WCHAR pulse_streamW[] = { 'S','t','r','e','a','m','V','o','l',0 }; + -+static GUID pulse_render_guid = -+{ 0xfd47d9cc, 0x4218, 0x4135, { 0x9c, 0xe2, 0x0c, 0x19, 0x5c, 0x87, 0x40, 0x5b } }; -+static GUID pulse_capture_guid = -+{ 0x25da76d0, 0x033c, 0x4235, { 0x90, 0x02, 0x19, 0xf4, 0x88, 0x94, 0xac, 0x6f } }; -+ -+static HANDLE warn_once; -+ +BOOL WINAPI DllMain(HINSTANCE dll, DWORD reason, void *reserved) +{ + if (reason == DLL_PROCESS_ATTACH) { + HKEY key; -+ pthread_mutexattr_t attr; -+ + if (RegOpenKeyW(HKEY_CURRENT_USER, pulse_keyW, &key) == ERROR_SUCCESS) { + DWORD size = sizeof(pulse_stream_volume); + RegQueryValueExW(key, pulse_streamW, 0, NULL, @@ -351,155 +393,21 @@ diff -uhNr wine-1.7.0/dlls/winepulse.drv/mmdevdrv.c wine-1.7.0-multimedia/dlls/w + RegCloseKey(key); + } + DisableThreadLibraryCalls(dll); -+ -+ pthread_mutexattr_init(&attr); -+ pthread_mutexattr_setprotocol(&attr, PTHREAD_PRIO_INHERIT); -+ -+ if (pthread_mutex_init(&pulse_lock, &attr) != 0) -+ pthread_mutex_init(&pulse_lock, NULL); + } else if (reason == DLL_PROCESS_DETACH) { -+ if (pulse_thread) -+ SetThreadPriority(pulse_thread, 0); + if (pulse_ctx) { + pa_context_disconnect(pulse_ctx); + pa_context_unref(pulse_ctx); + } + if (pulse_ml) + pa_mainloop_quit(pulse_ml, 0); -+ if (pulse_thread) -+ CloseHandle(pulse_thread); -+ if (warn_once) -+ CloseHandle(warn_once); ++ CloseHandle(pulse_thread); + } + return TRUE; +} + -+typedef struct ACImpl ACImpl; -+ -+typedef struct _AudioSession { -+ GUID guid; -+ struct list clients; -+ -+ IMMDevice *device; -+ -+ float master_vol; -+ UINT32 channel_count; -+ float *channel_vols; -+ BOOL mute; -+ -+ struct list entry; -+} AudioSession; -+ -+typedef struct _AudioSessionWrapper { -+ IAudioSessionControl2 IAudioSessionControl2_iface; -+ IChannelAudioVolume IChannelAudioVolume_iface; -+ ISimpleAudioVolume ISimpleAudioVolume_iface; -+ -+ LONG ref; -+ -+ ACImpl *client; -+ AudioSession *session; -+} AudioSessionWrapper; -+ -+typedef struct _ACPacket { -+ struct list entry; -+ UINT64 qpcpos; -+ BYTE *data; -+ UINT32 discont; -+} ACPacket; -+ -+struct ACImpl { -+ IAudioClient IAudioClient_iface; -+ IAudioRenderClient IAudioRenderClient_iface; -+ IAudioCaptureClient IAudioCaptureClient_iface; -+ IAudioClock IAudioClock_iface; -+ IAudioClock2 IAudioClock2_iface; -+ IAudioStreamVolume IAudioStreamVolume_iface; -+ IUnknown *marshal; -+ IMMDevice *parent; -+ struct list entry; -+ float vol[PA_CHANNELS_MAX]; -+ -+ LONG ref; -+ EDataFlow dataflow; -+ DWORD flags; -+ AUDCLNT_SHAREMODE share; -+ HANDLE event; -+ -+ UINT32 bufsize_frames, bufsize_bytes, locked, capture_period, pad, started, peek_ofs; -+ void *locked_ptr, *tmp_buffer; -+ -+ pa_stream *stream; -+ pa_sample_spec ss; -+ pa_channel_map map; -+ -+ INT64 clock_lastpos, clock_written; -+ -+ AudioSession *session; -+ AudioSessionWrapper *session_wrapper; -+ struct list packet_free_head; -+ struct list packet_filled_head; -+}; + +static const WCHAR defaultW[] = {'P','u','l','s','e','a','u','d','i','o',0}; + -+static const IAudioClientVtbl AudioClient_Vtbl; -+static const IAudioRenderClientVtbl AudioRenderClient_Vtbl; -+static const IAudioCaptureClientVtbl AudioCaptureClient_Vtbl; -+static const IAudioSessionControl2Vtbl AudioSessionControl2_Vtbl; -+static const ISimpleAudioVolumeVtbl SimpleAudioVolume_Vtbl; -+static const IChannelAudioVolumeVtbl ChannelAudioVolume_Vtbl; -+static const IAudioClockVtbl AudioClock_Vtbl; -+static const IAudioClock2Vtbl AudioClock2_Vtbl; -+static const IAudioStreamVolumeVtbl AudioStreamVolume_Vtbl; -+ -+static AudioSessionWrapper *AudioSessionWrapper_Create(ACImpl *client); -+ -+static inline ACImpl *impl_from_IAudioClient(IAudioClient *iface) -+{ -+ return CONTAINING_RECORD(iface, ACImpl, IAudioClient_iface); -+} -+ -+static inline ACImpl *impl_from_IAudioRenderClient(IAudioRenderClient *iface) -+{ -+ return CONTAINING_RECORD(iface, ACImpl, IAudioRenderClient_iface); -+} -+ -+static inline ACImpl *impl_from_IAudioCaptureClient(IAudioCaptureClient *iface) -+{ -+ return CONTAINING_RECORD(iface, ACImpl, IAudioCaptureClient_iface); -+} -+ -+static inline AudioSessionWrapper *impl_from_IAudioSessionControl2(IAudioSessionControl2 *iface) -+{ -+ return CONTAINING_RECORD(iface, AudioSessionWrapper, IAudioSessionControl2_iface); -+} -+ -+static inline AudioSessionWrapper *impl_from_ISimpleAudioVolume(ISimpleAudioVolume *iface) -+{ -+ return CONTAINING_RECORD(iface, AudioSessionWrapper, ISimpleAudioVolume_iface); -+} -+ -+static inline AudioSessionWrapper *impl_from_IChannelAudioVolume(IChannelAudioVolume *iface) -+{ -+ return CONTAINING_RECORD(iface, AudioSessionWrapper, IChannelAudioVolume_iface); -+} -+ -+static inline ACImpl *impl_from_IAudioClock(IAudioClock *iface) -+{ -+ return CONTAINING_RECORD(iface, ACImpl, IAudioClock_iface); -+} -+ -+static inline ACImpl *impl_from_IAudioClock2(IAudioClock2 *iface) -+{ -+ return CONTAINING_RECORD(iface, ACImpl, IAudioClock2_iface); -+} -+ -+static inline ACImpl *impl_from_IAudioStreamVolume(IAudioStreamVolume *iface) -+{ -+ return CONTAINING_RECORD(iface, ACImpl, IAudioStreamVolume_iface); -+} -+ +/* Following pulseaudio design here, mainloop has the lock taken whenever + * it is handling something for pulse, and the lock is required whenever + * doing any pa_* call that can affect the state in any way @@ -537,159 +445,44 @@ diff -uhNr wine-1.7.0/dlls/winepulse.drv/mmdevdrv.c wine-1.7.0-multimedia/dlls/w +} + +static void pulse_contextcallback(pa_context *c, void *userdata); -+static void pulse_stream_state(pa_stream *s, void *user); -+ -+static const enum pa_channel_position pulse_pos_from_wfx[] = { -+ PA_CHANNEL_POSITION_FRONT_LEFT, -+ PA_CHANNEL_POSITION_FRONT_RIGHT, -+ PA_CHANNEL_POSITION_FRONT_CENTER, -+ PA_CHANNEL_POSITION_LFE, -+ PA_CHANNEL_POSITION_REAR_LEFT, -+ PA_CHANNEL_POSITION_REAR_RIGHT, -+ PA_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER, -+ PA_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER, -+ PA_CHANNEL_POSITION_REAR_CENTER, -+ PA_CHANNEL_POSITION_SIDE_LEFT, -+ PA_CHANNEL_POSITION_SIDE_RIGHT, -+ PA_CHANNEL_POSITION_TOP_CENTER, -+ PA_CHANNEL_POSITION_TOP_FRONT_LEFT, -+ PA_CHANNEL_POSITION_TOP_FRONT_CENTER, -+ PA_CHANNEL_POSITION_TOP_FRONT_RIGHT, -+ PA_CHANNEL_POSITION_TOP_REAR_LEFT, -+ PA_CHANNEL_POSITION_TOP_REAR_CENTER, -+ PA_CHANNEL_POSITION_TOP_REAR_RIGHT -+}; + -+static void pulse_probe_settings(int render, WAVEFORMATEXTENSIBLE *fmt) { -+ WAVEFORMATEX *wfx = &fmt->Format; -+ pa_stream *stream; -+ pa_channel_map map; -+ pa_sample_spec ss; -+ pa_buffer_attr attr; -+ int ret, i; -+ unsigned int length = 0; ++static HRESULT pulse_connect(void) ++{ ++ int len; ++ WCHAR path[PATH_MAX], *name; ++ char *str; + -+ pa_channel_map_init_auto(&map, 2, PA_CHANNEL_MAP_ALSA); -+ ss.rate = 48000; -+ ss.format = PA_SAMPLE_FLOAT32LE; -+ ss.channels = map.channels; ++ if (!pulse_thread) ++ { ++ if (!(pulse_thread = CreateThread(NULL, 0, pulse_mainloop_thread, NULL, 0, NULL))) ++ { ++ ERR("Failed to create mainloop thread."); ++ return E_FAIL; ++ } ++ SetThreadPriority(pulse_thread, THREAD_PRIORITY_TIME_CRITICAL); ++ pthread_cond_wait(&pulse_cond, &pulse_lock); ++ } + -+ attr.maxlength = -1; -+ attr.tlength = -1; -+ attr.minreq = attr.fragsize = pa_frame_size(&ss); -+ attr.prebuf = 0; ++ if (pulse_ctx && PA_CONTEXT_IS_GOOD(pa_context_get_state(pulse_ctx))) ++ return S_OK; ++ if (pulse_ctx) ++ pa_context_unref(pulse_ctx); + -+ stream = pa_stream_new(pulse_ctx, "format test stream", &ss, &map); -+ if (stream) -+ pa_stream_set_state_callback(stream, pulse_stream_state, NULL); -+ if (!stream) -+ ret = -1; -+ else if (render) -+ ret = pa_stream_connect_playback(stream, NULL, &attr, -+ PA_STREAM_START_CORKED|PA_STREAM_FIX_RATE|PA_STREAM_FIX_CHANNELS|PA_STREAM_EARLY_REQUESTS, NULL, NULL); ++ GetModuleFileNameW(NULL, path, sizeof(path)/sizeof(*path)); ++ name = strrchrW(path, '\\'); ++ if (!name) ++ name = path; + else -+ ret = pa_stream_connect_record(stream, NULL, &attr, PA_STREAM_START_CORKED|PA_STREAM_FIX_RATE|PA_STREAM_FIX_CHANNELS|PA_STREAM_EARLY_REQUESTS); -+ if (ret >= 0) { -+ while (pa_stream_get_state(stream) == PA_STREAM_CREATING) -+ pthread_cond_wait(&pulse_cond, &pulse_lock); -+ if (pa_stream_get_state(stream) == PA_STREAM_READY) { -+ ss = *pa_stream_get_sample_spec(stream); -+ map = *pa_stream_get_channel_map(stream); -+ if (render) -+ length = pa_stream_get_buffer_attr(stream)->minreq; -+ else -+ length = pa_stream_get_buffer_attr(stream)->fragsize; -+ pa_stream_disconnect(stream); -+ while (pa_stream_get_state(stream) == PA_STREAM_READY) -+ pthread_cond_wait(&pulse_cond, &pulse_lock); -+ } -+ } -+ if (stream) -+ pa_stream_unref(stream); -+ if (length) -+ pulse_def_period[!render] = pulse_min_period[!render] = pa_bytes_to_usec(10 * length, &ss); -+ else -+ pulse_min_period[!render] = MinimumPeriod; -+ if (pulse_def_period[!render] <= DefaultPeriod) -+ pulse_def_period[!render] = DefaultPeriod; -+ -+ wfx->wFormatTag = WAVE_FORMAT_EXTENSIBLE; -+ wfx->cbSize = sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX); -+ wfx->nChannels = ss.channels; -+ wfx->wBitsPerSample = 8 * pa_sample_size_of_format(ss.format); -+ wfx->nSamplesPerSec = ss.rate; -+ wfx->nBlockAlign = pa_frame_size(&ss); -+ wfx->nAvgBytesPerSec = wfx->nSamplesPerSec * wfx->nBlockAlign; -+ if (ss.format != PA_SAMPLE_S24_32LE) -+ fmt->Samples.wValidBitsPerSample = wfx->wBitsPerSample; -+ else -+ fmt->Samples.wValidBitsPerSample = 24; -+ if (ss.format == PA_SAMPLE_FLOAT32LE) -+ fmt->SubFormat = KSDATAFORMAT_SUBTYPE_IEEE_FLOAT; -+ else -+ fmt->SubFormat = KSDATAFORMAT_SUBTYPE_PCM; -+ -+ fmt->dwChannelMask = 0; -+ for (i = 0; i < map.channels; ++i) -+ switch (map.map[i]) { -+ default: FIXME("Unhandled channel %s\n", pa_channel_position_to_string(map.map[i])); break; -+ case PA_CHANNEL_POSITION_FRONT_LEFT: fmt->dwChannelMask |= SPEAKER_FRONT_LEFT; break; -+ case PA_CHANNEL_POSITION_MONO: -+ case PA_CHANNEL_POSITION_FRONT_CENTER: fmt->dwChannelMask |= SPEAKER_FRONT_CENTER; break; -+ case PA_CHANNEL_POSITION_FRONT_RIGHT: fmt->dwChannelMask |= SPEAKER_FRONT_RIGHT; break; -+ case PA_CHANNEL_POSITION_REAR_LEFT: fmt->dwChannelMask |= SPEAKER_BACK_LEFT; break; -+ case PA_CHANNEL_POSITION_REAR_CENTER: fmt->dwChannelMask |= SPEAKER_BACK_CENTER; break; -+ case PA_CHANNEL_POSITION_REAR_RIGHT: fmt->dwChannelMask |= SPEAKER_BACK_RIGHT; break; -+ case PA_CHANNEL_POSITION_LFE: fmt->dwChannelMask |= SPEAKER_LOW_FREQUENCY; break; -+ case PA_CHANNEL_POSITION_SIDE_LEFT: fmt->dwChannelMask |= SPEAKER_SIDE_LEFT; break; -+ case PA_CHANNEL_POSITION_SIDE_RIGHT: fmt->dwChannelMask |= SPEAKER_SIDE_RIGHT; break; -+ case PA_CHANNEL_POSITION_TOP_CENTER: fmt->dwChannelMask |= SPEAKER_TOP_CENTER; break; -+ case PA_CHANNEL_POSITION_TOP_FRONT_LEFT: fmt->dwChannelMask |= SPEAKER_TOP_FRONT_LEFT; break; -+ case PA_CHANNEL_POSITION_TOP_FRONT_CENTER: fmt->dwChannelMask |= SPEAKER_TOP_FRONT_CENTER; break; -+ case PA_CHANNEL_POSITION_TOP_FRONT_RIGHT: fmt->dwChannelMask |= SPEAKER_TOP_FRONT_RIGHT; break; -+ case PA_CHANNEL_POSITION_TOP_REAR_LEFT: fmt->dwChannelMask |= SPEAKER_TOP_BACK_LEFT; break; -+ case PA_CHANNEL_POSITION_TOP_REAR_CENTER: fmt->dwChannelMask |= SPEAKER_TOP_BACK_CENTER; break; -+ case PA_CHANNEL_POSITION_TOP_REAR_RIGHT: fmt->dwChannelMask |= SPEAKER_TOP_BACK_RIGHT; break; -+ } -+} -+ -+static HRESULT pulse_connect(void) -+{ -+ int len; -+ WCHAR path[PATH_MAX], *name; -+ char *str; -+ -+ if (!pulse_thread) -+ { -+ if (!(pulse_thread = CreateThread(NULL, 0, pulse_mainloop_thread, NULL, 0, NULL))) -+ { -+ ERR("Failed to create mainloop thread."); -+ return E_FAIL; -+ } -+ SetThreadPriority(pulse_thread, THREAD_PRIORITY_TIME_CRITICAL); -+ pthread_cond_wait(&pulse_cond, &pulse_lock); -+ } -+ -+ if (pulse_ctx && PA_CONTEXT_IS_GOOD(pa_context_get_state(pulse_ctx))) -+ return S_OK; -+ if (pulse_ctx) -+ pa_context_unref(pulse_ctx); -+ -+ GetModuleFileNameW(NULL, path, sizeof(path)/sizeof(*path)); -+ name = strrchrW(path, '\\'); -+ if (!name) -+ name = path; -+ else -+ name++; -+ len = WideCharToMultiByte(CP_UNIXCP, 0, name, -1, NULL, 0, NULL, NULL); -+ str = pa_xmalloc(len); -+ WideCharToMultiByte(CP_UNIXCP, 0, name, -1, str, len, NULL, NULL); -+ TRACE("Name: %s\n", str); -+ pulse_ctx = pa_context_new(pa_mainloop_get_api(pulse_ml), str); -+ pa_xfree(str); -+ if (!pulse_ctx) { -+ ERR("Failed to create context\n"); -+ return E_FAIL; ++ name++; ++ len = WideCharToMultiByte(CP_UNIXCP, 0, name, -1, NULL, 0, NULL, NULL); ++ str = pa_xmalloc(len); ++ WideCharToMultiByte(CP_UNIXCP, 0, name, -1, str, len, NULL, NULL); ++ TRACE("Name: %s\n", str); ++ pulse_ctx = pa_context_new(pa_mainloop_get_api(pulse_ml), str); ++ pa_xfree(str); ++ if (!pulse_ctx) { ++ ERR("Failed to create context\n"); ++ return E_FAIL; + } + + pa_context_set_state_callback(pulse_ctx, pulse_contextcallback, NULL); @@ -712,8 +505,6 @@ diff -uhNr wine-1.7.0/dlls/winepulse.drv/mmdevdrv.c wine-1.7.0-multimedia/dlls/w + TRACE("Connected to server %s with protocol version: %i.\n", + pa_context_get_server(pulse_ctx), + pa_context_get_server_protocol_version(pulse_ctx)); -+ pulse_probe_settings(1, &pulse_fmt[0]); -+ pulse_probe_settings(0, &pulse_fmt[1]); + return S_OK; + +fail: @@ -745,187 +536,238 @@ diff -uhNr wine-1.7.0/dlls/winepulse.drv/mmdevdrv.c wine-1.7.0-multimedia/dlls/w + pthread_cond_signal(&pulse_cond); +} + -+static HRESULT pulse_stream_valid(ACImpl *This) { -+ if (!This->stream) -+ return AUDCLNT_E_NOT_INITIALIZED; -+ if (!This->stream || pa_stream_get_state(This->stream) != PA_STREAM_READY) -+ return AUDCLNT_E_DEVICE_INVALIDATED; -+ return S_OK; -+} -+ -+static void dump_attr(const pa_buffer_attr *attr) { -+ TRACE("maxlength: %u\n", attr->maxlength); -+ TRACE("minreq: %u\n", attr->minreq); -+ TRACE("fragsize: %u\n", attr->fragsize); -+ TRACE("tlength: %u\n", attr->tlength); -+ TRACE("prebuf: %u\n", attr->prebuf); -+} -+ -+static void pulse_op_cb(pa_stream *s, int success, void *user) { -+ TRACE("Success: %i\n", success); -+ *(int*)user = success; -+ pthread_cond_signal(&pulse_cond); -+} -+ -+static void pulse_ctx_op_cb(pa_context *c, int success, void *user) { -+ TRACE("Success: %i\n", success); -+ *(int*)user = success; -+ pthread_cond_signal(&pulse_cond); -+} -+ -+static void pulse_attr_update(pa_stream *s, void *user) { -+ const pa_buffer_attr *attr = pa_stream_get_buffer_attr(s); -+ TRACE("New attributes or device moved:\n"); -+ dump_attr(attr); -+} -+ -+static void pulse_wr_callback(pa_stream *s, size_t bytes, void *userdata) ++HRESULT WINAPI AUDDRV_GetEndpointIDs(EDataFlow flow, WCHAR ***ids, void ***keys, ++ UINT *num, UINT *def_index) +{ -+ ACImpl *This = userdata; -+ UINT32 oldpad = This->pad; -+ -+ if (bytes < This->bufsize_bytes) -+ This->pad = This->bufsize_bytes - bytes; -+ else -+ This->pad = 0; ++ HRESULT hr = S_OK; ++ TRACE("%d %p %p %p\n", flow, ids, num, def_index); + -+ if (oldpad == This->pad) -+ return; ++ pthread_mutex_lock(&pulse_lock); ++ hr = pulse_connect(); ++ pthread_mutex_unlock(&pulse_lock); ++ if (FAILED(hr)) ++ return hr; ++ *num = 1; ++ *def_index = 0; + -+ assert(oldpad > This->pad); ++ *ids = HeapAlloc(GetProcessHeap(), 0, sizeof(WCHAR *)); ++ if (!*ids) ++ return E_OUTOFMEMORY; + -+ This->clock_written += oldpad - This->pad; -+ TRACE("New pad: %zu (-%zu)\n", This->pad / pa_frame_size(&This->ss), (oldpad - This->pad) / pa_frame_size(&This->ss)); ++ (*ids)[0] = HeapAlloc(GetProcessHeap(), 0, sizeof(defaultW)); ++ if (!(*ids)[0]) { ++ HeapFree(GetProcessHeap(), 0, *ids); ++ return E_OUTOFMEMORY; ++ } + -+ if (This->event) -+ SetEvent(This->event); -+} ++ lstrcpyW((*ids)[0], defaultW); + -+static void pulse_underflow_callback(pa_stream *s, void *userdata) -+{ -+ WARN("Underflow\n"); -+} ++ *keys = HeapAlloc(GetProcessHeap(), 0, sizeof(void *)); ++ (*keys)[0] = NULL; + -+/* Latency is periodically updated even when nothing is played, -+ * because of PA_STREAM_AUTO_TIMING_UPDATE so use it as timer -+ * -+ * Perfect for passing all tests :) -+ */ -+static void pulse_latency_callback(pa_stream *s, void *userdata) -+{ -+ ACImpl *This = userdata; -+ if (!This->pad && This->event) -+ SetEvent(This->event); ++ return S_OK; +} + -+static void pulse_started_callback(pa_stream *s, void *userdata) ++int WINAPI AUDDRV_GetPriority(void) +{ -+ TRACE("(Re)started playing\n"); ++ HRESULT hr; ++ pthread_mutex_lock(&pulse_lock); ++ hr = pulse_connect(); ++ pthread_mutex_unlock(&pulse_lock); ++ return SUCCEEDED(hr) ? 3 : 0; +} + -+static void pulse_rd_loop(ACImpl *This, size_t bytes) ++HRESULT WINAPI AUDDRV_GetAudioEndpoint(void *key, IMMDevice *dev, ++ EDataFlow dataflow, IAudioClient **out) +{ -+ while (bytes >= This->capture_period) { -+ ACPacket *p, *next; -+ LARGE_INTEGER stamp, freq; -+ BYTE *dst, *src; -+ size_t src_len, copy, rem = This->capture_period; -+ if (!(p = (ACPacket*)list_head(&This->packet_free_head))) { -+ p = (ACPacket*)list_head(&This->packet_filled_head); -+ if (!p->discont) { -+ next = (ACPacket*)p->entry.next; -+ next->discont = 1; -+ } else -+ p = (ACPacket*)list_tail(&This->packet_filled_head); -+ assert(This->pad == This->bufsize_bytes); -+ } else { -+ assert(This->pad < This->bufsize_bytes); -+ This->pad += This->capture_period; -+ assert(This->pad <= This->bufsize_bytes); -+ } -+ QueryPerformanceCounter(&stamp); -+ QueryPerformanceFrequency(&freq); -+ p->qpcpos = (stamp.QuadPart * (INT64)10000000) / freq.QuadPart; -+ p->discont = 0; -+ list_remove(&p->entry); -+ list_add_tail(&This->packet_filled_head, &p->entry); -+ -+ dst = p->data; -+ while (rem) { -+ pa_stream_peek(This->stream, (const void**)&src, &src_len); -+ assert(src_len); -+ assert(This->peek_ofs < src_len); -+ src += This->peek_ofs; -+ src_len -= This->peek_ofs; -+ assert(src_len <= bytes); -+ -+ copy = rem; -+ if (copy > src_len) -+ copy = src_len; -+ memcpy(dst, src, rem); -+ src += copy; -+ src_len -= copy; -+ dst += copy; -+ rem -= copy; ++ TRACE("%p %p %d %p\n", key, dev, dataflow, out); ++ if (dataflow != eRender && dataflow != eCapture) ++ return E_UNEXPECTED; + -+ if (!src_len) { -+ This->peek_ofs = 0; -+ pa_stream_drop(This->stream); -+ } else -+ This->peek_ofs += copy; -+ } -+ bytes -= This->capture_period; -+ } ++ *out = NULL; ++ return E_NOTIMPL; +} + -+static void pulse_rd_drop(ACImpl *This, size_t bytes) ++HRESULT WINAPI AUDDRV_GetAudioSessionManager(IMMDevice *device, ++ IAudioSessionManager2 **out) +{ -+ while (bytes >= This->capture_period) { -+ size_t src_len, copy, rem = This->capture_period; -+ while (rem) { -+ const void *src; -+ pa_stream_peek(This->stream, &src, &src_len); -+ assert(src_len); -+ assert(This->peek_ofs < src_len); -+ src_len -= This->peek_ofs; -+ assert(src_len <= bytes); ++ *out = NULL; ++ return E_NOTIMPL; ++} +diff --git a/dlls/winepulse.drv/winepulse.drv.spec b/dlls/winepulse.drv/winepulse.drv.spec +new file mode 100644 +index 0000000..a089166 +--- /dev/null ++++ b/dlls/winepulse.drv/winepulse.drv.spec +@@ -0,0 +1,5 @@ ++# MMDevAPI driver functions ++@ stdcall -private GetPriority() AUDDRV_GetPriority ++@ stdcall -private GetEndpointIDs(long ptr ptr ptr ptr) AUDDRV_GetEndpointIDs ++@ stdcall -private GetAudioEndpoint(ptr ptr long ptr) AUDDRV_GetAudioEndpoint ++@ stdcall -private GetAudioSessionManager(ptr ptr) AUDDRV_GetAudioSessionManager +-- +1.8.3.1 + + +From 0592b9ae849869a6af44c7dc21ad2d9b1aebbfaa Mon Sep 17 00:00:00 2001 +From: Maarten Lankhorst +Date: Sat, 31 Aug 2013 08:36:00 +0200 +Subject: winepulse: Add format and period probing + +--- + dlls/winepulse.drv/mmdevdrv.c | 128 ++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 128 insertions(+) + +diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c +index d187bdc..40db26d 100644 +--- a/dlls/winepulse.drv/mmdevdrv.c ++++ b/dlls/winepulse.drv/mmdevdrv.c +@@ -70,6 +70,10 @@ static HANDLE pulse_thread; + static pthread_mutex_t pulse_lock = PTHREAD_MUTEX_INITIALIZER; + static pthread_cond_t pulse_cond = PTHREAD_COND_INITIALIZER; + ++/* Mixer format + period times */ ++static WAVEFORMATEXTENSIBLE pulse_fmt[2]; ++static REFERENCE_TIME pulse_min_period[2], pulse_def_period[2]; + -+ copy = rem; -+ if (copy > src_len) -+ copy = src_len; + static DWORD pulse_stream_volume; + + const WCHAR pulse_keyW[] = {'S','o','f','t','w','a','r','e','\\', +@@ -139,6 +143,121 @@ static DWORD CALLBACK pulse_mainloop_thread(void *tmp) { + } + + static void pulse_contextcallback(pa_context *c, void *userdata); ++static void pulse_stream_state(pa_stream *s, void *user); + -+ src_len -= copy; -+ rem -= copy; ++static const enum pa_channel_position pulse_pos_from_wfx[] = { ++ PA_CHANNEL_POSITION_FRONT_LEFT, ++ PA_CHANNEL_POSITION_FRONT_RIGHT, ++ PA_CHANNEL_POSITION_FRONT_CENTER, ++ PA_CHANNEL_POSITION_LFE, ++ PA_CHANNEL_POSITION_REAR_LEFT, ++ PA_CHANNEL_POSITION_REAR_RIGHT, ++ PA_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER, ++ PA_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER, ++ PA_CHANNEL_POSITION_REAR_CENTER, ++ PA_CHANNEL_POSITION_SIDE_LEFT, ++ PA_CHANNEL_POSITION_SIDE_RIGHT, ++ PA_CHANNEL_POSITION_TOP_CENTER, ++ PA_CHANNEL_POSITION_TOP_FRONT_LEFT, ++ PA_CHANNEL_POSITION_TOP_FRONT_CENTER, ++ PA_CHANNEL_POSITION_TOP_FRONT_RIGHT, ++ PA_CHANNEL_POSITION_TOP_REAR_LEFT, ++ PA_CHANNEL_POSITION_TOP_REAR_CENTER, ++ PA_CHANNEL_POSITION_TOP_REAR_RIGHT ++}; + -+ if (!src_len) { -+ This->peek_ofs = 0; -+ pa_stream_drop(This->stream); -+ } else -+ This->peek_ofs += copy; -+ bytes -= copy; -+ } -+ } -+} ++static void pulse_probe_settings(int render, WAVEFORMATEXTENSIBLE *fmt) { ++ WAVEFORMATEX *wfx = &fmt->Format; ++ pa_stream *stream; ++ pa_channel_map map; ++ pa_sample_spec ss; ++ pa_buffer_attr attr; ++ int ret, i; ++ unsigned int length = 0; + -+static void pulse_rd_callback(pa_stream *s, size_t bytes, void *userdata) -+{ -+ ACImpl *This = userdata; ++ pa_channel_map_init_auto(&map, 2, PA_CHANNEL_MAP_ALSA); ++ ss.rate = 48000; ++ ss.format = PA_SAMPLE_FLOAT32LE; ++ ss.channels = map.channels; + -+ TRACE("Readable total: %zu, fragsize: %u\n", bytes, pa_stream_get_buffer_attr(s)->fragsize); -+ assert(bytes >= This->peek_ofs); -+ bytes -= This->peek_ofs; -+ if (bytes < This->capture_period) -+ return; ++ attr.maxlength = -1; ++ attr.tlength = -1; ++ attr.minreq = attr.fragsize = pa_frame_size(&ss); ++ attr.prebuf = 0; + -+ if (This->started) -+ pulse_rd_loop(This, bytes); ++ stream = pa_stream_new(pulse_ctx, "format test stream", &ss, &map); ++ if (stream) ++ pa_stream_set_state_callback(stream, pulse_stream_state, NULL); ++ if (!stream) ++ ret = -1; ++ else if (render) ++ ret = pa_stream_connect_playback(stream, NULL, &attr, ++ PA_STREAM_START_CORKED|PA_STREAM_FIX_RATE|PA_STREAM_FIX_CHANNELS|PA_STREAM_EARLY_REQUESTS, NULL, NULL); + else -+ pulse_rd_drop(This, bytes); ++ ret = pa_stream_connect_record(stream, NULL, &attr, PA_STREAM_START_CORKED|PA_STREAM_FIX_RATE|PA_STREAM_FIX_CHANNELS|PA_STREAM_EARLY_REQUESTS); ++ if (ret >= 0) { ++ while (pa_stream_get_state(stream) == PA_STREAM_CREATING) ++ pthread_cond_wait(&pulse_cond, &pulse_lock); ++ if (pa_stream_get_state(stream) == PA_STREAM_READY) { ++ ss = *pa_stream_get_sample_spec(stream); ++ map = *pa_stream_get_channel_map(stream); ++ if (render) ++ length = pa_stream_get_buffer_attr(stream)->minreq; ++ else ++ length = pa_stream_get_buffer_attr(stream)->fragsize; ++ pa_stream_disconnect(stream); ++ while (pa_stream_get_state(stream) == PA_STREAM_READY) ++ pthread_cond_wait(&pulse_cond, &pulse_lock); ++ } ++ } ++ if (stream) ++ pa_stream_unref(stream); ++ if (length) ++ pulse_def_period[!render] = pulse_min_period[!render] = pa_bytes_to_usec(10 * length, &ss); ++ else ++ pulse_min_period[!render] = MinimumPeriod; ++ if (pulse_def_period[!render] <= DefaultPeriod) ++ pulse_def_period[!render] = DefaultPeriod; + -+ if (This->event) -+ SetEvent(This->event); -+} ++ wfx->wFormatTag = WAVE_FORMAT_EXTENSIBLE; ++ wfx->cbSize = sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX); ++ wfx->nChannels = ss.channels; ++ wfx->wBitsPerSample = 8 * pa_sample_size_of_format(ss.format); ++ wfx->nSamplesPerSec = ss.rate; ++ wfx->nBlockAlign = pa_frame_size(&ss); ++ wfx->nAvgBytesPerSec = wfx->nSamplesPerSec * wfx->nBlockAlign; ++ if (ss.format != PA_SAMPLE_S24_32LE) ++ fmt->Samples.wValidBitsPerSample = wfx->wBitsPerSample; ++ else ++ fmt->Samples.wValidBitsPerSample = 24; ++ if (ss.format == PA_SAMPLE_FLOAT32LE) ++ fmt->SubFormat = KSDATAFORMAT_SUBTYPE_IEEE_FLOAT; ++ else ++ fmt->SubFormat = KSDATAFORMAT_SUBTYPE_PCM; + ++ fmt->dwChannelMask = 0; ++ for (i = 0; i < map.channels; ++i) ++ switch (map.map[i]) { ++ default: FIXME("Unhandled channel %s\n", pa_channel_position_to_string(map.map[i])); break; ++ case PA_CHANNEL_POSITION_FRONT_LEFT: fmt->dwChannelMask |= SPEAKER_FRONT_LEFT; break; ++ case PA_CHANNEL_POSITION_MONO: ++ case PA_CHANNEL_POSITION_FRONT_CENTER: fmt->dwChannelMask |= SPEAKER_FRONT_CENTER; break; ++ case PA_CHANNEL_POSITION_FRONT_RIGHT: fmt->dwChannelMask |= SPEAKER_FRONT_RIGHT; break; ++ case PA_CHANNEL_POSITION_REAR_LEFT: fmt->dwChannelMask |= SPEAKER_BACK_LEFT; break; ++ case PA_CHANNEL_POSITION_REAR_CENTER: fmt->dwChannelMask |= SPEAKER_BACK_CENTER; break; ++ case PA_CHANNEL_POSITION_REAR_RIGHT: fmt->dwChannelMask |= SPEAKER_BACK_RIGHT; break; ++ case PA_CHANNEL_POSITION_LFE: fmt->dwChannelMask |= SPEAKER_LOW_FREQUENCY; break; ++ case PA_CHANNEL_POSITION_SIDE_LEFT: fmt->dwChannelMask |= SPEAKER_SIDE_LEFT; break; ++ case PA_CHANNEL_POSITION_SIDE_RIGHT: fmt->dwChannelMask |= SPEAKER_SIDE_RIGHT; break; ++ case PA_CHANNEL_POSITION_TOP_CENTER: fmt->dwChannelMask |= SPEAKER_TOP_CENTER; break; ++ case PA_CHANNEL_POSITION_TOP_FRONT_LEFT: fmt->dwChannelMask |= SPEAKER_TOP_FRONT_LEFT; break; ++ case PA_CHANNEL_POSITION_TOP_FRONT_CENTER: fmt->dwChannelMask |= SPEAKER_TOP_FRONT_CENTER; break; ++ case PA_CHANNEL_POSITION_TOP_FRONT_RIGHT: fmt->dwChannelMask |= SPEAKER_TOP_FRONT_RIGHT; break; ++ case PA_CHANNEL_POSITION_TOP_REAR_LEFT: fmt->dwChannelMask |= SPEAKER_TOP_BACK_LEFT; break; ++ case PA_CHANNEL_POSITION_TOP_REAR_CENTER: fmt->dwChannelMask |= SPEAKER_TOP_BACK_CENTER; break; ++ case PA_CHANNEL_POSITION_TOP_REAR_RIGHT: fmt->dwChannelMask |= SPEAKER_TOP_BACK_RIGHT; break; ++ } ++} + + static HRESULT pulse_connect(void) + { +@@ -199,6 +318,8 @@ static HRESULT pulse_connect(void) + TRACE("Connected to server %s with protocol version: %i.\n", + pa_context_get_server(pulse_ctx), + pa_context_get_server_protocol_version(pulse_ctx)); ++ pulse_probe_settings(1, &pulse_fmt[0]); ++ pulse_probe_settings(0, &pulse_fmt[1]); + return S_OK; + + fail: +@@ -230,6 +351,13 @@ static void pulse_contextcallback(pa_context *c, void *userdata) { + pthread_cond_signal(&pulse_cond); + } + +static void pulse_stream_state(pa_stream *s, void *user) +{ + pa_stream_state_t state = pa_stream_get_state(s); @@ -933,419 +775,532 @@ diff -uhNr wine-1.7.0/dlls/winepulse.drv/mmdevdrv.c wine-1.7.0-multimedia/dlls/w + pthread_cond_signal(&pulse_cond); +} + -+static HRESULT pulse_stream_connect(ACImpl *This, UINT32 period_bytes) { -+ int ret; -+ char buffer[64]; -+ static LONG number; -+ pa_buffer_attr attr; -+ if (This->stream) { -+ pa_stream_disconnect(This->stream); -+ while (pa_stream_get_state(This->stream) == PA_STREAM_READY) -+ pthread_cond_wait(&pulse_cond, &pulse_lock); -+ pa_stream_unref(This->stream); -+ } -+ ret = InterlockedIncrement(&number); -+ sprintf(buffer, "audio stream #%i", ret); -+ This->stream = pa_stream_new(pulse_ctx, buffer, &This->ss, &This->map); -+ pa_stream_set_state_callback(This->stream, pulse_stream_state, This); -+ pa_stream_set_buffer_attr_callback(This->stream, pulse_attr_update, This); -+ pa_stream_set_moved_callback(This->stream, pulse_attr_update, This); -+ -+ /* Pulseaudio will fill in correct values */ -+ attr.minreq = attr.fragsize = period_bytes; -+ attr.maxlength = attr.tlength = This->bufsize_bytes; -+ attr.prebuf = pa_frame_size(&This->ss); -+ dump_attr(&attr); -+ if (This->dataflow == eRender) -+ ret = pa_stream_connect_playback(This->stream, NULL, &attr, -+ PA_STREAM_START_CORKED|PA_STREAM_START_UNMUTED|PA_STREAM_AUTO_TIMING_UPDATE|PA_STREAM_INTERPOLATE_TIMING|PA_STREAM_EARLY_REQUESTS, NULL, NULL); -+ else -+ ret = pa_stream_connect_record(This->stream, NULL, &attr, -+ PA_STREAM_START_CORKED|PA_STREAM_START_UNMUTED|PA_STREAM_AUTO_TIMING_UPDATE|PA_STREAM_INTERPOLATE_TIMING|PA_STREAM_EARLY_REQUESTS); -+ if (ret < 0) { -+ WARN("Returns %i\n", ret); -+ return AUDCLNT_E_ENDPOINT_CREATE_FAILED; -+ } -+ while (pa_stream_get_state(This->stream) == PA_STREAM_CREATING) -+ pthread_cond_wait(&pulse_cond, &pulse_lock); -+ if (pa_stream_get_state(This->stream) != PA_STREAM_READY) -+ return AUDCLNT_E_ENDPOINT_CREATE_FAILED; + HRESULT WINAPI AUDDRV_GetEndpointIDs(EDataFlow flow, WCHAR ***ids, void ***keys, + UINT *num, UINT *def_index) + { +-- +1.8.3.1 + + +From 15e7e60bbac3a58698954d9f341d65db165a031b Mon Sep 17 00:00:00 2001 +From: Maarten Lankhorst +Date: Sat, 31 Aug 2013 08:36:00 +0200 +Subject: winepulse: Add audioclient + +--- +Without AudioRenderClient and AudioCaptureClient it won't work, +but it's easier to review +--- + dlls/winepulse.drv/mmdevdrv.c | 1041 ++++++++++++++++++++++++++++++++++++++++- + 1 file changed, 1040 insertions(+), 1 deletion(-) + +diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c +index 40db26d..37d85ff 100644 +--- a/dlls/winepulse.drv/mmdevdrv.c ++++ b/dlls/winepulse.drv/mmdevdrv.c +@@ -103,9 +103,55 @@ BOOL WINAPI DllMain(HINSTANCE dll, DWORD reason, void *reserved) + return TRUE; + } + ++typedef struct ACImpl ACImpl; + -+ if (This->dataflow == eRender) { -+ pa_stream_set_write_callback(This->stream, pulse_wr_callback, This); -+ pa_stream_set_underflow_callback(This->stream, pulse_underflow_callback, This); -+ pa_stream_set_started_callback(This->stream, pulse_started_callback, This); -+ } else -+ pa_stream_set_read_callback(This->stream, pulse_rd_callback, This); -+ return S_OK; -+} ++typedef struct _ACPacket { ++ struct list entry; ++ UINT64 qpcpos; ++ BYTE *data; ++ UINT32 discont; ++} ACPacket; + -+HRESULT WINAPI AUDDRV_GetEndpointIDs(EDataFlow flow, const WCHAR ***ids, GUID **keys, -+ UINT *num, UINT *def_index) -+{ -+ HRESULT hr = S_OK; -+ WCHAR *id; ++struct ACImpl { ++ IAudioClient IAudioClient_iface; ++ IAudioRenderClient IAudioRenderClient_iface; ++ IAudioCaptureClient IAudioCaptureClient_iface; ++ IAudioClock IAudioClock_iface; ++ IAudioClock2 IAudioClock2_iface; ++ IAudioStreamVolume IAudioStreamVolume_iface; ++ IMMDevice *parent; ++ struct list entry; ++ float vol[PA_CHANNELS_MAX]; + -+ TRACE("%d %p %p %p\n", flow, ids, num, def_index); ++ LONG ref; ++ EDataFlow dataflow; ++ DWORD flags; ++ AUDCLNT_SHAREMODE share; ++ HANDLE event; + -+ pthread_mutex_lock(&pulse_lock); -+ hr = pulse_connect(); -+ pthread_mutex_unlock(&pulse_lock); -+ if (FAILED(hr)) -+ return hr; -+ *num = 1; -+ *def_index = 0; ++ UINT32 bufsize_frames, bufsize_bytes, locked, capture_period, pad, started, peek_ofs; ++ void *locked_ptr, *tmp_buffer; + -+ *ids = HeapAlloc(GetProcessHeap(), 0, sizeof(**ids)); -+ *keys = NULL; -+ if (!*ids) -+ return E_OUTOFMEMORY; ++ pa_stream *stream; ++ pa_sample_spec ss; ++ pa_channel_map map; + -+ (*ids)[0] = id = HeapAlloc(GetProcessHeap(), 0, sizeof(defaultW)); -+ *keys = HeapAlloc(GetProcessHeap(), 0, sizeof(**keys)); -+ if (!*keys || !id) { -+ HeapFree(GetProcessHeap(), 0, id); -+ HeapFree(GetProcessHeap(), 0, *keys); -+ HeapFree(GetProcessHeap(), 0, *ids); -+ *ids = NULL; -+ *keys = NULL; -+ return E_OUTOFMEMORY; -+ } -+ memcpy(id, defaultW, sizeof(defaultW)); ++ INT64 clock_lastpos, clock_written; ++ pa_usec_t clock_pulse; + -+ if (flow == eRender) -+ (*keys)[0] = pulse_render_guid; -+ else -+ (*keys)[0] = pulse_capture_guid; ++ struct list packet_free_head; ++ struct list packet_filled_head; ++}; + + static const WCHAR defaultW[] = {'P','u','l','s','e','a','u','d','i','o',0}; + ++static const IAudioClientVtbl AudioClient_Vtbl; + -+ return S_OK; ++static inline ACImpl *impl_from_IAudioClient(IAudioClient *iface) ++{ ++ return CONTAINING_RECORD(iface, ACImpl, IAudioClient_iface); +} + -+int WINAPI AUDDRV_GetPriority(void) -+{ -+ HRESULT hr; -+ if (getenv("WINENOPULSE")) { -+ FIXME_(winediag)("winepulse has been temporarily disabled through the environment\n"); -+ return 0; -+ } -+ pthread_mutex_lock(&pulse_lock); -+ hr = pulse_connect(); -+ pthread_mutex_unlock(&pulse_lock); -+ return SUCCEEDED(hr) ? 3 : 0; + /* Following pulseaudio design here, mainloop has the lock taken whenever + * it is handling something for pulse, and the lock is required whenever + * doing any pa_* call that can affect the state in any way +@@ -351,6 +397,192 @@ static void pulse_contextcallback(pa_context *c, void *userdata) { + pthread_cond_signal(&pulse_cond); + } + ++static HRESULT pulse_stream_valid(ACImpl *This) { ++ if (!This->stream) ++ return AUDCLNT_E_NOT_INITIALIZED; ++ if (!This->stream || pa_stream_get_state(This->stream) != PA_STREAM_READY) ++ return AUDCLNT_E_DEVICE_INVALIDATED; ++ return S_OK; +} + -+HRESULT WINAPI AUDDRV_GetAudioEndpoint(GUID *guid, IMMDevice *dev, IAudioClient **out) -+{ -+ HRESULT hr; -+ ACImpl *This; -+ int i; -+ EDataFlow dataflow; -+ -+ /* Give one visible warning per session -+ * Sadly wine has chosen not to accept the winepulse patch, so support ourselves -+ */ -+ if (!warn_once && (warn_once = CreateEventA(0, 0, 0, "__winepulse_warn_event")) && GetLastError() != ERROR_ALREADY_EXISTS) { -+ FIXME_(winediag)("Winepulse is not officially supported by the wine project\n"); -+ FIXME_(winediag)("For sound related feedback and support, please visit http://ubuntuforums.org/showthread.php?t=1960599\n"); -+ } else { -+ WARN_(winediag)("Winepulse is not officially supported by the wine project\n"); -+ WARN_(winediag)("For sound related feedback and support, please visit http://ubuntuforums.org/showthread.php?t=1960599\n"); -+ } -+ -+ TRACE("%s %p %p\n", debugstr_guid(guid), dev, out); -+ if (IsEqualGUID(guid, &pulse_render_guid)) -+ dataflow = eRender; -+ else if (IsEqualGUID(guid, &pulse_capture_guid)) -+ dataflow = eCapture; -+ else -+ return E_UNEXPECTED; -+ -+ *out = NULL; -+ pthread_mutex_lock(&pulse_lock); -+ hr = pulse_connect(); -+ pthread_mutex_unlock(&pulse_lock); -+ if (FAILED(hr)) -+ return hr; -+ -+ This = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*This)); -+ if (!This) -+ return E_OUTOFMEMORY; -+ -+ This->IAudioClient_iface.lpVtbl = &AudioClient_Vtbl; -+ This->IAudioRenderClient_iface.lpVtbl = &AudioRenderClient_Vtbl; -+ This->IAudioCaptureClient_iface.lpVtbl = &AudioCaptureClient_Vtbl; -+ This->IAudioClock_iface.lpVtbl = &AudioClock_Vtbl; -+ This->IAudioClock2_iface.lpVtbl = &AudioClock2_Vtbl; -+ This->IAudioStreamVolume_iface.lpVtbl = &AudioStreamVolume_Vtbl; -+ This->dataflow = dataflow; -+ This->parent = dev; -+ for (i = 0; i < PA_CHANNELS_MAX; ++i) -+ This->vol[i] = 1.f; -+ -+ hr = CoCreateFreeThreadedMarshaler((IUnknown*)This, &This->marshal); -+ if (hr) { -+ HeapFree(GetProcessHeap(), 0, This); -+ return hr; -+ } -+ IMMDevice_AddRef(This->parent); ++static void dump_attr(const pa_buffer_attr *attr) { ++ TRACE("maxlength: %u\n", attr->maxlength); ++ TRACE("minreq: %u\n", attr->minreq); ++ TRACE("fragsize: %u\n", attr->fragsize); ++ TRACE("tlength: %u\n", attr->tlength); ++ TRACE("prebuf: %u\n", attr->prebuf); ++} + -+ *out = &This->IAudioClient_iface; -+ IAudioClient_AddRef(&This->IAudioClient_iface); ++static void pulse_op_cb(pa_stream *s, int success, void *user) { ++ TRACE("Success: %i\n", success); ++ *(int*)user = success; ++ pthread_cond_signal(&pulse_cond); ++} + -+ return S_OK; ++static void pulse_attr_update(pa_stream *s, void *user) { ++ const pa_buffer_attr *attr = pa_stream_get_buffer_attr(s); ++ TRACE("New attributes or device moved:\n"); ++ dump_attr(attr); +} + -+static HRESULT WINAPI AudioClient_QueryInterface(IAudioClient *iface, -+ REFIID riid, void **ppv) ++static void pulse_wr_callback(pa_stream *s, size_t bytes, void *userdata) +{ -+ ACImpl *This = impl_from_IAudioClient(iface); ++ ACImpl *This = userdata; ++ pa_usec_t time; ++ UINT32 oldpad = This->pad; + -+ TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); ++ if (bytes < This->bufsize_bytes) ++ This->pad = This->bufsize_bytes - bytes; ++ else ++ This->pad = 0; + -+ if (!ppv) -+ return E_POINTER; ++ assert(oldpad >= This->pad); + -+ *ppv = NULL; -+ if (IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IAudioClient)) -+ *ppv = iface; -+ if (*ppv) { -+ IUnknown_AddRef((IUnknown*)*ppv); -+ return S_OK; -+ } ++ if (0 && This->pad && pa_stream_get_time(This->stream, &time) >= 0) ++ This->clock_pulse = time; ++ else ++ This->clock_pulse = PA_USEC_INVALID; + -+ if (IsEqualIID(riid, &IID_IMarshal)) -+ return IUnknown_QueryInterface(This->marshal, riid, ppv); ++ This->clock_written += oldpad - This->pad; ++ TRACE("New pad: %u (-%u)\n", This->pad / pa_frame_size(&This->ss), (oldpad - This->pad) / pa_frame_size(&This->ss)); + -+ WARN("Unknown interface %s\n", debugstr_guid(riid)); -+ return E_NOINTERFACE; ++ if (This->event) ++ SetEvent(This->event); +} + -+static ULONG WINAPI AudioClient_AddRef(IAudioClient *iface) ++static void pulse_underflow_callback(pa_stream *s, void *userdata) +{ -+ ACImpl *This = impl_from_IAudioClient(iface); -+ ULONG ref; -+ ref = InterlockedIncrement(&This->ref); -+ TRACE("(%p) Refcount now %u\n", This, ref); -+ return ref; ++ ACImpl *This = userdata; ++ This->clock_pulse = PA_USEC_INVALID; ++ WARN("Underflow\n"); +} + -+static ULONG WINAPI AudioClient_Release(IAudioClient *iface) ++/* Latency is periodically updated even when nothing is played, ++ * because of PA_STREAM_AUTO_TIMING_UPDATE so use it as timer ++ * ++ * Perfect for passing all tests :) ++ */ ++static void pulse_latency_callback(pa_stream *s, void *userdata) +{ -+ ACImpl *This = impl_from_IAudioClient(iface); -+ ULONG ref; -+ ref = InterlockedDecrement(&This->ref); -+ TRACE("(%p) Refcount now %u\n", This, ref); -+ if (!ref) { -+ if (This->stream) { -+ pthread_mutex_lock(&pulse_lock); -+ if (PA_STREAM_IS_GOOD(pa_stream_get_state(This->stream))) { -+ pa_stream_disconnect(This->stream); -+ while (PA_STREAM_IS_GOOD(pa_stream_get_state(This->stream))) -+ pthread_cond_wait(&pulse_cond, &pulse_lock); -+ } -+ pa_stream_unref(This->stream); -+ This->stream = NULL; -+ list_remove(&This->entry); -+ pthread_mutex_unlock(&pulse_lock); -+ } -+ IUnknown_Release(This->marshal); -+ IMMDevice_Release(This->parent); -+ HeapFree(GetProcessHeap(), 0, This->tmp_buffer); -+ HeapFree(GetProcessHeap(), 0, This); -+ } -+ return ref; ++ ACImpl *This = userdata; ++ if (!This->pad && This->event) ++ SetEvent(This->event); +} + -+static void dump_fmt(const WAVEFORMATEX *fmt) ++static void pulse_started_callback(pa_stream *s, void *userdata) +{ -+ TRACE("wFormatTag: 0x%x (", fmt->wFormatTag); -+ switch(fmt->wFormatTag) { -+ case WAVE_FORMAT_PCM: -+ TRACE("WAVE_FORMAT_PCM"); -+ break; -+ case WAVE_FORMAT_IEEE_FLOAT: -+ TRACE("WAVE_FORMAT_IEEE_FLOAT"); -+ break; -+ case WAVE_FORMAT_EXTENSIBLE: -+ TRACE("WAVE_FORMAT_EXTENSIBLE"); -+ break; -+ default: -+ TRACE("Unknown"); -+ break; -+ } -+ TRACE(")\n"); -+ -+ TRACE("nChannels: %u\n", fmt->nChannels); -+ TRACE("nSamplesPerSec: %u\n", fmt->nSamplesPerSec); -+ TRACE("nAvgBytesPerSec: %u\n", fmt->nAvgBytesPerSec); -+ TRACE("nBlockAlign: %u\n", fmt->nBlockAlign); -+ TRACE("wBitsPerSample: %u\n", fmt->wBitsPerSample); -+ TRACE("cbSize: %u\n", fmt->cbSize); ++ ACImpl *This = userdata; ++ pa_usec_t time; + -+ if (fmt->wFormatTag == WAVE_FORMAT_EXTENSIBLE) { -+ WAVEFORMATEXTENSIBLE *fmtex = (void*)fmt; -+ TRACE("dwChannelMask: %08x\n", fmtex->dwChannelMask); -+ TRACE("Samples: %04x\n", fmtex->Samples.wReserved); -+ TRACE("SubFormat: %s\n", wine_dbgstr_guid(&fmtex->SubFormat)); -+ } ++ TRACE("(Re)started playing\n"); ++ assert(This->clock_pulse == PA_USEC_INVALID); ++ if (0 && pa_stream_get_time(This->stream, &time) >= 0) ++ This->clock_pulse = time; ++ if (This->event) ++ SetEvent(This->event); +} + -+static WAVEFORMATEX *clone_format(const WAVEFORMATEX *fmt) ++static void pulse_rd_loop(ACImpl *This, size_t bytes) +{ -+ WAVEFORMATEX *ret; -+ size_t size; -+ -+ if (fmt->wFormatTag == WAVE_FORMAT_EXTENSIBLE) -+ size = sizeof(WAVEFORMATEXTENSIBLE); -+ else -+ size = sizeof(WAVEFORMATEX); -+ -+ ret = CoTaskMemAlloc(size); -+ if (!ret) -+ return NULL; ++ while (bytes >= This->capture_period) { ++ ACPacket *p, *next; ++ LARGE_INTEGER stamp, freq; ++ BYTE *dst, *src; ++ UINT32 src_len, copy, rem = This->capture_period; ++ if (!(p = (ACPacket*)list_head(&This->packet_free_head))) { ++ p = (ACPacket*)list_head(&This->packet_filled_head); ++ if (!p->discont) { ++ next = (ACPacket*)p->entry.next; ++ next->discont = 1; ++ } else ++ p = (ACPacket*)list_tail(&This->packet_filled_head); ++ assert(This->pad == This->bufsize_bytes); ++ } else { ++ assert(This->pad < This->bufsize_bytes); ++ This->pad += This->capture_period; ++ assert(This->pad <= This->bufsize_bytes); ++ } ++ QueryPerformanceCounter(&stamp); ++ QueryPerformanceFrequency(&freq); ++ p->qpcpos = (stamp.QuadPart * (INT64)10000000) / freq.QuadPart; ++ p->discont = 0; ++ list_remove(&p->entry); ++ list_add_tail(&This->packet_filled_head, &p->entry); + -+ memcpy(ret, fmt, size); ++ dst = p->data; ++ while (rem) { ++ pa_stream_peek(This->stream, (const void**)&src, &src_len); ++ assert(src_len && src_len <= bytes); ++ assert(This->peek_ofs < src_len); ++ src += This->peek_ofs; ++ src_len -= This->peek_ofs; + -+ ret->cbSize = size - sizeof(WAVEFORMATEX); ++ copy = rem; ++ if (copy > src_len) ++ copy = src_len; ++ memcpy(dst, src, rem); ++ src += copy; ++ src_len -= copy; ++ dst += copy; ++ rem -= copy; + -+ return ret; ++ if (!src_len) { ++ This->peek_ofs = 0; ++ pa_stream_drop(This->stream); ++ } else ++ This->peek_ofs += copy; ++ } ++ bytes -= This->capture_period; ++ } +} + -+static DWORD get_channel_mask(unsigned int channels) ++static void pulse_rd_drop(ACImpl *This, size_t bytes) +{ -+ switch(channels) { -+ case 0: -+ return 0; -+ case 1: -+ return SPEAKER_FRONT_CENTER; -+ case 2: -+ return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT; -+ case 3: -+ return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | -+ SPEAKER_LOW_FREQUENCY; -+ case 4: -+ return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT | -+ SPEAKER_BACK_RIGHT; -+ case 5: -+ return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT | -+ SPEAKER_BACK_RIGHT | SPEAKER_LOW_FREQUENCY; -+ case 6: -+ return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT | -+ SPEAKER_BACK_RIGHT | SPEAKER_LOW_FREQUENCY | SPEAKER_FRONT_CENTER; -+ case 7: -+ return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT | -+ SPEAKER_BACK_RIGHT | SPEAKER_LOW_FREQUENCY | SPEAKER_FRONT_CENTER | -+ SPEAKER_BACK_CENTER; -+ case 8: -+ return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT | -+ SPEAKER_BACK_RIGHT | SPEAKER_LOW_FREQUENCY | SPEAKER_FRONT_CENTER | -+ SPEAKER_SIDE_LEFT | SPEAKER_SIDE_RIGHT; ++ while (bytes >= This->capture_period) { ++ UINT32 src_len, copy, rem = This->capture_period; ++ while (rem) { ++ const void *src; ++ pa_stream_peek(This->stream, &src, &src_len); ++ assert(src_len && src_len <= bytes); ++ assert(This->peek_ofs < src_len); ++ src_len -= This->peek_ofs; ++ ++ copy = rem; ++ if (copy > src_len) ++ copy = src_len; ++ ++ src_len -= copy; ++ rem -= copy; ++ ++ if (!src_len) { ++ This->peek_ofs = 0; ++ pa_stream_drop(This->stream); ++ } else ++ This->peek_ofs += copy; ++ bytes -= copy; ++ } + } -+ FIXME("Unknown speaker configuration: %u\n", channels); -+ return 0; +} + -+static void session_init_vols(AudioSession *session, UINT channels) ++static void pulse_rd_callback(pa_stream *s, size_t bytes, void *userdata) +{ -+ if (session->channel_count < channels) { -+ UINT i; ++ ACImpl *This = userdata; + -+ if (session->channel_vols) -+ session->channel_vols = HeapReAlloc(GetProcessHeap(), 0, -+ session->channel_vols, sizeof(float) * channels); -+ else -+ session->channel_vols = HeapAlloc(GetProcessHeap(), 0, -+ sizeof(float) * channels); -+ if (!session->channel_vols) -+ return; ++ TRACE("Readable total: %u, fragsize: %u\n", bytes, pa_stream_get_buffer_attr(s)->fragsize); ++ assert(bytes >= This->peek_ofs); ++ bytes -= This->peek_ofs; ++ if (bytes < This->capture_period) ++ return; + -+ for(i = session->channel_count; i < channels; ++i) -+ session->channel_vols[i] = 1.f; ++ if (This->started) ++ pulse_rd_loop(This, bytes); ++ else ++ pulse_rd_drop(This, bytes); + -+ session->channel_count = channels; -+ } ++ if (This->event) ++ SetEvent(This->event); +} + -+static AudioSession *create_session(const GUID *guid, IMMDevice *device, -+ UINT num_channels) -+{ -+ AudioSession *ret; + static void pulse_stream_state(pa_stream *s, void *user) + { + pa_stream_state_t state = pa_stream_get_state(s); +@@ -358,6 +590,53 @@ static void pulse_stream_state(pa_stream *s, void *user) + pthread_cond_signal(&pulse_cond); + } + ++static HRESULT pulse_stream_connect(ACImpl *This, UINT32 period_bytes) { ++ int ret; ++ char buffer[64]; ++ static LONG number; ++ pa_buffer_attr attr; ++ if (This->stream) { ++ pa_stream_disconnect(This->stream); ++ while (pa_stream_get_state(This->stream) == PA_STREAM_READY) ++ pthread_cond_wait(&pulse_cond, &pulse_lock); ++ pa_stream_unref(This->stream); ++ } ++ ret = InterlockedIncrement(&number); ++ sprintf(buffer, "audio stream #%i", ret); ++ This->stream = pa_stream_new(pulse_ctx, buffer, &This->ss, &This->map); ++ pa_stream_set_state_callback(This->stream, pulse_stream_state, This); ++ pa_stream_set_buffer_attr_callback(This->stream, pulse_attr_update, This); ++ pa_stream_set_moved_callback(This->stream, pulse_attr_update, This); + -+ ret = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(AudioSession)); -+ if (!ret) -+ return NULL; ++ /* Pulseaudio will fill in correct values */ ++ attr.minreq = attr.fragsize = period_bytes; ++ attr.maxlength = attr.tlength = This->bufsize_bytes; ++ attr.prebuf = pa_frame_size(&This->ss); ++ dump_attr(&attr); ++ if (This->dataflow == eRender) ++ ret = pa_stream_connect_playback(This->stream, NULL, &attr, ++ PA_STREAM_START_CORKED|PA_STREAM_START_UNMUTED|PA_STREAM_AUTO_TIMING_UPDATE|PA_STREAM_INTERPOLATE_TIMING|PA_STREAM_EARLY_REQUESTS, NULL, NULL); ++ else ++ ret = pa_stream_connect_record(This->stream, NULL, &attr, ++ PA_STREAM_START_CORKED|PA_STREAM_START_UNMUTED|PA_STREAM_AUTO_TIMING_UPDATE|PA_STREAM_INTERPOLATE_TIMING|PA_STREAM_EARLY_REQUESTS); ++ if (ret < 0) { ++ WARN("Returns %i\n", ret); ++ return AUDCLNT_E_ENDPOINT_CREATE_FAILED; ++ } ++ while (pa_stream_get_state(This->stream) == PA_STREAM_CREATING) ++ pthread_cond_wait(&pulse_cond, &pulse_lock); ++ if (pa_stream_get_state(This->stream) != PA_STREAM_READY) ++ return AUDCLNT_E_ENDPOINT_CREATE_FAILED; + -+ memcpy(&ret->guid, guid, sizeof(GUID)); ++ if (This->dataflow == eRender) { ++ pa_stream_set_write_callback(This->stream, pulse_wr_callback, This); ++ pa_stream_set_underflow_callback(This->stream, pulse_underflow_callback, This); ++ pa_stream_set_started_callback(This->stream, pulse_started_callback, This); ++ } else ++ pa_stream_set_read_callback(This->stream, pulse_rd_callback, This); ++ return S_OK; ++} + -+ ret->device = device; + HRESULT WINAPI AUDDRV_GetEndpointIDs(EDataFlow flow, WCHAR ***ids, void ***keys, + UINT *num, UINT *def_index) + { +@@ -402,14 +681,774 @@ int WINAPI AUDDRV_GetPriority(void) + HRESULT WINAPI AUDDRV_GetAudioEndpoint(void *key, IMMDevice *dev, + EDataFlow dataflow, IAudioClient **out) + { ++ HRESULT hr; ++ ACImpl *This; ++ int i; + -+ list_init(&ret->clients); + TRACE("%p %p %d %p\n", key, dev, dataflow, out); + if (dataflow != eRender && dataflow != eCapture) + return E_UNEXPECTED; + + *out = NULL; +- return E_NOTIMPL; ++ pthread_mutex_lock(&pulse_lock); ++ hr = pulse_connect(); ++ pthread_mutex_unlock(&pulse_lock); ++ if (FAILED(hr)) ++ return hr; + -+ list_add_head(&g_sessions, &ret->entry); ++ This = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*This)); ++ if (!This) ++ return E_OUTOFMEMORY; + -+ session_init_vols(ret, num_channels); ++ This->IAudioClient_iface.lpVtbl = &AudioClient_Vtbl; ++ This->dataflow = dataflow; ++ This->parent = dev; ++ This->clock_pulse = PA_USEC_INVALID; ++ for (i = 0; i < PA_CHANNELS_MAX; ++i) ++ This->vol[i] = 1.f; ++ IMMDevice_AddRef(This->parent); + -+ ret->master_vol = 1.f; ++ *out = &This->IAudioClient_iface; ++ IAudioClient_AddRef(&This->IAudioClient_iface); + -+ return ret; ++ return S_OK; +} + -+/* if channels == 0, then this will return or create a session with -+ * matching dataflow and GUID. otherwise, channels must also match */ -+static HRESULT get_audio_session(const GUID *sessionguid, -+ IMMDevice *device, UINT channels, AudioSession **out) ++static HRESULT WINAPI AudioClient_QueryInterface(IAudioClient *iface, ++ REFIID riid, void **ppv) +{ -+ AudioSession *session; -+ -+ if (!sessionguid || IsEqualGUID(sessionguid, &GUID_NULL)) { -+ *out = create_session(&GUID_NULL, device, channels); -+ if (!*out) -+ return E_OUTOFMEMORY; ++ TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); + ++ if (!ppv) ++ return E_POINTER; ++ *ppv = NULL; ++ if (IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IAudioClient)) ++ *ppv = iface; ++ if (*ppv) { ++ IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; + } ++ WARN("Unknown interface %s\n", debugstr_guid(riid)); ++ return E_NOINTERFACE; ++} + -+ *out = NULL; -+ LIST_FOR_EACH_ENTRY(session, &g_sessions, AudioSession, entry) { -+ if (session->device == device && -+ IsEqualGUID(sessionguid, &session->guid)) { -+ session_init_vols(session, channels); -+ *out = session; -+ break; -+ } -+ } ++static ULONG WINAPI AudioClient_AddRef(IAudioClient *iface) ++{ ++ ACImpl *This = impl_from_IAudioClient(iface); ++ ULONG ref; ++ ref = InterlockedIncrement(&This->ref); ++ TRACE("(%p) Refcount now %u\n", This, ref); ++ return ref; ++} + -+ if (!*out) { -+ *out = create_session(sessionguid, device, channels); -+ if (!*out) -+ return E_OUTOFMEMORY; ++static ULONG WINAPI AudioClient_Release(IAudioClient *iface) ++{ ++ ACImpl *This = impl_from_IAudioClient(iface); ++ ULONG ref; ++ ref = InterlockedDecrement(&This->ref); ++ TRACE("(%p) Refcount now %u\n", This, ref); ++ if (!ref) { ++ if (This->stream) { ++ pthread_mutex_lock(&pulse_lock); ++ if (PA_STREAM_IS_GOOD(pa_stream_get_state(This->stream))) { ++ pa_stream_disconnect(This->stream); ++ while (PA_STREAM_IS_GOOD(pa_stream_get_state(This->stream))) ++ pthread_cond_wait(&pulse_cond, &pulse_lock); ++ } ++ pa_stream_unref(This->stream); ++ This->stream = NULL; ++ list_remove(&This->entry); ++ pthread_mutex_unlock(&pulse_lock); ++ } ++ IMMDevice_Release(This->parent); ++ HeapFree(GetProcessHeap(), 0, This->tmp_buffer); ++ HeapFree(GetProcessHeap(), 0, This); + } -+ -+ return S_OK; ++ return ref; +} + -+static HRESULT pulse_spec_from_waveformat(ACImpl *This, const WAVEFORMATEX *fmt) ++static void dump_fmt(const WAVEFORMATEX *fmt) +{ -+ pa_channel_map_init(&This->map); -+ This->ss.rate = fmt->nSamplesPerSec; -+ This->ss.format = PA_SAMPLE_INVALID; ++ TRACE("wFormatTag: 0x%x (", fmt->wFormatTag); + switch(fmt->wFormatTag) { ++ case WAVE_FORMAT_PCM: ++ TRACE("WAVE_FORMAT_PCM"); ++ break; + case WAVE_FORMAT_IEEE_FLOAT: -+ if (!fmt->nChannels || fmt->nChannels > 2 || fmt->wBitsPerSample != 32) -+ break; -+ This->ss.format = PA_SAMPLE_FLOAT32LE; -+ pa_channel_map_init_auto(&This->map, fmt->nChannels, PA_CHANNEL_MAP_ALSA); ++ TRACE("WAVE_FORMAT_IEEE_FLOAT"); + break; -+ case WAVE_FORMAT_PCM: -+ if (!fmt->nChannels || fmt->nChannels > 2) -+ break; -+ if (fmt->wBitsPerSample == 8) -+ This->ss.format = PA_SAMPLE_U8; -+ else if (fmt->wBitsPerSample == 16) -+ This->ss.format = PA_SAMPLE_S16LE; -+ else -+ return AUDCLNT_E_UNSUPPORTED_FORMAT; -+ pa_channel_map_init_auto(&This->map, fmt->nChannels, PA_CHANNEL_MAP_ALSA); ++ case WAVE_FORMAT_EXTENSIBLE: ++ TRACE("WAVE_FORMAT_EXTENSIBLE"); ++ break; ++ default: ++ TRACE("Unknown"); ++ break; ++ } ++ TRACE(")\n"); ++ ++ TRACE("nChannels: %u\n", fmt->nChannels); ++ TRACE("nSamplesPerSec: %u\n", fmt->nSamplesPerSec); ++ TRACE("nAvgBytesPerSec: %u\n", fmt->nAvgBytesPerSec); ++ TRACE("nBlockAlign: %u\n", fmt->nBlockAlign); ++ TRACE("wBitsPerSample: %u\n", fmt->wBitsPerSample); ++ TRACE("cbSize: %u\n", fmt->cbSize); ++ ++ if (fmt->wFormatTag == WAVE_FORMAT_EXTENSIBLE) { ++ WAVEFORMATEXTENSIBLE *fmtex = (void*)fmt; ++ TRACE("dwChannelMask: %08x\n", fmtex->dwChannelMask); ++ TRACE("Samples: %04x\n", fmtex->Samples.wReserved); ++ TRACE("SubFormat: %s\n", wine_dbgstr_guid(&fmtex->SubFormat)); ++ } ++} ++ ++static WAVEFORMATEX *clone_format(const WAVEFORMATEX *fmt) ++{ ++ WAVEFORMATEX *ret; ++ size_t size; ++ ++ if (fmt->wFormatTag == WAVE_FORMAT_EXTENSIBLE) ++ size = sizeof(WAVEFORMATEXTENSIBLE); ++ else ++ size = sizeof(WAVEFORMATEX); ++ ++ ret = CoTaskMemAlloc(size); ++ if (!ret) ++ return NULL; ++ ++ memcpy(ret, fmt, size); ++ ++ ret->cbSize = size - sizeof(WAVEFORMATEX); ++ ++ return ret; ++} ++ ++static DWORD get_channel_mask(unsigned int channels) ++{ ++ switch(channels) { ++ case 0: ++ return 0; ++ case 1: ++ return SPEAKER_FRONT_CENTER; ++ case 2: ++ return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT; ++ case 3: ++ return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | ++ SPEAKER_LOW_FREQUENCY; ++ case 4: ++ return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT | ++ SPEAKER_BACK_RIGHT; ++ case 5: ++ return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT | ++ SPEAKER_BACK_RIGHT | SPEAKER_LOW_FREQUENCY; ++ case 6: ++ return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT | ++ SPEAKER_BACK_RIGHT | SPEAKER_LOW_FREQUENCY | SPEAKER_FRONT_CENTER; ++ case 7: ++ return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT | ++ SPEAKER_BACK_RIGHT | SPEAKER_LOW_FREQUENCY | SPEAKER_FRONT_CENTER | ++ SPEAKER_BACK_CENTER; ++ case 8: ++ return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT | ++ SPEAKER_BACK_RIGHT | SPEAKER_LOW_FREQUENCY | SPEAKER_FRONT_CENTER | ++ SPEAKER_SIDE_LEFT | SPEAKER_SIDE_RIGHT; ++ } ++ FIXME("Unknown speaker configuration: %u\n", channels); ++ return 0; ++} ++ ++static HRESULT pulse_spec_from_waveformat(ACImpl *This, const WAVEFORMATEX *fmt) ++{ ++ pa_channel_map_init(&This->map); ++ This->ss.rate = fmt->nSamplesPerSec; ++ This->ss.format = PA_SAMPLE_INVALID; ++ switch(fmt->wFormatTag) { ++ case WAVE_FORMAT_IEEE_FLOAT: ++ if (!fmt->nChannels || fmt->nChannels > 2 || fmt->wBitsPerSample != 32) ++ break; ++ This->ss.format = PA_SAMPLE_FLOAT32LE; ++ pa_channel_map_init_auto(&This->map, fmt->nChannels, PA_CHANNEL_MAP_ALSA); ++ break; ++ case WAVE_FORMAT_PCM: ++ if (!fmt->nChannels || fmt->nChannels > 2) ++ break; ++ if (fmt->wBitsPerSample == 8) ++ This->ss.format = PA_SAMPLE_U8; ++ else if (fmt->wBitsPerSample == 16) ++ This->ss.format = PA_SAMPLE_S16LE; ++ pa_channel_map_init_auto(&This->map, fmt->nChannels, PA_CHANNEL_MAP_ALSA); + break; + case WAVE_FORMAT_EXTENSIBLE: { + WAVEFORMATEXTENSIBLE *wfe = (WAVEFORMATEXTENSIBLE*)fmt; @@ -1381,13 +1336,12 @@ diff -uhNr wine-1.7.0/dlls/winepulse.drv/mmdevdrv.c wine-1.7.0-multimedia/dlls/w + This->ss.format = PA_SAMPLE_S24_32LE; + else if (valid == 32) + This->ss.format = PA_SAMPLE_S32LE; -+ break; + default: -+ return AUDCLNT_E_UNSUPPORTED_FORMAT; ++ break; + } + } + This->map.channels = fmt->nChannels; -+ if (!mask || (mask & (SPEAKER_ALL|SPEAKER_RESERVED))) ++ if (!mask) + mask = get_channel_mask(fmt->nChannels); + for (j = 0; j < sizeof(pulse_pos_from_wfx)/sizeof(*pulse_pos_from_wfx) && i < fmt->nChannels; ++j) { + if (mask & (1 << j)) @@ -1398,29 +1352,19 @@ diff -uhNr wine-1.7.0/dlls/winepulse.drv/mmdevdrv.c wine-1.7.0-multimedia/dlls/w + if (mask == SPEAKER_FRONT_CENTER) + This->map.map[0] = PA_CHANNEL_POSITION_MONO; + ++ if ((mask & SPEAKER_ALL) && i < fmt->nChannels) { ++ This->map.map[i++] = PA_CHANNEL_POSITION_MONO; ++ FIXME("Is the 'all' channel mapped correctly?\n"); ++ } ++ + if (i < fmt->nChannels || (mask & SPEAKER_RESERVED)) { + This->map.channels = 0; -+ ERR("Invalid channel mask: %i/%i and %x(%x)\n", i, fmt->nChannels, mask, wfe->dwChannelMask); ++ ERR("Invalid channel mask: %i/%i and %x\n", i, fmt->nChannels, mask); + break; + } + break; + } -+ case WAVE_FORMAT_ALAW: -+ case WAVE_FORMAT_MULAW: -+ if (fmt->wBitsPerSample != 8) { -+ FIXME("Unsupported bpp %u for LAW\n", fmt->wBitsPerSample); -+ return AUDCLNT_E_UNSUPPORTED_FORMAT; -+ } -+ if (fmt->nChannels != 1 && fmt->nChannels != 2) { -+ FIXME("Unsupported channels %u for LAW\n", fmt->nChannels); -+ return AUDCLNT_E_UNSUPPORTED_FORMAT; -+ } -+ This->ss.format = fmt->wFormatTag == WAVE_FORMAT_MULAW ? PA_SAMPLE_ULAW : PA_SAMPLE_ALAW; -+ pa_channel_map_init_auto(&This->map, fmt->nChannels, PA_CHANNEL_MAP_ALSA); -+ break; -+ default: -+ WARN("Unhandled tag %x\n", fmt->wFormatTag); -+ return AUDCLNT_E_UNSUPPORTED_FORMAT; ++ default: FIXME("Unhandled tag %x\n", fmt->wFormatTag); + } + This->ss.channels = This->map.channels; + if (!pa_channel_map_valid(&This->map) || This->ss.format == PA_SAMPLE_INVALID) { @@ -1429,8 +1373,8 @@ diff -uhNr wine-1.7.0/dlls/winepulse.drv/mmdevdrv.c wine-1.7.0-multimedia/dlls/w + return AUDCLNT_E_UNSUPPORTED_FORMAT; + } + return S_OK; -+} -+ + } + +static HRESULT WINAPI AudioClient_Initialize(IAudioClient *iface, + AUDCLNT_SHAREMODE mode, DWORD flags, REFERENCE_TIME duration, + REFERENCE_TIME period, const WAVEFORMATEX *fmt, @@ -1474,25 +1418,9 @@ diff -uhNr wine-1.7.0/dlls/winepulse.drv/mmdevdrv.c wine-1.7.0-multimedia/dlls/w + goto exit; + + if (mode == AUDCLNT_SHAREMODE_SHARED) { -+ REFERENCE_TIME def = pulse_def_period[This->dataflow == eCapture]; -+ REFERENCE_TIME min = pulse_min_period[This->dataflow == eCapture]; -+ -+ /* Switch to low latency mode if below 2 default periods, -+ * which is 20 ms by default, this will increase the amount -+ * of interrupts but allows very low latency. In dsound I -+ * managed to get a total latency of ~8ms, which is well below -+ * default -+ */ -+ if (duration < 2 * def) -+ period = min; -+ else -+ period = def; ++ period = pulse_def_period[This->dataflow == eCapture]; + if (duration < 2 * period) + duration = 2 * period; -+ -+ /* Uh oh, really low latency requested.. */ -+ if (duration <= 2 * period) -+ period /= 2; + } + period_bytes = pa_frame_size(&This->ss) * MulDiv(period, This->ss.rate, 10000000); + @@ -1539,10 +1467,6 @@ diff -uhNr wine-1.7.0/dlls/winepulse.drv/mmdevdrv.c wine-1.7.0-multimedia/dlls/w + assert(!capture_packets || data - This->bufsize_bytes == This->tmp_buffer); + } + } -+ if (SUCCEEDED(hr)) -+ hr = get_audio_session(sessionguid, This->parent, fmt->nChannels, &This->session); -+ if (SUCCEEDED(hr)) -+ list_add_tail(&This->session->clients, &This->entry); + +exit: + if (FAILED(hr)) { @@ -1662,184 +1586,76 @@ diff -uhNr wine-1.7.0/dlls/winepulse.drv/mmdevdrv.c wine-1.7.0-multimedia/dlls/w + ACImpl *This = impl_from_IAudioClient(iface); + HRESULT hr = S_OK; + WAVEFORMATEX *closest = NULL; -+ BOOL exclusive; + + TRACE("(%p)->(%x, %p, %p)\n", This, mode, fmt, out); + -+ if (!fmt) ++ if (!fmt || (mode == AUDCLNT_SHAREMODE_SHARED && !out)) + return E_POINTER; + + if (out) + *out = NULL; -+ -+ if (mode == AUDCLNT_SHAREMODE_EXCLUSIVE) { -+ exclusive = 1; -+ out = NULL; -+ } else if (mode == AUDCLNT_SHAREMODE_SHARED) { -+ exclusive = 0; -+ if (!out) -+ return E_POINTER; -+ } else ++ if (mode != AUDCLNT_SHAREMODE_SHARED && mode != AUDCLNT_SHAREMODE_EXCLUSIVE) ++ return E_INVALIDARG; ++ if (mode == AUDCLNT_SHAREMODE_EXCLUSIVE) ++ return This->dataflow == eCapture ? AUDCLNT_E_UNSUPPORTED_FORMAT : AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED; ++ if (fmt->wFormatTag == WAVE_FORMAT_EXTENSIBLE && ++ fmt->cbSize < sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX)) + return E_INVALIDARG; + -+ if (fmt->nChannels == 0) -+ return AUDCLNT_E_UNSUPPORTED_FORMAT; ++ dump_fmt(fmt); + + closest = clone_format(fmt); + if (!closest) -+ return E_OUTOFMEMORY; ++ hr = E_OUTOFMEMORY; + -+ dump_fmt(fmt); ++ if (hr == S_OK || !out) { ++ CoTaskMemFree(closest); ++ if (out) ++ *out = NULL; ++ } else if (closest) { ++ closest->nBlockAlign = ++ closest->nChannels * closest->wBitsPerSample / 8; ++ closest->nAvgBytesPerSec = ++ closest->nBlockAlign * closest->nSamplesPerSec; ++ *out = closest; ++ } + -+ switch (fmt->wFormatTag) { -+ case WAVE_FORMAT_EXTENSIBLE: { -+ WAVEFORMATEXTENSIBLE *ext = (WAVEFORMATEXTENSIBLE*)closest; ++ TRACE("returning: %08x %p\n", hr, out ? *out : NULL); ++ return hr; ++} + -+ if ((fmt->cbSize != sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX) && -+ fmt->cbSize != sizeof(WAVEFORMATEXTENSIBLE)) || -+ fmt->nBlockAlign != fmt->wBitsPerSample / 8 * fmt->nChannels || -+ ext->Samples.wValidBitsPerSample > fmt->wBitsPerSample || -+ fmt->nAvgBytesPerSec != fmt->nBlockAlign * fmt->nSamplesPerSec) { -+ hr = E_INVALIDARG; -+ break; -+ } ++static HRESULT WINAPI AudioClient_GetMixFormat(IAudioClient *iface, ++ WAVEFORMATEX **pwfx) ++{ ++ ACImpl *This = impl_from_IAudioClient(iface); ++ WAVEFORMATEXTENSIBLE *fmt = &pulse_fmt[This->dataflow == eCapture]; + -+ if (exclusive) { -+ UINT32 mask = 0, i, channels = 0; ++ TRACE("(%p)->(%p)\n", This, pwfx); + -+ if (!(ext->dwChannelMask & (SPEAKER_ALL | SPEAKER_RESERVED))) { -+ for (i = 1; !(i & SPEAKER_RESERVED); i <<= 1) { -+ if (i & ext->dwChannelMask) { -+ mask |= i; -+ channels++; -+ } -+ } ++ if (!pwfx) ++ return E_POINTER; + -+ if (channels != fmt->nChannels || (ext->dwChannelMask & ~mask)) { -+ hr = AUDCLNT_E_UNSUPPORTED_FORMAT; -+ break; -+ } -+ } else { -+ hr = AUDCLNT_E_UNSUPPORTED_FORMAT; -+ break; -+ } -+ } ++ *pwfx = clone_format(&fmt->Format); ++ if (!*pwfx) ++ return E_OUTOFMEMORY; ++ dump_fmt(*pwfx); ++ return S_OK; ++} + -+ if (IsEqualGUID(&ext->SubFormat, &KSDATAFORMAT_SUBTYPE_IEEE_FLOAT)) { -+ if (fmt->wBitsPerSample != 32) { -+ hr = E_INVALIDARG; -+ break; -+ } ++static HRESULT WINAPI AudioClient_GetDevicePeriod(IAudioClient *iface, ++ REFERENCE_TIME *defperiod, REFERENCE_TIME *minperiod) ++{ ++ ACImpl *This = impl_from_IAudioClient(iface); + -+ if (ext->Samples.wValidBitsPerSample != fmt->wBitsPerSample) { -+ hr = S_FALSE; -+ ext->Samples.wValidBitsPerSample = fmt->wBitsPerSample; -+ } -+ } else if (IsEqualGUID(&ext->SubFormat, &KSDATAFORMAT_SUBTYPE_PCM)) { -+ if (!fmt->wBitsPerSample || fmt->wBitsPerSample > 32 || fmt->wBitsPerSample % 8) { -+ hr = E_INVALIDARG; -+ break; -+ } ++ TRACE("(%p)->(%p, %p)\n", This, defperiod, minperiod); + -+ if (ext->Samples.wValidBitsPerSample != fmt->wBitsPerSample && -+ !(fmt->wBitsPerSample == 32 && -+ ext->Samples.wValidBitsPerSample == 24)) { -+ hr = S_FALSE; -+ ext->Samples.wValidBitsPerSample = fmt->wBitsPerSample; -+ break; -+ } -+ } else { -+ hr = AUDCLNT_E_UNSUPPORTED_FORMAT; -+ break; -+ } ++ if (!defperiod && !minperiod) ++ return E_POINTER; + -+ break; -+ } -+ -+ case WAVE_FORMAT_ALAW: -+ case WAVE_FORMAT_MULAW: -+ if (fmt->wBitsPerSample != 8) { -+ hr = E_INVALIDARG; -+ break; -+ } -+ /* Fall-through */ -+ case WAVE_FORMAT_IEEE_FLOAT: -+ if (fmt->wFormatTag == WAVE_FORMAT_IEEE_FLOAT && fmt->wBitsPerSample != 32) { -+ hr = E_INVALIDARG; -+ break; -+ } -+ /* Fall-through */ -+ case WAVE_FORMAT_PCM: -+ if (fmt->wFormatTag == WAVE_FORMAT_PCM && -+ (!fmt->wBitsPerSample || fmt->wBitsPerSample > 32 || fmt->wBitsPerSample % 8)) { -+ hr = E_INVALIDARG; -+ break; -+ } -+ -+ if (fmt->nChannels > 2) { -+ hr = AUDCLNT_E_UNSUPPORTED_FORMAT; -+ break; -+ } -+ /* -+ * fmt->cbSize, fmt->nBlockAlign and fmt->nAvgBytesPerSec seem to be -+ * ignored, invalid values are happily accepted. -+ */ -+ break; -+ default: -+ hr = AUDCLNT_E_UNSUPPORTED_FORMAT; -+ break; -+ } -+ -+ if (exclusive && hr != S_OK) { -+ hr = AUDCLNT_E_UNSUPPORTED_FORMAT; -+ CoTaskMemFree(closest); -+ } else if (hr != S_FALSE) -+ CoTaskMemFree(closest); -+ else -+ *out = closest; -+ -+ /* Winepulse does not currently support exclusive mode, if you know of an -+ * application that uses it, I will correct this.. -+ */ -+ if (hr == S_OK && exclusive) -+ return This->dataflow == eCapture ? AUDCLNT_E_UNSUPPORTED_FORMAT : AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED; -+ -+ TRACE("returning: %08x %p\n", hr, out ? *out : NULL); -+ return hr; -+} -+ -+static HRESULT WINAPI AudioClient_GetMixFormat(IAudioClient *iface, -+ WAVEFORMATEX **pwfx) -+{ -+ ACImpl *This = impl_from_IAudioClient(iface); -+ WAVEFORMATEXTENSIBLE *fmt = &pulse_fmt[This->dataflow == eCapture]; -+ -+ TRACE("(%p)->(%p)\n", This, pwfx); -+ -+ if (!pwfx) -+ return E_POINTER; -+ -+ *pwfx = clone_format(&fmt->Format); -+ if (!*pwfx) -+ return E_OUTOFMEMORY; -+ dump_fmt(*pwfx); -+ return S_OK; -+} -+ -+static HRESULT WINAPI AudioClient_GetDevicePeriod(IAudioClient *iface, -+ REFERENCE_TIME *defperiod, REFERENCE_TIME *minperiod) -+{ -+ ACImpl *This = impl_from_IAudioClient(iface); -+ -+ TRACE("(%p)->(%p, %p)\n", This, defperiod, minperiod); -+ -+ if (!defperiod && !minperiod) -+ return E_POINTER; -+ -+ if (defperiod) -+ *defperiod = pulse_def_period[This->dataflow == eCapture]; -+ if (minperiod) -+ *minperiod = pulse_min_period[This->dataflow == eCapture]; ++ if (defperiod) ++ *defperiod = pulse_def_period[This->dataflow == eCapture]; ++ if (minperiod) ++ *minperiod = pulse_min_period[This->dataflow == eCapture]; + + return S_OK; +} @@ -1869,6 +1685,7 @@ diff -uhNr wine-1.7.0/dlls/winepulse.drv/mmdevdrv.c wine-1.7.0-multimedia/dlls/w + pthread_mutex_unlock(&pulse_lock); + return AUDCLNT_E_NOT_STOPPED; + } ++ This->clock_pulse = PA_USEC_INVALID; + + if (pa_stream_is_corked(This->stream)) { + o = pa_stream_cork(This->stream, 0, pulse_op_cb, &success); @@ -1924,6 +1741,7 @@ diff -uhNr wine-1.7.0/dlls/winepulse.drv/mmdevdrv.c wine-1.7.0-multimedia/dlls/w + } + if (SUCCEEDED(hr)) { + This->started = FALSE; ++ This->clock_pulse = PA_USEC_INVALID; + } + pthread_mutex_unlock(&pulse_lock); + return hr; @@ -2028,34 +1846,6 @@ diff -uhNr wine-1.7.0/dlls/winepulse.drv/mmdevdrv.c wine-1.7.0-multimedia/dlls/w + if (FAILED(hr)) + return hr; + -+ if (IsEqualIID(riid, &IID_IAudioRenderClient)) { -+ if (This->dataflow != eRender) -+ return AUDCLNT_E_WRONG_ENDPOINT_TYPE; -+ *ppv = &This->IAudioRenderClient_iface; -+ } else if (IsEqualIID(riid, &IID_IAudioCaptureClient)) { -+ if (This->dataflow != eCapture) -+ return AUDCLNT_E_WRONG_ENDPOINT_TYPE; -+ *ppv = &This->IAudioCaptureClient_iface; -+ } else if (IsEqualIID(riid, &IID_IAudioClock)) { -+ *ppv = &This->IAudioClock_iface; -+ } else if (IsEqualIID(riid, &IID_IAudioStreamVolume)) { -+ *ppv = &This->IAudioStreamVolume_iface; -+ } else if (IsEqualIID(riid, &IID_IAudioSessionControl) || -+ IsEqualIID(riid, &IID_IChannelAudioVolume) || -+ IsEqualIID(riid, &IID_ISimpleAudioVolume)) { -+ if (!This->session_wrapper) { -+ This->session_wrapper = AudioSessionWrapper_Create(This); -+ if (!This->session_wrapper) -+ return E_OUTOFMEMORY; -+ } -+ if (IsEqualIID(riid, &IID_IAudioSessionControl)) -+ *ppv = &This->session_wrapper->IAudioSessionControl2_iface; -+ else if (IsEqualIID(riid, &IID_IChannelAudioVolume)) -+ *ppv = &This->session_wrapper->IChannelAudioVolume_iface; -+ else if (IsEqualIID(riid, &IID_ISimpleAudioVolume)) -+ *ppv = &This->session_wrapper->ISimpleAudioVolume_iface; -+ } -+ + if (*ppv) { + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; @@ -2084,10 +1874,90 @@ diff -uhNr wine-1.7.0/dlls/winepulse.drv/mmdevdrv.c wine-1.7.0-multimedia/dlls/w + AudioClient_GetService +}; + + HRESULT WINAPI AUDDRV_GetAudioSessionManager(IMMDevice *device, + IAudioSessionManager2 **out) + { +-- +1.8.3.1 + + +From 661173dce9c098337555fddb2400c9467b938ae7 Mon Sep 17 00:00:00 2001 +From: Maarten Lankhorst +Date: Sat, 31 Aug 2013 08:36:00 +0200 +Subject: winepulse: Add IAudioRenderClient and IAudioCaptureClient + +--- + dlls/winepulse.drv/mmdevdrv.c | 301 ++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 301 insertions(+) + +diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c +index 37d85ff..01cfd25 100644 +--- a/dlls/winepulse.drv/mmdevdrv.c ++++ b/dlls/winepulse.drv/mmdevdrv.c +@@ -146,12 +146,27 @@ struct ACImpl { + static const WCHAR defaultW[] = {'P','u','l','s','e','a','u','d','i','o',0}; + + static const IAudioClientVtbl AudioClient_Vtbl; ++static const IAudioRenderClientVtbl AudioRenderClient_Vtbl; ++static const IAudioCaptureClientVtbl AudioCaptureClient_Vtbl; ++static const IAudioClockVtbl AudioClock_Vtbl; ++static const IAudioClock2Vtbl AudioClock2_Vtbl; ++static const IAudioStreamVolumeVtbl AudioStreamVolume_Vtbl; + + static inline ACImpl *impl_from_IAudioClient(IAudioClient *iface) + { + return CONTAINING_RECORD(iface, ACImpl, IAudioClient_iface); + } + ++static inline ACImpl *impl_from_IAudioRenderClient(IAudioRenderClient *iface) ++{ ++ return CONTAINING_RECORD(iface, ACImpl, IAudioRenderClient_iface); ++} ++ ++static inline ACImpl *impl_from_IAudioCaptureClient(IAudioCaptureClient *iface) ++{ ++ return CONTAINING_RECORD(iface, ACImpl, IAudioCaptureClient_iface); ++} ++ + /* Following pulseaudio design here, mainloop has the lock taken whenever + * it is handling something for pulse, and the lock is required whenever + * doing any pa_* call that can affect the state in any way +@@ -701,6 +716,11 @@ HRESULT WINAPI AUDDRV_GetAudioEndpoint(void *key, IMMDevice *dev, + return E_OUTOFMEMORY; + + This->IAudioClient_iface.lpVtbl = &AudioClient_Vtbl; ++ This->IAudioRenderClient_iface.lpVtbl = &AudioRenderClient_Vtbl; ++ This->IAudioCaptureClient_iface.lpVtbl = &AudioCaptureClient_Vtbl; ++ This->IAudioClock_iface.lpVtbl = &AudioClock_Vtbl; ++ This->IAudioClock2_iface.lpVtbl = &AudioClock2_Vtbl; ++ This->IAudioStreamVolume_iface.lpVtbl = &AudioStreamVolume_Vtbl; + This->dataflow = dataflow; + This->parent = dev; + This->clock_pulse = PA_USEC_INVALID; +@@ -1421,6 +1441,16 @@ static HRESULT WINAPI AudioClient_GetService(IAudioClient *iface, REFIID riid, + if (FAILED(hr)) + return hr; + ++ if (IsEqualIID(riid, &IID_IAudioRenderClient)) { ++ if (This->dataflow != eRender) ++ return AUDCLNT_E_WRONG_ENDPOINT_TYPE; ++ *ppv = &This->IAudioRenderClient_iface; ++ } else if (IsEqualIID(riid, &IID_IAudioCaptureClient)) { ++ if (This->dataflow != eCapture) ++ return AUDCLNT_E_WRONG_ENDPOINT_TYPE; ++ *ppv = &This->IAudioCaptureClient_iface; ++ } ++ + if (*ppv) { + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; +@@ -1449,6 +1479,277 @@ static const IAudioClientVtbl AudioClient_Vtbl = + AudioClient_GetService + }; + +static HRESULT WINAPI AudioRenderClient_QueryInterface( + IAudioRenderClient *iface, REFIID riid, void **ppv) +{ -+ ACImpl *This = impl_from_IAudioRenderClient(iface); + TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); + + if (!ppv) @@ -2102,9 +1972,6 @@ diff -uhNr wine-1.7.0/dlls/winepulse.drv/mmdevdrv.c wine-1.7.0-multimedia/dlls/w + return S_OK; + } + -+ if (IsEqualIID(riid, &IID_IMarshal)) -+ return IUnknown_QueryInterface(This->marshal, riid, ppv); -+ + WARN("Unknown interface %s\n", debugstr_guid(riid)); + return E_NOINTERFACE; +} @@ -2125,8 +1992,7 @@ diff -uhNr wine-1.7.0/dlls/winepulse.drv/mmdevdrv.c wine-1.7.0-multimedia/dlls/w + UINT32 frames, BYTE **data) +{ + ACImpl *This = impl_from_IAudioRenderClient(iface); -+ size_t avail, req, bytes = frames * pa_frame_size(&This->ss); -+ UINT32 pad; ++ UINT32 avail, pad, req, bytes = frames * pa_frame_size(&This->ss); + HRESULT hr = S_OK; + int ret = -1; + @@ -2151,7 +2017,7 @@ diff -uhNr wine-1.7.0/dlls/winepulse.drv/mmdevdrv.c wine-1.7.0-multimedia/dlls/w + avail = This->bufsize_frames - pad; + if (avail < frames || bytes > This->bufsize_bytes) { + pthread_mutex_unlock(&pulse_lock); -+ WARN("Wanted to write %u, but only %zu available\n", frames, avail); ++ WARN("Wanted to write %u, but only %u available\n", frames, avail); + return AUDCLNT_E_BUFFER_TOO_LARGE; + } + @@ -2159,7 +2025,7 @@ diff -uhNr wine-1.7.0/dlls/winepulse.drv/mmdevdrv.c wine-1.7.0-multimedia/dlls/w + req = bytes; + ret = pa_stream_begin_write(This->stream, &This->locked_ptr, &req); + if (ret < 0 || req < bytes) { -+ FIXME("%p Not using pulse locked data: %i %zu/%u %u/%u\n", This, ret, req/pa_frame_size(&This->ss), frames, pad, This->bufsize_frames); ++ FIXME("%p Not using pulse locked data: %i %u/%u %u/%u\n", This, ret, req/pa_frame_size(&This->ss), frames, pad, This->bufsize_frames); + if (ret >= 0) + pa_stream_cancel_write(This->stream); + *data = This->tmp_buffer; @@ -2170,16 +2036,11 @@ diff -uhNr wine-1.7.0/dlls/winepulse.drv/mmdevdrv.c wine-1.7.0-multimedia/dlls/w + return hr; +} + -+static void pulse_free_noop(void *buf) -+{ -+} -+ +static HRESULT WINAPI AudioRenderClient_ReleaseBuffer( + IAudioRenderClient *iface, UINT32 written_frames, DWORD flags) +{ + ACImpl *This = impl_from_IAudioRenderClient(iface); + UINT32 written_bytes = written_frames * pa_frame_size(&This->ss); -+// UINT32 period; + + TRACE("(%p)->(%u, %x)\n", This, written_frames, flags); + @@ -2209,16 +2070,11 @@ diff -uhNr wine-1.7.0/dlls/winepulse.drv/mmdevdrv.c wine-1.7.0-multimedia/dlls/w + if (This->locked_ptr) + pa_stream_write(This->stream, This->locked_ptr, written_bytes, NULL, 0, PA_SEEK_RELATIVE); + else -+ pa_stream_write(This->stream, This->tmp_buffer, written_bytes, pulse_free_noop, 0, PA_SEEK_RELATIVE); ++ pa_stream_write(This->stream, This->tmp_buffer, written_bytes, NULL, 0, PA_SEEK_RELATIVE); + This->pad += written_bytes; + This->locked_ptr = NULL; -+ TRACE("Released %u, pad %zu\n", written_frames, This->pad / pa_frame_size(&This->ss)); ++ TRACE("Released %u, pad %u\n", written_frames, This->pad / pa_frame_size(&This->ss)); + assert(This->pad <= This->bufsize_bytes); -+ -+// period = pa_stream_get_buffer_attr(This->stream)->minreq; -+ /* Require a minimum of 3 periods filled, if possible */ -+// if (This->event && This->pad + period <= This->bufsize_bytes && This->pad < period * 3) -+// SetEvent(This->event); + pthread_mutex_unlock(&pulse_lock); + return S_OK; +} @@ -2234,7 +2090,6 @@ diff -uhNr wine-1.7.0/dlls/winepulse.drv/mmdevdrv.c wine-1.7.0-multimedia/dlls/w +static HRESULT WINAPI AudioCaptureClient_QueryInterface( + IAudioCaptureClient *iface, REFIID riid, void **ppv) +{ -+ ACImpl *This = impl_from_IAudioCaptureClient(iface); + TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); + + if (!ppv) @@ -2249,9 +2104,6 @@ diff -uhNr wine-1.7.0/dlls/winepulse.drv/mmdevdrv.c wine-1.7.0-multimedia/dlls/w + return S_OK; + } + -+ if (IsEqualIID(riid, &IID_IMarshal)) -+ return IUnknown_QueryInterface(This->marshal, riid, ppv); -+ + WARN("Unknown interface %s\n", debugstr_guid(riid)); + return E_NOINTERFACE; +} @@ -2352,7 +2204,7 @@ diff -uhNr wine-1.7.0/dlls/winepulse.drv/mmdevdrv.c wine-1.7.0-multimedia/dlls/w + TRACE("(%p)->(%p)\n", This, frames); + if (!frames) + return E_POINTER; -+ ++ + pthread_mutex_lock(&pulse_lock); + ACImpl_GetCapturePad(This, NULL); + p = This->locked_ptr; @@ -2374,6 +2226,56 @@ diff -uhNr wine-1.7.0/dlls/winepulse.drv/mmdevdrv.c wine-1.7.0-multimedia/dlls/w + AudioCaptureClient_GetNextPacketSize +}; + + HRESULT WINAPI AUDDRV_GetAudioSessionManager(IMMDevice *device, + IAudioSessionManager2 **out) + { +-- +1.8.3.1 + + +From 15c7c6f1934c5b859292ced84a4967df4553a656 Mon Sep 17 00:00:00 2001 +From: Maarten Lankhorst +Date: Sat, 31 Aug 2013 08:36:00 +0200 +Subject: winepulse: Add IAudioClock and IAudioClock2 + +--- + dlls/winepulse.drv/mmdevdrv.c | 172 ++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 172 insertions(+) + +diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c +index 01cfd25..3ed2288 100644 +--- a/dlls/winepulse.drv/mmdevdrv.c ++++ b/dlls/winepulse.drv/mmdevdrv.c +@@ -167,6 +167,16 @@ static inline ACImpl *impl_from_IAudioCaptureClient(IAudioCaptureClient *iface) + return CONTAINING_RECORD(iface, ACImpl, IAudioCaptureClient_iface); + } + ++static inline ACImpl *impl_from_IAudioClock(IAudioClock *iface) ++{ ++ return CONTAINING_RECORD(iface, ACImpl, IAudioClock_iface); ++} ++ ++static inline ACImpl *impl_from_IAudioClock2(IAudioClock2 *iface) ++{ ++ return CONTAINING_RECORD(iface, ACImpl, IAudioClock2_iface); ++} ++ + /* Following pulseaudio design here, mainloop has the lock taken whenever + * it is handling something for pulse, and the lock is required whenever + * doing any pa_* call that can affect the state in any way +@@ -1449,6 +1459,8 @@ static HRESULT WINAPI AudioClient_GetService(IAudioClient *iface, REFIID riid, + if (This->dataflow != eCapture) + return AUDCLNT_E_WRONG_ENDPOINT_TYPE; + *ppv = &This->IAudioCaptureClient_iface; ++ } else if (IsEqualIID(riid, &IID_IAudioClock)) { ++ *ppv = &This->IAudioClock_iface; + } + + if (*ppv) { +@@ -1750,6 +1762,166 @@ static const IAudioCaptureClientVtbl AudioCaptureClient_Vtbl = + AudioCaptureClient_GetNextPacketSize + }; + +static HRESULT WINAPI AudioClock_QueryInterface(IAudioClock *iface, + REFIID riid, void **ppv) +{ @@ -2394,9 +2296,6 @@ diff -uhNr wine-1.7.0/dlls/winepulse.drv/mmdevdrv.c wine-1.7.0-multimedia/dlls/w + return S_OK; + } + -+ if (IsEqualIID(riid, &IID_IMarshal)) -+ return IUnknown_QueryInterface(This->marshal, riid, ppv); -+ + WARN("Unknown interface %s\n", debugstr_guid(riid)); + return E_NOINTERFACE; +} @@ -2432,6 +2331,7 @@ diff -uhNr wine-1.7.0/dlls/winepulse.drv/mmdevdrv.c wine-1.7.0-multimedia/dlls/w + UINT64 *qpctime) +{ + ACImpl *This = impl_from_IAudioClock(iface); ++ pa_usec_t time; + HRESULT hr; + + TRACE("(%p)->(%p, %p)\n", This, pos, qpctime); @@ -2447,7 +2347,14 @@ diff -uhNr wine-1.7.0/dlls/winepulse.drv/mmdevdrv.c wine-1.7.0-multimedia/dlls/w + } + + *pos = This->clock_written; -+ ++ if (This->clock_pulse != PA_USEC_INVALID && pa_stream_get_time(This->stream, &time) >= 0) { ++ UINT32 delta = pa_usec_to_bytes(time - This->clock_pulse, &This->ss); ++ if (delta < This->pad) ++ *pos += delta; ++ else ++ *pos += This->pad; ++ } ++ + /* Make time never go backwards */ + if (*pos < This->clock_lastpos) + *pos = This->clock_lastpos; @@ -2529,11 +2436,72 @@ diff -uhNr wine-1.7.0/dlls/winepulse.drv/mmdevdrv.c wine-1.7.0-multimedia/dlls/w + AudioClock2_GetDevicePosition +}; + + HRESULT WINAPI AUDDRV_GetAudioSessionManager(IMMDevice *device, + IAudioSessionManager2 **out) + { +-- +1.8.3.1 + + +From 29b389b7073aa9787fe341bae3c420485f3d4146 Mon Sep 17 00:00:00 2001 +From: Maarten Lankhorst +Date: Sat, 31 Aug 2013 08:36:01 +0200 +Subject: winepulse: Add audiostreamvolume + +--- +Pulse allows streams to set volume, but for various reasons it's +better off being disabled by default. + +It can be enabled with HKCU\Software\Wine\Pulse\StreamVol=0x1 +--- + dlls/winepulse.drv/mmdevdrv.c | 236 ++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 236 insertions(+) + +diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c +index 3ed2288..b7414c2 100644 +--- a/dlls/winepulse.drv/mmdevdrv.c ++++ b/dlls/winepulse.drv/mmdevdrv.c +@@ -177,6 +177,11 @@ static inline ACImpl *impl_from_IAudioClock2(IAudioClock2 *iface) + return CONTAINING_RECORD(iface, ACImpl, IAudioClock2_iface); + } + ++static inline ACImpl *impl_from_IAudioStreamVolume(IAudioStreamVolume *iface) ++{ ++ return CONTAINING_RECORD(iface, ACImpl, IAudioStreamVolume_iface); ++} ++ + /* Following pulseaudio design here, mainloop has the lock taken whenever + * it is handling something for pulse, and the lock is required whenever + * doing any pa_* call that can affect the state in any way +@@ -444,6 +449,12 @@ static void pulse_op_cb(pa_stream *s, int success, void *user) { + pthread_cond_signal(&pulse_cond); + } + ++static void pulse_ctx_op_cb(pa_context *c, int success, void *user) { ++ TRACE("Success: %i\n", success); ++ *(int*)user = success; ++ pthread_cond_signal(&pulse_cond); ++} ++ + static void pulse_attr_update(pa_stream *s, void *user) { + const pa_buffer_attr *attr = pa_stream_get_buffer_attr(s); + TRACE("New attributes or device moved:\n"); +@@ -1461,6 +1472,8 @@ static HRESULT WINAPI AudioClient_GetService(IAudioClient *iface, REFIID riid, + *ppv = &This->IAudioCaptureClient_iface; + } else if (IsEqualIID(riid, &IID_IAudioClock)) { + *ppv = &This->IAudioClock_iface; ++ } else if (IsEqualIID(riid, &IID_IAudioStreamVolume)) { ++ *ppv = &This->IAudioStreamVolume_iface; + } + + if (*ppv) { +@@ -1922,6 +1935,229 @@ static const IAudioClock2Vtbl AudioClock2_Vtbl = + AudioClock2_GetDevicePosition + }; + +static HRESULT WINAPI AudioStreamVolume_QueryInterface( + IAudioStreamVolume *iface, REFIID riid, void **ppv) +{ -+ ACImpl *This = impl_from_IAudioStreamVolume(iface); -+ + TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); + + if (!ppv) @@ -2548,9 +2516,6 @@ diff -uhNr wine-1.7.0/dlls/winepulse.drv/mmdevdrv.c wine-1.7.0-multimedia/dlls/w + return S_OK; + } + -+ if (IsEqualIID(riid, &IID_IMarshal)) -+ return IUnknown_QueryInterface(This->marshal, riid, ppv); -+ + WARN("Unknown interface %s\n", debugstr_guid(riid)); + return E_NOINTERFACE; +} @@ -2757,32 +2722,263 @@ diff -uhNr wine-1.7.0/dlls/winepulse.drv/mmdevdrv.c wine-1.7.0-multimedia/dlls/w + AudioStreamVolume_GetAllVolumes +}; + -+static AudioSessionWrapper *AudioSessionWrapper_Create(ACImpl *client) -+{ -+ AudioSessionWrapper *ret; + HRESULT WINAPI AUDDRV_GetAudioSessionManager(IMMDevice *device, + IAudioSessionManager2 **out) + { +-- +1.8.3.1 + + +From f27ca64fa41672126627e3bd51002d89467f362a Mon Sep 17 00:00:00 2001 +From: Maarten Lankhorst +Date: Sat, 31 Aug 2013 08:36:01 +0200 +Subject: winepulse: Add session support + +--- +Copied verbatim from winealsa +--- + dlls/winepulse.drv/mmdevdrv.c | 849 +++++++++++++++++++++++++++++++++++++++++- + 1 file changed, 848 insertions(+), 1 deletion(-) + +diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c +index b7414c2..64ee62e 100644 +--- a/dlls/winepulse.drv/mmdevdrv.c ++++ b/dlls/winepulse.drv/mmdevdrv.c +@@ -69,6 +69,7 @@ static pa_mainloop *pulse_ml; + static HANDLE pulse_thread; + static pthread_mutex_t pulse_lock = PTHREAD_MUTEX_INITIALIZER; + static pthread_cond_t pulse_cond = PTHREAD_COND_INITIALIZER; ++static struct list g_sessions = LIST_INIT(g_sessions); + + /* Mixer format + period times */ + static WAVEFORMATEXTENSIBLE pulse_fmt[2]; +@@ -105,6 +106,31 @@ BOOL WINAPI DllMain(HINSTANCE dll, DWORD reason, void *reserved) + + typedef struct ACImpl ACImpl; + ++typedef struct _AudioSession { ++ GUID guid; ++ struct list clients; + -+ ret = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, -+ sizeof(AudioSessionWrapper)); -+ if (!ret) -+ return NULL; ++ IMMDevice *device; + -+ ret->IAudioSessionControl2_iface.lpVtbl = &AudioSessionControl2_Vtbl; -+ ret->ISimpleAudioVolume_iface.lpVtbl = &SimpleAudioVolume_Vtbl; -+ ret->IChannelAudioVolume_iface.lpVtbl = &ChannelAudioVolume_Vtbl; ++ float master_vol; ++ UINT32 channel_count; ++ float *channel_vols; ++ BOOL mute; + -+ ret->ref = !client; ++ struct list entry; ++} AudioSession; + -+ ret->client = client; -+ if (client) { -+ ret->session = client->session; -+ AudioClient_AddRef(&client->IAudioClient_iface); -+ } ++typedef struct _AudioSessionWrapper { ++ IAudioSessionControl2 IAudioSessionControl2_iface; ++ IChannelAudioVolume IChannelAudioVolume_iface; ++ ISimpleAudioVolume ISimpleAudioVolume_iface; + -+ return ret; -+} ++ LONG ref; + -+static HRESULT WINAPI AudioSessionControl_QueryInterface( -+ IAudioSessionControl2 *iface, REFIID riid, void **ppv) ++ ACImpl *client; ++ AudioSession *session; ++} AudioSessionWrapper; ++ + typedef struct _ACPacket { + struct list entry; + UINT64 qpcpos; +@@ -139,6 +165,8 @@ struct ACImpl { + INT64 clock_lastpos, clock_written; + pa_usec_t clock_pulse; + ++ AudioSession *session; ++ AudioSessionWrapper *session_wrapper; + struct list packet_free_head; + struct list packet_filled_head; + }; +@@ -148,10 +176,15 @@ static const WCHAR defaultW[] = {'P','u','l','s','e','a','u','d','i','o',0}; + static const IAudioClientVtbl AudioClient_Vtbl; + static const IAudioRenderClientVtbl AudioRenderClient_Vtbl; + static const IAudioCaptureClientVtbl AudioCaptureClient_Vtbl; ++static const IAudioSessionControl2Vtbl AudioSessionControl2_Vtbl; ++static const ISimpleAudioVolumeVtbl SimpleAudioVolume_Vtbl; ++static const IChannelAudioVolumeVtbl ChannelAudioVolume_Vtbl; + static const IAudioClockVtbl AudioClock_Vtbl; + static const IAudioClock2Vtbl AudioClock2_Vtbl; + static const IAudioStreamVolumeVtbl AudioStreamVolume_Vtbl; + ++static AudioSessionWrapper *AudioSessionWrapper_Create(ACImpl *client); ++ + static inline ACImpl *impl_from_IAudioClient(IAudioClient *iface) + { + return CONTAINING_RECORD(iface, ACImpl, IAudioClient_iface); +@@ -167,6 +200,21 @@ static inline ACImpl *impl_from_IAudioCaptureClient(IAudioCaptureClient *iface) + return CONTAINING_RECORD(iface, ACImpl, IAudioCaptureClient_iface); + } + ++static inline AudioSessionWrapper *impl_from_IAudioSessionControl2(IAudioSessionControl2 *iface) ++{ ++ return CONTAINING_RECORD(iface, AudioSessionWrapper, IAudioSessionControl2_iface); ++} ++ ++static inline AudioSessionWrapper *impl_from_ISimpleAudioVolume(ISimpleAudioVolume *iface) ++{ ++ return CONTAINING_RECORD(iface, AudioSessionWrapper, ISimpleAudioVolume_iface); ++} ++ ++static inline AudioSessionWrapper *impl_from_IChannelAudioVolume(IChannelAudioVolume *iface) ++{ ++ return CONTAINING_RECORD(iface, AudioSessionWrapper, IChannelAudioVolume_iface); ++} ++ + static inline ACImpl *impl_from_IAudioClock(IAudioClock *iface) + { + return CONTAINING_RECORD(iface, ACImpl, IAudioClock_iface); +@@ -897,6 +945,85 @@ static DWORD get_channel_mask(unsigned int channels) + return 0; + } + ++static void session_init_vols(AudioSession *session, UINT channels) ++{ ++ if (session->channel_count < channels) { ++ UINT i; ++ ++ if (session->channel_vols) ++ session->channel_vols = HeapReAlloc(GetProcessHeap(), 0, ++ session->channel_vols, sizeof(float) * channels); ++ else ++ session->channel_vols = HeapAlloc(GetProcessHeap(), 0, ++ sizeof(float) * channels); ++ if (!session->channel_vols) ++ return; ++ ++ for(i = session->channel_count; i < channels; ++i) ++ session->channel_vols[i] = 1.f; ++ ++ session->channel_count = channels; ++ } ++} ++ ++static AudioSession *create_session(const GUID *guid, IMMDevice *device, ++ UINT num_channels) ++{ ++ AudioSession *ret; ++ ++ ret = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(AudioSession)); ++ if (!ret) ++ return NULL; ++ ++ memcpy(&ret->guid, guid, sizeof(GUID)); ++ ++ ret->device = device; ++ ++ list_init(&ret->clients); ++ ++ list_add_head(&g_sessions, &ret->entry); ++ ++ session_init_vols(ret, num_channels); ++ ++ ret->master_vol = 1.f; ++ ++ return ret; ++} ++ ++/* if channels == 0, then this will return or create a session with ++ * matching dataflow and GUID. otherwise, channels must also match */ ++static HRESULT get_audio_session(const GUID *sessionguid, ++ IMMDevice *device, UINT channels, AudioSession **out) ++{ ++ AudioSession *session; ++ ++ if (!sessionguid || IsEqualGUID(sessionguid, &GUID_NULL)) { ++ *out = create_session(&GUID_NULL, device, channels); ++ if (!*out) ++ return E_OUTOFMEMORY; ++ ++ return S_OK; ++ } ++ ++ *out = NULL; ++ LIST_FOR_EACH_ENTRY(session, &g_sessions, AudioSession, entry) { ++ if (session->device == device && ++ IsEqualGUID(sessionguid, &session->guid)) { ++ session_init_vols(session, channels); ++ *out = session; ++ break; ++ } ++ } ++ ++ if (!*out) { ++ *out = create_session(sessionguid, device, channels); ++ if (!*out) ++ return E_OUTOFMEMORY; ++ } ++ ++ return S_OK; ++} ++ + static HRESULT pulse_spec_from_waveformat(ACImpl *This, const WAVEFORMATEX *fmt) + { + pa_channel_map_init(&This->map); +@@ -1083,6 +1210,10 @@ static HRESULT WINAPI AudioClient_Initialize(IAudioClient *iface, + assert(!capture_packets || data - This->bufsize_bytes == This->tmp_buffer); + } + } ++ if (SUCCEEDED(hr)) ++ hr = get_audio_session(sessionguid, This->parent, fmt->nChannels, &This->session); ++ if (SUCCEEDED(hr)) ++ list_add_tail(&This->session->clients, &This->entry); + + exit: + if (FAILED(hr)) { +@@ -1474,6 +1605,20 @@ static HRESULT WINAPI AudioClient_GetService(IAudioClient *iface, REFIID riid, + *ppv = &This->IAudioClock_iface; + } else if (IsEqualIID(riid, &IID_IAudioStreamVolume)) { + *ppv = &This->IAudioStreamVolume_iface; ++ } else if (IsEqualIID(riid, &IID_IAudioSessionControl) || ++ IsEqualIID(riid, &IID_IChannelAudioVolume) || ++ IsEqualIID(riid, &IID_ISimpleAudioVolume)) { ++ if (!This->session_wrapper) { ++ This->session_wrapper = AudioSessionWrapper_Create(This); ++ if (!This->session_wrapper) ++ return E_OUTOFMEMORY; ++ } ++ if (IsEqualIID(riid, &IID_IAudioSessionControl)) ++ *ppv = &This->session_wrapper->IAudioSessionControl2_iface; ++ else if (IsEqualIID(riid, &IID_IChannelAudioVolume)) ++ *ppv = &This->session_wrapper->IChannelAudioVolume_iface; ++ else if (IsEqualIID(riid, &IID_ISimpleAudioVolume)) ++ *ppv = &This->session_wrapper->ISimpleAudioVolume_iface; + } + + if (*ppv) { +@@ -2158,9 +2303,711 @@ static const IAudioStreamVolumeVtbl AudioStreamVolume_Vtbl = + AudioStreamVolume_GetAllVolumes + }; + ++static AudioSessionWrapper *AudioSessionWrapper_Create(ACImpl *client) ++{ ++ AudioSessionWrapper *ret; ++ ++ ret = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, ++ sizeof(AudioSessionWrapper)); ++ if (!ret) ++ return NULL; ++ ++ ret->IAudioSessionControl2_iface.lpVtbl = &AudioSessionControl2_Vtbl; ++ ret->ISimpleAudioVolume_iface.lpVtbl = &SimpleAudioVolume_Vtbl; ++ ret->IChannelAudioVolume_iface.lpVtbl = &ChannelAudioVolume_Vtbl; ++ ++ ret->ref = !client; ++ ++ ret->client = client; ++ if (client) { ++ ret->session = client->session; ++ AudioClient_AddRef(&client->IAudioClient_iface); ++ } ++ ++ return ret; ++} ++ ++static HRESULT WINAPI AudioSessionControl_QueryInterface( ++ IAudioSessionControl2 *iface, REFIID riid, void **ppv) +{ + TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); + @@ -3353,124 +3549,1698 @@ diff -uhNr wine-1.7.0/dlls/winepulse.drv/mmdevdrv.c wine-1.7.0-multimedia/dlls/w + TRACE("(%p)->(%d, %f, %s)\n", session, index, level, + wine_dbgstr_guid(context)); + -+ if (level < 0.f || level > 1.f) -+ return E_INVALIDARG; ++ if (level < 0.f || level > 1.f) ++ return E_INVALIDARG; ++ ++ if (index >= session->channel_count) ++ return E_INVALIDARG; ++ ++ if (context) ++ FIXME("Notifications not supported yet\n"); ++ ++ TRACE("Pulseaudio does not support session volume control\n"); ++ ++ pthread_mutex_lock(&pulse_lock); ++ session->channel_vols[index] = level; ++ pthread_mutex_unlock(&pulse_lock); ++ ++ return S_OK; ++} ++ ++static HRESULT WINAPI ChannelAudioVolume_GetChannelVolume( ++ IChannelAudioVolume *iface, UINT32 index, float *level) ++{ ++ AudioSessionWrapper *This = impl_from_IChannelAudioVolume(iface); ++ AudioSession *session = This->session; ++ ++ TRACE("(%p)->(%d, %p)\n", session, index, level); ++ ++ if (!level) ++ return NULL_PTR_ERR; ++ ++ if (index >= session->channel_count) ++ return E_INVALIDARG; ++ ++ *level = session->channel_vols[index]; ++ ++ return S_OK; ++} ++ ++static HRESULT WINAPI ChannelAudioVolume_SetAllVolumes( ++ IChannelAudioVolume *iface, UINT32 count, const float *levels, ++ const GUID *context) ++{ ++ AudioSessionWrapper *This = impl_from_IChannelAudioVolume(iface); ++ AudioSession *session = This->session; ++ int i; ++ ++ TRACE("(%p)->(%d, %p, %s)\n", session, count, levels, ++ wine_dbgstr_guid(context)); ++ ++ if (!levels) ++ return NULL_PTR_ERR; ++ ++ if (count != session->channel_count) ++ return E_INVALIDARG; ++ ++ if (context) ++ FIXME("Notifications not supported yet\n"); ++ ++ TRACE("Pulseaudio does not support session volume control\n"); ++ ++ pthread_mutex_lock(&pulse_lock); ++ for(i = 0; i < count; ++i) ++ session->channel_vols[i] = levels[i]; ++ pthread_mutex_unlock(&pulse_lock); ++ return S_OK; ++} ++ ++static HRESULT WINAPI ChannelAudioVolume_GetAllVolumes( ++ IChannelAudioVolume *iface, UINT32 count, float *levels) ++{ ++ AudioSessionWrapper *This = impl_from_IChannelAudioVolume(iface); ++ AudioSession *session = This->session; ++ int i; ++ ++ TRACE("(%p)->(%d, %p)\n", session, count, levels); ++ ++ if (!levels) ++ return NULL_PTR_ERR; ++ ++ if (count != session->channel_count) ++ return E_INVALIDARG; ++ ++ for(i = 0; i < count; ++i) ++ levels[i] = session->channel_vols[i]; ++ ++ return S_OK; ++} ++ ++static const IChannelAudioVolumeVtbl ChannelAudioVolume_Vtbl = ++{ ++ ChannelAudioVolume_QueryInterface, ++ ChannelAudioVolume_AddRef, ++ ChannelAudioVolume_Release, ++ ChannelAudioVolume_GetChannelCount, ++ ChannelAudioVolume_SetChannelVolume, ++ ChannelAudioVolume_GetChannelVolume, ++ ChannelAudioVolume_SetAllVolumes, ++ ChannelAudioVolume_GetAllVolumes ++}; ++ + HRESULT WINAPI AUDDRV_GetAudioSessionManager(IMMDevice *device, + IAudioSessionManager2 **out) + { ++ SessionMgr *This = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(SessionMgr)); + *out = NULL; +- return E_NOTIMPL; ++ if (!This) ++ return E_OUTOFMEMORY; ++ This->IAudioSessionManager2_iface.lpVtbl = &AudioSessionManager2_Vtbl; ++ This->device = device; ++ This->ref = 1; ++ *out = &This->IAudioSessionManager2_iface; ++ return S_OK; + } +-- +1.8.3.1 + + +From 707d4aeae111fa01b393333bca419311e5e5ce36 Mon Sep 17 00:00:00 2001 +From: Maarten Lankhorst +Date: Sat, 31 Aug 2013 08:36:01 +0200 +Subject: fix fdels trailing whitespaces + +Happy? :P +--- + dlls/winepulse.drv/mmdevdrv.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c +index 64ee62e..5a71a3d 100644 +--- a/dlls/winepulse.drv/mmdevdrv.c ++++ b/dlls/winepulse.drv/mmdevdrv.c +@@ -1898,7 +1898,7 @@ static HRESULT WINAPI AudioCaptureClient_GetNextPacketSize( + TRACE("(%p)->(%p)\n", This, frames); + if (!frames) + return E_POINTER; +- ++ + pthread_mutex_lock(&pulse_lock); + ACImpl_GetCapturePad(This, NULL); + p = This->locked_ptr; +@@ -1998,7 +1998,7 @@ static HRESULT WINAPI AudioClock_GetPosition(IAudioClock *iface, UINT64 *pos, + else + *pos += This->pad; + } +- ++ + /* Make time never go backwards */ + if (*pos < This->clock_lastpos) + *pos = This->clock_lastpos; +-- +1.8.3.1 + + +From 1651eaf16902a65aaaab0145f91c6b88c4e17c56 Mon Sep 17 00:00:00 2001 +From: Maarten Lankhorst +Date: Sat, 31 Aug 2013 08:36:01 +0200 +Subject: winepulse v12 + +Changes since v11: +- Fix incorrect assertions which may fail on moving a capture device +- Whitespace apply fixes + +Changes since v10: +- Make some members static +- Fix small memory leak in GetService +--- + dlls/winepulse.drv/mmdevdrv.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c +index 5a71a3d..960af3c 100644 +--- a/dlls/winepulse.drv/mmdevdrv.c ++++ b/dlls/winepulse.drv/mmdevdrv.c +@@ -596,10 +596,11 @@ static void pulse_rd_loop(ACImpl *This, size_t bytes) + dst = p->data; + while (rem) { + pa_stream_peek(This->stream, (const void**)&src, &src_len); +- assert(src_len && src_len <= bytes); ++ assert(src_len); + assert(This->peek_ofs < src_len); + src += This->peek_ofs; + src_len -= This->peek_ofs; ++ assert(src_len <= bytes); + + copy = rem; + if (copy > src_len) +@@ -627,9 +628,10 @@ static void pulse_rd_drop(ACImpl *This, size_t bytes) + while (rem) { + const void *src; + pa_stream_peek(This->stream, &src, &src_len); +- assert(src_len && src_len <= bytes); ++ assert(src_len); + assert(This->peek_ofs < src_len); + src_len -= This->peek_ofs; ++ assert(src_len <= bytes); + + copy = rem; + if (copy > src_len) +-- +1.8.3.1 + + +From ed285cd6a055b9f2d063810e2621669c36d95340 Mon Sep 17 00:00:00 2001 +From: Maarten Lankhorst +Date: Sat, 31 Aug 2013 08:36:01 +0200 +Subject: winepulse v15: Add support for missing formats, and silence an error + for missing format tags + +--- + dlls/winepulse.drv/mmdevdrv.c | 17 ++++++++++++++++- + 1 file changed, 16 insertions(+), 1 deletion(-) + +diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c +index 960af3c..f52f119 100644 +--- a/dlls/winepulse.drv/mmdevdrv.c ++++ b/dlls/winepulse.drv/mmdevdrv.c +@@ -1109,7 +1109,22 @@ static HRESULT pulse_spec_from_waveformat(ACImpl *This, const WAVEFORMATEX *fmt) + } + break; + } +- default: FIXME("Unhandled tag %x\n", fmt->wFormatTag); ++ case WAVE_FORMAT_ALAW: ++ case WAVE_FORMAT_MULAW: ++ if (fmt->wBitsPerSample != 8) { ++ FIXME("Unsupported bpp %u for LAW\n", fmt->wBitsPerSample); ++ return AUDCLNT_E_UNSUPPORTED_FORMAT; ++ } ++ if (fmt->nChannels != 1 && fmt->nChannels != 2) { ++ FIXME("Unsupported channels %u for LAW\n", fmt->nChannels); ++ return AUDCLNT_E_UNSUPPORTED_FORMAT; ++ } ++ This->ss.format = fmt->wFormatTag == WAVE_FORMAT_MULAW ? PA_SAMPLE_ULAW : PA_SAMPLE_ALAW; ++ pa_channel_map_init_auto(&This->map, fmt->nChannels, PA_CHANNEL_MAP_ALSA); ++ break; ++ default: ++ WARN("Unhandled tag %x\n", fmt->wFormatTag); ++ return AUDCLNT_E_UNSUPPORTED_FORMAT; + } + This->ss.channels = This->map.channels; + if (!pa_channel_map_valid(&This->map) || This->ss.format == PA_SAMPLE_INVALID) { +-- +1.8.3.1 + + +From c5243abaaa882c77e681104c414254c4641b3b3b Mon Sep 17 00:00:00 2001 +From: Maarten Lankhorst +Date: Sat, 31 Aug 2013 08:36:01 +0200 +Subject: winepulse v16: Add official warning wine doesn't want to support + winepulse + +And give an alternative place to ask for support. +I wish it didn't have to come to this. +--- + dlls/winepulse.drv/mmdevdrv.c | 25 +++++++++++++++++++++++-- + 1 file changed, 23 insertions(+), 2 deletions(-) + +diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c +index f52f119..76a2e0e 100644 +--- a/dlls/winepulse.drv/mmdevdrv.c ++++ b/dlls/winepulse.drv/mmdevdrv.c +@@ -59,6 +59,7 @@ + #define NULL_PTR_ERR MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, RPC_X_NULL_REF_POINTER) + + WINE_DEFAULT_DEBUG_CHANNEL(pulse); ++WINE_DECLARE_DEBUG_CHANNEL(winediag); + + static const REFERENCE_TIME MinimumPeriod = 30000; + static const REFERENCE_TIME DefaultPeriod = 100000; +@@ -81,6 +82,8 @@ const WCHAR pulse_keyW[] = {'S','o','f','t','w','a','r','e','\\', + 'W','i','n','e','\\','P','u','l','s','e',0}; + const WCHAR pulse_streamW[] = { 'S','t','r','e','a','m','V','o','l',0 }; + ++static HANDLE warn_once; ++ + BOOL WINAPI DllMain(HINSTANCE dll, DWORD reason, void *reserved) + { + if (reason == DLL_PROCESS_ATTACH) { +@@ -99,7 +102,10 @@ BOOL WINAPI DllMain(HINSTANCE dll, DWORD reason, void *reserved) + } + if (pulse_ml) + pa_mainloop_quit(pulse_ml, 0); +- CloseHandle(pulse_thread); ++ if (pulse_thread) ++ CloseHandle(pulse_thread); ++ if (warn_once) ++ CloseHandle(warn_once); + } + return TRUE; + } +@@ -758,6 +764,10 @@ HRESULT WINAPI AUDDRV_GetEndpointIDs(EDataFlow flow, WCHAR ***ids, void ***keys, + int WINAPI AUDDRV_GetPriority(void) + { + HRESULT hr; ++ if (getenv("WINENOPULSE")) { ++ FIXME_(winediag)("winepulse has been temporarily disabled through the environment\n"); ++ return 0; ++ } + pthread_mutex_lock(&pulse_lock); + hr = pulse_connect(); + pthread_mutex_unlock(&pulse_lock); +@@ -771,7 +781,18 @@ HRESULT WINAPI AUDDRV_GetAudioEndpoint(void *key, IMMDevice *dev, + ACImpl *This; + int i; + +- TRACE("%p %p %d %p\n", key, dev, dataflow, out); ++ /* Give one visible warning per session ++ * Sadly wine has chosen not to accept the winepulse patch, so support ourselves ++ */ ++ if (!warn_once && (warn_once = CreateEventA(0, 0, 0, "__winepulse_warn_event")) && GetLastError() != ERROR_ALREADY_EXISTS) { ++ FIXME_(winediag)("Winepulse is not officially supported by the wine project\n"); ++ FIXME_(winediag)("For sound related feedback and support, please visit http://ubuntuforums.org/showthread.php?t=1960599\n"); ++ } else { ++ WARN_(winediag)("Winepulse is not officially supported by the wine project\n"); ++ WARN_(winediag)("For sound related feedback and support, please visit http://ubuntuforums.org/showthread.php?t=1960599\n"); ++ } ++ ++ TRACE("%s %p %p\n", debugstr_guid(guid), dev, out); + if (dataflow != eRender && dataflow != eCapture) + return E_UNEXPECTED; + +-- +1.8.3.1 + + +From a5cebf016e4ff02b9f18586432351c4af690e7f1 Mon Sep 17 00:00:00 2001 +From: Maarten Lankhorst +Date: Sat, 31 Aug 2013 08:36:01 +0200 +Subject: winepulse v17: Fix winmm tests + +Handle dwChannelMask = SPEAKER_ALL better so WAVE_FORMAT_EXTENSIBLE tests pass too +--- + dlls/winepulse.drv/mmdevdrv.c | 72 +++++++++++++++++++++++++++++++++---------- + 1 file changed, 56 insertions(+), 16 deletions(-) + +diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c +index 76a2e0e..6e75674 100644 +--- a/dlls/winepulse.drv/mmdevdrv.c ++++ b/dlls/winepulse.drv/mmdevdrv.c +@@ -1066,6 +1066,8 @@ static HRESULT pulse_spec_from_waveformat(ACImpl *This, const WAVEFORMATEX *fmt) + This->ss.format = PA_SAMPLE_U8; + else if (fmt->wBitsPerSample == 16) + This->ss.format = PA_SAMPLE_S16LE; ++ else ++ return AUDCLNT_E_UNSUPPORTED_FORMAT; + pa_channel_map_init_auto(&This->map, fmt->nChannels, PA_CHANNEL_MAP_ALSA); + break; + case WAVE_FORMAT_EXTENSIBLE: { +@@ -1102,13 +1104,16 @@ static HRESULT pulse_spec_from_waveformat(ACImpl *This, const WAVEFORMATEX *fmt) + This->ss.format = PA_SAMPLE_S24_32LE; + else if (valid == 32) + This->ss.format = PA_SAMPLE_S32LE; +- default: + break; ++ default: ++ return AUDCLNT_E_UNSUPPORTED_FORMAT; + } + } + This->map.channels = fmt->nChannels; +- if (!mask) ++ if (!mask || mask == SPEAKER_ALL) + mask = get_channel_mask(fmt->nChannels); ++ else if (mask == ~0U && fmt->nChannels == 1) ++ mask = SPEAKER_FRONT_CENTER; + for (j = 0; j < sizeof(pulse_pos_from_wfx)/sizeof(*pulse_pos_from_wfx) && i < fmt->nChannels; ++j) { + if (mask & (1 << j)) + This->map.map[i++] = pulse_pos_from_wfx[j]; +@@ -1118,14 +1123,9 @@ static HRESULT pulse_spec_from_waveformat(ACImpl *This, const WAVEFORMATEX *fmt) + if (mask == SPEAKER_FRONT_CENTER) + This->map.map[0] = PA_CHANNEL_POSITION_MONO; + +- if ((mask & SPEAKER_ALL) && i < fmt->nChannels) { +- This->map.map[i++] = PA_CHANNEL_POSITION_MONO; +- FIXME("Is the 'all' channel mapped correctly?\n"); +- } +- + if (i < fmt->nChannels || (mask & SPEAKER_RESERVED)) { + This->map.channels = 0; +- ERR("Invalid channel mask: %i/%i and %x\n", i, fmt->nChannels, mask); ++ ERR("Invalid channel mask: %i/%i and %x(%x)\n", i, fmt->nChannels, mask, wfe->dwChannelMask); + break; + } + break; +@@ -1383,15 +1383,55 @@ static HRESULT WINAPI AudioClient_IsFormatSupported(IAudioClient *iface, + return E_INVALIDARG; + if (mode == AUDCLNT_SHAREMODE_EXCLUSIVE) + return This->dataflow == eCapture ? AUDCLNT_E_UNSUPPORTED_FORMAT : AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED; +- if (fmt->wFormatTag == WAVE_FORMAT_EXTENSIBLE && +- fmt->cbSize < sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX)) +- return E_INVALIDARG; +- +- dump_fmt(fmt); +- ++ switch (fmt->wFormatTag) { ++ case WAVE_FORMAT_EXTENSIBLE: ++ if (fmt->cbSize < sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX)) ++ return E_INVALIDARG; ++ dump_fmt(fmt); ++ break; ++ case WAVE_FORMAT_ALAW: ++ case WAVE_FORMAT_MULAW: ++ case WAVE_FORMAT_IEEE_FLOAT: ++ case WAVE_FORMAT_PCM: ++ dump_fmt(fmt); ++ break; ++ default: ++ dump_fmt(fmt); ++ return AUDCLNT_E_UNSUPPORTED_FORMAT; ++ } ++ if (fmt->nChannels == 0) ++ return AUDCLNT_E_UNSUPPORTED_FORMAT; + closest = clone_format(fmt); +- if (!closest) +- hr = E_OUTOFMEMORY; ++ if (!closest) { ++ if (out) ++ *out = NULL; ++ return E_OUTOFMEMORY; ++ } ++ ++ if (fmt->wFormatTag == WAVE_FORMAT_EXTENSIBLE) { ++ UINT32 mask = 0, i, channels = 0; ++ WAVEFORMATEXTENSIBLE *ext = (WAVEFORMATEXTENSIBLE*)closest; ++ ++ if ((fmt->nChannels > 1 && ext->dwChannelMask == SPEAKER_ALL) || ++ (fmt->nChannels == 1 && ext->dwChannelMask == ~0U)) { ++ mask = ext->dwChannelMask; ++ channels = fmt->nChannels; ++ } else if (ext->dwChannelMask) { ++ for (i = 1; !(i & SPEAKER_RESERVED); i <<= 1) { ++ if (i & ext->dwChannelMask) { ++ mask |= i; ++ channels++; ++ } ++ } ++ if (channels < fmt->nChannels) ++ mask = get_channel_mask(fmt->nChannels); ++ } else ++ mask = ext->dwChannelMask; ++ if (ext->dwChannelMask != mask) { ++ ext->dwChannelMask = mask; ++ hr = S_FALSE; ++ } ++ } + + if (hr == S_OK || !out) { + CoTaskMemFree(closest); +-- +1.8.3.1 + + +From e8d2b8cd838e449d210e9b61c63d280d936a7314 Mon Sep 17 00:00:00 2001 +From: Maarten Lankhorst +Date: Sat, 31 Aug 2013 08:36:01 +0200 +Subject: winepulse v18: Latency and compilation improvements + +Changes since v17: +- Remove clock_pulse interpolation + * Couldn't work, sadly +- Allow 2 * MinimumPeriod for shared buffers +- Fix all compiler warnings when compiling with 64-bits +- Dynamically select low latency mode if less than 2 default periods are request + * This requires the rtkit patch to be useful +--- + dlls/winepulse.drv/mmdevdrv.c | 55 +++++++++++++++++-------------------------- + 1 file changed, 22 insertions(+), 33 deletions(-) + +diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c +index 6e75674..8e76826 100644 +--- a/dlls/winepulse.drv/mmdevdrv.c ++++ b/dlls/winepulse.drv/mmdevdrv.c +@@ -169,7 +169,6 @@ struct ACImpl { + pa_channel_map map; + + INT64 clock_lastpos, clock_written; +- pa_usec_t clock_pulse; + + AudioSession *session; + AudioSessionWrapper *session_wrapper; +@@ -518,7 +517,6 @@ static void pulse_attr_update(pa_stream *s, void *user) { + static void pulse_wr_callback(pa_stream *s, size_t bytes, void *userdata) + { + ACImpl *This = userdata; +- pa_usec_t time; + UINT32 oldpad = This->pad; + + if (bytes < This->bufsize_bytes) +@@ -528,13 +526,8 @@ static void pulse_wr_callback(pa_stream *s, size_t bytes, void *userdata) + + assert(oldpad >= This->pad); + +- if (0 && This->pad && pa_stream_get_time(This->stream, &time) >= 0) +- This->clock_pulse = time; +- else +- This->clock_pulse = PA_USEC_INVALID; +- + This->clock_written += oldpad - This->pad; +- TRACE("New pad: %u (-%u)\n", This->pad / pa_frame_size(&This->ss), (oldpad - This->pad) / pa_frame_size(&This->ss)); ++ TRACE("New pad: %zu (-%zu)\n", This->pad / pa_frame_size(&This->ss), (oldpad - This->pad) / pa_frame_size(&This->ss)); + + if (This->event) + SetEvent(This->event); +@@ -542,8 +535,6 @@ static void pulse_wr_callback(pa_stream *s, size_t bytes, void *userdata) + + static void pulse_underflow_callback(pa_stream *s, void *userdata) + { +- ACImpl *This = userdata; +- This->clock_pulse = PA_USEC_INVALID; + WARN("Underflow\n"); + } + +@@ -562,12 +553,8 @@ static void pulse_latency_callback(pa_stream *s, void *userdata) + static void pulse_started_callback(pa_stream *s, void *userdata) + { + ACImpl *This = userdata; +- pa_usec_t time; + + TRACE("(Re)started playing\n"); +- assert(This->clock_pulse == PA_USEC_INVALID); +- if (0 && pa_stream_get_time(This->stream, &time) >= 0) +- This->clock_pulse = time; + if (This->event) + SetEvent(This->event); + } +@@ -578,7 +565,7 @@ static void pulse_rd_loop(ACImpl *This, size_t bytes) + ACPacket *p, *next; + LARGE_INTEGER stamp, freq; + BYTE *dst, *src; +- UINT32 src_len, copy, rem = This->capture_period; ++ size_t src_len, copy, rem = This->capture_period; + if (!(p = (ACPacket*)list_head(&This->packet_free_head))) { + p = (ACPacket*)list_head(&This->packet_filled_head); + if (!p->discont) { +@@ -630,7 +617,7 @@ static void pulse_rd_loop(ACImpl *This, size_t bytes) + static void pulse_rd_drop(ACImpl *This, size_t bytes) + { + while (bytes >= This->capture_period) { +- UINT32 src_len, copy, rem = This->capture_period; ++ size_t src_len, copy, rem = This->capture_period; + while (rem) { + const void *src; + pa_stream_peek(This->stream, &src, &src_len); +@@ -660,7 +647,7 @@ static void pulse_rd_callback(pa_stream *s, size_t bytes, void *userdata) + { + ACImpl *This = userdata; + +- TRACE("Readable total: %u, fragsize: %u\n", bytes, pa_stream_get_buffer_attr(s)->fragsize); ++ TRACE("Readable total: %zu, fragsize: %u\n", bytes, pa_stream_get_buffer_attr(s)->fragsize); + assert(bytes >= This->peek_ofs); + bytes -= This->peek_ofs; + if (bytes < This->capture_period) +@@ -815,7 +802,6 @@ HRESULT WINAPI AUDDRV_GetAudioEndpoint(void *key, IMMDevice *dev, + This->IAudioStreamVolume_iface.lpVtbl = &AudioStreamVolume_Vtbl; + This->dataflow = dataflow; + This->parent = dev; +- This->clock_pulse = PA_USEC_INVALID; + for (i = 0; i < PA_CHANNELS_MAX; ++i) + This->vol[i] = 1.f; + IMMDevice_AddRef(This->parent); +@@ -1199,7 +1185,19 @@ static HRESULT WINAPI AudioClient_Initialize(IAudioClient *iface, + goto exit; + + if (mode == AUDCLNT_SHAREMODE_SHARED) { +- period = pulse_def_period[This->dataflow == eCapture]; ++ REFERENCE_TIME def = pulse_def_period[This->dataflow == eCapture]; ++ REFERENCE_TIME min = pulse_min_period[This->dataflow == eCapture]; ++ ++ /* Switch to low latency mode if below 2 default periods, ++ * which is 20 ms by default, this will increase the amount ++ * of interrupts but allows very low latency. In dsound I ++ * managed to get a total latency of ~8ms, which is well below ++ * default ++ */ ++ if (duration < 2 * def) ++ period = min; ++ else ++ period = def; + if (duration < 2 * period) + duration = 2 * period; + } +@@ -1510,7 +1508,6 @@ static HRESULT WINAPI AudioClient_Start(IAudioClient *iface) + pthread_mutex_unlock(&pulse_lock); + return AUDCLNT_E_NOT_STOPPED; + } +- This->clock_pulse = PA_USEC_INVALID; + + if (pa_stream_is_corked(This->stream)) { + o = pa_stream_cork(This->stream, 0, pulse_op_cb, &success); +@@ -1566,7 +1563,6 @@ static HRESULT WINAPI AudioClient_Stop(IAudioClient *iface) + } + if (SUCCEEDED(hr)) { + This->started = FALSE; +- This->clock_pulse = PA_USEC_INVALID; + } + pthread_mutex_unlock(&pulse_lock); + return hr; +@@ -1764,7 +1760,8 @@ static HRESULT WINAPI AudioRenderClient_GetBuffer(IAudioRenderClient *iface, + UINT32 frames, BYTE **data) + { + ACImpl *This = impl_from_IAudioRenderClient(iface); +- UINT32 avail, pad, req, bytes = frames * pa_frame_size(&This->ss); ++ size_t avail, req, bytes = frames * pa_frame_size(&This->ss); ++ UINT32 pad; + HRESULT hr = S_OK; + int ret = -1; + +@@ -1789,7 +1786,7 @@ static HRESULT WINAPI AudioRenderClient_GetBuffer(IAudioRenderClient *iface, + avail = This->bufsize_frames - pad; + if (avail < frames || bytes > This->bufsize_bytes) { + pthread_mutex_unlock(&pulse_lock); +- WARN("Wanted to write %u, but only %u available\n", frames, avail); ++ WARN("Wanted to write %u, but only %zu available\n", frames, avail); + return AUDCLNT_E_BUFFER_TOO_LARGE; + } + +@@ -1797,7 +1794,7 @@ static HRESULT WINAPI AudioRenderClient_GetBuffer(IAudioRenderClient *iface, + req = bytes; + ret = pa_stream_begin_write(This->stream, &This->locked_ptr, &req); + if (ret < 0 || req < bytes) { +- FIXME("%p Not using pulse locked data: %i %u/%u %u/%u\n", This, ret, req/pa_frame_size(&This->ss), frames, pad, This->bufsize_frames); ++ FIXME("%p Not using pulse locked data: %i %zu/%u %u/%u\n", This, ret, req/pa_frame_size(&This->ss), frames, pad, This->bufsize_frames); + if (ret >= 0) + pa_stream_cancel_write(This->stream); + *data = This->tmp_buffer; +@@ -1845,7 +1842,7 @@ static HRESULT WINAPI AudioRenderClient_ReleaseBuffer( + pa_stream_write(This->stream, This->tmp_buffer, written_bytes, NULL, 0, PA_SEEK_RELATIVE); + This->pad += written_bytes; + This->locked_ptr = NULL; +- TRACE("Released %u, pad %u\n", written_frames, This->pad / pa_frame_size(&This->ss)); ++ TRACE("Released %u, pad %zu\n", written_frames, This->pad / pa_frame_size(&This->ss)); + assert(This->pad <= This->bufsize_bytes); + pthread_mutex_unlock(&pulse_lock); + return S_OK; +@@ -2053,7 +2050,6 @@ static HRESULT WINAPI AudioClock_GetPosition(IAudioClock *iface, UINT64 *pos, + UINT64 *qpctime) + { + ACImpl *This = impl_from_IAudioClock(iface); +- pa_usec_t time; + HRESULT hr; + + TRACE("(%p)->(%p, %p)\n", This, pos, qpctime); +@@ -2069,13 +2065,6 @@ static HRESULT WINAPI AudioClock_GetPosition(IAudioClock *iface, UINT64 *pos, + } + + *pos = This->clock_written; +- if (This->clock_pulse != PA_USEC_INVALID && pa_stream_get_time(This->stream, &time) >= 0) { +- UINT32 delta = pa_usec_to_bytes(time - This->clock_pulse, &This->ss); +- if (delta < This->pad) +- *pos += delta; +- else +- *pos += This->pad; +- } + + /* Make time never go backwards */ + if (*pos < This->clock_lastpos) +-- +1.8.3.1 + + +From 4d4c24badcf4e9d985366eea3785a401c564a6b3 Mon Sep 17 00:00:00 2001 +From: Juergen Tretthahn +Date: Sat, 31 Aug 2013 08:36:01 +0200 +Subject: winepulse: API Compatibility with 1.5.2 onward, v2 + +V2: Add winepulse.drv.spec to commit too +V1: Original version + +Commit e87cb774d131963d2642d075977571585ec5da8d changed the driver api +leave this commit out to build for builds prior to this + +Not needed for: 1.5.1, 1.5 and 1.4 builds +--- + dlls/winepulse.drv/mmdevdrv.c | 34 ++++++++++++++++++++++------------ + dlls/winepulse.drv/winepulse.drv.spec | 2 +- + 2 files changed, 23 insertions(+), 13 deletions(-) + +diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c +index 8e76826..b374b53 100644 +--- a/dlls/winepulse.drv/mmdevdrv.c ++++ b/dlls/winepulse.drv/mmdevdrv.c +@@ -82,6 +82,11 @@ const WCHAR pulse_keyW[] = {'S','o','f','t','w','a','r','e','\\', + 'W','i','n','e','\\','P','u','l','s','e',0}; + const WCHAR pulse_streamW[] = { 'S','t','r','e','a','m','V','o','l',0 }; + ++static GUID pulse_render_guid = ++{ 0xfd47d9cc, 0x4218, 0x4135, { 0x9c, 0xe2, 0x0c, 0x19, 0x5c, 0x87, 0x40, 0x5b } }; ++static GUID pulse_capture_guid = ++{ 0x25da76d0, 0x033c, 0x4235, { 0x90, 0x02, 0x19, 0xf4, 0x88, 0x94, 0xac, 0x6f } }; ++ + static HANDLE warn_once; + + BOOL WINAPI DllMain(HINSTANCE dll, DWORD reason, void *reserved) +@@ -716,7 +721,7 @@ static HRESULT pulse_stream_connect(ACImpl *This, UINT32 period_bytes) { + return S_OK; + } + +-HRESULT WINAPI AUDDRV_GetEndpointIDs(EDataFlow flow, WCHAR ***ids, void ***keys, ++HRESULT WINAPI AUDDRV_GetEndpointIDs(EDataFlow flow, const WCHAR ***ids, GUID **keys, + UINT *num, UINT *def_index) + { + HRESULT hr = S_OK; +@@ -730,20 +735,21 @@ HRESULT WINAPI AUDDRV_GetEndpointIDs(EDataFlow flow, WCHAR ***ids, void ***keys, + *num = 1; + *def_index = 0; + +- *ids = HeapAlloc(GetProcessHeap(), 0, sizeof(WCHAR *)); ++ *ids = HeapAlloc(GetProcessHeap(), 0, sizeof(**ids)); + if (!*ids) + return E_OUTOFMEMORY; ++ (*ids)[0] = defaultW; + +- (*ids)[0] = HeapAlloc(GetProcessHeap(), 0, sizeof(defaultW)); +- if (!(*ids)[0]) { ++ *keys = HeapAlloc(GetProcessHeap(), 0, sizeof(**keys)); ++ if (!*keys) { + HeapFree(GetProcessHeap(), 0, *ids); ++ *ids = NULL; + return E_OUTOFMEMORY; + } +- +- lstrcpyW((*ids)[0], defaultW); +- +- *keys = HeapAlloc(GetProcessHeap(), 0, sizeof(void *)); +- (*keys)[0] = NULL; ++ if (flow == eRender) ++ (*keys)[0] = pulse_render_guid; ++ else ++ (*keys)[0] = pulse_capture_guid; + + return S_OK; + } +@@ -761,12 +767,12 @@ int WINAPI AUDDRV_GetPriority(void) + return SUCCEEDED(hr) ? 3 : 0; + } + +-HRESULT WINAPI AUDDRV_GetAudioEndpoint(void *key, IMMDevice *dev, +- EDataFlow dataflow, IAudioClient **out) ++HRESULT WINAPI AUDDRV_GetAudioEndpoint(GUID *guid, IMMDevice *dev, IAudioClient **out) + { + HRESULT hr; + ACImpl *This; + int i; ++ EDataFlow dataflow; + + /* Give one visible warning per session + * Sadly wine has chosen not to accept the winepulse patch, so support ourselves +@@ -780,7 +786,11 @@ HRESULT WINAPI AUDDRV_GetAudioEndpoint(void *key, IMMDevice *dev, + } + + TRACE("%s %p %p\n", debugstr_guid(guid), dev, out); +- if (dataflow != eRender && dataflow != eCapture) ++ if (IsEqualGUID(guid, &pulse_render_guid)) ++ dataflow = eRender; ++ else if (IsEqualGUID(guid, &pulse_capture_guid)) ++ dataflow = eCapture; ++ else + return E_UNEXPECTED; + + *out = NULL; +diff --git a/dlls/winepulse.drv/winepulse.drv.spec b/dlls/winepulse.drv/winepulse.drv.spec +index a089166..612bf46 100644 +--- a/dlls/winepulse.drv/winepulse.drv.spec ++++ b/dlls/winepulse.drv/winepulse.drv.spec +@@ -1,5 +1,5 @@ + # MMDevAPI driver functions + @ stdcall -private GetPriority() AUDDRV_GetPriority + @ stdcall -private GetEndpointIDs(long ptr ptr ptr ptr) AUDDRV_GetEndpointIDs +-@ stdcall -private GetAudioEndpoint(ptr ptr long ptr) AUDDRV_GetAudioEndpoint ++@ stdcall -private GetAudioEndpoint(ptr ptr ptr) AUDDRV_GetAudioEndpoint + @ stdcall -private GetAudioSessionManager(ptr ptr) AUDDRV_GetAudioSessionManager +-- +1.8.3.1 + + +From 5d0fdcf25dec628ef0ad2da8d004328133f8aecc Mon Sep 17 00:00:00 2001 +From: Maarten Lankhorst +Date: Sat, 31 Aug 2013 08:36:01 +0200 +Subject: winepulse: Fix low latency support + +Some games request a 20 ms buffer and will only fill 20 ms. +Since 10 ms periods are too long in this case for winepulse, +fill change period size to 5 ms and force a trigger if +there's still data left to fill. +--- + dlls/winepulse.drv/mmdevdrv.c | 14 ++++++++++++-- + 1 file changed, 12 insertions(+), 2 deletions(-) + +diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c +index b374b53..7c07f54 100644 +--- a/dlls/winepulse.drv/mmdevdrv.c ++++ b/dlls/winepulse.drv/mmdevdrv.c +@@ -1205,11 +1205,15 @@ static HRESULT WINAPI AudioClient_Initialize(IAudioClient *iface, + * default + */ + if (duration < 2 * def) +- period = min; ++ period = min; + else +- period = def; ++ period = def; + if (duration < 2 * period) + duration = 2 * period; ++ ++ /* Uh oh, really low latency requested.. */ ++ if (duration <= 2 * period) ++ period /= 2; + } + period_bytes = pa_frame_size(&This->ss) * MulDiv(period, This->ss.rate, 10000000); + +@@ -1820,6 +1824,7 @@ static HRESULT WINAPI AudioRenderClient_ReleaseBuffer( + { + ACImpl *This = impl_from_IAudioRenderClient(iface); + UINT32 written_bytes = written_frames * pa_frame_size(&This->ss); ++ UINT32 period; + + TRACE("(%p)->(%u, %x)\n", This, written_frames, flags); + +@@ -1854,6 +1859,11 @@ static HRESULT WINAPI AudioRenderClient_ReleaseBuffer( + This->locked_ptr = NULL; + TRACE("Released %u, pad %zu\n", written_frames, This->pad / pa_frame_size(&This->ss)); + assert(This->pad <= This->bufsize_bytes); ++ ++ period = pa_stream_get_buffer_attr(This->stream)->minreq; ++ /* Require a minimum of 3 periods filled, if possible */ ++ if (This->event && This->pad + period <= This->bufsize_bytes && This->pad < period * 3) ++ SetEvent(This->event); + pthread_mutex_unlock(&pulse_lock); + return S_OK; + } +-- +1.8.3.1 + + +From 7c89c29a77330d842a996afe4d1e942538c36c3c Mon Sep 17 00:00:00 2001 +From: Maarten Lankhorst +Date: Sat, 31 Aug 2013 08:36:01 +0200 +Subject: winepulse: drop realtime priority before thread destruction + +prevents having to handle a kernel RT Watchdog Timeout. +--- + dlls/winepulse.drv/mmdevdrv.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c +index 7c07f54..ba68102 100644 +--- a/dlls/winepulse.drv/mmdevdrv.c ++++ b/dlls/winepulse.drv/mmdevdrv.c +@@ -101,6 +101,8 @@ BOOL WINAPI DllMain(HINSTANCE dll, DWORD reason, void *reserved) + } + DisableThreadLibraryCalls(dll); + } else if (reason == DLL_PROCESS_DETACH) { ++ if (pulse_thread) ++ SetThreadPriority(pulse_thread, 0); + if (pulse_ctx) { + pa_context_disconnect(pulse_ctx); + pa_context_unref(pulse_ctx); +-- +1.8.3.1 + + +From 8720fd591a0f45d5e0df2ff874a494fac8e9c414 Mon Sep 17 00:00:00 2001 +From: Maarten Lankhorst +Date: Sat, 31 Aug 2013 08:36:01 +0200 +Subject: winepulse: remove bogus SetEvent from pulse_started_callback + +--- + dlls/winepulse.drv/mmdevdrv.c | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c +index ba68102..68de00c 100644 +--- a/dlls/winepulse.drv/mmdevdrv.c ++++ b/dlls/winepulse.drv/mmdevdrv.c +@@ -559,11 +559,7 @@ static void pulse_latency_callback(pa_stream *s, void *userdata) + + static void pulse_started_callback(pa_stream *s, void *userdata) + { +- ACImpl *This = userdata; +- + TRACE("(Re)started playing\n"); +- if (This->event) +- SetEvent(This->event); + } + + static void pulse_rd_loop(ACImpl *This, size_t bytes) +-- +1.8.3.1 + + +From 33fa776e9ac616fe2ef9064c9a85f3fb5cbfe2fd Mon Sep 17 00:00:00 2001 +From: Maarten Lankhorst +Date: Sat, 31 Aug 2013 08:36:02 +0200 +Subject: winepulse: disable the setevent part of the latency hack + +If you get playback glitches in skyrim or other games as a result of +this patch, PLEASE REPORT TO ME! +--- + dlls/winepulse.drv/mmdevdrv.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c +index 68de00c..643d55e 100644 +--- a/dlls/winepulse.drv/mmdevdrv.c ++++ b/dlls/winepulse.drv/mmdevdrv.c +@@ -1822,7 +1822,7 @@ static HRESULT WINAPI AudioRenderClient_ReleaseBuffer( + { + ACImpl *This = impl_from_IAudioRenderClient(iface); + UINT32 written_bytes = written_frames * pa_frame_size(&This->ss); +- UINT32 period; ++// UINT32 period; + + TRACE("(%p)->(%u, %x)\n", This, written_frames, flags); + +@@ -1858,10 +1858,10 @@ static HRESULT WINAPI AudioRenderClient_ReleaseBuffer( + TRACE("Released %u, pad %zu\n", written_frames, This->pad / pa_frame_size(&This->ss)); + assert(This->pad <= This->bufsize_bytes); + +- period = pa_stream_get_buffer_attr(This->stream)->minreq; ++// period = pa_stream_get_buffer_attr(This->stream)->minreq; + /* Require a minimum of 3 periods filled, if possible */ +- if (This->event && This->pad + period <= This->bufsize_bytes && This->pad < period * 3) +- SetEvent(This->event); ++// if (This->event && This->pad + period <= This->bufsize_bytes && This->pad < period * 3) ++// SetEvent(This->event); + pthread_mutex_unlock(&pulse_lock); + return S_OK; + } +-- +1.8.3.1 + + +From e04f9881ce89fa1fd544d490b6dfbd7feb9ca9d9 Mon Sep 17 00:00:00 2001 +From: Maarten Lankhorst +Date: Sat, 31 Aug 2013 08:36:02 +0200 +Subject: winepulse v20: fix the checks in IsFormatSupported + +Thanks to DGhost001 for reporting and isolating the issue. +--- + dlls/winepulse.drv/mmdevdrv.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c +index 643d55e..86dd10a 100644 +--- a/dlls/winepulse.drv/mmdevdrv.c ++++ b/dlls/winepulse.drv/mmdevdrv.c +@@ -1443,6 +1443,10 @@ static HRESULT WINAPI AudioClient_IsFormatSupported(IAudioClient *iface, + } + } + ++ if (fmt->nBlockAlign != fmt->nChannels * fmt->wBitsPerSample / 8 || ++ fmt->nAvgBytesPerSec != fmt->nBlockAlign * fmt->nSamplesPerSec) ++ hr = S_FALSE; ++ + if (hr == S_OK || !out) { + CoTaskMemFree(closest); + if (out) +-- +1.8.3.1 + + +From e85aa72f7fc24e2a760fc84226bc50c588569197 Mon Sep 17 00:00:00 2001 +From: Maarten Lankhorst +Date: Sat, 31 Aug 2013 08:36:02 +0200 +Subject: winepulse: fixup IsFormatSupported calls + +--- + dlls/mmdevapi/tests/render.c | 164 +++++++++++++++++++++++++++++++++++++++ + dlls/winepulse.drv/mmdevdrv.c | 176 ++++++++++++++++++++++++++++-------------- + 2 files changed, 283 insertions(+), 57 deletions(-) + +diff --git a/dlls/mmdevapi/tests/render.c b/dlls/mmdevapi/tests/render.c +index 7cfd440..57fa4b1 100644 +--- a/dlls/mmdevapi/tests/render.c ++++ b/dlls/mmdevapi/tests/render.c +@@ -474,6 +474,169 @@ static void test_formats(AUDCLNT_SHAREMODE mode) + } + } + ++static void test_formats2(void) ++{ ++ IAudioClient *ac; ++ HRESULT hr; ++ WAVEFORMATEX *pwfx, *pwfx2; ++ WAVEFORMATEXTENSIBLE *pwfe, wfe, *pwfe2; ++ ++ hr = IMMDevice_Activate(dev, &IID_IAudioClient, CLSCTX_INPROC_SERVER, ++ NULL, (void**)&ac); ++ ++ ok(hr == S_OK, "Activation failed with %08x\n", hr); ++ if (hr != S_OK) ++ return; ++ ++ hr = IAudioClient_GetMixFormat(ac, &pwfx); ++ ok(hr == S_OK, "GetMixFormat failed: %08x\n", hr); ++ if (hr != S_OK) ++ return; ++ ++ ok(pwfx->wFormatTag == WAVE_FORMAT_EXTENSIBLE, "Invalid wFormatTag\n"); ++ if (pwfx->wFormatTag != WAVE_FORMAT_EXTENSIBLE) { ++ CoTaskMemFree(pwfx); ++ return; ++ } ++ ++ pwfe = (WAVEFORMATEXTENSIBLE*)pwfx; ++ ok(pwfe->Samples.wValidBitsPerSample, "wValidBitsPerSample should be non-zero\n"); ++ ++ if (pwfx->nChannels > 2) { ++ trace("Limiting channels to 2\n"); ++ pwfx->nChannels = 2; ++ pwfx->nBlockAlign = pwfx->wBitsPerSample / 8 * pwfx->nChannels; ++ pwfx->nAvgBytesPerSec = pwfx->nBlockAlign * pwfx->nSamplesPerSec; ++ pwfe->dwChannelMask = SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT; ++ } ++ ++ wfe = *pwfe; ++ pwfx->nAvgBytesPerSec = pwfx->nBlockAlign = 0; ++ ++ hr = IAudioClient_IsFormatSupported(ac, AUDCLNT_SHAREMODE_EXCLUSIVE, pwfx, NULL); ++ ok(hr == AUDCLNT_E_UNSUPPORTED_FORMAT || hr == AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED, ++ "Exclusive IsFormatSupported with nAvgBytesPerSec=0 and nBlockAlign=0 returned %08x\n", hr); ++ ++ pwfx2 = NULL; ++ hr = IAudioClient_IsFormatSupported(ac, AUDCLNT_SHAREMODE_SHARED, pwfx, &pwfx2); ++ ok((hr == E_INVALIDARG || hr == AUDCLNT_E_UNSUPPORTED_FORMAT) && !pwfx2, ++ "Shared IsFormatSupported with nAvgBytesPerSec=0 and nBlockAlign=0 returned %08x %p\n", hr, pwfx2); ++ CoTaskMemFree(pwfx2); ++ ++ pwfx->wFormatTag = WAVE_FORMAT_PCM; ++ pwfx2 = NULL; ++ hr = IAudioClient_IsFormatSupported(ac, AUDCLNT_SHAREMODE_SHARED, pwfx, &pwfx2); ++ ok((hr == S_OK || hr == AUDCLNT_E_UNSUPPORTED_FORMAT) && !pwfx2, ++ "Shared IsFormatSupported with nAvgBytesPerSec=0 and nBlockAlign=0 returned %08x %p\n", hr, pwfx2); ++ CoTaskMemFree(pwfx2); ++ ++ *pwfe = wfe; ++ pwfe->dwChannelMask = 0; ++ hr = IAudioClient_IsFormatSupported(ac, AUDCLNT_SHAREMODE_EXCLUSIVE, pwfx, NULL); ++ ok(hr == AUDCLNT_E_UNSUPPORTED_FORMAT || hr == AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED, ++ "Exclusive IsFormatSupported with dwChannelMask=0 returned %08x\n", hr); ++ ++ pwfx2 = NULL; ++ hr = IAudioClient_IsFormatSupported(ac, AUDCLNT_SHAREMODE_SHARED, pwfx, &pwfx2); ++ ok(hr == S_OK, ++ "Shared IsFormatSupported with dwChannelMask=0 returned %08x\n", hr); ++ CoTaskMemFree(pwfx2); ++ ++ ++ pwfe->dwChannelMask = 0x3ffff; ++ hr = IAudioClient_IsFormatSupported(ac, AUDCLNT_SHAREMODE_EXCLUSIVE, pwfx, NULL); ++ ok(hr == AUDCLNT_E_UNSUPPORTED_FORMAT || hr == AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED, ++ "Exclusive IsFormatSupported with dwChannelMask=0x3ffff returned %08x\n", hr); ++ ++ pwfx2 = NULL; ++ hr = IAudioClient_IsFormatSupported(ac, AUDCLNT_SHAREMODE_SHARED, pwfx, &pwfx2); ++ ok(hr == S_OK && !pwfx2, ++ "Shared IsFormatSupported with dwChannelMask=0x3ffff returned %08x %p\n", hr, pwfx2); ++ CoTaskMemFree(pwfx2); ++ ++ ++ pwfe->dwChannelMask = 0x40000000; ++ hr = IAudioClient_IsFormatSupported(ac, AUDCLNT_SHAREMODE_EXCLUSIVE, pwfx, NULL); ++ ok(hr == AUDCLNT_E_UNSUPPORTED_FORMAT || hr == AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED, ++ "Exclusive IsFormatSupported with dwChannelMask=0x40000000 returned %08x\n", hr); ++ ++ pwfx2 = NULL; ++ hr = IAudioClient_IsFormatSupported(ac, AUDCLNT_SHAREMODE_SHARED, pwfx, &pwfx2); ++ ok(hr == S_OK && !pwfx2, ++ "Shared IsFormatSupported with dwChannelMask=0x40000000 returned %08x %p\n", hr, pwfx2); ++ CoTaskMemFree(pwfx2); ++ ++ pwfe->dwChannelMask = SPEAKER_ALL | SPEAKER_RESERVED; ++ hr = IAudioClient_IsFormatSupported(ac, AUDCLNT_SHAREMODE_EXCLUSIVE, pwfx, NULL); ++ ok(hr == AUDCLNT_E_UNSUPPORTED_FORMAT || hr == AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED, ++ "Exclusive IsFormatSupported with dwChannelMask=SPEAKER_ALL | SPEAKER_RESERVED returned %08x\n", hr); ++ ++ pwfx2 = NULL; ++ hr = IAudioClient_IsFormatSupported(ac, AUDCLNT_SHAREMODE_SHARED, pwfx, &pwfx2); ++ ok(hr == S_OK && !pwfx2, ++ "Shared IsFormatSupported with dwChannelMask=SPEAKER_ALL | SPEAKER_RESERVED returned %08x %p\n", hr, pwfx2); ++ CoTaskMemFree(pwfx2); ++ ++ *pwfe = wfe; ++ pwfe->Samples.wValidBitsPerSample = 0; ++ hr = IAudioClient_IsFormatSupported(ac, AUDCLNT_SHAREMODE_EXCLUSIVE, pwfx, NULL); ++ ok(hr == AUDCLNT_E_UNSUPPORTED_FORMAT || hr == AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED, ++ "Exclusive IsFormatSupported with wValidBitsPerSample=0 returned %08x\n", hr); ++ ++ pwfx2 = NULL; ++ hr = IAudioClient_IsFormatSupported(ac, AUDCLNT_SHAREMODE_SHARED, pwfx, &pwfx2); ++ ok((hr == S_FALSE || hr == AUDCLNT_E_UNSUPPORTED_FORMAT) && pwfx2, ++ "Shared IsFormatSupported with wValidBitsPerSample=0 returned %08x %p\n", hr, pwfx2); ++ if (pwfx2) { ++ pwfe2 = (WAVEFORMATEXTENSIBLE*)pwfx2; ++ ok(pwfe2->Samples.wValidBitsPerSample == pwfx->wBitsPerSample, ++ "Shared IsFormatSupported had wValidBitsPerSample set to %u, not %u\n", ++ pwfe2->Samples.wValidBitsPerSample, pwfx->wBitsPerSample); ++ CoTaskMemFree(pwfx2); ++ } ++ ++ pwfx2 = NULL; ++ pwfe->Samples.wValidBitsPerSample = pwfx->wBitsPerSample + 1; ++ hr = IAudioClient_IsFormatSupported(ac, AUDCLNT_SHAREMODE_SHARED, pwfx, &pwfx2); ++ ok((hr == E_INVALIDARG || hr == AUDCLNT_E_UNSUPPORTED_FORMAT) && !pwfx2, ++ "Shared IsFormatSupported with wValidBitsPerSample += 1 returned %08x %p\n", hr, pwfx2); ++ ++ *pwfe = wfe; ++ memset(&pwfe->SubFormat, 0xff, 16); ++ pwfx2 = NULL; ++ hr = IAudioClient_IsFormatSupported(ac, AUDCLNT_SHAREMODE_SHARED, pwfx, &pwfx2); ++ ok(hr == AUDCLNT_E_UNSUPPORTED_FORMAT && !pwfx2, ++ "Shared IsFormatSupported with SubFormat=-1 returned %08x %p\n", hr, pwfx2); ++ CoTaskMemFree(pwfx2); ++ ++ *pwfe = wfe; ++ pwfx2 = NULL; ++ pwfe->Samples.wValidBitsPerSample = pwfx->wBitsPerSample = 256; ++ pwfx->nBlockAlign = pwfx->wBitsPerSample / 8 * pwfx->nChannels; ++ pwfx->nAvgBytesPerSec = pwfx->nBlockAlign * pwfx->nSamplesPerSec; ++ hr = IAudioClient_IsFormatSupported(ac, AUDCLNT_SHAREMODE_SHARED, pwfx, &pwfx2); ++ ok((hr == E_INVALIDARG || hr == AUDCLNT_E_UNSUPPORTED_FORMAT) && !pwfx2, ++ "Shared IsFormatSupported with wBitsPerSample=256 returned %08x %p\n", hr, pwfx2); ++ CoTaskMemFree(pwfx2); ++ ++ *pwfe = wfe; ++ pwfx2 = NULL; ++ pwfe->Samples.wValidBitsPerSample = pwfx->wBitsPerSample - 1; ++ hr = IAudioClient_IsFormatSupported(ac, AUDCLNT_SHAREMODE_SHARED, pwfx, &pwfx2); ++ ok(hr == S_FALSE && pwfx2, ++ "Shared IsFormatSupported with wValidBitsPerSample-=1 returned %08x %p\n", hr, pwfx2); ++ if (pwfx2) { ++ pwfe2 = (WAVEFORMATEXTENSIBLE*)pwfx2; ++ ok(pwfe2->Samples.wValidBitsPerSample == pwfx->wBitsPerSample, ++ "Shared IsFormatSupported had wValidBitsPerSample set to %u, not %u\n", ++ pwfe2->Samples.wValidBitsPerSample, pwfx->wBitsPerSample); ++ CoTaskMemFree(pwfx2); ++ } ++ ++ CoTaskMemFree(pwfx); ++ IAudioClient_Release(ac); ++} ++ + static void test_references(void) + { + IAudioClient *ac; +@@ -2241,6 +2404,7 @@ START_TEST(render) + test_audioclient(); + test_formats(AUDCLNT_SHAREMODE_EXCLUSIVE); + test_formats(AUDCLNT_SHAREMODE_SHARED); ++ test_formats2(); + test_references(); + test_marshal(); + trace("Output to a MS-DOS console is particularly slow and disturbs timing.\n"); +diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c +index 86dd10a..554a9fc 100644 +--- a/dlls/winepulse.drv/mmdevdrv.c ++++ b/dlls/winepulse.drv/mmdevdrv.c +@@ -1104,10 +1104,8 @@ static HRESULT pulse_spec_from_waveformat(ACImpl *This, const WAVEFORMATEX *fmt) + } + } + This->map.channels = fmt->nChannels; +- if (!mask || mask == SPEAKER_ALL) ++ if (!mask || (mask & (SPEAKER_ALL|SPEAKER_RESERVED))) + mask = get_channel_mask(fmt->nChannels); +- else if (mask == ~0U && fmt->nChannels == 1) +- mask = SPEAKER_FRONT_CENTER; + for (j = 0; j < sizeof(pulse_pos_from_wfx)/sizeof(*pulse_pos_from_wfx) && i < fmt->nChannels; ++j) { + if (mask & (1 << j)) + This->map.map[i++] = pulse_pos_from_wfx[j]; +@@ -1381,83 +1379,147 @@ static HRESULT WINAPI AudioClient_IsFormatSupported(IAudioClient *iface, + ACImpl *This = impl_from_IAudioClient(iface); + HRESULT hr = S_OK; + WAVEFORMATEX *closest = NULL; ++ BOOL exclusive; + + TRACE("(%p)->(%x, %p, %p)\n", This, mode, fmt, out); + +- if (!fmt || (mode == AUDCLNT_SHAREMODE_SHARED && !out)) ++ if (!fmt) + return E_POINTER; + + if (out) + *out = NULL; +- if (mode != AUDCLNT_SHAREMODE_SHARED && mode != AUDCLNT_SHAREMODE_EXCLUSIVE) ++ ++ if (mode == AUDCLNT_SHAREMODE_EXCLUSIVE) { ++ exclusive = 1; ++ out = NULL; ++ } else if (mode == AUDCLNT_SHAREMODE_SHARED) { ++ exclusive = 0; ++ if (!out) ++ return E_POINTER; ++ } else + return E_INVALIDARG; +- if (mode == AUDCLNT_SHAREMODE_EXCLUSIVE) +- return This->dataflow == eCapture ? AUDCLNT_E_UNSUPPORTED_FORMAT : AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED; +- switch (fmt->wFormatTag) { +- case WAVE_FORMAT_EXTENSIBLE: +- if (fmt->cbSize < sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX)) +- return E_INVALIDARG; +- dump_fmt(fmt); +- break; +- case WAVE_FORMAT_ALAW: +- case WAVE_FORMAT_MULAW: +- case WAVE_FORMAT_IEEE_FLOAT: +- case WAVE_FORMAT_PCM: +- dump_fmt(fmt); +- break; +- default: +- dump_fmt(fmt); +- return AUDCLNT_E_UNSUPPORTED_FORMAT; +- } ++ + if (fmt->nChannels == 0) + return AUDCLNT_E_UNSUPPORTED_FORMAT; ++ + closest = clone_format(fmt); +- if (!closest) { +- if (out) +- *out = NULL; ++ if (!closest) + return E_OUTOFMEMORY; +- } + +- if (fmt->wFormatTag == WAVE_FORMAT_EXTENSIBLE) { +- UINT32 mask = 0, i, channels = 0; ++ dump_fmt(fmt); ++ ++ switch (fmt->wFormatTag) { ++ case WAVE_FORMAT_EXTENSIBLE: { + WAVEFORMATEXTENSIBLE *ext = (WAVEFORMATEXTENSIBLE*)closest; + +- if ((fmt->nChannels > 1 && ext->dwChannelMask == SPEAKER_ALL) || +- (fmt->nChannels == 1 && ext->dwChannelMask == ~0U)) { +- mask = ext->dwChannelMask; +- channels = fmt->nChannels; +- } else if (ext->dwChannelMask) { +- for (i = 1; !(i & SPEAKER_RESERVED); i <<= 1) { +- if (i & ext->dwChannelMask) { +- mask |= i; +- channels++; ++ if ((fmt->cbSize != sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX) && ++ fmt->cbSize != sizeof(WAVEFORMATEXTENSIBLE)) || ++ fmt->nBlockAlign != fmt->wBitsPerSample / 8 * fmt->nChannels || ++ ext->Samples.wValidBitsPerSample > fmt->wBitsPerSample || ++ fmt->nAvgBytesPerSec != fmt->nBlockAlign * fmt->nSamplesPerSec) { ++ hr = E_INVALIDARG; ++ break; ++ } ++ ++ if (exclusive) { ++ UINT32 mask = 0, i, channels = 0; + -+ if (index >= session->channel_count) -+ return E_INVALIDARG; ++ if (!(ext->dwChannelMask & (SPEAKER_ALL | SPEAKER_RESERVED))) { ++ for (i = 1; !(i & SPEAKER_RESERVED); i <<= 1) { ++ if (i & ext->dwChannelMask) { ++ mask |= i; ++ channels++; ++ } ++ } + -+ if (context) -+ FIXME("Notifications not supported yet\n"); ++ if (channels != fmt->nChannels || (ext->dwChannelMask & ~mask)) { ++ hr = AUDCLNT_E_UNSUPPORTED_FORMAT; ++ break; + } ++ } else { ++ hr = AUDCLNT_E_UNSUPPORTED_FORMAT; ++ break; + } +- if (channels < fmt->nChannels) +- mask = get_channel_mask(fmt->nChannels); +- } else +- mask = ext->dwChannelMask; +- if (ext->dwChannelMask != mask) { +- ext->dwChannelMask = mask; +- hr = S_FALSE; + } + -+ TRACE("Pulseaudio does not support session volume control\n"); ++ if (IsEqualGUID(&ext->SubFormat, &KSDATAFORMAT_SUBTYPE_IEEE_FLOAT)) { ++ if (fmt->wBitsPerSample != 32) { ++ hr = E_INVALIDARG; ++ break; ++ } + -+ pthread_mutex_lock(&pulse_lock); -+ session->channel_vols[index] = level; -+ pthread_mutex_unlock(&pulse_lock); ++ if (ext->Samples.wValidBitsPerSample != fmt->wBitsPerSample) { ++ hr = S_FALSE; ++ ext->Samples.wValidBitsPerSample = fmt->wBitsPerSample; ++ } ++ } else if (IsEqualGUID(&ext->SubFormat, &KSDATAFORMAT_SUBTYPE_PCM)) { ++ if (!fmt->wBitsPerSample || fmt->wBitsPerSample > 32 || fmt->wBitsPerSample % 8) { ++ hr = E_INVALIDARG; ++ break; ++ } + -+ return S_OK; -+} ++ if (ext->Samples.wValidBitsPerSample != fmt->wBitsPerSample && ++ !(fmt->wBitsPerSample == 32 && ++ ext->Samples.wValidBitsPerSample == 24)) { ++ hr = S_FALSE; ++ ext->Samples.wValidBitsPerSample = fmt->wBitsPerSample; ++ break; ++ } ++ } else { ++ hr = AUDCLNT_E_UNSUPPORTED_FORMAT; ++ break; ++ } + -+static HRESULT WINAPI ChannelAudioVolume_GetChannelVolume( -+ IChannelAudioVolume *iface, UINT32 index, float *level) -+{ -+ AudioSessionWrapper *This = impl_from_IChannelAudioVolume(iface); -+ AudioSession *session = This->session; ++ break; + } + +- if (fmt->nBlockAlign != fmt->nChannels * fmt->wBitsPerSample / 8 || +- fmt->nAvgBytesPerSec != fmt->nBlockAlign * fmt->nSamplesPerSec) +- hr = S_FALSE; ++ case WAVE_FORMAT_ALAW: ++ case WAVE_FORMAT_MULAW: ++ if (fmt->wBitsPerSample != 8) { ++ hr = E_INVALIDARG; ++ break; ++ } ++ /* Fall-through */ ++ case WAVE_FORMAT_IEEE_FLOAT: ++ if (fmt->wFormatTag == WAVE_FORMAT_IEEE_FLOAT && fmt->wBitsPerSample != 32) { ++ hr = E_INVALIDARG; ++ break; ++ } ++ /* Fall-through */ ++ case WAVE_FORMAT_PCM: ++ if (fmt->wFormatTag == WAVE_FORMAT_PCM && ++ (!fmt->wBitsPerSample || fmt->wBitsPerSample > 32 || fmt->wBitsPerSample % 8)) { ++ hr = E_INVALIDARG; ++ break; ++ } + -+ TRACE("(%p)->(%d, %p)\n", session, index, level); ++ if (fmt->nChannels > 2) { ++ hr = AUDCLNT_E_UNSUPPORTED_FORMAT; ++ break; ++ } ++ /* ++ * fmt->cbSize, fmt->nBlockAlign and fmt->nAvgBytesPerSec seem to be ++ * ignored, invalid values are happily accepted. ++ */ ++ break; ++ default: ++ hr = AUDCLNT_E_UNSUPPORTED_FORMAT; ++ break; ++ } + +- if (hr == S_OK || !out) { ++ if (exclusive && hr != S_OK) { ++ hr = AUDCLNT_E_UNSUPPORTED_FORMAT; + CoTaskMemFree(closest); +- if (out) +- *out = NULL; +- } else if (closest) { +- closest->nBlockAlign = +- closest->nChannels * closest->wBitsPerSample / 8; +- closest->nAvgBytesPerSec = +- closest->nBlockAlign * closest->nSamplesPerSec; ++ } else if (hr != S_FALSE) ++ CoTaskMemFree(closest); ++ else + *out = closest; +- } + -+ if (!level) -+ return NULL_PTR_ERR; ++ /* Winepulse does not currently support exclusive mode, if you know of an ++ * application that uses it, I will correct this.. ++ */ ++ if (hr == S_OK && exclusive) ++ return This->dataflow == eCapture ? AUDCLNT_E_UNSUPPORTED_FORMAT : AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED; + + TRACE("returning: %08x %p\n", hr, out ? *out : NULL); + return hr; +-- +1.8.3.1 + + +From 1d7e52afd87f0b37f625580f185d060f021f3fd3 Mon Sep 17 00:00:00 2001 +From: Maarten Lankhorst +Date: Sat, 31 Aug 2013 08:36:02 +0200 +Subject: winepulse v21: return early if padding didn't update + +--- + dlls/winepulse.drv/mmdevdrv.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c +index 554a9fc..a4575d5 100644 +--- a/dlls/winepulse.drv/mmdevdrv.c ++++ b/dlls/winepulse.drv/mmdevdrv.c +@@ -531,7 +531,10 @@ static void pulse_wr_callback(pa_stream *s, size_t bytes, void *userdata) + else + This->pad = 0; + +- assert(oldpad >= This->pad); ++ if (oldpad == This->pad) ++ return; + -+ if (index >= session->channel_count) -+ return E_INVALIDARG; ++ assert(oldpad > This->pad); + + This->clock_written += oldpad - This->pad; + TRACE("New pad: %zu (-%zu)\n", This->pad / pa_frame_size(&This->ss), (oldpad - This->pad) / pa_frame_size(&This->ss)); +-- +1.8.3.1 + + +From 9f245548f8bca9db1892bc7560db2d66217a9a44 Mon Sep 17 00:00:00 2001 +From: Maarten Lankhorst +Date: Sat, 31 Aug 2013 08:36:02 +0200 +Subject: winepulse: fix unneeded free in write.. + +--- + dlls/winepulse.drv/mmdevdrv.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c +index a4575d5..3ca68fd 100644 +--- a/dlls/winepulse.drv/mmdevdrv.c ++++ b/dlls/winepulse.drv/mmdevdrv.c +@@ -1886,6 +1886,10 @@ static HRESULT WINAPI AudioRenderClient_GetBuffer(IAudioRenderClient *iface, + return hr; + } + ++static void pulse_free_noop(void *buf) ++{ ++} + -+ *level = session->channel_vols[index]; + static HRESULT WINAPI AudioRenderClient_ReleaseBuffer( + IAudioRenderClient *iface, UINT32 written_frames, DWORD flags) + { +@@ -1921,7 +1925,7 @@ static HRESULT WINAPI AudioRenderClient_ReleaseBuffer( + if (This->locked_ptr) + pa_stream_write(This->stream, This->locked_ptr, written_bytes, NULL, 0, PA_SEEK_RELATIVE); + else +- pa_stream_write(This->stream, This->tmp_buffer, written_bytes, NULL, 0, PA_SEEK_RELATIVE); ++ pa_stream_write(This->stream, This->tmp_buffer, written_bytes, pulse_free_noop, 0, PA_SEEK_RELATIVE); + This->pad += written_bytes; + This->locked_ptr = NULL; + TRACE("Released %u, pad %zu\n", written_frames, This->pad / pa_frame_size(&This->ss)); +-- +1.8.3.1 + + +From eecbc197a50ddee696590019e8aa644108f3efb2 Mon Sep 17 00:00:00 2001 +From: Maarten Lankhorst +Date: Sat, 31 Aug 2013 08:36:02 +0200 +Subject: winepulse v23: fixup a invalid free in mmdevapi + +array members of ids should be dynamically allocated, judging from valgrind output. +--- + dlls/winepulse.drv/mmdevdrv.c | 12 ++++++++++-- + 1 file changed, 10 insertions(+), 2 deletions(-) + +diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c +index 3ca68fd..5b041a2 100644 +--- a/dlls/winepulse.drv/mmdevdrv.c ++++ b/dlls/winepulse.drv/mmdevdrv.c +@@ -726,6 +726,8 @@ HRESULT WINAPI AUDDRV_GetEndpointIDs(EDataFlow flow, const WCHAR ***ids, GUID ** + UINT *num, UINT *def_index) + { + HRESULT hr = S_OK; ++ WCHAR *id; + -+ return S_OK; -+} + TRACE("%d %p %p %p\n", flow, ids, num, def_index); + + pthread_mutex_lock(&pulse_lock); +@@ -737,16 +739,22 @@ HRESULT WINAPI AUDDRV_GetEndpointIDs(EDataFlow flow, const WCHAR ***ids, GUID ** + *def_index = 0; + + *ids = HeapAlloc(GetProcessHeap(), 0, sizeof(**ids)); ++ *keys = NULL; + if (!*ids) + return E_OUTOFMEMORY; +- (*ids)[0] = defaultW; + ++ (*ids)[0] = id = HeapAlloc(GetProcessHeap(), 0, sizeof(defaultW)); + *keys = HeapAlloc(GetProcessHeap(), 0, sizeof(**keys)); +- if (!*keys) { ++ if (!*keys || !id) { ++ HeapFree(GetProcessHeap(), 0, id); ++ HeapFree(GetProcessHeap(), 0, *keys); + HeapFree(GetProcessHeap(), 0, *ids); + *ids = NULL; ++ *keys = NULL; + return E_OUTOFMEMORY; + } ++ memcpy(id, defaultW, sizeof(defaultW)); + -+static HRESULT WINAPI ChannelAudioVolume_SetAllVolumes( -+ IChannelAudioVolume *iface, UINT32 count, const float *levels, -+ const GUID *context) -+{ -+ AudioSessionWrapper *This = impl_from_IChannelAudioVolume(iface); -+ AudioSession *session = This->session; -+ int i; + if (flow == eRender) + (*keys)[0] = pulse_render_guid; + else +-- +1.8.3.1 + +From 8513286932d086a28eeab6652b81990b7cb3f36d Mon Sep 17 00:00:00 2001 +From: Maarten Lankhorst +Date: Sat, 31 Aug 2013 08:36:03 +0200 +Subject: winepulse: use a pi-mutex for serialization. + +The winepulse thread is realtime, to prevent blocking it indefinitely +use priority inheritance. Only initialize and release are potentially +unsafe, the rest should be ok with -rt. +--- + dlls/winepulse.drv/mmdevdrv.c | 13 ++++++++++++- + 1 file changed, 12 insertions(+), 1 deletion(-) + +diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c +index 5b041a2..a09ce7f 100644 +--- a/dlls/winepulse.drv/mmdevdrv.c ++++ b/dlls/winepulse.drv/mmdevdrv.c +@@ -22,6 +22,8 @@ + + #define NONAMELESSUNION + #define COBJMACROS ++#define _GNU_SOURCE + -+ TRACE("(%p)->(%d, %p, %s)\n", session, count, levels, -+ wine_dbgstr_guid(context)); + #include "config.h" + #include + #include +@@ -30,6 +32,7 @@ + #include + #include + #include ++#include + + #include + +@@ -68,7 +71,7 @@ static pa_context *pulse_ctx; + static pa_mainloop *pulse_ml; + + static HANDLE pulse_thread; +-static pthread_mutex_t pulse_lock = PTHREAD_MUTEX_INITIALIZER; ++static pthread_mutex_t pulse_lock; + static pthread_cond_t pulse_cond = PTHREAD_COND_INITIALIZER; + static struct list g_sessions = LIST_INIT(g_sessions); + +@@ -93,6 +96,8 @@ BOOL WINAPI DllMain(HINSTANCE dll, DWORD reason, void *reserved) + { + if (reason == DLL_PROCESS_ATTACH) { + HKEY key; ++ pthread_mutexattr_t attr; + -+ if (!levels) -+ return NULL_PTR_ERR; + if (RegOpenKeyW(HKEY_CURRENT_USER, pulse_keyW, &key) == ERROR_SUCCESS) { + DWORD size = sizeof(pulse_stream_volume); + RegQueryValueExW(key, pulse_streamW, 0, NULL, +@@ -100,6 +105,12 @@ BOOL WINAPI DllMain(HINSTANCE dll, DWORD reason, void *reserved) + RegCloseKey(key); + } + DisableThreadLibraryCalls(dll); + -+ if (count != session->channel_count) -+ return E_INVALIDARG; ++ pthread_mutexattr_init(&attr); ++ pthread_mutexattr_setprotocol(&attr, PTHREAD_PRIO_INHERIT); + -+ if (context) -+ FIXME("Notifications not supported yet\n"); ++ if (pthread_mutex_init(&pulse_lock, &attr) != 0) ++ pthread_mutex_init(&pulse_lock, NULL); + } else if (reason == DLL_PROCESS_DETACH) { + if (pulse_thread) + SetThreadPriority(pulse_thread, 0); +-- +1.8.3.1 + + +From 5a091534be9dcb6cdfa8bdf9f4e642b42acd35de Mon Sep 17 00:00:00 2001 +From: Maarten Lankhorst +Date: Sat, 31 Aug 2013 08:36:03 +0200 +Subject: winepulse: add support for IMarshal + +Fixes bug 32161 for winepulse. Based On Jeff Klein's patches for the +other drivers. +--- + dlls/winepulse.drv/mmdevdrv.c | 31 +++++++++++++++++++++++++++++++ + 1 file changed, 31 insertions(+) + +diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c +index a09ce7f..f052a08 100644 +--- a/dlls/winepulse.drv/mmdevdrv.c ++++ b/dlls/winepulse.drv/mmdevdrv.c +@@ -169,6 +169,7 @@ struct ACImpl { + IAudioClock IAudioClock_iface; + IAudioClock2 IAudioClock2_iface; + IAudioStreamVolume IAudioStreamVolume_iface; ++ IUnknown *marshal; + IMMDevice *parent; + struct list entry; + float vol[PA_CHANNELS_MAX]; +@@ -834,6 +835,12 @@ HRESULT WINAPI AUDDRV_GetAudioEndpoint(GUID *guid, IMMDevice *dev, IAudioClient + This->parent = dev; + for (i = 0; i < PA_CHANNELS_MAX; ++i) + This->vol[i] = 1.f; + -+ TRACE("Pulseaudio does not support session volume control\n"); ++ hr = CoCreateFreeThreadedMarshaler((IUnknown*)This, &This->marshal); ++ if (hr) { ++ HeapFree(GetProcessHeap(), 0, This); ++ return hr; ++ } + IMMDevice_AddRef(This->parent); + + *out = &This->IAudioClient_iface; +@@ -845,10 +852,13 @@ HRESULT WINAPI AUDDRV_GetAudioEndpoint(GUID *guid, IMMDevice *dev, IAudioClient + static HRESULT WINAPI AudioClient_QueryInterface(IAudioClient *iface, + REFIID riid, void **ppv) + { ++ ACImpl *This = impl_from_IAudioClient(iface); + -+ pthread_mutex_lock(&pulse_lock); -+ for(i = 0; i < count; ++i) -+ session->channel_vols[i] = levels[i]; -+ pthread_mutex_unlock(&pulse_lock); -+ return S_OK; -+} + TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); + + if (!ppv) + return E_POINTER; + -+static HRESULT WINAPI ChannelAudioVolume_GetAllVolumes( -+ IChannelAudioVolume *iface, UINT32 count, float *levels) -+{ -+ AudioSessionWrapper *This = impl_from_IChannelAudioVolume(iface); -+ AudioSession *session = This->session; -+ int i; + *ppv = NULL; + if (IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IAudioClient)) + *ppv = iface; +@@ -856,6 +866,10 @@ static HRESULT WINAPI AudioClient_QueryInterface(IAudioClient *iface, + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; + } + -+ TRACE("(%p)->(%d, %p)\n", session, count, levels); ++ if (IsEqualIID(riid, &IID_IMarshal)) ++ return IUnknown_QueryInterface(This->marshal, riid, ppv); + -+ if (!levels) -+ return NULL_PTR_ERR; + WARN("Unknown interface %s\n", debugstr_guid(riid)); + return E_NOINTERFACE; + } +@@ -888,6 +902,7 @@ static ULONG WINAPI AudioClient_Release(IAudioClient *iface) + list_remove(&This->entry); + pthread_mutex_unlock(&pulse_lock); + } ++ IUnknown_Release(This->marshal); + IMMDevice_Release(This->parent); + HeapFree(GetProcessHeap(), 0, This->tmp_buffer); + HeapFree(GetProcessHeap(), 0, This); +@@ -1826,6 +1841,7 @@ static const IAudioClientVtbl AudioClient_Vtbl = + static HRESULT WINAPI AudioRenderClient_QueryInterface( + IAudioRenderClient *iface, REFIID riid, void **ppv) + { ++ ACImpl *This = impl_from_IAudioRenderClient(iface); + TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); + + if (!ppv) +@@ -1840,6 +1856,9 @@ static HRESULT WINAPI AudioRenderClient_QueryInterface( + return S_OK; + } + ++ if (IsEqualIID(riid, &IID_IMarshal)) ++ return IUnknown_QueryInterface(This->marshal, riid, ppv); + -+ if (count != session->channel_count) -+ return E_INVALIDARG; + WARN("Unknown interface %s\n", debugstr_guid(riid)); + return E_NOINTERFACE; + } +@@ -1969,6 +1988,7 @@ static const IAudioRenderClientVtbl AudioRenderClient_Vtbl = { + static HRESULT WINAPI AudioCaptureClient_QueryInterface( + IAudioCaptureClient *iface, REFIID riid, void **ppv) + { ++ ACImpl *This = impl_from_IAudioCaptureClient(iface); + TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); + + if (!ppv) +@@ -1983,6 +2003,9 @@ static HRESULT WINAPI AudioCaptureClient_QueryInterface( + return S_OK; + } + ++ if (IsEqualIID(riid, &IID_IMarshal)) ++ return IUnknown_QueryInterface(This->marshal, riid, ppv); + -+ for(i = 0; i < count; ++i) -+ levels[i] = session->channel_vols[i]; + WARN("Unknown interface %s\n", debugstr_guid(riid)); + return E_NOINTERFACE; + } +@@ -2125,6 +2148,9 @@ static HRESULT WINAPI AudioClock_QueryInterface(IAudioClock *iface, + return S_OK; + } + ++ if (IsEqualIID(riid, &IID_IMarshal)) ++ return IUnknown_QueryInterface(This->marshal, riid, ppv); + -+ return S_OK; -+} + WARN("Unknown interface %s\n", debugstr_guid(riid)); + return E_NOINTERFACE; + } +@@ -2260,6 +2286,8 @@ static const IAudioClock2Vtbl AudioClock2_Vtbl = + static HRESULT WINAPI AudioStreamVolume_QueryInterface( + IAudioStreamVolume *iface, REFIID riid, void **ppv) + { ++ ACImpl *This = impl_from_IAudioStreamVolume(iface); + -+static const IChannelAudioVolumeVtbl ChannelAudioVolume_Vtbl = -+{ -+ ChannelAudioVolume_QueryInterface, -+ ChannelAudioVolume_AddRef, -+ ChannelAudioVolume_Release, -+ ChannelAudioVolume_GetChannelCount, -+ ChannelAudioVolume_SetChannelVolume, -+ ChannelAudioVolume_GetChannelVolume, -+ ChannelAudioVolume_SetAllVolumes, -+ ChannelAudioVolume_GetAllVolumes -+}; + TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); + + if (!ppv) +@@ -2274,6 +2302,9 @@ static HRESULT WINAPI AudioStreamVolume_QueryInterface( + return S_OK; + } + ++ if (IsEqualIID(riid, &IID_IMarshal)) ++ return IUnknown_QueryInterface(This->marshal, riid, ppv); + -+HRESULT WINAPI AUDDRV_GetAudioSessionManager(IMMDevice *device, -+ IAudioSessionManager2 **out) -+{ -+ SessionMgr *This = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(SessionMgr)); -+ *out = NULL; -+ if (!This) -+ return E_OUTOFMEMORY; -+ This->IAudioSessionManager2_iface.lpVtbl = &AudioSessionManager2_Vtbl; -+ This->device = device; -+ This->ref = 1; -+ *out = &This->IAudioSessionManager2_iface; -+ return S_OK; -+} -diff -uhNr wine-1.7.0/dlls/winepulse.drv/winepulse.drv.spec wine-1.7.0-multimedia/dlls/winepulse.drv/winepulse.drv.spec ---- wine-1.7.0/dlls/winepulse.drv/winepulse.drv.spec 1970-01-01 01:00:00.000000000 +0100 -+++ wine-1.7.0-multimedia/dlls/winepulse.drv/winepulse.drv.spec 2013-08-17 08:36:37.219593908 +0200 -@@ -0,0 +1,5 @@ -+# MMDevAPI driver functions -+@ stdcall -private GetPriority() AUDDRV_GetPriority -+@ stdcall -private GetEndpointIDs(long ptr ptr ptr ptr) AUDDRV_GetEndpointIDs -+@ stdcall -private GetAudioEndpoint(ptr ptr ptr) AUDDRV_GetAudioEndpoint -+@ stdcall -private GetAudioSessionManager(ptr ptr) AUDDRV_GetAudioSessionManager + WARN("Unknown interface %s\n", debugstr_guid(riid)); + return E_NOINTERFACE; + } +-- +1.8.3.1 + diff --git a/wine-pulse-winmm-Load-winealsa-if-winepulse-is-found.patch b/wine-pulse-winmm-Load-winealsa-if-winepulse-is-found.patch deleted file mode 100644 index f99c72b..0000000 --- a/wine-pulse-winmm-Load-winealsa-if-winepulse-is-found.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 8f39a12639ee1d39c8caaf5f2ab72540d281814e Mon Sep 17 00:00:00 2001 -From: Maarten Lankhorst -Date: Sat, 29 Dec 2012 01:02:30 +0100 -Subject: [PATCH] winmm: Load winealsa if winepulse is found - -Fixes midi on winepulse ---- - dlls/winmm/lolvldrv.c | 5 ++++- - 1 files changed, 4 insertions(+), 1 deletions(-) - -diff --git a/dlls/winmm/lolvldrv.c b/dlls/winmm/lolvldrv.c -index f387323..3b1be27 100644 ---- a/dlls/winmm/lolvldrv.c -+++ b/dlls/winmm/lolvldrv.c -@@ -543,7 +543,10 @@ static void MMDRV_Init(void) - drvA = HeapAlloc(GetProcessHeap(), 0, size); - WideCharToMultiByte(CP_ACP, 0, pv.u.pwszVal, -1, drvA, size, NULL, NULL); - -- MMDRV_Install(drvA, drvA, FALSE); -+ if (!strcasecmp(drvA, "winepulse.drv")) -+ MMDRV_Install("winealsa.drv", "winealsa.drv", 0); -+ else -+ MMDRV_Install(drvA, drvA, FALSE); - - HeapFree(GetProcessHeap(), 0, drvA); - PropVariantClear(&pv); --- -1.6.5.GIT - diff --git a/wine.spec b/wine.spec index 2620450..0b52ab2 100644 --- a/wine.spec +++ b/wine.spec @@ -3,8 +3,8 @@ %global winemono 0.0.8 Name: wine -Version: 1.7.1 -Release: 2%{?dist} +Version: 1.7.2 +Release: 1%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -32,9 +32,6 @@ Source108: wine-wordpad.desktop Source109: wine-oleview.desktop # build fixes -# do not check for glAccum -# wget http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/app-emulation/wine/files/wine-1.5.17-osmesa-check.patch?revision=1.1 -Patch1: wine-1.5.17-osmesa-check.patch # wine bugs @@ -56,16 +53,14 @@ Patch511: wine-cjk.patch ## winepulse backend # http://repo.or.cz/w/wine/multimedia.git -# Fri, 2 Aug 2013 21:19:49 +0000 -# configure -# configure.ac -# dlls/mmdevapi/main.c -# dlls/winepulse.drv -# -Patch1001: wine-pulse-1.7.0.patch -# use winealsa for midi in the pa backend -# http://repo.or.cz/w/wine/multimedia.git/commit/8f39a12639ee1d39c8caaf5f2ab72540d281814e -Patch1002: wine-pulse-winmm-Load-winealsa-if-winepulse-is-found.patch +# Sat, 31 Aug 2013 06:36:03 +0000 +# based on wine tree 1.7.1 +## +# git clone http://repo.or.cz/w/wine/multimedia.git +# cd multimedia.git +# git format-patch -k --stdout bea77093864177659aa16aab5d81b213015990b9~..eecbc197a50ddee696590019e8aa644108f3efb2 > ~/cvs/fedora/rpms/wine/wine-pulse-1.7.1.patch +# git format-patch -k --stdout 8513286932d086a28eeab6652b81990b7cb3f36d~..5a091534be9dcb6cdfa8bdf9f4e642b42acd35de --stdout >> ~/cvs/fedora/rpms/wine/wine-pulse-1.7.1.patch +Patch1001: wine-pulse-1.7.1.patch %if !%{?no64bit} ExclusiveArch: %{ix86} x86_64 %{arm} @@ -152,7 +147,8 @@ Requires: wine-openal(x86-32) = %{version}-%{release} Requires: mingw32-wine-gecko = %winegecko Requires: wine-mono = %winemono %endif -# Requires: samba-winbind-clients(x86-32) wait for rhbz#968860 +# wait for rhbz#968860 to require arch-specific samba-winbind-clients +Requires: /usr/bin/ntlm_auth Requires: mesa-dri-drivers(x86-32) %endif @@ -177,7 +173,6 @@ Requires: wine-openal(x86-64) = %{version}-%{release} Requires: mingw64-wine-gecko = %winegecko Requires: wine-mono = %winemono %endif -# Requires: samba-winbind-clients(x86-64) wait for rhbz#968860 Requires: mesa-dri-drivers(x86-64) Requires: wine-wow(x86-64) = %{version}-%{release} Conflicts: wine-wow(x86-32) = %{version}-%{release} @@ -536,12 +531,9 @@ This package adds an openal driver for wine. %prep %setup -q -%patch1 -p1 -b.osmesa - %patch511 -p1 -b.cjk %patch1001 -p1 -b.winepulse -%patch1002 -p1 -b.winepulse-midi autoreconf @@ -983,6 +975,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/atl.dll.so %{_libdir}/wine/atl80.dll.so %{_libdir}/wine/atl100.dll.so +%{_libdir}/wine/atl110.dll.so %{_libdir}/wine/authz.dll.so %{_libdir}/wine/avicap32.dll.so %{_libdir}/wine/avifil32.dll.so @@ -1016,6 +1009,8 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/d3drm.dll.so %{_libdir}/wine/d3dx9_*.dll.so %{_libdir}/wine/d3dx10_*.dll.so +%{_libdir}/wine/d3dx11_42.dll.so +%{_libdir}/wine/d3dx11_43.dll.so %{_libdir}/wine/d3dxof.dll.so %{_libdir}/wine/dbgeng.dll.so %{_libdir}/wine/dbghelp.dll.so @@ -1170,6 +1165,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/msxml6.dll.so %{_libdir}/wine/nddeapi.dll.so %{_libdir}/wine/netapi32.dll.so +%{_libdir}/wine/netcfgx.dll.so %{_libdir}/wine/netsh.exe.so %{_libdir}/wine/newdev.dll.so %{_libdir}/wine/normaliz.dll.so @@ -1314,6 +1310,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/xinput1_1.dll.so %{_libdir}/wine/xinput1_2.dll.so %{_libdir}/wine/xinput1_3.dll.so +%{_libdir}/wine/xinput1_4.dll.so %{_libdir}/wine/xinput9_1_0.dll.so %{_libdir}/wine/xmllite.dll.so %{_libdir}/wine/xolehlp.dll.so @@ -1558,6 +1555,12 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sun Sep 15 2013 Andreas Bierfert +- 1.7.2-1 +- version upgrade +- workaround for rhbz#968860 +- upgraded winepulse + * Sat Aug 31 2013 Andreas Bierfert - 1.7.1-2 - fix icons with patch provided by Frank Dana (rhbz#997543) From 2c2684241e6f8834006e7dca8c7c7a93bea1623f Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 28 Sep 2013 18:10:25 +0200 Subject: [PATCH 280/715] 1.7.3-1 - version upgrade (rhbz#1008441) - upgraded winepulse - wine gecko 2.24 - fix systemd subpackage scriplet (rhbz#1010742) --- .gitignore | 4 +- sources | 4 +- ...ulse-1.7.1.patch => wine-pulse-1.7.3.patch | 126 +++++++++--------- wine.spec | 19 ++- 4 files changed, 80 insertions(+), 73 deletions(-) rename wine-pulse-1.7.1.patch => wine-pulse-1.7.3.patch (98%) diff --git a/.gitignore b/.gitignore index 97e4a39..c4ab76a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ /wine-1.6.tar.bz2.sign /wine-1.6.tar.bz2 -/wine-1.7.2.tar.bz2 -/wine-1.7.2.tar.bz2.sign +/wine-1.7.3.tar.bz2 +/wine-1.7.3.tar.bz2.sign diff --git a/sources b/sources index 49e3f0b..ef2bc9e 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -17ece5f22c691bd6067c86f0dd68cfd7 wine-1.7.2.tar.bz2 -f88fbe903d2e7356a44eeb89e70d41ba wine-1.7.2.tar.bz2.sign +8dc3815754f00ec315d61a6d14870320 wine-1.7.3.tar.bz2 +8654d7b9156e0e0d64e89a18393f9524 wine-1.7.3.tar.bz2.sign diff --git a/wine-pulse-1.7.1.patch b/wine-pulse-1.7.3.patch similarity index 98% rename from wine-pulse-1.7.1.patch rename to wine-pulse-1.7.3.patch index 22235c4..22d32a1 100644 --- a/wine-pulse-1.7.1.patch +++ b/wine-pulse-1.7.3.patch @@ -1,6 +1,6 @@ -From bea77093864177659aa16aab5d81b213015990b9 Mon Sep 17 00:00:00 2001 +From 4c99f9ac5c1c958a137002ae3d7673463e2a9e5a Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 31 Aug 2013 08:36:00 +0200 +Date: Sat, 28 Sep 2013 10:00:34 +0200 Subject: winmm: Load winealsa if winepulse is found Fixes midi on winepulse @@ -28,9 +28,9 @@ index f387323..3b1be27 100644 1.8.3.1 -From 713158f967a19d0c257ccdbffd63dc21ab53444f Mon Sep 17 00:00:00 2001 +From 82f8a86dcc014f419e333149f814d3e1a7c59ca0 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 31 Aug 2013 08:36:00 +0200 +Date: Sat, 28 Sep 2013 10:00:34 +0200 Subject: winepulse: Add initial stub for pulseaudio support --- @@ -49,7 +49,7 @@ added here. create mode 100644 dlls/winepulse.drv/winepulse.drv.spec diff --git a/configure b/configure -index d0f15d0..e4dba75 100755 +index d17492a..7644a92 100755 --- a/configure +++ b/configure @@ -657,6 +657,8 @@ OSS4INCL @@ -61,7 +61,7 @@ index d0f15d0..e4dba75 100755 LIBGETTEXTPO ZLIB FREETYPE_LIBS -@@ -838,6 +840,7 @@ with_osmesa +@@ -840,6 +842,7 @@ with_osmesa with_oss with_png with_pthread @@ -69,7 +69,7 @@ index d0f15d0..e4dba75 100755 with_sane with_tiff with_v4l -@@ -1559,6 +1562,7 @@ Optional Packages: +@@ -1561,6 +1564,7 @@ Optional Packages: --without-oss do not use the OSS sound support --without-png do not use PNG --without-pthread do not use the pthread library @@ -77,7 +77,7 @@ index d0f15d0..e4dba75 100755 --without-sane do not use SANE (scanner support) --without-tiff do not use TIFF --without-v4l do not use v4l1 (v4l support) -@@ -2788,6 +2792,12 @@ if test "${with_pthread+set}" = set; then : +@@ -2790,6 +2794,12 @@ if test "${with_pthread+set}" = set; then : fi @@ -90,7 +90,7 @@ index d0f15d0..e4dba75 100755 # Check whether --with-sane was given. if test "${with_sane+set}" = set; then : withval=$with_sane; -@@ -11109,6 +11119,87 @@ esac +@@ -11118,6 +11128,87 @@ esac fi fi @@ -178,7 +178,7 @@ index d0f15d0..e4dba75 100755 if test "x$with_gstreamer" != "xno" then if test -n "$GSTREAMER_CFLAGS"; then : -@@ -12386,12 +12477,13 @@ fi +@@ -12395,12 +12486,13 @@ fi test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no} test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no} @@ -194,7 +194,7 @@ index d0f15d0..e4dba75 100755 then as_fn_append wine_warnings "|No sound system was found. Windows applications will be silent." fi -@@ -16439,6 +16531,7 @@ wine_fn_config_dll winemp3.acm enable_winemp3_acm +@@ -16516,6 +16608,7 @@ wine_fn_config_dll winemp3.acm enable_winemp3_acm wine_fn_config_dll wineoss.drv enable_wineoss_drv wine_fn_config_dll wineps.drv enable_wineps_drv install-lib,po wine_fn_config_dll wineps16.drv16 enable_win16 @@ -203,7 +203,7 @@ index d0f15d0..e4dba75 100755 wine_fn_config_dll winex11.drv enable_winex11_drv wine_fn_config_dll wing.dll16 enable_win16 diff --git a/configure.ac b/configure.ac -index d8033cf..abb40e9 100644 +index dacee3a..1f8ddf4 100644 --- a/configure.ac +++ b/configure.ac @@ -67,6 +67,7 @@ AC_ARG_WITH(oss, AS_HELP_STRING([--without-oss],[do not use the OSS sound @@ -214,7 +214,7 @@ index d8033cf..abb40e9 100644 AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)])) AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF])) AC_ARG_WITH(v4l, AS_HELP_STRING([--without-v4l],[do not use v4l1 (v4l support)])) -@@ -1513,6 +1514,30 @@ then +@@ -1518,6 +1519,30 @@ then [GetText ${notice_platform}development files not found (or too old), po files can't be rebuilt.]) fi @@ -245,7 +245,7 @@ index d8033cf..abb40e9 100644 dnl **** Check for gstreamer **** if test "x$with_gstreamer" != "xno" then -@@ -1731,13 +1756,14 @@ WINE_CHECK_SONAME(odbc,SQLConnect,,[AC_DEFINE_UNQUOTED(SONAME_LIBODBC,["libodbc. +@@ -1736,13 +1761,14 @@ WINE_CHECK_SONAME(odbc,SQLConnect,,[AC_DEFINE_UNQUOTED(SONAME_LIBODBC,["libodbc. dnl **** Disable unsupported winmm drivers **** test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no} test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no} @@ -262,7 +262,7 @@ index d8033cf..abb40e9 100644 then WINE_WARNING([No sound system was found. Windows applications will be silent.]) fi -@@ -3121,6 +3147,7 @@ WINE_CONFIG_DLL(winemp3.acm) +@@ -3160,6 +3186,7 @@ WINE_CONFIG_DLL(winemp3.acm) WINE_CONFIG_DLL(wineoss.drv) WINE_CONFIG_DLL(wineps.drv,,[install-lib,po]) WINE_CONFIG_DLL(wineps16.drv16,enable_win16) @@ -609,9 +609,9 @@ index 0000000..a089166 1.8.3.1 -From 0592b9ae849869a6af44c7dc21ad2d9b1aebbfaa Mon Sep 17 00:00:00 2001 +From 75c25615a588a190b372858d5582eef0c3afbe3e Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 31 Aug 2013 08:36:00 +0200 +Date: Sat, 28 Sep 2013 10:00:34 +0200 Subject: winepulse: Add format and period probing --- @@ -782,9 +782,9 @@ index d187bdc..40db26d 100644 1.8.3.1 -From 15e7e60bbac3a58698954d9f341d65db165a031b Mon Sep 17 00:00:00 2001 +From da6f97c20130f76119c100117968abd0e5474af0 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 31 Aug 2013 08:36:00 +0200 +Date: Sat, 28 Sep 2013 10:00:35 +0200 Subject: winepulse: Add audioclient --- @@ -1881,9 +1881,9 @@ index 40db26d..37d85ff 100644 1.8.3.1 -From 661173dce9c098337555fddb2400c9467b938ae7 Mon Sep 17 00:00:00 2001 +From aef302e06389e7188d1fba922f75b8bf13db743f Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 31 Aug 2013 08:36:00 +0200 +Date: Sat, 28 Sep 2013 10:00:35 +0200 Subject: winepulse: Add IAudioRenderClient and IAudioCaptureClient --- @@ -2233,9 +2233,9 @@ index 37d85ff..01cfd25 100644 1.8.3.1 -From 15c7c6f1934c5b859292ced84a4967df4553a656 Mon Sep 17 00:00:00 2001 +From 84f55c3f171092e1aab80b1996e1a81d3271c977 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 31 Aug 2013 08:36:00 +0200 +Date: Sat, 28 Sep 2013 10:00:35 +0200 Subject: winepulse: Add IAudioClock and IAudioClock2 --- @@ -2443,9 +2443,9 @@ index 01cfd25..3ed2288 100644 1.8.3.1 -From 29b389b7073aa9787fe341bae3c420485f3d4146 Mon Sep 17 00:00:00 2001 +From e4c83854f29ac8221e4cf07a4fcdba3c88e41de8 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 31 Aug 2013 08:36:01 +0200 +Date: Sat, 28 Sep 2013 10:00:35 +0200 Subject: winepulse: Add audiostreamvolume --- @@ -2729,9 +2729,9 @@ index 3ed2288..b7414c2 100644 1.8.3.1 -From f27ca64fa41672126627e3bd51002d89467f362a Mon Sep 17 00:00:00 2001 +From f2adc42737bb917fa644737a6d17dee0797c935b Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 31 Aug 2013 08:36:01 +0200 +Date: Sat, 28 Sep 2013 10:00:35 +0200 Subject: winepulse: Add session support --- @@ -3666,9 +3666,9 @@ index b7414c2..64ee62e 100644 1.8.3.1 -From 707d4aeae111fa01b393333bca419311e5e5ce36 Mon Sep 17 00:00:00 2001 +From 9ed1489acd293e5d522baa82a3ac74a0e273e51c Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 31 Aug 2013 08:36:01 +0200 +Date: Sat, 28 Sep 2013 10:00:35 +0200 Subject: fix fdels trailing whitespaces Happy? :P @@ -3702,9 +3702,9 @@ index 64ee62e..5a71a3d 100644 1.8.3.1 -From 1651eaf16902a65aaaab0145f91c6b88c4e17c56 Mon Sep 17 00:00:00 2001 +From b1c875b16aae998218241eb1d3b1c9796a6a7569 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 31 Aug 2013 08:36:01 +0200 +Date: Sat, 28 Sep 2013 10:00:35 +0200 Subject: winepulse v12 Changes since v11: @@ -3751,9 +3751,9 @@ index 5a71a3d..960af3c 100644 1.8.3.1 -From ed285cd6a055b9f2d063810e2621669c36d95340 Mon Sep 17 00:00:00 2001 +From 745348322cf81c9856727fefef142edf23508bbc Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 31 Aug 2013 08:36:01 +0200 +Date: Sat, 28 Sep 2013 10:00:35 +0200 Subject: winepulse v15: Add support for missing formats, and silence an error for missing format tags @@ -3793,9 +3793,9 @@ index 960af3c..f52f119 100644 1.8.3.1 -From c5243abaaa882c77e681104c414254c4641b3b3b Mon Sep 17 00:00:00 2001 +From f6a97c1ebd1fcf44dc318bfcc60c133f12b35dd5 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 31 Aug 2013 08:36:01 +0200 +Date: Sat, 28 Sep 2013 10:00:35 +0200 Subject: winepulse v16: Add official warning wine doesn't want to support winepulse @@ -3873,9 +3873,9 @@ index f52f119..76a2e0e 100644 1.8.3.1 -From a5cebf016e4ff02b9f18586432351c4af690e7f1 Mon Sep 17 00:00:00 2001 +From 9d238a128fb7ea5db44155e46bde4e5038acbcdd Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 31 Aug 2013 08:36:01 +0200 +Date: Sat, 28 Sep 2013 10:00:36 +0200 Subject: winepulse v17: Fix winmm tests Handle dwChannelMask = SPEAKER_ALL better so WAVE_FORMAT_EXTENSIBLE tests pass too @@ -3999,9 +3999,9 @@ index 76a2e0e..6e75674 100644 1.8.3.1 -From e8d2b8cd838e449d210e9b61c63d280d936a7314 Mon Sep 17 00:00:00 2001 +From 68ade98c77c67067d91fe2b73d0e96e82203bd9d Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 31 Aug 2013 08:36:01 +0200 +Date: Sat, 28 Sep 2013 10:00:36 +0200 Subject: winepulse v18: Latency and compilation improvements Changes since v17: @@ -4207,9 +4207,9 @@ index 6e75674..8e76826 100644 1.8.3.1 -From 4d4c24badcf4e9d985366eea3785a401c564a6b3 Mon Sep 17 00:00:00 2001 +From b95b98168923cf8e8ec6640c68badf458e4d3657 Mon Sep 17 00:00:00 2001 From: Juergen Tretthahn -Date: Sat, 31 Aug 2013 08:36:01 +0200 +Date: Sat, 28 Sep 2013 10:00:36 +0200 Subject: winepulse: API Compatibility with 1.5.2 onward, v2 V2: Add winepulse.drv.spec to commit too @@ -4322,9 +4322,9 @@ index a089166..612bf46 100644 1.8.3.1 -From 5d0fdcf25dec628ef0ad2da8d004328133f8aecc Mon Sep 17 00:00:00 2001 +From c27f6390a76580956710efac47cf2a773af9a9c0 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 31 Aug 2013 08:36:01 +0200 +Date: Sat, 28 Sep 2013 10:00:36 +0200 Subject: winepulse: Fix low latency support Some games request a 20 ms buffer and will only fill 20 ms. @@ -4381,9 +4381,9 @@ index b374b53..7c07f54 100644 1.8.3.1 -From 7c89c29a77330d842a996afe4d1e942538c36c3c Mon Sep 17 00:00:00 2001 +From f8e3c24fe58d306699071afce12e899c75b4f29a Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 31 Aug 2013 08:36:01 +0200 +Date: Sat, 28 Sep 2013 10:00:36 +0200 Subject: winepulse: drop realtime priority before thread destruction prevents having to handle a kernel RT Watchdog Timeout. @@ -4408,9 +4408,9 @@ index 7c07f54..ba68102 100644 1.8.3.1 -From 8720fd591a0f45d5e0df2ff874a494fac8e9c414 Mon Sep 17 00:00:00 2001 +From 7b9f73bcd755b24df20faa695ed489045d7409a6 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 31 Aug 2013 08:36:01 +0200 +Date: Sat, 28 Sep 2013 10:00:36 +0200 Subject: winepulse: remove bogus SetEvent from pulse_started_callback --- @@ -4437,9 +4437,9 @@ index ba68102..68de00c 100644 1.8.3.1 -From 33fa776e9ac616fe2ef9064c9a85f3fb5cbfe2fd Mon Sep 17 00:00:00 2001 +From 8a1730d2237c8d052fd7e3a76c9a9555a347dae5 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 31 Aug 2013 08:36:02 +0200 +Date: Sat, 28 Sep 2013 10:00:36 +0200 Subject: winepulse: disable the setevent part of the latency hack If you get playback glitches in skyrim or other games as a result of @@ -4479,9 +4479,9 @@ index 68de00c..643d55e 100644 1.8.3.1 -From e04f9881ce89fa1fd544d490b6dfbd7feb9ca9d9 Mon Sep 17 00:00:00 2001 +From 707c489f7c26388ba4a808e8b48bbe5fc20a2c83 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 31 Aug 2013 08:36:02 +0200 +Date: Sat, 28 Sep 2013 10:00:36 +0200 Subject: winepulse v20: fix the checks in IsFormatSupported Thanks to DGhost001 for reporting and isolating the issue. @@ -4508,9 +4508,9 @@ index 643d55e..86dd10a 100644 1.8.3.1 -From e85aa72f7fc24e2a760fc84226bc50c588569197 Mon Sep 17 00:00:00 2001 +From 08a97f268ee013a7302e1e3c12563439b8fad657 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 31 Aug 2013 08:36:02 +0200 +Date: Sat, 28 Sep 2013 10:00:36 +0200 Subject: winepulse: fixup IsFormatSupported calls --- @@ -4922,9 +4922,9 @@ index 86dd10a..554a9fc 100644 1.8.3.1 -From 1d7e52afd87f0b37f625580f185d060f021f3fd3 Mon Sep 17 00:00:00 2001 +From adae1f1cacc9b52397a2175327cfc98c0f621c5d Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 31 Aug 2013 08:36:02 +0200 +Date: Sat, 28 Sep 2013 10:00:36 +0200 Subject: winepulse v21: return early if padding didn't update --- @@ -4951,9 +4951,9 @@ index 554a9fc..a4575d5 100644 1.8.3.1 -From 9f245548f8bca9db1892bc7560db2d66217a9a44 Mon Sep 17 00:00:00 2001 +From f613d92158ef74857b84ac30743174ea284fdd7f Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 31 Aug 2013 08:36:02 +0200 +Date: Sat, 28 Sep 2013 10:00:36 +0200 Subject: winepulse: fix unneeded free in write.. --- @@ -4988,9 +4988,9 @@ index a4575d5..3ca68fd 100644 1.8.3.1 -From eecbc197a50ddee696590019e8aa644108f3efb2 Mon Sep 17 00:00:00 2001 +From 82b85c3446c608f989e33d723f2974311fa47124 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 31 Aug 2013 08:36:02 +0200 +Date: Sat, 28 Sep 2013 10:00:37 +0200 Subject: winepulse v23: fixup a invalid free in mmdevapi array members of ids should be dynamically allocated, judging from valgrind output. @@ -5039,9 +5039,9 @@ index 3ca68fd..5b041a2 100644 -- 1.8.3.1 -From 8513286932d086a28eeab6652b81990b7cb3f36d Mon Sep 17 00:00:00 2001 +From d3ffadfd55dba9a94ac81bfb87ca26bf183afd3f Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 31 Aug 2013 08:36:03 +0200 +Date: Sat, 28 Sep 2013 10:00:37 +0200 Subject: winepulse: use a pi-mutex for serialization. The winepulse thread is realtime, to prevent blocking it indefinitely @@ -5107,9 +5107,9 @@ index 5b041a2..a09ce7f 100644 1.8.3.1 -From 5a091534be9dcb6cdfa8bdf9f4e642b42acd35de Mon Sep 17 00:00:00 2001 +From a346ccb9973a50a313f498969fef30aa9ea392b7 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 31 Aug 2013 08:36:03 +0200 +Date: Sat, 28 Sep 2013 10:00:37 +0200 Subject: winepulse: add support for IMarshal Fixes bug 32161 for winepulse. Based On Jeff Klein's patches for the diff --git a/wine.spec b/wine.spec index 0b52ab2..77eedc3 100644 --- a/wine.spec +++ b/wine.spec @@ -1,9 +1,9 @@ %global no64bit 0 -%global winegecko 2.21 +%global winegecko 2.24 %global winemono 0.0.8 Name: wine -Version: 1.7.2 +Version: 1.7.3 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -56,11 +56,11 @@ Patch511: wine-cjk.patch # Sat, 31 Aug 2013 06:36:03 +0000 # based on wine tree 1.7.1 ## -# git clone http://repo.or.cz/w/wine/multimedia.git -# cd multimedia.git +# git clone http://repo.or.cz/r/wine/multimedia.git +# cd multimedia # git format-patch -k --stdout bea77093864177659aa16aab5d81b213015990b9~..eecbc197a50ddee696590019e8aa644108f3efb2 > ~/cvs/fedora/rpms/wine/wine-pulse-1.7.1.patch # git format-patch -k --stdout 8513286932d086a28eeab6652b81990b7cb3f36d~..5a091534be9dcb6cdfa8bdf9f4e642b42acd35de --stdout >> ~/cvs/fedora/rpms/wine/wine-pulse-1.7.1.patch -Patch1001: wine-pulse-1.7.1.patch +Patch1001: wine-pulse-1.7.3.patch %if !%{?no64bit} ExclusiveArch: %{ix86} x86_64 %{arm} @@ -788,7 +788,7 @@ fi /bin/systemctl try-restart systemd-binfmt.service %postun systemd -if [$1 -eq 0]; then +if [ $1 -eq 0 ]; then /bin/systemctl try-restart systemd-binfmt.service fi @@ -1555,6 +1555,13 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sat Sep 28 2013 Andreas Bierfert +- 1.7.3-1 +- version upgrade (rhbz#1008441) +- upgraded winepulse +- wine gecko 2.24 +- fix systemd subpackage scriplet (rhbz#1010742) + * Sun Sep 15 2013 Andreas Bierfert - 1.7.2-1 - version upgrade From 5e5d967ea4032bc3297437d315316c42ade5d734 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 28 Oct 2013 07:10:47 +0100 Subject: [PATCH 281/715] - version upgrade to 1.7.4 --- .gitignore | 2 ++ sources | 4 ++-- wine.spec | 6 +++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index c4ab76a..2a97c79 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ /wine-1.6.tar.bz2 /wine-1.7.3.tar.bz2 /wine-1.7.3.tar.bz2.sign +/wine-1.7.4.tar.bz2 +/wine-1.7.4.tar.bz2.sign diff --git a/sources b/sources index ef2bc9e..3a8be7e 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -8dc3815754f00ec315d61a6d14870320 wine-1.7.3.tar.bz2 -8654d7b9156e0e0d64e89a18393f9524 wine-1.7.3.tar.bz2.sign +a1e78cdce188a4f52244780b6628507b wine-1.7.4.tar.bz2 +68c3393d7a3c1286e2fc7682d8c8c9a2 wine-1.7.4.tar.bz2.sign diff --git a/wine.spec b/wine.spec index 77eedc3..ee8b21e 100644 --- a/wine.spec +++ b/wine.spec @@ -3,7 +3,7 @@ %global winemono 0.0.8 Name: wine -Version: 1.7.3 +Version: 1.7.4 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1555,6 +1555,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sat Oct 12 2013 Andreas Bierfert +- 1.7.4-1 +- version upgrade + * Sat Sep 28 2013 Andreas Bierfert - 1.7.3-1 - version upgrade (rhbz#1008441) From 3345d947ddd0f933aa1432834d3f71c602624761 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 28 Oct 2013 08:43:27 +0100 Subject: [PATCH 282/715] 1.7.5-1 - version upgrade (rhbz#1023716) - upgraded winepulse --- .gitignore | 6 +- sources | 4 +- wine-cjk.patch | 8 +- ...ulse-1.7.3.patch => wine-pulse-1.7.4.patch | 132 +++++++++--------- wine.spec | 22 +-- 5 files changed, 88 insertions(+), 84 deletions(-) rename wine-pulse-1.7.3.patch => wine-pulse-1.7.4.patch (98%) diff --git a/.gitignore b/.gitignore index 2a97c79..f3f515e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,4 @@ /wine-1.6.tar.bz2.sign /wine-1.6.tar.bz2 -/wine-1.7.3.tar.bz2 -/wine-1.7.3.tar.bz2.sign -/wine-1.7.4.tar.bz2 -/wine-1.7.4.tar.bz2.sign +/wine-1.7.5.tar.bz2 +/wine-1.7.5.tar.bz2.sign diff --git a/sources b/sources index 3a8be7e..09bdbf8 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -a1e78cdce188a4f52244780b6628507b wine-1.7.4.tar.bz2 -68c3393d7a3c1286e2fc7682d8c8c9a2 wine-1.7.4.tar.bz2.sign +b67d3ee7bfbfdabe5fd8ace66692eb52 wine-1.7.5.tar.bz2 +2dc6fc2eb3a79eeed39298b908da0081 wine-1.7.5.tar.bz2.sign diff --git a/wine-cjk.patch b/wine-cjk.patch index 236a4c7..2b4d95b 100644 --- a/wine-cjk.patch +++ b/wine-cjk.patch @@ -1,7 +1,7 @@ -diff -up wine-1.5.9/tools/wine.inf.in.orig wine-1.5.9/tools/wine.inf.in ---- wine-1.5.9/tools/wine.inf.in.orig 2012-07-17 20:41:28.000000000 +0200 -+++ wine-1.5.9/tools/wine.inf.in 2012-07-18 21:42:34.062266337 +0200 -@@ -617,6 +617,17 @@ HKLM,%FontSubStr%,"Times New Roman CE,23 +diff -up wine-1.7.5/loader/wine.inf.in.orig wine-1.7.5/loader/wine.inf.in +--- wine-1.7.5/loader/wine.inf.in.orig 2013-10-25 19:45:30.000000000 +0200 ++++ wine-1.7.5/loader/wine.inf.in 2013-10-28 07:57:42.572401071 +0100 +@@ -561,6 +561,17 @@ HKLM,%FontSubStr%,"Times New Roman CE,23 HKLM,%FontSubStr%,"Times New Roman CYR,204",,"Times New Roman,204" HKLM,%FontSubStr%,"Times New Roman Greek,161",,"Times New Roman,161" HKLM,%FontSubStr%,"Times New Roman TUR,162",,"Times New Roman,162" diff --git a/wine-pulse-1.7.3.patch b/wine-pulse-1.7.4.patch similarity index 98% rename from wine-pulse-1.7.3.patch rename to wine-pulse-1.7.4.patch index 22d32a1..c5ee0aa 100644 --- a/wine-pulse-1.7.3.patch +++ b/wine-pulse-1.7.4.patch @@ -1,6 +1,6 @@ -From 4c99f9ac5c1c958a137002ae3d7673463e2a9e5a Mon Sep 17 00:00:00 2001 +From 9bed77776bc322ed482aa1ac2525f60d457130e6 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 28 Sep 2013 10:00:34 +0200 +Date: Fri, 11 Oct 2013 20:32:09 +0200 Subject: winmm: Load winealsa if winepulse is found Fixes midi on winepulse @@ -28,9 +28,9 @@ index f387323..3b1be27 100644 1.8.3.1 -From 82f8a86dcc014f419e333149f814d3e1a7c59ca0 Mon Sep 17 00:00:00 2001 +From 368c519a2231055881f592e3a1266d85dec9b62c Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 28 Sep 2013 10:00:34 +0200 +Date: Fri, 11 Oct 2013 20:32:09 +0200 Subject: winepulse: Add initial stub for pulseaudio support --- @@ -49,10 +49,10 @@ added here. create mode 100644 dlls/winepulse.drv/winepulse.drv.spec diff --git a/configure b/configure -index d17492a..7644a92 100755 +index 683043c..bf5e7f9 100755 --- a/configure +++ b/configure -@@ -657,6 +657,8 @@ OSS4INCL +@@ -658,6 +658,8 @@ OSS4INCL ALSALIBS GSTREAMER_LIBS GSTREAMER_CFLAGS @@ -61,7 +61,7 @@ index d17492a..7644a92 100755 LIBGETTEXTPO ZLIB FREETYPE_LIBS -@@ -840,6 +842,7 @@ with_osmesa +@@ -834,6 +836,7 @@ with_osmesa with_oss with_png with_pthread @@ -69,7 +69,7 @@ index d17492a..7644a92 100755 with_sane with_tiff with_v4l -@@ -1561,6 +1564,7 @@ Optional Packages: +@@ -2044,6 +2047,7 @@ Optional Packages: --without-oss do not use the OSS sound support --without-png do not use PNG --without-pthread do not use the pthread library @@ -77,7 +77,7 @@ index d17492a..7644a92 100755 --without-sane do not use SANE (scanner support) --without-tiff do not use TIFF --without-v4l do not use v4l1 (v4l support) -@@ -2790,6 +2794,12 @@ if test "${with_pthread+set}" = set; then : +@@ -3273,6 +3277,12 @@ if test "${with_pthread+set}" = set; then : fi @@ -90,7 +90,7 @@ index d17492a..7644a92 100755 # Check whether --with-sane was given. if test "${with_sane+set}" = set; then : withval=$with_sane; -@@ -11118,6 +11128,87 @@ esac +@@ -11710,6 +11720,87 @@ esac fi fi @@ -178,7 +178,7 @@ index d17492a..7644a92 100755 if test "x$with_gstreamer" != "xno" then if test -n "$GSTREAMER_CFLAGS"; then : -@@ -12395,12 +12486,13 @@ fi +@@ -12987,12 +13078,13 @@ fi test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no} test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no} @@ -194,16 +194,16 @@ index d17492a..7644a92 100755 then as_fn_append wine_warnings "|No sound system was found. Windows applications will be silent." fi -@@ -16516,6 +16608,7 @@ wine_fn_config_dll winemp3.acm enable_winemp3_acm +@@ -17205,6 +17297,7 @@ wine_fn_config_dll winemp3.acm enable_winemp3_acm wine_fn_config_dll wineoss.drv enable_wineoss_drv - wine_fn_config_dll wineps.drv enable_wineps_drv install-lib,po + wine_fn_config_dll wineps.drv enable_wineps_drv po wine_fn_config_dll wineps16.drv16 enable_win16 +wine_fn_config_dll winepulse.drv enable_winepulse_drv wine_fn_config_dll wineqtdecoder enable_wineqtdecoder wine_fn_config_dll winex11.drv enable_winex11_drv wine_fn_config_dll wing.dll16 enable_win16 diff --git a/configure.ac b/configure.ac -index dacee3a..1f8ddf4 100644 +index fc68e1d..4252e05 100644 --- a/configure.ac +++ b/configure.ac @@ -67,6 +67,7 @@ AC_ARG_WITH(oss, AS_HELP_STRING([--without-oss],[do not use the OSS sound @@ -214,7 +214,7 @@ index dacee3a..1f8ddf4 100644 AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)])) AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF])) AC_ARG_WITH(v4l, AS_HELP_STRING([--without-v4l],[do not use v4l1 (v4l support)])) -@@ -1518,6 +1519,30 @@ then +@@ -1540,6 +1541,30 @@ then [GetText ${notice_platform}development files not found (or too old), po files can't be rebuilt.]) fi @@ -245,7 +245,7 @@ index dacee3a..1f8ddf4 100644 dnl **** Check for gstreamer **** if test "x$with_gstreamer" != "xno" then -@@ -1736,13 +1761,14 @@ WINE_CHECK_SONAME(odbc,SQLConnect,,[AC_DEFINE_UNQUOTED(SONAME_LIBODBC,["libodbc. +@@ -1758,13 +1783,14 @@ WINE_CHECK_SONAME(odbc,SQLConnect,,[AC_DEFINE_UNQUOTED(SONAME_LIBODBC,["libodbc. dnl **** Disable unsupported winmm drivers **** test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no} test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no} @@ -262,9 +262,9 @@ index dacee3a..1f8ddf4 100644 then WINE_WARNING([No sound system was found. Windows applications will be silent.]) fi -@@ -3160,6 +3186,7 @@ WINE_CONFIG_DLL(winemp3.acm) +@@ -3242,6 +3268,7 @@ WINE_CONFIG_DLL(winemp3.acm) WINE_CONFIG_DLL(wineoss.drv) - WINE_CONFIG_DLL(wineps.drv,,[install-lib,po]) + WINE_CONFIG_DLL(wineps.drv,,[po]) WINE_CONFIG_DLL(wineps16.drv16,enable_win16) +WINE_CONFIG_DLL(winepulse.drv) WINE_CONFIG_DLL(wineqtdecoder) @@ -609,9 +609,9 @@ index 0000000..a089166 1.8.3.1 -From 75c25615a588a190b372858d5582eef0c3afbe3e Mon Sep 17 00:00:00 2001 +From c1e85b6fe49bec3ec081f80ad4788f03a78eee10 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 28 Sep 2013 10:00:34 +0200 +Date: Fri, 11 Oct 2013 20:32:09 +0200 Subject: winepulse: Add format and period probing --- @@ -782,9 +782,9 @@ index d187bdc..40db26d 100644 1.8.3.1 -From da6f97c20130f76119c100117968abd0e5474af0 Mon Sep 17 00:00:00 2001 +From 2fd945fc084010cd5cda1ab8cd391f805a173f6d Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 28 Sep 2013 10:00:35 +0200 +Date: Fri, 11 Oct 2013 20:32:09 +0200 Subject: winepulse: Add audioclient --- @@ -1881,9 +1881,9 @@ index 40db26d..37d85ff 100644 1.8.3.1 -From aef302e06389e7188d1fba922f75b8bf13db743f Mon Sep 17 00:00:00 2001 +From c8eebef87664b3ce579fccc2e1d025948c11624d Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 28 Sep 2013 10:00:35 +0200 +Date: Fri, 11 Oct 2013 20:32:09 +0200 Subject: winepulse: Add IAudioRenderClient and IAudioCaptureClient --- @@ -2233,9 +2233,9 @@ index 37d85ff..01cfd25 100644 1.8.3.1 -From 84f55c3f171092e1aab80b1996e1a81d3271c977 Mon Sep 17 00:00:00 2001 +From 09641562ebb7d3403e5c67064ae35fb1c27f8759 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 28 Sep 2013 10:00:35 +0200 +Date: Fri, 11 Oct 2013 20:32:09 +0200 Subject: winepulse: Add IAudioClock and IAudioClock2 --- @@ -2443,9 +2443,9 @@ index 01cfd25..3ed2288 100644 1.8.3.1 -From e4c83854f29ac8221e4cf07a4fcdba3c88e41de8 Mon Sep 17 00:00:00 2001 +From a4b9609c7136ba7702b1ebb832a5036d40d5811d Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 28 Sep 2013 10:00:35 +0200 +Date: Fri, 11 Oct 2013 20:32:09 +0200 Subject: winepulse: Add audiostreamvolume --- @@ -2729,9 +2729,9 @@ index 3ed2288..b7414c2 100644 1.8.3.1 -From f2adc42737bb917fa644737a6d17dee0797c935b Mon Sep 17 00:00:00 2001 +From 5fdc48b529e9d29e837ac3c1fbdf04a69e14f246 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 28 Sep 2013 10:00:35 +0200 +Date: Fri, 11 Oct 2013 20:32:09 +0200 Subject: winepulse: Add session support --- @@ -3666,9 +3666,9 @@ index b7414c2..64ee62e 100644 1.8.3.1 -From 9ed1489acd293e5d522baa82a3ac74a0e273e51c Mon Sep 17 00:00:00 2001 +From 7863d23c5bcc99a237ffe63fdfd7ac76212fbd64 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 28 Sep 2013 10:00:35 +0200 +Date: Fri, 11 Oct 2013 20:32:09 +0200 Subject: fix fdels trailing whitespaces Happy? :P @@ -3702,9 +3702,9 @@ index 64ee62e..5a71a3d 100644 1.8.3.1 -From b1c875b16aae998218241eb1d3b1c9796a6a7569 Mon Sep 17 00:00:00 2001 +From 8d9f5b918d7477258c61cac331c3ff3133d13245 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 28 Sep 2013 10:00:35 +0200 +Date: Fri, 11 Oct 2013 20:32:09 +0200 Subject: winepulse v12 Changes since v11: @@ -3751,9 +3751,9 @@ index 5a71a3d..960af3c 100644 1.8.3.1 -From 745348322cf81c9856727fefef142edf23508bbc Mon Sep 17 00:00:00 2001 +From d4891c720ed1a43035d31ef2a6f172bc57856908 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 28 Sep 2013 10:00:35 +0200 +Date: Fri, 11 Oct 2013 20:32:09 +0200 Subject: winepulse v15: Add support for missing formats, and silence an error for missing format tags @@ -3793,9 +3793,9 @@ index 960af3c..f52f119 100644 1.8.3.1 -From f6a97c1ebd1fcf44dc318bfcc60c133f12b35dd5 Mon Sep 17 00:00:00 2001 +From e9cba9021d291e22b7fcb767efbfcbdf8cd32a95 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 28 Sep 2013 10:00:35 +0200 +Date: Fri, 11 Oct 2013 20:32:10 +0200 Subject: winepulse v16: Add official warning wine doesn't want to support winepulse @@ -3873,9 +3873,9 @@ index f52f119..76a2e0e 100644 1.8.3.1 -From 9d238a128fb7ea5db44155e46bde4e5038acbcdd Mon Sep 17 00:00:00 2001 +From d366e3cb55816d79eaf90140d20a96c724976a75 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 28 Sep 2013 10:00:36 +0200 +Date: Fri, 11 Oct 2013 20:32:10 +0200 Subject: winepulse v17: Fix winmm tests Handle dwChannelMask = SPEAKER_ALL better so WAVE_FORMAT_EXTENSIBLE tests pass too @@ -3999,9 +3999,9 @@ index 76a2e0e..6e75674 100644 1.8.3.1 -From 68ade98c77c67067d91fe2b73d0e96e82203bd9d Mon Sep 17 00:00:00 2001 +From 50a0e36b8bae78c66b99fa02a316b6ae08b21771 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 28 Sep 2013 10:00:36 +0200 +Date: Fri, 11 Oct 2013 20:32:10 +0200 Subject: winepulse v18: Latency and compilation improvements Changes since v17: @@ -4207,9 +4207,9 @@ index 6e75674..8e76826 100644 1.8.3.1 -From b95b98168923cf8e8ec6640c68badf458e4d3657 Mon Sep 17 00:00:00 2001 +From 41ff43e8e0a32c2e110cc8d5eefe483df1a6ccc5 Mon Sep 17 00:00:00 2001 From: Juergen Tretthahn -Date: Sat, 28 Sep 2013 10:00:36 +0200 +Date: Fri, 11 Oct 2013 20:32:10 +0200 Subject: winepulse: API Compatibility with 1.5.2 onward, v2 V2: Add winepulse.drv.spec to commit too @@ -4322,9 +4322,9 @@ index a089166..612bf46 100644 1.8.3.1 -From c27f6390a76580956710efac47cf2a773af9a9c0 Mon Sep 17 00:00:00 2001 +From 82a81bf8d00f2f00334d9319165df0c971ea2322 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 28 Sep 2013 10:00:36 +0200 +Date: Fri, 11 Oct 2013 20:32:10 +0200 Subject: winepulse: Fix low latency support Some games request a 20 ms buffer and will only fill 20 ms. @@ -4381,9 +4381,9 @@ index b374b53..7c07f54 100644 1.8.3.1 -From f8e3c24fe58d306699071afce12e899c75b4f29a Mon Sep 17 00:00:00 2001 +From 57e62655e388ea3d8569edd11d97d6e25fb59ed7 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 28 Sep 2013 10:00:36 +0200 +Date: Fri, 11 Oct 2013 20:32:10 +0200 Subject: winepulse: drop realtime priority before thread destruction prevents having to handle a kernel RT Watchdog Timeout. @@ -4408,9 +4408,9 @@ index 7c07f54..ba68102 100644 1.8.3.1 -From 7b9f73bcd755b24df20faa695ed489045d7409a6 Mon Sep 17 00:00:00 2001 +From 2a88932762f4c71db41f334eb522127a59d676cd Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 28 Sep 2013 10:00:36 +0200 +Date: Fri, 11 Oct 2013 20:32:10 +0200 Subject: winepulse: remove bogus SetEvent from pulse_started_callback --- @@ -4437,9 +4437,9 @@ index ba68102..68de00c 100644 1.8.3.1 -From 8a1730d2237c8d052fd7e3a76c9a9555a347dae5 Mon Sep 17 00:00:00 2001 +From 64b69b3cb8c5ca13b39d0c3f7f92ed5e77600129 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 28 Sep 2013 10:00:36 +0200 +Date: Fri, 11 Oct 2013 20:32:10 +0200 Subject: winepulse: disable the setevent part of the latency hack If you get playback glitches in skyrim or other games as a result of @@ -4479,9 +4479,9 @@ index 68de00c..643d55e 100644 1.8.3.1 -From 707c489f7c26388ba4a808e8b48bbe5fc20a2c83 Mon Sep 17 00:00:00 2001 +From f9d9312f88a49f4f5a3651aafa37bfcce25768d4 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 28 Sep 2013 10:00:36 +0200 +Date: Fri, 11 Oct 2013 20:32:10 +0200 Subject: winepulse v20: fix the checks in IsFormatSupported Thanks to DGhost001 for reporting and isolating the issue. @@ -4508,9 +4508,9 @@ index 643d55e..86dd10a 100644 1.8.3.1 -From 08a97f268ee013a7302e1e3c12563439b8fad657 Mon Sep 17 00:00:00 2001 +From 3d403834d3fc3866ddfa7144084d4d380719402f Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 28 Sep 2013 10:00:36 +0200 +Date: Fri, 11 Oct 2013 20:32:10 +0200 Subject: winepulse: fixup IsFormatSupported calls --- @@ -4922,9 +4922,9 @@ index 86dd10a..554a9fc 100644 1.8.3.1 -From adae1f1cacc9b52397a2175327cfc98c0f621c5d Mon Sep 17 00:00:00 2001 +From 5c3cc52ddd0629a18e00ed8ab53663826911871d Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 28 Sep 2013 10:00:36 +0200 +Date: Fri, 11 Oct 2013 20:32:10 +0200 Subject: winepulse v21: return early if padding didn't update --- @@ -4951,9 +4951,9 @@ index 554a9fc..a4575d5 100644 1.8.3.1 -From f613d92158ef74857b84ac30743174ea284fdd7f Mon Sep 17 00:00:00 2001 +From decfeaf6b57351f42bdea44ae0feccf2eefe2989 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 28 Sep 2013 10:00:36 +0200 +Date: Fri, 11 Oct 2013 20:32:10 +0200 Subject: winepulse: fix unneeded free in write.. --- @@ -4988,9 +4988,9 @@ index a4575d5..3ca68fd 100644 1.8.3.1 -From 82b85c3446c608f989e33d723f2974311fa47124 Mon Sep 17 00:00:00 2001 +From a2cb619b3d2b7160ce15d49c483c8531532747cd Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 28 Sep 2013 10:00:37 +0200 +Date: Fri, 11 Oct 2013 20:32:10 +0200 Subject: winepulse v23: fixup a invalid free in mmdevapi array members of ids should be dynamically allocated, judging from valgrind output. @@ -5039,9 +5039,9 @@ index 3ca68fd..5b041a2 100644 -- 1.8.3.1 -From d3ffadfd55dba9a94ac81bfb87ca26bf183afd3f Mon Sep 17 00:00:00 2001 +From 6f9b97bc5b9c0871e7cebe5f041169232468d2e8 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 28 Sep 2013 10:00:37 +0200 +Date: Fri, 11 Oct 2013 20:32:11 +0200 Subject: winepulse: use a pi-mutex for serialization. The winepulse thread is realtime, to prevent blocking it indefinitely @@ -5107,9 +5107,9 @@ index 5b041a2..a09ce7f 100644 1.8.3.1 -From a346ccb9973a50a313f498969fef30aa9ea392b7 Mon Sep 17 00:00:00 2001 +From fbbd11d703f1b18281d430c7d8fbcdcb93f4c07a Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 28 Sep 2013 10:00:37 +0200 +Date: Fri, 11 Oct 2013 20:32:11 +0200 Subject: winepulse: add support for IMarshal Fixes bug 32161 for winepulse. Based On Jeff Klein's patches for the diff --git a/wine.spec b/wine.spec index ee8b21e..12affde 100644 --- a/wine.spec +++ b/wine.spec @@ -3,7 +3,7 @@ %global winemono 0.0.8 Name: wine -Version: 1.7.4 +Version: 1.7.5 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -53,14 +53,15 @@ Patch511: wine-cjk.patch ## winepulse backend # http://repo.or.cz/w/wine/multimedia.git -# Sat, 31 Aug 2013 06:36:03 +0000 -# based on wine tree 1.7.1 +# Fri, 18 Oct 2013 23:16:38 +0000 +# based on wine tree 1.7.4 ## # git clone http://repo.or.cz/r/wine/multimedia.git # cd multimedia -# git format-patch -k --stdout bea77093864177659aa16aab5d81b213015990b9~..eecbc197a50ddee696590019e8aa644108f3efb2 > ~/cvs/fedora/rpms/wine/wine-pulse-1.7.1.patch -# git format-patch -k --stdout 8513286932d086a28eeab6652b81990b7cb3f36d~..5a091534be9dcb6cdfa8bdf9f4e642b42acd35de --stdout >> ~/cvs/fedora/rpms/wine/wine-pulse-1.7.1.patch -Patch1001: wine-pulse-1.7.3.patch +#git format-patch -k --stdout 9bed77776bc322ed482aa1ac2525f60d457130e6~..a2cb619b3d2b7160ce15d49c483c8531532747cd > ~/cvs/fedora/rpms/wine/wine-pulse-1.7.4.patch +#git format-patch -k --stdout 6f9b97bc5b9c0871e7cebe5f041169232468d2e8~..fbbd11d703f1b18281d430c7d8fbcdcb93f4c07a >> ~/cvs/fedora/rpms/wine/wine-pulse-1.7.4.patch + +Patch1001: wine-pulse-1.7.4.patch %if !%{?no64bit} ExclusiveArch: %{ix86} x86_64 %{arm} @@ -974,6 +975,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/appwiz.cpl.so %{_libdir}/wine/atl.dll.so %{_libdir}/wine/atl80.dll.so +%{_libdir}/wine/atl90.dll.so %{_libdir}/wine/atl100.dll.so %{_libdir}/wine/atl110.dll.so %{_libdir}/wine/authz.dll.so @@ -1390,7 +1392,6 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %dir %{_datadir}/wine/gecko %dir %{_datadir}/wine/mono %dir %{_datadir}/wine/fonts -%{_datadir}/wine/generic.ppd %{_datadir}/wine/wine.inf %{_datadir}/wine/l_intl.nls @@ -1555,9 +1556,14 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Mon Oct 28 2013 Andreas Bierfert +- 1.7.5-1 +- version upgrade (rhbz#1023716) +- upgraded winepulse + * Sat Oct 12 2013 Andreas Bierfert - 1.7.4-1 -- version upgrade +- version upgrade (rhbz#1018601) * Sat Sep 28 2013 Andreas Bierfert - 1.7.3-1 From 4f1e0c516292a6552853b73d2dfd8162f1e8feb2 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 23 Nov 2013 12:31:09 +0100 Subject: [PATCH 283/715] 1.7.7-1 - version upgrade --- .gitignore | 2 ++ sources | 4 ++-- wine.spec | 7 ++++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index f3f515e..1623ad1 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ /wine-1.6.tar.bz2 /wine-1.7.5.tar.bz2 /wine-1.7.5.tar.bz2.sign +/wine-1.7.7.tar.bz2 +/wine-1.7.7.tar.bz2.sign diff --git a/sources b/sources index 09bdbf8..d80ad18 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -b67d3ee7bfbfdabe5fd8ace66692eb52 wine-1.7.5.tar.bz2 -2dc6fc2eb3a79eeed39298b908da0081 wine-1.7.5.tar.bz2.sign +e3b9383439d60202b10b5e93e5b00a3b wine-1.7.7.tar.bz2 +ba10b35b92abc7c0dd79fc1bbe5a6ae2 wine-1.7.7.tar.bz2.sign diff --git a/wine.spec b/wine.spec index 12affde..8983cc8 100644 --- a/wine.spec +++ b/wine.spec @@ -1,9 +1,10 @@ %global no64bit 0 %global winegecko 2.24 %global winemono 0.0.8 +%global _default_patch_fuzz 2 Name: wine -Version: 1.7.5 +Version: 1.7.7 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1556,6 +1557,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sat Nov 23 2013 Andreas Bierfert +- 1.7.7-1 +- version upgrade + * Mon Oct 28 2013 Andreas Bierfert - 1.7.5-1 - version upgrade (rhbz#1023716) From c1c3730d8061f89745e71c1630cb854c2ab8b590 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 8 Dec 2013 18:38:10 +0100 Subject: [PATCH 284/715] 1.7.8-1 - version upgrade - wine mono 4.5.2 - upgraded winepulse --- .gitignore | 10 +- sources | 4 +- ...ulse-1.7.4.patch => wine-pulse-1.7.8.patch | 194 +++++++++--------- wine.spec | 23 ++- 4 files changed, 118 insertions(+), 113 deletions(-) rename wine-pulse-1.7.4.patch => wine-pulse-1.7.8.patch (97%) diff --git a/.gitignore b/.gitignore index 1623ad1..57fef55 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,4 @@ -/wine-1.6.tar.bz2.sign -/wine-1.6.tar.bz2 -/wine-1.7.5.tar.bz2 -/wine-1.7.5.tar.bz2.sign -/wine-1.7.7.tar.bz2 -/wine-1.7.7.tar.bz2.sign +/wine-1.6.1.tar.bz2.sign +/wine-1.6.1.tar.bz2 +/wine-1.7.8.tar.bz2 +/wine-1.7.8.tar.bz2.sign diff --git a/sources b/sources index d80ad18..2ce4f22 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -e3b9383439d60202b10b5e93e5b00a3b wine-1.7.7.tar.bz2 -ba10b35b92abc7c0dd79fc1bbe5a6ae2 wine-1.7.7.tar.bz2.sign +e66a9d73e224c099b617a1f5d718d604 wine-1.7.8.tar.bz2 +4a36e86fdeadfc1bd9e2ddb963608325 wine-1.7.8.tar.bz2.sign diff --git a/wine-pulse-1.7.4.patch b/wine-pulse-1.7.8.patch similarity index 97% rename from wine-pulse-1.7.4.patch rename to wine-pulse-1.7.8.patch index c5ee0aa..0557708 100644 --- a/wine-pulse-1.7.4.patch +++ b/wine-pulse-1.7.8.patch @@ -1,6 +1,6 @@ -From 9bed77776bc322ed482aa1ac2525f60d457130e6 Mon Sep 17 00:00:00 2001 +From 8376f764411b8ca7f6f80a25e2abe63a4dc48fa0 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 11 Oct 2013 20:32:09 +0200 +Date: Fri, 6 Dec 2013 21:18:54 +0100 Subject: winmm: Load winealsa if winepulse is found Fixes midi on winepulse @@ -9,10 +9,10 @@ Fixes midi on winepulse 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dlls/winmm/lolvldrv.c b/dlls/winmm/lolvldrv.c -index f387323..3b1be27 100644 +index c3b3674..56cfe35 100644 --- a/dlls/winmm/lolvldrv.c +++ b/dlls/winmm/lolvldrv.c -@@ -543,7 +543,10 @@ static void MMDRV_Init(void) +@@ -544,7 +544,10 @@ static void MMDRV_Init(void) drvA = HeapAlloc(GetProcessHeap(), 0, size); WideCharToMultiByte(CP_ACP, 0, pv.u.pwszVal, -1, drvA, size, NULL, NULL); @@ -25,12 +25,12 @@ index f387323..3b1be27 100644 HeapFree(GetProcessHeap(), 0, drvA); PropVariantClear(&pv); -- -1.8.3.1 +1.8.4.2 -From 368c519a2231055881f592e3a1266d85dec9b62c Mon Sep 17 00:00:00 2001 +From 77927f6e282821ff21c637fc1c9a5d710f5f59e4 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 11 Oct 2013 20:32:09 +0200 +Date: Fri, 6 Dec 2013 21:18:54 +0100 Subject: winepulse: Add initial stub for pulseaudio support --- @@ -49,7 +49,7 @@ added here. create mode 100644 dlls/winepulse.drv/winepulse.drv.spec diff --git a/configure b/configure -index 683043c..bf5e7f9 100755 +index 81a474f..879ef8f 100755 --- a/configure +++ b/configure @@ -658,6 +658,8 @@ OSS4INCL @@ -61,7 +61,7 @@ index 683043c..bf5e7f9 100755 LIBGETTEXTPO ZLIB FREETYPE_LIBS -@@ -834,6 +836,7 @@ with_osmesa +@@ -835,6 +837,7 @@ with_osmesa with_oss with_png with_pthread @@ -69,7 +69,7 @@ index 683043c..bf5e7f9 100755 with_sane with_tiff with_v4l -@@ -2044,6 +2047,7 @@ Optional Packages: +@@ -2048,6 +2051,7 @@ Optional Packages: --without-oss do not use the OSS sound support --without-png do not use PNG --without-pthread do not use the pthread library @@ -77,7 +77,7 @@ index 683043c..bf5e7f9 100755 --without-sane do not use SANE (scanner support) --without-tiff do not use TIFF --without-v4l do not use v4l1 (v4l support) -@@ -3273,6 +3277,12 @@ if test "${with_pthread+set}" = set; then : +@@ -3283,6 +3287,12 @@ if test "${with_pthread+set}" = set; then : fi @@ -90,7 +90,7 @@ index 683043c..bf5e7f9 100755 # Check whether --with-sane was given. if test "${with_sane+set}" = set; then : withval=$with_sane; -@@ -11710,6 +11720,87 @@ esac +@@ -11689,6 +11699,87 @@ esac fi fi @@ -178,7 +178,7 @@ index 683043c..bf5e7f9 100755 if test "x$with_gstreamer" != "xno" then if test -n "$GSTREAMER_CFLAGS"; then : -@@ -12987,12 +13078,13 @@ fi +@@ -13026,12 +13117,13 @@ fi test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no} test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no} @@ -194,19 +194,19 @@ index 683043c..bf5e7f9 100755 then as_fn_append wine_warnings "|No sound system was found. Windows applications will be silent." fi -@@ -17205,6 +17297,7 @@ wine_fn_config_dll winemp3.acm enable_winemp3_acm +@@ -17281,6 +17373,7 @@ wine_fn_config_dll winemp3.acm enable_winemp3_acm wine_fn_config_dll wineoss.drv enable_wineoss_drv - wine_fn_config_dll wineps.drv enable_wineps_drv po + wine_fn_config_dll wineps.drv enable_wineps_drv clean,po wine_fn_config_dll wineps16.drv16 enable_win16 +wine_fn_config_dll winepulse.drv enable_winepulse_drv wine_fn_config_dll wineqtdecoder enable_wineqtdecoder wine_fn_config_dll winex11.drv enable_winex11_drv wine_fn_config_dll wing.dll16 enable_win16 diff --git a/configure.ac b/configure.ac -index fc68e1d..4252e05 100644 +index 0124652..6a3d59c 100644 --- a/configure.ac +++ b/configure.ac -@@ -67,6 +67,7 @@ AC_ARG_WITH(oss, AS_HELP_STRING([--without-oss],[do not use the OSS sound +@@ -68,6 +68,7 @@ AC_ARG_WITH(oss, AS_HELP_STRING([--without-oss],[do not use the OSS sound AC_ARG_WITH(png, AS_HELP_STRING([--without-png],[do not use PNG])) AC_ARG_WITH(pthread, AS_HELP_STRING([--without-pthread],[do not use the pthread library]), [if test "x$withval" = "xno"; then ac_cv_header_pthread_h=no; fi]) @@ -214,7 +214,7 @@ index fc68e1d..4252e05 100644 AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)])) AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF])) AC_ARG_WITH(v4l, AS_HELP_STRING([--without-v4l],[do not use v4l1 (v4l support)])) -@@ -1540,6 +1541,30 @@ then +@@ -1522,6 +1523,30 @@ then [GetText ${notice_platform}development files not found (or too old), po files can't be rebuilt.]) fi @@ -245,7 +245,7 @@ index fc68e1d..4252e05 100644 dnl **** Check for gstreamer **** if test "x$with_gstreamer" != "xno" then -@@ -1758,13 +1783,14 @@ WINE_CHECK_SONAME(odbc,SQLConnect,,[AC_DEFINE_UNQUOTED(SONAME_LIBODBC,["libodbc. +@@ -1746,13 +1771,14 @@ fi dnl **** Disable unsupported winmm drivers **** test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no} test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no} @@ -262,9 +262,9 @@ index fc68e1d..4252e05 100644 then WINE_WARNING([No sound system was found. Windows applications will be silent.]) fi -@@ -3242,6 +3268,7 @@ WINE_CONFIG_DLL(winemp3.acm) +@@ -3249,6 +3275,7 @@ WINE_CONFIG_DLL(winemp3.acm) WINE_CONFIG_DLL(wineoss.drv) - WINE_CONFIG_DLL(wineps.drv,,[po]) + WINE_CONFIG_DLL(wineps.drv,,[clean,po]) WINE_CONFIG_DLL(wineps16.drv16,enable_win16) +WINE_CONFIG_DLL(winepulse.drv) WINE_CONFIG_DLL(wineqtdecoder) @@ -606,12 +606,12 @@ index 0000000..a089166 +@ stdcall -private GetAudioEndpoint(ptr ptr long ptr) AUDDRV_GetAudioEndpoint +@ stdcall -private GetAudioSessionManager(ptr ptr) AUDDRV_GetAudioSessionManager -- -1.8.3.1 +1.8.4.2 -From c1e85b6fe49bec3ec081f80ad4788f03a78eee10 Mon Sep 17 00:00:00 2001 +From 3c94a9022cb90e8b0d1b7524edd55f516f496832 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 11 Oct 2013 20:32:09 +0200 +Date: Fri, 6 Dec 2013 21:18:54 +0100 Subject: winepulse: Add format and period probing --- @@ -779,12 +779,12 @@ index d187bdc..40db26d 100644 UINT *num, UINT *def_index) { -- -1.8.3.1 +1.8.4.2 -From 2fd945fc084010cd5cda1ab8cd391f805a173f6d Mon Sep 17 00:00:00 2001 +From 7c1a11a6602b67babc52e7fbb03ecb18114248cc Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 11 Oct 2013 20:32:09 +0200 +Date: Fri, 6 Dec 2013 21:18:54 +0100 Subject: winepulse: Add audioclient --- @@ -1878,12 +1878,12 @@ index 40db26d..37d85ff 100644 IAudioSessionManager2 **out) { -- -1.8.3.1 +1.8.4.2 -From c8eebef87664b3ce579fccc2e1d025948c11624d Mon Sep 17 00:00:00 2001 +From 32cb2815c43bcd74c833dcc5087cc2ad08e3a170 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 11 Oct 2013 20:32:09 +0200 +Date: Fri, 6 Dec 2013 21:18:54 +0100 Subject: winepulse: Add IAudioRenderClient and IAudioCaptureClient --- @@ -2230,12 +2230,12 @@ index 37d85ff..01cfd25 100644 IAudioSessionManager2 **out) { -- -1.8.3.1 +1.8.4.2 -From 09641562ebb7d3403e5c67064ae35fb1c27f8759 Mon Sep 17 00:00:00 2001 +From 648205cd61009d72c373717cd0eb9fc434b2203b Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 11 Oct 2013 20:32:09 +0200 +Date: Fri, 6 Dec 2013 21:18:54 +0100 Subject: winepulse: Add IAudioClock and IAudioClock2 --- @@ -2440,12 +2440,12 @@ index 01cfd25..3ed2288 100644 IAudioSessionManager2 **out) { -- -1.8.3.1 +1.8.4.2 -From a4b9609c7136ba7702b1ebb832a5036d40d5811d Mon Sep 17 00:00:00 2001 +From d93c422fed531827cfaaa6ce43c4f0b98b8dd14a Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 11 Oct 2013 20:32:09 +0200 +Date: Fri, 6 Dec 2013 21:18:54 +0100 Subject: winepulse: Add audiostreamvolume --- @@ -2726,12 +2726,12 @@ index 3ed2288..b7414c2 100644 IAudioSessionManager2 **out) { -- -1.8.3.1 +1.8.4.2 -From 5fdc48b529e9d29e837ac3c1fbdf04a69e14f246 Mon Sep 17 00:00:00 2001 +From 36901117b08c85dc683d199e5c62cdfccfaac7f0 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 11 Oct 2013 20:32:09 +0200 +Date: Fri, 6 Dec 2013 21:18:54 +0100 Subject: winepulse: Add session support --- @@ -3663,12 +3663,12 @@ index b7414c2..64ee62e 100644 + return S_OK; } -- -1.8.3.1 +1.8.4.2 -From 7863d23c5bcc99a237ffe63fdfd7ac76212fbd64 Mon Sep 17 00:00:00 2001 +From 08ae6d589046aefcfad38f880b6a9c63b27cecdb Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 11 Oct 2013 20:32:09 +0200 +Date: Fri, 6 Dec 2013 21:18:54 +0100 Subject: fix fdels trailing whitespaces Happy? :P @@ -3699,12 +3699,12 @@ index 64ee62e..5a71a3d 100644 if (*pos < This->clock_lastpos) *pos = This->clock_lastpos; -- -1.8.3.1 +1.8.4.2 -From 8d9f5b918d7477258c61cac331c3ff3133d13245 Mon Sep 17 00:00:00 2001 +From 7d0b90f4bab447fb8a5af373e78f82bfe8f9cb6d Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 11 Oct 2013 20:32:09 +0200 +Date: Fri, 6 Dec 2013 21:18:54 +0100 Subject: winepulse v12 Changes since v11: @@ -3748,12 +3748,12 @@ index 5a71a3d..960af3c 100644 copy = rem; if (copy > src_len) -- -1.8.3.1 +1.8.4.2 -From d4891c720ed1a43035d31ef2a6f172bc57856908 Mon Sep 17 00:00:00 2001 +From 37b37d25cc6db1328ad1d405ddf6729467a75ba8 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 11 Oct 2013 20:32:09 +0200 +Date: Fri, 6 Dec 2013 21:18:54 +0100 Subject: winepulse v15: Add support for missing formats, and silence an error for missing format tags @@ -3790,12 +3790,12 @@ index 960af3c..f52f119 100644 This->ss.channels = This->map.channels; if (!pa_channel_map_valid(&This->map) || This->ss.format == PA_SAMPLE_INVALID) { -- -1.8.3.1 +1.8.4.2 -From e9cba9021d291e22b7fcb767efbfcbdf8cd32a95 Mon Sep 17 00:00:00 2001 +From 852ac745ba93ad750e726e162111a8bdf791fe1a Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 11 Oct 2013 20:32:10 +0200 +Date: Fri, 6 Dec 2013 21:18:54 +0100 Subject: winepulse v16: Add official warning wine doesn't want to support winepulse @@ -3870,12 +3870,12 @@ index f52f119..76a2e0e 100644 return E_UNEXPECTED; -- -1.8.3.1 +1.8.4.2 -From d366e3cb55816d79eaf90140d20a96c724976a75 Mon Sep 17 00:00:00 2001 +From dafe04928a3025f93346045e8988e8627233ee91 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 11 Oct 2013 20:32:10 +0200 +Date: Fri, 6 Dec 2013 21:18:54 +0100 Subject: winepulse v17: Fix winmm tests Handle dwChannelMask = SPEAKER_ALL better so WAVE_FORMAT_EXTENSIBLE tests pass too @@ -3996,12 +3996,12 @@ index 76a2e0e..6e75674 100644 if (hr == S_OK || !out) { CoTaskMemFree(closest); -- -1.8.3.1 +1.8.4.2 -From 50a0e36b8bae78c66b99fa02a316b6ae08b21771 Mon Sep 17 00:00:00 2001 +From cdfb7e5da3b77681795be280694b0b25c1f80748 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 11 Oct 2013 20:32:10 +0200 +Date: Fri, 6 Dec 2013 21:18:54 +0100 Subject: winepulse v18: Latency and compilation improvements Changes since v17: @@ -4204,12 +4204,12 @@ index 6e75674..8e76826 100644 /* Make time never go backwards */ if (*pos < This->clock_lastpos) -- -1.8.3.1 +1.8.4.2 -From 41ff43e8e0a32c2e110cc8d5eefe483df1a6ccc5 Mon Sep 17 00:00:00 2001 +From 8c63eb09664f3fc458a86ace66cb422fb4aa7c42 Mon Sep 17 00:00:00 2001 From: Juergen Tretthahn -Date: Fri, 11 Oct 2013 20:32:10 +0200 +Date: Fri, 6 Dec 2013 21:18:54 +0100 Subject: winepulse: API Compatibility with 1.5.2 onward, v2 V2: Add winepulse.drv.spec to commit too @@ -4319,12 +4319,12 @@ index a089166..612bf46 100644 +@ stdcall -private GetAudioEndpoint(ptr ptr ptr) AUDDRV_GetAudioEndpoint @ stdcall -private GetAudioSessionManager(ptr ptr) AUDDRV_GetAudioSessionManager -- -1.8.3.1 +1.8.4.2 -From 82a81bf8d00f2f00334d9319165df0c971ea2322 Mon Sep 17 00:00:00 2001 +From 3f2bab86289d3d3c21d4421c66e5f67c27e6ad36 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 11 Oct 2013 20:32:10 +0200 +Date: Fri, 6 Dec 2013 21:18:54 +0100 Subject: winepulse: Fix low latency support Some games request a 20 ms buffer and will only fill 20 ms. @@ -4378,12 +4378,12 @@ index b374b53..7c07f54 100644 return S_OK; } -- -1.8.3.1 +1.8.4.2 -From 57e62655e388ea3d8569edd11d97d6e25fb59ed7 Mon Sep 17 00:00:00 2001 +From ce9eb7dd4b99f863343b789e7ccf7ea90c0ee5e5 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 11 Oct 2013 20:32:10 +0200 +Date: Fri, 6 Dec 2013 21:18:54 +0100 Subject: winepulse: drop realtime priority before thread destruction prevents having to handle a kernel RT Watchdog Timeout. @@ -4405,12 +4405,12 @@ index 7c07f54..ba68102 100644 pa_context_disconnect(pulse_ctx); pa_context_unref(pulse_ctx); -- -1.8.3.1 +1.8.4.2 -From 2a88932762f4c71db41f334eb522127a59d676cd Mon Sep 17 00:00:00 2001 +From 02e87980b9f45f455209e9e79d989a8cc91cdbc9 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 11 Oct 2013 20:32:10 +0200 +Date: Fri, 6 Dec 2013 21:18:55 +0100 Subject: winepulse: remove bogus SetEvent from pulse_started_callback --- @@ -4434,12 +4434,12 @@ index ba68102..68de00c 100644 static void pulse_rd_loop(ACImpl *This, size_t bytes) -- -1.8.3.1 +1.8.4.2 -From 64b69b3cb8c5ca13b39d0c3f7f92ed5e77600129 Mon Sep 17 00:00:00 2001 +From 294ef98df514ddda423949b8084bdefa0a663ade Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 11 Oct 2013 20:32:10 +0200 +Date: Fri, 6 Dec 2013 21:18:55 +0100 Subject: winepulse: disable the setevent part of the latency hack If you get playback glitches in skyrim or other games as a result of @@ -4476,12 +4476,12 @@ index 68de00c..643d55e 100644 return S_OK; } -- -1.8.3.1 +1.8.4.2 -From f9d9312f88a49f4f5a3651aafa37bfcce25768d4 Mon Sep 17 00:00:00 2001 +From 147d3b2ad463e42501c16144690c9a73546d1b71 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 11 Oct 2013 20:32:10 +0200 +Date: Fri, 6 Dec 2013 21:18:55 +0100 Subject: winepulse v20: fix the checks in IsFormatSupported Thanks to DGhost001 for reporting and isolating the issue. @@ -4505,12 +4505,12 @@ index 643d55e..86dd10a 100644 CoTaskMemFree(closest); if (out) -- -1.8.3.1 +1.8.4.2 -From 3d403834d3fc3866ddfa7144084d4d380719402f Mon Sep 17 00:00:00 2001 +From c28401f918f3ed1981d7cc21c52efdf9bdca1468 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 11 Oct 2013 20:32:10 +0200 +Date: Fri, 6 Dec 2013 21:18:55 +0100 Subject: winepulse: fixup IsFormatSupported calls --- @@ -4519,10 +4519,10 @@ Subject: winepulse: fixup IsFormatSupported calls 2 files changed, 283 insertions(+), 57 deletions(-) diff --git a/dlls/mmdevapi/tests/render.c b/dlls/mmdevapi/tests/render.c -index 7cfd440..57fa4b1 100644 +index 026be48..19b5b56 100644 --- a/dlls/mmdevapi/tests/render.c +++ b/dlls/mmdevapi/tests/render.c -@@ -474,6 +474,169 @@ static void test_formats(AUDCLNT_SHAREMODE mode) +@@ -477,6 +477,169 @@ static void test_formats(AUDCLNT_SHAREMODE mode) } } @@ -4692,7 +4692,7 @@ index 7cfd440..57fa4b1 100644 static void test_references(void) { IAudioClient *ac; -@@ -2241,6 +2404,7 @@ START_TEST(render) +@@ -2255,6 +2418,7 @@ START_TEST(render) test_audioclient(); test_formats(AUDCLNT_SHAREMODE_EXCLUSIVE); test_formats(AUDCLNT_SHAREMODE_SHARED); @@ -4919,12 +4919,12 @@ index 86dd10a..554a9fc 100644 TRACE("returning: %08x %p\n", hr, out ? *out : NULL); return hr; -- -1.8.3.1 +1.8.4.2 -From 5c3cc52ddd0629a18e00ed8ab53663826911871d Mon Sep 17 00:00:00 2001 +From 1f5f438d3362867d2bcc5f87477f89c5fc671b36 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 11 Oct 2013 20:32:10 +0200 +Date: Fri, 6 Dec 2013 21:18:55 +0100 Subject: winepulse v21: return early if padding didn't update --- @@ -4948,12 +4948,12 @@ index 554a9fc..a4575d5 100644 This->clock_written += oldpad - This->pad; TRACE("New pad: %zu (-%zu)\n", This->pad / pa_frame_size(&This->ss), (oldpad - This->pad) / pa_frame_size(&This->ss)); -- -1.8.3.1 +1.8.4.2 -From decfeaf6b57351f42bdea44ae0feccf2eefe2989 Mon Sep 17 00:00:00 2001 +From c9ca50953d00d6d11dfef623addef2d71227b95f Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 11 Oct 2013 20:32:10 +0200 +Date: Fri, 6 Dec 2013 21:18:55 +0100 Subject: winepulse: fix unneeded free in write.. --- @@ -4985,12 +4985,12 @@ index a4575d5..3ca68fd 100644 This->locked_ptr = NULL; TRACE("Released %u, pad %zu\n", written_frames, This->pad / pa_frame_size(&This->ss)); -- -1.8.3.1 +1.8.4.2 -From a2cb619b3d2b7160ce15d49c483c8531532747cd Mon Sep 17 00:00:00 2001 +From 1d4db9d1cefac51737b438b498f8c30d41fa7ef1 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 11 Oct 2013 20:32:10 +0200 +Date: Fri, 6 Dec 2013 21:18:55 +0100 Subject: winepulse v23: fixup a invalid free in mmdevapi array members of ids should be dynamically allocated, judging from valgrind output. @@ -5037,11 +5037,11 @@ index 3ca68fd..5b041a2 100644 (*keys)[0] = pulse_render_guid; else -- -1.8.3.1 +1.8.4.2 -From 6f9b97bc5b9c0871e7cebe5f041169232468d2e8 Mon Sep 17 00:00:00 2001 +From a6484f959a11b2e3e10be7c0fd399f4b97583e90 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 11 Oct 2013 20:32:11 +0200 +Date: Fri, 6 Dec 2013 21:18:55 +0100 Subject: winepulse: use a pi-mutex for serialization. The winepulse thread is realtime, to prevent blocking it indefinitely @@ -5104,12 +5104,12 @@ index 5b041a2..a09ce7f 100644 if (pulse_thread) SetThreadPriority(pulse_thread, 0); -- -1.8.3.1 +1.8.4.2 -From fbbd11d703f1b18281d430c7d8fbcdcb93f4c07a Mon Sep 17 00:00:00 2001 +From bbc04a603b99e7db5a71aff2fa323852aebc0495 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 11 Oct 2013 20:32:11 +0200 +Date: Fri, 6 Dec 2013 21:18:55 +0100 Subject: winepulse: add support for IMarshal Fixes bug 32161 for winepulse. Based On Jeff Klein's patches for the @@ -5242,5 +5242,5 @@ index a09ce7f..f052a08 100644 return E_NOINTERFACE; } -- -1.8.3.1 +1.8.4.2 diff --git a/wine.spec b/wine.spec index 8983cc8..31ee718 100644 --- a/wine.spec +++ b/wine.spec @@ -1,10 +1,10 @@ %global no64bit 0 %global winegecko 2.24 -%global winemono 0.0.8 -%global _default_patch_fuzz 2 +%global winemono 4.5.2 +#%global _default_patch_fuzz 2 Name: wine -Version: 1.7.7 +Version: 1.7.8 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -54,15 +54,15 @@ Patch511: wine-cjk.patch ## winepulse backend # http://repo.or.cz/w/wine/multimedia.git -# Fri, 18 Oct 2013 23:16:38 +0000 -# based on wine tree 1.7.4 +# Fri, 6 Dec 2013 20:18:55 +0000 +# based on wine tree 1.7.8 ## # git clone http://repo.or.cz/r/wine/multimedia.git # cd multimedia -#git format-patch -k --stdout 9bed77776bc322ed482aa1ac2525f60d457130e6~..a2cb619b3d2b7160ce15d49c483c8531532747cd > ~/cvs/fedora/rpms/wine/wine-pulse-1.7.4.patch -#git format-patch -k --stdout 6f9b97bc5b9c0871e7cebe5f041169232468d2e8~..fbbd11d703f1b18281d430c7d8fbcdcb93f4c07a >> ~/cvs/fedora/rpms/wine/wine-pulse-1.7.4.patch +# git format-patch -k --stdout 8376f764411b8ca7f6f80a25e2abe63a4dc48fa0~..1d4db9d1cefac51737b438b498f8c30d41fa7ef1 > ~/cvs/fedora/rpms/wine/wine-pulse-1.7.8.patch +# git format-patch -k --stdout a6484f959a11b2e3e10be7c0fd399f4b97583e90~..bbc04a603b99e7db5a71aff2fa323852aebc0495 >> ~/cvs/fedora/rpms/wine/wine-pulse-1.7.8.patch -Patch1001: wine-pulse-1.7.4.patch +Patch1001: wine-pulse-1.7.8.patch %if !%{?no64bit} ExclusiveArch: %{ix86} x86_64 %{arm} @@ -907,6 +907,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/fakedlls/* %{_libdir}/wine/attrib.exe.so +%{_libdir}/wine/arp.exe.so %{_libdir}/wine/aspnet_regiis.exe.so %{_libdir}/wine/cacls.exe.so %{_libdir}/wine/conhost.exe.so @@ -1557,6 +1558,12 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sun Dec 08 2013 Andreas Bierfert +- 1.7.8-1 +- version upgrade +- wine mono 4.5.2 +- upgraded winepulse + * Sat Nov 23 2013 Andreas Bierfert - 1.7.7-1 - version upgrade From f04e186ecba088215c3771f9d4fd790018737925 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Thu, 9 Jan 2014 13:11:37 +0100 Subject: [PATCH 285/715] 1.7.10-1 - version upgrade - upgraded winepulse --- .gitignore | 4 +- sources | 4 +- ...lse-1.7.8.patch => wine-pulse-1.7.10.patch | 136 +++++++++--------- wine.spec | 18 ++- 4 files changed, 83 insertions(+), 79 deletions(-) rename wine-pulse-1.7.8.patch => wine-pulse-1.7.10.patch (98%) diff --git a/.gitignore b/.gitignore index 57fef55..20a16f4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ /wine-1.6.1.tar.bz2.sign /wine-1.6.1.tar.bz2 -/wine-1.7.8.tar.bz2 -/wine-1.7.8.tar.bz2.sign +/wine-1.7.10.tar.bz2 +/wine-1.7.10.tar.bz2.sign diff --git a/sources b/sources index 2ce4f22..848a715 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -e66a9d73e224c099b617a1f5d718d604 wine-1.7.8.tar.bz2 -4a36e86fdeadfc1bd9e2ddb963608325 wine-1.7.8.tar.bz2.sign +dc58a93457071b187e75c90ce74c069f wine-1.7.10.tar.bz2 +22e3f1f9dcc62adf630521bcb0c4b471 wine-1.7.10.tar.bz2.sign diff --git a/wine-pulse-1.7.8.patch b/wine-pulse-1.7.10.patch similarity index 98% rename from wine-pulse-1.7.8.patch rename to wine-pulse-1.7.10.patch index 0557708..2ffd589 100644 --- a/wine-pulse-1.7.8.patch +++ b/wine-pulse-1.7.10.patch @@ -1,6 +1,6 @@ -From 8376f764411b8ca7f6f80a25e2abe63a4dc48fa0 Mon Sep 17 00:00:00 2001 +From 3822f907cd790b0405d2bad772a8240d559aa0aa Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 6 Dec 2013 21:18:54 +0100 +Date: Sat, 4 Jan 2014 07:08:54 +0100 Subject: winmm: Load winealsa if winepulse is found Fixes midi on winepulse @@ -28,9 +28,9 @@ index c3b3674..56cfe35 100644 1.8.4.2 -From 77927f6e282821ff21c637fc1c9a5d710f5f59e4 Mon Sep 17 00:00:00 2001 +From ddd8b17270df0d8ba557d15e1c9425cab8c7fe12 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 6 Dec 2013 21:18:54 +0100 +Date: Sat, 4 Jan 2014 07:08:54 +0100 Subject: winepulse: Add initial stub for pulseaudio support --- @@ -40,19 +40,19 @@ added here. configure | 97 +++++++++++- configure.ac | 31 +++- dlls/mmdevapi/main.c | 2 +- - dlls/winepulse.drv/Makefile.in | 9 ++ + dlls/winepulse.drv/Makefile.in | 7 + dlls/winepulse.drv/mmdevdrv.c | 290 ++++++++++++++++++++++++++++++++++ dlls/winepulse.drv/winepulse.drv.spec | 5 + - 6 files changed, 429 insertions(+), 5 deletions(-) + 6 files changed, 427 insertions(+), 5 deletions(-) create mode 100644 dlls/winepulse.drv/Makefile.in create mode 100644 dlls/winepulse.drv/mmdevdrv.c create mode 100644 dlls/winepulse.drv/winepulse.drv.spec diff --git a/configure b/configure -index 81a474f..879ef8f 100755 +index b4dfb47..c8f9168 100755 --- a/configure +++ b/configure -@@ -658,6 +658,8 @@ OSS4INCL +@@ -653,6 +653,8 @@ OSS4INCL ALSALIBS GSTREAMER_LIBS GSTREAMER_CFLAGS @@ -61,7 +61,7 @@ index 81a474f..879ef8f 100755 LIBGETTEXTPO ZLIB FREETYPE_LIBS -@@ -835,6 +837,7 @@ with_osmesa +@@ -830,6 +832,7 @@ with_osmesa with_oss with_png with_pthread @@ -69,7 +69,7 @@ index 81a474f..879ef8f 100755 with_sane with_tiff with_v4l -@@ -2048,6 +2051,7 @@ Optional Packages: +@@ -2044,6 +2047,7 @@ Optional Packages: --without-oss do not use the OSS sound support --without-png do not use PNG --without-pthread do not use the pthread library @@ -77,7 +77,7 @@ index 81a474f..879ef8f 100755 --without-sane do not use SANE (scanner support) --without-tiff do not use TIFF --without-v4l do not use v4l1 (v4l support) -@@ -3283,6 +3287,12 @@ if test "${with_pthread+set}" = set; then : +@@ -3281,6 +3285,12 @@ if test "${with_pthread+set}" = set; then : fi @@ -90,7 +90,7 @@ index 81a474f..879ef8f 100755 # Check whether --with-sane was given. if test "${with_sane+set}" = set; then : withval=$with_sane; -@@ -11689,6 +11699,87 @@ esac +@@ -12095,6 +12105,87 @@ esac fi fi @@ -178,7 +178,7 @@ index 81a474f..879ef8f 100755 if test "x$with_gstreamer" != "xno" then if test -n "$GSTREAMER_CFLAGS"; then : -@@ -13026,12 +13117,13 @@ fi +@@ -13432,12 +13523,13 @@ fi test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no} test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no} @@ -194,7 +194,7 @@ index 81a474f..879ef8f 100755 then as_fn_append wine_warnings "|No sound system was found. Windows applications will be silent." fi -@@ -17281,6 +17373,7 @@ wine_fn_config_dll winemp3.acm enable_winemp3_acm +@@ -17130,6 +17222,7 @@ wine_fn_config_dll winemp3.acm enable_winemp3_acm wine_fn_config_dll wineoss.drv enable_wineoss_drv wine_fn_config_dll wineps.drv enable_wineps_drv clean,po wine_fn_config_dll wineps16.drv16 enable_win16 @@ -203,10 +203,10 @@ index 81a474f..879ef8f 100755 wine_fn_config_dll winex11.drv enable_winex11_drv wine_fn_config_dll wing.dll16 enable_win16 diff --git a/configure.ac b/configure.ac -index 0124652..6a3d59c 100644 +index 3c1101c..cf2cb7f 100644 --- a/configure.ac +++ b/configure.ac -@@ -68,6 +68,7 @@ AC_ARG_WITH(oss, AS_HELP_STRING([--without-oss],[do not use the OSS sound +@@ -70,6 +70,7 @@ AC_ARG_WITH(oss, AS_HELP_STRING([--without-oss],[do not use the OSS sound AC_ARG_WITH(png, AS_HELP_STRING([--without-png],[do not use PNG])) AC_ARG_WITH(pthread, AS_HELP_STRING([--without-pthread],[do not use the pthread library]), [if test "x$withval" = "xno"; then ac_cv_header_pthread_h=no; fi]) @@ -262,7 +262,7 @@ index 0124652..6a3d59c 100644 then WINE_WARNING([No sound system was found. Windows applications will be silent.]) fi -@@ -3249,6 +3275,7 @@ WINE_CONFIG_DLL(winemp3.acm) +@@ -3184,6 +3210,7 @@ WINE_CONFIG_DLL(winemp3.acm) WINE_CONFIG_DLL(wineoss.drv) WINE_CONFIG_DLL(wineps.drv,,[clean,po]) WINE_CONFIG_DLL(wineps16.drv16,enable_win16) @@ -285,10 +285,10 @@ index 447813f..b9ae99e 100644 DriverFuncs driver; diff --git a/dlls/winepulse.drv/Makefile.in b/dlls/winepulse.drv/Makefile.in new file mode 100644 -index 0000000..0f595f1 +index 0000000..ae66542 --- /dev/null +++ b/dlls/winepulse.drv/Makefile.in -@@ -0,0 +1,9 @@ +@@ -0,0 +1,7 @@ +MODULE = winepulse.drv +IMPORTS = dxguid uuid winmm user32 advapi32 ole32 +EXTRALIBS = @PULSELIBS@ @LIBPTHREAD@ @@ -296,8 +296,6 @@ index 0000000..0f595f1 + +C_SRCS = \ + mmdevdrv.c -+ -+@MAKE_DLL_RULES@ diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c new file mode 100644 index 0000000..d187bdc @@ -609,9 +607,9 @@ index 0000000..a089166 1.8.4.2 -From 3c94a9022cb90e8b0d1b7524edd55f516f496832 Mon Sep 17 00:00:00 2001 +From 04a80af2cccad7e15b49dd1dd6c04fe2e00da2e9 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 6 Dec 2013 21:18:54 +0100 +Date: Sat, 4 Jan 2014 07:08:54 +0100 Subject: winepulse: Add format and period probing --- @@ -782,9 +780,9 @@ index d187bdc..40db26d 100644 1.8.4.2 -From 7c1a11a6602b67babc52e7fbb03ecb18114248cc Mon Sep 17 00:00:00 2001 +From faac72c2c84e0a156e3c7def10b945b4a45f01f6 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 6 Dec 2013 21:18:54 +0100 +Date: Sat, 4 Jan 2014 07:08:54 +0100 Subject: winepulse: Add audioclient --- @@ -1881,9 +1879,9 @@ index 40db26d..37d85ff 100644 1.8.4.2 -From 32cb2815c43bcd74c833dcc5087cc2ad08e3a170 Mon Sep 17 00:00:00 2001 +From d8b1b43529fa98eb0a04d1616f1b98d264d2018b Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 6 Dec 2013 21:18:54 +0100 +Date: Sat, 4 Jan 2014 07:08:54 +0100 Subject: winepulse: Add IAudioRenderClient and IAudioCaptureClient --- @@ -2233,9 +2231,9 @@ index 37d85ff..01cfd25 100644 1.8.4.2 -From 648205cd61009d72c373717cd0eb9fc434b2203b Mon Sep 17 00:00:00 2001 +From 96b254276b471a85c6705b0043894bed308118f1 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 6 Dec 2013 21:18:54 +0100 +Date: Sat, 4 Jan 2014 07:08:54 +0100 Subject: winepulse: Add IAudioClock and IAudioClock2 --- @@ -2443,9 +2441,9 @@ index 01cfd25..3ed2288 100644 1.8.4.2 -From d93c422fed531827cfaaa6ce43c4f0b98b8dd14a Mon Sep 17 00:00:00 2001 +From d67a96e9b1cc13a5fa98bfb0f1a9a0b638d7f117 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 6 Dec 2013 21:18:54 +0100 +Date: Sat, 4 Jan 2014 07:08:54 +0100 Subject: winepulse: Add audiostreamvolume --- @@ -2729,9 +2727,9 @@ index 3ed2288..b7414c2 100644 1.8.4.2 -From 36901117b08c85dc683d199e5c62cdfccfaac7f0 Mon Sep 17 00:00:00 2001 +From 6adc30134f5b3223b038041752e4a7020342c9d9 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 6 Dec 2013 21:18:54 +0100 +Date: Sat, 4 Jan 2014 07:08:54 +0100 Subject: winepulse: Add session support --- @@ -3666,9 +3664,9 @@ index b7414c2..64ee62e 100644 1.8.4.2 -From 08ae6d589046aefcfad38f880b6a9c63b27cecdb Mon Sep 17 00:00:00 2001 +From 743d1d5364e1e62c8a1c05a1a7eed1baed18febf Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 6 Dec 2013 21:18:54 +0100 +Date: Sat, 4 Jan 2014 07:08:54 +0100 Subject: fix fdels trailing whitespaces Happy? :P @@ -3702,9 +3700,9 @@ index 64ee62e..5a71a3d 100644 1.8.4.2 -From 7d0b90f4bab447fb8a5af373e78f82bfe8f9cb6d Mon Sep 17 00:00:00 2001 +From 61642a5c08f38b32d2eef819b82f6adc24466932 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 6 Dec 2013 21:18:54 +0100 +Date: Sat, 4 Jan 2014 07:08:54 +0100 Subject: winepulse v12 Changes since v11: @@ -3751,9 +3749,9 @@ index 5a71a3d..960af3c 100644 1.8.4.2 -From 37b37d25cc6db1328ad1d405ddf6729467a75ba8 Mon Sep 17 00:00:00 2001 +From 1966576a4b5cdc7b6003cb93cb0953670aaa9235 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 6 Dec 2013 21:18:54 +0100 +Date: Sat, 4 Jan 2014 07:08:54 +0100 Subject: winepulse v15: Add support for missing formats, and silence an error for missing format tags @@ -3793,9 +3791,9 @@ index 960af3c..f52f119 100644 1.8.4.2 -From 852ac745ba93ad750e726e162111a8bdf791fe1a Mon Sep 17 00:00:00 2001 +From 3edd1b44eec39916de3284b02d62e121b5d86d23 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 6 Dec 2013 21:18:54 +0100 +Date: Sat, 4 Jan 2014 07:08:54 +0100 Subject: winepulse v16: Add official warning wine doesn't want to support winepulse @@ -3873,9 +3871,9 @@ index f52f119..76a2e0e 100644 1.8.4.2 -From dafe04928a3025f93346045e8988e8627233ee91 Mon Sep 17 00:00:00 2001 +From 3749b1e2e55d2bebc795420b81209a992602cf2d Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 6 Dec 2013 21:18:54 +0100 +Date: Sat, 4 Jan 2014 07:08:54 +0100 Subject: winepulse v17: Fix winmm tests Handle dwChannelMask = SPEAKER_ALL better so WAVE_FORMAT_EXTENSIBLE tests pass too @@ -3999,9 +3997,9 @@ index 76a2e0e..6e75674 100644 1.8.4.2 -From cdfb7e5da3b77681795be280694b0b25c1f80748 Mon Sep 17 00:00:00 2001 +From c70efb35703e991685bf33b2e3faba3a1365a58f Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 6 Dec 2013 21:18:54 +0100 +Date: Sat, 4 Jan 2014 07:08:54 +0100 Subject: winepulse v18: Latency and compilation improvements Changes since v17: @@ -4207,9 +4205,9 @@ index 6e75674..8e76826 100644 1.8.4.2 -From 8c63eb09664f3fc458a86ace66cb422fb4aa7c42 Mon Sep 17 00:00:00 2001 +From a2da4fbf74405222a8c5e69656242ab98e941d4a Mon Sep 17 00:00:00 2001 From: Juergen Tretthahn -Date: Fri, 6 Dec 2013 21:18:54 +0100 +Date: Sat, 4 Jan 2014 07:08:55 +0100 Subject: winepulse: API Compatibility with 1.5.2 onward, v2 V2: Add winepulse.drv.spec to commit too @@ -4322,9 +4320,9 @@ index a089166..612bf46 100644 1.8.4.2 -From 3f2bab86289d3d3c21d4421c66e5f67c27e6ad36 Mon Sep 17 00:00:00 2001 +From 32b8b1c43320d5bf11a5f312e9d9ee33ee7ffd96 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 6 Dec 2013 21:18:54 +0100 +Date: Sat, 4 Jan 2014 07:08:55 +0100 Subject: winepulse: Fix low latency support Some games request a 20 ms buffer and will only fill 20 ms. @@ -4381,9 +4379,9 @@ index b374b53..7c07f54 100644 1.8.4.2 -From ce9eb7dd4b99f863343b789e7ccf7ea90c0ee5e5 Mon Sep 17 00:00:00 2001 +From 3d1c3802f07a5b499bf50f3a8b6d4b98fe85689c Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 6 Dec 2013 21:18:54 +0100 +Date: Sat, 4 Jan 2014 07:08:55 +0100 Subject: winepulse: drop realtime priority before thread destruction prevents having to handle a kernel RT Watchdog Timeout. @@ -4408,9 +4406,9 @@ index 7c07f54..ba68102 100644 1.8.4.2 -From 02e87980b9f45f455209e9e79d989a8cc91cdbc9 Mon Sep 17 00:00:00 2001 +From df52b1440f1020c33eaf5d17e6d34b62bf44f648 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 6 Dec 2013 21:18:55 +0100 +Date: Sat, 4 Jan 2014 07:08:55 +0100 Subject: winepulse: remove bogus SetEvent from pulse_started_callback --- @@ -4437,9 +4435,9 @@ index ba68102..68de00c 100644 1.8.4.2 -From 294ef98df514ddda423949b8084bdefa0a663ade Mon Sep 17 00:00:00 2001 +From 018a86a638ab1389e221e2839eeac778d744d2d4 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 6 Dec 2013 21:18:55 +0100 +Date: Sat, 4 Jan 2014 07:08:55 +0100 Subject: winepulse: disable the setevent part of the latency hack If you get playback glitches in skyrim or other games as a result of @@ -4479,9 +4477,9 @@ index 68de00c..643d55e 100644 1.8.4.2 -From 147d3b2ad463e42501c16144690c9a73546d1b71 Mon Sep 17 00:00:00 2001 +From 27bdbc72c331dcc4d8c3279e66ced92935ab1426 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 6 Dec 2013 21:18:55 +0100 +Date: Sat, 4 Jan 2014 07:08:55 +0100 Subject: winepulse v20: fix the checks in IsFormatSupported Thanks to DGhost001 for reporting and isolating the issue. @@ -4508,9 +4506,9 @@ index 643d55e..86dd10a 100644 1.8.4.2 -From c28401f918f3ed1981d7cc21c52efdf9bdca1468 Mon Sep 17 00:00:00 2001 +From de619f9370f4a2efc3c7074ad9649eb98add3d7e Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 6 Dec 2013 21:18:55 +0100 +Date: Sat, 4 Jan 2014 07:08:55 +0100 Subject: winepulse: fixup IsFormatSupported calls --- @@ -4922,9 +4920,9 @@ index 86dd10a..554a9fc 100644 1.8.4.2 -From 1f5f438d3362867d2bcc5f87477f89c5fc671b36 Mon Sep 17 00:00:00 2001 +From fc95e404034572b4335b8239dfd7206aa5c53ce2 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 6 Dec 2013 21:18:55 +0100 +Date: Sat, 4 Jan 2014 07:08:55 +0100 Subject: winepulse v21: return early if padding didn't update --- @@ -4951,9 +4949,9 @@ index 554a9fc..a4575d5 100644 1.8.4.2 -From c9ca50953d00d6d11dfef623addef2d71227b95f Mon Sep 17 00:00:00 2001 +From d4513fb8e321a39f693bb47b21150779894d0ff6 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 6 Dec 2013 21:18:55 +0100 +Date: Sat, 4 Jan 2014 07:08:55 +0100 Subject: winepulse: fix unneeded free in write.. --- @@ -4988,9 +4986,9 @@ index a4575d5..3ca68fd 100644 1.8.4.2 -From 1d4db9d1cefac51737b438b498f8c30d41fa7ef1 Mon Sep 17 00:00:00 2001 +From 1845d1db19da5e3007231e2632d9ed093b8faa11 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 6 Dec 2013 21:18:55 +0100 +Date: Sat, 4 Jan 2014 07:08:55 +0100 Subject: winepulse v23: fixup a invalid free in mmdevapi array members of ids should be dynamically allocated, judging from valgrind output. @@ -5039,9 +5037,9 @@ index 3ca68fd..5b041a2 100644 -- 1.8.4.2 -From a6484f959a11b2e3e10be7c0fd399f4b97583e90 Mon Sep 17 00:00:00 2001 +From 04887220fbd530e03cc73ef45dd8f55f8a6f3b12 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 6 Dec 2013 21:18:55 +0100 +Date: Sat, 4 Jan 2014 07:08:55 +0100 Subject: winepulse: use a pi-mutex for serialization. The winepulse thread is realtime, to prevent blocking it indefinitely @@ -5107,9 +5105,9 @@ index 5b041a2..a09ce7f 100644 1.8.4.2 -From bbc04a603b99e7db5a71aff2fa323852aebc0495 Mon Sep 17 00:00:00 2001 +From 20e40bc5eb0a8cbd8e9c6817091311bc05b53f94 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Fri, 6 Dec 2013 21:18:55 +0100 +Date: Sat, 4 Jan 2014 07:08:55 +0100 Subject: winepulse: add support for IMarshal Fixes bug 32161 for winepulse. Based On Jeff Klein's patches for the diff --git a/wine.spec b/wine.spec index 31ee718..a3a8352 100644 --- a/wine.spec +++ b/wine.spec @@ -4,7 +4,7 @@ #%global _default_patch_fuzz 2 Name: wine -Version: 1.7.8 +Version: 1.7.10 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -54,15 +54,15 @@ Patch511: wine-cjk.patch ## winepulse backend # http://repo.or.cz/w/wine/multimedia.git -# Fri, 6 Dec 2013 20:18:55 +0000 -# based on wine tree 1.7.8 +# Sat, 4 Jan 2014 06:16:23 +0000 +# based on wine tree 1.7.10 ## # git clone http://repo.or.cz/r/wine/multimedia.git # cd multimedia -# git format-patch -k --stdout 8376f764411b8ca7f6f80a25e2abe63a4dc48fa0~..1d4db9d1cefac51737b438b498f8c30d41fa7ef1 > ~/cvs/fedora/rpms/wine/wine-pulse-1.7.8.patch -# git format-patch -k --stdout a6484f959a11b2e3e10be7c0fd399f4b97583e90~..bbc04a603b99e7db5a71aff2fa323852aebc0495 >> ~/cvs/fedora/rpms/wine/wine-pulse-1.7.8.patch +# git format-patch -k --stdout 3822f907cd790b0405d2bad772a8240d559aa0aa~..1845d1db19da5e3007231e2632d9ed093b8faa11 > ~/cvs/fedora/rpms/wine/wine-pulse-1.7.10.patch +# git format-patch -k --stdout 04887220fbd530e03cc73ef45dd8f55f8a6f3b12~..20e40bc5eb0a8cbd8e9c6817091311bc05b53f94 >> ~/cvs/fedora/rpms/wine/wine-pulse-1.7.10.patch -Patch1001: wine-pulse-1.7.8.patch +Patch1001: wine-pulse-1.7.10.patch %if !%{?no64bit} ExclusiveArch: %{ix86} x86_64 %{arm} @@ -1247,6 +1247,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/t2embed.dll.so %{_libdir}/wine/tapi32.dll.so %{_libdir}/wine/taskkill.exe.so +%{_libdir}/wine/taskschd.dll.so %{_libdir}/wine/traffic.dll.so %{_libdir}/wine/unicows.dll.so %{_libdir}/wine/unlodctr.exe.so @@ -1558,6 +1559,11 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Thu Jan 09 2014 Andreas Bierfert +- 1.7.10-1 +- version upgrade +- upgraded winepulse + * Sun Dec 08 2013 Andreas Bierfert - 1.7.8-1 - version upgrade From d0319cd2e065d592399fa9bc505c0eca3df48f88 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 26 Jan 2014 18:23:53 +0100 Subject: [PATCH 286/715] 1.7.11-1 - version upgrade --- .gitignore | 4 ++-- sources | 4 ++-- wine.spec | 14 +++++++++++++- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 20a16f4..f605ab2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ /wine-1.6.1.tar.bz2.sign /wine-1.6.1.tar.bz2 -/wine-1.7.10.tar.bz2 -/wine-1.7.10.tar.bz2.sign +/wine-1.7.11.tar.bz2 +/wine-1.7.11.tar.bz2.sign diff --git a/sources b/sources index 848a715..3cf58d5 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -dc58a93457071b187e75c90ce74c069f wine-1.7.10.tar.bz2 -22e3f1f9dcc62adf630521bcb0c4b471 wine-1.7.10.tar.bz2.sign +e0e55105e5c7ba5277023bd54ac60d44 wine-1.7.11.tar.bz2 +2a6b2a0d189d0e26c8cf793bc37eafd1 wine-1.7.11.tar.bz2.sign diff --git a/wine.spec b/wine.spec index a3a8352..2bccb7f 100644 --- a/wine.spec +++ b/wine.spec @@ -4,7 +4,7 @@ #%global _default_patch_fuzz 2 Name: wine -Version: 1.7.10 +Version: 1.7.11 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -959,8 +959,16 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/advapi32.dll.so %{_libdir}/wine/advpack.dll.so %{_libdir}/wine/amstream.dll.so +%{_libdir}/wine/api-ms-win-core-debug-l1-1-1.dll.so +%{_libdir}/wine/api-ms-win-core-errorhandling-l1-1-1.dll.so +%{_libdir}/wine/api-ms-win-core-interlocked-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-localregistry-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-processthreads-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-processthreads-l1-1-1.dll.so +%{_libdir}/wine/api-ms-win-core-profile-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-string-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-sysinfo-l1-2-0.dll.so +%{_libdir}/wine/api-ms-win-core-util-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-winrt-error-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-winrt-string-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-downlevel-advapi32-l1-1-0.dll.so @@ -1559,6 +1567,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sun Jan 26 2014 Andreas Bierfert +- 1.7.11-1 +- version upgrade + * Thu Jan 09 2014 Andreas Bierfert - 1.7.10-1 - version upgrade From 4619de444ef5893f09af731bf3a1bf0410f50f75 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 23 Feb 2014 10:34:46 +0100 Subject: [PATCH 287/715] 1.7.13-1 - version upgrade - upgraded winepulse --- .gitignore | 4 +- sources | 4 +- ...se-1.7.10.patch => wine-pulse-1.7.11.patch | 226 +++++++++--------- wine.spec | 55 ++++- 4 files changed, 171 insertions(+), 118 deletions(-) rename wine-pulse-1.7.10.patch => wine-pulse-1.7.11.patch (97%) diff --git a/.gitignore b/.gitignore index f605ab2..949b32e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ /wine-1.6.1.tar.bz2.sign /wine-1.6.1.tar.bz2 -/wine-1.7.11.tar.bz2 -/wine-1.7.11.tar.bz2.sign +/wine-1.7.13.tar.bz2 +/wine-1.7.13.tar.bz2.sign diff --git a/sources b/sources index 3cf58d5..3066e95 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -e0e55105e5c7ba5277023bd54ac60d44 wine-1.7.11.tar.bz2 -2a6b2a0d189d0e26c8cf793bc37eafd1 wine-1.7.11.tar.bz2.sign +f238be82934d48fee55b46789a26d9aa wine-1.7.13.tar.bz2 +a92fbbbb3e249b88d7bb7b744fc0039b wine-1.7.13.tar.bz2.sign diff --git a/wine-pulse-1.7.10.patch b/wine-pulse-1.7.11.patch similarity index 97% rename from wine-pulse-1.7.10.patch rename to wine-pulse-1.7.11.patch index 2ffd589..bdec4b9 100644 --- a/wine-pulse-1.7.10.patch +++ b/wine-pulse-1.7.11.patch @@ -1,6 +1,6 @@ -From 3822f907cd790b0405d2bad772a8240d559aa0aa Mon Sep 17 00:00:00 2001 +From 28e56d726918e4bc59c456b1947b42f40321763f Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 4 Jan 2014 07:08:54 +0100 +Date: Sun, 19 Jan 2014 11:34:45 +0100 Subject: winmm: Load winealsa if winepulse is found Fixes midi on winepulse @@ -25,43 +25,43 @@ index c3b3674..56cfe35 100644 HeapFree(GetProcessHeap(), 0, drvA); PropVariantClear(&pv); -- -1.8.4.2 +1.8.5.3 -From ddd8b17270df0d8ba557d15e1c9425cab8c7fe12 Mon Sep 17 00:00:00 2001 +From 20f3b69f1d98ac4822529677acbfa9ed5b6a329c Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 4 Jan 2014 07:08:54 +0100 +Date: Sun, 19 Jan 2014 11:34:46 +0100 Subject: winepulse: Add initial stub for pulseaudio support --- Just the basic of initialization and pulseaudio mainloop support is added here. --- - configure | 97 +++++++++++- - configure.ac | 31 +++- + configure | 99 +++++++++++- + configure.ac | 32 +++- dlls/mmdevapi/main.c | 2 +- dlls/winepulse.drv/Makefile.in | 7 + dlls/winepulse.drv/mmdevdrv.c | 290 ++++++++++++++++++++++++++++++++++ dlls/winepulse.drv/winepulse.drv.spec | 5 + - 6 files changed, 427 insertions(+), 5 deletions(-) + 6 files changed, 430 insertions(+), 5 deletions(-) create mode 100644 dlls/winepulse.drv/Makefile.in create mode 100644 dlls/winepulse.drv/mmdevdrv.c create mode 100644 dlls/winepulse.drv/winepulse.drv.spec diff --git a/configure b/configure -index b4dfb47..c8f9168 100755 +index 6f5652a..a149f34 100755 --- a/configure +++ b/configure -@@ -653,6 +653,8 @@ OSS4INCL - ALSALIBS +@@ -653,6 +653,8 @@ OSS4_CFLAGS + ALSA_LIBS GSTREAMER_LIBS GSTREAMER_CFLAGS +PULSEINCL +PULSELIBS - LIBGETTEXTPO - ZLIB + GETTEXTPO_LIBS + Z_LIBS FREETYPE_LIBS -@@ -830,6 +832,7 @@ with_osmesa +@@ -824,6 +826,7 @@ with_osmesa with_oss with_png with_pthread @@ -69,7 +69,15 @@ index b4dfb47..c8f9168 100755 with_sane with_tiff with_v4l -@@ -2044,6 +2047,7 @@ Optional Packages: +@@ -1224,6 +1227,7 @@ enable_winemapi + enable_winemp3_acm + enable_wineoss_drv + enable_wineps_drv ++enable_winepulse_drv + enable_wineqtdecoder + enable_winex11_drv + enable_wing32 +@@ -2050,6 +2054,7 @@ Optional Packages: --without-oss do not use the OSS sound support --without-png do not use PNG --without-pthread do not use the pthread library @@ -77,7 +85,7 @@ index b4dfb47..c8f9168 100755 --without-sane do not use SANE (scanner support) --without-tiff do not use TIFF --without-v4l do not use v4l1 (v4l support) -@@ -3281,6 +3285,12 @@ if test "${with_pthread+set}" = set; then : +@@ -3291,6 +3296,12 @@ if test "${with_pthread+set}" = set; then : fi @@ -90,7 +98,7 @@ index b4dfb47..c8f9168 100755 # Check whether --with-sane was given. if test "${with_sane+set}" = set; then : withval=$with_sane; -@@ -12095,6 +12105,87 @@ esac +@@ -12054,6 +12065,87 @@ esac fi fi @@ -177,16 +185,17 @@ index b4dfb47..c8f9168 100755 + if test "x$with_gstreamer" != "xno" then - if test -n "$GSTREAMER_CFLAGS"; then : -@@ -13432,12 +13523,13 @@ fi + if ${GSTREAMER_CFLAGS:+false} :; then : +@@ -13365,12 +13457,14 @@ fi - test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no} - test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no} + test -n "$ALSA_LIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no} + test -n "$COREAUDIO_LIBS" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no} +test -n "$PULSELIBS" || enable_winepulse_drv=${enable_winepulse_drv:-no} test "x$ac_cv_member_oss_sysinfo_numaudioengines" = xyes || enable_wineoss_drv=${enable_wineoss_drv:-no} test "$ac_cv_header_linux_joystick_h" = "yes" || enable_winejoystick_drv=${enable_winejoystick_drv:-no} --if test "x$ALSALIBS$COREAUDIO" = "x" -a \ +-if test "x$ALSA_LIBS$COREAUDIO_LIBS" = "x" -a \ ++if test "x$ALSA_LIBS$COREAUDIO_LIBS$PULSELIBS" = "x" -a \ +if test "x$ALSALIBS$COREAUDIO$PULSELIBS" = "x" -a \ "x$ac_cv_member_oss_sysinfo_numaudioengines" != xyes -a \ - "x$with_alsa$with_coreaudio$with_oss" != xnonono @@ -194,7 +203,7 @@ index b4dfb47..c8f9168 100755 then as_fn_append wine_warnings "|No sound system was found. Windows applications will be silent." fi -@@ -17130,6 +17222,7 @@ wine_fn_config_dll winemp3.acm enable_winemp3_acm +@@ -17144,6 +17238,7 @@ wine_fn_config_dll winemp3.acm enable_winemp3_acm wine_fn_config_dll wineoss.drv enable_wineoss_drv wine_fn_config_dll wineps.drv enable_wineps_drv clean,po wine_fn_config_dll wineps16.drv16 enable_win16 @@ -203,7 +212,7 @@ index b4dfb47..c8f9168 100755 wine_fn_config_dll winex11.drv enable_winex11_drv wine_fn_config_dll wing.dll16 enable_win16 diff --git a/configure.ac b/configure.ac -index 3c1101c..cf2cb7f 100644 +index 9a8393c..27a6cec 100644 --- a/configure.ac +++ b/configure.ac @@ -70,6 +70,7 @@ AC_ARG_WITH(oss, AS_HELP_STRING([--without-oss],[do not use the OSS sound @@ -214,7 +223,7 @@ index 3c1101c..cf2cb7f 100644 AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)])) AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF])) AC_ARG_WITH(v4l, AS_HELP_STRING([--without-v4l],[do not use v4l1 (v4l support)])) -@@ -1522,6 +1523,30 @@ then +@@ -1512,6 +1513,30 @@ then [GetText ${notice_platform}development files not found (or too old), po files can't be rebuilt.]) fi @@ -245,16 +254,17 @@ index 3c1101c..cf2cb7f 100644 dnl **** Check for gstreamer **** if test "x$with_gstreamer" != "xno" then -@@ -1746,13 +1771,14 @@ fi +@@ -1730,13 +1755,15 @@ fi dnl **** Disable unsupported winmm drivers **** - test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no} - test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no} + test -n "$ALSA_LIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no} + test -n "$COREAUDIO_LIBS" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no} +test -n "$PULSELIBS" || enable_winepulse_drv=${enable_winepulse_drv:-no} test "x$ac_cv_member_oss_sysinfo_numaudioengines" = xyes || enable_wineoss_drv=${enable_wineoss_drv:-no} test "$ac_cv_header_linux_joystick_h" = "yes" || enable_winejoystick_drv=${enable_winejoystick_drv:-no} dnl **** Check for any sound system **** --if test "x$ALSALIBS$COREAUDIO" = "x" -a \ +-if test "x$ALSA_LIBS$COREAUDIO_LIBS" = "x" -a \ ++if test "x$ALSA_LIBS$COREAUDIO_LIBS$PULSELIBS" = "x" -a \ +if test "x$ALSALIBS$COREAUDIO$PULSELIBS" = "x" -a \ "x$ac_cv_member_oss_sysinfo_numaudioengines" != xyes -a \ - "x$with_alsa$with_coreaudio$with_oss" != xnonono @@ -262,7 +272,7 @@ index 3c1101c..cf2cb7f 100644 then WINE_WARNING([No sound system was found. Windows applications will be silent.]) fi -@@ -3184,6 +3210,7 @@ WINE_CONFIG_DLL(winemp3.acm) +@@ -3187,6 +3214,7 @@ WINE_CONFIG_DLL(winemp3.acm) WINE_CONFIG_DLL(wineoss.drv) WINE_CONFIG_DLL(wineps.drv,,[clean,po]) WINE_CONFIG_DLL(wineps16.drv16,enable_win16) @@ -285,13 +295,13 @@ index 447813f..b9ae99e 100644 DriverFuncs driver; diff --git a/dlls/winepulse.drv/Makefile.in b/dlls/winepulse.drv/Makefile.in new file mode 100644 -index 0000000..ae66542 +index 0000000..158bbc0 --- /dev/null +++ b/dlls/winepulse.drv/Makefile.in @@ -0,0 +1,7 @@ +MODULE = winepulse.drv +IMPORTS = dxguid uuid winmm user32 advapi32 ole32 -+EXTRALIBS = @PULSELIBS@ @LIBPTHREAD@ ++EXTRALIBS = @PULSELIBS@ $(PTHREAD_LIBS) +EXTRAINCL = @PULSEINCL@ + +C_SRCS = \ @@ -604,12 +614,12 @@ index 0000000..a089166 +@ stdcall -private GetAudioEndpoint(ptr ptr long ptr) AUDDRV_GetAudioEndpoint +@ stdcall -private GetAudioSessionManager(ptr ptr) AUDDRV_GetAudioSessionManager -- -1.8.4.2 +1.8.5.3 -From 04a80af2cccad7e15b49dd1dd6c04fe2e00da2e9 Mon Sep 17 00:00:00 2001 +From a2d17058439eb34116719c853f95bf16e87ccf92 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 4 Jan 2014 07:08:54 +0100 +Date: Sun, 19 Jan 2014 11:34:46 +0100 Subject: winepulse: Add format and period probing --- @@ -777,12 +787,12 @@ index d187bdc..40db26d 100644 UINT *num, UINT *def_index) { -- -1.8.4.2 +1.8.5.3 -From faac72c2c84e0a156e3c7def10b945b4a45f01f6 Mon Sep 17 00:00:00 2001 +From b9b7ba4d5fc675b14b7c4b013a0f7d106e7b2963 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 4 Jan 2014 07:08:54 +0100 +Date: Sun, 19 Jan 2014 11:34:46 +0100 Subject: winepulse: Add audioclient --- @@ -1876,12 +1886,12 @@ index 40db26d..37d85ff 100644 IAudioSessionManager2 **out) { -- -1.8.4.2 +1.8.5.3 -From d8b1b43529fa98eb0a04d1616f1b98d264d2018b Mon Sep 17 00:00:00 2001 +From 7ebf36bb31a2796610c97dda359068df68730348 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 4 Jan 2014 07:08:54 +0100 +Date: Sun, 19 Jan 2014 11:34:46 +0100 Subject: winepulse: Add IAudioRenderClient and IAudioCaptureClient --- @@ -2228,12 +2238,12 @@ index 37d85ff..01cfd25 100644 IAudioSessionManager2 **out) { -- -1.8.4.2 +1.8.5.3 -From 96b254276b471a85c6705b0043894bed308118f1 Mon Sep 17 00:00:00 2001 +From 50176fb32f2b0767d9f57bdade1861946036abc7 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 4 Jan 2014 07:08:54 +0100 +Date: Sun, 19 Jan 2014 11:34:46 +0100 Subject: winepulse: Add IAudioClock and IAudioClock2 --- @@ -2438,12 +2448,12 @@ index 01cfd25..3ed2288 100644 IAudioSessionManager2 **out) { -- -1.8.4.2 +1.8.5.3 -From d67a96e9b1cc13a5fa98bfb0f1a9a0b638d7f117 Mon Sep 17 00:00:00 2001 +From f76ea805f6815d95b90bb67c86c4cc02dac14a0e Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 4 Jan 2014 07:08:54 +0100 +Date: Sun, 19 Jan 2014 11:34:46 +0100 Subject: winepulse: Add audiostreamvolume --- @@ -2724,12 +2734,12 @@ index 3ed2288..b7414c2 100644 IAudioSessionManager2 **out) { -- -1.8.4.2 +1.8.5.3 -From 6adc30134f5b3223b038041752e4a7020342c9d9 Mon Sep 17 00:00:00 2001 +From 1ae8165becd14b158a3c6b4841e0b4486c7821c0 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 4 Jan 2014 07:08:54 +0100 +Date: Sun, 19 Jan 2014 11:34:46 +0100 Subject: winepulse: Add session support --- @@ -3661,12 +3671,12 @@ index b7414c2..64ee62e 100644 + return S_OK; } -- -1.8.4.2 +1.8.5.3 -From 743d1d5364e1e62c8a1c05a1a7eed1baed18febf Mon Sep 17 00:00:00 2001 +From e2d2036c3c79377bece8faf4428d7591957a7604 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 4 Jan 2014 07:08:54 +0100 +Date: Sun, 19 Jan 2014 11:34:46 +0100 Subject: fix fdels trailing whitespaces Happy? :P @@ -3697,12 +3707,12 @@ index 64ee62e..5a71a3d 100644 if (*pos < This->clock_lastpos) *pos = This->clock_lastpos; -- -1.8.4.2 +1.8.5.3 -From 61642a5c08f38b32d2eef819b82f6adc24466932 Mon Sep 17 00:00:00 2001 +From 1a93d90dc92ac1bcfce7c6f00795f856a2c0b8a9 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 4 Jan 2014 07:08:54 +0100 +Date: Sun, 19 Jan 2014 11:34:46 +0100 Subject: winepulse v12 Changes since v11: @@ -3746,12 +3756,12 @@ index 5a71a3d..960af3c 100644 copy = rem; if (copy > src_len) -- -1.8.4.2 +1.8.5.3 -From 1966576a4b5cdc7b6003cb93cb0953670aaa9235 Mon Sep 17 00:00:00 2001 +From b5858b608b8c144649ceec9c2616bc45e087a128 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 4 Jan 2014 07:08:54 +0100 +Date: Sun, 19 Jan 2014 11:34:46 +0100 Subject: winepulse v15: Add support for missing formats, and silence an error for missing format tags @@ -3788,12 +3798,12 @@ index 960af3c..f52f119 100644 This->ss.channels = This->map.channels; if (!pa_channel_map_valid(&This->map) || This->ss.format == PA_SAMPLE_INVALID) { -- -1.8.4.2 +1.8.5.3 -From 3edd1b44eec39916de3284b02d62e121b5d86d23 Mon Sep 17 00:00:00 2001 +From f9808ddacc298c4171cf73fcd55a93a4bef7246a Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 4 Jan 2014 07:08:54 +0100 +Date: Sun, 19 Jan 2014 11:34:46 +0100 Subject: winepulse v16: Add official warning wine doesn't want to support winepulse @@ -3868,12 +3878,12 @@ index f52f119..76a2e0e 100644 return E_UNEXPECTED; -- -1.8.4.2 +1.8.5.3 -From 3749b1e2e55d2bebc795420b81209a992602cf2d Mon Sep 17 00:00:00 2001 +From 51a9066caee7d170732815a625c829f80880263f Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 4 Jan 2014 07:08:54 +0100 +Date: Sun, 19 Jan 2014 11:34:46 +0100 Subject: winepulse v17: Fix winmm tests Handle dwChannelMask = SPEAKER_ALL better so WAVE_FORMAT_EXTENSIBLE tests pass too @@ -3994,12 +4004,12 @@ index 76a2e0e..6e75674 100644 if (hr == S_OK || !out) { CoTaskMemFree(closest); -- -1.8.4.2 +1.8.5.3 -From c70efb35703e991685bf33b2e3faba3a1365a58f Mon Sep 17 00:00:00 2001 +From d352017b06805c427eb134ad81990ff72ee29187 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 4 Jan 2014 07:08:54 +0100 +Date: Sun, 19 Jan 2014 11:34:46 +0100 Subject: winepulse v18: Latency and compilation improvements Changes since v17: @@ -4202,12 +4212,12 @@ index 6e75674..8e76826 100644 /* Make time never go backwards */ if (*pos < This->clock_lastpos) -- -1.8.4.2 +1.8.5.3 -From a2da4fbf74405222a8c5e69656242ab98e941d4a Mon Sep 17 00:00:00 2001 +From 489737581fe2c5afe559fa473dbcec3f647a1fc6 Mon Sep 17 00:00:00 2001 From: Juergen Tretthahn -Date: Sat, 4 Jan 2014 07:08:55 +0100 +Date: Sun, 19 Jan 2014 11:34:46 +0100 Subject: winepulse: API Compatibility with 1.5.2 onward, v2 V2: Add winepulse.drv.spec to commit too @@ -4317,12 +4327,12 @@ index a089166..612bf46 100644 +@ stdcall -private GetAudioEndpoint(ptr ptr ptr) AUDDRV_GetAudioEndpoint @ stdcall -private GetAudioSessionManager(ptr ptr) AUDDRV_GetAudioSessionManager -- -1.8.4.2 +1.8.5.3 -From 32b8b1c43320d5bf11a5f312e9d9ee33ee7ffd96 Mon Sep 17 00:00:00 2001 +From 6f2480921637deb221ec0df14aae8f17efd84d7a Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 4 Jan 2014 07:08:55 +0100 +Date: Sun, 19 Jan 2014 11:34:46 +0100 Subject: winepulse: Fix low latency support Some games request a 20 ms buffer and will only fill 20 ms. @@ -4376,12 +4386,12 @@ index b374b53..7c07f54 100644 return S_OK; } -- -1.8.4.2 +1.8.5.3 -From 3d1c3802f07a5b499bf50f3a8b6d4b98fe85689c Mon Sep 17 00:00:00 2001 +From 8cf6709d4f08ff343f49a0b3c8af737b5d50779a Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 4 Jan 2014 07:08:55 +0100 +Date: Sun, 19 Jan 2014 11:34:46 +0100 Subject: winepulse: drop realtime priority before thread destruction prevents having to handle a kernel RT Watchdog Timeout. @@ -4403,12 +4413,12 @@ index 7c07f54..ba68102 100644 pa_context_disconnect(pulse_ctx); pa_context_unref(pulse_ctx); -- -1.8.4.2 +1.8.5.3 -From df52b1440f1020c33eaf5d17e6d34b62bf44f648 Mon Sep 17 00:00:00 2001 +From 7261b5b718c20c94858d9026171f0b4da6443cbc Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 4 Jan 2014 07:08:55 +0100 +Date: Sun, 19 Jan 2014 11:34:46 +0100 Subject: winepulse: remove bogus SetEvent from pulse_started_callback --- @@ -4432,12 +4442,12 @@ index ba68102..68de00c 100644 static void pulse_rd_loop(ACImpl *This, size_t bytes) -- -1.8.4.2 +1.8.5.3 -From 018a86a638ab1389e221e2839eeac778d744d2d4 Mon Sep 17 00:00:00 2001 +From 4e495be9088f2c3dc225f46c82a90491bc81744c Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 4 Jan 2014 07:08:55 +0100 +Date: Sun, 19 Jan 2014 11:34:46 +0100 Subject: winepulse: disable the setevent part of the latency hack If you get playback glitches in skyrim or other games as a result of @@ -4474,12 +4484,12 @@ index 68de00c..643d55e 100644 return S_OK; } -- -1.8.4.2 +1.8.5.3 -From 27bdbc72c331dcc4d8c3279e66ced92935ab1426 Mon Sep 17 00:00:00 2001 +From b977b42d88ee927ae50e2ea78209efbb1552c644 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 4 Jan 2014 07:08:55 +0100 +Date: Sun, 19 Jan 2014 11:34:46 +0100 Subject: winepulse v20: fix the checks in IsFormatSupported Thanks to DGhost001 for reporting and isolating the issue. @@ -4503,12 +4513,12 @@ index 643d55e..86dd10a 100644 CoTaskMemFree(closest); if (out) -- -1.8.4.2 +1.8.5.3 -From de619f9370f4a2efc3c7074ad9649eb98add3d7e Mon Sep 17 00:00:00 2001 +From 08474bafaf5da1604e0e87250c59b55b4ef5c102 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 4 Jan 2014 07:08:55 +0100 +Date: Sun, 19 Jan 2014 11:34:47 +0100 Subject: winepulse: fixup IsFormatSupported calls --- @@ -4517,10 +4527,10 @@ Subject: winepulse: fixup IsFormatSupported calls 2 files changed, 283 insertions(+), 57 deletions(-) diff --git a/dlls/mmdevapi/tests/render.c b/dlls/mmdevapi/tests/render.c -index 026be48..19b5b56 100644 +index 4c8221b..c9e4636 100644 --- a/dlls/mmdevapi/tests/render.c +++ b/dlls/mmdevapi/tests/render.c -@@ -477,6 +477,169 @@ static void test_formats(AUDCLNT_SHAREMODE mode) +@@ -467,6 +467,169 @@ static void test_formats(AUDCLNT_SHAREMODE mode) } } @@ -4690,7 +4700,7 @@ index 026be48..19b5b56 100644 static void test_references(void) { IAudioClient *ac; -@@ -2255,6 +2418,7 @@ START_TEST(render) +@@ -2245,6 +2408,7 @@ START_TEST(render) test_audioclient(); test_formats(AUDCLNT_SHAREMODE_EXCLUSIVE); test_formats(AUDCLNT_SHAREMODE_SHARED); @@ -4917,12 +4927,12 @@ index 86dd10a..554a9fc 100644 TRACE("returning: %08x %p\n", hr, out ? *out : NULL); return hr; -- -1.8.4.2 +1.8.5.3 -From fc95e404034572b4335b8239dfd7206aa5c53ce2 Mon Sep 17 00:00:00 2001 +From e7f79bfdfd369906db10dfb457128544895b7552 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 4 Jan 2014 07:08:55 +0100 +Date: Sun, 19 Jan 2014 11:34:47 +0100 Subject: winepulse v21: return early if padding didn't update --- @@ -4946,12 +4956,12 @@ index 554a9fc..a4575d5 100644 This->clock_written += oldpad - This->pad; TRACE("New pad: %zu (-%zu)\n", This->pad / pa_frame_size(&This->ss), (oldpad - This->pad) / pa_frame_size(&This->ss)); -- -1.8.4.2 +1.8.5.3 -From d4513fb8e321a39f693bb47b21150779894d0ff6 Mon Sep 17 00:00:00 2001 +From 9d120a9afe97f11478d00ff1c6f70f5df24f8fae Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 4 Jan 2014 07:08:55 +0100 +Date: Sun, 19 Jan 2014 11:34:47 +0100 Subject: winepulse: fix unneeded free in write.. --- @@ -4983,12 +4993,12 @@ index a4575d5..3ca68fd 100644 This->locked_ptr = NULL; TRACE("Released %u, pad %zu\n", written_frames, This->pad / pa_frame_size(&This->ss)); -- -1.8.4.2 +1.8.5.3 -From 1845d1db19da5e3007231e2632d9ed093b8faa11 Mon Sep 17 00:00:00 2001 +From 7d0fb975eba0f764a125de6b5ab18aecc56b3db4 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 4 Jan 2014 07:08:55 +0100 +Date: Sun, 19 Jan 2014 11:34:47 +0100 Subject: winepulse v23: fixup a invalid free in mmdevapi array members of ids should be dynamically allocated, judging from valgrind output. @@ -5035,11 +5045,11 @@ index 3ca68fd..5b041a2 100644 (*keys)[0] = pulse_render_guid; else -- -1.8.4.2 +1.8.5.3 -From 04887220fbd530e03cc73ef45dd8f55f8a6f3b12 Mon Sep 17 00:00:00 2001 +From 773bf038fd47159d18f8d996bdae2435aaa31f7e Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 4 Jan 2014 07:08:55 +0100 +Date: Sun, 19 Jan 2014 11:34:47 +0100 Subject: winepulse: use a pi-mutex for serialization. The winepulse thread is realtime, to prevent blocking it indefinitely @@ -5102,12 +5112,12 @@ index 5b041a2..a09ce7f 100644 if (pulse_thread) SetThreadPriority(pulse_thread, 0); -- -1.8.4.2 +1.8.5.3 -From 20e40bc5eb0a8cbd8e9c6817091311bc05b53f94 Mon Sep 17 00:00:00 2001 +From ba0286680493a48c6795ab8a20a70618ba2ef403 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst -Date: Sat, 4 Jan 2014 07:08:55 +0100 +Date: Sun, 19 Jan 2014 11:34:47 +0100 Subject: winepulse: add support for IMarshal Fixes bug 32161 for winepulse. Based On Jeff Klein's patches for the @@ -5240,5 +5250,5 @@ index a09ce7f..f052a08 100644 return E_NOINTERFACE; } -- -1.8.4.2 +1.8.5.3 diff --git a/wine.spec b/wine.spec index 2bccb7f..e85769e 100644 --- a/wine.spec +++ b/wine.spec @@ -4,7 +4,7 @@ #%global _default_patch_fuzz 2 Name: wine -Version: 1.7.11 +Version: 1.7.13 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -54,15 +54,15 @@ Patch511: wine-cjk.patch ## winepulse backend # http://repo.or.cz/w/wine/multimedia.git -# Sat, 4 Jan 2014 06:16:23 +0000 -# based on wine tree 1.7.10 +# Fri, 31 Jan 2014 10:37:53 +0000 +# based on wine tree 1.7.11 ## # git clone http://repo.or.cz/r/wine/multimedia.git # cd multimedia -# git format-patch -k --stdout 3822f907cd790b0405d2bad772a8240d559aa0aa~..1845d1db19da5e3007231e2632d9ed093b8faa11 > ~/cvs/fedora/rpms/wine/wine-pulse-1.7.10.patch -# git format-patch -k --stdout 04887220fbd530e03cc73ef45dd8f55f8a6f3b12~..20e40bc5eb0a8cbd8e9c6817091311bc05b53f94 >> ~/cvs/fedora/rpms/wine/wine-pulse-1.7.10.patch +# git format-patch -k --stdout 28e56d726918e4bc59c456b1947b42f40321763f~..7d0fb975eba0f764a125de6b5ab18aecc56b3db4 > ~/cvs/fedora/rpms/wine/wine-pulse-1.7.11.patch +# git format-patch -k --stdout 773bf038fd47159d18f8d996bdae2435aaa31f7e~..ba0286680493a48c6795ab8a20a70618ba2ef403 >> ~/cvs/fedora/rpms/wine/wine-pulse-1.7.11.patch -Patch1001: wine-pulse-1.7.10.patch +Patch1001: wine-pulse-1.7.11.patch %if !%{?no64bit} ExclusiveArch: %{ix86} x86_64 %{arm} @@ -912,6 +912,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/cacls.exe.so %{_libdir}/wine/conhost.exe.so %{_libdir}/wine/cscript.exe.so +%{_libdir}/wine/dpnsvr.exe.so %{_libdir}/wine/expand.exe.so %{_libdir}/wine/extrac32.exe.so %{_libdir}/wine/findstr.exe.so @@ -959,15 +960,37 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/advapi32.dll.so %{_libdir}/wine/advpack.dll.so %{_libdir}/wine/amstream.dll.so +%{_libdir}/wine/api-ms-win-core-com-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-console-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-debug-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-errorhandling-l1-1-1.dll.so +%{_libdir}/wine/api-ms-win-core-file-l1-2-0.dll.so +%{_libdir}/wine/api-ms-win-core-handle-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-heap-l1-2-0.dll.so +%{_libdir}/wine/api-ms-win-core-heap-obsolete-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-interlocked-l1-2-0.dll.so +%{_libdir}/wine/api-ms-win-core-io-l1-1-1.dll.so +%{_libdir}/wine/api-ms-win-core-kernel32-legacy-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-libraryloader-l1-1-1.dll.so +%{_libdir}/wine/api-ms-win-core-localization-l1-2-0.dll.so +%{_libdir}/wine/api-ms-win-core-localization-obsolete-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-localregistry-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-memory-l1-1-1.dll.so +%{_libdir}/wine/api-ms-win-core-namedpipe-l1-2-0.dll.so +%{_libdir}/wine/api-ms-win-core-processenvironment-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-processthreads-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-processthreads-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-profile-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-psapi-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-registry-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-rtlsupport-l1-2-0.dll.so +%{_libdir}/wine/api-ms-win-core-shlwapi-legacy-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-string-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-synch-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-sysinfo-l1-2-0.dll.so +%{_libdir}/wine/api-ms-win-core-threadpool-legacy-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-timezone-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-url-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-util-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-winrt-error-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-winrt-string-l1-1-0.dll.so @@ -980,7 +1003,14 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/api-ms-win-downlevel-shlwapi-l2-1-0.dll.so %{_libdir}/wine/api-ms-win-downlevel-user32-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-downlevel-version-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-eventing-provider-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-ntuser-dc-access-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-security-base-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-security-base-l1-2-0.dll.so +%{_libdir}/wine/api-ms-win-security-sddl-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-service-core-l1-1-1.dll.so +%{_libdir}/wine/api-ms-win-service-management-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-service-winsvc-l1-2-0.dll.so %{_libdir}/wine/apphelp.dll.so %{_libdir}/wine/appwiz.cpl.so %{_libdir}/wine/atl.dll.so @@ -1013,7 +1043,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/cryptui.dll.so %{_libdir}/wine/ctapi32.dll.so %{_libdir}/wine/ctl3d32.dll.so +%{_libdir}/wine/d2d1.dll.so %{_libdir}/wine/d3d10.dll.so +%{_libdir}/wine/d3d10_1.dll.so %{_libdir}/wine/d3d10core.dll.so %{_libdir}/wine/d3d11.dll.so %{_libdir}/wine/d3dcompiler_*.dll.so @@ -1061,6 +1093,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/dxgi.dll.so %{_libdir}/wine/eject.exe.so %{_libdir}/wine/explorerframe.dll.so +%{_libdir}/wine/ext-ms-win-gdi-devcaps-l1-1-0.dll.so %{_libdir}/wine/faultrep.dll.so %{_libdir}/wine/fltlib.dll.so %{_libdir}/wine/fusion.dll.so @@ -1295,6 +1328,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/wmi.dll.so %{_libdir}/wine/wmic.exe.so %{_libdir}/wine/wmiutils.dll.so +%{_libdir}/wine/wmp.dll.so %{_libdir}/wine/wmvcore.dll.so %{_libdir}/wine/spoolss.dll.so %{_libdir}/wine/winscard.dll.so @@ -1567,6 +1601,15 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sun Feb 23 2014 Andreas Bierfert +- 1.7.13-1 +- version upgrade +- upgraded winepulse + +* Sat Feb 08 2014 Andreas Bierfert +- 1.7.12-1 +- version upgrade + * Sun Jan 26 2014 Andreas Bierfert - 1.7.11-1 - version upgrade From b0d749a103f06b94334532b5a60d26f074eafd47 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Thu, 20 Mar 2014 17:34:13 +0100 Subject: [PATCH 288/715] 1.7.14-1 - version upgrade --- .gitignore | 4 ++-- sources | 4 ++-- wine.spec | 9 ++++++++- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 949b32e..142a1fc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ /wine-1.6.1.tar.bz2.sign /wine-1.6.1.tar.bz2 -/wine-1.7.13.tar.bz2 -/wine-1.7.13.tar.bz2.sign +/wine-1.7.14.tar.bz2 +/wine-1.7.14.tar.bz2.sign diff --git a/sources b/sources index 3066e95..dfd988e 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -f238be82934d48fee55b46789a26d9aa wine-1.7.13.tar.bz2 -a92fbbbb3e249b88d7bb7b744fc0039b wine-1.7.13.tar.bz2.sign +75195349b18f6d4d9ec56b9cfa915160 wine-1.7.14.tar.bz2 +0d52ef2f2dc74a601582e8016a9a091f wine-1.7.14.tar.bz2.sign diff --git a/wine.spec b/wine.spec index e85769e..9a996c5 100644 --- a/wine.spec +++ b/wine.spec @@ -4,7 +4,7 @@ #%global _default_patch_fuzz 2 Name: wine -Version: 1.7.13 +Version: 1.7.14 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -942,6 +942,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/tasklist.exe.so %{_libdir}/wine/termsv.exe.so %{_libdir}/wine/view.exe.so +%{_libdir}/wine/wevtutil.exe.so %{_libdir}/wine/wineboot.exe.so %{_libdir}/wine/winebrowser.exe.so %{_libdir}/wine/wineconsole.exe.so @@ -1096,6 +1097,8 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/ext-ms-win-gdi-devcaps-l1-1-0.dll.so %{_libdir}/wine/faultrep.dll.so %{_libdir}/wine/fltlib.dll.so +%{_libdir}/wine/fntcache.dll.so +%{_libdir}/wine/fontsub.dll.so %{_libdir}/wine/fusion.dll.so %{_libdir}/wine/fwpuclnt.dll.so %{_libdir}/wine/gameux.dll.so @@ -1601,6 +1604,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sat Mar 08 2014 Andreas Bierfert +- 1.7.14-1 +- version upgrade + * Sun Feb 23 2014 Andreas Bierfert - 1.7.13-1 - version upgrade From 78fda6cba347a94c169623c53d3524cf1a637e07 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 24 Mar 2014 15:51:29 +0100 Subject: [PATCH 289/715] 1.7.15-1 - version upgrade --- .gitignore | 4 ++-- sources | 4 ++-- wine.spec | 7 ++++++- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 142a1fc..c2b1983 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ /wine-1.6.1.tar.bz2.sign /wine-1.6.1.tar.bz2 -/wine-1.7.14.tar.bz2 -/wine-1.7.14.tar.bz2.sign +/wine-1.7.15.tar.bz2 +/wine-1.7.15.tar.bz2.sign diff --git a/sources b/sources index dfd988e..0cd4912 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -75195349b18f6d4d9ec56b9cfa915160 wine-1.7.14.tar.bz2 -0d52ef2f2dc74a601582e8016a9a091f wine-1.7.14.tar.bz2.sign +92ed8c6bfe876dd2f72efafbebf26485 wine-1.7.15.tar.bz2 +caf9c55e7fdf3c9c10f91b459325b2ea wine-1.7.15.tar.bz2.sign diff --git a/wine.spec b/wine.spec index 9a996c5..bfdbca0 100644 --- a/wine.spec +++ b/wine.spec @@ -4,7 +4,7 @@ #%global _default_patch_fuzz 2 Name: wine -Version: 1.7.14 +Version: 1.7.15 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1274,6 +1274,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/sfc_os.dll.so %{_libdir}/wine/shdoclc.dll.so %{_libdir}/wine/shdocvw.dll.so +%{_libdir}/wine/schedsvc.dll.so %{_libdir}/wine/shell32.dll.so %{_libdir}/wine/shfolder.dll.so %{_libdir}/wine/shlwapi.dll.so @@ -1604,6 +1605,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Mon Mar 24 2014 Andreas Bierfert +- 1.7.15-1 +- version upgrade + * Sat Mar 08 2014 Andreas Bierfert - 1.7.14-1 - version upgrade From fd2298cae3e71da76d799103c0db239b8d3e7bc1 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 7 Apr 2014 14:03:43 +0200 Subject: [PATCH 290/715] 1.7.16-1 - version upgrade --- .gitignore | 2 ++ sources | 4 ++-- wine.spec | 7 ++++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index c2b1983..f0c1725 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ /wine-1.6.1.tar.bz2 /wine-1.7.15.tar.bz2 /wine-1.7.15.tar.bz2.sign +/wine-1.7.16.tar.bz2 +/wine-1.7.16.tar.bz2.sign diff --git a/sources b/sources index 0cd4912..97a38ae 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -92ed8c6bfe876dd2f72efafbebf26485 wine-1.7.15.tar.bz2 -caf9c55e7fdf3c9c10f91b459325b2ea wine-1.7.15.tar.bz2.sign +d3d218f9f524998794c5d80e16793b5d wine-1.7.16.tar.bz2 +d77c7e60a1784c19399ca2310ecdad6d wine-1.7.16.tar.bz2.sign diff --git a/wine.spec b/wine.spec index bfdbca0..c0114eb 100644 --- a/wine.spec +++ b/wine.spec @@ -4,7 +4,7 @@ #%global _default_patch_fuzz 2 Name: wine -Version: 1.7.15 +Version: 1.7.16 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1092,6 +1092,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/dwrite.dll.so %{_libdir}/wine/dxdiagn.dll.so %{_libdir}/wine/dxgi.dll.so +%{_libdir}/wine/dxva2.dll.so %{_libdir}/wine/eject.exe.so %{_libdir}/wine/explorerframe.dll.so %{_libdir}/wine/ext-ms-win-gdi-devcaps-l1-1-0.dll.so @@ -1605,6 +1606,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Mon Apr 07 2014 Andreas Bierfert +- 1.7.16-1 +- version upgrade + * Mon Mar 24 2014 Andreas Bierfert - 1.7.15-1 - version upgrade From 61824780fd6d8734a8c8d48cec5e9fef6c39c2f5 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Mon, 7 Apr 2014 21:19:49 +0200 Subject: [PATCH 291/715] 1.7.16-2 - explicitly require libpng (fixes rhbz#1085075) --- wine.spec | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index c0114eb..831da25 100644 --- a/wine.spec +++ b/wine.spec @@ -5,7 +5,7 @@ Name: wine Version: 1.7.16 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -219,6 +219,8 @@ Requires: nss-mdns(x86-32) Requires: gnutls(x86-32) Requires: libXrender(x86-32) Requires: libXcursor(x86-32) +#dlopen in windowscodesc (fixes rhbz#1085075) +Requires: libpng(x86-32) %endif %ifarch x86_64 @@ -227,6 +229,8 @@ Requires: nss-mdns(x86-64) Requires: gnutls(x86-64) Requires: libXrender(x86-64) Requires: libXcursor(x86-64) +#dlopen in windowscodesc (fixes rhbz#1085075) +Requires: libpng(x86-64) %endif %ifarch %{arm} @@ -235,6 +239,8 @@ Requires: nss-mdns Requires: gnutls Requires: libXrender Requires: libXcursor +#dlopen in windowscodesc (fixes rhbz#1085075) +Requires: libpng %endif # old removed packages @@ -1606,6 +1612,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Mon Apr 07 2014 Andreas Bierfert +- 1.7.16-2 +- explicitly require libpng (fixes rhbz#1085075) + * Mon Apr 07 2014 Andreas Bierfert - 1.7.16-1 - version upgrade From 4e948f5a83ce8a4e90ecf45541203d2fadfb0c51 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Tue, 22 Apr 2014 17:41:33 +0200 Subject: [PATCH 292/715] 1.7.17-1 - version upgrade --- .gitignore | 2 ++ sources | 4 ++-- wine.spec | 10 ++++++++-- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index f0c1725..69c66cc 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,5 @@ /wine-1.7.15.tar.bz2.sign /wine-1.7.16.tar.bz2 /wine-1.7.16.tar.bz2.sign +/wine-1.7.17.tar.bz2.sign +/wine-1.7.17.tar.bz2 diff --git a/sources b/sources index 97a38ae..40d0f0f 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -d3d218f9f524998794c5d80e16793b5d wine-1.7.16.tar.bz2 -d77c7e60a1784c19399ca2310ecdad6d wine-1.7.16.tar.bz2.sign +051010d624e2003aee22b8ff7a87e94a wine-1.7.17.tar.bz2.sign +f672039ddf29838be2ac38832da40d6d wine-1.7.17.tar.bz2 diff --git a/wine.spec b/wine.spec index 831da25..013b720 100644 --- a/wine.spec +++ b/wine.spec @@ -4,8 +4,8 @@ #%global _default_patch_fuzz 2 Name: wine -Version: 1.7.16 -Release: 2%{?dist} +Version: 1.7.17 +Release: 1%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -941,6 +941,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/rpcss.exe.so %{_libdir}/wine/rundll32.exe.so %{_libdir}/wine/schtasks.exe.so +%{_libdir}/wine/sdbinst.exe.so %{_libdir}/wine/secedit.exe.so %{_libdir}/wine/servicemodelreg.exe.so %{_libdir}/wine/services.exe.so @@ -1221,6 +1222,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/nddeapi.dll.so %{_libdir}/wine/netapi32.dll.so %{_libdir}/wine/netcfgx.dll.so +%{_libdir}/wine/netprofm.dll.so %{_libdir}/wine/netsh.exe.so %{_libdir}/wine/newdev.dll.so %{_libdir}/wine/normaliz.dll.so @@ -1612,6 +1614,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Tue Apr 22 2014 Andreas Bierfert +- 1.7.17-1 +- version upgrade + * Mon Apr 07 2014 Andreas Bierfert - 1.7.16-2 - explicitly require libpng (fixes rhbz#1085075) From 36b422566498ed235c148c8d0dbfeeb4c1f388f7 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Fri, 25 Apr 2014 09:01:26 +0200 Subject: [PATCH 293/715] 1.7.17-2 - fix systemd binfmt location (rhbz#1090170) --- wine.spec | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/wine.spec b/wine.spec index 013b720..e8e3147 100644 --- a/wine.spec +++ b/wine.spec @@ -5,7 +5,7 @@ Name: wine Version: 1.7.17 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -590,8 +590,8 @@ mkdir -p %{buildroot}%{_sysconfdir}/wine mkdir -p %{buildroot}%{_initrddir} install -p -c -m 755 %{SOURCE1} %{buildroot}%{_initrddir}/wine %if 0%{?fedora} >= 15 -mkdir -p %{buildroot}%{_sysconfdir}/binfmt.d/ -install -p -c -m 644 %{SOURCE2} %{buildroot}%{_sysconfdir}/binfmt.d/wine.conf +mkdir -p %{buildroot}%{_usr}/lib/binfmt.d +install -p -c -m 644 %{SOURCE2} %{buildroot}%{_usr}/lib/binfmt.d/wine.conf %endif # add wine dir to desktop @@ -1550,7 +1550,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %if 0%{?fedora} >= 15 %files systemd -%config %{_sysconfdir}/binfmt.d/wine.conf +%config %{_usr}/lib/binfmt.d/wine.conf %files sysvinit %endif @@ -1614,6 +1614,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Fri Apr 25 2014 Andreas Bierfert +- 1.7.17-2 +- fix systemd binfmt location (rhbz#1090170) + * Tue Apr 22 2014 Andreas Bierfert - 1.7.17-1 - version upgrade From 55776d00a23df95252f6ae643b14f168db587371 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 10 May 2014 21:54:48 -0500 Subject: [PATCH 294/715] 1.7.18-1 - version upgrade --- .gitignore | 2 ++ sources | 4 ++-- wine.spec | 10 +++++++--- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 69c66cc..77f5663 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,5 @@ /wine-1.7.16.tar.bz2.sign /wine-1.7.17.tar.bz2.sign /wine-1.7.17.tar.bz2 +/wine-1.7.18.tar.bz2 +/wine-1.7.18.tar.bz2.sign diff --git a/sources b/sources index 40d0f0f..44235e6 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -051010d624e2003aee22b8ff7a87e94a wine-1.7.17.tar.bz2.sign -f672039ddf29838be2ac38832da40d6d wine-1.7.17.tar.bz2 +d073d52a6a98a5146d3ad3ad1a230a0a wine-1.7.18.tar.bz2.sign +b13c19ef69a99f2aa6c0b3fd08ae8d90 wine-1.7.18.tar.bz2 diff --git a/wine.spec b/wine.spec index e8e3147..05eaf74 100644 --- a/wine.spec +++ b/wine.spec @@ -1,11 +1,11 @@ %global no64bit 0 %global winegecko 2.24 %global winemono 4.5.2 -#%global _default_patch_fuzz 2 +#global _default_patch_fuzz 2 Name: wine -Version: 1.7.17 -Release: 2%{?dist} +Version: 1.7.18 +Release: 1%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -1614,6 +1614,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sat May 10 2014 Michael Cronenworth +- 1.7.18-1 +- version upgrade + * Fri Apr 25 2014 Andreas Bierfert - 1.7.17-2 - fix systemd binfmt location (rhbz#1090170) From 057ee68a97f5a9a80aee633a284e41aab7d67b7e Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 18 May 2014 13:39:06 +0200 Subject: [PATCH 295/715] 1.7.19-1 - version upgrade --- .gitignore | 10 ++-------- sources | 4 ++-- wine.spec | 7 ++++++- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 77f5663..c95cbe9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,4 @@ /wine-1.6.1.tar.bz2.sign /wine-1.6.1.tar.bz2 -/wine-1.7.15.tar.bz2 -/wine-1.7.15.tar.bz2.sign -/wine-1.7.16.tar.bz2 -/wine-1.7.16.tar.bz2.sign -/wine-1.7.17.tar.bz2.sign -/wine-1.7.17.tar.bz2 -/wine-1.7.18.tar.bz2 -/wine-1.7.18.tar.bz2.sign +/wine-1.7.19.tar.bz2 +/wine-1.7.19.tar.bz2.sign diff --git a/sources b/sources index 44235e6..c17771e 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -d073d52a6a98a5146d3ad3ad1a230a0a wine-1.7.18.tar.bz2.sign -b13c19ef69a99f2aa6c0b3fd08ae8d90 wine-1.7.18.tar.bz2 +31bec293e8c87ce3696f1e78730f5d4d wine-1.7.19.tar.bz2 +892f1e7ae7b2de8ed71b0ba382e26014 wine-1.7.19.tar.bz2.sign diff --git a/wine.spec b/wine.spec index 05eaf74..be87a87 100644 --- a/wine.spec +++ b/wine.spec @@ -4,7 +4,7 @@ #global _default_patch_fuzz 2 Name: wine -Version: 1.7.18 +Version: 1.7.19 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1141,6 +1141,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/itss.dll.so %{_libdir}/wine/joy.cpl.so %{_libdir}/wine/jscript.dll.so +%{_libdir}/wine/jsproxy.dll.so %{_libdir}/wine/kernel32.dll.so %{_libdir}/wine/ktmw32.dll.so %{_libdir}/wine/loadperf.dll.so @@ -1614,6 +1615,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sun May 18 2014 Andreas Bierfert +- 1.7.19-1 +- version upgrade + * Sat May 10 2014 Michael Cronenworth - 1.7.18-1 - version upgrade From 0ced272af4f27520ff547b5cee5a18e19a150708 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Sat, 7 Jun 2014 23:35:26 -0500 Subject: [PATCH 296/715] - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild --- wine.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index be87a87..bad889d 100644 --- a/wine.spec +++ b/wine.spec @@ -5,7 +5,7 @@ Name: wine Version: 1.7.19 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -1615,6 +1615,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sun Jun 08 2014 Fedora Release Engineering - 1.7.19-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + * Sun May 18 2014 Andreas Bierfert - 1.7.19-1 - version upgrade From 51d44cb2768fb6c5d130742e94f8495c7206fa7c Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Thu, 19 Jun 2014 12:53:47 +0200 Subject: [PATCH 297/715] 1.7.20-1 - version upgrade --- .gitignore | 4 ++-- sources | 4 ++-- wine.spec | 9 +++++++-- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index c95cbe9..4f64c09 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ /wine-1.6.1.tar.bz2.sign /wine-1.6.1.tar.bz2 -/wine-1.7.19.tar.bz2 -/wine-1.7.19.tar.bz2.sign +/wine-1.7.20.tar.bz2 +/wine-1.7.20.tar.bz2.sign diff --git a/sources b/sources index c17771e..579c9cf 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -31bec293e8c87ce3696f1e78730f5d4d wine-1.7.19.tar.bz2 -892f1e7ae7b2de8ed71b0ba382e26014 wine-1.7.19.tar.bz2.sign +439a9b275be4953fde194ca949568da1 wine-1.7.20.tar.bz2 +3c1601efb4e57c9e51f840102faac24a wine-1.7.20.tar.bz2.sign diff --git a/wine.spec b/wine.spec index bad889d..19a3904 100644 --- a/wine.spec +++ b/wine.spec @@ -4,8 +4,8 @@ #global _default_patch_fuzz 2 Name: wine -Version: 1.7.19 -Release: 2%{?dist} +Version: 1.7.20 +Release: 1%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -1168,6 +1168,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/msacm32.dll.so %{_libdir}/wine/msacm32.drv.so %{_libdir}/wine/msadp32.acm.so +%{_libdir}/wine/msasn1.dll.so %{_libdir}/wine/mscat32.dll.so %{_libdir}/wine/mscoree.dll.so %{_libdir}/wine/msctf.dll.so @@ -1615,6 +1616,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Thu Jun 19 2014 Andreas Bierfert +- 1.7.20-1 +- version upgrade + * Sun Jun 08 2014 Fedora Release Engineering - 1.7.19-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild From a29430926363091b674878cfa4dd011985269c88 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Tue, 1 Jul 2014 21:40:58 +0200 Subject: [PATCH 298/715] 1.7.21-1 - version upgrade --- .gitignore | 4 ++-- sources | 4 ++-- wine.spec | 7 ++++++- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 4f64c09..a8bf36f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ /wine-1.6.1.tar.bz2.sign /wine-1.6.1.tar.bz2 -/wine-1.7.20.tar.bz2 -/wine-1.7.20.tar.bz2.sign +/wine-1.7.21.tar.bz2 +/wine-1.7.21.tar.bz2.sign diff --git a/sources b/sources index 579c9cf..24b9db7 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -439a9b275be4953fde194ca949568da1 wine-1.7.20.tar.bz2 -3c1601efb4e57c9e51f840102faac24a wine-1.7.20.tar.bz2.sign +ee43e69f135c46ad544bc35cd7e6681c wine-1.7.21.tar.bz2 +9ae5b8d0cc2100325db89e50bbbc9591 wine-1.7.21.tar.bz2.sign diff --git a/wine.spec b/wine.spec index 19a3904..f24c142 100644 --- a/wine.spec +++ b/wine.spec @@ -4,7 +4,7 @@ #global _default_patch_fuzz 2 Name: wine -Version: 1.7.20 +Version: 1.7.21 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1245,6 +1245,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/olepro32.dll.so %{_libdir}/wine/olesvr32.dll.so %{_libdir}/wine/olethk32.dll.so +%{_libdir}/wine/packager.dll.so %{_libdir}/wine/pdh.dll.so %{_libdir}/wine/photometadatahandler.dll.so %{_libdir}/wine/pidgen.dll.so @@ -1616,6 +1617,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Tue Jul 01 2014 Andreas Bierfert +- 1.7.21-1 +- version upgrade + * Thu Jun 19 2014 Andreas Bierfert - 1.7.20-1 - version upgrade From 4d1df4f7afec38186d4c1e05f16ac2f9fdf63e8e Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Thu, 10 Jul 2014 00:43:28 -0500 Subject: [PATCH 299/715] Meta package fixes for EPEL7 (rhbz#1117422) --- wine.spec | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/wine.spec b/wine.spec index f24c142..b0d1029 100644 --- a/wine.spec +++ b/wine.spec @@ -5,7 +5,7 @@ Name: wine Version: 1.7.21 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -136,13 +136,14 @@ Requires: wine-fonts = %{version}-%{release} # x86-32 parts %ifarch %{ix86} x86_64 +%if 0%{?fedora} || 0%{?rhel} <= 6 Requires: wine-core(x86-32) = %{version}-%{release} Requires: wine-capi(x86-32) = %{version}-%{release} Requires: wine-cms(x86-32) = %{version}-%{release} Requires: wine-ldap(x86-32) = %{version}-%{release} Requires: wine-twain(x86-32) = %{version}-%{release} Requires: wine-pulseaudio(x86-32) = %{version}-%{release} -%if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 +%if 0%{?fedora} >= 10 || 0%{?rhel} == 6 Requires: wine-openal(x86-32) = %{version}-%{release} %endif %if 0%{?fedora} >= 17 @@ -153,9 +154,10 @@ Requires: wine-mono = %winemono Requires: /usr/bin/ntlm_auth Requires: mesa-dri-drivers(x86-32) %endif +%endif %ifarch %{ix86} -%if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 +%if 0%{?fedora} >= 10 || 0%{?rhel} == 6 Requires: wine-wow(x86-32) = %{version}-%{release} %endif %endif @@ -334,8 +336,12 @@ Requires(postun): desktop-file-utils >= 0.8 %ifarch %{arm} Requires: wine-core = %{version}-%{release} %else +%if 0%{?rhel} >= 7 +Requires: wine-core(x86-64) = %{version}-%{release} +%else Requires: wine-core(x86-32) = %{version}-%{release} %endif +%endif Requires: wine-common = %{version}-%{release} %if 0%{?fedora} >= 15 Requires: wine-systemd = %{version}-%{release} @@ -584,6 +590,11 @@ chrpath --delete %{buildroot}%{_bindir}/wine64 chrpath --delete %{buildroot}%{_bindir}/wine %endif +# RHEL7 dropped 32-bit support, provide symlink for wine apps +%if 0%{?rhel} >= 7 +%{__ln_s} %{_bindir}/wine64 %{buildroot}%{_bindir}/wine +%endif + mkdir -p %{buildroot}%{_sysconfdir}/wine # Allow users to launch Windows programs by just clicking on the .exe file... @@ -903,6 +914,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %ifarch x86_64 +%if 0%{?rhel} >= 7 +%{_bindir}/wine +%endif %{_bindir}/wine64 %{_bindir}/wine64-preloader %config %{_sysconfdir}/ld.so.conf.d/wine-64.conf @@ -1617,6 +1631,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Wed Jul 09 2014 Michael Cronenworth +- 1.7.18-2 +- Fixes for EPEL7 (rhbz#1117422) + * Tue Jul 01 2014 Andreas Bierfert - 1.7.21-1 - version upgrade From 2764e40083647879399df81997019989e942ca0b Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Fri, 11 Jul 2014 22:44:24 -0500 Subject: [PATCH 300/715] 1.7.22-1 - version upgrade --- .gitignore | 4 ++-- sources | 4 ++-- wine.spec | 10 +++++++--- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index a8bf36f..0882109 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ /wine-1.6.1.tar.bz2.sign /wine-1.6.1.tar.bz2 -/wine-1.7.21.tar.bz2 -/wine-1.7.21.tar.bz2.sign +/wine-1.7.22.tar.bz2 +/wine-1.7.22.tar.bz2.sign diff --git a/sources b/sources index 24b9db7..a6726ef 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -ee43e69f135c46ad544bc35cd7e6681c wine-1.7.21.tar.bz2 -9ae5b8d0cc2100325db89e50bbbc9591 wine-1.7.21.tar.bz2.sign +519319364b0845ffcbeade4a5b98c0d4 wine-1.7.22.tar.bz2 +549fdcc146646582e5422e370e95ee7f wine-1.7.22.tar.bz2.sign diff --git a/wine.spec b/wine.spec index b0d1029..67c33a9 100644 --- a/wine.spec +++ b/wine.spec @@ -4,8 +4,8 @@ #global _default_patch_fuzz 2 Name: wine -Version: 1.7.21 -Release: 2%{?dist} +Version: 1.7.22 +Release: 1%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -1631,8 +1631,12 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Fri Jul 11 2014 Michael Cronenworth +- 1.7.22-1 +- version upgrade + * Wed Jul 09 2014 Michael Cronenworth -- 1.7.18-2 +- 1.7.21-2 - Fixes for EPEL7 (rhbz#1117422) * Tue Jul 01 2014 Andreas Bierfert From 3afa139b0c31646cc4bc9f2030490cb4004e4f64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Sat, 12 Jul 2014 14:50:07 +0200 Subject: [PATCH 301/715] updated wine-cjk.patch, dropped obsolete wine-rpath.patch --- wine-cjk.patch | 9 +++++---- wine-rpath.patch | 45 --------------------------------------------- 2 files changed, 5 insertions(+), 49 deletions(-) delete mode 100644 wine-rpath.patch diff --git a/wine-cjk.patch b/wine-cjk.patch index 2b4d95b..ed7af8f 100644 --- a/wine-cjk.patch +++ b/wine-cjk.patch @@ -1,7 +1,8 @@ -diff -up wine-1.7.5/loader/wine.inf.in.orig wine-1.7.5/loader/wine.inf.in ---- wine-1.7.5/loader/wine.inf.in.orig 2013-10-25 19:45:30.000000000 +0200 -+++ wine-1.7.5/loader/wine.inf.in 2013-10-28 07:57:42.572401071 +0100 -@@ -561,6 +561,17 @@ HKLM,%FontSubStr%,"Times New Roman CE,23 +Index: wine-1.7.22/loader/wine.inf.in +=================================================================== +--- wine-1.7.22.orig/loader/wine.inf.in ++++ wine-1.7.22/loader/wine.inf.in +@@ -568,6 +568,17 @@ HKLM,%FontSubStr%,"Times New Roman CE,23 HKLM,%FontSubStr%,"Times New Roman CYR,204",,"Times New Roman,204" HKLM,%FontSubStr%,"Times New Roman Greek,161",,"Times New Roman,161" HKLM,%FontSubStr%,"Times New Roman TUR,162",,"Times New Roman,162" diff --git a/wine-rpath.patch b/wine-rpath.patch deleted file mode 100644 index 151a30d..0000000 --- a/wine-rpath.patch +++ /dev/null @@ -1,45 +0,0 @@ ---- configure.orig 2010-10-04 21:35:31.000000000 +0200 -+++ configure 2010-10-04 21:37:48.000000000 +0200 -@@ -6775,14 +6775,14 @@ - - fi - -- as_ac_var=`$as_echo "ac_cv_cflags_-fPIC -Wl,--rpath,\\$ORIGIN/../lib" | $as_tr_sh` --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -fPIC -Wl,--rpath,\$ORIGIN/../lib" >&5 --$as_echo_n "checking whether the compiler supports -fPIC -Wl,--rpath,\$ORIGIN/../lib... " >&6; } -+ as_ac_var=`$as_echo "ac_cv_cflags_-fPIC" | $as_tr_sh` -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -fPIC" >&5 -+$as_echo_n "checking whether the compiler supports -fPIC " >&6; } - if eval "test \"\${$as_ac_var+set}\"" = set; then : - $as_echo_n "(cached) " >&6 - else - ac_wine_try_cflags_saved=$CFLAGS --CFLAGS="$CFLAGS -fPIC -Wl,--rpath,\$ORIGIN/../lib" -+CFLAGS="$CFLAGS -fPIC" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - int main(int argc, char **argv) { return 0; } -@@ -6800,17 +6800,17 @@ - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 - $as_echo "$ac_res" >&6; } - if test `eval 'as_val=${'$as_ac_var'};$as_echo "$as_val"'` = yes; then : -- LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`" -- LDRPATH_LOCAL="-Wl,--rpath,\\\$\$ORIGIN/\$(top_builddir)/libs/wine" -+ LDRPATH_INSTALL="" -+ LDRPATH_LOCAL="" - else -- as_ac_var=`$as_echo "ac_cv_cflags_-fPIC -Wl,-R,\\$ORIGIN/../lib" | $as_tr_sh` --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -fPIC -Wl,-R,\$ORIGIN/../lib" >&5 --$as_echo_n "checking whether the compiler supports -fPIC -Wl,-R,\$ORIGIN/../lib... " >&6; } -+ as_ac_var=`$as_echo "ac_cv_cflags_-fPIC" | $as_tr_sh` -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -fPIC" >&5 -+$as_echo_n "checking whether the compiler supports -fPIC " >&6; } - if eval "test \"\${$as_ac_var+set}\"" = set; then : - $as_echo_n "(cached) " >&6 - else - ac_wine_try_cflags_saved=$CFLAGS --CFLAGS="$CFLAGS -fPIC -Wl,-R,\$ORIGIN/../lib" -+CFLAGS="$CFLAGS -fPIC" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - int main(int argc, char **argv) { return 0; } From a401ea3e98ebe63b2654e2680e2a166b80aefc9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Sat, 12 Jul 2014 14:51:37 +0200 Subject: [PATCH 302/715] added conditionalized option to build with compholio-patchset for pipelight Source900 -- compholio-patchset, wine-arial-fonts sub-package, BR: libattr-devel and configure --with-xattr for Silverlight DRM-stuff whitespace cleanup --- .gitignore | 1 + sources | 1 + wine.spec | 85 +++++++++++++++++++++++++++++++++++++++++++++++------- 3 files changed, 77 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index 0882109..8a5fe6f 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ /wine-1.6.1.tar.bz2 /wine-1.7.22.tar.bz2 /wine-1.7.22.tar.bz2.sign +/wine-compholio-1.7.22.tar.gz diff --git a/sources b/sources index a6726ef..8396a58 100644 --- a/sources +++ b/sources @@ -1,2 +1,3 @@ 519319364b0845ffcbeade4a5b98c0d4 wine-1.7.22.tar.bz2 549fdcc146646582e5422e370e95ee7f wine-1.7.22.tar.bz2.sign +fa9f6012ec3c2ce9162fb40dd6a063c2 wine-compholio-1.7.22.tar.gz diff --git a/wine.spec b/wine.spec index 67c33a9..3229138 100644 --- a/wine.spec +++ b/wine.spec @@ -3,9 +3,13 @@ %global winemono 4.5.2 #global _default_patch_fuzz 2 +# build with compholio-patches, see: http://www.compholio.com/wine-compholio/ +# uncomment to enable; comment-out to disable. +%global compholio 1 + Name: wine Version: 1.7.22 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -52,6 +56,11 @@ Source502: wine-README-tahoma Patch511: wine-cjk.patch +# wine compholio patches for pipelight. +# pulseaudio-patch is covered by that patch-set, too. +%if 0%{?compholio} +Source900: https://github.com/compholio/wine-compholio-daily/archive/v%{version}.tar.gz#/wine-compholio-%{version}.tar.gz +%else # 0%{?compholio} ## winepulse backend # http://repo.or.cz/w/wine/multimedia.git # Fri, 31 Jan 2014 10:37:53 +0000 @@ -60,9 +69,10 @@ Patch511: wine-cjk.patch # git clone http://repo.or.cz/r/wine/multimedia.git # cd multimedia # git format-patch -k --stdout 28e56d726918e4bc59c456b1947b42f40321763f~..7d0fb975eba0f764a125de6b5ab18aecc56b3db4 > ~/cvs/fedora/rpms/wine/wine-pulse-1.7.11.patch -# git format-patch -k --stdout 773bf038fd47159d18f8d996bdae2435aaa31f7e~..ba0286680493a48c6795ab8a20a70618ba2ef403 >> ~/cvs/fedora/rpms/wine/wine-pulse-1.7.11.patch +# git format-patch -k --stdout 773bf038fd47159d18f8d996bdae2435aaa31f7e~..ba0286680493a48c6795ab8a20a70618ba2ef403 >> ~/cvs/fedora/rpms/wine/wine-pulse-1.7.11.patch Patch1001: wine-pulse-1.7.11.patch +%endif # 0%{?compholio} %if !%{?no64bit} ExclusiveArch: %{ix86} x86_64 %{arm} @@ -125,6 +135,11 @@ BuildRequires: prelink BuildRequires: gettext-devel BuildRequires: chrpath +# Silverlight DRM-stuff needs XATTR enabled. +%if 0%{?compholio} +BuildRequires: libattr-devel +%endif # 0%{?compholio} + %if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 BuildRequires: openal-soft-devel BuildRequires: icoutils @@ -196,6 +211,12 @@ Requires: mesa-dri-drivers Requires: samba-winbind-clients %endif +# vitual Provides for claiming the presence of compholio-patchset. +%if 0%{?compholio} +Provides: %{name}(compholio) = %{version}-%{release} +%{?_isa:Provides: %{name}(compholio)%{?_isa} = %{version}-%{release}} +%endif # 0%{?compholio} + %description Wine as a compatibility layer for UNIX to run Windows applications. This package includes a program loader, which allows unmodified Windows @@ -203,7 +224,7 @@ package includes a program loader, which allows unmodified Windows .dll files if they are available. In Fedora wine is a meta-package which will install everything needed for wine -to work smoothly. Smaller setups can be achieved by installing some of the +to work smoothly. Smaller setups can be achieved by installing some of the wine-* sub packages. %package core @@ -356,6 +377,12 @@ handler service. Summary: Wine font files Group: Applications/Emulators BuildArch: noarch +# arial-fonts are available with compholio-patchset, only. +%if 0%{?compholio} +Requires: wine-arial-fonts = %{version}-%{release} +%else # 0%{?compholio} +Obsoletes: wine-arial-fonts <= %{version}-%{release} +%endif # 0%{?compholio} Requires: wine-courier-fonts = %{version}-%{release} Requires: wine-fixedsys-fonts = %{version}-%{release} Requires: wine-small-fonts = %{version}-%{release} @@ -374,6 +401,17 @@ Requires: liberation-narrow-fonts %description fonts %{summary} +%if 0%{?compholio} +%package arial-fonts +Summary: Wine Arial font family +Group: User Interface/X +BuildArch: noarch +Requires: fontpackages-filesystem + +%description arial-fonts +%{summary} +%endif # 0%{?compholio} + %package courier-fonts Summary: Wine Courier font family Group: User Interface/X @@ -544,12 +582,22 @@ This package adds an openal driver for wine. %prep %setup -q - %patch511 -p1 -b.cjk +# setup and apply compholio-patches or pulseaudio-patch. +%if 0%{?compholio} +gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 +%{__make} -C patches DESTDIR="`pwd`" install + +# fix parallelized build +sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in + +%else # 0%{?compholio} %patch1001 -p1 -b.winepulse +# already run after applying compholio-patchset autoreconf +%endif # 0%{?compholio} %build # disable fortify as it breaks wine @@ -567,9 +615,10 @@ export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno %ifarch x86_64 --enable-win64 \ %endif +%{?compholio: --with-xattr} \ --disable-tests -%{__make} TARGETFLAGS="" %{?_smp_mflags} +%{__make} %{?_smp_mflags} TARGETFLAGS="" %install @@ -739,6 +788,11 @@ install -p -m644 %{SOURCE5} %{buildroot}%{_sysconfdir}/ld.so.conf.d/ # install fonts +%if 0%{?compholio} +install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-arial-fonts +mv %{buildroot}/%{_datadir}/wine/fonts/arial* %{buildroot}/%{_datadir}/fonts/wine-arial-fonts/ +%endif # 0%{?compholio} + install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-courier-fonts mv %{buildroot}/%{_datadir}/wine/fonts/cou* %{buildroot}/%{_datadir}/fonts/wine-courier-fonts/ @@ -1504,6 +1558,12 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %files fonts # meta package +%if 0%{?compholio} +%files arial-fonts +%doc COPYING.LIB +%{_datadir}/fonts/wine-arial-fonts +%endif #0%{?compholio} + %files courier-fonts %doc COPYING.LIB %{_datadir}/fonts/wine-courier-fonts @@ -1631,6 +1691,11 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sat Jul 12 2014 Björn Esser - 1.7.22-2 +- added conditionalized option to build with compholio-patchset for pipelight + Source900 -- compholio-patchset, wine-arial-fonts sub-package, + BR: libattr-devel and configure --with-xattr for Silverlight DRM-stuff + * Fri Jul 11 2014 Michael Cronenworth - 1.7.22-1 - version upgrade @@ -1734,7 +1799,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : * Sat Aug 31 2013 Andreas Bierfert - 1.7.1-2 -- fix icons with patch provided by Frank Dana (rhbz#997543) +- fix icons with patch provided by Frank Dana (rhbz#997543) - pull in mesa-dri-drivers in meta package to make direct rendering work out of the box (rhbz#827776) - restart systemd binfmt handler on post/postun (rhbz#912354) @@ -2815,7 +2880,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : * Sat Apr 15 2006 Andreas Bierfert 0.9.12-1 - fix rpath issues (#187429,#188905) -- version upgrade +- version upgrade * Mon Apr 03 2006 Andreas Bierfert 0.9.11-1 @@ -2867,9 +2932,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : - fix cflags for compile - test new BR -* Wed Jan 04 2006 Andreas Bierfert -0.9.4-5 -- fix #176834 +* Wed Jan 04 2006 Andreas Bierfert +0.9.4-5 +- fix #176834 * Mon Jan 02 2006 Andreas Bierfert 0.9.4-4 From daf39e984d1586810cfcf7aadb7c32b98f1fdcec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Mon, 14 Jul 2014 21:25:15 +0200 Subject: [PATCH 303/715] dropped virtual Provides: %%{name}(compholio) --- wine.spec | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/wine.spec b/wine.spec index 3229138..3342488 100644 --- a/wine.spec +++ b/wine.spec @@ -9,7 +9,7 @@ Name: wine Version: 1.7.22 -Release: 2%{?dist} +Release: 3%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -211,12 +211,6 @@ Requires: mesa-dri-drivers Requires: samba-winbind-clients %endif -# vitual Provides for claiming the presence of compholio-patchset. -%if 0%{?compholio} -Provides: %{name}(compholio) = %{version}-%{release} -%{?_isa:Provides: %{name}(compholio)%{?_isa} = %{version}-%{release}} -%endif # 0%{?compholio} - %description Wine as a compatibility layer for UNIX to run Windows applications. This package includes a program loader, which allows unmodified Windows @@ -1691,6 +1685,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Mon Jul 14 2014 Björn Esser - 1.7.22-3 +- dropped virtual Provides: %%{name}(compholio) + * Sat Jul 12 2014 Björn Esser - 1.7.22-2 - added conditionalized option to build with compholio-patchset for pipelight Source900 -- compholio-patchset, wine-arial-fonts sub-package, From 7ba48acfe1b06dcc1c8397d5ff76519023e141cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Thu, 17 Jul 2014 15:20:16 +0200 Subject: [PATCH 304/715] prevent accidential build with compholio-patchset on EPEL --- wine.spec | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 3342488..fe4feb9 100644 --- a/wine.spec +++ b/wine.spec @@ -5,11 +5,13 @@ # build with compholio-patches, see: http://www.compholio.com/wine-compholio/ # uncomment to enable; comment-out to disable. +%if 0%{?fedora} %global compholio 1 +%endif # 0%{?fedora} Name: wine Version: 1.7.22 -Release: 3%{?dist} +Release: 4%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -1685,6 +1687,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Thu Jul 17 2014 Björn Esser - 1.7.22-4 +- prevent accidential build with compholio-patchset on EPEL + * Mon Jul 14 2014 Björn Esser - 1.7.22-3 - dropped virtual Provides: %%{name}(compholio) From 21e9269b80e181489521b9522187ebff3fd8b9fd Mon Sep 17 00:00:00 2001 From: Rex Dieter Date: Thu, 17 Jul 2014 09:30:48 -0500 Subject: [PATCH 305/715] rebuild for pulseaudio (bug #1117683) --- wine.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/wine.spec b/wine.spec index fe4feb9..3084221 100644 --- a/wine.spec +++ b/wine.spec @@ -1689,6 +1689,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %changelog * Thu Jul 17 2014 Björn Esser - 1.7.22-4 - prevent accidential build with compholio-patchset on EPEL +- rebuild for pulseaudio (bug #1117683) * Mon Jul 14 2014 Björn Esser - 1.7.22-3 - dropped virtual Provides: %%{name}(compholio) From 6e96a1ceaf3a30f3a8c3d24a6d456673a714b059 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Fri, 15 Aug 2014 22:30:42 -0500 Subject: [PATCH 306/715] 1.7.24-1 - version upgrade - No longer install Wine fonts into system directory (rhbz#1039763) --- .gitignore | 6 ++--- sources | 6 ++--- wine.spec | 76 +++++++++++++++++++++++------------------------------- 3 files changed, 38 insertions(+), 50 deletions(-) diff --git a/.gitignore b/.gitignore index 8a5fe6f..cb8b838 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ /wine-1.6.1.tar.bz2.sign /wine-1.6.1.tar.bz2 -/wine-1.7.22.tar.bz2 -/wine-1.7.22.tar.bz2.sign -/wine-compholio-1.7.22.tar.gz +/wine-1.7.24.tar.bz2 +/wine-1.7.24.tar.bz2.sign +/wine-compholio-1.7.24.tar.gz diff --git a/sources b/sources index 8396a58..d25508f 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -519319364b0845ffcbeade4a5b98c0d4 wine-1.7.22.tar.bz2 -549fdcc146646582e5422e370e95ee7f wine-1.7.22.tar.bz2.sign -fa9f6012ec3c2ce9162fb40dd6a063c2 wine-compholio-1.7.22.tar.gz +e66e0e8839dcfb562ae52e6a62e923e6 wine-1.7.24.tar.bz2 +7282bbaea010efcbf6676980eb87c890 wine-1.7.24.tar.bz2.sign +aed638d3264ea7faa132ff6722bf3eb0 wine-compholio-1.7.24.tar.gz diff --git a/wine.spec b/wine.spec index 3084221..25df507 100644 --- a/wine.spec +++ b/wine.spec @@ -10,8 +10,8 @@ %endif # 0%{?fedora} Name: wine -Version: 1.7.22 -Release: 4%{?dist} +Version: 1.7.24 +Release: 1%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -61,7 +61,7 @@ Patch511: wine-cjk.patch # wine compholio patches for pipelight. # pulseaudio-patch is covered by that patch-set, too. %if 0%{?compholio} -Source900: https://github.com/compholio/wine-compholio-daily/archive/v%{version}.tar.gz#/wine-compholio-%{version}.tar.gz +Source900: https://github.com/compholio/wine-compholio/archive/v%{version}.tar.gz#/wine-compholio-%{version}.tar.gz %else # 0%{?compholio} ## winepulse backend # http://repo.or.cz/w/wine/multimedia.git @@ -783,41 +783,13 @@ install -p -m644 %{SOURCE5} %{buildroot}%{_sysconfdir}/ld.so.conf.d/ %endif -# install fonts -%if 0%{?compholio} -install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-arial-fonts -mv %{buildroot}/%{_datadir}/wine/fonts/arial* %{buildroot}/%{_datadir}/fonts/wine-arial-fonts/ -%endif # 0%{?compholio} - -install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-courier-fonts -mv %{buildroot}/%{_datadir}/wine/fonts/cou* %{buildroot}/%{_datadir}/fonts/wine-courier-fonts/ - -install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-fixedsys-fonts -mv %{buildroot}/%{_datadir}/wine/fonts/*vgafix.fon %{buildroot}/%{_datadir}/fonts/wine-fixedsys-fonts/ - -install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-system-fonts -mv %{buildroot}/%{_datadir}/wine/fonts/*sys.* %{buildroot}/%{_datadir}/fonts/wine-system-fonts/ -mv %{buildroot}/%{_datadir}/wine/fonts/vgas*.* %{buildroot}/%{_datadir}/fonts/wine-system-fonts/ - -install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-small-fonts -mv %{buildroot}/%{_datadir}/wine/fonts/sma* %{buildroot}/%{_datadir}/fonts/wine-small-fonts/ -mv %{buildroot}/%{_datadir}/wine/fonts/jsma* %{buildroot}/%{_datadir}/fonts/wine-small-fonts/ - -install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-marlett-fonts -mv %{buildroot}/%{_datadir}/wine/fonts/marlett.ttf %{buildroot}/%{_datadir}/fonts/wine-marlett-fonts/ - -install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-ms-sans-serif-fonts -mv %{buildroot}/%{_datadir}/wine/fonts/sse* %{buildroot}/%{_datadir}/fonts/wine-ms-sans-serif-fonts/ - +# install Tahoma font for system package install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-tahoma-fonts pushd %{buildroot}/%{_datadir}/fonts/wine-tahoma-fonts ln -s ../../wine/fonts/tahoma.ttf tahoma.ttf ln -s ../../wine/fonts/tahomabd.ttf tahomabd.ttf popd -install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-symbol-fonts -mv %{buildroot}/%{_datadir}/wine/fonts/symbol.ttf %{buildroot}/%{_datadir}/fonts/wine-symbol-fonts/ - # add config and readme for tahoma install -m 0755 -d %{buildroot}%{_fontconfig_templatedir} \ %{buildroot}%{_fontconfig_confdir} @@ -826,9 +798,6 @@ install -p -m 0644 %{SOURCE501} %{buildroot}%{_fontconfig_templatedir}/20-wine-t ln -s %{_fontconfig_templatedir}/20-wine-tahoma-nobitmaps.conf \ %{buildroot}%{_fontconfig_confdir}/20-wine-tahoma-nobitmaps.conf -install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-wingdings-fonts -mv %{buildroot}/%{_datadir}/wine/fonts/wingding.ttf %{buildroot}/%{_datadir}/fonts/wine-wingdings-fonts/ - # clean readme files pushd documentation @@ -1557,32 +1526,46 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %if 0%{?compholio} %files arial-fonts %doc COPYING.LIB -%{_datadir}/fonts/wine-arial-fonts +%{_datadir}/wine/fonts/arial* %endif #0%{?compholio} %files courier-fonts %doc COPYING.LIB -%{_datadir}/fonts/wine-courier-fonts +%{_datadir}/wine/fonts/cou* %files fixedsys-fonts %doc COPYING.LIB -%{_datadir}/fonts/wine-fixedsys-fonts +%{_datadir}/wine/fonts/*vgafix.fon %files system-fonts %doc COPYING.LIB -%{_datadir}/fonts/wine-system-fonts +%{_datadir}/wine/fonts/cvgasys.fon +%{_datadir}/wine/fonts/hvgasys.fon +%{_datadir}/wine/fonts/jvgasys.fon +%{_datadir}/wine/fonts/svgasys.fon +%{_datadir}/wine/fonts/vgas1255.fon +%{_datadir}/wine/fonts/vgas1256.fon +%{_datadir}/wine/fonts/vgas1257.fon +%{_datadir}/wine/fonts/vgas874.fon +%{_datadir}/wine/fonts/vgasys.fon +%{_datadir}/wine/fonts/vgasyse.fon +%{_datadir}/wine/fonts/vgasysg.fon +%{_datadir}/wine/fonts/vgasysr.fon +%{_datadir}/wine/fonts/vgasyst.fon %files small-fonts %doc COPYING.LIB -%{_datadir}/fonts/wine-small-fonts +%{_datadir}/wine/fonts/sma* +%{_datadir}/wine/fonts/jsma* %files marlett-fonts %doc COPYING.LIB -%{_datadir}/fonts/wine-marlett-fonts +%{_datadir}/wine/fonts/marlett.ttf %files ms-sans-serif-fonts %doc COPYING.LIB -%{_datadir}/fonts/wine-ms-sans-serif-fonts +%{_datadir}/wine/fonts/sse* +%{_datadir}/wine/fonts/msyh.ttf %files tahoma-fonts %doc COPYING.LIB @@ -1596,11 +1579,11 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %files symbol-fonts %doc COPYING.LIB -%{_datadir}/fonts/wine-symbol-fonts +%{_datadir}/wine/fonts/symbol.ttf %files wingdings-fonts %doc COPYING.LIB -%{_datadir}/fonts/wine-wingdings-fonts +%{_datadir}/wine/fonts/wingding.ttf %files desktop %{_datadir}/applications/wine-notepad.desktop @@ -1687,6 +1670,11 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Fri Aug 15 2014 Michael Cronenworth +- 1.7.24-1 +- version upgrade +- No longer install Wine fonts into system directory (rhbz#1039763) + * Thu Jul 17 2014 Björn Esser - 1.7.22-4 - prevent accidential build with compholio-patchset on EPEL - rebuild for pulseaudio (bug #1117683) From 3d3d3cfc78fd260c400992812b56950cc64ab4c0 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Mon, 18 Aug 2014 08:39:32 +0000 Subject: [PATCH 307/715] - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild --- wine.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 25df507..3ae4004 100644 --- a/wine.spec +++ b/wine.spec @@ -11,7 +11,7 @@ Name: wine Version: 1.7.24 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -1670,6 +1670,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Mon Aug 18 2014 Fedora Release Engineering - 1.7.24-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + * Fri Aug 15 2014 Michael Cronenworth - 1.7.24-1 - version upgrade From d692f81f859bb25d1743d4f82b7a9c5b1c7f03c7 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 24 Aug 2014 16:45:24 -0500 Subject: [PATCH 308/715] 1.7.25-1 - version upgrade --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 6 +++++- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index cb8b838..eca28f8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ /wine-1.6.1.tar.bz2.sign /wine-1.6.1.tar.bz2 -/wine-1.7.24.tar.bz2 -/wine-1.7.24.tar.bz2.sign -/wine-compholio-1.7.24.tar.gz +/wine-1.7.25.tar.bz2 +/wine-1.7.25.tar.bz2.sign +/wine-compholio-1.7.25.tar.gz diff --git a/sources b/sources index d25508f..824469b 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -e66e0e8839dcfb562ae52e6a62e923e6 wine-1.7.24.tar.bz2 -7282bbaea010efcbf6676980eb87c890 wine-1.7.24.tar.bz2.sign -aed638d3264ea7faa132ff6722bf3eb0 wine-compholio-1.7.24.tar.gz +b404c3209a0fe5d5d64f938e6b3af7bf wine-1.7.25.tar.bz2 +e2a60396d5b83fb31e6e1c9af92187a8 wine-1.7.25.tar.bz2.sign +57037af03be623f01cd702d957b0d8b2 wine-compholio-1.7.25.tar.gz diff --git a/wine.spec b/wine.spec index 25df507..65ad636 100644 --- a/wine.spec +++ b/wine.spec @@ -10,7 +10,7 @@ %endif # 0%{?fedora} Name: wine -Version: 1.7.24 +Version: 1.7.25 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1670,6 +1670,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sun Aug 24 2014 Michael Cronenworth +- 1.7.25-1 +- version upgrade + * Fri Aug 15 2014 Michael Cronenworth - 1.7.24-1 - version upgrade From ab3bd74ebd5e190d6b9336f4951cb4618e30c15d Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 8 Sep 2014 18:53:15 -0500 Subject: [PATCH 309/715] 1.7.26-1 - version upgrade --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 8 +++++++- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index eca28f8..ab03b5e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ /wine-1.6.1.tar.bz2.sign /wine-1.6.1.tar.bz2 -/wine-1.7.25.tar.bz2 -/wine-1.7.25.tar.bz2.sign -/wine-compholio-1.7.25.tar.gz +/wine-1.7.26.tar.bz2 +/wine-1.7.26.tar.bz2.sign +/wine-compholio-1.7.26.tar.gz diff --git a/sources b/sources index 824469b..3cc2362 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -b404c3209a0fe5d5d64f938e6b3af7bf wine-1.7.25.tar.bz2 -e2a60396d5b83fb31e6e1c9af92187a8 wine-1.7.25.tar.bz2.sign -57037af03be623f01cd702d957b0d8b2 wine-compholio-1.7.25.tar.gz +4e974ad6b025582a6d29cbd29d92ee2f wine-1.7.26.tar.bz2 +9d070e599c76bc36cf43fd54466de274 wine-1.7.26.tar.bz2.sign +6f619035e86babcd5589679defb9a513 wine-compholio-1.7.26.tar.gz diff --git a/wine.spec b/wine.spec index 57e062e..1dc8411 100644 --- a/wine.spec +++ b/wine.spec @@ -10,7 +10,7 @@ %endif # 0%{?fedora} Name: wine -Version: 1.7.25 +Version: 1.7.26 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1123,6 +1123,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/dpnet.dll.so %{_libdir}/wine/dpnhpast.dll.so %{_libdir}/wine/dpnlobby.dll.so +%{_libdir}/wine/dpvoice.dll.so %{_libdir}/wine/dpwsockx.dll.so %{_libdir}/wine/drmclien.dll.so %{_libdir}/wine/dsound.dll.so @@ -1262,6 +1263,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/newdev.dll.so %{_libdir}/wine/normaliz.dll.so %{_libdir}/wine/npmshtml.dll.so +%{_libdir}/wine/npptools.dll.so %{_libdir}/wine/ntdll.dll.so %{_libdir}/wine/ntdsapi.dll.so %{_libdir}/wine/ntprint.dll.so @@ -1670,6 +1672,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Mon Sep 08 2014 Michael Cronenworth +- 1.7.26-1 +- version upgrade + * Sun Aug 24 2014 Michael Cronenworth - 1.7.25-1 - version upgrade From cf527ee7ca828d7bdc5ea424beff7487f4e6ccfa Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 24 Sep 2014 23:41:50 -0500 Subject: [PATCH 310/715] 1.7.27-1 - version upgrade --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 6 +++++- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index ab03b5e..c950383 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ /wine-1.6.1.tar.bz2.sign /wine-1.6.1.tar.bz2 -/wine-1.7.26.tar.bz2 -/wine-1.7.26.tar.bz2.sign -/wine-compholio-1.7.26.tar.gz +/wine-1.7.27.tar.bz2 +/wine-1.7.27.tar.bz2.sign +/wine-compholio-1.7.27.tar.gz diff --git a/sources b/sources index 3cc2362..048fdfa 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -4e974ad6b025582a6d29cbd29d92ee2f wine-1.7.26.tar.bz2 -9d070e599c76bc36cf43fd54466de274 wine-1.7.26.tar.bz2.sign -6f619035e86babcd5589679defb9a513 wine-compholio-1.7.26.tar.gz +397889d1d39b913b931b84988d50d3ac wine-1.7.27.tar.bz2 +03889b05fbe8289c7789485d9518c02e wine-1.7.27.tar.bz2.sign +01d46f5fe0eb9bf9d79f804c50b4f94d wine-compholio-1.7.27.tar.gz diff --git a/wine.spec b/wine.spec index 1dc8411..5d8584c 100644 --- a/wine.spec +++ b/wine.spec @@ -10,7 +10,7 @@ %endif # 0%{?fedora} Name: wine -Version: 1.7.26 +Version: 1.7.27 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1672,6 +1672,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Wed Sep 24 2014 Michael Cronenworth +- 1.7.27-1 +- version upgrade + * Mon Sep 08 2014 Michael Cronenworth - 1.7.26-1 - version upgrade From 34b4573eb583eaa8e8ec4ebca86e47a7f40eccd1 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 5 Oct 2014 23:32:59 -0500 Subject: [PATCH 311/715] 1.7.28-1 - version upgrade - New sub-package for wingdings font system integration --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 27 ++++++++++++++++++++++++++- 3 files changed, 32 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index c950383..7bc3b44 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ /wine-1.6.1.tar.bz2.sign /wine-1.6.1.tar.bz2 -/wine-1.7.27.tar.bz2 -/wine-1.7.27.tar.bz2.sign -/wine-compholio-1.7.27.tar.gz +/wine-1.7.28.tar.bz2 +/wine-1.7.28.tar.bz2.sign +/wine-compholio-1.7.28.tar.gz diff --git a/sources b/sources index 048fdfa..1012c22 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -397889d1d39b913b931b84988d50d3ac wine-1.7.27.tar.bz2 -03889b05fbe8289c7789485d9518c02e wine-1.7.27.tar.bz2.sign -01d46f5fe0eb9bf9d79f804c50b4f94d wine-compholio-1.7.27.tar.gz +7443e04f368a63de80ec2738f5337abd wine-1.7.28.tar.bz2 +6065c3e868234882b6976c72a12582a0 wine-1.7.28.tar.bz2.sign +fe50bec44a24cad59e9ae0b2819276ea wine-compholio-1.7.28.tar.gz diff --git a/wine.spec b/wine.spec index 5d8584c..92d5a9b 100644 --- a/wine.spec +++ b/wine.spec @@ -10,7 +10,7 @@ %endif # 0%{?fedora} Name: wine -Version: 1.7.27 +Version: 1.7.28 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -504,6 +504,18 @@ Requires: fontpackages-filesystem %description wingdings-fonts %{summary} +Please note: If you want system integration for wine wingdings fonts install the +wine-wingdings-fonts-system package. + +%package wingdings-fonts-system +Summary: Wine Wingdings font family system integration +Group: User Interface/X +BuildArch: noarch +Requires: fontpackages-filesystem +Requires: wine-wingdings-fonts = %{version}-%{release} + +%description wingdings-fonts-system +%{summary} %package ldap @@ -798,6 +810,11 @@ install -p -m 0644 %{SOURCE501} %{buildroot}%{_fontconfig_templatedir}/20-wine-t ln -s %{_fontconfig_templatedir}/20-wine-tahoma-nobitmaps.conf \ %{buildroot}%{_fontconfig_confdir}/20-wine-tahoma-nobitmaps.conf +# install Wingdings font for system package +install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-wingdings-fonts +pushd %{buildroot}/%{_datadir}/fonts/wine-wingdings-fonts +ln -s ../../wine/fonts/wingding.ttf wingding.ttf +popd # clean readme files pushd documentation @@ -1587,6 +1604,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %doc COPYING.LIB %{_datadir}/wine/fonts/wingding.ttf +%files wingdings-fonts-system +%{_datadir}/fonts/wine-wingdings-fonts + %files desktop %{_datadir}/applications/wine-notepad.desktop %{_datadir}/applications/wine-winefile.desktop @@ -1672,6 +1692,11 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sun Oct 05 2014 Michael Cronenworth +- 1.7.28-1 +- version upgrade +- New sub-package for wingdings font system integration + * Wed Sep 24 2014 Michael Cronenworth - 1.7.27-1 - version upgrade From cd1291611b8c8fe561c70c0e6283cfecb4687227 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Fri, 24 Oct 2014 22:15:21 -0500 Subject: [PATCH 312/715] Update to 1.7.29 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 8 +++++++- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 7bc3b44..80d4f23 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ /wine-1.6.1.tar.bz2.sign /wine-1.6.1.tar.bz2 -/wine-1.7.28.tar.bz2 -/wine-1.7.28.tar.bz2.sign -/wine-compholio-1.7.28.tar.gz +/wine-1.7.29.tar.bz2 +/wine-1.7.29.tar.bz2.sign +/wine-compholio-1.7.29.tar.gz diff --git a/sources b/sources index 1012c22..7227afb 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -7443e04f368a63de80ec2738f5337abd wine-1.7.28.tar.bz2 -6065c3e868234882b6976c72a12582a0 wine-1.7.28.tar.bz2.sign -fe50bec44a24cad59e9ae0b2819276ea wine-compholio-1.7.28.tar.gz +e217beccdba64bff75e67640b68a50f7 wine-1.7.29.tar.bz2 +17d6994c98c23a60fad2bdb422094f83 wine-1.7.29.tar.bz2.sign +2171d40869a2baf465ae02ac7cb1d126 wine-compholio-1.7.29.tar.gz diff --git a/wine.spec b/wine.spec index 92d5a9b..6990d08 100644 --- a/wine.spec +++ b/wine.spec @@ -10,7 +10,7 @@ %endif # 0%{?fedora} Name: wine -Version: 1.7.28 +Version: 1.7.29 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1194,6 +1194,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/jscript.dll.so %{_libdir}/wine/jsproxy.dll.so %{_libdir}/wine/kernel32.dll.so +%{_libdir}/wine/ksuser.dll.so %{_libdir}/wine/ktmw32.dll.so %{_libdir}/wine/loadperf.dll.so %{_libdir}/wine/localspl.dll.so @@ -1353,6 +1354,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/svchost.exe.so %{_libdir}/wine/svrapi.dll.so %{_libdir}/wine/sxs.dll.so +%{_libdir}/wine/systeminfo.exe.so %{_libdir}/wine/t2embed.dll.so %{_libdir}/wine/tapi32.dll.so %{_libdir}/wine/taskkill.exe.so @@ -1692,6 +1694,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Fri Oct 24 2014 Michael Cronenworth +- 1.7.29-1 +- version upgrade + * Sun Oct 05 2014 Michael Cronenworth - 1.7.28-1 - version upgrade From e3bf1bd73b1edd34390645806edbbd902a6e3c04 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 2 Nov 2014 18:44:21 +0100 Subject: [PATCH 313/715] 1.7.30-1 - version upgrade (rhbz#1159548) - use winepulse patch from compholio patchset when build w/o compholio (rhbz#1151862) --- .gitignore | 6 +- sources | 6 +- wine-pulse-1.7.11.patch | 5254 --------------------------------------- wine.spec | 39 +- 4 files changed, 27 insertions(+), 5278 deletions(-) delete mode 100644 wine-pulse-1.7.11.patch diff --git a/.gitignore b/.gitignore index 80d4f23..838d121 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ /wine-1.6.1.tar.bz2.sign /wine-1.6.1.tar.bz2 -/wine-1.7.29.tar.bz2 -/wine-1.7.29.tar.bz2.sign -/wine-compholio-1.7.29.tar.gz +/wine-1.7.30.tar.bz2 +/wine-1.7.30.tar.bz2.sign +/wine-staging-1.7.30.tar.gz diff --git a/sources b/sources index 7227afb..c271700 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -e217beccdba64bff75e67640b68a50f7 wine-1.7.29.tar.bz2 -17d6994c98c23a60fad2bdb422094f83 wine-1.7.29.tar.bz2.sign -2171d40869a2baf465ae02ac7cb1d126 wine-compholio-1.7.29.tar.gz +7b224c30bd1874e79c490393cc1deda6 wine-1.7.30.tar.bz2 +86910b1f9a5873ec698b3653607023a1 wine-1.7.30.tar.bz2.sign +d36fc1c3392f5d38779b238ec61d4d64 wine-staging-1.7.30.tar.gz diff --git a/wine-pulse-1.7.11.patch b/wine-pulse-1.7.11.patch deleted file mode 100644 index bdec4b9..0000000 --- a/wine-pulse-1.7.11.patch +++ /dev/null @@ -1,5254 +0,0 @@ -From 28e56d726918e4bc59c456b1947b42f40321763f Mon Sep 17 00:00:00 2001 -From: Maarten Lankhorst -Date: Sun, 19 Jan 2014 11:34:45 +0100 -Subject: winmm: Load winealsa if winepulse is found - -Fixes midi on winepulse ---- - dlls/winmm/lolvldrv.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/dlls/winmm/lolvldrv.c b/dlls/winmm/lolvldrv.c -index c3b3674..56cfe35 100644 ---- a/dlls/winmm/lolvldrv.c -+++ b/dlls/winmm/lolvldrv.c -@@ -544,7 +544,10 @@ static void MMDRV_Init(void) - drvA = HeapAlloc(GetProcessHeap(), 0, size); - WideCharToMultiByte(CP_ACP, 0, pv.u.pwszVal, -1, drvA, size, NULL, NULL); - -- MMDRV_Install(drvA, drvA, FALSE); -+ if (!strcasecmp(drvA, "winepulse.drv")) -+ MMDRV_Install("winealsa.drv", "winealsa.drv", 0); -+ else -+ MMDRV_Install(drvA, drvA, FALSE); - - HeapFree(GetProcessHeap(), 0, drvA); - PropVariantClear(&pv); --- -1.8.5.3 - - -From 20f3b69f1d98ac4822529677acbfa9ed5b6a329c Mon Sep 17 00:00:00 2001 -From: Maarten Lankhorst -Date: Sun, 19 Jan 2014 11:34:46 +0100 -Subject: winepulse: Add initial stub for pulseaudio support - ---- -Just the basic of initialization and pulseaudio mainloop support is -added here. ---- - configure | 99 +++++++++++- - configure.ac | 32 +++- - dlls/mmdevapi/main.c | 2 +- - dlls/winepulse.drv/Makefile.in | 7 + - dlls/winepulse.drv/mmdevdrv.c | 290 ++++++++++++++++++++++++++++++++++ - dlls/winepulse.drv/winepulse.drv.spec | 5 + - 6 files changed, 430 insertions(+), 5 deletions(-) - create mode 100644 dlls/winepulse.drv/Makefile.in - create mode 100644 dlls/winepulse.drv/mmdevdrv.c - create mode 100644 dlls/winepulse.drv/winepulse.drv.spec - -diff --git a/configure b/configure -index 6f5652a..a149f34 100755 ---- a/configure -+++ b/configure -@@ -653,6 +653,8 @@ OSS4_CFLAGS - ALSA_LIBS - GSTREAMER_LIBS - GSTREAMER_CFLAGS -+PULSEINCL -+PULSELIBS - GETTEXTPO_LIBS - Z_LIBS - FREETYPE_LIBS -@@ -824,6 +826,7 @@ with_osmesa - with_oss - with_png - with_pthread -+with_pulse - with_sane - with_tiff - with_v4l -@@ -1224,6 +1227,7 @@ enable_winemapi - enable_winemp3_acm - enable_wineoss_drv - enable_wineps_drv -+enable_winepulse_drv - enable_wineqtdecoder - enable_winex11_drv - enable_wing32 -@@ -2050,6 +2054,7 @@ Optional Packages: - --without-oss do not use the OSS sound support - --without-png do not use PNG - --without-pthread do not use the pthread library -+ --without-pulse do not use PulseAudio sound support - --without-sane do not use SANE (scanner support) - --without-tiff do not use TIFF - --without-v4l do not use v4l1 (v4l support) -@@ -3291,6 +3296,12 @@ if test "${with_pthread+set}" = set; then : - fi - - -+# Check whether --with-pulse was given. -+if test "${with_pulse+set}" = set; then : -+ withval=$with_pulse; -+fi -+ -+ - # Check whether --with-sane was given. - if test "${with_sane+set}" = set; then : - withval=$with_sane; -@@ -12054,6 +12065,87 @@ esac - fi - fi - -+PULSELIBS="" -+ -+PULSEINCL="" -+ -+if test "x$with_pulse" != "xno"; -+then -+ ac_save_CPPFLAGS="$CPPFLAGS" -+ if test "$PKG_CONFIG" != "false"; -+ then -+ ac_pulse_libs="`$PKG_CONFIG --libs libpulse 2>/dev/null`" -+ ac_pulse_cflags="`$PKG_CONFIG --cflags-only-I libpulse 2>/dev/null`" -+ -+ CPPFLAGS="$CPPFLAGS $ac_pulse_cflags" -+ for ac_header in pulse/pulseaudio.h -+do : -+ ac_fn_c_check_header_mongrel "$LINENO" "pulse/pulseaudio.h" "ac_cv_header_pulse_pulseaudio_h" "$ac_includes_default" -+if test "x$ac_cv_header_pulse_pulseaudio_h" = xyes; then : -+ cat >>confdefs.h <<_ACEOF -+#define HAVE_PULSE_PULSEAUDIO_H 1 -+_ACEOF -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pa_stream_is_corked in -lpulse" >&5 -+$as_echo_n "checking for pa_stream_is_corked in -lpulse... " >&6; } -+if ${ac_cv_lib_pulse_pa_stream_is_corked+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ ac_check_lib_save_LIBS=$LIBS -+LIBS="-lpulse $ac_pulse_libs $LIBS" -+cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+ -+/* Override any GCC internal prototype to avoid an error. -+ Use char because int might match the return type of a GCC -+ builtin and then its argument prototype would still apply. */ -+#ifdef __cplusplus -+extern "C" -+#endif -+char pa_stream_is_corked (); -+int -+main () -+{ -+return pa_stream_is_corked (); -+ ; -+ return 0; -+} -+_ACEOF -+if ac_fn_c_try_link "$LINENO"; then : -+ ac_cv_lib_pulse_pa_stream_is_corked=yes -+else -+ ac_cv_lib_pulse_pa_stream_is_corked=no -+fi -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext -+LIBS=$ac_check_lib_save_LIBS -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pulse_pa_stream_is_corked" >&5 -+$as_echo "$ac_cv_lib_pulse_pa_stream_is_corked" >&6; } -+if test "x$ac_cv_lib_pulse_pa_stream_is_corked" = xyes; then : -+ -+$as_echo "#define HAVE_PULSEAUDIO 1" >>confdefs.h -+ -+ PULSELIBS="$ac_pulse_libs" -+ PULSEINCL="$ac_pulse_cflags" -+fi -+ -+ -+fi -+ -+done -+ -+ fi -+ CPPFLAGS="$ac_save_CPPFLAGS" -+fi -+if test "$ac_cv_lib_pulse_pa_stream_is_corked" != "yes"; then : -+ case "x$with_pulse" in -+ x) as_fn_append wine_warnings "|libpulse ${notice_platform}development files not found or too old, Pulse won't be supported." ;; -+ xno) ;; -+ *) as_fn_error $? "libpulse ${notice_platform}development files not found or too old, Pulse won't be supported. -+This is an error since --with-pulse was requested." "$LINENO" 5 ;; -+esac -+fi -+ - if test "x$with_gstreamer" != "xno" - then - if ${GSTREAMER_CFLAGS:+false} :; then : -@@ -13365,12 +13457,14 @@ fi - - test -n "$ALSA_LIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no} - test -n "$COREAUDIO_LIBS" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no} -+test -n "$PULSELIBS" || enable_winepulse_drv=${enable_winepulse_drv:-no} - test "x$ac_cv_member_oss_sysinfo_numaudioengines" = xyes || enable_wineoss_drv=${enable_wineoss_drv:-no} - test "$ac_cv_header_linux_joystick_h" = "yes" || enable_winejoystick_drv=${enable_winejoystick_drv:-no} - --if test "x$ALSA_LIBS$COREAUDIO_LIBS" = "x" -a \ -+if test "x$ALSA_LIBS$COREAUDIO_LIBS$PULSELIBS" = "x" -a \ -+if test "x$ALSALIBS$COREAUDIO$PULSELIBS" = "x" -a \ - "x$ac_cv_member_oss_sysinfo_numaudioengines" != xyes -a \ -- "x$with_alsa$with_coreaudio$with_oss" != xnonono -+ "x$with_alsa$with_coreaudio$with_oss$with_pulse" != xnononono - then - as_fn_append wine_warnings "|No sound system was found. Windows applications will be silent." - fi -@@ -17144,6 +17238,7 @@ wine_fn_config_dll winemp3.acm enable_winemp3_acm - wine_fn_config_dll wineoss.drv enable_wineoss_drv - wine_fn_config_dll wineps.drv enable_wineps_drv clean,po - wine_fn_config_dll wineps16.drv16 enable_win16 -+wine_fn_config_dll winepulse.drv enable_winepulse_drv - wine_fn_config_dll wineqtdecoder enable_wineqtdecoder - wine_fn_config_dll winex11.drv enable_winex11_drv - wine_fn_config_dll wing.dll16 enable_win16 -diff --git a/configure.ac b/configure.ac -index 9a8393c..27a6cec 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -70,6 +70,7 @@ AC_ARG_WITH(oss, AS_HELP_STRING([--without-oss],[do not use the OSS sound - AC_ARG_WITH(png, AS_HELP_STRING([--without-png],[do not use PNG])) - AC_ARG_WITH(pthread, AS_HELP_STRING([--without-pthread],[do not use the pthread library]), - [if test "x$withval" = "xno"; then ac_cv_header_pthread_h=no; fi]) -+AC_ARG_WITH(pulse, AC_HELP_STRING([--without-pulse],[do not use PulseAudio sound support])) - AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)])) - AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF])) - AC_ARG_WITH(v4l, AS_HELP_STRING([--without-v4l],[do not use v4l1 (v4l support)])) -@@ -1512,6 +1513,30 @@ then - [GetText ${notice_platform}development files not found (or too old), po files can't be rebuilt.]) - fi - -+dnl **** Check for PulseAudio **** -+AC_SUBST(PULSELIBS,"") -+AC_SUBST(PULSEINCL,"") -+if test "x$with_pulse" != "xno"; -+then -+ ac_save_CPPFLAGS="$CPPFLAGS" -+ if test "$PKG_CONFIG" != "false"; -+ then -+ ac_pulse_libs="`$PKG_CONFIG --libs libpulse 2>/dev/null`" -+ ac_pulse_cflags="`$PKG_CONFIG --cflags-only-I libpulse 2>/dev/null`" -+ -+ CPPFLAGS="$CPPFLAGS $ac_pulse_cflags" -+ AC_CHECK_HEADERS(pulse/pulseaudio.h, -+ [AC_CHECK_LIB(pulse, pa_stream_is_corked, -+ [AC_DEFINE(HAVE_PULSEAUDIO, 1, [Define if you have pulseaudio]) -+ PULSELIBS="$ac_pulse_libs" -+ PULSEINCL="$ac_pulse_cflags"],,$ac_pulse_libs) -+ ]) -+ fi -+ CPPFLAGS="$ac_save_CPPFLAGS" -+fi -+WINE_WARNING_WITH(pulse, [test "$ac_cv_lib_pulse_pa_stream_is_corked" != "yes"], -+ [libpulse ${notice_platform}development files not found or too old, Pulse won't be supported.]) -+ - dnl **** Check for gstreamer **** - if test "x$with_gstreamer" != "xno" - then -@@ -1730,13 +1755,15 @@ fi - dnl **** Disable unsupported winmm drivers **** - test -n "$ALSA_LIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no} - test -n "$COREAUDIO_LIBS" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no} -+test -n "$PULSELIBS" || enable_winepulse_drv=${enable_winepulse_drv:-no} - test "x$ac_cv_member_oss_sysinfo_numaudioengines" = xyes || enable_wineoss_drv=${enable_wineoss_drv:-no} - test "$ac_cv_header_linux_joystick_h" = "yes" || enable_winejoystick_drv=${enable_winejoystick_drv:-no} - - dnl **** Check for any sound system **** --if test "x$ALSA_LIBS$COREAUDIO_LIBS" = "x" -a \ -+if test "x$ALSA_LIBS$COREAUDIO_LIBS$PULSELIBS" = "x" -a \ -+if test "x$ALSALIBS$COREAUDIO$PULSELIBS" = "x" -a \ - "x$ac_cv_member_oss_sysinfo_numaudioengines" != xyes -a \ -- "x$with_alsa$with_coreaudio$with_oss" != xnonono -+ "x$with_alsa$with_coreaudio$with_oss$with_pulse" != xnononono - then - WINE_WARNING([No sound system was found. Windows applications will be silent.]) - fi -@@ -3187,6 +3214,7 @@ WINE_CONFIG_DLL(winemp3.acm) - WINE_CONFIG_DLL(wineoss.drv) - WINE_CONFIG_DLL(wineps.drv,,[clean,po]) - WINE_CONFIG_DLL(wineps16.drv16,enable_win16) -+WINE_CONFIG_DLL(winepulse.drv) - WINE_CONFIG_DLL(wineqtdecoder) - WINE_CONFIG_DLL(winex11.drv) - WINE_CONFIG_DLL(wing.dll16,enable_win16) -diff --git a/dlls/mmdevapi/main.c b/dlls/mmdevapi/main.c -index 447813f..b9ae99e 100644 ---- a/dlls/mmdevapi/main.c -+++ b/dlls/mmdevapi/main.c -@@ -110,7 +110,7 @@ static BOOL init_driver(void) - { - static const WCHAR drv_value[] = {'A','u','d','i','o',0}; - -- static WCHAR default_list[] = {'a','l','s','a',',','o','s','s',',', -+ static WCHAR default_list[] = {'p','u','l','s','e',',','a','l','s','a',',','o','s','s',',', - 'c','o','r','e','a','u','d','i','o',0}; - - DriverFuncs driver; -diff --git a/dlls/winepulse.drv/Makefile.in b/dlls/winepulse.drv/Makefile.in -new file mode 100644 -index 0000000..158bbc0 ---- /dev/null -+++ b/dlls/winepulse.drv/Makefile.in -@@ -0,0 +1,7 @@ -+MODULE = winepulse.drv -+IMPORTS = dxguid uuid winmm user32 advapi32 ole32 -+EXTRALIBS = @PULSELIBS@ $(PTHREAD_LIBS) -+EXTRAINCL = @PULSEINCL@ -+ -+C_SRCS = \ -+ mmdevdrv.c -diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c -new file mode 100644 -index 0000000..d187bdc ---- /dev/null -+++ b/dlls/winepulse.drv/mmdevdrv.c -@@ -0,0 +1,290 @@ -+/* -+ * Copyright 2011-2012 Maarten Lankhorst -+ * Copyright 2010-2011 Maarten Lankhorst for CodeWeavers -+ * Copyright 2011 Andrew Eikum for CodeWeavers -+ * -+ * 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, write to the Free Software -+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA -+ * -+ * Pulseaudio driver support.. hell froze over -+ */ -+ -+#define NONAMELESSUNION -+#define COBJMACROS -+#include "config.h" -+#include -+#include -+ -+#include -+#include -+#include -+#include -+ -+#include -+ -+#include "windef.h" -+#include "winbase.h" -+#include "winnls.h" -+#include "winreg.h" -+#include "wine/debug.h" -+#include "wine/unicode.h" -+#include "wine/list.h" -+ -+#include "ole2.h" -+#include "dshow.h" -+#include "dsound.h" -+#include "propsys.h" -+ -+#include "initguid.h" -+#include "ks.h" -+#include "ksmedia.h" -+#include "mmdeviceapi.h" -+#include "audioclient.h" -+#include "endpointvolume.h" -+#include "audiopolicy.h" -+ -+#include "wine/list.h" -+ -+#define NULL_PTR_ERR MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, RPC_X_NULL_REF_POINTER) -+ -+WINE_DEFAULT_DEBUG_CHANNEL(pulse); -+ -+static const REFERENCE_TIME MinimumPeriod = 30000; -+static const REFERENCE_TIME DefaultPeriod = 100000; -+ -+static pa_context *pulse_ctx; -+static pa_mainloop *pulse_ml; -+ -+static HANDLE pulse_thread; -+static pthread_mutex_t pulse_lock = PTHREAD_MUTEX_INITIALIZER; -+static pthread_cond_t pulse_cond = PTHREAD_COND_INITIALIZER; -+ -+static DWORD pulse_stream_volume; -+ -+const WCHAR pulse_keyW[] = {'S','o','f','t','w','a','r','e','\\', -+ 'W','i','n','e','\\','P','u','l','s','e',0}; -+const WCHAR pulse_streamW[] = { 'S','t','r','e','a','m','V','o','l',0 }; -+ -+BOOL WINAPI DllMain(HINSTANCE dll, DWORD reason, void *reserved) -+{ -+ if (reason == DLL_PROCESS_ATTACH) { -+ HKEY key; -+ if (RegOpenKeyW(HKEY_CURRENT_USER, pulse_keyW, &key) == ERROR_SUCCESS) { -+ DWORD size = sizeof(pulse_stream_volume); -+ RegQueryValueExW(key, pulse_streamW, 0, NULL, -+ (BYTE*)&pulse_stream_volume, &size); -+ RegCloseKey(key); -+ } -+ DisableThreadLibraryCalls(dll); -+ } else if (reason == DLL_PROCESS_DETACH) { -+ if (pulse_ctx) { -+ pa_context_disconnect(pulse_ctx); -+ pa_context_unref(pulse_ctx); -+ } -+ if (pulse_ml) -+ pa_mainloop_quit(pulse_ml, 0); -+ CloseHandle(pulse_thread); -+ } -+ return TRUE; -+} -+ -+ -+static const WCHAR defaultW[] = {'P','u','l','s','e','a','u','d','i','o',0}; -+ -+/* Following pulseaudio design here, mainloop has the lock taken whenever -+ * it is handling something for pulse, and the lock is required whenever -+ * doing any pa_* call that can affect the state in any way -+ * -+ * pa_cond_wait is used when waiting on results, because the mainloop needs -+ * the same lock taken to affect the state -+ * -+ * This is basically the same as the pa_threaded_mainloop implementation, -+ * but that cannot be used because it uses pthread_create directly -+ * -+ * pa_threaded_mainloop_(un)lock -> pthread_mutex_(un)lock -+ * pa_threaded_mainloop_signal -> pthread_cond_signal -+ * pa_threaded_mainloop_wait -> pthread_cond_wait -+ */ -+ -+static int pulse_poll_func(struct pollfd *ufds, unsigned long nfds, int timeout, void *userdata) { -+ int r; -+ pthread_mutex_unlock(&pulse_lock); -+ r = poll(ufds, nfds, timeout); -+ pthread_mutex_lock(&pulse_lock); -+ return r; -+} -+ -+static DWORD CALLBACK pulse_mainloop_thread(void *tmp) { -+ int ret; -+ pulse_ml = pa_mainloop_new(); -+ pa_mainloop_set_poll_func(pulse_ml, pulse_poll_func, NULL); -+ pthread_mutex_lock(&pulse_lock); -+ pthread_cond_signal(&pulse_cond); -+ pa_mainloop_run(pulse_ml, &ret); -+ pthread_mutex_unlock(&pulse_lock); -+ pa_mainloop_free(pulse_ml); -+ CloseHandle(pulse_thread); -+ return ret; -+} -+ -+static void pulse_contextcallback(pa_context *c, void *userdata); -+ -+static HRESULT pulse_connect(void) -+{ -+ int len; -+ WCHAR path[PATH_MAX], *name; -+ char *str; -+ -+ if (!pulse_thread) -+ { -+ if (!(pulse_thread = CreateThread(NULL, 0, pulse_mainloop_thread, NULL, 0, NULL))) -+ { -+ ERR("Failed to create mainloop thread."); -+ return E_FAIL; -+ } -+ SetThreadPriority(pulse_thread, THREAD_PRIORITY_TIME_CRITICAL); -+ pthread_cond_wait(&pulse_cond, &pulse_lock); -+ } -+ -+ if (pulse_ctx && PA_CONTEXT_IS_GOOD(pa_context_get_state(pulse_ctx))) -+ return S_OK; -+ if (pulse_ctx) -+ pa_context_unref(pulse_ctx); -+ -+ GetModuleFileNameW(NULL, path, sizeof(path)/sizeof(*path)); -+ name = strrchrW(path, '\\'); -+ if (!name) -+ name = path; -+ else -+ name++; -+ len = WideCharToMultiByte(CP_UNIXCP, 0, name, -1, NULL, 0, NULL, NULL); -+ str = pa_xmalloc(len); -+ WideCharToMultiByte(CP_UNIXCP, 0, name, -1, str, len, NULL, NULL); -+ TRACE("Name: %s\n", str); -+ pulse_ctx = pa_context_new(pa_mainloop_get_api(pulse_ml), str); -+ pa_xfree(str); -+ if (!pulse_ctx) { -+ ERR("Failed to create context\n"); -+ return E_FAIL; -+ } -+ -+ pa_context_set_state_callback(pulse_ctx, pulse_contextcallback, NULL); -+ -+ TRACE("libpulse protocol version: %u. API Version %u\n", pa_context_get_protocol_version(pulse_ctx), PA_API_VERSION); -+ if (pa_context_connect(pulse_ctx, NULL, 0, NULL) < 0) -+ goto fail; -+ -+ /* Wait for connection */ -+ while (pthread_cond_wait(&pulse_cond, &pulse_lock)) { -+ pa_context_state_t state = pa_context_get_state(pulse_ctx); -+ -+ if (state == PA_CONTEXT_FAILED || state == PA_CONTEXT_TERMINATED) -+ goto fail; -+ -+ if (state == PA_CONTEXT_READY) -+ break; -+ } -+ -+ TRACE("Connected to server %s with protocol version: %i.\n", -+ pa_context_get_server(pulse_ctx), -+ pa_context_get_server_protocol_version(pulse_ctx)); -+ return S_OK; -+ -+fail: -+ pa_context_unref(pulse_ctx); -+ pulse_ctx = NULL; -+ return E_FAIL; -+} -+ -+static void pulse_contextcallback(pa_context *c, void *userdata) { -+ switch (pa_context_get_state(c)) { -+ default: -+ FIXME("Unhandled state: %i\n", pa_context_get_state(c)); -+ case PA_CONTEXT_CONNECTING: -+ case PA_CONTEXT_UNCONNECTED: -+ case PA_CONTEXT_AUTHORIZING: -+ case PA_CONTEXT_SETTING_NAME: -+ case PA_CONTEXT_TERMINATED: -+ TRACE("State change to %i\n", pa_context_get_state(c)); -+ return; -+ -+ case PA_CONTEXT_READY: -+ TRACE("Ready\n"); -+ break; -+ -+ case PA_CONTEXT_FAILED: -+ ERR("Context failed: %s\n", pa_strerror(pa_context_errno(c))); -+ break; -+ } -+ pthread_cond_signal(&pulse_cond); -+} -+ -+HRESULT WINAPI AUDDRV_GetEndpointIDs(EDataFlow flow, WCHAR ***ids, void ***keys, -+ UINT *num, UINT *def_index) -+{ -+ HRESULT hr = S_OK; -+ TRACE("%d %p %p %p\n", flow, ids, num, def_index); -+ -+ pthread_mutex_lock(&pulse_lock); -+ hr = pulse_connect(); -+ pthread_mutex_unlock(&pulse_lock); -+ if (FAILED(hr)) -+ return hr; -+ *num = 1; -+ *def_index = 0; -+ -+ *ids = HeapAlloc(GetProcessHeap(), 0, sizeof(WCHAR *)); -+ if (!*ids) -+ return E_OUTOFMEMORY; -+ -+ (*ids)[0] = HeapAlloc(GetProcessHeap(), 0, sizeof(defaultW)); -+ if (!(*ids)[0]) { -+ HeapFree(GetProcessHeap(), 0, *ids); -+ return E_OUTOFMEMORY; -+ } -+ -+ lstrcpyW((*ids)[0], defaultW); -+ -+ *keys = HeapAlloc(GetProcessHeap(), 0, sizeof(void *)); -+ (*keys)[0] = NULL; -+ -+ return S_OK; -+} -+ -+int WINAPI AUDDRV_GetPriority(void) -+{ -+ HRESULT hr; -+ pthread_mutex_lock(&pulse_lock); -+ hr = pulse_connect(); -+ pthread_mutex_unlock(&pulse_lock); -+ return SUCCEEDED(hr) ? 3 : 0; -+} -+ -+HRESULT WINAPI AUDDRV_GetAudioEndpoint(void *key, IMMDevice *dev, -+ EDataFlow dataflow, IAudioClient **out) -+{ -+ TRACE("%p %p %d %p\n", key, dev, dataflow, out); -+ if (dataflow != eRender && dataflow != eCapture) -+ return E_UNEXPECTED; -+ -+ *out = NULL; -+ return E_NOTIMPL; -+} -+ -+HRESULT WINAPI AUDDRV_GetAudioSessionManager(IMMDevice *device, -+ IAudioSessionManager2 **out) -+{ -+ *out = NULL; -+ return E_NOTIMPL; -+} -diff --git a/dlls/winepulse.drv/winepulse.drv.spec b/dlls/winepulse.drv/winepulse.drv.spec -new file mode 100644 -index 0000000..a089166 ---- /dev/null -+++ b/dlls/winepulse.drv/winepulse.drv.spec -@@ -0,0 +1,5 @@ -+# MMDevAPI driver functions -+@ stdcall -private GetPriority() AUDDRV_GetPriority -+@ stdcall -private GetEndpointIDs(long ptr ptr ptr ptr) AUDDRV_GetEndpointIDs -+@ stdcall -private GetAudioEndpoint(ptr ptr long ptr) AUDDRV_GetAudioEndpoint -+@ stdcall -private GetAudioSessionManager(ptr ptr) AUDDRV_GetAudioSessionManager --- -1.8.5.3 - - -From a2d17058439eb34116719c853f95bf16e87ccf92 Mon Sep 17 00:00:00 2001 -From: Maarten Lankhorst -Date: Sun, 19 Jan 2014 11:34:46 +0100 -Subject: winepulse: Add format and period probing - ---- - dlls/winepulse.drv/mmdevdrv.c | 128 ++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 128 insertions(+) - -diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c -index d187bdc..40db26d 100644 ---- a/dlls/winepulse.drv/mmdevdrv.c -+++ b/dlls/winepulse.drv/mmdevdrv.c -@@ -70,6 +70,10 @@ static HANDLE pulse_thread; - static pthread_mutex_t pulse_lock = PTHREAD_MUTEX_INITIALIZER; - static pthread_cond_t pulse_cond = PTHREAD_COND_INITIALIZER; - -+/* Mixer format + period times */ -+static WAVEFORMATEXTENSIBLE pulse_fmt[2]; -+static REFERENCE_TIME pulse_min_period[2], pulse_def_period[2]; -+ - static DWORD pulse_stream_volume; - - const WCHAR pulse_keyW[] = {'S','o','f','t','w','a','r','e','\\', -@@ -139,6 +143,121 @@ static DWORD CALLBACK pulse_mainloop_thread(void *tmp) { - } - - static void pulse_contextcallback(pa_context *c, void *userdata); -+static void pulse_stream_state(pa_stream *s, void *user); -+ -+static const enum pa_channel_position pulse_pos_from_wfx[] = { -+ PA_CHANNEL_POSITION_FRONT_LEFT, -+ PA_CHANNEL_POSITION_FRONT_RIGHT, -+ PA_CHANNEL_POSITION_FRONT_CENTER, -+ PA_CHANNEL_POSITION_LFE, -+ PA_CHANNEL_POSITION_REAR_LEFT, -+ PA_CHANNEL_POSITION_REAR_RIGHT, -+ PA_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER, -+ PA_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER, -+ PA_CHANNEL_POSITION_REAR_CENTER, -+ PA_CHANNEL_POSITION_SIDE_LEFT, -+ PA_CHANNEL_POSITION_SIDE_RIGHT, -+ PA_CHANNEL_POSITION_TOP_CENTER, -+ PA_CHANNEL_POSITION_TOP_FRONT_LEFT, -+ PA_CHANNEL_POSITION_TOP_FRONT_CENTER, -+ PA_CHANNEL_POSITION_TOP_FRONT_RIGHT, -+ PA_CHANNEL_POSITION_TOP_REAR_LEFT, -+ PA_CHANNEL_POSITION_TOP_REAR_CENTER, -+ PA_CHANNEL_POSITION_TOP_REAR_RIGHT -+}; -+ -+static void pulse_probe_settings(int render, WAVEFORMATEXTENSIBLE *fmt) { -+ WAVEFORMATEX *wfx = &fmt->Format; -+ pa_stream *stream; -+ pa_channel_map map; -+ pa_sample_spec ss; -+ pa_buffer_attr attr; -+ int ret, i; -+ unsigned int length = 0; -+ -+ pa_channel_map_init_auto(&map, 2, PA_CHANNEL_MAP_ALSA); -+ ss.rate = 48000; -+ ss.format = PA_SAMPLE_FLOAT32LE; -+ ss.channels = map.channels; -+ -+ attr.maxlength = -1; -+ attr.tlength = -1; -+ attr.minreq = attr.fragsize = pa_frame_size(&ss); -+ attr.prebuf = 0; -+ -+ stream = pa_stream_new(pulse_ctx, "format test stream", &ss, &map); -+ if (stream) -+ pa_stream_set_state_callback(stream, pulse_stream_state, NULL); -+ if (!stream) -+ ret = -1; -+ else if (render) -+ ret = pa_stream_connect_playback(stream, NULL, &attr, -+ PA_STREAM_START_CORKED|PA_STREAM_FIX_RATE|PA_STREAM_FIX_CHANNELS|PA_STREAM_EARLY_REQUESTS, NULL, NULL); -+ else -+ ret = pa_stream_connect_record(stream, NULL, &attr, PA_STREAM_START_CORKED|PA_STREAM_FIX_RATE|PA_STREAM_FIX_CHANNELS|PA_STREAM_EARLY_REQUESTS); -+ if (ret >= 0) { -+ while (pa_stream_get_state(stream) == PA_STREAM_CREATING) -+ pthread_cond_wait(&pulse_cond, &pulse_lock); -+ if (pa_stream_get_state(stream) == PA_STREAM_READY) { -+ ss = *pa_stream_get_sample_spec(stream); -+ map = *pa_stream_get_channel_map(stream); -+ if (render) -+ length = pa_stream_get_buffer_attr(stream)->minreq; -+ else -+ length = pa_stream_get_buffer_attr(stream)->fragsize; -+ pa_stream_disconnect(stream); -+ while (pa_stream_get_state(stream) == PA_STREAM_READY) -+ pthread_cond_wait(&pulse_cond, &pulse_lock); -+ } -+ } -+ if (stream) -+ pa_stream_unref(stream); -+ if (length) -+ pulse_def_period[!render] = pulse_min_period[!render] = pa_bytes_to_usec(10 * length, &ss); -+ else -+ pulse_min_period[!render] = MinimumPeriod; -+ if (pulse_def_period[!render] <= DefaultPeriod) -+ pulse_def_period[!render] = DefaultPeriod; -+ -+ wfx->wFormatTag = WAVE_FORMAT_EXTENSIBLE; -+ wfx->cbSize = sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX); -+ wfx->nChannels = ss.channels; -+ wfx->wBitsPerSample = 8 * pa_sample_size_of_format(ss.format); -+ wfx->nSamplesPerSec = ss.rate; -+ wfx->nBlockAlign = pa_frame_size(&ss); -+ wfx->nAvgBytesPerSec = wfx->nSamplesPerSec * wfx->nBlockAlign; -+ if (ss.format != PA_SAMPLE_S24_32LE) -+ fmt->Samples.wValidBitsPerSample = wfx->wBitsPerSample; -+ else -+ fmt->Samples.wValidBitsPerSample = 24; -+ if (ss.format == PA_SAMPLE_FLOAT32LE) -+ fmt->SubFormat = KSDATAFORMAT_SUBTYPE_IEEE_FLOAT; -+ else -+ fmt->SubFormat = KSDATAFORMAT_SUBTYPE_PCM; -+ -+ fmt->dwChannelMask = 0; -+ for (i = 0; i < map.channels; ++i) -+ switch (map.map[i]) { -+ default: FIXME("Unhandled channel %s\n", pa_channel_position_to_string(map.map[i])); break; -+ case PA_CHANNEL_POSITION_FRONT_LEFT: fmt->dwChannelMask |= SPEAKER_FRONT_LEFT; break; -+ case PA_CHANNEL_POSITION_MONO: -+ case PA_CHANNEL_POSITION_FRONT_CENTER: fmt->dwChannelMask |= SPEAKER_FRONT_CENTER; break; -+ case PA_CHANNEL_POSITION_FRONT_RIGHT: fmt->dwChannelMask |= SPEAKER_FRONT_RIGHT; break; -+ case PA_CHANNEL_POSITION_REAR_LEFT: fmt->dwChannelMask |= SPEAKER_BACK_LEFT; break; -+ case PA_CHANNEL_POSITION_REAR_CENTER: fmt->dwChannelMask |= SPEAKER_BACK_CENTER; break; -+ case PA_CHANNEL_POSITION_REAR_RIGHT: fmt->dwChannelMask |= SPEAKER_BACK_RIGHT; break; -+ case PA_CHANNEL_POSITION_LFE: fmt->dwChannelMask |= SPEAKER_LOW_FREQUENCY; break; -+ case PA_CHANNEL_POSITION_SIDE_LEFT: fmt->dwChannelMask |= SPEAKER_SIDE_LEFT; break; -+ case PA_CHANNEL_POSITION_SIDE_RIGHT: fmt->dwChannelMask |= SPEAKER_SIDE_RIGHT; break; -+ case PA_CHANNEL_POSITION_TOP_CENTER: fmt->dwChannelMask |= SPEAKER_TOP_CENTER; break; -+ case PA_CHANNEL_POSITION_TOP_FRONT_LEFT: fmt->dwChannelMask |= SPEAKER_TOP_FRONT_LEFT; break; -+ case PA_CHANNEL_POSITION_TOP_FRONT_CENTER: fmt->dwChannelMask |= SPEAKER_TOP_FRONT_CENTER; break; -+ case PA_CHANNEL_POSITION_TOP_FRONT_RIGHT: fmt->dwChannelMask |= SPEAKER_TOP_FRONT_RIGHT; break; -+ case PA_CHANNEL_POSITION_TOP_REAR_LEFT: fmt->dwChannelMask |= SPEAKER_TOP_BACK_LEFT; break; -+ case PA_CHANNEL_POSITION_TOP_REAR_CENTER: fmt->dwChannelMask |= SPEAKER_TOP_BACK_CENTER; break; -+ case PA_CHANNEL_POSITION_TOP_REAR_RIGHT: fmt->dwChannelMask |= SPEAKER_TOP_BACK_RIGHT; break; -+ } -+} - - static HRESULT pulse_connect(void) - { -@@ -199,6 +318,8 @@ static HRESULT pulse_connect(void) - TRACE("Connected to server %s with protocol version: %i.\n", - pa_context_get_server(pulse_ctx), - pa_context_get_server_protocol_version(pulse_ctx)); -+ pulse_probe_settings(1, &pulse_fmt[0]); -+ pulse_probe_settings(0, &pulse_fmt[1]); - return S_OK; - - fail: -@@ -230,6 +351,13 @@ static void pulse_contextcallback(pa_context *c, void *userdata) { - pthread_cond_signal(&pulse_cond); - } - -+static void pulse_stream_state(pa_stream *s, void *user) -+{ -+ pa_stream_state_t state = pa_stream_get_state(s); -+ TRACE("Stream state changed to %i\n", state); -+ pthread_cond_signal(&pulse_cond); -+} -+ - HRESULT WINAPI AUDDRV_GetEndpointIDs(EDataFlow flow, WCHAR ***ids, void ***keys, - UINT *num, UINT *def_index) - { --- -1.8.5.3 - - -From b9b7ba4d5fc675b14b7c4b013a0f7d106e7b2963 Mon Sep 17 00:00:00 2001 -From: Maarten Lankhorst -Date: Sun, 19 Jan 2014 11:34:46 +0100 -Subject: winepulse: Add audioclient - ---- -Without AudioRenderClient and AudioCaptureClient it won't work, -but it's easier to review ---- - dlls/winepulse.drv/mmdevdrv.c | 1041 ++++++++++++++++++++++++++++++++++++++++- - 1 file changed, 1040 insertions(+), 1 deletion(-) - -diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c -index 40db26d..37d85ff 100644 ---- a/dlls/winepulse.drv/mmdevdrv.c -+++ b/dlls/winepulse.drv/mmdevdrv.c -@@ -103,9 +103,55 @@ BOOL WINAPI DllMain(HINSTANCE dll, DWORD reason, void *reserved) - return TRUE; - } - -+typedef struct ACImpl ACImpl; -+ -+typedef struct _ACPacket { -+ struct list entry; -+ UINT64 qpcpos; -+ BYTE *data; -+ UINT32 discont; -+} ACPacket; -+ -+struct ACImpl { -+ IAudioClient IAudioClient_iface; -+ IAudioRenderClient IAudioRenderClient_iface; -+ IAudioCaptureClient IAudioCaptureClient_iface; -+ IAudioClock IAudioClock_iface; -+ IAudioClock2 IAudioClock2_iface; -+ IAudioStreamVolume IAudioStreamVolume_iface; -+ IMMDevice *parent; -+ struct list entry; -+ float vol[PA_CHANNELS_MAX]; -+ -+ LONG ref; -+ EDataFlow dataflow; -+ DWORD flags; -+ AUDCLNT_SHAREMODE share; -+ HANDLE event; -+ -+ UINT32 bufsize_frames, bufsize_bytes, locked, capture_period, pad, started, peek_ofs; -+ void *locked_ptr, *tmp_buffer; -+ -+ pa_stream *stream; -+ pa_sample_spec ss; -+ pa_channel_map map; -+ -+ INT64 clock_lastpos, clock_written; -+ pa_usec_t clock_pulse; -+ -+ struct list packet_free_head; -+ struct list packet_filled_head; -+}; - - static const WCHAR defaultW[] = {'P','u','l','s','e','a','u','d','i','o',0}; - -+static const IAudioClientVtbl AudioClient_Vtbl; -+ -+static inline ACImpl *impl_from_IAudioClient(IAudioClient *iface) -+{ -+ return CONTAINING_RECORD(iface, ACImpl, IAudioClient_iface); -+} -+ - /* Following pulseaudio design here, mainloop has the lock taken whenever - * it is handling something for pulse, and the lock is required whenever - * doing any pa_* call that can affect the state in any way -@@ -351,6 +397,192 @@ static void pulse_contextcallback(pa_context *c, void *userdata) { - pthread_cond_signal(&pulse_cond); - } - -+static HRESULT pulse_stream_valid(ACImpl *This) { -+ if (!This->stream) -+ return AUDCLNT_E_NOT_INITIALIZED; -+ if (!This->stream || pa_stream_get_state(This->stream) != PA_STREAM_READY) -+ return AUDCLNT_E_DEVICE_INVALIDATED; -+ return S_OK; -+} -+ -+static void dump_attr(const pa_buffer_attr *attr) { -+ TRACE("maxlength: %u\n", attr->maxlength); -+ TRACE("minreq: %u\n", attr->minreq); -+ TRACE("fragsize: %u\n", attr->fragsize); -+ TRACE("tlength: %u\n", attr->tlength); -+ TRACE("prebuf: %u\n", attr->prebuf); -+} -+ -+static void pulse_op_cb(pa_stream *s, int success, void *user) { -+ TRACE("Success: %i\n", success); -+ *(int*)user = success; -+ pthread_cond_signal(&pulse_cond); -+} -+ -+static void pulse_attr_update(pa_stream *s, void *user) { -+ const pa_buffer_attr *attr = pa_stream_get_buffer_attr(s); -+ TRACE("New attributes or device moved:\n"); -+ dump_attr(attr); -+} -+ -+static void pulse_wr_callback(pa_stream *s, size_t bytes, void *userdata) -+{ -+ ACImpl *This = userdata; -+ pa_usec_t time; -+ UINT32 oldpad = This->pad; -+ -+ if (bytes < This->bufsize_bytes) -+ This->pad = This->bufsize_bytes - bytes; -+ else -+ This->pad = 0; -+ -+ assert(oldpad >= This->pad); -+ -+ if (0 && This->pad && pa_stream_get_time(This->stream, &time) >= 0) -+ This->clock_pulse = time; -+ else -+ This->clock_pulse = PA_USEC_INVALID; -+ -+ This->clock_written += oldpad - This->pad; -+ TRACE("New pad: %u (-%u)\n", This->pad / pa_frame_size(&This->ss), (oldpad - This->pad) / pa_frame_size(&This->ss)); -+ -+ if (This->event) -+ SetEvent(This->event); -+} -+ -+static void pulse_underflow_callback(pa_stream *s, void *userdata) -+{ -+ ACImpl *This = userdata; -+ This->clock_pulse = PA_USEC_INVALID; -+ WARN("Underflow\n"); -+} -+ -+/* Latency is periodically updated even when nothing is played, -+ * because of PA_STREAM_AUTO_TIMING_UPDATE so use it as timer -+ * -+ * Perfect for passing all tests :) -+ */ -+static void pulse_latency_callback(pa_stream *s, void *userdata) -+{ -+ ACImpl *This = userdata; -+ if (!This->pad && This->event) -+ SetEvent(This->event); -+} -+ -+static void pulse_started_callback(pa_stream *s, void *userdata) -+{ -+ ACImpl *This = userdata; -+ pa_usec_t time; -+ -+ TRACE("(Re)started playing\n"); -+ assert(This->clock_pulse == PA_USEC_INVALID); -+ if (0 && pa_stream_get_time(This->stream, &time) >= 0) -+ This->clock_pulse = time; -+ if (This->event) -+ SetEvent(This->event); -+} -+ -+static void pulse_rd_loop(ACImpl *This, size_t bytes) -+{ -+ while (bytes >= This->capture_period) { -+ ACPacket *p, *next; -+ LARGE_INTEGER stamp, freq; -+ BYTE *dst, *src; -+ UINT32 src_len, copy, rem = This->capture_period; -+ if (!(p = (ACPacket*)list_head(&This->packet_free_head))) { -+ p = (ACPacket*)list_head(&This->packet_filled_head); -+ if (!p->discont) { -+ next = (ACPacket*)p->entry.next; -+ next->discont = 1; -+ } else -+ p = (ACPacket*)list_tail(&This->packet_filled_head); -+ assert(This->pad == This->bufsize_bytes); -+ } else { -+ assert(This->pad < This->bufsize_bytes); -+ This->pad += This->capture_period; -+ assert(This->pad <= This->bufsize_bytes); -+ } -+ QueryPerformanceCounter(&stamp); -+ QueryPerformanceFrequency(&freq); -+ p->qpcpos = (stamp.QuadPart * (INT64)10000000) / freq.QuadPart; -+ p->discont = 0; -+ list_remove(&p->entry); -+ list_add_tail(&This->packet_filled_head, &p->entry); -+ -+ dst = p->data; -+ while (rem) { -+ pa_stream_peek(This->stream, (const void**)&src, &src_len); -+ assert(src_len && src_len <= bytes); -+ assert(This->peek_ofs < src_len); -+ src += This->peek_ofs; -+ src_len -= This->peek_ofs; -+ -+ copy = rem; -+ if (copy > src_len) -+ copy = src_len; -+ memcpy(dst, src, rem); -+ src += copy; -+ src_len -= copy; -+ dst += copy; -+ rem -= copy; -+ -+ if (!src_len) { -+ This->peek_ofs = 0; -+ pa_stream_drop(This->stream); -+ } else -+ This->peek_ofs += copy; -+ } -+ bytes -= This->capture_period; -+ } -+} -+ -+static void pulse_rd_drop(ACImpl *This, size_t bytes) -+{ -+ while (bytes >= This->capture_period) { -+ UINT32 src_len, copy, rem = This->capture_period; -+ while (rem) { -+ const void *src; -+ pa_stream_peek(This->stream, &src, &src_len); -+ assert(src_len && src_len <= bytes); -+ assert(This->peek_ofs < src_len); -+ src_len -= This->peek_ofs; -+ -+ copy = rem; -+ if (copy > src_len) -+ copy = src_len; -+ -+ src_len -= copy; -+ rem -= copy; -+ -+ if (!src_len) { -+ This->peek_ofs = 0; -+ pa_stream_drop(This->stream); -+ } else -+ This->peek_ofs += copy; -+ bytes -= copy; -+ } -+ } -+} -+ -+static void pulse_rd_callback(pa_stream *s, size_t bytes, void *userdata) -+{ -+ ACImpl *This = userdata; -+ -+ TRACE("Readable total: %u, fragsize: %u\n", bytes, pa_stream_get_buffer_attr(s)->fragsize); -+ assert(bytes >= This->peek_ofs); -+ bytes -= This->peek_ofs; -+ if (bytes < This->capture_period) -+ return; -+ -+ if (This->started) -+ pulse_rd_loop(This, bytes); -+ else -+ pulse_rd_drop(This, bytes); -+ -+ if (This->event) -+ SetEvent(This->event); -+} -+ - static void pulse_stream_state(pa_stream *s, void *user) - { - pa_stream_state_t state = pa_stream_get_state(s); -@@ -358,6 +590,53 @@ static void pulse_stream_state(pa_stream *s, void *user) - pthread_cond_signal(&pulse_cond); - } - -+static HRESULT pulse_stream_connect(ACImpl *This, UINT32 period_bytes) { -+ int ret; -+ char buffer[64]; -+ static LONG number; -+ pa_buffer_attr attr; -+ if (This->stream) { -+ pa_stream_disconnect(This->stream); -+ while (pa_stream_get_state(This->stream) == PA_STREAM_READY) -+ pthread_cond_wait(&pulse_cond, &pulse_lock); -+ pa_stream_unref(This->stream); -+ } -+ ret = InterlockedIncrement(&number); -+ sprintf(buffer, "audio stream #%i", ret); -+ This->stream = pa_stream_new(pulse_ctx, buffer, &This->ss, &This->map); -+ pa_stream_set_state_callback(This->stream, pulse_stream_state, This); -+ pa_stream_set_buffer_attr_callback(This->stream, pulse_attr_update, This); -+ pa_stream_set_moved_callback(This->stream, pulse_attr_update, This); -+ -+ /* Pulseaudio will fill in correct values */ -+ attr.minreq = attr.fragsize = period_bytes; -+ attr.maxlength = attr.tlength = This->bufsize_bytes; -+ attr.prebuf = pa_frame_size(&This->ss); -+ dump_attr(&attr); -+ if (This->dataflow == eRender) -+ ret = pa_stream_connect_playback(This->stream, NULL, &attr, -+ PA_STREAM_START_CORKED|PA_STREAM_START_UNMUTED|PA_STREAM_AUTO_TIMING_UPDATE|PA_STREAM_INTERPOLATE_TIMING|PA_STREAM_EARLY_REQUESTS, NULL, NULL); -+ else -+ ret = pa_stream_connect_record(This->stream, NULL, &attr, -+ PA_STREAM_START_CORKED|PA_STREAM_START_UNMUTED|PA_STREAM_AUTO_TIMING_UPDATE|PA_STREAM_INTERPOLATE_TIMING|PA_STREAM_EARLY_REQUESTS); -+ if (ret < 0) { -+ WARN("Returns %i\n", ret); -+ return AUDCLNT_E_ENDPOINT_CREATE_FAILED; -+ } -+ while (pa_stream_get_state(This->stream) == PA_STREAM_CREATING) -+ pthread_cond_wait(&pulse_cond, &pulse_lock); -+ if (pa_stream_get_state(This->stream) != PA_STREAM_READY) -+ return AUDCLNT_E_ENDPOINT_CREATE_FAILED; -+ -+ if (This->dataflow == eRender) { -+ pa_stream_set_write_callback(This->stream, pulse_wr_callback, This); -+ pa_stream_set_underflow_callback(This->stream, pulse_underflow_callback, This); -+ pa_stream_set_started_callback(This->stream, pulse_started_callback, This); -+ } else -+ pa_stream_set_read_callback(This->stream, pulse_rd_callback, This); -+ return S_OK; -+} -+ - HRESULT WINAPI AUDDRV_GetEndpointIDs(EDataFlow flow, WCHAR ***ids, void ***keys, - UINT *num, UINT *def_index) - { -@@ -402,14 +681,774 @@ int WINAPI AUDDRV_GetPriority(void) - HRESULT WINAPI AUDDRV_GetAudioEndpoint(void *key, IMMDevice *dev, - EDataFlow dataflow, IAudioClient **out) - { -+ HRESULT hr; -+ ACImpl *This; -+ int i; -+ - TRACE("%p %p %d %p\n", key, dev, dataflow, out); - if (dataflow != eRender && dataflow != eCapture) - return E_UNEXPECTED; - - *out = NULL; -- return E_NOTIMPL; -+ pthread_mutex_lock(&pulse_lock); -+ hr = pulse_connect(); -+ pthread_mutex_unlock(&pulse_lock); -+ if (FAILED(hr)) -+ return hr; -+ -+ This = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*This)); -+ if (!This) -+ return E_OUTOFMEMORY; -+ -+ This->IAudioClient_iface.lpVtbl = &AudioClient_Vtbl; -+ This->dataflow = dataflow; -+ This->parent = dev; -+ This->clock_pulse = PA_USEC_INVALID; -+ for (i = 0; i < PA_CHANNELS_MAX; ++i) -+ This->vol[i] = 1.f; -+ IMMDevice_AddRef(This->parent); -+ -+ *out = &This->IAudioClient_iface; -+ IAudioClient_AddRef(&This->IAudioClient_iface); -+ -+ return S_OK; -+} -+ -+static HRESULT WINAPI AudioClient_QueryInterface(IAudioClient *iface, -+ REFIID riid, void **ppv) -+{ -+ TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); -+ -+ if (!ppv) -+ return E_POINTER; -+ *ppv = NULL; -+ if (IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IAudioClient)) -+ *ppv = iface; -+ if (*ppv) { -+ IUnknown_AddRef((IUnknown*)*ppv); -+ return S_OK; -+ } -+ WARN("Unknown interface %s\n", debugstr_guid(riid)); -+ return E_NOINTERFACE; -+} -+ -+static ULONG WINAPI AudioClient_AddRef(IAudioClient *iface) -+{ -+ ACImpl *This = impl_from_IAudioClient(iface); -+ ULONG ref; -+ ref = InterlockedIncrement(&This->ref); -+ TRACE("(%p) Refcount now %u\n", This, ref); -+ return ref; -+} -+ -+static ULONG WINAPI AudioClient_Release(IAudioClient *iface) -+{ -+ ACImpl *This = impl_from_IAudioClient(iface); -+ ULONG ref; -+ ref = InterlockedDecrement(&This->ref); -+ TRACE("(%p) Refcount now %u\n", This, ref); -+ if (!ref) { -+ if (This->stream) { -+ pthread_mutex_lock(&pulse_lock); -+ if (PA_STREAM_IS_GOOD(pa_stream_get_state(This->stream))) { -+ pa_stream_disconnect(This->stream); -+ while (PA_STREAM_IS_GOOD(pa_stream_get_state(This->stream))) -+ pthread_cond_wait(&pulse_cond, &pulse_lock); -+ } -+ pa_stream_unref(This->stream); -+ This->stream = NULL; -+ list_remove(&This->entry); -+ pthread_mutex_unlock(&pulse_lock); -+ } -+ IMMDevice_Release(This->parent); -+ HeapFree(GetProcessHeap(), 0, This->tmp_buffer); -+ HeapFree(GetProcessHeap(), 0, This); -+ } -+ return ref; -+} -+ -+static void dump_fmt(const WAVEFORMATEX *fmt) -+{ -+ TRACE("wFormatTag: 0x%x (", fmt->wFormatTag); -+ switch(fmt->wFormatTag) { -+ case WAVE_FORMAT_PCM: -+ TRACE("WAVE_FORMAT_PCM"); -+ break; -+ case WAVE_FORMAT_IEEE_FLOAT: -+ TRACE("WAVE_FORMAT_IEEE_FLOAT"); -+ break; -+ case WAVE_FORMAT_EXTENSIBLE: -+ TRACE("WAVE_FORMAT_EXTENSIBLE"); -+ break; -+ default: -+ TRACE("Unknown"); -+ break; -+ } -+ TRACE(")\n"); -+ -+ TRACE("nChannels: %u\n", fmt->nChannels); -+ TRACE("nSamplesPerSec: %u\n", fmt->nSamplesPerSec); -+ TRACE("nAvgBytesPerSec: %u\n", fmt->nAvgBytesPerSec); -+ TRACE("nBlockAlign: %u\n", fmt->nBlockAlign); -+ TRACE("wBitsPerSample: %u\n", fmt->wBitsPerSample); -+ TRACE("cbSize: %u\n", fmt->cbSize); -+ -+ if (fmt->wFormatTag == WAVE_FORMAT_EXTENSIBLE) { -+ WAVEFORMATEXTENSIBLE *fmtex = (void*)fmt; -+ TRACE("dwChannelMask: %08x\n", fmtex->dwChannelMask); -+ TRACE("Samples: %04x\n", fmtex->Samples.wReserved); -+ TRACE("SubFormat: %s\n", wine_dbgstr_guid(&fmtex->SubFormat)); -+ } -+} -+ -+static WAVEFORMATEX *clone_format(const WAVEFORMATEX *fmt) -+{ -+ WAVEFORMATEX *ret; -+ size_t size; -+ -+ if (fmt->wFormatTag == WAVE_FORMAT_EXTENSIBLE) -+ size = sizeof(WAVEFORMATEXTENSIBLE); -+ else -+ size = sizeof(WAVEFORMATEX); -+ -+ ret = CoTaskMemAlloc(size); -+ if (!ret) -+ return NULL; -+ -+ memcpy(ret, fmt, size); -+ -+ ret->cbSize = size - sizeof(WAVEFORMATEX); -+ -+ return ret; -+} -+ -+static DWORD get_channel_mask(unsigned int channels) -+{ -+ switch(channels) { -+ case 0: -+ return 0; -+ case 1: -+ return SPEAKER_FRONT_CENTER; -+ case 2: -+ return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT; -+ case 3: -+ return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | -+ SPEAKER_LOW_FREQUENCY; -+ case 4: -+ return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT | -+ SPEAKER_BACK_RIGHT; -+ case 5: -+ return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT | -+ SPEAKER_BACK_RIGHT | SPEAKER_LOW_FREQUENCY; -+ case 6: -+ return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT | -+ SPEAKER_BACK_RIGHT | SPEAKER_LOW_FREQUENCY | SPEAKER_FRONT_CENTER; -+ case 7: -+ return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT | -+ SPEAKER_BACK_RIGHT | SPEAKER_LOW_FREQUENCY | SPEAKER_FRONT_CENTER | -+ SPEAKER_BACK_CENTER; -+ case 8: -+ return SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT | -+ SPEAKER_BACK_RIGHT | SPEAKER_LOW_FREQUENCY | SPEAKER_FRONT_CENTER | -+ SPEAKER_SIDE_LEFT | SPEAKER_SIDE_RIGHT; -+ } -+ FIXME("Unknown speaker configuration: %u\n", channels); -+ return 0; -+} -+ -+static HRESULT pulse_spec_from_waveformat(ACImpl *This, const WAVEFORMATEX *fmt) -+{ -+ pa_channel_map_init(&This->map); -+ This->ss.rate = fmt->nSamplesPerSec; -+ This->ss.format = PA_SAMPLE_INVALID; -+ switch(fmt->wFormatTag) { -+ case WAVE_FORMAT_IEEE_FLOAT: -+ if (!fmt->nChannels || fmt->nChannels > 2 || fmt->wBitsPerSample != 32) -+ break; -+ This->ss.format = PA_SAMPLE_FLOAT32LE; -+ pa_channel_map_init_auto(&This->map, fmt->nChannels, PA_CHANNEL_MAP_ALSA); -+ break; -+ case WAVE_FORMAT_PCM: -+ if (!fmt->nChannels || fmt->nChannels > 2) -+ break; -+ if (fmt->wBitsPerSample == 8) -+ This->ss.format = PA_SAMPLE_U8; -+ else if (fmt->wBitsPerSample == 16) -+ This->ss.format = PA_SAMPLE_S16LE; -+ pa_channel_map_init_auto(&This->map, fmt->nChannels, PA_CHANNEL_MAP_ALSA); -+ break; -+ case WAVE_FORMAT_EXTENSIBLE: { -+ WAVEFORMATEXTENSIBLE *wfe = (WAVEFORMATEXTENSIBLE*)fmt; -+ DWORD mask = wfe->dwChannelMask; -+ DWORD i = 0, j; -+ if (fmt->cbSize != (sizeof(*wfe) - sizeof(*fmt)) && fmt->cbSize != sizeof(*wfe)) -+ break; -+ if (IsEqualGUID(&wfe->SubFormat, &KSDATAFORMAT_SUBTYPE_IEEE_FLOAT) && -+ (!wfe->Samples.wValidBitsPerSample || wfe->Samples.wValidBitsPerSample == 32) && -+ fmt->wBitsPerSample == 32) -+ This->ss.format = PA_SAMPLE_FLOAT32LE; -+ else if (IsEqualGUID(&wfe->SubFormat, &KSDATAFORMAT_SUBTYPE_PCM)) { -+ DWORD valid = wfe->Samples.wValidBitsPerSample; -+ if (!valid) -+ valid = fmt->wBitsPerSample; -+ if (!valid || valid > fmt->wBitsPerSample) -+ break; -+ switch (fmt->wBitsPerSample) { -+ case 8: -+ if (valid == 8) -+ This->ss.format = PA_SAMPLE_U8; -+ break; -+ case 16: -+ if (valid == 16) -+ This->ss.format = PA_SAMPLE_S16LE; -+ break; -+ case 24: -+ if (valid == 24) -+ This->ss.format = PA_SAMPLE_S24LE; -+ break; -+ case 32: -+ if (valid == 24) -+ This->ss.format = PA_SAMPLE_S24_32LE; -+ else if (valid == 32) -+ This->ss.format = PA_SAMPLE_S32LE; -+ default: -+ break; -+ } -+ } -+ This->map.channels = fmt->nChannels; -+ if (!mask) -+ mask = get_channel_mask(fmt->nChannels); -+ for (j = 0; j < sizeof(pulse_pos_from_wfx)/sizeof(*pulse_pos_from_wfx) && i < fmt->nChannels; ++j) { -+ if (mask & (1 << j)) -+ This->map.map[i++] = pulse_pos_from_wfx[j]; -+ } -+ -+ /* Special case for mono since pulse appears to map it differently */ -+ if (mask == SPEAKER_FRONT_CENTER) -+ This->map.map[0] = PA_CHANNEL_POSITION_MONO; -+ -+ if ((mask & SPEAKER_ALL) && i < fmt->nChannels) { -+ This->map.map[i++] = PA_CHANNEL_POSITION_MONO; -+ FIXME("Is the 'all' channel mapped correctly?\n"); -+ } -+ -+ if (i < fmt->nChannels || (mask & SPEAKER_RESERVED)) { -+ This->map.channels = 0; -+ ERR("Invalid channel mask: %i/%i and %x\n", i, fmt->nChannels, mask); -+ break; -+ } -+ break; -+ } -+ default: FIXME("Unhandled tag %x\n", fmt->wFormatTag); -+ } -+ This->ss.channels = This->map.channels; -+ if (!pa_channel_map_valid(&This->map) || This->ss.format == PA_SAMPLE_INVALID) { -+ ERR("Invalid format! Channel spec valid: %i, format: %i\n", pa_channel_map_valid(&This->map), This->ss.format); -+ dump_fmt(fmt); -+ return AUDCLNT_E_UNSUPPORTED_FORMAT; -+ } -+ return S_OK; - } - -+static HRESULT WINAPI AudioClient_Initialize(IAudioClient *iface, -+ AUDCLNT_SHAREMODE mode, DWORD flags, REFERENCE_TIME duration, -+ REFERENCE_TIME period, const WAVEFORMATEX *fmt, -+ const GUID *sessionguid) -+{ -+ ACImpl *This = impl_from_IAudioClient(iface); -+ HRESULT hr = S_OK; -+ UINT period_bytes; -+ -+ TRACE("(%p)->(%x, %x, %s, %s, %p, %s)\n", This, mode, flags, -+ wine_dbgstr_longlong(duration), wine_dbgstr_longlong(period), fmt, debugstr_guid(sessionguid)); -+ -+ if (!fmt) -+ return E_POINTER; -+ -+ if (mode != AUDCLNT_SHAREMODE_SHARED && mode != AUDCLNT_SHAREMODE_EXCLUSIVE) -+ return AUDCLNT_E_NOT_INITIALIZED; -+ if (mode == AUDCLNT_SHAREMODE_EXCLUSIVE) -+ return AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED; -+ -+ if (flags & ~(AUDCLNT_STREAMFLAGS_CROSSPROCESS | -+ AUDCLNT_STREAMFLAGS_LOOPBACK | -+ AUDCLNT_STREAMFLAGS_EVENTCALLBACK | -+ AUDCLNT_STREAMFLAGS_NOPERSIST | -+ AUDCLNT_STREAMFLAGS_RATEADJUST | -+ AUDCLNT_SESSIONFLAGS_EXPIREWHENUNOWNED | -+ AUDCLNT_SESSIONFLAGS_DISPLAY_HIDE | -+ AUDCLNT_SESSIONFLAGS_DISPLAY_HIDEWHENEXPIRED)) { -+ TRACE("Unknown flags: %08x\n", flags); -+ return E_INVALIDARG; -+ } -+ -+ pthread_mutex_lock(&pulse_lock); -+ if (This->stream) { -+ pthread_mutex_unlock(&pulse_lock); -+ return AUDCLNT_E_ALREADY_INITIALIZED; -+ } -+ -+ hr = pulse_spec_from_waveformat(This, fmt); -+ if (FAILED(hr)) -+ goto exit; -+ -+ if (mode == AUDCLNT_SHAREMODE_SHARED) { -+ period = pulse_def_period[This->dataflow == eCapture]; -+ if (duration < 2 * period) -+ duration = 2 * period; -+ } -+ period_bytes = pa_frame_size(&This->ss) * MulDiv(period, This->ss.rate, 10000000); -+ -+ if (duration < 20000000) -+ This->bufsize_frames = ceil((duration / 10000000.) * fmt->nSamplesPerSec); -+ else -+ This->bufsize_frames = 2 * fmt->nSamplesPerSec; -+ This->bufsize_bytes = This->bufsize_frames * pa_frame_size(&This->ss); -+ -+ This->share = mode; -+ This->flags = flags; -+ hr = pulse_stream_connect(This, period_bytes); -+ if (SUCCEEDED(hr)) { -+ UINT32 unalign; -+ const pa_buffer_attr *attr = pa_stream_get_buffer_attr(This->stream); -+ /* Update frames according to new size */ -+ dump_attr(attr); -+ if (This->dataflow == eRender) -+ This->bufsize_bytes = attr->tlength; -+ else { -+ This->capture_period = period_bytes = attr->fragsize; -+ if ((unalign = This->bufsize_bytes % period_bytes)) -+ This->bufsize_bytes += period_bytes - unalign; -+ } -+ This->bufsize_frames = This->bufsize_bytes / pa_frame_size(&This->ss); -+ } -+ if (SUCCEEDED(hr)) { -+ UINT32 i, capture_packets = This->capture_period ? This->bufsize_bytes / This->capture_period : 0; -+ This->tmp_buffer = HeapAlloc(GetProcessHeap(), 0, This->bufsize_bytes + capture_packets * sizeof(ACPacket)); -+ if (!This->tmp_buffer) -+ hr = E_OUTOFMEMORY; -+ else { -+ ACPacket *cur_packet = (ACPacket*)((char*)This->tmp_buffer + This->bufsize_bytes); -+ BYTE *data = This->tmp_buffer; -+ memset(This->tmp_buffer, This->ss.format == PA_SAMPLE_U8 ? 0x80 : 0, This->bufsize_bytes); -+ list_init(&This->packet_free_head); -+ list_init(&This->packet_filled_head); -+ for (i = 0; i < capture_packets; ++i, ++cur_packet) { -+ list_add_tail(&This->packet_free_head, &cur_packet->entry); -+ cur_packet->data = data; -+ data += This->capture_period; -+ } -+ assert(!This->capture_period || This->bufsize_bytes == This->capture_period * capture_packets); -+ assert(!capture_packets || data - This->bufsize_bytes == This->tmp_buffer); -+ } -+ } -+ -+exit: -+ if (FAILED(hr)) { -+ HeapFree(GetProcessHeap(), 0, This->tmp_buffer); -+ This->tmp_buffer = NULL; -+ if (This->stream) { -+ pa_stream_disconnect(This->stream); -+ pa_stream_unref(This->stream); -+ This->stream = NULL; -+ } -+ } -+ pthread_mutex_unlock(&pulse_lock); -+ return hr; -+} -+ -+static HRESULT WINAPI AudioClient_GetBufferSize(IAudioClient *iface, -+ UINT32 *out) -+{ -+ ACImpl *This = impl_from_IAudioClient(iface); -+ HRESULT hr; -+ -+ TRACE("(%p)->(%p)\n", This, out); -+ -+ if (!out) -+ return E_POINTER; -+ -+ pthread_mutex_lock(&pulse_lock); -+ hr = pulse_stream_valid(This); -+ if (SUCCEEDED(hr)) -+ *out = This->bufsize_frames; -+ pthread_mutex_unlock(&pulse_lock); -+ -+ return hr; -+} -+ -+static HRESULT WINAPI AudioClient_GetStreamLatency(IAudioClient *iface, -+ REFERENCE_TIME *latency) -+{ -+ ACImpl *This = impl_from_IAudioClient(iface); -+ const pa_buffer_attr *attr; -+ REFERENCE_TIME lat; -+ HRESULT hr; -+ -+ TRACE("(%p)->(%p)\n", This, latency); -+ -+ if (!latency) -+ return E_POINTER; -+ -+ pthread_mutex_lock(&pulse_lock); -+ hr = pulse_stream_valid(This); -+ if (FAILED(hr)) { -+ pthread_mutex_unlock(&pulse_lock); -+ return hr; -+ } -+ attr = pa_stream_get_buffer_attr(This->stream); -+ if (This->dataflow == eRender) -+ lat = attr->minreq / pa_frame_size(&This->ss); -+ else -+ lat = attr->fragsize / pa_frame_size(&This->ss); -+ *latency = 10000000; -+ *latency *= lat; -+ *latency /= This->ss.rate; -+ pthread_mutex_unlock(&pulse_lock); -+ TRACE("Latency: %u ms\n", (DWORD)(*latency / 10000)); -+ return S_OK; -+} -+ -+static void ACImpl_GetRenderPad(ACImpl *This, UINT32 *out) -+{ -+ *out = This->pad / pa_frame_size(&This->ss); -+} -+ -+static void ACImpl_GetCapturePad(ACImpl *This, UINT32 *out) -+{ -+ ACPacket *packet = This->locked_ptr; -+ if (!packet && !list_empty(&This->packet_filled_head)) { -+ packet = (ACPacket*)list_head(&This->packet_filled_head); -+ This->locked_ptr = packet; -+ list_remove(&packet->entry); -+ } -+ if (out) -+ *out = This->pad / pa_frame_size(&This->ss); -+} -+ -+static HRESULT WINAPI AudioClient_GetCurrentPadding(IAudioClient *iface, -+ UINT32 *out) -+{ -+ ACImpl *This = impl_from_IAudioClient(iface); -+ HRESULT hr; -+ -+ TRACE("(%p)->(%p)\n", This, out); -+ -+ if (!out) -+ return E_POINTER; -+ -+ pthread_mutex_lock(&pulse_lock); -+ hr = pulse_stream_valid(This); -+ if (FAILED(hr)) { -+ pthread_mutex_unlock(&pulse_lock); -+ return hr; -+ } -+ -+ if (This->dataflow == eRender) -+ ACImpl_GetRenderPad(This, out); -+ else -+ ACImpl_GetCapturePad(This, out); -+ pthread_mutex_unlock(&pulse_lock); -+ -+ TRACE("%p Pad: %u ms (%u)\n", This, MulDiv(*out, 1000, This->ss.rate), *out); -+ return S_OK; -+} -+ -+static HRESULT WINAPI AudioClient_IsFormatSupported(IAudioClient *iface, -+ AUDCLNT_SHAREMODE mode, const WAVEFORMATEX *fmt, -+ WAVEFORMATEX **out) -+{ -+ ACImpl *This = impl_from_IAudioClient(iface); -+ HRESULT hr = S_OK; -+ WAVEFORMATEX *closest = NULL; -+ -+ TRACE("(%p)->(%x, %p, %p)\n", This, mode, fmt, out); -+ -+ if (!fmt || (mode == AUDCLNT_SHAREMODE_SHARED && !out)) -+ return E_POINTER; -+ -+ if (out) -+ *out = NULL; -+ if (mode != AUDCLNT_SHAREMODE_SHARED && mode != AUDCLNT_SHAREMODE_EXCLUSIVE) -+ return E_INVALIDARG; -+ if (mode == AUDCLNT_SHAREMODE_EXCLUSIVE) -+ return This->dataflow == eCapture ? AUDCLNT_E_UNSUPPORTED_FORMAT : AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED; -+ if (fmt->wFormatTag == WAVE_FORMAT_EXTENSIBLE && -+ fmt->cbSize < sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX)) -+ return E_INVALIDARG; -+ -+ dump_fmt(fmt); -+ -+ closest = clone_format(fmt); -+ if (!closest) -+ hr = E_OUTOFMEMORY; -+ -+ if (hr == S_OK || !out) { -+ CoTaskMemFree(closest); -+ if (out) -+ *out = NULL; -+ } else if (closest) { -+ closest->nBlockAlign = -+ closest->nChannels * closest->wBitsPerSample / 8; -+ closest->nAvgBytesPerSec = -+ closest->nBlockAlign * closest->nSamplesPerSec; -+ *out = closest; -+ } -+ -+ TRACE("returning: %08x %p\n", hr, out ? *out : NULL); -+ return hr; -+} -+ -+static HRESULT WINAPI AudioClient_GetMixFormat(IAudioClient *iface, -+ WAVEFORMATEX **pwfx) -+{ -+ ACImpl *This = impl_from_IAudioClient(iface); -+ WAVEFORMATEXTENSIBLE *fmt = &pulse_fmt[This->dataflow == eCapture]; -+ -+ TRACE("(%p)->(%p)\n", This, pwfx); -+ -+ if (!pwfx) -+ return E_POINTER; -+ -+ *pwfx = clone_format(&fmt->Format); -+ if (!*pwfx) -+ return E_OUTOFMEMORY; -+ dump_fmt(*pwfx); -+ return S_OK; -+} -+ -+static HRESULT WINAPI AudioClient_GetDevicePeriod(IAudioClient *iface, -+ REFERENCE_TIME *defperiod, REFERENCE_TIME *minperiod) -+{ -+ ACImpl *This = impl_from_IAudioClient(iface); -+ -+ TRACE("(%p)->(%p, %p)\n", This, defperiod, minperiod); -+ -+ if (!defperiod && !minperiod) -+ return E_POINTER; -+ -+ if (defperiod) -+ *defperiod = pulse_def_period[This->dataflow == eCapture]; -+ if (minperiod) -+ *minperiod = pulse_min_period[This->dataflow == eCapture]; -+ -+ return S_OK; -+} -+ -+static HRESULT WINAPI AudioClient_Start(IAudioClient *iface) -+{ -+ ACImpl *This = impl_from_IAudioClient(iface); -+ HRESULT hr = S_OK; -+ int success; -+ pa_operation *o; -+ -+ TRACE("(%p)\n", This); -+ -+ pthread_mutex_lock(&pulse_lock); -+ hr = pulse_stream_valid(This); -+ if (FAILED(hr)) { -+ pthread_mutex_unlock(&pulse_lock); -+ return hr; -+ } -+ -+ if ((This->flags & AUDCLNT_STREAMFLAGS_EVENTCALLBACK) && !This->event) { -+ pthread_mutex_unlock(&pulse_lock); -+ return AUDCLNT_E_EVENTHANDLE_NOT_SET; -+ } -+ -+ if (This->started) { -+ pthread_mutex_unlock(&pulse_lock); -+ return AUDCLNT_E_NOT_STOPPED; -+ } -+ This->clock_pulse = PA_USEC_INVALID; -+ -+ if (pa_stream_is_corked(This->stream)) { -+ o = pa_stream_cork(This->stream, 0, pulse_op_cb, &success); -+ if (o) { -+ while(pa_operation_get_state(o) == PA_OPERATION_RUNNING) -+ pthread_cond_wait(&pulse_cond, &pulse_lock); -+ pa_operation_unref(o); -+ } else -+ success = 0; -+ if (!success) -+ hr = E_FAIL; -+ } -+ if (SUCCEEDED(hr)) { -+ This->started = TRUE; -+ if (This->dataflow == eRender && This->event) -+ pa_stream_set_latency_update_callback(This->stream, pulse_latency_callback, This); -+ } -+ pthread_mutex_unlock(&pulse_lock); -+ return hr; -+} -+ -+static HRESULT WINAPI AudioClient_Stop(IAudioClient *iface) -+{ -+ ACImpl *This = impl_from_IAudioClient(iface); -+ HRESULT hr = S_OK; -+ pa_operation *o; -+ int success; -+ -+ TRACE("(%p)\n", This); -+ -+ pthread_mutex_lock(&pulse_lock); -+ hr = pulse_stream_valid(This); -+ if (FAILED(hr)) { -+ pthread_mutex_unlock(&pulse_lock); -+ return hr; -+ } -+ -+ if (!This->started) { -+ pthread_mutex_unlock(&pulse_lock); -+ return S_FALSE; -+ } -+ -+ if (This->dataflow == eRender) { -+ o = pa_stream_cork(This->stream, 1, pulse_op_cb, &success); -+ if (o) { -+ while(pa_operation_get_state(o) == PA_OPERATION_RUNNING) -+ pthread_cond_wait(&pulse_cond, &pulse_lock); -+ pa_operation_unref(o); -+ } else -+ success = 0; -+ if (!success) -+ hr = E_FAIL; -+ } -+ if (SUCCEEDED(hr)) { -+ This->started = FALSE; -+ This->clock_pulse = PA_USEC_INVALID; -+ } -+ pthread_mutex_unlock(&pulse_lock); -+ return hr; -+} -+ -+static HRESULT WINAPI AudioClient_Reset(IAudioClient *iface) -+{ -+ ACImpl *This = impl_from_IAudioClient(iface); -+ HRESULT hr = S_OK; -+ -+ TRACE("(%p)\n", This); -+ -+ pthread_mutex_lock(&pulse_lock); -+ hr = pulse_stream_valid(This); -+ if (FAILED(hr)) { -+ pthread_mutex_unlock(&pulse_lock); -+ return hr; -+ } -+ -+ if (This->started) { -+ pthread_mutex_unlock(&pulse_lock); -+ return AUDCLNT_E_NOT_STOPPED; -+ } -+ -+ if (This->locked) { -+ pthread_mutex_unlock(&pulse_lock); -+ return AUDCLNT_E_BUFFER_OPERATION_PENDING; -+ } -+ -+ if (This->dataflow == eRender) { -+ /* If there is still data in the render buffer it needs to be removed from the server */ -+ int success = 0; -+ if (This->pad) { -+ pa_operation *o = pa_stream_flush(This->stream, pulse_op_cb, &success); -+ if (o) { -+ while(pa_operation_get_state(o) == PA_OPERATION_RUNNING) -+ pthread_cond_wait(&pulse_cond, &pulse_lock); -+ pa_operation_unref(o); -+ } -+ } -+ if (success || !This->pad) -+ This->clock_lastpos = This->clock_written = This->pad = 0; -+ } else { -+ ACPacket *p; -+ This->clock_written += This->pad; -+ This->pad = 0; -+ -+ if ((p = This->locked_ptr)) { -+ This->locked_ptr = NULL; -+ list_add_tail(&This->packet_free_head, &p->entry); -+ } -+ list_move_tail(&This->packet_free_head, &This->packet_filled_head); -+ } -+ pthread_mutex_unlock(&pulse_lock); -+ -+ return hr; -+} -+ -+static HRESULT WINAPI AudioClient_SetEventHandle(IAudioClient *iface, -+ HANDLE event) -+{ -+ ACImpl *This = impl_from_IAudioClient(iface); -+ HRESULT hr; -+ -+ TRACE("(%p)->(%p)\n", This, event); -+ -+ if (!event) -+ return E_INVALIDARG; -+ -+ pthread_mutex_lock(&pulse_lock); -+ hr = pulse_stream_valid(This); -+ if (FAILED(hr)) { -+ pthread_mutex_unlock(&pulse_lock); -+ return hr; -+ } -+ -+ if (!(This->flags & AUDCLNT_STREAMFLAGS_EVENTCALLBACK)) -+ hr = AUDCLNT_E_EVENTHANDLE_NOT_EXPECTED; -+ else if (This->event) -+ hr = HRESULT_FROM_WIN32(ERROR_INVALID_NAME); -+ else -+ This->event = event; -+ pthread_mutex_unlock(&pulse_lock); -+ return hr; -+} -+ -+static HRESULT WINAPI AudioClient_GetService(IAudioClient *iface, REFIID riid, -+ void **ppv) -+{ -+ ACImpl *This = impl_from_IAudioClient(iface); -+ HRESULT hr; -+ -+ TRACE("(%p)->(%s, %p)\n", This, debugstr_guid(riid), ppv); -+ -+ if (!ppv) -+ return E_POINTER; -+ *ppv = NULL; -+ -+ pthread_mutex_lock(&pulse_lock); -+ hr = pulse_stream_valid(This); -+ pthread_mutex_unlock(&pulse_lock); -+ if (FAILED(hr)) -+ return hr; -+ -+ if (*ppv) { -+ IUnknown_AddRef((IUnknown*)*ppv); -+ return S_OK; -+ } -+ -+ FIXME("stub %s\n", debugstr_guid(riid)); -+ return E_NOINTERFACE; -+} -+ -+static const IAudioClientVtbl AudioClient_Vtbl = -+{ -+ AudioClient_QueryInterface, -+ AudioClient_AddRef, -+ AudioClient_Release, -+ AudioClient_Initialize, -+ AudioClient_GetBufferSize, -+ AudioClient_GetStreamLatency, -+ AudioClient_GetCurrentPadding, -+ AudioClient_IsFormatSupported, -+ AudioClient_GetMixFormat, -+ AudioClient_GetDevicePeriod, -+ AudioClient_Start, -+ AudioClient_Stop, -+ AudioClient_Reset, -+ AudioClient_SetEventHandle, -+ AudioClient_GetService -+}; -+ - HRESULT WINAPI AUDDRV_GetAudioSessionManager(IMMDevice *device, - IAudioSessionManager2 **out) - { --- -1.8.5.3 - - -From 7ebf36bb31a2796610c97dda359068df68730348 Mon Sep 17 00:00:00 2001 -From: Maarten Lankhorst -Date: Sun, 19 Jan 2014 11:34:46 +0100 -Subject: winepulse: Add IAudioRenderClient and IAudioCaptureClient - ---- - dlls/winepulse.drv/mmdevdrv.c | 301 ++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 301 insertions(+) - -diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c -index 37d85ff..01cfd25 100644 ---- a/dlls/winepulse.drv/mmdevdrv.c -+++ b/dlls/winepulse.drv/mmdevdrv.c -@@ -146,12 +146,27 @@ struct ACImpl { - static const WCHAR defaultW[] = {'P','u','l','s','e','a','u','d','i','o',0}; - - static const IAudioClientVtbl AudioClient_Vtbl; -+static const IAudioRenderClientVtbl AudioRenderClient_Vtbl; -+static const IAudioCaptureClientVtbl AudioCaptureClient_Vtbl; -+static const IAudioClockVtbl AudioClock_Vtbl; -+static const IAudioClock2Vtbl AudioClock2_Vtbl; -+static const IAudioStreamVolumeVtbl AudioStreamVolume_Vtbl; - - static inline ACImpl *impl_from_IAudioClient(IAudioClient *iface) - { - return CONTAINING_RECORD(iface, ACImpl, IAudioClient_iface); - } - -+static inline ACImpl *impl_from_IAudioRenderClient(IAudioRenderClient *iface) -+{ -+ return CONTAINING_RECORD(iface, ACImpl, IAudioRenderClient_iface); -+} -+ -+static inline ACImpl *impl_from_IAudioCaptureClient(IAudioCaptureClient *iface) -+{ -+ return CONTAINING_RECORD(iface, ACImpl, IAudioCaptureClient_iface); -+} -+ - /* Following pulseaudio design here, mainloop has the lock taken whenever - * it is handling something for pulse, and the lock is required whenever - * doing any pa_* call that can affect the state in any way -@@ -701,6 +716,11 @@ HRESULT WINAPI AUDDRV_GetAudioEndpoint(void *key, IMMDevice *dev, - return E_OUTOFMEMORY; - - This->IAudioClient_iface.lpVtbl = &AudioClient_Vtbl; -+ This->IAudioRenderClient_iface.lpVtbl = &AudioRenderClient_Vtbl; -+ This->IAudioCaptureClient_iface.lpVtbl = &AudioCaptureClient_Vtbl; -+ This->IAudioClock_iface.lpVtbl = &AudioClock_Vtbl; -+ This->IAudioClock2_iface.lpVtbl = &AudioClock2_Vtbl; -+ This->IAudioStreamVolume_iface.lpVtbl = &AudioStreamVolume_Vtbl; - This->dataflow = dataflow; - This->parent = dev; - This->clock_pulse = PA_USEC_INVALID; -@@ -1421,6 +1441,16 @@ static HRESULT WINAPI AudioClient_GetService(IAudioClient *iface, REFIID riid, - if (FAILED(hr)) - return hr; - -+ if (IsEqualIID(riid, &IID_IAudioRenderClient)) { -+ if (This->dataflow != eRender) -+ return AUDCLNT_E_WRONG_ENDPOINT_TYPE; -+ *ppv = &This->IAudioRenderClient_iface; -+ } else if (IsEqualIID(riid, &IID_IAudioCaptureClient)) { -+ if (This->dataflow != eCapture) -+ return AUDCLNT_E_WRONG_ENDPOINT_TYPE; -+ *ppv = &This->IAudioCaptureClient_iface; -+ } -+ - if (*ppv) { - IUnknown_AddRef((IUnknown*)*ppv); - return S_OK; -@@ -1449,6 +1479,277 @@ static const IAudioClientVtbl AudioClient_Vtbl = - AudioClient_GetService - }; - -+static HRESULT WINAPI AudioRenderClient_QueryInterface( -+ IAudioRenderClient *iface, REFIID riid, void **ppv) -+{ -+ TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); -+ -+ if (!ppv) -+ return E_POINTER; -+ *ppv = NULL; -+ -+ if (IsEqualIID(riid, &IID_IUnknown) || -+ IsEqualIID(riid, &IID_IAudioRenderClient)) -+ *ppv = iface; -+ if (*ppv) { -+ IUnknown_AddRef((IUnknown*)*ppv); -+ return S_OK; -+ } -+ -+ WARN("Unknown interface %s\n", debugstr_guid(riid)); -+ return E_NOINTERFACE; -+} -+ -+static ULONG WINAPI AudioRenderClient_AddRef(IAudioRenderClient *iface) -+{ -+ ACImpl *This = impl_from_IAudioRenderClient(iface); -+ return AudioClient_AddRef(&This->IAudioClient_iface); -+} -+ -+static ULONG WINAPI AudioRenderClient_Release(IAudioRenderClient *iface) -+{ -+ ACImpl *This = impl_from_IAudioRenderClient(iface); -+ return AudioClient_Release(&This->IAudioClient_iface); -+} -+ -+static HRESULT WINAPI AudioRenderClient_GetBuffer(IAudioRenderClient *iface, -+ UINT32 frames, BYTE **data) -+{ -+ ACImpl *This = impl_from_IAudioRenderClient(iface); -+ UINT32 avail, pad, req, bytes = frames * pa_frame_size(&This->ss); -+ HRESULT hr = S_OK; -+ int ret = -1; -+ -+ TRACE("(%p)->(%u, %p)\n", This, frames, data); -+ -+ if (!data) -+ return E_POINTER; -+ *data = NULL; -+ -+ pthread_mutex_lock(&pulse_lock); -+ hr = pulse_stream_valid(This); -+ if (FAILED(hr) || This->locked) { -+ pthread_mutex_unlock(&pulse_lock); -+ return FAILED(hr) ? hr : AUDCLNT_E_OUT_OF_ORDER; -+ } -+ if (!frames) { -+ pthread_mutex_unlock(&pulse_lock); -+ return S_OK; -+ } -+ -+ ACImpl_GetRenderPad(This, &pad); -+ avail = This->bufsize_frames - pad; -+ if (avail < frames || bytes > This->bufsize_bytes) { -+ pthread_mutex_unlock(&pulse_lock); -+ WARN("Wanted to write %u, but only %u available\n", frames, avail); -+ return AUDCLNT_E_BUFFER_TOO_LARGE; -+ } -+ -+ This->locked = frames; -+ req = bytes; -+ ret = pa_stream_begin_write(This->stream, &This->locked_ptr, &req); -+ if (ret < 0 || req < bytes) { -+ FIXME("%p Not using pulse locked data: %i %u/%u %u/%u\n", This, ret, req/pa_frame_size(&This->ss), frames, pad, This->bufsize_frames); -+ if (ret >= 0) -+ pa_stream_cancel_write(This->stream); -+ *data = This->tmp_buffer; -+ This->locked_ptr = NULL; -+ } else -+ *data = This->locked_ptr; -+ pthread_mutex_unlock(&pulse_lock); -+ return hr; -+} -+ -+static HRESULT WINAPI AudioRenderClient_ReleaseBuffer( -+ IAudioRenderClient *iface, UINT32 written_frames, DWORD flags) -+{ -+ ACImpl *This = impl_from_IAudioRenderClient(iface); -+ UINT32 written_bytes = written_frames * pa_frame_size(&This->ss); -+ -+ TRACE("(%p)->(%u, %x)\n", This, written_frames, flags); -+ -+ pthread_mutex_lock(&pulse_lock); -+ if (!This->locked || !written_frames) { -+ if (This->locked_ptr) -+ pa_stream_cancel_write(This->stream); -+ This->locked = 0; -+ This->locked_ptr = NULL; -+ pthread_mutex_unlock(&pulse_lock); -+ return written_frames ? AUDCLNT_E_OUT_OF_ORDER : S_OK; -+ } -+ -+ if (This->locked < written_frames) { -+ pthread_mutex_unlock(&pulse_lock); -+ return AUDCLNT_E_INVALID_SIZE; -+ } -+ -+ if (flags & AUDCLNT_BUFFERFLAGS_SILENT) { -+ if (This->ss.format == PA_SAMPLE_U8) -+ memset(This->tmp_buffer, 128, written_bytes); -+ else -+ memset(This->tmp_buffer, 0, written_bytes); -+ } -+ -+ This->locked = 0; -+ if (This->locked_ptr) -+ pa_stream_write(This->stream, This->locked_ptr, written_bytes, NULL, 0, PA_SEEK_RELATIVE); -+ else -+ pa_stream_write(This->stream, This->tmp_buffer, written_bytes, NULL, 0, PA_SEEK_RELATIVE); -+ This->pad += written_bytes; -+ This->locked_ptr = NULL; -+ TRACE("Released %u, pad %u\n", written_frames, This->pad / pa_frame_size(&This->ss)); -+ assert(This->pad <= This->bufsize_bytes); -+ pthread_mutex_unlock(&pulse_lock); -+ return S_OK; -+} -+ -+static const IAudioRenderClientVtbl AudioRenderClient_Vtbl = { -+ AudioRenderClient_QueryInterface, -+ AudioRenderClient_AddRef, -+ AudioRenderClient_Release, -+ AudioRenderClient_GetBuffer, -+ AudioRenderClient_ReleaseBuffer -+}; -+ -+static HRESULT WINAPI AudioCaptureClient_QueryInterface( -+ IAudioCaptureClient *iface, REFIID riid, void **ppv) -+{ -+ TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); -+ -+ if (!ppv) -+ return E_POINTER; -+ *ppv = NULL; -+ -+ if (IsEqualIID(riid, &IID_IUnknown) || -+ IsEqualIID(riid, &IID_IAudioCaptureClient)) -+ *ppv = iface; -+ if (*ppv) { -+ IUnknown_AddRef((IUnknown*)*ppv); -+ return S_OK; -+ } -+ -+ WARN("Unknown interface %s\n", debugstr_guid(riid)); -+ return E_NOINTERFACE; -+} -+ -+static ULONG WINAPI AudioCaptureClient_AddRef(IAudioCaptureClient *iface) -+{ -+ ACImpl *This = impl_from_IAudioCaptureClient(iface); -+ return IAudioClient_AddRef(&This->IAudioClient_iface); -+} -+ -+static ULONG WINAPI AudioCaptureClient_Release(IAudioCaptureClient *iface) -+{ -+ ACImpl *This = impl_from_IAudioCaptureClient(iface); -+ return IAudioClient_Release(&This->IAudioClient_iface); -+} -+ -+static HRESULT WINAPI AudioCaptureClient_GetBuffer(IAudioCaptureClient *iface, -+ BYTE **data, UINT32 *frames, DWORD *flags, UINT64 *devpos, -+ UINT64 *qpcpos) -+{ -+ ACImpl *This = impl_from_IAudioCaptureClient(iface); -+ HRESULT hr; -+ ACPacket *packet; -+ -+ TRACE("(%p)->(%p, %p, %p, %p, %p)\n", This, data, frames, flags, -+ devpos, qpcpos); -+ -+ if (!data || !frames || !flags) -+ return E_POINTER; -+ -+ pthread_mutex_lock(&pulse_lock); -+ hr = pulse_stream_valid(This); -+ if (FAILED(hr) || This->locked) { -+ pthread_mutex_unlock(&pulse_lock); -+ return FAILED(hr) ? hr : AUDCLNT_E_OUT_OF_ORDER; -+ } -+ -+ ACImpl_GetCapturePad(This, NULL); -+ if ((packet = This->locked_ptr)) { -+ *frames = This->capture_period / pa_frame_size(&This->ss); -+ *flags = 0; -+ if (packet->discont) -+ *flags |= AUDCLNT_BUFFERFLAGS_DATA_DISCONTINUITY; -+ if (devpos) { -+ if (packet->discont) -+ *devpos = (This->clock_written + This->capture_period) / pa_frame_size(&This->ss); -+ else -+ *devpos = This->clock_written / pa_frame_size(&This->ss); -+ } -+ if (qpcpos) -+ *qpcpos = packet->qpcpos; -+ *data = packet->data; -+ } -+ else -+ *frames = 0; -+ This->locked = *frames; -+ pthread_mutex_unlock(&pulse_lock); -+ return *frames ? S_OK : AUDCLNT_S_BUFFER_EMPTY; -+} -+ -+static HRESULT WINAPI AudioCaptureClient_ReleaseBuffer( -+ IAudioCaptureClient *iface, UINT32 done) -+{ -+ ACImpl *This = impl_from_IAudioCaptureClient(iface); -+ -+ TRACE("(%p)->(%u)\n", This, done); -+ -+ pthread_mutex_lock(&pulse_lock); -+ if (!This->locked && done) { -+ pthread_mutex_unlock(&pulse_lock); -+ return AUDCLNT_E_OUT_OF_ORDER; -+ } -+ if (done && This->locked != done) { -+ pthread_mutex_unlock(&pulse_lock); -+ return AUDCLNT_E_INVALID_SIZE; -+ } -+ if (done) { -+ ACPacket *packet = This->locked_ptr; -+ This->locked_ptr = NULL; -+ This->pad -= This->capture_period; -+ if (packet->discont) -+ This->clock_written += 2 * This->capture_period; -+ else -+ This->clock_written += This->capture_period; -+ list_add_tail(&This->packet_free_head, &packet->entry); -+ } -+ This->locked = 0; -+ pthread_mutex_unlock(&pulse_lock); -+ return S_OK; -+} -+ -+static HRESULT WINAPI AudioCaptureClient_GetNextPacketSize( -+ IAudioCaptureClient *iface, UINT32 *frames) -+{ -+ ACImpl *This = impl_from_IAudioCaptureClient(iface); -+ ACPacket *p; -+ -+ TRACE("(%p)->(%p)\n", This, frames); -+ if (!frames) -+ return E_POINTER; -+ -+ pthread_mutex_lock(&pulse_lock); -+ ACImpl_GetCapturePad(This, NULL); -+ p = This->locked_ptr; -+ if (p) -+ *frames = This->capture_period / pa_frame_size(&This->ss); -+ else -+ *frames = 0; -+ pthread_mutex_unlock(&pulse_lock); -+ return S_OK; -+} -+ -+static const IAudioCaptureClientVtbl AudioCaptureClient_Vtbl = -+{ -+ AudioCaptureClient_QueryInterface, -+ AudioCaptureClient_AddRef, -+ AudioCaptureClient_Release, -+ AudioCaptureClient_GetBuffer, -+ AudioCaptureClient_ReleaseBuffer, -+ AudioCaptureClient_GetNextPacketSize -+}; -+ - HRESULT WINAPI AUDDRV_GetAudioSessionManager(IMMDevice *device, - IAudioSessionManager2 **out) - { --- -1.8.5.3 - - -From 50176fb32f2b0767d9f57bdade1861946036abc7 Mon Sep 17 00:00:00 2001 -From: Maarten Lankhorst -Date: Sun, 19 Jan 2014 11:34:46 +0100 -Subject: winepulse: Add IAudioClock and IAudioClock2 - ---- - dlls/winepulse.drv/mmdevdrv.c | 172 ++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 172 insertions(+) - -diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c -index 01cfd25..3ed2288 100644 ---- a/dlls/winepulse.drv/mmdevdrv.c -+++ b/dlls/winepulse.drv/mmdevdrv.c -@@ -167,6 +167,16 @@ static inline ACImpl *impl_from_IAudioCaptureClient(IAudioCaptureClient *iface) - return CONTAINING_RECORD(iface, ACImpl, IAudioCaptureClient_iface); - } - -+static inline ACImpl *impl_from_IAudioClock(IAudioClock *iface) -+{ -+ return CONTAINING_RECORD(iface, ACImpl, IAudioClock_iface); -+} -+ -+static inline ACImpl *impl_from_IAudioClock2(IAudioClock2 *iface) -+{ -+ return CONTAINING_RECORD(iface, ACImpl, IAudioClock2_iface); -+} -+ - /* Following pulseaudio design here, mainloop has the lock taken whenever - * it is handling something for pulse, and the lock is required whenever - * doing any pa_* call that can affect the state in any way -@@ -1449,6 +1459,8 @@ static HRESULT WINAPI AudioClient_GetService(IAudioClient *iface, REFIID riid, - if (This->dataflow != eCapture) - return AUDCLNT_E_WRONG_ENDPOINT_TYPE; - *ppv = &This->IAudioCaptureClient_iface; -+ } else if (IsEqualIID(riid, &IID_IAudioClock)) { -+ *ppv = &This->IAudioClock_iface; - } - - if (*ppv) { -@@ -1750,6 +1762,166 @@ static const IAudioCaptureClientVtbl AudioCaptureClient_Vtbl = - AudioCaptureClient_GetNextPacketSize - }; - -+static HRESULT WINAPI AudioClock_QueryInterface(IAudioClock *iface, -+ REFIID riid, void **ppv) -+{ -+ ACImpl *This = impl_from_IAudioClock(iface); -+ -+ TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); -+ -+ if (!ppv) -+ return E_POINTER; -+ *ppv = NULL; -+ -+ if (IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IAudioClock)) -+ *ppv = iface; -+ else if (IsEqualIID(riid, &IID_IAudioClock2)) -+ *ppv = &This->IAudioClock2_iface; -+ if (*ppv) { -+ IUnknown_AddRef((IUnknown*)*ppv); -+ return S_OK; -+ } -+ -+ WARN("Unknown interface %s\n", debugstr_guid(riid)); -+ return E_NOINTERFACE; -+} -+ -+static ULONG WINAPI AudioClock_AddRef(IAudioClock *iface) -+{ -+ ACImpl *This = impl_from_IAudioClock(iface); -+ return IAudioClient_AddRef(&This->IAudioClient_iface); -+} -+ -+static ULONG WINAPI AudioClock_Release(IAudioClock *iface) -+{ -+ ACImpl *This = impl_from_IAudioClock(iface); -+ return IAudioClient_Release(&This->IAudioClient_iface); -+} -+ -+static HRESULT WINAPI AudioClock_GetFrequency(IAudioClock *iface, UINT64 *freq) -+{ -+ ACImpl *This = impl_from_IAudioClock(iface); -+ HRESULT hr; -+ -+ TRACE("(%p)->(%p)\n", This, freq); -+ -+ pthread_mutex_lock(&pulse_lock); -+ hr = pulse_stream_valid(This); -+ if (SUCCEEDED(hr)) -+ *freq = This->ss.rate * pa_frame_size(&This->ss); -+ pthread_mutex_unlock(&pulse_lock); -+ return hr; -+} -+ -+static HRESULT WINAPI AudioClock_GetPosition(IAudioClock *iface, UINT64 *pos, -+ UINT64 *qpctime) -+{ -+ ACImpl *This = impl_from_IAudioClock(iface); -+ pa_usec_t time; -+ HRESULT hr; -+ -+ TRACE("(%p)->(%p, %p)\n", This, pos, qpctime); -+ -+ if (!pos) -+ return E_POINTER; -+ -+ pthread_mutex_lock(&pulse_lock); -+ hr = pulse_stream_valid(This); -+ if (FAILED(hr)) { -+ pthread_mutex_unlock(&pulse_lock); -+ return hr; -+ } -+ -+ *pos = This->clock_written; -+ if (This->clock_pulse != PA_USEC_INVALID && pa_stream_get_time(This->stream, &time) >= 0) { -+ UINT32 delta = pa_usec_to_bytes(time - This->clock_pulse, &This->ss); -+ if (delta < This->pad) -+ *pos += delta; -+ else -+ *pos += This->pad; -+ } -+ -+ /* Make time never go backwards */ -+ if (*pos < This->clock_lastpos) -+ *pos = This->clock_lastpos; -+ else -+ This->clock_lastpos = *pos; -+ pthread_mutex_unlock(&pulse_lock); -+ -+ TRACE("%p Position: %u\n", This, (unsigned)*pos); -+ -+ if (qpctime) { -+ LARGE_INTEGER stamp, freq; -+ QueryPerformanceCounter(&stamp); -+ QueryPerformanceFrequency(&freq); -+ *qpctime = (stamp.QuadPart * (INT64)10000000) / freq.QuadPart; -+ } -+ -+ return S_OK; -+} -+ -+static HRESULT WINAPI AudioClock_GetCharacteristics(IAudioClock *iface, -+ DWORD *chars) -+{ -+ ACImpl *This = impl_from_IAudioClock(iface); -+ -+ TRACE("(%p)->(%p)\n", This, chars); -+ -+ if (!chars) -+ return E_POINTER; -+ -+ *chars = AUDIOCLOCK_CHARACTERISTIC_FIXED_FREQ; -+ -+ return S_OK; -+} -+ -+static const IAudioClockVtbl AudioClock_Vtbl = -+{ -+ AudioClock_QueryInterface, -+ AudioClock_AddRef, -+ AudioClock_Release, -+ AudioClock_GetFrequency, -+ AudioClock_GetPosition, -+ AudioClock_GetCharacteristics -+}; -+ -+static HRESULT WINAPI AudioClock2_QueryInterface(IAudioClock2 *iface, -+ REFIID riid, void **ppv) -+{ -+ ACImpl *This = impl_from_IAudioClock2(iface); -+ return IAudioClock_QueryInterface(&This->IAudioClock_iface, riid, ppv); -+} -+ -+static ULONG WINAPI AudioClock2_AddRef(IAudioClock2 *iface) -+{ -+ ACImpl *This = impl_from_IAudioClock2(iface); -+ return IAudioClient_AddRef(&This->IAudioClient_iface); -+} -+ -+static ULONG WINAPI AudioClock2_Release(IAudioClock2 *iface) -+{ -+ ACImpl *This = impl_from_IAudioClock2(iface); -+ return IAudioClient_Release(&This->IAudioClient_iface); -+} -+ -+static HRESULT WINAPI AudioClock2_GetDevicePosition(IAudioClock2 *iface, -+ UINT64 *pos, UINT64 *qpctime) -+{ -+ ACImpl *This = impl_from_IAudioClock2(iface); -+ HRESULT hr = AudioClock_GetPosition(&This->IAudioClock_iface, pos, qpctime); -+ if (SUCCEEDED(hr)) -+ *pos /= pa_frame_size(&This->ss); -+ return hr; -+} -+ -+static const IAudioClock2Vtbl AudioClock2_Vtbl = -+{ -+ AudioClock2_QueryInterface, -+ AudioClock2_AddRef, -+ AudioClock2_Release, -+ AudioClock2_GetDevicePosition -+}; -+ - HRESULT WINAPI AUDDRV_GetAudioSessionManager(IMMDevice *device, - IAudioSessionManager2 **out) - { --- -1.8.5.3 - - -From f76ea805f6815d95b90bb67c86c4cc02dac14a0e Mon Sep 17 00:00:00 2001 -From: Maarten Lankhorst -Date: Sun, 19 Jan 2014 11:34:46 +0100 -Subject: winepulse: Add audiostreamvolume - ---- -Pulse allows streams to set volume, but for various reasons it's -better off being disabled by default. - -It can be enabled with HKCU\Software\Wine\Pulse\StreamVol=0x1 ---- - dlls/winepulse.drv/mmdevdrv.c | 236 ++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 236 insertions(+) - -diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c -index 3ed2288..b7414c2 100644 ---- a/dlls/winepulse.drv/mmdevdrv.c -+++ b/dlls/winepulse.drv/mmdevdrv.c -@@ -177,6 +177,11 @@ static inline ACImpl *impl_from_IAudioClock2(IAudioClock2 *iface) - return CONTAINING_RECORD(iface, ACImpl, IAudioClock2_iface); - } - -+static inline ACImpl *impl_from_IAudioStreamVolume(IAudioStreamVolume *iface) -+{ -+ return CONTAINING_RECORD(iface, ACImpl, IAudioStreamVolume_iface); -+} -+ - /* Following pulseaudio design here, mainloop has the lock taken whenever - * it is handling something for pulse, and the lock is required whenever - * doing any pa_* call that can affect the state in any way -@@ -444,6 +449,12 @@ static void pulse_op_cb(pa_stream *s, int success, void *user) { - pthread_cond_signal(&pulse_cond); - } - -+static void pulse_ctx_op_cb(pa_context *c, int success, void *user) { -+ TRACE("Success: %i\n", success); -+ *(int*)user = success; -+ pthread_cond_signal(&pulse_cond); -+} -+ - static void pulse_attr_update(pa_stream *s, void *user) { - const pa_buffer_attr *attr = pa_stream_get_buffer_attr(s); - TRACE("New attributes or device moved:\n"); -@@ -1461,6 +1472,8 @@ static HRESULT WINAPI AudioClient_GetService(IAudioClient *iface, REFIID riid, - *ppv = &This->IAudioCaptureClient_iface; - } else if (IsEqualIID(riid, &IID_IAudioClock)) { - *ppv = &This->IAudioClock_iface; -+ } else if (IsEqualIID(riid, &IID_IAudioStreamVolume)) { -+ *ppv = &This->IAudioStreamVolume_iface; - } - - if (*ppv) { -@@ -1922,6 +1935,229 @@ static const IAudioClock2Vtbl AudioClock2_Vtbl = - AudioClock2_GetDevicePosition - }; - -+static HRESULT WINAPI AudioStreamVolume_QueryInterface( -+ IAudioStreamVolume *iface, REFIID riid, void **ppv) -+{ -+ TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); -+ -+ if (!ppv) -+ return E_POINTER; -+ *ppv = NULL; -+ -+ if (IsEqualIID(riid, &IID_IUnknown) || -+ IsEqualIID(riid, &IID_IAudioStreamVolume)) -+ *ppv = iface; -+ if (*ppv) { -+ IUnknown_AddRef((IUnknown*)*ppv); -+ return S_OK; -+ } -+ -+ WARN("Unknown interface %s\n", debugstr_guid(riid)); -+ return E_NOINTERFACE; -+} -+ -+static ULONG WINAPI AudioStreamVolume_AddRef(IAudioStreamVolume *iface) -+{ -+ ACImpl *This = impl_from_IAudioStreamVolume(iface); -+ return IAudioClient_AddRef(&This->IAudioClient_iface); -+} -+ -+static ULONG WINAPI AudioStreamVolume_Release(IAudioStreamVolume *iface) -+{ -+ ACImpl *This = impl_from_IAudioStreamVolume(iface); -+ return IAudioClient_Release(&This->IAudioClient_iface); -+} -+ -+static HRESULT WINAPI AudioStreamVolume_GetChannelCount( -+ IAudioStreamVolume *iface, UINT32 *out) -+{ -+ ACImpl *This = impl_from_IAudioStreamVolume(iface); -+ -+ TRACE("(%p)->(%p)\n", This, out); -+ -+ if (!out) -+ return E_POINTER; -+ -+ *out = This->ss.channels; -+ -+ return S_OK; -+} -+ -+struct pulse_info_cb_data { -+ UINT32 n; -+ float *levels; -+}; -+ -+static void pulse_sink_input_info_cb(pa_context *c, const pa_sink_input_info *info, int eol, void *data) -+{ -+ struct pulse_info_cb_data *d = data; -+ int i; -+ if (eol) -+ return; -+ for (i = 0; i < d->n; ++i) -+ d->levels[i] = (float)info->volume.values[i] / (float)PA_VOLUME_NORM; -+ pthread_cond_signal(&pulse_cond); -+} -+ -+static void pulse_source_info_cb(pa_context *c, const pa_source_info *info, int eol, void *data) -+{ -+ struct pulse_info_cb_data *d = data; -+ int i; -+ if (eol) -+ return; -+ for (i = 0; i < d->n; ++i) -+ d->levels[i] = (float)info->volume.values[i] / (float)PA_VOLUME_NORM; -+ pthread_cond_signal(&pulse_cond); -+} -+ -+static HRESULT WINAPI AudioStreamVolume_SetAllVolumes( -+ IAudioStreamVolume *iface, UINT32 count, const float *levels) -+{ -+ ACImpl *This = impl_from_IAudioStreamVolume(iface); -+ pa_operation *o; -+ HRESULT hr; -+ int success = 0, i; -+ pa_cvolume cv; -+ -+ TRACE("(%p)->(%d, %p)\n", This, count, levels); -+ -+ if (!levels) -+ return E_POINTER; -+ -+ if (count != This->ss.channels) -+ return E_INVALIDARG; -+ -+ pthread_mutex_lock(&pulse_lock); -+ hr = pulse_stream_valid(This); -+ if (FAILED(hr)) -+ goto out; -+ -+ if (pulse_stream_volume) { -+ cv.channels = count; -+ for (i = 0; i < cv.channels; ++i) -+ cv.values[i] = levels[i] * (float)PA_VOLUME_NORM; -+ if (This->dataflow == eRender) -+ o = pa_context_set_sink_input_volume(pulse_ctx, pa_stream_get_index(This->stream), &cv, pulse_ctx_op_cb, &success); -+ else -+ o = pa_context_set_source_volume_by_index(pulse_ctx, pa_stream_get_device_index(This->stream), &cv, pulse_ctx_op_cb, &success); -+ if (o) { -+ while(pa_operation_get_state(o) == PA_OPERATION_RUNNING) -+ pthread_cond_wait(&pulse_cond, &pulse_lock); -+ pa_operation_unref(o); -+ } -+ if (!success) -+ hr = AUDCLNT_E_BUFFER_ERROR; -+ } else { -+ int i; -+ for (i = 0; i < count; ++i) -+ This->vol[i] = levels[i]; -+ } -+ -+out: -+ pthread_mutex_unlock(&pulse_lock); -+ return hr; -+} -+ -+static HRESULT WINAPI AudioStreamVolume_GetAllVolumes( -+ IAudioStreamVolume *iface, UINT32 count, float *levels) -+{ -+ ACImpl *This = impl_from_IAudioStreamVolume(iface); -+ pa_operation *o; -+ HRESULT hr; -+ struct pulse_info_cb_data info; -+ -+ TRACE("(%p)->(%d, %p)\n", This, count, levels); -+ -+ if (!levels) -+ return E_POINTER; -+ -+ if (count != This->ss.channels) -+ return E_INVALIDARG; -+ -+ pthread_mutex_lock(&pulse_lock); -+ hr = pulse_stream_valid(This); -+ if (FAILED(hr)) -+ goto out; -+ -+ if (pulse_stream_volume) { -+ info.n = count; -+ info.levels = levels; -+ if (This->dataflow == eRender) -+ o = pa_context_get_sink_input_info(pulse_ctx, pa_stream_get_index(This->stream), pulse_sink_input_info_cb, &info); -+ else -+ o = pa_context_get_source_info_by_index(pulse_ctx, pa_stream_get_device_index(This->stream), pulse_source_info_cb, &info); -+ if (o) { -+ while(pa_operation_get_state(o) == PA_OPERATION_RUNNING) -+ pthread_cond_wait(&pulse_cond, &pulse_lock); -+ pa_operation_unref(o); -+ } else -+ hr = AUDCLNT_E_BUFFER_ERROR; -+ } else { -+ int i; -+ for (i = 0; i < count; ++i) -+ levels[i] = This->vol[i]; -+ } -+ -+out: -+ pthread_mutex_unlock(&pulse_lock); -+ return hr; -+} -+ -+static HRESULT WINAPI AudioStreamVolume_SetChannelVolume( -+ IAudioStreamVolume *iface, UINT32 index, float level) -+{ -+ ACImpl *This = impl_from_IAudioStreamVolume(iface); -+ HRESULT hr; -+ float volumes[PA_CHANNELS_MAX]; -+ -+ TRACE("(%p)->(%d, %f)\n", This, index, level); -+ -+ if (level < 0.f || level > 1.f) -+ return E_INVALIDARG; -+ -+ if (index >= This->ss.channels) -+ return E_INVALIDARG; -+ -+ hr = AudioStreamVolume_GetAllVolumes(iface, This->ss.channels, volumes); -+ volumes[index] = level; -+ if (SUCCEEDED(hr)) -+ hr = AudioStreamVolume_SetAllVolumes(iface, This->ss.channels, volumes); -+ return hr; -+} -+ -+static HRESULT WINAPI AudioStreamVolume_GetChannelVolume( -+ IAudioStreamVolume *iface, UINT32 index, float *level) -+{ -+ ACImpl *This = impl_from_IAudioStreamVolume(iface); -+ float volumes[PA_CHANNELS_MAX]; -+ HRESULT hr; -+ -+ TRACE("(%p)->(%d, %p)\n", This, index, level); -+ -+ if (!level) -+ return E_POINTER; -+ -+ if (index >= This->ss.channels) -+ return E_INVALIDARG; -+ -+ hr = AudioStreamVolume_GetAllVolumes(iface, This->ss.channels, volumes); -+ if (SUCCEEDED(hr)) -+ *level = volumes[index]; -+ return hr; -+} -+ -+static const IAudioStreamVolumeVtbl AudioStreamVolume_Vtbl = -+{ -+ AudioStreamVolume_QueryInterface, -+ AudioStreamVolume_AddRef, -+ AudioStreamVolume_Release, -+ AudioStreamVolume_GetChannelCount, -+ AudioStreamVolume_SetChannelVolume, -+ AudioStreamVolume_GetChannelVolume, -+ AudioStreamVolume_SetAllVolumes, -+ AudioStreamVolume_GetAllVolumes -+}; -+ - HRESULT WINAPI AUDDRV_GetAudioSessionManager(IMMDevice *device, - IAudioSessionManager2 **out) - { --- -1.8.5.3 - - -From 1ae8165becd14b158a3c6b4841e0b4486c7821c0 Mon Sep 17 00:00:00 2001 -From: Maarten Lankhorst -Date: Sun, 19 Jan 2014 11:34:46 +0100 -Subject: winepulse: Add session support - ---- -Copied verbatim from winealsa ---- - dlls/winepulse.drv/mmdevdrv.c | 849 +++++++++++++++++++++++++++++++++++++++++- - 1 file changed, 848 insertions(+), 1 deletion(-) - -diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c -index b7414c2..64ee62e 100644 ---- a/dlls/winepulse.drv/mmdevdrv.c -+++ b/dlls/winepulse.drv/mmdevdrv.c -@@ -69,6 +69,7 @@ static pa_mainloop *pulse_ml; - static HANDLE pulse_thread; - static pthread_mutex_t pulse_lock = PTHREAD_MUTEX_INITIALIZER; - static pthread_cond_t pulse_cond = PTHREAD_COND_INITIALIZER; -+static struct list g_sessions = LIST_INIT(g_sessions); - - /* Mixer format + period times */ - static WAVEFORMATEXTENSIBLE pulse_fmt[2]; -@@ -105,6 +106,31 @@ BOOL WINAPI DllMain(HINSTANCE dll, DWORD reason, void *reserved) - - typedef struct ACImpl ACImpl; - -+typedef struct _AudioSession { -+ GUID guid; -+ struct list clients; -+ -+ IMMDevice *device; -+ -+ float master_vol; -+ UINT32 channel_count; -+ float *channel_vols; -+ BOOL mute; -+ -+ struct list entry; -+} AudioSession; -+ -+typedef struct _AudioSessionWrapper { -+ IAudioSessionControl2 IAudioSessionControl2_iface; -+ IChannelAudioVolume IChannelAudioVolume_iface; -+ ISimpleAudioVolume ISimpleAudioVolume_iface; -+ -+ LONG ref; -+ -+ ACImpl *client; -+ AudioSession *session; -+} AudioSessionWrapper; -+ - typedef struct _ACPacket { - struct list entry; - UINT64 qpcpos; -@@ -139,6 +165,8 @@ struct ACImpl { - INT64 clock_lastpos, clock_written; - pa_usec_t clock_pulse; - -+ AudioSession *session; -+ AudioSessionWrapper *session_wrapper; - struct list packet_free_head; - struct list packet_filled_head; - }; -@@ -148,10 +176,15 @@ static const WCHAR defaultW[] = {'P','u','l','s','e','a','u','d','i','o',0}; - static const IAudioClientVtbl AudioClient_Vtbl; - static const IAudioRenderClientVtbl AudioRenderClient_Vtbl; - static const IAudioCaptureClientVtbl AudioCaptureClient_Vtbl; -+static const IAudioSessionControl2Vtbl AudioSessionControl2_Vtbl; -+static const ISimpleAudioVolumeVtbl SimpleAudioVolume_Vtbl; -+static const IChannelAudioVolumeVtbl ChannelAudioVolume_Vtbl; - static const IAudioClockVtbl AudioClock_Vtbl; - static const IAudioClock2Vtbl AudioClock2_Vtbl; - static const IAudioStreamVolumeVtbl AudioStreamVolume_Vtbl; - -+static AudioSessionWrapper *AudioSessionWrapper_Create(ACImpl *client); -+ - static inline ACImpl *impl_from_IAudioClient(IAudioClient *iface) - { - return CONTAINING_RECORD(iface, ACImpl, IAudioClient_iface); -@@ -167,6 +200,21 @@ static inline ACImpl *impl_from_IAudioCaptureClient(IAudioCaptureClient *iface) - return CONTAINING_RECORD(iface, ACImpl, IAudioCaptureClient_iface); - } - -+static inline AudioSessionWrapper *impl_from_IAudioSessionControl2(IAudioSessionControl2 *iface) -+{ -+ return CONTAINING_RECORD(iface, AudioSessionWrapper, IAudioSessionControl2_iface); -+} -+ -+static inline AudioSessionWrapper *impl_from_ISimpleAudioVolume(ISimpleAudioVolume *iface) -+{ -+ return CONTAINING_RECORD(iface, AudioSessionWrapper, ISimpleAudioVolume_iface); -+} -+ -+static inline AudioSessionWrapper *impl_from_IChannelAudioVolume(IChannelAudioVolume *iface) -+{ -+ return CONTAINING_RECORD(iface, AudioSessionWrapper, IChannelAudioVolume_iface); -+} -+ - static inline ACImpl *impl_from_IAudioClock(IAudioClock *iface) - { - return CONTAINING_RECORD(iface, ACImpl, IAudioClock_iface); -@@ -897,6 +945,85 @@ static DWORD get_channel_mask(unsigned int channels) - return 0; - } - -+static void session_init_vols(AudioSession *session, UINT channels) -+{ -+ if (session->channel_count < channels) { -+ UINT i; -+ -+ if (session->channel_vols) -+ session->channel_vols = HeapReAlloc(GetProcessHeap(), 0, -+ session->channel_vols, sizeof(float) * channels); -+ else -+ session->channel_vols = HeapAlloc(GetProcessHeap(), 0, -+ sizeof(float) * channels); -+ if (!session->channel_vols) -+ return; -+ -+ for(i = session->channel_count; i < channels; ++i) -+ session->channel_vols[i] = 1.f; -+ -+ session->channel_count = channels; -+ } -+} -+ -+static AudioSession *create_session(const GUID *guid, IMMDevice *device, -+ UINT num_channels) -+{ -+ AudioSession *ret; -+ -+ ret = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(AudioSession)); -+ if (!ret) -+ return NULL; -+ -+ memcpy(&ret->guid, guid, sizeof(GUID)); -+ -+ ret->device = device; -+ -+ list_init(&ret->clients); -+ -+ list_add_head(&g_sessions, &ret->entry); -+ -+ session_init_vols(ret, num_channels); -+ -+ ret->master_vol = 1.f; -+ -+ return ret; -+} -+ -+/* if channels == 0, then this will return or create a session with -+ * matching dataflow and GUID. otherwise, channels must also match */ -+static HRESULT get_audio_session(const GUID *sessionguid, -+ IMMDevice *device, UINT channels, AudioSession **out) -+{ -+ AudioSession *session; -+ -+ if (!sessionguid || IsEqualGUID(sessionguid, &GUID_NULL)) { -+ *out = create_session(&GUID_NULL, device, channels); -+ if (!*out) -+ return E_OUTOFMEMORY; -+ -+ return S_OK; -+ } -+ -+ *out = NULL; -+ LIST_FOR_EACH_ENTRY(session, &g_sessions, AudioSession, entry) { -+ if (session->device == device && -+ IsEqualGUID(sessionguid, &session->guid)) { -+ session_init_vols(session, channels); -+ *out = session; -+ break; -+ } -+ } -+ -+ if (!*out) { -+ *out = create_session(sessionguid, device, channels); -+ if (!*out) -+ return E_OUTOFMEMORY; -+ } -+ -+ return S_OK; -+} -+ - static HRESULT pulse_spec_from_waveformat(ACImpl *This, const WAVEFORMATEX *fmt) - { - pa_channel_map_init(&This->map); -@@ -1083,6 +1210,10 @@ static HRESULT WINAPI AudioClient_Initialize(IAudioClient *iface, - assert(!capture_packets || data - This->bufsize_bytes == This->tmp_buffer); - } - } -+ if (SUCCEEDED(hr)) -+ hr = get_audio_session(sessionguid, This->parent, fmt->nChannels, &This->session); -+ if (SUCCEEDED(hr)) -+ list_add_tail(&This->session->clients, &This->entry); - - exit: - if (FAILED(hr)) { -@@ -1474,6 +1605,20 @@ static HRESULT WINAPI AudioClient_GetService(IAudioClient *iface, REFIID riid, - *ppv = &This->IAudioClock_iface; - } else if (IsEqualIID(riid, &IID_IAudioStreamVolume)) { - *ppv = &This->IAudioStreamVolume_iface; -+ } else if (IsEqualIID(riid, &IID_IAudioSessionControl) || -+ IsEqualIID(riid, &IID_IChannelAudioVolume) || -+ IsEqualIID(riid, &IID_ISimpleAudioVolume)) { -+ if (!This->session_wrapper) { -+ This->session_wrapper = AudioSessionWrapper_Create(This); -+ if (!This->session_wrapper) -+ return E_OUTOFMEMORY; -+ } -+ if (IsEqualIID(riid, &IID_IAudioSessionControl)) -+ *ppv = &This->session_wrapper->IAudioSessionControl2_iface; -+ else if (IsEqualIID(riid, &IID_IChannelAudioVolume)) -+ *ppv = &This->session_wrapper->IChannelAudioVolume_iface; -+ else if (IsEqualIID(riid, &IID_ISimpleAudioVolume)) -+ *ppv = &This->session_wrapper->ISimpleAudioVolume_iface; - } - - if (*ppv) { -@@ -2158,9 +2303,711 @@ static const IAudioStreamVolumeVtbl AudioStreamVolume_Vtbl = - AudioStreamVolume_GetAllVolumes - }; - -+static AudioSessionWrapper *AudioSessionWrapper_Create(ACImpl *client) -+{ -+ AudioSessionWrapper *ret; -+ -+ ret = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, -+ sizeof(AudioSessionWrapper)); -+ if (!ret) -+ return NULL; -+ -+ ret->IAudioSessionControl2_iface.lpVtbl = &AudioSessionControl2_Vtbl; -+ ret->ISimpleAudioVolume_iface.lpVtbl = &SimpleAudioVolume_Vtbl; -+ ret->IChannelAudioVolume_iface.lpVtbl = &ChannelAudioVolume_Vtbl; -+ -+ ret->ref = !client; -+ -+ ret->client = client; -+ if (client) { -+ ret->session = client->session; -+ AudioClient_AddRef(&client->IAudioClient_iface); -+ } -+ -+ return ret; -+} -+ -+static HRESULT WINAPI AudioSessionControl_QueryInterface( -+ IAudioSessionControl2 *iface, REFIID riid, void **ppv) -+{ -+ TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); -+ -+ if (!ppv) -+ return E_POINTER; -+ *ppv = NULL; -+ -+ if (IsEqualIID(riid, &IID_IUnknown) || -+ IsEqualIID(riid, &IID_IAudioSessionControl) || -+ IsEqualIID(riid, &IID_IAudioSessionControl2)) -+ *ppv = iface; -+ if (*ppv) { -+ IUnknown_AddRef((IUnknown*)*ppv); -+ return S_OK; -+ } -+ -+ WARN("Unknown interface %s\n", debugstr_guid(riid)); -+ return E_NOINTERFACE; -+} -+ -+static ULONG WINAPI AudioSessionControl_AddRef(IAudioSessionControl2 *iface) -+{ -+ AudioSessionWrapper *This = impl_from_IAudioSessionControl2(iface); -+ ULONG ref; -+ ref = InterlockedIncrement(&This->ref); -+ TRACE("(%p) Refcount now %u\n", This, ref); -+ return ref; -+} -+ -+static ULONG WINAPI AudioSessionControl_Release(IAudioSessionControl2 *iface) -+{ -+ AudioSessionWrapper *This = impl_from_IAudioSessionControl2(iface); -+ ULONG ref; -+ ref = InterlockedDecrement(&This->ref); -+ TRACE("(%p) Refcount now %u\n", This, ref); -+ if (!ref) { -+ if (This->client) { -+ This->client->session_wrapper = NULL; -+ AudioClient_Release(&This->client->IAudioClient_iface); -+ } -+ HeapFree(GetProcessHeap(), 0, This); -+ } -+ return ref; -+} -+ -+static HRESULT WINAPI AudioSessionControl_GetState(IAudioSessionControl2 *iface, -+ AudioSessionState *state) -+{ -+ AudioSessionWrapper *This = impl_from_IAudioSessionControl2(iface); -+ ACImpl *client; -+ -+ TRACE("(%p)->(%p)\n", This, state); -+ -+ if (!state) -+ return NULL_PTR_ERR; -+ -+ pthread_mutex_lock(&pulse_lock); -+ if (list_empty(&This->session->clients)) { -+ *state = AudioSessionStateExpired; -+ goto out; -+ } -+ LIST_FOR_EACH_ENTRY(client, &This->session->clients, ACImpl, entry) { -+ if (client->started) { -+ *state = AudioSessionStateActive; -+ goto out; -+ } -+ } -+ *state = AudioSessionStateInactive; -+ -+out: -+ pthread_mutex_unlock(&pulse_lock); -+ return S_OK; -+} -+ -+static HRESULT WINAPI AudioSessionControl_GetDisplayName( -+ IAudioSessionControl2 *iface, WCHAR **name) -+{ -+ AudioSessionWrapper *This = impl_from_IAudioSessionControl2(iface); -+ -+ FIXME("(%p)->(%p) - stub\n", This, name); -+ -+ return E_NOTIMPL; -+} -+ -+static HRESULT WINAPI AudioSessionControl_SetDisplayName( -+ IAudioSessionControl2 *iface, const WCHAR *name, const GUID *session) -+{ -+ AudioSessionWrapper *This = impl_from_IAudioSessionControl2(iface); -+ -+ FIXME("(%p)->(%p, %s) - stub\n", This, name, debugstr_guid(session)); -+ -+ return E_NOTIMPL; -+} -+ -+static HRESULT WINAPI AudioSessionControl_GetIconPath( -+ IAudioSessionControl2 *iface, WCHAR **path) -+{ -+ AudioSessionWrapper *This = impl_from_IAudioSessionControl2(iface); -+ -+ FIXME("(%p)->(%p) - stub\n", This, path); -+ -+ return E_NOTIMPL; -+} -+ -+static HRESULT WINAPI AudioSessionControl_SetIconPath( -+ IAudioSessionControl2 *iface, const WCHAR *path, const GUID *session) -+{ -+ AudioSessionWrapper *This = impl_from_IAudioSessionControl2(iface); -+ -+ FIXME("(%p)->(%p, %s) - stub\n", This, path, debugstr_guid(session)); -+ -+ return E_NOTIMPL; -+} -+ -+static HRESULT WINAPI AudioSessionControl_GetGroupingParam( -+ IAudioSessionControl2 *iface, GUID *group) -+{ -+ AudioSessionWrapper *This = impl_from_IAudioSessionControl2(iface); -+ -+ FIXME("(%p)->(%p) - stub\n", This, group); -+ -+ return E_NOTIMPL; -+} -+ -+static HRESULT WINAPI AudioSessionControl_SetGroupingParam( -+ IAudioSessionControl2 *iface, const GUID *group, const GUID *session) -+{ -+ AudioSessionWrapper *This = impl_from_IAudioSessionControl2(iface); -+ -+ FIXME("(%p)->(%s, %s) - stub\n", This, debugstr_guid(group), -+ debugstr_guid(session)); -+ -+ return E_NOTIMPL; -+} -+ -+static HRESULT WINAPI AudioSessionControl_RegisterAudioSessionNotification( -+ IAudioSessionControl2 *iface, IAudioSessionEvents *events) -+{ -+ AudioSessionWrapper *This = impl_from_IAudioSessionControl2(iface); -+ -+ FIXME("(%p)->(%p) - stub\n", This, events); -+ -+ return S_OK; -+} -+ -+static HRESULT WINAPI AudioSessionControl_UnregisterAudioSessionNotification( -+ IAudioSessionControl2 *iface, IAudioSessionEvents *events) -+{ -+ AudioSessionWrapper *This = impl_from_IAudioSessionControl2(iface); -+ -+ FIXME("(%p)->(%p) - stub\n", This, events); -+ -+ return S_OK; -+} -+ -+static HRESULT WINAPI AudioSessionControl_GetSessionIdentifier( -+ IAudioSessionControl2 *iface, WCHAR **id) -+{ -+ AudioSessionWrapper *This = impl_from_IAudioSessionControl2(iface); -+ -+ FIXME("(%p)->(%p) - stub\n", This, id); -+ -+ return E_NOTIMPL; -+} -+ -+static HRESULT WINAPI AudioSessionControl_GetSessionInstanceIdentifier( -+ IAudioSessionControl2 *iface, WCHAR **id) -+{ -+ AudioSessionWrapper *This = impl_from_IAudioSessionControl2(iface); -+ -+ FIXME("(%p)->(%p) - stub\n", This, id); -+ -+ return E_NOTIMPL; -+} -+ -+static HRESULT WINAPI AudioSessionControl_GetProcessId( -+ IAudioSessionControl2 *iface, DWORD *pid) -+{ -+ AudioSessionWrapper *This = impl_from_IAudioSessionControl2(iface); -+ -+ TRACE("(%p)->(%p)\n", This, pid); -+ -+ if (!pid) -+ return E_POINTER; -+ -+ *pid = GetCurrentProcessId(); -+ -+ return S_OK; -+} -+ -+static HRESULT WINAPI AudioSessionControl_IsSystemSoundsSession( -+ IAudioSessionControl2 *iface) -+{ -+ AudioSessionWrapper *This = impl_from_IAudioSessionControl2(iface); -+ -+ TRACE("(%p)\n", This); -+ -+ return S_FALSE; -+} -+ -+static HRESULT WINAPI AudioSessionControl_SetDuckingPreference( -+ IAudioSessionControl2 *iface, BOOL optout) -+{ -+ AudioSessionWrapper *This = impl_from_IAudioSessionControl2(iface); -+ -+ TRACE("(%p)->(%d)\n", This, optout); -+ -+ return S_OK; -+} -+ -+static const IAudioSessionControl2Vtbl AudioSessionControl2_Vtbl = -+{ -+ AudioSessionControl_QueryInterface, -+ AudioSessionControl_AddRef, -+ AudioSessionControl_Release, -+ AudioSessionControl_GetState, -+ AudioSessionControl_GetDisplayName, -+ AudioSessionControl_SetDisplayName, -+ AudioSessionControl_GetIconPath, -+ AudioSessionControl_SetIconPath, -+ AudioSessionControl_GetGroupingParam, -+ AudioSessionControl_SetGroupingParam, -+ AudioSessionControl_RegisterAudioSessionNotification, -+ AudioSessionControl_UnregisterAudioSessionNotification, -+ AudioSessionControl_GetSessionIdentifier, -+ AudioSessionControl_GetSessionInstanceIdentifier, -+ AudioSessionControl_GetProcessId, -+ AudioSessionControl_IsSystemSoundsSession, -+ AudioSessionControl_SetDuckingPreference -+}; -+ -+typedef struct _SessionMgr { -+ IAudioSessionManager2 IAudioSessionManager2_iface; -+ -+ LONG ref; -+ -+ IMMDevice *device; -+} SessionMgr; -+ -+static HRESULT WINAPI AudioSessionManager_QueryInterface(IAudioSessionManager2 *iface, -+ REFIID riid, void **ppv) -+{ -+ TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); -+ -+ if (!ppv) -+ return E_POINTER; -+ *ppv = NULL; -+ -+ if (IsEqualIID(riid, &IID_IUnknown) || -+ IsEqualIID(riid, &IID_IAudioSessionManager) || -+ IsEqualIID(riid, &IID_IAudioSessionManager2)) -+ *ppv = iface; -+ if (*ppv) { -+ IUnknown_AddRef((IUnknown*)*ppv); -+ return S_OK; -+ } -+ -+ WARN("Unknown interface %s\n", debugstr_guid(riid)); -+ return E_NOINTERFACE; -+} -+ -+static inline SessionMgr *impl_from_IAudioSessionManager2(IAudioSessionManager2 *iface) -+{ -+ return CONTAINING_RECORD(iface, SessionMgr, IAudioSessionManager2_iface); -+} -+ -+static ULONG WINAPI AudioSessionManager_AddRef(IAudioSessionManager2 *iface) -+{ -+ SessionMgr *This = impl_from_IAudioSessionManager2(iface); -+ ULONG ref; -+ ref = InterlockedIncrement(&This->ref); -+ TRACE("(%p) Refcount now %u\n", This, ref); -+ return ref; -+} -+ -+static ULONG WINAPI AudioSessionManager_Release(IAudioSessionManager2 *iface) -+{ -+ SessionMgr *This = impl_from_IAudioSessionManager2(iface); -+ ULONG ref; -+ ref = InterlockedDecrement(&This->ref); -+ TRACE("(%p) Refcount now %u\n", This, ref); -+ if (!ref) -+ HeapFree(GetProcessHeap(), 0, This); -+ return ref; -+} -+ -+static HRESULT WINAPI AudioSessionManager_GetAudioSessionControl( -+ IAudioSessionManager2 *iface, const GUID *session_guid, DWORD flags, -+ IAudioSessionControl **out) -+{ -+ SessionMgr *This = impl_from_IAudioSessionManager2(iface); -+ AudioSession *session; -+ AudioSessionWrapper *wrapper; -+ HRESULT hr; -+ -+ TRACE("(%p)->(%s, %x, %p)\n", This, debugstr_guid(session_guid), -+ flags, out); -+ -+ hr = get_audio_session(session_guid, This->device, 0, &session); -+ if (FAILED(hr)) -+ return hr; -+ -+ wrapper = AudioSessionWrapper_Create(NULL); -+ if (!wrapper) -+ return E_OUTOFMEMORY; -+ -+ wrapper->session = session; -+ -+ *out = (IAudioSessionControl*)&wrapper->IAudioSessionControl2_iface; -+ -+ return S_OK; -+} -+ -+static HRESULT WINAPI AudioSessionManager_GetSimpleAudioVolume( -+ IAudioSessionManager2 *iface, const GUID *session_guid, DWORD flags, -+ ISimpleAudioVolume **out) -+{ -+ SessionMgr *This = impl_from_IAudioSessionManager2(iface); -+ AudioSession *session; -+ AudioSessionWrapper *wrapper; -+ HRESULT hr; -+ -+ TRACE("(%p)->(%s, %x, %p)\n", This, debugstr_guid(session_guid), -+ flags, out); -+ -+ hr = get_audio_session(session_guid, This->device, 0, &session); -+ if (FAILED(hr)) -+ return hr; -+ -+ wrapper = AudioSessionWrapper_Create(NULL); -+ if (!wrapper) -+ return E_OUTOFMEMORY; -+ -+ wrapper->session = session; -+ -+ *out = &wrapper->ISimpleAudioVolume_iface; -+ -+ return S_OK; -+} -+ -+static HRESULT WINAPI AudioSessionManager_GetSessionEnumerator( -+ IAudioSessionManager2 *iface, IAudioSessionEnumerator **out) -+{ -+ SessionMgr *This = impl_from_IAudioSessionManager2(iface); -+ FIXME("(%p)->(%p) - stub\n", This, out); -+ return E_NOTIMPL; -+} -+ -+static HRESULT WINAPI AudioSessionManager_RegisterSessionNotification( -+ IAudioSessionManager2 *iface, IAudioSessionNotification *notification) -+{ -+ SessionMgr *This = impl_from_IAudioSessionManager2(iface); -+ FIXME("(%p)->(%p) - stub\n", This, notification); -+ return E_NOTIMPL; -+} -+ -+static HRESULT WINAPI AudioSessionManager_UnregisterSessionNotification( -+ IAudioSessionManager2 *iface, IAudioSessionNotification *notification) -+{ -+ SessionMgr *This = impl_from_IAudioSessionManager2(iface); -+ FIXME("(%p)->(%p) - stub\n", This, notification); -+ return E_NOTIMPL; -+} -+ -+static HRESULT WINAPI AudioSessionManager_RegisterDuckNotification( -+ IAudioSessionManager2 *iface, const WCHAR *session_id, -+ IAudioVolumeDuckNotification *notification) -+{ -+ SessionMgr *This = impl_from_IAudioSessionManager2(iface); -+ FIXME("(%p)->(%p) - stub\n", This, notification); -+ return E_NOTIMPL; -+} -+ -+static HRESULT WINAPI AudioSessionManager_UnregisterDuckNotification( -+ IAudioSessionManager2 *iface, -+ IAudioVolumeDuckNotification *notification) -+{ -+ SessionMgr *This = impl_from_IAudioSessionManager2(iface); -+ FIXME("(%p)->(%p) - stub\n", This, notification); -+ return E_NOTIMPL; -+} -+ -+static const IAudioSessionManager2Vtbl AudioSessionManager2_Vtbl = -+{ -+ AudioSessionManager_QueryInterface, -+ AudioSessionManager_AddRef, -+ AudioSessionManager_Release, -+ AudioSessionManager_GetAudioSessionControl, -+ AudioSessionManager_GetSimpleAudioVolume, -+ AudioSessionManager_GetSessionEnumerator, -+ AudioSessionManager_RegisterSessionNotification, -+ AudioSessionManager_UnregisterSessionNotification, -+ AudioSessionManager_RegisterDuckNotification, -+ AudioSessionManager_UnregisterDuckNotification -+}; -+ -+static HRESULT WINAPI SimpleAudioVolume_QueryInterface( -+ ISimpleAudioVolume *iface, REFIID riid, void **ppv) -+{ -+ TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); -+ -+ if (!ppv) -+ return E_POINTER; -+ *ppv = NULL; -+ -+ if (IsEqualIID(riid, &IID_IUnknown) || -+ IsEqualIID(riid, &IID_ISimpleAudioVolume)) -+ *ppv = iface; -+ if (*ppv) { -+ IUnknown_AddRef((IUnknown*)*ppv); -+ return S_OK; -+ } -+ -+ WARN("Unknown interface %s\n", debugstr_guid(riid)); -+ return E_NOINTERFACE; -+} -+ -+static ULONG WINAPI SimpleAudioVolume_AddRef(ISimpleAudioVolume *iface) -+{ -+ AudioSessionWrapper *This = impl_from_ISimpleAudioVolume(iface); -+ return AudioSessionControl_AddRef(&This->IAudioSessionControl2_iface); -+} -+ -+static ULONG WINAPI SimpleAudioVolume_Release(ISimpleAudioVolume *iface) -+{ -+ AudioSessionWrapper *This = impl_from_ISimpleAudioVolume(iface); -+ return AudioSessionControl_Release(&This->IAudioSessionControl2_iface); -+} -+ -+static HRESULT WINAPI SimpleAudioVolume_SetMasterVolume( -+ ISimpleAudioVolume *iface, float level, const GUID *context) -+{ -+ AudioSessionWrapper *This = impl_from_ISimpleAudioVolume(iface); -+ AudioSession *session = This->session; -+ -+ TRACE("(%p)->(%f, %s)\n", session, level, wine_dbgstr_guid(context)); -+ -+ if (level < 0.f || level > 1.f) -+ return E_INVALIDARG; -+ -+ if (context) -+ FIXME("Notifications not supported yet\n"); -+ -+ TRACE("Pulseaudio does not support session volume control\n"); -+ -+ pthread_mutex_lock(&pulse_lock); -+ session->master_vol = level; -+ pthread_mutex_unlock(&pulse_lock); -+ -+ return S_OK; -+} -+ -+static HRESULT WINAPI SimpleAudioVolume_GetMasterVolume( -+ ISimpleAudioVolume *iface, float *level) -+{ -+ AudioSessionWrapper *This = impl_from_ISimpleAudioVolume(iface); -+ AudioSession *session = This->session; -+ -+ TRACE("(%p)->(%p)\n", session, level); -+ -+ if (!level) -+ return NULL_PTR_ERR; -+ -+ *level = session->master_vol; -+ -+ return S_OK; -+} -+ -+static HRESULT WINAPI SimpleAudioVolume_SetMute(ISimpleAudioVolume *iface, -+ BOOL mute, const GUID *context) -+{ -+ AudioSessionWrapper *This = impl_from_ISimpleAudioVolume(iface); -+ AudioSession *session = This->session; -+ -+ TRACE("(%p)->(%u, %p)\n", session, mute, context); -+ -+ if (context) -+ FIXME("Notifications not supported yet\n"); -+ -+ session->mute = mute; -+ -+ return S_OK; -+} -+ -+static HRESULT WINAPI SimpleAudioVolume_GetMute(ISimpleAudioVolume *iface, -+ BOOL *mute) -+{ -+ AudioSessionWrapper *This = impl_from_ISimpleAudioVolume(iface); -+ AudioSession *session = This->session; -+ -+ TRACE("(%p)->(%p)\n", session, mute); -+ -+ if (!mute) -+ return NULL_PTR_ERR; -+ -+ *mute = session->mute; -+ -+ return S_OK; -+} -+ -+static const ISimpleAudioVolumeVtbl SimpleAudioVolume_Vtbl = -+{ -+ SimpleAudioVolume_QueryInterface, -+ SimpleAudioVolume_AddRef, -+ SimpleAudioVolume_Release, -+ SimpleAudioVolume_SetMasterVolume, -+ SimpleAudioVolume_GetMasterVolume, -+ SimpleAudioVolume_SetMute, -+ SimpleAudioVolume_GetMute -+}; -+ -+static HRESULT WINAPI ChannelAudioVolume_QueryInterface( -+ IChannelAudioVolume *iface, REFIID riid, void **ppv) -+{ -+ TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); -+ -+ if (!ppv) -+ return E_POINTER; -+ *ppv = NULL; -+ -+ if (IsEqualIID(riid, &IID_IUnknown) || -+ IsEqualIID(riid, &IID_IChannelAudioVolume)) -+ *ppv = iface; -+ if (*ppv) { -+ IUnknown_AddRef((IUnknown*)*ppv); -+ return S_OK; -+ } -+ -+ WARN("Unknown interface %s\n", debugstr_guid(riid)); -+ return E_NOINTERFACE; -+} -+ -+static ULONG WINAPI ChannelAudioVolume_AddRef(IChannelAudioVolume *iface) -+{ -+ AudioSessionWrapper *This = impl_from_IChannelAudioVolume(iface); -+ return AudioSessionControl_AddRef(&This->IAudioSessionControl2_iface); -+} -+ -+static ULONG WINAPI ChannelAudioVolume_Release(IChannelAudioVolume *iface) -+{ -+ AudioSessionWrapper *This = impl_from_IChannelAudioVolume(iface); -+ return AudioSessionControl_Release(&This->IAudioSessionControl2_iface); -+} -+ -+static HRESULT WINAPI ChannelAudioVolume_GetChannelCount( -+ IChannelAudioVolume *iface, UINT32 *out) -+{ -+ AudioSessionWrapper *This = impl_from_IChannelAudioVolume(iface); -+ AudioSession *session = This->session; -+ -+ TRACE("(%p)->(%p)\n", session, out); -+ -+ if (!out) -+ return NULL_PTR_ERR; -+ -+ *out = session->channel_count; -+ -+ return S_OK; -+} -+ -+static HRESULT WINAPI ChannelAudioVolume_SetChannelVolume( -+ IChannelAudioVolume *iface, UINT32 index, float level, -+ const GUID *context) -+{ -+ AudioSessionWrapper *This = impl_from_IChannelAudioVolume(iface); -+ AudioSession *session = This->session; -+ -+ TRACE("(%p)->(%d, %f, %s)\n", session, index, level, -+ wine_dbgstr_guid(context)); -+ -+ if (level < 0.f || level > 1.f) -+ return E_INVALIDARG; -+ -+ if (index >= session->channel_count) -+ return E_INVALIDARG; -+ -+ if (context) -+ FIXME("Notifications not supported yet\n"); -+ -+ TRACE("Pulseaudio does not support session volume control\n"); -+ -+ pthread_mutex_lock(&pulse_lock); -+ session->channel_vols[index] = level; -+ pthread_mutex_unlock(&pulse_lock); -+ -+ return S_OK; -+} -+ -+static HRESULT WINAPI ChannelAudioVolume_GetChannelVolume( -+ IChannelAudioVolume *iface, UINT32 index, float *level) -+{ -+ AudioSessionWrapper *This = impl_from_IChannelAudioVolume(iface); -+ AudioSession *session = This->session; -+ -+ TRACE("(%p)->(%d, %p)\n", session, index, level); -+ -+ if (!level) -+ return NULL_PTR_ERR; -+ -+ if (index >= session->channel_count) -+ return E_INVALIDARG; -+ -+ *level = session->channel_vols[index]; -+ -+ return S_OK; -+} -+ -+static HRESULT WINAPI ChannelAudioVolume_SetAllVolumes( -+ IChannelAudioVolume *iface, UINT32 count, const float *levels, -+ const GUID *context) -+{ -+ AudioSessionWrapper *This = impl_from_IChannelAudioVolume(iface); -+ AudioSession *session = This->session; -+ int i; -+ -+ TRACE("(%p)->(%d, %p, %s)\n", session, count, levels, -+ wine_dbgstr_guid(context)); -+ -+ if (!levels) -+ return NULL_PTR_ERR; -+ -+ if (count != session->channel_count) -+ return E_INVALIDARG; -+ -+ if (context) -+ FIXME("Notifications not supported yet\n"); -+ -+ TRACE("Pulseaudio does not support session volume control\n"); -+ -+ pthread_mutex_lock(&pulse_lock); -+ for(i = 0; i < count; ++i) -+ session->channel_vols[i] = levels[i]; -+ pthread_mutex_unlock(&pulse_lock); -+ return S_OK; -+} -+ -+static HRESULT WINAPI ChannelAudioVolume_GetAllVolumes( -+ IChannelAudioVolume *iface, UINT32 count, float *levels) -+{ -+ AudioSessionWrapper *This = impl_from_IChannelAudioVolume(iface); -+ AudioSession *session = This->session; -+ int i; -+ -+ TRACE("(%p)->(%d, %p)\n", session, count, levels); -+ -+ if (!levels) -+ return NULL_PTR_ERR; -+ -+ if (count != session->channel_count) -+ return E_INVALIDARG; -+ -+ for(i = 0; i < count; ++i) -+ levels[i] = session->channel_vols[i]; -+ -+ return S_OK; -+} -+ -+static const IChannelAudioVolumeVtbl ChannelAudioVolume_Vtbl = -+{ -+ ChannelAudioVolume_QueryInterface, -+ ChannelAudioVolume_AddRef, -+ ChannelAudioVolume_Release, -+ ChannelAudioVolume_GetChannelCount, -+ ChannelAudioVolume_SetChannelVolume, -+ ChannelAudioVolume_GetChannelVolume, -+ ChannelAudioVolume_SetAllVolumes, -+ ChannelAudioVolume_GetAllVolumes -+}; -+ - HRESULT WINAPI AUDDRV_GetAudioSessionManager(IMMDevice *device, - IAudioSessionManager2 **out) - { -+ SessionMgr *This = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(SessionMgr)); - *out = NULL; -- return E_NOTIMPL; -+ if (!This) -+ return E_OUTOFMEMORY; -+ This->IAudioSessionManager2_iface.lpVtbl = &AudioSessionManager2_Vtbl; -+ This->device = device; -+ This->ref = 1; -+ *out = &This->IAudioSessionManager2_iface; -+ return S_OK; - } --- -1.8.5.3 - - -From e2d2036c3c79377bece8faf4428d7591957a7604 Mon Sep 17 00:00:00 2001 -From: Maarten Lankhorst -Date: Sun, 19 Jan 2014 11:34:46 +0100 -Subject: fix fdels trailing whitespaces - -Happy? :P ---- - dlls/winepulse.drv/mmdevdrv.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c -index 64ee62e..5a71a3d 100644 ---- a/dlls/winepulse.drv/mmdevdrv.c -+++ b/dlls/winepulse.drv/mmdevdrv.c -@@ -1898,7 +1898,7 @@ static HRESULT WINAPI AudioCaptureClient_GetNextPacketSize( - TRACE("(%p)->(%p)\n", This, frames); - if (!frames) - return E_POINTER; -- -+ - pthread_mutex_lock(&pulse_lock); - ACImpl_GetCapturePad(This, NULL); - p = This->locked_ptr; -@@ -1998,7 +1998,7 @@ static HRESULT WINAPI AudioClock_GetPosition(IAudioClock *iface, UINT64 *pos, - else - *pos += This->pad; - } -- -+ - /* Make time never go backwards */ - if (*pos < This->clock_lastpos) - *pos = This->clock_lastpos; --- -1.8.5.3 - - -From 1a93d90dc92ac1bcfce7c6f00795f856a2c0b8a9 Mon Sep 17 00:00:00 2001 -From: Maarten Lankhorst -Date: Sun, 19 Jan 2014 11:34:46 +0100 -Subject: winepulse v12 - -Changes since v11: -- Fix incorrect assertions which may fail on moving a capture device -- Whitespace apply fixes - -Changes since v10: -- Make some members static -- Fix small memory leak in GetService ---- - dlls/winepulse.drv/mmdevdrv.c | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c -index 5a71a3d..960af3c 100644 ---- a/dlls/winepulse.drv/mmdevdrv.c -+++ b/dlls/winepulse.drv/mmdevdrv.c -@@ -596,10 +596,11 @@ static void pulse_rd_loop(ACImpl *This, size_t bytes) - dst = p->data; - while (rem) { - pa_stream_peek(This->stream, (const void**)&src, &src_len); -- assert(src_len && src_len <= bytes); -+ assert(src_len); - assert(This->peek_ofs < src_len); - src += This->peek_ofs; - src_len -= This->peek_ofs; -+ assert(src_len <= bytes); - - copy = rem; - if (copy > src_len) -@@ -627,9 +628,10 @@ static void pulse_rd_drop(ACImpl *This, size_t bytes) - while (rem) { - const void *src; - pa_stream_peek(This->stream, &src, &src_len); -- assert(src_len && src_len <= bytes); -+ assert(src_len); - assert(This->peek_ofs < src_len); - src_len -= This->peek_ofs; -+ assert(src_len <= bytes); - - copy = rem; - if (copy > src_len) --- -1.8.5.3 - - -From b5858b608b8c144649ceec9c2616bc45e087a128 Mon Sep 17 00:00:00 2001 -From: Maarten Lankhorst -Date: Sun, 19 Jan 2014 11:34:46 +0100 -Subject: winepulse v15: Add support for missing formats, and silence an error - for missing format tags - ---- - dlls/winepulse.drv/mmdevdrv.c | 17 ++++++++++++++++- - 1 file changed, 16 insertions(+), 1 deletion(-) - -diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c -index 960af3c..f52f119 100644 ---- a/dlls/winepulse.drv/mmdevdrv.c -+++ b/dlls/winepulse.drv/mmdevdrv.c -@@ -1109,7 +1109,22 @@ static HRESULT pulse_spec_from_waveformat(ACImpl *This, const WAVEFORMATEX *fmt) - } - break; - } -- default: FIXME("Unhandled tag %x\n", fmt->wFormatTag); -+ case WAVE_FORMAT_ALAW: -+ case WAVE_FORMAT_MULAW: -+ if (fmt->wBitsPerSample != 8) { -+ FIXME("Unsupported bpp %u for LAW\n", fmt->wBitsPerSample); -+ return AUDCLNT_E_UNSUPPORTED_FORMAT; -+ } -+ if (fmt->nChannels != 1 && fmt->nChannels != 2) { -+ FIXME("Unsupported channels %u for LAW\n", fmt->nChannels); -+ return AUDCLNT_E_UNSUPPORTED_FORMAT; -+ } -+ This->ss.format = fmt->wFormatTag == WAVE_FORMAT_MULAW ? PA_SAMPLE_ULAW : PA_SAMPLE_ALAW; -+ pa_channel_map_init_auto(&This->map, fmt->nChannels, PA_CHANNEL_MAP_ALSA); -+ break; -+ default: -+ WARN("Unhandled tag %x\n", fmt->wFormatTag); -+ return AUDCLNT_E_UNSUPPORTED_FORMAT; - } - This->ss.channels = This->map.channels; - if (!pa_channel_map_valid(&This->map) || This->ss.format == PA_SAMPLE_INVALID) { --- -1.8.5.3 - - -From f9808ddacc298c4171cf73fcd55a93a4bef7246a Mon Sep 17 00:00:00 2001 -From: Maarten Lankhorst -Date: Sun, 19 Jan 2014 11:34:46 +0100 -Subject: winepulse v16: Add official warning wine doesn't want to support - winepulse - -And give an alternative place to ask for support. -I wish it didn't have to come to this. ---- - dlls/winepulse.drv/mmdevdrv.c | 25 +++++++++++++++++++++++-- - 1 file changed, 23 insertions(+), 2 deletions(-) - -diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c -index f52f119..76a2e0e 100644 ---- a/dlls/winepulse.drv/mmdevdrv.c -+++ b/dlls/winepulse.drv/mmdevdrv.c -@@ -59,6 +59,7 @@ - #define NULL_PTR_ERR MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, RPC_X_NULL_REF_POINTER) - - WINE_DEFAULT_DEBUG_CHANNEL(pulse); -+WINE_DECLARE_DEBUG_CHANNEL(winediag); - - static const REFERENCE_TIME MinimumPeriod = 30000; - static const REFERENCE_TIME DefaultPeriod = 100000; -@@ -81,6 +82,8 @@ const WCHAR pulse_keyW[] = {'S','o','f','t','w','a','r','e','\\', - 'W','i','n','e','\\','P','u','l','s','e',0}; - const WCHAR pulse_streamW[] = { 'S','t','r','e','a','m','V','o','l',0 }; - -+static HANDLE warn_once; -+ - BOOL WINAPI DllMain(HINSTANCE dll, DWORD reason, void *reserved) - { - if (reason == DLL_PROCESS_ATTACH) { -@@ -99,7 +102,10 @@ BOOL WINAPI DllMain(HINSTANCE dll, DWORD reason, void *reserved) - } - if (pulse_ml) - pa_mainloop_quit(pulse_ml, 0); -- CloseHandle(pulse_thread); -+ if (pulse_thread) -+ CloseHandle(pulse_thread); -+ if (warn_once) -+ CloseHandle(warn_once); - } - return TRUE; - } -@@ -758,6 +764,10 @@ HRESULT WINAPI AUDDRV_GetEndpointIDs(EDataFlow flow, WCHAR ***ids, void ***keys, - int WINAPI AUDDRV_GetPriority(void) - { - HRESULT hr; -+ if (getenv("WINENOPULSE")) { -+ FIXME_(winediag)("winepulse has been temporarily disabled through the environment\n"); -+ return 0; -+ } - pthread_mutex_lock(&pulse_lock); - hr = pulse_connect(); - pthread_mutex_unlock(&pulse_lock); -@@ -771,7 +781,18 @@ HRESULT WINAPI AUDDRV_GetAudioEndpoint(void *key, IMMDevice *dev, - ACImpl *This; - int i; - -- TRACE("%p %p %d %p\n", key, dev, dataflow, out); -+ /* Give one visible warning per session -+ * Sadly wine has chosen not to accept the winepulse patch, so support ourselves -+ */ -+ if (!warn_once && (warn_once = CreateEventA(0, 0, 0, "__winepulse_warn_event")) && GetLastError() != ERROR_ALREADY_EXISTS) { -+ FIXME_(winediag)("Winepulse is not officially supported by the wine project\n"); -+ FIXME_(winediag)("For sound related feedback and support, please visit http://ubuntuforums.org/showthread.php?t=1960599\n"); -+ } else { -+ WARN_(winediag)("Winepulse is not officially supported by the wine project\n"); -+ WARN_(winediag)("For sound related feedback and support, please visit http://ubuntuforums.org/showthread.php?t=1960599\n"); -+ } -+ -+ TRACE("%s %p %p\n", debugstr_guid(guid), dev, out); - if (dataflow != eRender && dataflow != eCapture) - return E_UNEXPECTED; - --- -1.8.5.3 - - -From 51a9066caee7d170732815a625c829f80880263f Mon Sep 17 00:00:00 2001 -From: Maarten Lankhorst -Date: Sun, 19 Jan 2014 11:34:46 +0100 -Subject: winepulse v17: Fix winmm tests - -Handle dwChannelMask = SPEAKER_ALL better so WAVE_FORMAT_EXTENSIBLE tests pass too ---- - dlls/winepulse.drv/mmdevdrv.c | 72 +++++++++++++++++++++++++++++++++---------- - 1 file changed, 56 insertions(+), 16 deletions(-) - -diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c -index 76a2e0e..6e75674 100644 ---- a/dlls/winepulse.drv/mmdevdrv.c -+++ b/dlls/winepulse.drv/mmdevdrv.c -@@ -1066,6 +1066,8 @@ static HRESULT pulse_spec_from_waveformat(ACImpl *This, const WAVEFORMATEX *fmt) - This->ss.format = PA_SAMPLE_U8; - else if (fmt->wBitsPerSample == 16) - This->ss.format = PA_SAMPLE_S16LE; -+ else -+ return AUDCLNT_E_UNSUPPORTED_FORMAT; - pa_channel_map_init_auto(&This->map, fmt->nChannels, PA_CHANNEL_MAP_ALSA); - break; - case WAVE_FORMAT_EXTENSIBLE: { -@@ -1102,13 +1104,16 @@ static HRESULT pulse_spec_from_waveformat(ACImpl *This, const WAVEFORMATEX *fmt) - This->ss.format = PA_SAMPLE_S24_32LE; - else if (valid == 32) - This->ss.format = PA_SAMPLE_S32LE; -- default: - break; -+ default: -+ return AUDCLNT_E_UNSUPPORTED_FORMAT; - } - } - This->map.channels = fmt->nChannels; -- if (!mask) -+ if (!mask || mask == SPEAKER_ALL) - mask = get_channel_mask(fmt->nChannels); -+ else if (mask == ~0U && fmt->nChannels == 1) -+ mask = SPEAKER_FRONT_CENTER; - for (j = 0; j < sizeof(pulse_pos_from_wfx)/sizeof(*pulse_pos_from_wfx) && i < fmt->nChannels; ++j) { - if (mask & (1 << j)) - This->map.map[i++] = pulse_pos_from_wfx[j]; -@@ -1118,14 +1123,9 @@ static HRESULT pulse_spec_from_waveformat(ACImpl *This, const WAVEFORMATEX *fmt) - if (mask == SPEAKER_FRONT_CENTER) - This->map.map[0] = PA_CHANNEL_POSITION_MONO; - -- if ((mask & SPEAKER_ALL) && i < fmt->nChannels) { -- This->map.map[i++] = PA_CHANNEL_POSITION_MONO; -- FIXME("Is the 'all' channel mapped correctly?\n"); -- } -- - if (i < fmt->nChannels || (mask & SPEAKER_RESERVED)) { - This->map.channels = 0; -- ERR("Invalid channel mask: %i/%i and %x\n", i, fmt->nChannels, mask); -+ ERR("Invalid channel mask: %i/%i and %x(%x)\n", i, fmt->nChannels, mask, wfe->dwChannelMask); - break; - } - break; -@@ -1383,15 +1383,55 @@ static HRESULT WINAPI AudioClient_IsFormatSupported(IAudioClient *iface, - return E_INVALIDARG; - if (mode == AUDCLNT_SHAREMODE_EXCLUSIVE) - return This->dataflow == eCapture ? AUDCLNT_E_UNSUPPORTED_FORMAT : AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED; -- if (fmt->wFormatTag == WAVE_FORMAT_EXTENSIBLE && -- fmt->cbSize < sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX)) -- return E_INVALIDARG; -- -- dump_fmt(fmt); -- -+ switch (fmt->wFormatTag) { -+ case WAVE_FORMAT_EXTENSIBLE: -+ if (fmt->cbSize < sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX)) -+ return E_INVALIDARG; -+ dump_fmt(fmt); -+ break; -+ case WAVE_FORMAT_ALAW: -+ case WAVE_FORMAT_MULAW: -+ case WAVE_FORMAT_IEEE_FLOAT: -+ case WAVE_FORMAT_PCM: -+ dump_fmt(fmt); -+ break; -+ default: -+ dump_fmt(fmt); -+ return AUDCLNT_E_UNSUPPORTED_FORMAT; -+ } -+ if (fmt->nChannels == 0) -+ return AUDCLNT_E_UNSUPPORTED_FORMAT; - closest = clone_format(fmt); -- if (!closest) -- hr = E_OUTOFMEMORY; -+ if (!closest) { -+ if (out) -+ *out = NULL; -+ return E_OUTOFMEMORY; -+ } -+ -+ if (fmt->wFormatTag == WAVE_FORMAT_EXTENSIBLE) { -+ UINT32 mask = 0, i, channels = 0; -+ WAVEFORMATEXTENSIBLE *ext = (WAVEFORMATEXTENSIBLE*)closest; -+ -+ if ((fmt->nChannels > 1 && ext->dwChannelMask == SPEAKER_ALL) || -+ (fmt->nChannels == 1 && ext->dwChannelMask == ~0U)) { -+ mask = ext->dwChannelMask; -+ channels = fmt->nChannels; -+ } else if (ext->dwChannelMask) { -+ for (i = 1; !(i & SPEAKER_RESERVED); i <<= 1) { -+ if (i & ext->dwChannelMask) { -+ mask |= i; -+ channels++; -+ } -+ } -+ if (channels < fmt->nChannels) -+ mask = get_channel_mask(fmt->nChannels); -+ } else -+ mask = ext->dwChannelMask; -+ if (ext->dwChannelMask != mask) { -+ ext->dwChannelMask = mask; -+ hr = S_FALSE; -+ } -+ } - - if (hr == S_OK || !out) { - CoTaskMemFree(closest); --- -1.8.5.3 - - -From d352017b06805c427eb134ad81990ff72ee29187 Mon Sep 17 00:00:00 2001 -From: Maarten Lankhorst -Date: Sun, 19 Jan 2014 11:34:46 +0100 -Subject: winepulse v18: Latency and compilation improvements - -Changes since v17: -- Remove clock_pulse interpolation - * Couldn't work, sadly -- Allow 2 * MinimumPeriod for shared buffers -- Fix all compiler warnings when compiling with 64-bits -- Dynamically select low latency mode if less than 2 default periods are request - * This requires the rtkit patch to be useful ---- - dlls/winepulse.drv/mmdevdrv.c | 55 +++++++++++++++++-------------------------- - 1 file changed, 22 insertions(+), 33 deletions(-) - -diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c -index 6e75674..8e76826 100644 ---- a/dlls/winepulse.drv/mmdevdrv.c -+++ b/dlls/winepulse.drv/mmdevdrv.c -@@ -169,7 +169,6 @@ struct ACImpl { - pa_channel_map map; - - INT64 clock_lastpos, clock_written; -- pa_usec_t clock_pulse; - - AudioSession *session; - AudioSessionWrapper *session_wrapper; -@@ -518,7 +517,6 @@ static void pulse_attr_update(pa_stream *s, void *user) { - static void pulse_wr_callback(pa_stream *s, size_t bytes, void *userdata) - { - ACImpl *This = userdata; -- pa_usec_t time; - UINT32 oldpad = This->pad; - - if (bytes < This->bufsize_bytes) -@@ -528,13 +526,8 @@ static void pulse_wr_callback(pa_stream *s, size_t bytes, void *userdata) - - assert(oldpad >= This->pad); - -- if (0 && This->pad && pa_stream_get_time(This->stream, &time) >= 0) -- This->clock_pulse = time; -- else -- This->clock_pulse = PA_USEC_INVALID; -- - This->clock_written += oldpad - This->pad; -- TRACE("New pad: %u (-%u)\n", This->pad / pa_frame_size(&This->ss), (oldpad - This->pad) / pa_frame_size(&This->ss)); -+ TRACE("New pad: %zu (-%zu)\n", This->pad / pa_frame_size(&This->ss), (oldpad - This->pad) / pa_frame_size(&This->ss)); - - if (This->event) - SetEvent(This->event); -@@ -542,8 +535,6 @@ static void pulse_wr_callback(pa_stream *s, size_t bytes, void *userdata) - - static void pulse_underflow_callback(pa_stream *s, void *userdata) - { -- ACImpl *This = userdata; -- This->clock_pulse = PA_USEC_INVALID; - WARN("Underflow\n"); - } - -@@ -562,12 +553,8 @@ static void pulse_latency_callback(pa_stream *s, void *userdata) - static void pulse_started_callback(pa_stream *s, void *userdata) - { - ACImpl *This = userdata; -- pa_usec_t time; - - TRACE("(Re)started playing\n"); -- assert(This->clock_pulse == PA_USEC_INVALID); -- if (0 && pa_stream_get_time(This->stream, &time) >= 0) -- This->clock_pulse = time; - if (This->event) - SetEvent(This->event); - } -@@ -578,7 +565,7 @@ static void pulse_rd_loop(ACImpl *This, size_t bytes) - ACPacket *p, *next; - LARGE_INTEGER stamp, freq; - BYTE *dst, *src; -- UINT32 src_len, copy, rem = This->capture_period; -+ size_t src_len, copy, rem = This->capture_period; - if (!(p = (ACPacket*)list_head(&This->packet_free_head))) { - p = (ACPacket*)list_head(&This->packet_filled_head); - if (!p->discont) { -@@ -630,7 +617,7 @@ static void pulse_rd_loop(ACImpl *This, size_t bytes) - static void pulse_rd_drop(ACImpl *This, size_t bytes) - { - while (bytes >= This->capture_period) { -- UINT32 src_len, copy, rem = This->capture_period; -+ size_t src_len, copy, rem = This->capture_period; - while (rem) { - const void *src; - pa_stream_peek(This->stream, &src, &src_len); -@@ -660,7 +647,7 @@ static void pulse_rd_callback(pa_stream *s, size_t bytes, void *userdata) - { - ACImpl *This = userdata; - -- TRACE("Readable total: %u, fragsize: %u\n", bytes, pa_stream_get_buffer_attr(s)->fragsize); -+ TRACE("Readable total: %zu, fragsize: %u\n", bytes, pa_stream_get_buffer_attr(s)->fragsize); - assert(bytes >= This->peek_ofs); - bytes -= This->peek_ofs; - if (bytes < This->capture_period) -@@ -815,7 +802,6 @@ HRESULT WINAPI AUDDRV_GetAudioEndpoint(void *key, IMMDevice *dev, - This->IAudioStreamVolume_iface.lpVtbl = &AudioStreamVolume_Vtbl; - This->dataflow = dataflow; - This->parent = dev; -- This->clock_pulse = PA_USEC_INVALID; - for (i = 0; i < PA_CHANNELS_MAX; ++i) - This->vol[i] = 1.f; - IMMDevice_AddRef(This->parent); -@@ -1199,7 +1185,19 @@ static HRESULT WINAPI AudioClient_Initialize(IAudioClient *iface, - goto exit; - - if (mode == AUDCLNT_SHAREMODE_SHARED) { -- period = pulse_def_period[This->dataflow == eCapture]; -+ REFERENCE_TIME def = pulse_def_period[This->dataflow == eCapture]; -+ REFERENCE_TIME min = pulse_min_period[This->dataflow == eCapture]; -+ -+ /* Switch to low latency mode if below 2 default periods, -+ * which is 20 ms by default, this will increase the amount -+ * of interrupts but allows very low latency. In dsound I -+ * managed to get a total latency of ~8ms, which is well below -+ * default -+ */ -+ if (duration < 2 * def) -+ period = min; -+ else -+ period = def; - if (duration < 2 * period) - duration = 2 * period; - } -@@ -1510,7 +1508,6 @@ static HRESULT WINAPI AudioClient_Start(IAudioClient *iface) - pthread_mutex_unlock(&pulse_lock); - return AUDCLNT_E_NOT_STOPPED; - } -- This->clock_pulse = PA_USEC_INVALID; - - if (pa_stream_is_corked(This->stream)) { - o = pa_stream_cork(This->stream, 0, pulse_op_cb, &success); -@@ -1566,7 +1563,6 @@ static HRESULT WINAPI AudioClient_Stop(IAudioClient *iface) - } - if (SUCCEEDED(hr)) { - This->started = FALSE; -- This->clock_pulse = PA_USEC_INVALID; - } - pthread_mutex_unlock(&pulse_lock); - return hr; -@@ -1764,7 +1760,8 @@ static HRESULT WINAPI AudioRenderClient_GetBuffer(IAudioRenderClient *iface, - UINT32 frames, BYTE **data) - { - ACImpl *This = impl_from_IAudioRenderClient(iface); -- UINT32 avail, pad, req, bytes = frames * pa_frame_size(&This->ss); -+ size_t avail, req, bytes = frames * pa_frame_size(&This->ss); -+ UINT32 pad; - HRESULT hr = S_OK; - int ret = -1; - -@@ -1789,7 +1786,7 @@ static HRESULT WINAPI AudioRenderClient_GetBuffer(IAudioRenderClient *iface, - avail = This->bufsize_frames - pad; - if (avail < frames || bytes > This->bufsize_bytes) { - pthread_mutex_unlock(&pulse_lock); -- WARN("Wanted to write %u, but only %u available\n", frames, avail); -+ WARN("Wanted to write %u, but only %zu available\n", frames, avail); - return AUDCLNT_E_BUFFER_TOO_LARGE; - } - -@@ -1797,7 +1794,7 @@ static HRESULT WINAPI AudioRenderClient_GetBuffer(IAudioRenderClient *iface, - req = bytes; - ret = pa_stream_begin_write(This->stream, &This->locked_ptr, &req); - if (ret < 0 || req < bytes) { -- FIXME("%p Not using pulse locked data: %i %u/%u %u/%u\n", This, ret, req/pa_frame_size(&This->ss), frames, pad, This->bufsize_frames); -+ FIXME("%p Not using pulse locked data: %i %zu/%u %u/%u\n", This, ret, req/pa_frame_size(&This->ss), frames, pad, This->bufsize_frames); - if (ret >= 0) - pa_stream_cancel_write(This->stream); - *data = This->tmp_buffer; -@@ -1845,7 +1842,7 @@ static HRESULT WINAPI AudioRenderClient_ReleaseBuffer( - pa_stream_write(This->stream, This->tmp_buffer, written_bytes, NULL, 0, PA_SEEK_RELATIVE); - This->pad += written_bytes; - This->locked_ptr = NULL; -- TRACE("Released %u, pad %u\n", written_frames, This->pad / pa_frame_size(&This->ss)); -+ TRACE("Released %u, pad %zu\n", written_frames, This->pad / pa_frame_size(&This->ss)); - assert(This->pad <= This->bufsize_bytes); - pthread_mutex_unlock(&pulse_lock); - return S_OK; -@@ -2053,7 +2050,6 @@ static HRESULT WINAPI AudioClock_GetPosition(IAudioClock *iface, UINT64 *pos, - UINT64 *qpctime) - { - ACImpl *This = impl_from_IAudioClock(iface); -- pa_usec_t time; - HRESULT hr; - - TRACE("(%p)->(%p, %p)\n", This, pos, qpctime); -@@ -2069,13 +2065,6 @@ static HRESULT WINAPI AudioClock_GetPosition(IAudioClock *iface, UINT64 *pos, - } - - *pos = This->clock_written; -- if (This->clock_pulse != PA_USEC_INVALID && pa_stream_get_time(This->stream, &time) >= 0) { -- UINT32 delta = pa_usec_to_bytes(time - This->clock_pulse, &This->ss); -- if (delta < This->pad) -- *pos += delta; -- else -- *pos += This->pad; -- } - - /* Make time never go backwards */ - if (*pos < This->clock_lastpos) --- -1.8.5.3 - - -From 489737581fe2c5afe559fa473dbcec3f647a1fc6 Mon Sep 17 00:00:00 2001 -From: Juergen Tretthahn -Date: Sun, 19 Jan 2014 11:34:46 +0100 -Subject: winepulse: API Compatibility with 1.5.2 onward, v2 - -V2: Add winepulse.drv.spec to commit too -V1: Original version - -Commit e87cb774d131963d2642d075977571585ec5da8d changed the driver api -leave this commit out to build for builds prior to this - -Not needed for: 1.5.1, 1.5 and 1.4 builds ---- - dlls/winepulse.drv/mmdevdrv.c | 34 ++++++++++++++++++++++------------ - dlls/winepulse.drv/winepulse.drv.spec | 2 +- - 2 files changed, 23 insertions(+), 13 deletions(-) - -diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c -index 8e76826..b374b53 100644 ---- a/dlls/winepulse.drv/mmdevdrv.c -+++ b/dlls/winepulse.drv/mmdevdrv.c -@@ -82,6 +82,11 @@ const WCHAR pulse_keyW[] = {'S','o','f','t','w','a','r','e','\\', - 'W','i','n','e','\\','P','u','l','s','e',0}; - const WCHAR pulse_streamW[] = { 'S','t','r','e','a','m','V','o','l',0 }; - -+static GUID pulse_render_guid = -+{ 0xfd47d9cc, 0x4218, 0x4135, { 0x9c, 0xe2, 0x0c, 0x19, 0x5c, 0x87, 0x40, 0x5b } }; -+static GUID pulse_capture_guid = -+{ 0x25da76d0, 0x033c, 0x4235, { 0x90, 0x02, 0x19, 0xf4, 0x88, 0x94, 0xac, 0x6f } }; -+ - static HANDLE warn_once; - - BOOL WINAPI DllMain(HINSTANCE dll, DWORD reason, void *reserved) -@@ -716,7 +721,7 @@ static HRESULT pulse_stream_connect(ACImpl *This, UINT32 period_bytes) { - return S_OK; - } - --HRESULT WINAPI AUDDRV_GetEndpointIDs(EDataFlow flow, WCHAR ***ids, void ***keys, -+HRESULT WINAPI AUDDRV_GetEndpointIDs(EDataFlow flow, const WCHAR ***ids, GUID **keys, - UINT *num, UINT *def_index) - { - HRESULT hr = S_OK; -@@ -730,20 +735,21 @@ HRESULT WINAPI AUDDRV_GetEndpointIDs(EDataFlow flow, WCHAR ***ids, void ***keys, - *num = 1; - *def_index = 0; - -- *ids = HeapAlloc(GetProcessHeap(), 0, sizeof(WCHAR *)); -+ *ids = HeapAlloc(GetProcessHeap(), 0, sizeof(**ids)); - if (!*ids) - return E_OUTOFMEMORY; -+ (*ids)[0] = defaultW; - -- (*ids)[0] = HeapAlloc(GetProcessHeap(), 0, sizeof(defaultW)); -- if (!(*ids)[0]) { -+ *keys = HeapAlloc(GetProcessHeap(), 0, sizeof(**keys)); -+ if (!*keys) { - HeapFree(GetProcessHeap(), 0, *ids); -+ *ids = NULL; - return E_OUTOFMEMORY; - } -- -- lstrcpyW((*ids)[0], defaultW); -- -- *keys = HeapAlloc(GetProcessHeap(), 0, sizeof(void *)); -- (*keys)[0] = NULL; -+ if (flow == eRender) -+ (*keys)[0] = pulse_render_guid; -+ else -+ (*keys)[0] = pulse_capture_guid; - - return S_OK; - } -@@ -761,12 +767,12 @@ int WINAPI AUDDRV_GetPriority(void) - return SUCCEEDED(hr) ? 3 : 0; - } - --HRESULT WINAPI AUDDRV_GetAudioEndpoint(void *key, IMMDevice *dev, -- EDataFlow dataflow, IAudioClient **out) -+HRESULT WINAPI AUDDRV_GetAudioEndpoint(GUID *guid, IMMDevice *dev, IAudioClient **out) - { - HRESULT hr; - ACImpl *This; - int i; -+ EDataFlow dataflow; - - /* Give one visible warning per session - * Sadly wine has chosen not to accept the winepulse patch, so support ourselves -@@ -780,7 +786,11 @@ HRESULT WINAPI AUDDRV_GetAudioEndpoint(void *key, IMMDevice *dev, - } - - TRACE("%s %p %p\n", debugstr_guid(guid), dev, out); -- if (dataflow != eRender && dataflow != eCapture) -+ if (IsEqualGUID(guid, &pulse_render_guid)) -+ dataflow = eRender; -+ else if (IsEqualGUID(guid, &pulse_capture_guid)) -+ dataflow = eCapture; -+ else - return E_UNEXPECTED; - - *out = NULL; -diff --git a/dlls/winepulse.drv/winepulse.drv.spec b/dlls/winepulse.drv/winepulse.drv.spec -index a089166..612bf46 100644 ---- a/dlls/winepulse.drv/winepulse.drv.spec -+++ b/dlls/winepulse.drv/winepulse.drv.spec -@@ -1,5 +1,5 @@ - # MMDevAPI driver functions - @ stdcall -private GetPriority() AUDDRV_GetPriority - @ stdcall -private GetEndpointIDs(long ptr ptr ptr ptr) AUDDRV_GetEndpointIDs --@ stdcall -private GetAudioEndpoint(ptr ptr long ptr) AUDDRV_GetAudioEndpoint -+@ stdcall -private GetAudioEndpoint(ptr ptr ptr) AUDDRV_GetAudioEndpoint - @ stdcall -private GetAudioSessionManager(ptr ptr) AUDDRV_GetAudioSessionManager --- -1.8.5.3 - - -From 6f2480921637deb221ec0df14aae8f17efd84d7a Mon Sep 17 00:00:00 2001 -From: Maarten Lankhorst -Date: Sun, 19 Jan 2014 11:34:46 +0100 -Subject: winepulse: Fix low latency support - -Some games request a 20 ms buffer and will only fill 20 ms. -Since 10 ms periods are too long in this case for winepulse, -fill change period size to 5 ms and force a trigger if -there's still data left to fill. ---- - dlls/winepulse.drv/mmdevdrv.c | 14 ++++++++++++-- - 1 file changed, 12 insertions(+), 2 deletions(-) - -diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c -index b374b53..7c07f54 100644 ---- a/dlls/winepulse.drv/mmdevdrv.c -+++ b/dlls/winepulse.drv/mmdevdrv.c -@@ -1205,11 +1205,15 @@ static HRESULT WINAPI AudioClient_Initialize(IAudioClient *iface, - * default - */ - if (duration < 2 * def) -- period = min; -+ period = min; - else -- period = def; -+ period = def; - if (duration < 2 * period) - duration = 2 * period; -+ -+ /* Uh oh, really low latency requested.. */ -+ if (duration <= 2 * period) -+ period /= 2; - } - period_bytes = pa_frame_size(&This->ss) * MulDiv(period, This->ss.rate, 10000000); - -@@ -1820,6 +1824,7 @@ static HRESULT WINAPI AudioRenderClient_ReleaseBuffer( - { - ACImpl *This = impl_from_IAudioRenderClient(iface); - UINT32 written_bytes = written_frames * pa_frame_size(&This->ss); -+ UINT32 period; - - TRACE("(%p)->(%u, %x)\n", This, written_frames, flags); - -@@ -1854,6 +1859,11 @@ static HRESULT WINAPI AudioRenderClient_ReleaseBuffer( - This->locked_ptr = NULL; - TRACE("Released %u, pad %zu\n", written_frames, This->pad / pa_frame_size(&This->ss)); - assert(This->pad <= This->bufsize_bytes); -+ -+ period = pa_stream_get_buffer_attr(This->stream)->minreq; -+ /* Require a minimum of 3 periods filled, if possible */ -+ if (This->event && This->pad + period <= This->bufsize_bytes && This->pad < period * 3) -+ SetEvent(This->event); - pthread_mutex_unlock(&pulse_lock); - return S_OK; - } --- -1.8.5.3 - - -From 8cf6709d4f08ff343f49a0b3c8af737b5d50779a Mon Sep 17 00:00:00 2001 -From: Maarten Lankhorst -Date: Sun, 19 Jan 2014 11:34:46 +0100 -Subject: winepulse: drop realtime priority before thread destruction - -prevents having to handle a kernel RT Watchdog Timeout. ---- - dlls/winepulse.drv/mmdevdrv.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c -index 7c07f54..ba68102 100644 ---- a/dlls/winepulse.drv/mmdevdrv.c -+++ b/dlls/winepulse.drv/mmdevdrv.c -@@ -101,6 +101,8 @@ BOOL WINAPI DllMain(HINSTANCE dll, DWORD reason, void *reserved) - } - DisableThreadLibraryCalls(dll); - } else if (reason == DLL_PROCESS_DETACH) { -+ if (pulse_thread) -+ SetThreadPriority(pulse_thread, 0); - if (pulse_ctx) { - pa_context_disconnect(pulse_ctx); - pa_context_unref(pulse_ctx); --- -1.8.5.3 - - -From 7261b5b718c20c94858d9026171f0b4da6443cbc Mon Sep 17 00:00:00 2001 -From: Maarten Lankhorst -Date: Sun, 19 Jan 2014 11:34:46 +0100 -Subject: winepulse: remove bogus SetEvent from pulse_started_callback - ---- - dlls/winepulse.drv/mmdevdrv.c | 4 ---- - 1 file changed, 4 deletions(-) - -diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c -index ba68102..68de00c 100644 ---- a/dlls/winepulse.drv/mmdevdrv.c -+++ b/dlls/winepulse.drv/mmdevdrv.c -@@ -559,11 +559,7 @@ static void pulse_latency_callback(pa_stream *s, void *userdata) - - static void pulse_started_callback(pa_stream *s, void *userdata) - { -- ACImpl *This = userdata; -- - TRACE("(Re)started playing\n"); -- if (This->event) -- SetEvent(This->event); - } - - static void pulse_rd_loop(ACImpl *This, size_t bytes) --- -1.8.5.3 - - -From 4e495be9088f2c3dc225f46c82a90491bc81744c Mon Sep 17 00:00:00 2001 -From: Maarten Lankhorst -Date: Sun, 19 Jan 2014 11:34:46 +0100 -Subject: winepulse: disable the setevent part of the latency hack - -If you get playback glitches in skyrim or other games as a result of -this patch, PLEASE REPORT TO ME! ---- - dlls/winepulse.drv/mmdevdrv.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c -index 68de00c..643d55e 100644 ---- a/dlls/winepulse.drv/mmdevdrv.c -+++ b/dlls/winepulse.drv/mmdevdrv.c -@@ -1822,7 +1822,7 @@ static HRESULT WINAPI AudioRenderClient_ReleaseBuffer( - { - ACImpl *This = impl_from_IAudioRenderClient(iface); - UINT32 written_bytes = written_frames * pa_frame_size(&This->ss); -- UINT32 period; -+// UINT32 period; - - TRACE("(%p)->(%u, %x)\n", This, written_frames, flags); - -@@ -1858,10 +1858,10 @@ static HRESULT WINAPI AudioRenderClient_ReleaseBuffer( - TRACE("Released %u, pad %zu\n", written_frames, This->pad / pa_frame_size(&This->ss)); - assert(This->pad <= This->bufsize_bytes); - -- period = pa_stream_get_buffer_attr(This->stream)->minreq; -+// period = pa_stream_get_buffer_attr(This->stream)->minreq; - /* Require a minimum of 3 periods filled, if possible */ -- if (This->event && This->pad + period <= This->bufsize_bytes && This->pad < period * 3) -- SetEvent(This->event); -+// if (This->event && This->pad + period <= This->bufsize_bytes && This->pad < period * 3) -+// SetEvent(This->event); - pthread_mutex_unlock(&pulse_lock); - return S_OK; - } --- -1.8.5.3 - - -From b977b42d88ee927ae50e2ea78209efbb1552c644 Mon Sep 17 00:00:00 2001 -From: Maarten Lankhorst -Date: Sun, 19 Jan 2014 11:34:46 +0100 -Subject: winepulse v20: fix the checks in IsFormatSupported - -Thanks to DGhost001 for reporting and isolating the issue. ---- - dlls/winepulse.drv/mmdevdrv.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c -index 643d55e..86dd10a 100644 ---- a/dlls/winepulse.drv/mmdevdrv.c -+++ b/dlls/winepulse.drv/mmdevdrv.c -@@ -1443,6 +1443,10 @@ static HRESULT WINAPI AudioClient_IsFormatSupported(IAudioClient *iface, - } - } - -+ if (fmt->nBlockAlign != fmt->nChannels * fmt->wBitsPerSample / 8 || -+ fmt->nAvgBytesPerSec != fmt->nBlockAlign * fmt->nSamplesPerSec) -+ hr = S_FALSE; -+ - if (hr == S_OK || !out) { - CoTaskMemFree(closest); - if (out) --- -1.8.5.3 - - -From 08474bafaf5da1604e0e87250c59b55b4ef5c102 Mon Sep 17 00:00:00 2001 -From: Maarten Lankhorst -Date: Sun, 19 Jan 2014 11:34:47 +0100 -Subject: winepulse: fixup IsFormatSupported calls - ---- - dlls/mmdevapi/tests/render.c | 164 +++++++++++++++++++++++++++++++++++++++ - dlls/winepulse.drv/mmdevdrv.c | 176 ++++++++++++++++++++++++++++-------------- - 2 files changed, 283 insertions(+), 57 deletions(-) - -diff --git a/dlls/mmdevapi/tests/render.c b/dlls/mmdevapi/tests/render.c -index 4c8221b..c9e4636 100644 ---- a/dlls/mmdevapi/tests/render.c -+++ b/dlls/mmdevapi/tests/render.c -@@ -467,6 +467,169 @@ static void test_formats(AUDCLNT_SHAREMODE mode) - } - } - -+static void test_formats2(void) -+{ -+ IAudioClient *ac; -+ HRESULT hr; -+ WAVEFORMATEX *pwfx, *pwfx2; -+ WAVEFORMATEXTENSIBLE *pwfe, wfe, *pwfe2; -+ -+ hr = IMMDevice_Activate(dev, &IID_IAudioClient, CLSCTX_INPROC_SERVER, -+ NULL, (void**)&ac); -+ -+ ok(hr == S_OK, "Activation failed with %08x\n", hr); -+ if (hr != S_OK) -+ return; -+ -+ hr = IAudioClient_GetMixFormat(ac, &pwfx); -+ ok(hr == S_OK, "GetMixFormat failed: %08x\n", hr); -+ if (hr != S_OK) -+ return; -+ -+ ok(pwfx->wFormatTag == WAVE_FORMAT_EXTENSIBLE, "Invalid wFormatTag\n"); -+ if (pwfx->wFormatTag != WAVE_FORMAT_EXTENSIBLE) { -+ CoTaskMemFree(pwfx); -+ return; -+ } -+ -+ pwfe = (WAVEFORMATEXTENSIBLE*)pwfx; -+ ok(pwfe->Samples.wValidBitsPerSample, "wValidBitsPerSample should be non-zero\n"); -+ -+ if (pwfx->nChannels > 2) { -+ trace("Limiting channels to 2\n"); -+ pwfx->nChannels = 2; -+ pwfx->nBlockAlign = pwfx->wBitsPerSample / 8 * pwfx->nChannels; -+ pwfx->nAvgBytesPerSec = pwfx->nBlockAlign * pwfx->nSamplesPerSec; -+ pwfe->dwChannelMask = SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT; -+ } -+ -+ wfe = *pwfe; -+ pwfx->nAvgBytesPerSec = pwfx->nBlockAlign = 0; -+ -+ hr = IAudioClient_IsFormatSupported(ac, AUDCLNT_SHAREMODE_EXCLUSIVE, pwfx, NULL); -+ ok(hr == AUDCLNT_E_UNSUPPORTED_FORMAT || hr == AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED, -+ "Exclusive IsFormatSupported with nAvgBytesPerSec=0 and nBlockAlign=0 returned %08x\n", hr); -+ -+ pwfx2 = NULL; -+ hr = IAudioClient_IsFormatSupported(ac, AUDCLNT_SHAREMODE_SHARED, pwfx, &pwfx2); -+ ok((hr == E_INVALIDARG || hr == AUDCLNT_E_UNSUPPORTED_FORMAT) && !pwfx2, -+ "Shared IsFormatSupported with nAvgBytesPerSec=0 and nBlockAlign=0 returned %08x %p\n", hr, pwfx2); -+ CoTaskMemFree(pwfx2); -+ -+ pwfx->wFormatTag = WAVE_FORMAT_PCM; -+ pwfx2 = NULL; -+ hr = IAudioClient_IsFormatSupported(ac, AUDCLNT_SHAREMODE_SHARED, pwfx, &pwfx2); -+ ok((hr == S_OK || hr == AUDCLNT_E_UNSUPPORTED_FORMAT) && !pwfx2, -+ "Shared IsFormatSupported with nAvgBytesPerSec=0 and nBlockAlign=0 returned %08x %p\n", hr, pwfx2); -+ CoTaskMemFree(pwfx2); -+ -+ *pwfe = wfe; -+ pwfe->dwChannelMask = 0; -+ hr = IAudioClient_IsFormatSupported(ac, AUDCLNT_SHAREMODE_EXCLUSIVE, pwfx, NULL); -+ ok(hr == AUDCLNT_E_UNSUPPORTED_FORMAT || hr == AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED, -+ "Exclusive IsFormatSupported with dwChannelMask=0 returned %08x\n", hr); -+ -+ pwfx2 = NULL; -+ hr = IAudioClient_IsFormatSupported(ac, AUDCLNT_SHAREMODE_SHARED, pwfx, &pwfx2); -+ ok(hr == S_OK, -+ "Shared IsFormatSupported with dwChannelMask=0 returned %08x\n", hr); -+ CoTaskMemFree(pwfx2); -+ -+ -+ pwfe->dwChannelMask = 0x3ffff; -+ hr = IAudioClient_IsFormatSupported(ac, AUDCLNT_SHAREMODE_EXCLUSIVE, pwfx, NULL); -+ ok(hr == AUDCLNT_E_UNSUPPORTED_FORMAT || hr == AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED, -+ "Exclusive IsFormatSupported with dwChannelMask=0x3ffff returned %08x\n", hr); -+ -+ pwfx2 = NULL; -+ hr = IAudioClient_IsFormatSupported(ac, AUDCLNT_SHAREMODE_SHARED, pwfx, &pwfx2); -+ ok(hr == S_OK && !pwfx2, -+ "Shared IsFormatSupported with dwChannelMask=0x3ffff returned %08x %p\n", hr, pwfx2); -+ CoTaskMemFree(pwfx2); -+ -+ -+ pwfe->dwChannelMask = 0x40000000; -+ hr = IAudioClient_IsFormatSupported(ac, AUDCLNT_SHAREMODE_EXCLUSIVE, pwfx, NULL); -+ ok(hr == AUDCLNT_E_UNSUPPORTED_FORMAT || hr == AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED, -+ "Exclusive IsFormatSupported with dwChannelMask=0x40000000 returned %08x\n", hr); -+ -+ pwfx2 = NULL; -+ hr = IAudioClient_IsFormatSupported(ac, AUDCLNT_SHAREMODE_SHARED, pwfx, &pwfx2); -+ ok(hr == S_OK && !pwfx2, -+ "Shared IsFormatSupported with dwChannelMask=0x40000000 returned %08x %p\n", hr, pwfx2); -+ CoTaskMemFree(pwfx2); -+ -+ pwfe->dwChannelMask = SPEAKER_ALL | SPEAKER_RESERVED; -+ hr = IAudioClient_IsFormatSupported(ac, AUDCLNT_SHAREMODE_EXCLUSIVE, pwfx, NULL); -+ ok(hr == AUDCLNT_E_UNSUPPORTED_FORMAT || hr == AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED, -+ "Exclusive IsFormatSupported with dwChannelMask=SPEAKER_ALL | SPEAKER_RESERVED returned %08x\n", hr); -+ -+ pwfx2 = NULL; -+ hr = IAudioClient_IsFormatSupported(ac, AUDCLNT_SHAREMODE_SHARED, pwfx, &pwfx2); -+ ok(hr == S_OK && !pwfx2, -+ "Shared IsFormatSupported with dwChannelMask=SPEAKER_ALL | SPEAKER_RESERVED returned %08x %p\n", hr, pwfx2); -+ CoTaskMemFree(pwfx2); -+ -+ *pwfe = wfe; -+ pwfe->Samples.wValidBitsPerSample = 0; -+ hr = IAudioClient_IsFormatSupported(ac, AUDCLNT_SHAREMODE_EXCLUSIVE, pwfx, NULL); -+ ok(hr == AUDCLNT_E_UNSUPPORTED_FORMAT || hr == AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED, -+ "Exclusive IsFormatSupported with wValidBitsPerSample=0 returned %08x\n", hr); -+ -+ pwfx2 = NULL; -+ hr = IAudioClient_IsFormatSupported(ac, AUDCLNT_SHAREMODE_SHARED, pwfx, &pwfx2); -+ ok((hr == S_FALSE || hr == AUDCLNT_E_UNSUPPORTED_FORMAT) && pwfx2, -+ "Shared IsFormatSupported with wValidBitsPerSample=0 returned %08x %p\n", hr, pwfx2); -+ if (pwfx2) { -+ pwfe2 = (WAVEFORMATEXTENSIBLE*)pwfx2; -+ ok(pwfe2->Samples.wValidBitsPerSample == pwfx->wBitsPerSample, -+ "Shared IsFormatSupported had wValidBitsPerSample set to %u, not %u\n", -+ pwfe2->Samples.wValidBitsPerSample, pwfx->wBitsPerSample); -+ CoTaskMemFree(pwfx2); -+ } -+ -+ pwfx2 = NULL; -+ pwfe->Samples.wValidBitsPerSample = pwfx->wBitsPerSample + 1; -+ hr = IAudioClient_IsFormatSupported(ac, AUDCLNT_SHAREMODE_SHARED, pwfx, &pwfx2); -+ ok((hr == E_INVALIDARG || hr == AUDCLNT_E_UNSUPPORTED_FORMAT) && !pwfx2, -+ "Shared IsFormatSupported with wValidBitsPerSample += 1 returned %08x %p\n", hr, pwfx2); -+ -+ *pwfe = wfe; -+ memset(&pwfe->SubFormat, 0xff, 16); -+ pwfx2 = NULL; -+ hr = IAudioClient_IsFormatSupported(ac, AUDCLNT_SHAREMODE_SHARED, pwfx, &pwfx2); -+ ok(hr == AUDCLNT_E_UNSUPPORTED_FORMAT && !pwfx2, -+ "Shared IsFormatSupported with SubFormat=-1 returned %08x %p\n", hr, pwfx2); -+ CoTaskMemFree(pwfx2); -+ -+ *pwfe = wfe; -+ pwfx2 = NULL; -+ pwfe->Samples.wValidBitsPerSample = pwfx->wBitsPerSample = 256; -+ pwfx->nBlockAlign = pwfx->wBitsPerSample / 8 * pwfx->nChannels; -+ pwfx->nAvgBytesPerSec = pwfx->nBlockAlign * pwfx->nSamplesPerSec; -+ hr = IAudioClient_IsFormatSupported(ac, AUDCLNT_SHAREMODE_SHARED, pwfx, &pwfx2); -+ ok((hr == E_INVALIDARG || hr == AUDCLNT_E_UNSUPPORTED_FORMAT) && !pwfx2, -+ "Shared IsFormatSupported with wBitsPerSample=256 returned %08x %p\n", hr, pwfx2); -+ CoTaskMemFree(pwfx2); -+ -+ *pwfe = wfe; -+ pwfx2 = NULL; -+ pwfe->Samples.wValidBitsPerSample = pwfx->wBitsPerSample - 1; -+ hr = IAudioClient_IsFormatSupported(ac, AUDCLNT_SHAREMODE_SHARED, pwfx, &pwfx2); -+ ok(hr == S_FALSE && pwfx2, -+ "Shared IsFormatSupported with wValidBitsPerSample-=1 returned %08x %p\n", hr, pwfx2); -+ if (pwfx2) { -+ pwfe2 = (WAVEFORMATEXTENSIBLE*)pwfx2; -+ ok(pwfe2->Samples.wValidBitsPerSample == pwfx->wBitsPerSample, -+ "Shared IsFormatSupported had wValidBitsPerSample set to %u, not %u\n", -+ pwfe2->Samples.wValidBitsPerSample, pwfx->wBitsPerSample); -+ CoTaskMemFree(pwfx2); -+ } -+ -+ CoTaskMemFree(pwfx); -+ IAudioClient_Release(ac); -+} -+ - static void test_references(void) - { - IAudioClient *ac; -@@ -2245,6 +2408,7 @@ START_TEST(render) - test_audioclient(); - test_formats(AUDCLNT_SHAREMODE_EXCLUSIVE); - test_formats(AUDCLNT_SHAREMODE_SHARED); -+ test_formats2(); - test_references(); - test_marshal(); - trace("Output to a MS-DOS console is particularly slow and disturbs timing.\n"); -diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c -index 86dd10a..554a9fc 100644 ---- a/dlls/winepulse.drv/mmdevdrv.c -+++ b/dlls/winepulse.drv/mmdevdrv.c -@@ -1104,10 +1104,8 @@ static HRESULT pulse_spec_from_waveformat(ACImpl *This, const WAVEFORMATEX *fmt) - } - } - This->map.channels = fmt->nChannels; -- if (!mask || mask == SPEAKER_ALL) -+ if (!mask || (mask & (SPEAKER_ALL|SPEAKER_RESERVED))) - mask = get_channel_mask(fmt->nChannels); -- else if (mask == ~0U && fmt->nChannels == 1) -- mask = SPEAKER_FRONT_CENTER; - for (j = 0; j < sizeof(pulse_pos_from_wfx)/sizeof(*pulse_pos_from_wfx) && i < fmt->nChannels; ++j) { - if (mask & (1 << j)) - This->map.map[i++] = pulse_pos_from_wfx[j]; -@@ -1381,83 +1379,147 @@ static HRESULT WINAPI AudioClient_IsFormatSupported(IAudioClient *iface, - ACImpl *This = impl_from_IAudioClient(iface); - HRESULT hr = S_OK; - WAVEFORMATEX *closest = NULL; -+ BOOL exclusive; - - TRACE("(%p)->(%x, %p, %p)\n", This, mode, fmt, out); - -- if (!fmt || (mode == AUDCLNT_SHAREMODE_SHARED && !out)) -+ if (!fmt) - return E_POINTER; - - if (out) - *out = NULL; -- if (mode != AUDCLNT_SHAREMODE_SHARED && mode != AUDCLNT_SHAREMODE_EXCLUSIVE) -+ -+ if (mode == AUDCLNT_SHAREMODE_EXCLUSIVE) { -+ exclusive = 1; -+ out = NULL; -+ } else if (mode == AUDCLNT_SHAREMODE_SHARED) { -+ exclusive = 0; -+ if (!out) -+ return E_POINTER; -+ } else - return E_INVALIDARG; -- if (mode == AUDCLNT_SHAREMODE_EXCLUSIVE) -- return This->dataflow == eCapture ? AUDCLNT_E_UNSUPPORTED_FORMAT : AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED; -- switch (fmt->wFormatTag) { -- case WAVE_FORMAT_EXTENSIBLE: -- if (fmt->cbSize < sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX)) -- return E_INVALIDARG; -- dump_fmt(fmt); -- break; -- case WAVE_FORMAT_ALAW: -- case WAVE_FORMAT_MULAW: -- case WAVE_FORMAT_IEEE_FLOAT: -- case WAVE_FORMAT_PCM: -- dump_fmt(fmt); -- break; -- default: -- dump_fmt(fmt); -- return AUDCLNT_E_UNSUPPORTED_FORMAT; -- } -+ - if (fmt->nChannels == 0) - return AUDCLNT_E_UNSUPPORTED_FORMAT; -+ - closest = clone_format(fmt); -- if (!closest) { -- if (out) -- *out = NULL; -+ if (!closest) - return E_OUTOFMEMORY; -- } - -- if (fmt->wFormatTag == WAVE_FORMAT_EXTENSIBLE) { -- UINT32 mask = 0, i, channels = 0; -+ dump_fmt(fmt); -+ -+ switch (fmt->wFormatTag) { -+ case WAVE_FORMAT_EXTENSIBLE: { - WAVEFORMATEXTENSIBLE *ext = (WAVEFORMATEXTENSIBLE*)closest; - -- if ((fmt->nChannels > 1 && ext->dwChannelMask == SPEAKER_ALL) || -- (fmt->nChannels == 1 && ext->dwChannelMask == ~0U)) { -- mask = ext->dwChannelMask; -- channels = fmt->nChannels; -- } else if (ext->dwChannelMask) { -- for (i = 1; !(i & SPEAKER_RESERVED); i <<= 1) { -- if (i & ext->dwChannelMask) { -- mask |= i; -- channels++; -+ if ((fmt->cbSize != sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX) && -+ fmt->cbSize != sizeof(WAVEFORMATEXTENSIBLE)) || -+ fmt->nBlockAlign != fmt->wBitsPerSample / 8 * fmt->nChannels || -+ ext->Samples.wValidBitsPerSample > fmt->wBitsPerSample || -+ fmt->nAvgBytesPerSec != fmt->nBlockAlign * fmt->nSamplesPerSec) { -+ hr = E_INVALIDARG; -+ break; -+ } -+ -+ if (exclusive) { -+ UINT32 mask = 0, i, channels = 0; -+ -+ if (!(ext->dwChannelMask & (SPEAKER_ALL | SPEAKER_RESERVED))) { -+ for (i = 1; !(i & SPEAKER_RESERVED); i <<= 1) { -+ if (i & ext->dwChannelMask) { -+ mask |= i; -+ channels++; -+ } -+ } -+ -+ if (channels != fmt->nChannels || (ext->dwChannelMask & ~mask)) { -+ hr = AUDCLNT_E_UNSUPPORTED_FORMAT; -+ break; - } -+ } else { -+ hr = AUDCLNT_E_UNSUPPORTED_FORMAT; -+ break; - } -- if (channels < fmt->nChannels) -- mask = get_channel_mask(fmt->nChannels); -- } else -- mask = ext->dwChannelMask; -- if (ext->dwChannelMask != mask) { -- ext->dwChannelMask = mask; -- hr = S_FALSE; - } -+ -+ if (IsEqualGUID(&ext->SubFormat, &KSDATAFORMAT_SUBTYPE_IEEE_FLOAT)) { -+ if (fmt->wBitsPerSample != 32) { -+ hr = E_INVALIDARG; -+ break; -+ } -+ -+ if (ext->Samples.wValidBitsPerSample != fmt->wBitsPerSample) { -+ hr = S_FALSE; -+ ext->Samples.wValidBitsPerSample = fmt->wBitsPerSample; -+ } -+ } else if (IsEqualGUID(&ext->SubFormat, &KSDATAFORMAT_SUBTYPE_PCM)) { -+ if (!fmt->wBitsPerSample || fmt->wBitsPerSample > 32 || fmt->wBitsPerSample % 8) { -+ hr = E_INVALIDARG; -+ break; -+ } -+ -+ if (ext->Samples.wValidBitsPerSample != fmt->wBitsPerSample && -+ !(fmt->wBitsPerSample == 32 && -+ ext->Samples.wValidBitsPerSample == 24)) { -+ hr = S_FALSE; -+ ext->Samples.wValidBitsPerSample = fmt->wBitsPerSample; -+ break; -+ } -+ } else { -+ hr = AUDCLNT_E_UNSUPPORTED_FORMAT; -+ break; -+ } -+ -+ break; - } - -- if (fmt->nBlockAlign != fmt->nChannels * fmt->wBitsPerSample / 8 || -- fmt->nAvgBytesPerSec != fmt->nBlockAlign * fmt->nSamplesPerSec) -- hr = S_FALSE; -+ case WAVE_FORMAT_ALAW: -+ case WAVE_FORMAT_MULAW: -+ if (fmt->wBitsPerSample != 8) { -+ hr = E_INVALIDARG; -+ break; -+ } -+ /* Fall-through */ -+ case WAVE_FORMAT_IEEE_FLOAT: -+ if (fmt->wFormatTag == WAVE_FORMAT_IEEE_FLOAT && fmt->wBitsPerSample != 32) { -+ hr = E_INVALIDARG; -+ break; -+ } -+ /* Fall-through */ -+ case WAVE_FORMAT_PCM: -+ if (fmt->wFormatTag == WAVE_FORMAT_PCM && -+ (!fmt->wBitsPerSample || fmt->wBitsPerSample > 32 || fmt->wBitsPerSample % 8)) { -+ hr = E_INVALIDARG; -+ break; -+ } -+ -+ if (fmt->nChannels > 2) { -+ hr = AUDCLNT_E_UNSUPPORTED_FORMAT; -+ break; -+ } -+ /* -+ * fmt->cbSize, fmt->nBlockAlign and fmt->nAvgBytesPerSec seem to be -+ * ignored, invalid values are happily accepted. -+ */ -+ break; -+ default: -+ hr = AUDCLNT_E_UNSUPPORTED_FORMAT; -+ break; -+ } - -- if (hr == S_OK || !out) { -+ if (exclusive && hr != S_OK) { -+ hr = AUDCLNT_E_UNSUPPORTED_FORMAT; - CoTaskMemFree(closest); -- if (out) -- *out = NULL; -- } else if (closest) { -- closest->nBlockAlign = -- closest->nChannels * closest->wBitsPerSample / 8; -- closest->nAvgBytesPerSec = -- closest->nBlockAlign * closest->nSamplesPerSec; -+ } else if (hr != S_FALSE) -+ CoTaskMemFree(closest); -+ else - *out = closest; -- } -+ -+ /* Winepulse does not currently support exclusive mode, if you know of an -+ * application that uses it, I will correct this.. -+ */ -+ if (hr == S_OK && exclusive) -+ return This->dataflow == eCapture ? AUDCLNT_E_UNSUPPORTED_FORMAT : AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED; - - TRACE("returning: %08x %p\n", hr, out ? *out : NULL); - return hr; --- -1.8.5.3 - - -From e7f79bfdfd369906db10dfb457128544895b7552 Mon Sep 17 00:00:00 2001 -From: Maarten Lankhorst -Date: Sun, 19 Jan 2014 11:34:47 +0100 -Subject: winepulse v21: return early if padding didn't update - ---- - dlls/winepulse.drv/mmdevdrv.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c -index 554a9fc..a4575d5 100644 ---- a/dlls/winepulse.drv/mmdevdrv.c -+++ b/dlls/winepulse.drv/mmdevdrv.c -@@ -531,7 +531,10 @@ static void pulse_wr_callback(pa_stream *s, size_t bytes, void *userdata) - else - This->pad = 0; - -- assert(oldpad >= This->pad); -+ if (oldpad == This->pad) -+ return; -+ -+ assert(oldpad > This->pad); - - This->clock_written += oldpad - This->pad; - TRACE("New pad: %zu (-%zu)\n", This->pad / pa_frame_size(&This->ss), (oldpad - This->pad) / pa_frame_size(&This->ss)); --- -1.8.5.3 - - -From 9d120a9afe97f11478d00ff1c6f70f5df24f8fae Mon Sep 17 00:00:00 2001 -From: Maarten Lankhorst -Date: Sun, 19 Jan 2014 11:34:47 +0100 -Subject: winepulse: fix unneeded free in write.. - ---- - dlls/winepulse.drv/mmdevdrv.c | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c -index a4575d5..3ca68fd 100644 ---- a/dlls/winepulse.drv/mmdevdrv.c -+++ b/dlls/winepulse.drv/mmdevdrv.c -@@ -1886,6 +1886,10 @@ static HRESULT WINAPI AudioRenderClient_GetBuffer(IAudioRenderClient *iface, - return hr; - } - -+static void pulse_free_noop(void *buf) -+{ -+} -+ - static HRESULT WINAPI AudioRenderClient_ReleaseBuffer( - IAudioRenderClient *iface, UINT32 written_frames, DWORD flags) - { -@@ -1921,7 +1925,7 @@ static HRESULT WINAPI AudioRenderClient_ReleaseBuffer( - if (This->locked_ptr) - pa_stream_write(This->stream, This->locked_ptr, written_bytes, NULL, 0, PA_SEEK_RELATIVE); - else -- pa_stream_write(This->stream, This->tmp_buffer, written_bytes, NULL, 0, PA_SEEK_RELATIVE); -+ pa_stream_write(This->stream, This->tmp_buffer, written_bytes, pulse_free_noop, 0, PA_SEEK_RELATIVE); - This->pad += written_bytes; - This->locked_ptr = NULL; - TRACE("Released %u, pad %zu\n", written_frames, This->pad / pa_frame_size(&This->ss)); --- -1.8.5.3 - - -From 7d0fb975eba0f764a125de6b5ab18aecc56b3db4 Mon Sep 17 00:00:00 2001 -From: Maarten Lankhorst -Date: Sun, 19 Jan 2014 11:34:47 +0100 -Subject: winepulse v23: fixup a invalid free in mmdevapi - -array members of ids should be dynamically allocated, judging from valgrind output. ---- - dlls/winepulse.drv/mmdevdrv.c | 12 ++++++++++-- - 1 file changed, 10 insertions(+), 2 deletions(-) - -diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c -index 3ca68fd..5b041a2 100644 ---- a/dlls/winepulse.drv/mmdevdrv.c -+++ b/dlls/winepulse.drv/mmdevdrv.c -@@ -726,6 +726,8 @@ HRESULT WINAPI AUDDRV_GetEndpointIDs(EDataFlow flow, const WCHAR ***ids, GUID ** - UINT *num, UINT *def_index) - { - HRESULT hr = S_OK; -+ WCHAR *id; -+ - TRACE("%d %p %p %p\n", flow, ids, num, def_index); - - pthread_mutex_lock(&pulse_lock); -@@ -737,16 +739,22 @@ HRESULT WINAPI AUDDRV_GetEndpointIDs(EDataFlow flow, const WCHAR ***ids, GUID ** - *def_index = 0; - - *ids = HeapAlloc(GetProcessHeap(), 0, sizeof(**ids)); -+ *keys = NULL; - if (!*ids) - return E_OUTOFMEMORY; -- (*ids)[0] = defaultW; - -+ (*ids)[0] = id = HeapAlloc(GetProcessHeap(), 0, sizeof(defaultW)); - *keys = HeapAlloc(GetProcessHeap(), 0, sizeof(**keys)); -- if (!*keys) { -+ if (!*keys || !id) { -+ HeapFree(GetProcessHeap(), 0, id); -+ HeapFree(GetProcessHeap(), 0, *keys); - HeapFree(GetProcessHeap(), 0, *ids); - *ids = NULL; -+ *keys = NULL; - return E_OUTOFMEMORY; - } -+ memcpy(id, defaultW, sizeof(defaultW)); -+ - if (flow == eRender) - (*keys)[0] = pulse_render_guid; - else --- -1.8.5.3 - -From 773bf038fd47159d18f8d996bdae2435aaa31f7e Mon Sep 17 00:00:00 2001 -From: Maarten Lankhorst -Date: Sun, 19 Jan 2014 11:34:47 +0100 -Subject: winepulse: use a pi-mutex for serialization. - -The winepulse thread is realtime, to prevent blocking it indefinitely -use priority inheritance. Only initialize and release are potentially -unsafe, the rest should be ok with -rt. ---- - dlls/winepulse.drv/mmdevdrv.c | 13 ++++++++++++- - 1 file changed, 12 insertions(+), 1 deletion(-) - -diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c -index 5b041a2..a09ce7f 100644 ---- a/dlls/winepulse.drv/mmdevdrv.c -+++ b/dlls/winepulse.drv/mmdevdrv.c -@@ -22,6 +22,8 @@ - - #define NONAMELESSUNION - #define COBJMACROS -+#define _GNU_SOURCE -+ - #include "config.h" - #include - #include -@@ -30,6 +32,7 @@ - #include - #include - #include -+#include - - #include - -@@ -68,7 +71,7 @@ static pa_context *pulse_ctx; - static pa_mainloop *pulse_ml; - - static HANDLE pulse_thread; --static pthread_mutex_t pulse_lock = PTHREAD_MUTEX_INITIALIZER; -+static pthread_mutex_t pulse_lock; - static pthread_cond_t pulse_cond = PTHREAD_COND_INITIALIZER; - static struct list g_sessions = LIST_INIT(g_sessions); - -@@ -93,6 +96,8 @@ BOOL WINAPI DllMain(HINSTANCE dll, DWORD reason, void *reserved) - { - if (reason == DLL_PROCESS_ATTACH) { - HKEY key; -+ pthread_mutexattr_t attr; -+ - if (RegOpenKeyW(HKEY_CURRENT_USER, pulse_keyW, &key) == ERROR_SUCCESS) { - DWORD size = sizeof(pulse_stream_volume); - RegQueryValueExW(key, pulse_streamW, 0, NULL, -@@ -100,6 +105,12 @@ BOOL WINAPI DllMain(HINSTANCE dll, DWORD reason, void *reserved) - RegCloseKey(key); - } - DisableThreadLibraryCalls(dll); -+ -+ pthread_mutexattr_init(&attr); -+ pthread_mutexattr_setprotocol(&attr, PTHREAD_PRIO_INHERIT); -+ -+ if (pthread_mutex_init(&pulse_lock, &attr) != 0) -+ pthread_mutex_init(&pulse_lock, NULL); - } else if (reason == DLL_PROCESS_DETACH) { - if (pulse_thread) - SetThreadPriority(pulse_thread, 0); --- -1.8.5.3 - - -From ba0286680493a48c6795ab8a20a70618ba2ef403 Mon Sep 17 00:00:00 2001 -From: Maarten Lankhorst -Date: Sun, 19 Jan 2014 11:34:47 +0100 -Subject: winepulse: add support for IMarshal - -Fixes bug 32161 for winepulse. Based On Jeff Klein's patches for the -other drivers. ---- - dlls/winepulse.drv/mmdevdrv.c | 31 +++++++++++++++++++++++++++++++ - 1 file changed, 31 insertions(+) - -diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c -index a09ce7f..f052a08 100644 ---- a/dlls/winepulse.drv/mmdevdrv.c -+++ b/dlls/winepulse.drv/mmdevdrv.c -@@ -169,6 +169,7 @@ struct ACImpl { - IAudioClock IAudioClock_iface; - IAudioClock2 IAudioClock2_iface; - IAudioStreamVolume IAudioStreamVolume_iface; -+ IUnknown *marshal; - IMMDevice *parent; - struct list entry; - float vol[PA_CHANNELS_MAX]; -@@ -834,6 +835,12 @@ HRESULT WINAPI AUDDRV_GetAudioEndpoint(GUID *guid, IMMDevice *dev, IAudioClient - This->parent = dev; - for (i = 0; i < PA_CHANNELS_MAX; ++i) - This->vol[i] = 1.f; -+ -+ hr = CoCreateFreeThreadedMarshaler((IUnknown*)This, &This->marshal); -+ if (hr) { -+ HeapFree(GetProcessHeap(), 0, This); -+ return hr; -+ } - IMMDevice_AddRef(This->parent); - - *out = &This->IAudioClient_iface; -@@ -845,10 +852,13 @@ HRESULT WINAPI AUDDRV_GetAudioEndpoint(GUID *guid, IMMDevice *dev, IAudioClient - static HRESULT WINAPI AudioClient_QueryInterface(IAudioClient *iface, - REFIID riid, void **ppv) - { -+ ACImpl *This = impl_from_IAudioClient(iface); -+ - TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); - - if (!ppv) - return E_POINTER; -+ - *ppv = NULL; - if (IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IAudioClient)) - *ppv = iface; -@@ -856,6 +866,10 @@ static HRESULT WINAPI AudioClient_QueryInterface(IAudioClient *iface, - IUnknown_AddRef((IUnknown*)*ppv); - return S_OK; - } -+ -+ if (IsEqualIID(riid, &IID_IMarshal)) -+ return IUnknown_QueryInterface(This->marshal, riid, ppv); -+ - WARN("Unknown interface %s\n", debugstr_guid(riid)); - return E_NOINTERFACE; - } -@@ -888,6 +902,7 @@ static ULONG WINAPI AudioClient_Release(IAudioClient *iface) - list_remove(&This->entry); - pthread_mutex_unlock(&pulse_lock); - } -+ IUnknown_Release(This->marshal); - IMMDevice_Release(This->parent); - HeapFree(GetProcessHeap(), 0, This->tmp_buffer); - HeapFree(GetProcessHeap(), 0, This); -@@ -1826,6 +1841,7 @@ static const IAudioClientVtbl AudioClient_Vtbl = - static HRESULT WINAPI AudioRenderClient_QueryInterface( - IAudioRenderClient *iface, REFIID riid, void **ppv) - { -+ ACImpl *This = impl_from_IAudioRenderClient(iface); - TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); - - if (!ppv) -@@ -1840,6 +1856,9 @@ static HRESULT WINAPI AudioRenderClient_QueryInterface( - return S_OK; - } - -+ if (IsEqualIID(riid, &IID_IMarshal)) -+ return IUnknown_QueryInterface(This->marshal, riid, ppv); -+ - WARN("Unknown interface %s\n", debugstr_guid(riid)); - return E_NOINTERFACE; - } -@@ -1969,6 +1988,7 @@ static const IAudioRenderClientVtbl AudioRenderClient_Vtbl = { - static HRESULT WINAPI AudioCaptureClient_QueryInterface( - IAudioCaptureClient *iface, REFIID riid, void **ppv) - { -+ ACImpl *This = impl_from_IAudioCaptureClient(iface); - TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); - - if (!ppv) -@@ -1983,6 +2003,9 @@ static HRESULT WINAPI AudioCaptureClient_QueryInterface( - return S_OK; - } - -+ if (IsEqualIID(riid, &IID_IMarshal)) -+ return IUnknown_QueryInterface(This->marshal, riid, ppv); -+ - WARN("Unknown interface %s\n", debugstr_guid(riid)); - return E_NOINTERFACE; - } -@@ -2125,6 +2148,9 @@ static HRESULT WINAPI AudioClock_QueryInterface(IAudioClock *iface, - return S_OK; - } - -+ if (IsEqualIID(riid, &IID_IMarshal)) -+ return IUnknown_QueryInterface(This->marshal, riid, ppv); -+ - WARN("Unknown interface %s\n", debugstr_guid(riid)); - return E_NOINTERFACE; - } -@@ -2260,6 +2286,8 @@ static const IAudioClock2Vtbl AudioClock2_Vtbl = - static HRESULT WINAPI AudioStreamVolume_QueryInterface( - IAudioStreamVolume *iface, REFIID riid, void **ppv) - { -+ ACImpl *This = impl_from_IAudioStreamVolume(iface); -+ - TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); - - if (!ppv) -@@ -2274,6 +2302,9 @@ static HRESULT WINAPI AudioStreamVolume_QueryInterface( - return S_OK; - } - -+ if (IsEqualIID(riid, &IID_IMarshal)) -+ return IUnknown_QueryInterface(This->marshal, riid, ppv); -+ - WARN("Unknown interface %s\n", debugstr_guid(riid)); - return E_NOINTERFACE; - } --- -1.8.5.3 - diff --git a/wine.spec b/wine.spec index 6990d08..0ea5065 100644 --- a/wine.spec +++ b/wine.spec @@ -10,7 +10,7 @@ %endif # 0%{?fedora} Name: wine -Version: 1.7.29 +Version: 1.7.30 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -60,21 +60,7 @@ Patch511: wine-cjk.patch # wine compholio patches for pipelight. # pulseaudio-patch is covered by that patch-set, too. -%if 0%{?compholio} -Source900: https://github.com/compholio/wine-compholio/archive/v%{version}.tar.gz#/wine-compholio-%{version}.tar.gz -%else # 0%{?compholio} -## winepulse backend -# http://repo.or.cz/w/wine/multimedia.git -# Fri, 31 Jan 2014 10:37:53 +0000 -# based on wine tree 1.7.11 -## -# git clone http://repo.or.cz/r/wine/multimedia.git -# cd multimedia -# git format-patch -k --stdout 28e56d726918e4bc59c456b1947b42f40321763f~..7d0fb975eba0f764a125de6b5ab18aecc56b3db4 > ~/cvs/fedora/rpms/wine/wine-pulse-1.7.11.patch -# git format-patch -k --stdout 773bf038fd47159d18f8d996bdae2435aaa31f7e~..ba0286680493a48c6795ab8a20a70618ba2ef403 >> ~/cvs/fedora/rpms/wine/wine-pulse-1.7.11.patch - -Patch1001: wine-pulse-1.7.11.patch -%endif # 0%{?compholio} +Source900: https://github.com/compholio/wine-compholio/archive/v%{version}.tar.gz#/wine-staging-%{version}.tar.gz %if !%{?no64bit} ExclusiveArch: %{ix86} x86_64 %{arm} @@ -107,6 +93,7 @@ BuildRequires: zlib-devel BuildRequires: fontforge freetype-devel BuildRequires: libgphoto2-devel BuildRequires: isdn4k-utils-devel +BuildRequires: libpcap-devel # modular x BuildRequires: libX11-devel BuildRequires: mesa-libGL-devel mesa-libGLU-devel mesa-libOSMesa-devel @@ -593,15 +580,22 @@ This package adds an openal driver for wine. %patch511 -p1 -b.cjk # setup and apply compholio-patches or pulseaudio-patch. -%if 0%{?compholio} +# since the pulse patch is included in the compholio patches use it from +# there gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 + +%if 0%{?compholio} %{__make} -C patches DESTDIR="`pwd`" install # fix parallelized build sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in %else # 0%{?compholio} -%patch1001 -p1 -b.winepulse + +for p in `ls patches/winepulse-PulseAudio_Support/*patch`; do +echo $p +patch -p1 < $p +done # already run after applying compholio-patchset autoreconf @@ -1274,6 +1268,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/msxml4.dll.so %{_libdir}/wine/msxml6.dll.so %{_libdir}/wine/nddeapi.dll.so +%{_libdir}/wine/ndis.sys.so %{_libdir}/wine/netapi32.dll.so %{_libdir}/wine/netcfgx.dll.so %{_libdir}/wine/netprofm.dll.so @@ -1305,6 +1300,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/powrprof.dll.so %{_libdir}/wine/presentationfontcache.exe.so %{_libdir}/wine/printui.dll.so +%{_libdir}/wine/prntvpt.dll.so %{_libdir}/wine/propsys.dll.so %{_libdir}/wine/psapi.dll.so %{_libdir}/wine/pstorec.dll.so @@ -1406,6 +1402,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/wintrust.dll.so %{_libdir}/wine/wlanapi.dll.so %{_libdir}/wine/wnaspi32.dll.so +%{_libdir}/wine/wpcap.dll.so %{_libdir}/wine/ws2_32.dll.so %{_libdir}/wine/wshom.ocx.so %{_libdir}/wine/wsnmp32.dll.so @@ -1694,6 +1691,12 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sun Nov 02 2014 Andreas Bierfert +- 1.7.30-1 +- version upgrade (rhbz#1159548) +- use winepulse patch from compholio patchset when build w/o + compholio (rhbz#1151862) + * Fri Oct 24 2014 Michael Cronenworth - 1.7.29-1 - version upgrade From 2f9440f3adc4d023ff1c1c675a404d5ad69a0535 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sat, 15 Nov 2014 18:13:49 +0100 Subject: [PATCH 314/715] 1.7.31-1 - version upgrade - wine-gecko upgrade - add some missing arch requires --- .gitignore | 5 +++-- sources | 6 +++--- wine.spec | 45 +++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 49 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 838d121..c58e139 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ /wine-1.6.1.tar.bz2.sign /wine-1.6.1.tar.bz2 -/wine-1.7.30.tar.bz2 -/wine-1.7.30.tar.bz2.sign /wine-staging-1.7.30.tar.gz +/wine-1.7.31.tar.bz2 +/wine-1.7.31.tar.bz2.sign +/wine-staging-1.7.31.tar.gz diff --git a/sources b/sources index c271700..e2e783a 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -7b224c30bd1874e79c490393cc1deda6 wine-1.7.30.tar.bz2 -86910b1f9a5873ec698b3653607023a1 wine-1.7.30.tar.bz2.sign -d36fc1c3392f5d38779b238ec61d4d64 wine-staging-1.7.30.tar.gz +ebbf98c7d91f6a97a7c152902f53d5b7 wine-staging-1.7.31.tar.gz +b41bba459678df1304c39a85ae6fc5df wine-1.7.31.tar.bz2 +53c444ca39a143b86a77f382e942d8b4 wine-1.7.31.tar.bz2.sign diff --git a/wine.spec b/wine.spec index 0ea5065..383781a 100644 --- a/wine.spec +++ b/wine.spec @@ -1,5 +1,5 @@ %global no64bit 0 -%global winegecko 2.24 +%global winegecko 2.34 %global winemono 4.5.2 #global _default_patch_fuzz 2 @@ -10,7 +10,7 @@ %endif # 0%{?fedora} Name: wine -Version: 1.7.30 +Version: 1.7.31 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -227,6 +227,10 @@ Requires: libXrender(x86-32) Requires: libXcursor(x86-32) #dlopen in windowscodesc (fixes rhbz#1085075) Requires: libpng(x86-32) +Requires: libpcap(x86-32) +Requires: mesa-libOSMesa(x86-32) +Requires: libv4l(x86-32) +Requires: unixODBC(x86-32) %endif %ifarch x86_64 @@ -237,6 +241,10 @@ Requires: libXrender(x86-64) Requires: libXcursor(x86-64) #dlopen in windowscodesc (fixes rhbz#1085075) Requires: libpng(x86-64) +Requires: libpcap(x86-64) +Requires: mesa-libOSMesa(x86-64) +Requires: libv4l(x86-64) +Requires: unixODBC(x86-64) %endif %ifarch %{arm} @@ -247,6 +255,10 @@ Requires: libXrender Requires: libXcursor #dlopen in windowscodesc (fixes rhbz#1085075) Requires: libpng +Requires: libpcap +Requires: mesa-libOSMesa +Requires: libv4l +Requires: unixODBC %endif # old removed packages @@ -525,6 +537,15 @@ Color Management for wine Summary: Twain support for wine Group: System Environment/Libraries Requires: wine-core = %{version}-%{release} +%ifarch %{ix86} +Requires: sane-backends-libs(x86-32) +%endif +%ifarch x86_64 +Requires: sane-backends-libs(x86-64) +%endif +%ifarch %{arm} +Requires: sane-backends-libs +%endif %description twain Twain support for wine @@ -533,6 +554,18 @@ Twain support for wine Summary: ISDN support for wine Group: System Environment/Libraries Requires: wine-core = %{version}-%{release} +#FIXME: parallel installable rhbz#1164355 +#%ifarch x86_64 +#Requires: isdn4k-utils(x86-64) +#%endif + +#%ifarch %{ix86} +#Requires: isdn4k-utils(x86-32) +#%endif + +#%ifarch %{arm} +Requires: isdn4k-utils +#%endif %description capi ISDN support for wine @@ -1249,12 +1282,14 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/msvcp90.dll.so %{_libdir}/wine/msvcp100.dll.so %{_libdir}/wine/msvcp110.dll.so +%{_libdir}/wine/msvcp120.dll.so %{_libdir}/wine/msvcr70.dll.so %{_libdir}/wine/msvcr71.dll.so %{_libdir}/wine/msvcr80.dll.so %{_libdir}/wine/msvcr90.dll.so %{_libdir}/wine/msvcr100.dll.so %{_libdir}/wine/msvcr110.dll.so +%{_libdir}/wine/msvcr120.dll.so %{_libdir}/wine/msvcrt.dll.so %{_libdir}/wine/msvcrt20.dll.so %{_libdir}/wine/msvcrt40.dll.so @@ -1691,6 +1726,12 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Fri Nov 14 2014 Andreas Bierfert +- 1.7.31-1 +- version upgrade +- wine-gecko upgrade +- add some missing arch requires + * Sun Nov 02 2014 Andreas Bierfert - 1.7.30-1 - version upgrade (rhbz#1159548) From 99b2a0209a1380ce24a968333d44f3e8a697071e Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 30 Nov 2014 20:49:35 -0600 Subject: [PATCH 315/715] 1.7.32-1 - version upgrade - wine-mono upgrade --- .gitignore | 9 +++------ sources | 6 +++--- wine.spec | 20 ++++++++++++++++++-- 3 files changed, 24 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index c58e139..087175c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,3 @@ -/wine-1.6.1.tar.bz2.sign -/wine-1.6.1.tar.bz2 -/wine-staging-1.7.30.tar.gz -/wine-1.7.31.tar.bz2 -/wine-1.7.31.tar.bz2.sign -/wine-staging-1.7.31.tar.gz +/wine-1.7.32.tar.bz2 +/wine-1.7.32.tar.bz2.sign +/wine-staging-1.7.32.tar.gz diff --git a/sources b/sources index e2e783a..fe10bfb 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -ebbf98c7d91f6a97a7c152902f53d5b7 wine-staging-1.7.31.tar.gz -b41bba459678df1304c39a85ae6fc5df wine-1.7.31.tar.bz2 -53c444ca39a143b86a77f382e942d8b4 wine-1.7.31.tar.bz2.sign +2e428f64daba676c3580e464f5fcbc5c wine-1.7.32.tar.bz2 +e00f252c448175d7b5ea662e107058a8 wine-1.7.32.tar.bz2.sign +083215a8217e32e96aacfdffb8279ffd wine-staging-1.7.32.tar.gz diff --git a/wine.spec b/wine.spec index 383781a..a93dcd9 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,6 @@ %global no64bit 0 %global winegecko 2.34 -%global winemono 4.5.2 +%global winemono 4.5.4 #global _default_patch_fuzz 2 # build with compholio-patches, see: http://www.compholio.com/wine-compholio/ @@ -10,7 +10,7 @@ %endif # 0%{?fedora} Name: wine -Version: 1.7.31 +Version: 1.7.32 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1047,9 +1047,14 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/amstream.dll.so %{_libdir}/wine/api-ms-win-core-com-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-console-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-datetime-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-datetime-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-debug-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-errorhandling-l1-1-1.dll.so +%{_libdir}/wine/api-ms-win-core-fibers-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-fibers-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-file-l1-2-0.dll.so +%{_libdir}/wine/api-ms-win-core-file-l2-1-0.dll.so %{_libdir}/wine/api-ms-win-core-handle-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-heap-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-heap-obsolete-l1-1-0.dll.so @@ -1058,6 +1063,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/api-ms-win-core-kernel32-legacy-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-libraryloader-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-localization-l1-2-0.dll.so +%{_libdir}/wine/api-ms-win-core-localization-l1-2-1.dll.so %{_libdir}/wine/api-ms-win-core-localization-obsolete-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-localregistry-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-memory-l1-1-1.dll.so @@ -1078,7 +1084,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/api-ms-win-core-url-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-util-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-winrt-error-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-winrt-error-l1-1-1.dll.so +%{_libdir}/wine/api-ms-win-core-winrt-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-winrt-string-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-xstate-l2-1-0.dll.so %{_libdir}/wine/api-ms-win-downlevel-advapi32-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-downlevel-advapi32-l2-1-0.dll.so %{_libdir}/wine/api-ms-win-downlevel-normaliz-l1-1-0.dll.so @@ -1124,6 +1133,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/crypt32.dll.so %{_libdir}/wine/cryptdlg.dll.so %{_libdir}/wine/cryptdll.dll.so +%{_libdir}/wine/cryptext.dll.so %{_libdir}/wine/cryptnet.dll.so %{_libdir}/wine/cryptui.dll.so %{_libdir}/wine/ctapi32.dll.so @@ -1407,6 +1417,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/vcomp100.dll.so %{_libdir}/wine/vdmdbg.dll.so %{_libdir}/wine/version.dll.so +%{_libdir}/wine/vssapi.dll.so %{_libdir}/wine/wbemdisp.dll.so %{_libdir}/wine/wbemprox.dll.so %{_libdir}/wine/webservices.dll.so @@ -1726,6 +1737,11 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sun Nov 30 2014 Michael Cronenworth +- 1.7.32-1 +- version upgrade +- wine-mono upgrade + * Fri Nov 14 2014 Andreas Bierfert - 1.7.31-1 - version upgrade From 8e7c5eb93ad460cc8086dc3353ea4217727651d7 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 14 Dec 2014 20:17:27 -0600 Subject: [PATCH 316/715] 1.7.33-1 - version upgrade --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 15 ++++++++++++++- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 087175c..35d2da9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.7.32.tar.bz2 -/wine-1.7.32.tar.bz2.sign -/wine-staging-1.7.32.tar.gz +/wine-1.7.33.tar.bz2 +/wine-1.7.33.tar.bz2.sign +/wine-staging-1.7.33.tar.gz diff --git a/sources b/sources index fe10bfb..8ad8a57 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -2e428f64daba676c3580e464f5fcbc5c wine-1.7.32.tar.bz2 -e00f252c448175d7b5ea662e107058a8 wine-1.7.32.tar.bz2.sign -083215a8217e32e96aacfdffb8279ffd wine-staging-1.7.32.tar.gz +5ecc09c8e98c0709eb183993d39c1c72 wine-1.7.33.tar.bz2 +f8e7b741fa339e8568c182aae3f408a8 wine-1.7.33.tar.bz2.sign +e71558cfc3a7b018cd15369d6f38b7ae wine-staging-1.7.33.tar.gz diff --git a/wine.spec b/wine.spec index a93dcd9..9ad789f 100644 --- a/wine.spec +++ b/wine.spec @@ -10,7 +10,7 @@ %endif # 0%{?fedora} Name: wine -Version: 1.7.32 +Version: 1.7.33 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1051,10 +1051,12 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/api-ms-win-core-datetime-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-debug-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-errorhandling-l1-1-1.dll.so +%{_libdir}/wine/api-ms-win-core-errorhandling-l1-1-2.dll.so %{_libdir}/wine/api-ms-win-core-fibers-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-fibers-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-file-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-file-l2-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-file-l2-1-1.dll.so %{_libdir}/wine/api-ms-win-core-handle-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-heap-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-heap-obsolete-l1-1-0.dll.so @@ -1071,6 +1073,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/api-ms-win-core-processenvironment-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-processthreads-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-processthreads-l1-1-1.dll.so +%{_libdir}/wine/api-ms-win-core-processthreads-l1-1-2.dll.so %{_libdir}/wine/api-ms-win-core-profile-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-psapi-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-registry-l1-1-0.dll.so @@ -1079,6 +1082,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/api-ms-win-core-string-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-synch-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-sysinfo-l1-2-0.dll.so +%{_libdir}/wine/api-ms-win-core-sysinfo-l1-2-1.dll.so %{_libdir}/wine/api-ms-win-core-threadpool-legacy-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-timezone-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-url-l1-1-0.dll.so @@ -1123,6 +1127,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/cfgmgr32.dll.so %{_libdir}/wine/clock.exe.so %{_libdir}/wine/clusapi.dll.so +%{_libdir}/wine/combase.dll.so %{_libdir}/wine/comcat.dll.so %{_libdir}/wine/comctl32.dll.so %{_libdir}/wine/comdlg32.dll.so @@ -1245,6 +1250,8 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/mciqtz32.dll.so %{_libdir}/wine/mciseq.dll.so %{_libdir}/wine/mciwave.dll.so +%{_libdir}/wine/mfplat.dll.so +%{_libdir}/wine/mfreadwrite.dll.so %{_libdir}/wine/mgmtapi.dll.so %{_libdir}/wine/midimap.dll.so %{_libdir}/wine/mlang.dll.so @@ -1293,6 +1300,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/msvcp100.dll.so %{_libdir}/wine/msvcp110.dll.so %{_libdir}/wine/msvcp120.dll.so +%{_libdir}/wine/msvcp120_app.dll.so %{_libdir}/wine/msvcr70.dll.so %{_libdir}/wine/msvcr71.dll.so %{_libdir}/wine/msvcr80.dll.so @@ -1300,6 +1308,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/msvcr100.dll.so %{_libdir}/wine/msvcr110.dll.so %{_libdir}/wine/msvcr120.dll.so +%{_libdir}/wine/msvcr120_app.dll.so %{_libdir}/wine/msvcrt.dll.so %{_libdir}/wine/msvcrt20.dll.so %{_libdir}/wine/msvcrt40.dll.so @@ -1737,6 +1746,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sun Dec 14 2014 Michael Cronenworth +- 1.7.33-1 +- version upgrade + * Sun Nov 30 2014 Michael Cronenworth - 1.7.32-1 - version upgrade From 048c804a8089ce56a0369875afaa1bba83c78b8f Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 14 Dec 2014 20:56:44 -0600 Subject: [PATCH 317/715] Add last-minute DLL addition from wine-staging --- wine.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/wine.spec b/wine.spec index 9ad789f..54728b9 100644 --- a/wine.spec +++ b/wine.spec @@ -1435,6 +1435,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/wiaservc.dll.so %{_libdir}/wine/windowscodecs.dll.so %{_libdir}/wine/windowscodecsext.dll.so +%{_libdir}/wine/wined3d-csmt.dll.so %{_libdir}/wine/winegstreamer.dll.so %{_libdir}/wine/winejoystick.drv.so %{_libdir}/wine/winemapi.dll.so From 22790de30457bbe1cd44b06d51fa17ac20ef69df Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 10 Jan 2015 18:49:48 -0600 Subject: [PATCH 318/715] 1.7.34-1 - version upgrade - enable OpenCL support (rhbz#1176605) --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 36 +++++++++++++++++++++++++++++++++--- 3 files changed, 39 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 35d2da9..7d8fce2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.7.33.tar.bz2 -/wine-1.7.33.tar.bz2.sign -/wine-staging-1.7.33.tar.gz +/wine-1.7.34.tar.bz2 +/wine-1.7.34.tar.bz2.sign +/wine-staging-1.7.34.tar.gz diff --git a/sources b/sources index 8ad8a57..9f4f146 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -5ecc09c8e98c0709eb183993d39c1c72 wine-1.7.33.tar.bz2 -f8e7b741fa339e8568c182aae3f408a8 wine-1.7.33.tar.bz2.sign -e71558cfc3a7b018cd15369d6f38b7ae wine-staging-1.7.33.tar.gz +f74f89b7d96074f0ebffae8e8fc4460d wine-1.7.34.tar.bz2 +0e49c2b385b5974d87c61696a9033abe wine-1.7.34.tar.bz2.sign +93c287d87233c6b0340e81b1c87dc130 wine-staging-1.7.34.tar.gz diff --git a/wine.spec b/wine.spec index 54728b9..bb9288c 100644 --- a/wine.spec +++ b/wine.spec @@ -10,7 +10,7 @@ %endif # 0%{?fedora} Name: wine -Version: 1.7.33 +Version: 1.7.34 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -86,6 +86,8 @@ BuildRequires: libusb-devel BuildRequires: libxml2-devel BuildRequires: libxslt-devel BuildRequires: ncurses-devel +BuildRequires: ocl-icd-devel +BuildRequires: opencl-headers BuildRequires: openldap-devel BuildRequires: unixODBC-devel BuildRequires: sane-backends-devel @@ -150,6 +152,7 @@ Requires: wine-pulseaudio(x86-32) = %{version}-%{release} %if 0%{?fedora} >= 10 || 0%{?rhel} == 6 Requires: wine-openal(x86-32) = %{version}-%{release} %endif +Requires: wine-opencl(x86-32) = %{version}-%{release} %if 0%{?fedora} >= 17 Requires: mingw32-wine-gecko = %winegecko Requires: wine-mono = %winemono @@ -177,6 +180,7 @@ Requires: wine-pulseaudio(x86-64) = %{version}-%{release} %if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 Requires: wine-openal(x86-64) = %{version}-%{release} %endif +Requires: wine-opencl(x86-64) = %{version}-%{release} %if 0%{?fedora} >= 17 Requires: mingw64-wine-gecko = %winegecko Requires: wine-mono = %winemono @@ -195,6 +199,7 @@ Requires: wine-ldap = %{version}-%{release} Requires: wine-twain = %{version}-%{release} Requires: wine-pulseaudio = %{version}-%{release} Requires: wine-openal = %{version}-%{release} +Requires: wine-opencl = %{version}-%{release} Requires: wine-wow = %{version}-%{release} Requires: mesa-dri-drivers Requires: samba-winbind-clients @@ -223,8 +228,11 @@ Requires: wine-filesystem = %{version}-%{release} Requires: freetype(x86-32) Requires: nss-mdns(x86-32) Requires: gnutls(x86-32) -Requires: libXrender(x86-32) +Requires: libXcomposite(x86-32) Requires: libXcursor(x86-32) +Requires: libXinerama(x86-32) +Requires: libXrandr(x86-32) +Requires: libXrender(x86-32) #dlopen in windowscodesc (fixes rhbz#1085075) Requires: libpng(x86-32) Requires: libpcap(x86-32) @@ -237,8 +245,11 @@ Requires: unixODBC(x86-32) Requires: freetype(x86-64) Requires: nss-mdns(x86-64) Requires: gnutls(x86-64) -Requires: libXrender(x86-64) +Requires: libXcomposite(x86-64) Requires: libXcursor(x86-64) +Requires: libXinerama(x86-64) +Requires: libXrandr(x86-64) +Requires: libXrender(x86-64) #dlopen in windowscodesc (fixes rhbz#1085075) Requires: libpng(x86-64) Requires: libpcap(x86-64) @@ -608,6 +619,13 @@ Requires: wine-core = %{version}-%{release} This package adds an openal driver for wine. %endif +%package opencl +Summary: OpenCL support for wine +Requires: wine-core = %{version}-%{release} + +%Description opencl +This package adds the opencl driver for wine. + %prep %setup -q %patch511 -p1 -b.cjk @@ -1334,6 +1352,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/ntdll.dll.so %{_libdir}/wine/ntdsapi.dll.so %{_libdir}/wine/ntprint.dll.so +%{_libdir}/wine/nvapi64.dll.so +%{_libdir}/wine/nvcuda.dll.so +%{_libdir}/wine/nvcuvid.dll.so %{_libdir}/wine/objsel.dll.so %{_libdir}/wine/odbc32.dll.so %{_libdir}/wine/odbccp32.dll.so @@ -1475,6 +1496,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/wined3d.dll.so %{_libdir}/wine/dnsapi.dll.so %{_libdir}/wine/iexplore.exe.so +%{_libdir}/wine/x3daudio1_7.dll.so %{_libdir}/wine/xapofx1_1.dll.so %{_libdir}/wine/xcopy.exe.so %{_libdir}/wine/xinput1_1.dll.so @@ -1746,7 +1768,15 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/openal32.dll.so %endif +%files opencl +%{_libdir}/wine/opencl.dll.so + %changelog +* Sat Jan 10 2015 Michael Cronenworth +- 1.7.34-1 +- version upgrade +- enable OpenCL support (rhbz#1176605) + * Sun Dec 14 2014 Michael Cronenworth - 1.7.33-1 - version upgrade From b110b9779283e56b36a3bdc9d840fd843ecfe2ff Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 10 Jan 2015 19:24:48 -0600 Subject: [PATCH 319/715] New CUDA DLL has an arch specific file name. --- wine.spec | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index bb9288c..4663505 100644 --- a/wine.spec +++ b/wine.spec @@ -1352,7 +1352,6 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/ntdll.dll.so %{_libdir}/wine/ntdsapi.dll.so %{_libdir}/wine/ntprint.dll.so -%{_libdir}/wine/nvapi64.dll.so %{_libdir}/wine/nvcuda.dll.so %{_libdir}/wine/nvcuvid.dll.so %{_libdir}/wine/objsel.dll.so @@ -1509,6 +1508,12 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/xpsprint.dll.so %{_libdir}/wine/xpssvcs.dll.so +%ifarch x86_64 +%{_libdir}/wine/nvapi64.dll.so +%else +%{_libdir}/wine/nvapi.dll.so +%endif + # 16 bit and other non 64bit stuff %ifnarch x86_64 %{arm} %{_libdir}/wine/winevdm.exe.so From 57e669580163381a33641cccf2db6ad672d4a880 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 20 Jan 2015 14:41:27 +0000 Subject: [PATCH 320/715] Rebuild (libgphoto2) --- wine.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 4663505..4004174 100644 --- a/wine.spec +++ b/wine.spec @@ -11,7 +11,7 @@ Name: wine Version: 1.7.34 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -1777,6 +1777,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/opencl.dll.so %changelog +* Tue Jan 20 2015 Peter Robinson 1.7.34-2 +- Rebuild (libgphoto2) + * Sat Jan 10 2015 Michael Cronenworth - 1.7.34-1 - version upgrade From 264190b4ffdfb5900b3db391a09d3552ceead36f Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 25 Jan 2015 15:57:29 -0600 Subject: [PATCH 321/715] Update to 1.7.35 Switch to alternatives system, drop wow sub-package --- .gitignore | 6 +-- sources | 6 +-- wine.spec | 125 +++++++++++++++++++++++++++++------------------------ 3 files changed, 74 insertions(+), 63 deletions(-) diff --git a/.gitignore b/.gitignore index 7d8fce2..d437db2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.7.34.tar.bz2 -/wine-1.7.34.tar.bz2.sign -/wine-staging-1.7.34.tar.gz +/wine-1.7.35.tar.bz2 +/wine-1.7.35.tar.bz2.sign +/wine-staging-1.7.35.tar.gz diff --git a/sources b/sources index 9f4f146..3620507 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -f74f89b7d96074f0ebffae8e8fc4460d wine-1.7.34.tar.bz2 -0e49c2b385b5974d87c61696a9033abe wine-1.7.34.tar.bz2.sign -93c287d87233c6b0340e81b1c87dc130 wine-staging-1.7.34.tar.gz +c33d5f3187218ef53e233da3b5cccc80 wine-1.7.35.tar.bz2 +547d2d290c421dbfbab59939327d0961 wine-1.7.35.tar.bz2.sign +41bc21247e5a4f4f3c68667fd9d489fa wine-staging-1.7.35.tar.gz diff --git a/wine.spec b/wine.spec index 4004174..0ff5391 100644 --- a/wine.spec +++ b/wine.spec @@ -10,8 +10,8 @@ %endif # 0%{?fedora} Name: wine -Version: 1.7.34 -Release: 2%{?dist} +Version: 1.7.35 +Release: 1%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -163,12 +163,6 @@ Requires: mesa-dri-drivers(x86-32) %endif %endif -%ifarch %{ix86} -%if 0%{?fedora} >= 10 || 0%{?rhel} == 6 -Requires: wine-wow(x86-32) = %{version}-%{release} -%endif -%endif - # x86-64 parts %ifarch x86_64 Requires: wine-core(x86-64) = %{version}-%{release} @@ -186,8 +180,6 @@ Requires: mingw64-wine-gecko = %winegecko Requires: wine-mono = %winemono %endif Requires: mesa-dri-drivers(x86-64) -Requires: wine-wow(x86-64) = %{version}-%{release} -Conflicts: wine-wow(x86-32) = %{version}-%{release} %endif # ARM parts @@ -200,7 +192,6 @@ Requires: wine-twain = %{version}-%{release} Requires: wine-pulseaudio = %{version}-%{release} Requires: wine-openal = %{version}-%{release} Requires: wine-opencl = %{version}-%{release} -Requires: wine-wow = %{version}-%{release} Requires: mesa-dri-drivers Requires: samba-winbind-clients %endif @@ -220,6 +211,8 @@ Summary: Wine core package Group: Applications/Emulators Requires(post): /sbin/ldconfig Requires(postun): /sbin/ldconfig +Requires(posttrans): %{_sbindir}/alternatives +Requires(preun): %{_sbindir}/alternatives # require -filesystem Requires: wine-filesystem = %{version}-%{release} @@ -292,28 +285,13 @@ Provides: wine-oss = %{version}-%{release} Obsoletes: wine-nas <= 1.3.15 Provides: wine-nas = %{version}-%{release} +# removed as of 1.7.35 +Obsoletes: wine-wow <= 1.7.34 +Provides: wine-wow = %{version}-%{release} + %description core Wine core package includes the basic wine stuff needed by all other packages. -%package wow -Summary: Files for wine wow separation -Group: Applications/Emulators - -%ifarch x86_64 -Requires: wine-core(x86-64) = %{version}-%{release} -%endif - -%ifarch %{ix86} -Requires: wine-core(x86-32) = %{version}-%{release} -%endif - -%ifarch %{arm} -Requires: wine-core = %{version}-%{release} -%endif - -%description wow -%{summary} - %if 0%{?fedora} >= 15 %package systemd Summary: Systemd config for the wine binfmt handler @@ -360,20 +338,13 @@ Requires(post): /sbin/chkconfig, /sbin/service, Requires(post): desktop-file-utils >= 0.8 Requires(preun): /sbin/chkconfig, /sbin/service Requires(postun): desktop-file-utils >= 0.8 -%ifarch %{arm} Requires: wine-core = %{version}-%{release} -%else -%if 0%{?rhel} >= 7 -Requires: wine-core(x86-64) = %{version}-%{release} -%else -Requires: wine-core(x86-32) = %{version}-%{release} -%endif -%endif Requires: wine-common = %{version}-%{release} %if 0%{?fedora} >= 15 Requires: wine-systemd = %{version}-%{release} %endif Requires: hicolor-icon-theme +BuildArch: noarch %description desktop Desktop integration features for wine, including mime-types and a binary format @@ -682,19 +653,27 @@ export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno LDCONFIG=/bin/true \ UPDATE_DESKTOP_DATABASE=/bin/true +# setup for alternatives usage +%ifarch x86_64 +mv %{buildroot}%{_bindir}/wineserver %{buildroot}%{_bindir}/wineserver64 +%else +mv %{buildroot}%{_bindir}/wine %{buildroot}%{_bindir}/wine32 +mv %{buildroot}%{_bindir}/wine-preloader %{buildroot}%{_bindir}/wine32-preloader +mv %{buildroot}%{_bindir}/wineserver %{buildroot}%{_bindir}/wineserver32 +%endif +touch %{buildroot}%{_bindir}/wine +touch %{buildroot}%{_bindir}/wine-preloader +touch %{buildroot}%{_bindir}/wineserver + # remove rpath chrpath --delete %{buildroot}%{_bindir}/wmc chrpath --delete %{buildroot}%{_bindir}/wrc -chrpath --delete %{buildroot}%{_bindir}/wineserver %ifarch x86_64 chrpath --delete %{buildroot}%{_bindir}/wine64 +chrpath --delete %{buildroot}%{_bindir}/wineserver64 %else -chrpath --delete %{buildroot}%{_bindir}/wine -%endif - -# RHEL7 dropped 32-bit support, provide symlink for wine apps -%if 0%{?rhel} >= 7 -%{__ln_s} %{_bindir}/wine64 %{buildroot}%{_bindir}/wine +chrpath --delete %{buildroot}%{_bindir}/wine32 +chrpath --delete %{buildroot}%{_bindir}/wineserver32 %endif mkdir -p %{buildroot}%{_sysconfdir}/wine @@ -924,7 +903,37 @@ fi gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %post core -p /sbin/ldconfig -%postun core -p /sbin/ldconfig + +%posttrans core +# needed temporarily until people get on alternatives +rm -f %{_bindir}/wine +rm -f %{_bindir}/wine-preloader +rm -f %{_bindir}/wineserver +%ifarch x86_64 +%{_sbindir}/alternatives --install %{_bindir}/wine \ + wine %{_bindir}/wine64 10 \ + --slave %{_bindir}/wine-preloader wine-preloader %{_bindir}/wine64-preloader +%{_sbindir}/alternatives --install %{_bindir}/wineserver \ + wineserver %{_bindir}/wineserver64 20 +%else +%{_sbindir}/alternatives --install %{_bindir}/wine \ + wine %{_bindir}/wine32 20 \ + --slave %{_bindir}/wine-preloader wine-preloader %{_bindir}/wine32-preloader +%{_sbindir}/alternatives --install %{_bindir}/wineserver \ + wineserver %{_bindir}/wineserver32 10 +%endif + +%postun core +/sbin/ldconfig +if [ $1 -eq 0 ] ; then +%ifarch x86_64 + %{_sbindir}/alternatives --remove wine %{_bindir}/wine64 + %{_sbindir}/alternatives --remove wineserver %{_bindir}/wineserver64 +%else + %{_sbindir}/alternatives --remove wine %{_bindir}/wine32 + %{_sbindir}/alternatives --remove wineserver %{_bindir}/wineserver32 +%endif +fi %post ldap -p /sbin/ldconfig %postun ldap -p /sbin/ldconfig @@ -949,12 +958,6 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %files # meta package -%files wow -%ifarch %{ix86} %{arm} -%{_bindir}/wine -%endif -%{_bindir}/wineserver - %files core %doc ANNOUNCE %doc COPYING.LIB @@ -987,22 +990,25 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/dxdiag.exe.so %ifarch %{ix86} %{arm} -%{_bindir}/wine +%{_bindir}/wine32 %ifnarch %{arm} -%{_bindir}/wine-preloader +%{_bindir}/wine32-preloader %endif +%{_bindir}/wineserver32 %config %{_sysconfdir}/ld.so.conf.d/wine-32.conf %endif %ifarch x86_64 -%if 0%{?rhel} >= 7 -%{_bindir}/wine -%endif %{_bindir}/wine64 %{_bindir}/wine64-preloader +%{_bindir}/wineserver64 %config %{_sysconfdir}/ld.so.conf.d/wine-64.conf %endif +%ghost %{_bindir}/wine +%ghost %{_bindir}/wine-preloader +%ghost %{_bindir}/wineserver + %dir %{_libdir}/wine %dir %{_libdir}/wine/fakedlls %{_libdir}/wine/fakedlls/* @@ -1497,6 +1503,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/iexplore.exe.so %{_libdir}/wine/x3daudio1_7.dll.so %{_libdir}/wine/xapofx1_1.dll.so +%{_libdir}/wine/xaudio2_7.dll.so %{_libdir}/wine/xcopy.exe.so %{_libdir}/wine/xinput1_1.dll.so %{_libdir}/wine/xinput1_2.dll.so @@ -1777,6 +1784,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/wine/opencl.dll.so %changelog +* Sun Jan 25 2015 Michael Cronenworth - 1.7.35-1 +- version upgrade +- use alternatives system, remove wow sub-package + * Tue Jan 20 2015 Peter Robinson 1.7.34-2 - Rebuild (libgphoto2) From 2824e39df6232e657404d016de307c395e558512 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 25 Jan 2015 18:34:22 -0600 Subject: [PATCH 322/715] Ignore wine-preloader on ARM --- wine.spec | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/wine.spec b/wine.spec index 0ff5391..9542bb6 100644 --- a/wine.spec +++ b/wine.spec @@ -658,11 +658,15 @@ export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno mv %{buildroot}%{_bindir}/wineserver %{buildroot}%{_bindir}/wineserver64 %else mv %{buildroot}%{_bindir}/wine %{buildroot}%{_bindir}/wine32 +%ifnarch %{arm} mv %{buildroot}%{_bindir}/wine-preloader %{buildroot}%{_bindir}/wine32-preloader +%endif mv %{buildroot}%{_bindir}/wineserver %{buildroot}%{_bindir}/wineserver32 %endif touch %{buildroot}%{_bindir}/wine +%ifnarch %{arm} touch %{buildroot}%{_bindir}/wine-preloader +%endif touch %{buildroot}%{_bindir}/wineserver # remove rpath @@ -907,7 +911,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %posttrans core # needed temporarily until people get on alternatives rm -f %{_bindir}/wine +%ifnarch %{arm} rm -f %{_bindir}/wine-preloader +%endif rm -f %{_bindir}/wineserver %ifarch x86_64 %{_sbindir}/alternatives --install %{_bindir}/wine \ @@ -916,11 +922,18 @@ rm -f %{_bindir}/wineserver %{_sbindir}/alternatives --install %{_bindir}/wineserver \ wineserver %{_bindir}/wineserver64 20 %else +%ifnarch %{arm} %{_sbindir}/alternatives --install %{_bindir}/wine \ wine %{_bindir}/wine32 20 \ --slave %{_bindir}/wine-preloader wine-preloader %{_bindir}/wine32-preloader %{_sbindir}/alternatives --install %{_bindir}/wineserver \ wineserver %{_bindir}/wineserver32 10 +%else +%{_sbindir}/alternatives --install %{_bindir}/wine \ + wine %{_bindir}/wine32 20 +%{_sbindir}/alternatives --install %{_bindir}/wineserver \ + wineserver %{_bindir}/wineserver32 10 +%endif %endif %postun core @@ -1006,7 +1019,9 @@ fi %endif %ghost %{_bindir}/wine +%ifnarch %{arm} %ghost %{_bindir}/wine-preloader +%endif %ghost %{_bindir}/wineserver %dir %{_libdir}/wine From e03522b6bc3bbcb267c135f13f95645d0aaaf27e Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 27 Jan 2015 00:12:58 -0600 Subject: [PATCH 323/715] Rebuild (again) for libgphoto2 --- wine.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/wine.spec b/wine.spec index 9542bb6..5259088 100644 --- a/wine.spec +++ b/wine.spec @@ -11,7 +11,7 @@ Name: wine Version: 1.7.35 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -286,7 +286,7 @@ Obsoletes: wine-nas <= 1.3.15 Provides: wine-nas = %{version}-%{release} # removed as of 1.7.35 -Obsoletes: wine-wow <= 1.7.34 +Obsoletes: wine-wow < 1.7.35 Provides: wine-wow = %{version}-%{release} %description core @@ -1799,6 +1799,9 @@ fi %{_libdir}/wine/opencl.dll.so %changelog +* Mon Jan 26 2015 Michael Cronenworth - 1.7.35-2 +- Rebuild (libgphoto2) + * Sun Jan 25 2015 Michael Cronenworth - 1.7.35-1 - version upgrade - use alternatives system, remove wow sub-package From 556effef58b96624dd81295639ccebf40ff26d85 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Mon, 2 Feb 2015 14:45:19 -0700 Subject: [PATCH 324/715] Add patch to fix stack smashing (bug #1110419) --- ...EN_MAX-to-5-and-use-it-in-MSVCRT__wc.patch | 54 +++++++++++++++++++ wine.spec | 7 ++- 2 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 0001-Bump-MSVCRT_MB_LEN_MAX-to-5-and-use-it-in-MSVCRT__wc.patch diff --git a/0001-Bump-MSVCRT_MB_LEN_MAX-to-5-and-use-it-in-MSVCRT__wc.patch b/0001-Bump-MSVCRT_MB_LEN_MAX-to-5-and-use-it-in-MSVCRT__wc.patch new file mode 100644 index 0000000..8e3e493 --- /dev/null +++ b/0001-Bump-MSVCRT_MB_LEN_MAX-to-5-and-use-it-in-MSVCRT__wc.patch @@ -0,0 +1,54 @@ +From c74fda8b8c1593aa9652fd08d07eb63a8bddf09b Mon Sep 17 00:00:00 2001 +From: Orion Poplawski +Date: Fri, 23 Jan 2015 09:24:37 -0700 +Subject: [PATCH] Bump MSVCRT_MB_LEN_MAX to 5 and use it in MSVCRT__wctomb_l + for default buffer length Set MB_LEN_MAX to 5 to match MSVCRT_MB_LEN_MAX + +--- + dlls/msvcrt/msvcrt.h | 2 +- + dlls/msvcrt/wcs.c | 2 +- + include/msvcrt/limits.h | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/dlls/msvcrt/msvcrt.h b/dlls/msvcrt/msvcrt.h +index 41f31b9..806c4bf 100644 +--- a/dlls/msvcrt/msvcrt.h ++++ b/dlls/msvcrt/msvcrt.h +@@ -47,7 +47,7 @@ + #define MSVCRT_I64_MAX (((__int64)0x7fffffff << 32) | 0xffffffff) + #define MSVCRT_I64_MIN (-MSVCRT_I64_MAX-1) + #define MSVCRT_UI64_MAX (((unsigned __int64)0xffffffff << 32) | 0xffffffff) +-#define MSVCRT_MB_LEN_MAX 2 ++#define MSVCRT_MB_LEN_MAX 5 + #ifdef _WIN64 + #define MSVCRT_SIZE_MAX MSVCRT_UI64_MAX + #else +diff --git a/dlls/msvcrt/wcs.c b/dlls/msvcrt/wcs.c +index 771f6f6..52345fa 100644 +--- a/dlls/msvcrt/wcs.c ++++ b/dlls/msvcrt/wcs.c +@@ -1474,7 +1474,7 @@ int CDECL MSVCRT__wctomb_l(char *dst, MSVCRT_wchar_t ch, MSVCRT__locale_t locale + { + int len; + +- MSVCRT__wctomb_s_l(&len, dst, dst ? 6 : 0, ch, locale); ++ MSVCRT__wctomb_s_l(&len, dst, dst ? MSVCRT_MB_LEN_MAX : 0, ch, locale); + return len; + } + +diff --git a/include/msvcrt/limits.h b/include/msvcrt/limits.h +index d0f058b..ece8c68 100644 +--- a/include/msvcrt/limits.h ++++ b/include/msvcrt/limits.h +@@ -4,7 +4,7 @@ + #include + + #define CHAR_BIT 8 +-#define MB_LEN_MAX 2 ++#define MB_LEN_MAX 5 + + #define SCHAR_MIN (-0x80) + #define SCHAR_MAX 0x7f +-- +2.1.0 + diff --git a/wine.spec b/wine.spec index 5259088..62d3758 100644 --- a/wine.spec +++ b/wine.spec @@ -11,7 +11,7 @@ Name: wine Version: 1.7.35 -Release: 2%{?dist} +Release: 3%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -57,6 +57,7 @@ Source501: wine-tahoma.conf Source502: wine-README-tahoma Patch511: wine-cjk.patch +Patch512: 0001-Bump-MSVCRT_MB_LEN_MAX-to-5-and-use-it-in-MSVCRT__wc.patch # wine compholio patches for pipelight. # pulseaudio-patch is covered by that patch-set, too. @@ -600,6 +601,7 @@ This package adds the opencl driver for wine. %prep %setup -q %patch511 -p1 -b.cjk +%patch512 -p1 -b.buf # setup and apply compholio-patches or pulseaudio-patch. # since the pulse patch is included in the compholio patches use it from @@ -1799,6 +1801,9 @@ fi %{_libdir}/wine/opencl.dll.so %changelog +* Wed Feb 04 2015 Orion Poplawski - 1.7.35-3 +- Add patch to fix stack smashing (bug #1110419) + * Mon Jan 26 2015 Michael Cronenworth - 1.7.35-2 - Rebuild (libgphoto2) From d21e5d7c7469d91d10e946ece3b68653e52c56fc Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 8 Feb 2015 18:28:12 -0600 Subject: [PATCH 325/715] Update to 1.7.36 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 12 ++++++++---- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index d437db2..3d3f82e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.7.35.tar.bz2 -/wine-1.7.35.tar.bz2.sign -/wine-staging-1.7.35.tar.gz +/wine-1.7.36.tar.bz2 +/wine-1.7.36.tar.bz2.sign +/wine-staging-1.7.36.tar.gz diff --git a/sources b/sources index 3620507..cf0ff97 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -c33d5f3187218ef53e233da3b5cccc80 wine-1.7.35.tar.bz2 -547d2d290c421dbfbab59939327d0961 wine-1.7.35.tar.bz2.sign -41bc21247e5a4f4f3c68667fd9d489fa wine-staging-1.7.35.tar.gz +3660517d7c87846f76f8bf40b92a6121 wine-1.7.36.tar.bz2 +0ad25a60dfa8bf4dcbe21f18c13a66e5 wine-1.7.36.tar.bz2.sign +8015fd8766d5421fdeb221b623f6f6b2 wine-staging-1.7.36.tar.gz diff --git a/wine.spec b/wine.spec index 62d3758..970316a 100644 --- a/wine.spec +++ b/wine.spec @@ -10,8 +10,8 @@ %endif # 0%{?fedora} Name: wine -Version: 1.7.35 -Release: 3%{?dist} +Version: 1.7.36 +Release: 1%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -57,7 +57,6 @@ Source501: wine-tahoma.conf Source502: wine-README-tahoma Patch511: wine-cjk.patch -Patch512: 0001-Bump-MSVCRT_MB_LEN_MAX-to-5-and-use-it-in-MSVCRT__wc.patch # wine compholio patches for pipelight. # pulseaudio-patch is covered by that patch-set, too. @@ -601,7 +600,6 @@ This package adds the opencl driver for wine. %prep %setup -q %patch511 -p1 -b.cjk -%patch512 -p1 -b.buf # setup and apply compholio-patches or pulseaudio-patch. # since the pulse patch is included in the compholio patches use it from @@ -1235,6 +1233,7 @@ fi %{_libdir}/wine/dxgi.dll.so %{_libdir}/wine/dxva2.dll.so %{_libdir}/wine/eject.exe.so +%{_libdir}/wine/evr.dll.so %{_libdir}/wine/explorerframe.dll.so %{_libdir}/wine/ext-ms-win-gdi-devcaps-l1-1-0.dll.so %{_libdir}/wine/faultrep.dll.so @@ -1534,8 +1533,10 @@ fi %ifarch x86_64 %{_libdir}/wine/nvapi64.dll.so +%{_libdir}/wine/nvencodeapi64.dll.so %else %{_libdir}/wine/nvapi.dll.so +%{_libdir}/wine/nvencodeapi.dll.so %endif # 16 bit and other non 64bit stuff @@ -1801,6 +1802,9 @@ fi %{_libdir}/wine/opencl.dll.so %changelog +* Sun Feb 08 2015 Michael Cronenworth - 1.7.36-1 +- version upgrade + * Wed Feb 04 2015 Orion Poplawski - 1.7.35-3 - Add patch to fix stack smashing (bug #1110419) From 2101e29194436c3c2be272ff13cd4d1f7669c215 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 16 Feb 2015 10:15:03 -0600 Subject: [PATCH 326/715] Patch for RtlUnwindEx fix and systemd binfmt macros --- wine-staging-rtlunwindex.patch | 76 ++++++++++++++++++++++++++++++++++ wine.spec | 34 +++++++++++---- 2 files changed, 101 insertions(+), 9 deletions(-) create mode 100644 wine-staging-rtlunwindex.patch diff --git a/wine-staging-rtlunwindex.patch b/wine-staging-rtlunwindex.patch new file mode 100644 index 0000000..ad00f08 --- /dev/null +++ b/wine-staging-rtlunwindex.patch @@ -0,0 +1,76 @@ +diff --git a/debian/changelog b/debian/changelog +index bf71cad..9293125 100644 +--- a/debian/changelog ++++ b/debian/changelog +@@ -1,3 +1,7 @@ ++wine-staging (1.7.36-1) UNRELEASED; urgency=low ++ * Update patchset for RtlUnwindEx on x86_64 and fix a second bug. ++ -- Sebastian Lackner Sun, 15 Feb 2015 22:24:13 +0100 ++ + wine-staging (1.7.36) unstable; urgency=low + * Fix an incompatibility of patchinstall.sh with non-bash shells under specific situations. + * Improve dinput-Events patch to be compatible with applications which do not explicitly poll for input. +diff --git a/patches/ntdll-RtlUnwindEx/0001-ntdll-Fix-check-for-end_frame-in-RtlUnwindEx-on-x86_.patch b/patches/ntdll-RtlUnwindEx/0001-ntdll-Fix-check-for-end_frame-in-RtlUnwindEx-on-x86_.patch +index 455a7fc..c5e8903 100644 +--- a/patches/ntdll-RtlUnwindEx/0001-ntdll-Fix-check-for-end_frame-in-RtlUnwindEx-on-x86_.patch ++++ b/patches/ntdll-RtlUnwindEx/0001-ntdll-Fix-check-for-end_frame-in-RtlUnwindEx-on-x86_.patch +@@ -1,18 +1,32 @@ +-From 7dd7631b611976b237acc63386b26866e5b4b253 Mon Sep 17 00:00:00 2001 ++From 3c89d2a189c2cc869c7ce81293ab752e3fa57708 Mon Sep 17 00:00:00 2001 + From: Sebastian Lackner + Date: Sun, 25 Jan 2015 15:46:05 +0100 +-Subject: ntdll: Fix check for end_frame in RtlUnwindEx on x86_64. ++Subject: ntdll: Fix check for end_frame in RtlUnwindEx on x86_64. (rev 2) + ++Changes in v2: ++* Calling wine internal handlers should not mess up the EstablisherFrame. + --- +- dlls/ntdll/signal_x86_64.c | 2 +- +- 1 file changed, 1 insertion(+), 1 deletion(-) ++ dlls/ntdll/signal_x86_64.c | 5 +++-- ++ 1 file changed, 3 insertions(+), 2 deletions(-) + + diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c +-index 05581c2..e739cdb 100644 ++index 05581c2..7072569 100644 + --- a/dlls/ntdll/signal_x86_64.c + +++ b/dlls/ntdll/signal_x86_64.c +-@@ -3178,7 +3178,7 @@ void WINAPI RtlUnwindEx( PVOID end_frame, PVOID target_ip, EXCEPTION_RECORD *rec +- dispatch.EstablisherFrame = new_context.Rsp; ++@@ -3167,6 +3167,7 @@ void WINAPI RtlUnwindEx( PVOID end_frame, PVOID target_ip, EXCEPTION_RECORD *rec ++ } ++ else /* hack: call builtin handlers registered in the tib list */ ++ { +++ DWORD64 backup_frame = dispatch.EstablisherFrame; ++ while ((ULONG64)teb_frame < new_context.Rsp && (ULONG64)teb_frame < (ULONG64)end_frame) ++ { ++ TRACE( "found builtin frame %p handler %p\n", teb_frame, teb_frame->Handler ); ++@@ -3175,10 +3176,10 @@ void WINAPI RtlUnwindEx( PVOID end_frame, PVOID target_ip, EXCEPTION_RECORD *rec ++ teb_frame = __wine_pop_frame( teb_frame ); ++ } ++ if ((ULONG64)teb_frame == (ULONG64)end_frame && (ULONG64)end_frame < new_context.Rsp) break; ++- dispatch.EstablisherFrame = new_context.Rsp; +++ dispatch.EstablisherFrame = backup_frame; + } + + - if (context->Rsp == (ULONG64)end_frame) break; +@@ -21,5 +35,5 @@ index 05581c2..e739cdb 100644 + } + + -- +-2.2.1 ++2.2.2 + +diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh +index b1ac228..9f8a0fa 100755 +--- a/patches/patchinstall.sh ++++ b/patches/patchinstall.sh +@@ -2228,7 +2228,7 @@ fi + if test "$enable_ntdll_RtlUnwindEx" -eq 1; then + patch_apply ntdll-RtlUnwindEx/0001-ntdll-Fix-check-for-end_frame-in-RtlUnwindEx-on-x86_.patch + ( +- echo '+ { "Sebastian Lackner", "ntdll: Fix check for end_frame in RtlUnwindEx on x86_64.", 1 },'; ++ echo '+ { "Sebastian Lackner", "ntdll: Fix check for end_frame in RtlUnwindEx on x86_64.", 2 },'; + ) >> "$patchlist" + fi + diff --git a/wine.spec b/wine.spec index 970316a..a559556 100644 --- a/wine.spec +++ b/wine.spec @@ -9,9 +9,17 @@ %global compholio 1 %endif # 0%{?fedora} +# binfmt macros for RHEL +%if 0%{?fedora} <= 20 || 0%{?rhel} == 7 +%_binfmtdir /usr/lib/binfmt.d +%binfmt_apply() \ +/usr/lib/systemd/systemd-binfmt %{?*} >/dev/null 2>&1 || : \ +%{nil} +%endif + Name: wine Version: 1.7.36 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -62,6 +70,9 @@ Patch511: wine-cjk.patch # pulseaudio-patch is covered by that patch-set, too. Source900: https://github.com/compholio/wine-compholio/archive/v%{version}.tar.gz#/wine-staging-%{version}.tar.gz +# https://bugs.wine-staging.com/show_bug.cgi?id=68 +Patch900: wine-staging-rtlunwindex.patch + %if !%{?no64bit} ExclusiveArch: %{ix86} x86_64 %{arm} %else @@ -292,7 +303,7 @@ Provides: wine-wow = %{version}-%{release} %description core Wine core package includes the basic wine stuff needed by all other packages. -%if 0%{?fedora} >= 15 +%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7 %package systemd Summary: Systemd config for the wine binfmt handler Group: Applications/Emulators @@ -340,7 +351,7 @@ Requires(preun): /sbin/chkconfig, /sbin/service Requires(postun): desktop-file-utils >= 0.8 Requires: wine-core = %{version}-%{release} Requires: wine-common = %{version}-%{release} -%if 0%{?fedora} >= 15 +%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7 Requires: wine-systemd = %{version}-%{release} %endif Requires: hicolor-icon-theme @@ -605,6 +616,7 @@ This package adds the opencl driver for wine. # since the pulse patch is included in the compholio patches use it from # there gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 +%patch900 -p1 -b.rtlunwindex %if 0%{?compholio} %{__make} -C patches DESTDIR="`pwd`" install @@ -685,9 +697,9 @@ mkdir -p %{buildroot}%{_sysconfdir}/wine # Allow users to launch Windows programs by just clicking on the .exe file... mkdir -p %{buildroot}%{_initrddir} install -p -c -m 755 %{SOURCE1} %{buildroot}%{_initrddir}/wine -%if 0%{?fedora} >= 15 -mkdir -p %{buildroot}%{_usr}/lib/binfmt.d -install -p -c -m 644 %{SOURCE2} %{buildroot}%{_usr}/lib/binfmt.d/wine.conf +%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7 +mkdir -p %{buildroot}%{_binfmtdir} +install -p -c -m 644 %{SOURCE2} %{buildroot}%{_binfmtdir}/wine.conf %endif # add wine dir to desktop @@ -868,7 +880,7 @@ if [ $1 -eq 0 ]; then fi %post systemd -/bin/systemctl try-restart systemd-binfmt.service +%binfmt_apply wine.conf %postun systemd if [ $1 -eq 0 ]; then @@ -1733,9 +1745,9 @@ fi %{_datadir}/icons/hicolor/scalable/apps/*svg %endif -%if 0%{?fedora} >= 15 +%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7 %files systemd -%config %{_usr}/lib/binfmt.d/wine.conf +%config %{_binfmtdir}/wine.conf %files sysvinit %endif @@ -1802,6 +1814,10 @@ fi %{_libdir}/wine/opencl.dll.so %changelog +* Mon Feb 16 2015 Michael Cronenworth - 1.7.36-2 +- Patch for RtlUnwindEx fix (staging bz #68) +- Use new systemd macros for binfmt handling + * Sun Feb 08 2015 Michael Cronenworth - 1.7.36-1 - version upgrade From b2ce05a2bdd87a0f4547d33151656c1cdba672e6 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sun, 22 Feb 2015 10:40:42 +0100 Subject: [PATCH 327/715] 1.7.37-1 - version upgrade --- .gitignore | 6 +-- ...EN_MAX-to-5-and-use-it-in-MSVCRT__wc.patch | 54 ------------------- sources | 6 +-- wine.spec | 18 ++++--- 4 files changed, 18 insertions(+), 66 deletions(-) delete mode 100644 0001-Bump-MSVCRT_MB_LEN_MAX-to-5-and-use-it-in-MSVCRT__wc.patch diff --git a/.gitignore b/.gitignore index 3d3f82e..bfa2588 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.7.36.tar.bz2 -/wine-1.7.36.tar.bz2.sign -/wine-staging-1.7.36.tar.gz +/wine-1.7.37.tar.bz2 +/wine-1.7.37.tar.bz2.sign +/wine-staging-1.7.37.tar.gz diff --git a/0001-Bump-MSVCRT_MB_LEN_MAX-to-5-and-use-it-in-MSVCRT__wc.patch b/0001-Bump-MSVCRT_MB_LEN_MAX-to-5-and-use-it-in-MSVCRT__wc.patch deleted file mode 100644 index 8e3e493..0000000 --- a/0001-Bump-MSVCRT_MB_LEN_MAX-to-5-and-use-it-in-MSVCRT__wc.patch +++ /dev/null @@ -1,54 +0,0 @@ -From c74fda8b8c1593aa9652fd08d07eb63a8bddf09b Mon Sep 17 00:00:00 2001 -From: Orion Poplawski -Date: Fri, 23 Jan 2015 09:24:37 -0700 -Subject: [PATCH] Bump MSVCRT_MB_LEN_MAX to 5 and use it in MSVCRT__wctomb_l - for default buffer length Set MB_LEN_MAX to 5 to match MSVCRT_MB_LEN_MAX - ---- - dlls/msvcrt/msvcrt.h | 2 +- - dlls/msvcrt/wcs.c | 2 +- - include/msvcrt/limits.h | 2 +- - 3 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/dlls/msvcrt/msvcrt.h b/dlls/msvcrt/msvcrt.h -index 41f31b9..806c4bf 100644 ---- a/dlls/msvcrt/msvcrt.h -+++ b/dlls/msvcrt/msvcrt.h -@@ -47,7 +47,7 @@ - #define MSVCRT_I64_MAX (((__int64)0x7fffffff << 32) | 0xffffffff) - #define MSVCRT_I64_MIN (-MSVCRT_I64_MAX-1) - #define MSVCRT_UI64_MAX (((unsigned __int64)0xffffffff << 32) | 0xffffffff) --#define MSVCRT_MB_LEN_MAX 2 -+#define MSVCRT_MB_LEN_MAX 5 - #ifdef _WIN64 - #define MSVCRT_SIZE_MAX MSVCRT_UI64_MAX - #else -diff --git a/dlls/msvcrt/wcs.c b/dlls/msvcrt/wcs.c -index 771f6f6..52345fa 100644 ---- a/dlls/msvcrt/wcs.c -+++ b/dlls/msvcrt/wcs.c -@@ -1474,7 +1474,7 @@ int CDECL MSVCRT__wctomb_l(char *dst, MSVCRT_wchar_t ch, MSVCRT__locale_t locale - { - int len; - -- MSVCRT__wctomb_s_l(&len, dst, dst ? 6 : 0, ch, locale); -+ MSVCRT__wctomb_s_l(&len, dst, dst ? MSVCRT_MB_LEN_MAX : 0, ch, locale); - return len; - } - -diff --git a/include/msvcrt/limits.h b/include/msvcrt/limits.h -index d0f058b..ece8c68 100644 ---- a/include/msvcrt/limits.h -+++ b/include/msvcrt/limits.h -@@ -4,7 +4,7 @@ - #include - - #define CHAR_BIT 8 --#define MB_LEN_MAX 2 -+#define MB_LEN_MAX 5 - - #define SCHAR_MIN (-0x80) - #define SCHAR_MAX 0x7f --- -2.1.0 - diff --git a/sources b/sources index cf0ff97..58816b0 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -3660517d7c87846f76f8bf40b92a6121 wine-1.7.36.tar.bz2 -0ad25a60dfa8bf4dcbe21f18c13a66e5 wine-1.7.36.tar.bz2.sign -8015fd8766d5421fdeb221b623f6f6b2 wine-staging-1.7.36.tar.gz +99741c9efece0bf062b39992b63cf5ca wine-1.7.37.tar.bz2 +0bd20a998b5dcf5c424c2cabec4df874 wine-1.7.37.tar.bz2.sign +40feaf4d51cae9c575f638fbf6634f2b wine-staging-1.7.37.tar.gz diff --git a/wine.spec b/wine.spec index a559556..5ae9e5b 100644 --- a/wine.spec +++ b/wine.spec @@ -18,8 +18,8 @@ %endif Name: wine -Version: 1.7.36 -Release: 2%{?dist} +Version: 1.7.37 +Release: 1%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -70,9 +70,6 @@ Patch511: wine-cjk.patch # pulseaudio-patch is covered by that patch-set, too. Source900: https://github.com/compholio/wine-compholio/archive/v%{version}.tar.gz#/wine-staging-%{version}.tar.gz -# https://bugs.wine-staging.com/show_bug.cgi?id=68 -Patch900: wine-staging-rtlunwindex.patch - %if !%{?no64bit} ExclusiveArch: %{ix86} x86_64 %{arm} %else @@ -616,7 +613,6 @@ This package adds the opencl driver for wine. # since the pulse patch is included in the compholio patches use it from # there gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 -%patch900 -p1 -b.rtlunwindex %if 0%{?compholio} %{__make} -C patches DESTDIR="`pwd`" install @@ -1184,6 +1180,7 @@ fi %{_libdir}/wine/comdlg32.dll.so %{_libdir}/wine/compstui.dll.so %{_libdir}/wine/comsvcs.dll.so +%{_libdir}/wine/connect.dll.so %{_libdir}/wine/credui.dll.so %{_libdir}/wine/crtdll.dll.so %{_libdir}/wine/crypt32.dll.so @@ -1302,6 +1299,7 @@ fi %{_libdir}/wine/mciqtz32.dll.so %{_libdir}/wine/mciseq.dll.so %{_libdir}/wine/mciwave.dll.so +%{_libdir}/wine/mf.dll.so %{_libdir}/wine/mfplat.dll.so %{_libdir}/wine/mfreadwrite.dll.so %{_libdir}/wine/mgmtapi.dll.so @@ -1529,8 +1527,12 @@ fi %{_libdir}/wine/wined3d.dll.so %{_libdir}/wine/dnsapi.dll.so %{_libdir}/wine/iexplore.exe.so +%{_libdir}/wine/x3daudio1_1.dll.so %{_libdir}/wine/x3daudio1_7.dll.so %{_libdir}/wine/xapofx1_1.dll.so +%{_libdir}/wine/xapofx1_3.dll.so +%{_libdir}/wine/xapofx1_4.dll.so +%{_libdir}/wine/xapofx1_5.dll.so %{_libdir}/wine/xaudio2_7.dll.so %{_libdir}/wine/xcopy.exe.so %{_libdir}/wine/xinput1_1.dll.so @@ -1814,6 +1816,10 @@ fi %{_libdir}/wine/opencl.dll.so %changelog +* Sun Feb 22 2015 Andreas Bierfert +- 1.7.37-1 +- version upgrade + * Mon Feb 16 2015 Michael Cronenworth - 1.7.36-2 - Patch for RtlUnwindEx fix (staging bz #68) - Use new systemd macros for binfmt handling From 9ea40218228b83a01d4faa91d7b4798340ed7f52 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 24 Feb 2015 08:26:37 -0600 Subject: [PATCH 328/715] wine-staging: Macros needed around wine-staging output files --- wine.spec | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/wine.spec b/wine.spec index 5ae9e5b..8842d3a 100644 --- a/wine.spec +++ b/wine.spec @@ -1384,8 +1384,10 @@ fi %{_libdir}/wine/ntdll.dll.so %{_libdir}/wine/ntdsapi.dll.so %{_libdir}/wine/ntprint.dll.so +%if 0%{?compholio} %{_libdir}/wine/nvcuda.dll.so %{_libdir}/wine/nvcuvid.dll.so +%endif %{_libdir}/wine/objsel.dll.so %{_libdir}/wine/odbc32.dll.so %{_libdir}/wine/odbccp32.dll.so @@ -1487,7 +1489,9 @@ fi %{_libdir}/wine/wiaservc.dll.so %{_libdir}/wine/windowscodecs.dll.so %{_libdir}/wine/windowscodecsext.dll.so +%if 0%{?compholio} %{_libdir}/wine/wined3d-csmt.dll.so +%endif %{_libdir}/wine/winegstreamer.dll.so %{_libdir}/wine/winejoystick.drv.so %{_libdir}/wine/winemapi.dll.so @@ -1545,6 +1549,7 @@ fi %{_libdir}/wine/xpsprint.dll.so %{_libdir}/wine/xpssvcs.dll.so +%if 0%{?compholio} %ifarch x86_64 %{_libdir}/wine/nvapi64.dll.so %{_libdir}/wine/nvencodeapi64.dll.so @@ -1552,6 +1557,7 @@ fi %{_libdir}/wine/nvapi.dll.so %{_libdir}/wine/nvencodeapi.dll.so %endif +%endif # 16 bit and other non 64bit stuff %ifnarch x86_64 %{arm} @@ -1705,7 +1711,9 @@ fi %files ms-sans-serif-fonts %doc COPYING.LIB %{_datadir}/wine/fonts/sse* +%if 0%{?compholio} %{_datadir}/wine/fonts/msyh.ttf +%endif %files tahoma-fonts %doc COPYING.LIB From ae2dd0c215b619478b562844fab2867100ac8b90 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 7 Mar 2015 17:35:30 -0600 Subject: [PATCH 329/715] Update to 1.7.38 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 29 ++++++++++++++++++++++++++--- 3 files changed, 32 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index bfa2588..562e43c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.7.37.tar.bz2 -/wine-1.7.37.tar.bz2.sign -/wine-staging-1.7.37.tar.gz +/wine-1.7.38.tar.bz2 +/wine-1.7.38.tar.bz2.sign +/wine-staging-1.7.38.tar.gz diff --git a/sources b/sources index 58816b0..59fb56f 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -99741c9efece0bf062b39992b63cf5ca wine-1.7.37.tar.bz2 -0bd20a998b5dcf5c424c2cabec4df874 wine-1.7.37.tar.bz2.sign -40feaf4d51cae9c575f638fbf6634f2b wine-staging-1.7.37.tar.gz +0e2c4eae7b5093cb4b7018974994915f wine-1.7.38.tar.bz2 +63ed73652a1b0068ca096f1324e643d6 wine-1.7.38.tar.bz2.sign +a6385ebf1c6830cc4732bb9a49bb4419 wine-staging-1.7.38.tar.gz diff --git a/wine.spec b/wine.spec index 8842d3a..cbe2bcf 100644 --- a/wine.spec +++ b/wine.spec @@ -1,5 +1,10 @@ +# Compiling the preloader fails with hardening enabled +%undefine _hardened_build + %global no64bit 0 +#global winegecko 2.36 %global winegecko 2.34 +#global winemono 4.5.6 %global winemono 4.5.4 #global _default_patch_fuzz 2 @@ -18,7 +23,7 @@ %endif Name: wine -Version: 1.7.37 +Version: 1.7.38 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -68,7 +73,9 @@ Patch511: wine-cjk.patch # wine compholio patches for pipelight. # pulseaudio-patch is covered by that patch-set, too. +%if 0%{?compholio} Source900: https://github.com/compholio/wine-compholio/archive/v%{version}.tar.gz#/wine-staging-%{version}.tar.gz +%endif %if !%{?no64bit} ExclusiveArch: %{ix86} x86_64 %{arm} @@ -612,9 +619,9 @@ This package adds the opencl driver for wine. # setup and apply compholio-patches or pulseaudio-patch. # since the pulse patch is included in the compholio patches use it from # there +%if 0%{?compholio} gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 -%if 0%{?compholio} %{__make} -C patches DESTDIR="`pwd`" install # fix parallelized build @@ -632,11 +639,19 @@ autoreconf %endif # 0%{?compholio} %build + +%if 0%{?fedora} > 21 +# GCC 5 has a optimization that causes wine to break +export CFLAGS="\ +-fbranch-count-reg -fcombine-stack-adjustments -fcompare-elim -fcprop-registers -fdefer-pop -fforward-propagate -fguess-branch-probability -fif-conversion2 -fif-conversion -finline-functions-called-once -fipa-pure-const -fipa-profile -fipa-reference -fmerge-constants -fmove-loop-invariants -fshrink-wrap -fsplit-wide-types -fssa-phiopt -ftree-bit-ccp -ftree-ccp -ftree-ch -ftree-copy-prop -ftree-copyrename -ftree-dce -ftree-dominator-opts -ftree-dse -ftree-fre -ftree-sink -ftree-slsr -ftree-sra -ftree-pta -ftree-ter \ +-falign-functions -falign-jumps -falign-labels -falign-loops -fcaller-saves -fcrossjumping -fcse-follow-jumps -fdevirtualize -fdevirtualize-speculatively -fexpensive-optimizations -fgcse -fhoist-adjacent-loads -findirect-inlining -finline-small-functions -fipa-cp -fipa-cp-alignment -fipa-icf -fipa-icf-functions -fipa-ra -fipa-sra -fisolate-erroneous-paths-dereference -flra-remat -foptimize-sibling-calls -foptimize-strlen -fpartial-inlining -fpeephole2 -freorder-blocks -freorder-blocks-and-partition -freorder-functions -frerun-cse-after-loop -fschedule-insns2 -fstrict-aliasing -fstrict-overflow -fthread-jumps -ftree-builtin-call-dce -ftree-pre -ftree-switch-conversion -ftree-tail-merge -ftree-vrp -fvect-cost-model=cheap \ +-pipe -Wall -Werror=format-security -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -g -mtune=generic -Wno-error" +%else # disable fortify as it breaks wine # http://bugs.winehq.org/show_bug.cgi?id=24606 # http://bugs.winehq.org/show_bug.cgi?id=25073 - export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno-error" +%endif %configure \ --sysconfdir=%{_sysconfdir}/wine \ @@ -1532,6 +1547,11 @@ fi %{_libdir}/wine/dnsapi.dll.so %{_libdir}/wine/iexplore.exe.so %{_libdir}/wine/x3daudio1_1.dll.so +%{_libdir}/wine/x3daudio1_2.dll.so +%{_libdir}/wine/x3daudio1_3.dll.so +%{_libdir}/wine/x3daudio1_4.dll.so +%{_libdir}/wine/x3daudio1_5.dll.so +%{_libdir}/wine/x3daudio1_6.dll.so %{_libdir}/wine/x3daudio1_7.dll.so %{_libdir}/wine/xapofx1_1.dll.so %{_libdir}/wine/xapofx1_3.dll.so @@ -1824,6 +1844,9 @@ fi %{_libdir}/wine/opencl.dll.so %changelog +* Sat Mar 07 2015 Michael Cronenworth - 1.7.38-1 +- version upgrade + * Sun Feb 22 2015 Andreas Bierfert - 1.7.37-1 - version upgrade From 646cba5b6c398a9ce68c0e7e989e67267fd0217d Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 7 Mar 2015 17:55:54 -0600 Subject: [PATCH 330/715] Add F22+ CFLAG test for ARM --- wine.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index cbe2bcf..e29ef0e 100644 --- a/wine.spec +++ b/wine.spec @@ -642,10 +642,14 @@ autoreconf %if 0%{?fedora} > 21 # GCC 5 has a optimization that causes wine to break +%ifnarch %{arm} export CFLAGS="\ -fbranch-count-reg -fcombine-stack-adjustments -fcompare-elim -fcprop-registers -fdefer-pop -fforward-propagate -fguess-branch-probability -fif-conversion2 -fif-conversion -finline-functions-called-once -fipa-pure-const -fipa-profile -fipa-reference -fmerge-constants -fmove-loop-invariants -fshrink-wrap -fsplit-wide-types -fssa-phiopt -ftree-bit-ccp -ftree-ccp -ftree-ch -ftree-copy-prop -ftree-copyrename -ftree-dce -ftree-dominator-opts -ftree-dse -ftree-fre -ftree-sink -ftree-slsr -ftree-sra -ftree-pta -ftree-ter \ -falign-functions -falign-jumps -falign-labels -falign-loops -fcaller-saves -fcrossjumping -fcse-follow-jumps -fdevirtualize -fdevirtualize-speculatively -fexpensive-optimizations -fgcse -fhoist-adjacent-loads -findirect-inlining -finline-small-functions -fipa-cp -fipa-cp-alignment -fipa-icf -fipa-icf-functions -fipa-ra -fipa-sra -fisolate-erroneous-paths-dereference -flra-remat -foptimize-sibling-calls -foptimize-strlen -fpartial-inlining -fpeephole2 -freorder-blocks -freorder-blocks-and-partition -freorder-functions -frerun-cse-after-loop -fschedule-insns2 -fstrict-aliasing -fstrict-overflow -fthread-jumps -ftree-builtin-call-dce -ftree-pre -ftree-switch-conversion -ftree-tail-merge -ftree-vrp -fvect-cost-model=cheap \ --pipe -Wall -Werror=format-security -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -g -mtune=generic -Wno-error" +-pipe -Wall -Werror=format-security -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -g -mtune=generic -Wno-error" +%else +export CFLAGS="-O0 -pipe -Wall -Werror=format-security -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -g -mtune=generic -Wno-error" +%endif %else # disable fortify as it breaks wine # http://bugs.winehq.org/show_bug.cgi?id=24606 From 58326ef1fde6dd6d97f47ec6602f16aebbd93065 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 7 Mar 2015 18:14:09 -0600 Subject: [PATCH 331/715] Pass ARM mtune settings --- wine.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index e29ef0e..49b28e6 100644 --- a/wine.spec +++ b/wine.spec @@ -648,7 +648,7 @@ export CFLAGS="\ -falign-functions -falign-jumps -falign-labels -falign-loops -fcaller-saves -fcrossjumping -fcse-follow-jumps -fdevirtualize -fdevirtualize-speculatively -fexpensive-optimizations -fgcse -fhoist-adjacent-loads -findirect-inlining -finline-small-functions -fipa-cp -fipa-cp-alignment -fipa-icf -fipa-icf-functions -fipa-ra -fipa-sra -fisolate-erroneous-paths-dereference -flra-remat -foptimize-sibling-calls -foptimize-strlen -fpartial-inlining -fpeephole2 -freorder-blocks -freorder-blocks-and-partition -freorder-functions -frerun-cse-after-loop -fschedule-insns2 -fstrict-aliasing -fstrict-overflow -fthread-jumps -ftree-builtin-call-dce -ftree-pre -ftree-switch-conversion -ftree-tail-merge -ftree-vrp -fvect-cost-model=cheap \ -pipe -Wall -Werror=format-security -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -g -mtune=generic -Wno-error" %else -export CFLAGS="-O0 -pipe -Wall -Werror=format-security -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -g -mtune=generic -Wno-error" +export CFLAGS="-O0 -g -pipe -Wall -Werror=format-security -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard -Wno-error" %endif %else # disable fortify as it breaks wine From ce5cc9629b632f50f5f4154356077730e49c0c66 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 7 Mar 2015 19:44:11 -0600 Subject: [PATCH 332/715] Fix wine-gecko and wine-mono versions --- wine.spec | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/wine.spec b/wine.spec index 49b28e6..523ee44 100644 --- a/wine.spec +++ b/wine.spec @@ -2,10 +2,8 @@ %undefine _hardened_build %global no64bit 0 -#global winegecko 2.36 -%global winegecko 2.34 -#global winemono 4.5.6 -%global winemono 4.5.4 +%global winegecko 2.36 +%global winemono 4.5.6 #global _default_patch_fuzz 2 # build with compholio-patches, see: http://www.compholio.com/wine-compholio/ @@ -16,7 +14,7 @@ # binfmt macros for RHEL %if 0%{?fedora} <= 20 || 0%{?rhel} == 7 -%_binfmtdir /usr/lib/binfmt.d +%global _binfmtdir /usr/lib/binfmt.d %binfmt_apply() \ /usr/lib/systemd/systemd-binfmt %{?*} >/dev/null 2>&1 || : \ %{nil} @@ -24,7 +22,7 @@ Name: wine Version: 1.7.38 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -1848,6 +1846,9 @@ fi %{_libdir}/wine/opencl.dll.so %changelog +* Sat Mar 07 2015 Michael Cronenworth - 1.7.38-2 +- Fix wine-gecko and wine-mono versions + * Sat Mar 07 2015 Michael Cronenworth - 1.7.38-1 - version upgrade From 699e57ad52a2a81c5b53e62ea432a7eeaf7858e6 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 7 Mar 2015 19:56:46 -0600 Subject: [PATCH 333/715] Update alllll the macros --- wine.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 523ee44..8530bd9 100644 --- a/wine.spec +++ b/wine.spec @@ -15,7 +15,7 @@ # binfmt macros for RHEL %if 0%{?fedora} <= 20 || 0%{?rhel} == 7 %global _binfmtdir /usr/lib/binfmt.d -%binfmt_apply() \ +%global binfmt_apply() \ /usr/lib/systemd/systemd-binfmt %{?*} >/dev/null 2>&1 || : \ %{nil} %endif From 2b4e365a32e53ebe5920674cf91b89c1aef10063 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Tue, 10 Mar 2015 13:38:38 -0400 Subject: [PATCH 334/715] Drop sysvinit subpackage on F23+ --- wine.spec | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/wine.spec b/wine.spec index 8530bd9..31b5817 100644 --- a/wine.spec +++ b/wine.spec @@ -22,7 +22,7 @@ Name: wine Version: 1.7.38 -Release: 2%{?dist} +Release: 3%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -318,6 +318,7 @@ Requires(postun): systemd Register the wine binary handler for windows executables via systemd binfmt handling. See man binfmt.d for further information. +%if 0%{?fedora} < 23 %package sysvinit Summary: SysV initscript for the wine binfmt handler Group: Applications/Emulators @@ -326,6 +327,7 @@ BuildArch: noarch %description sysvinit Register the wine binary handler for windows executables via SysV init files. %endif +%endif %package filesystem Summary: Filesystem directories for wine @@ -708,8 +710,10 @@ chrpath --delete %{buildroot}%{_bindir}/wineserver32 mkdir -p %{buildroot}%{_sysconfdir}/wine # Allow users to launch Windows programs by just clicking on the .exe file... +%if 0%{?fedora} < 23 mkdir -p %{buildroot}%{_initrddir} install -p -c -m 755 %{SOURCE1} %{buildroot}%{_initrddir}/wine +%endif %if 0%{?fedora} >= 15 || 0%{?rhel} >= 7 mkdir -p %{buildroot}%{_binfmtdir} install -p -c -m 644 %{SOURCE2} %{buildroot}%{_binfmtdir}/wine.conf @@ -879,6 +883,7 @@ popd %if 0%{?fedora} >= 15 +%if 0%{?fedora} < 23 %post sysvinit if [ $1 -eq 1 ]; then /sbin/chkconfig --add wine @@ -891,6 +896,7 @@ if [ $1 -eq 0 ]; then /sbin/service wine stop >/dev/null 2>&1 /sbin/chkconfig --del wine fi +%endif %post systemd %binfmt_apply wine.conf @@ -1781,9 +1787,11 @@ fi %files systemd %config %{_binfmtdir}/wine.conf +%if 0%{?fedora} < 23 %files sysvinit -%endif %{_initrddir}/wine +%endif +%endif # ldap subpackage %files ldap @@ -1846,6 +1854,9 @@ fi %{_libdir}/wine/opencl.dll.so %changelog +* Tue Mar 10 2015 Adam Jackson 1.7.38-3 +- Drop sysvinit subpackage on F23+ + * Sat Mar 07 2015 Michael Cronenworth - 1.7.38-2 - Fix wine-gecko and wine-mono versions From 764a0da0a3827f9e8d886f61d43d29b525107f17 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 23 Mar 2015 21:57:56 -0500 Subject: [PATCH 335/715] Update to 1.7.39 --- .gitignore | 6 +- sources | 6 +- wine-gcc5.patch | 161 ++++++++++++++++++++++++++++++++++++++++++++++++ wine.spec | 28 +++++---- 4 files changed, 182 insertions(+), 19 deletions(-) create mode 100644 wine-gcc5.patch diff --git a/.gitignore b/.gitignore index 562e43c..68c8868 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.7.38.tar.bz2 -/wine-1.7.38.tar.bz2.sign -/wine-staging-1.7.38.tar.gz +/wine-1.7.39.tar.bz2 +/wine-1.7.39.tar.bz2.sign +/wine-staging-1.7.39.tar.gz diff --git a/sources b/sources index 59fb56f..12e114f 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -0e2c4eae7b5093cb4b7018974994915f wine-1.7.38.tar.bz2 -63ed73652a1b0068ca096f1324e643d6 wine-1.7.38.tar.bz2.sign -a6385ebf1c6830cc4732bb9a49bb4419 wine-staging-1.7.38.tar.gz +eada8f9fde77a72e1d1f682020d4cbfe wine-1.7.39.tar.bz2 +3d1c993249d4ca1971a69724657286ab wine-1.7.39.tar.bz2.sign +88b30faba37a5889843a96bfbc81af35 wine-staging-1.7.39.tar.gz diff --git a/wine-gcc5.patch b/wine-gcc5.patch new file mode 100644 index 0000000..e90ede6 --- /dev/null +++ b/wine-gcc5.patch @@ -0,0 +1,161 @@ +--- wine-1.7.38/dlls/ntdll/sec.c.orig 2015-03-06 07:27:36.000000000 -0600 ++++ wine-1.7.38/dlls/ntdll/sec.c 2015-03-19 10:42:37.117665983 -0500 +@@ -1714,7 +1714,7 @@ + * the native function returns something like + * "S-1-5-21-0000000000-000000000-0000000000-500"; + */ +-NTSTATUS WINAPI RtlConvertSidToUnicodeString( ++NTSTATUS WINAPI __attribute__((optimize("O0"))) RtlConvertSidToUnicodeString( + PUNICODE_STRING String, + PSID pSid, + BOOLEAN AllocateString) +--- wine-1.7.38/dlls/ntdll/directory.c.orig 2015-03-19 13:53:47.952588902 -0500 ++++ wine-1.7.38/dlls/ntdll/directory.c 2015-03-19 13:52:51.571954998 -0500 +@@ -3008,7 +3008,7 @@ + * element doesn't have to exist; in that case STATUS_NO_SUCH_FILE is + * returned, but the unix name is still filled in properly. + */ +-NTSTATUS CDECL wine_nt_to_unix_file_name( const UNICODE_STRING *nameW, ANSI_STRING *unix_name_ret, ++NTSTATUS CDECL __attribute__((optimize("O0"))) wine_nt_to_unix_file_name( const UNICODE_STRING *nameW, ANSI_STRING *unix_name_ret, + UINT disposition, BOOLEAN check_case ) + { + static const WCHAR unixW[] = {'u','n','i','x'}; +--- wine-1.7.38/dlls/kernel32/volume.c.orig 2015-03-19 15:01:23.647111174 -0500 ++++ wine-1.7.38/dlls/kernel32/volume.c 2015-03-19 15:00:59.460854627 -0500 +@@ -714,7 +714,7 @@ + /*********************************************************************** + * GetVolumeInformationW (KERNEL32.@) + */ +-BOOL WINAPI GetVolumeInformationW( LPCWSTR root, LPWSTR label, DWORD label_len, ++BOOL WINAPI __attribute__((optimize("O0"))) GetVolumeInformationW( LPCWSTR root, LPWSTR label, DWORD label_len, + DWORD *serial, DWORD *filename_len, DWORD *flags, + LPWSTR fsname, DWORD fsname_len ) + { +--- wine-1.7.39/dlls/ntdll/virtual.c.orig 2015-03-23 09:22:18.512141978 -0500 ++++ wine-1.7.39/dlls/ntdll/virtual.c 2015-03-23 09:22:47.951415202 -0500 +@@ -2346,7 +2346,7 @@ + * NtQueryVirtualMemory (NTDLL.@) + * ZwQueryVirtualMemory (NTDLL.@) + */ +-NTSTATUS WINAPI NtQueryVirtualMemory( HANDLE process, LPCVOID addr, ++NTSTATUS WINAPI __attribute__((optimize("O0"))) NtQueryVirtualMemory( HANDLE process, LPCVOID addr, + MEMORY_INFORMATION_CLASS info_class, PVOID buffer, + SIZE_T len, SIZE_T *res_len ) + { +--- wine-1.7.39/dlls/kernel32/process.c.orig 2015-03-23 11:35:21.490412754 -0500 ++++ wine-1.7.39/dlls/kernel32/process.c 2015-03-23 12:12:36.928665968 -0500 +@@ -1088,7 +1088,7 @@ + * + * Startup routine of a new process. Runs on the new process stack. + */ +-static DWORD WINAPI start_process( PEB *peb ) ++static DWORD WINAPI __attribute__((optimize("O0"))) start_process( PEB *peb ) + { + IMAGE_NT_HEADERS *nt; + LPTHREAD_START_ROUTINE entry; +--- wine-1.7.39/dlls/winex11.drv/window.c.orig 2015-03-23 12:14:36.789785691 -0500 ++++ wine-1.7.39/dlls/winex11.drv/window.c 2015-03-23 12:35:56.656863213 -0500 +@@ -1270,7 +1270,7 @@ + * + * Synchronize the X client window position with the Windows one + */ +-static void sync_client_position( struct x11drv_win_data *data, ++static void __attribute__((optimize("O0"))) sync_client_position( struct x11drv_win_data *data, + const RECT *old_client_rect, const RECT *old_whole_rect ) + { + int mask = 0; +--- wine-1.7.39/dlls/gdi32/freetype.c.orig 2015-03-20 08:41:44.000000000 -0500 ++++ wine-1.7.39/dlls/gdi32/freetype.c 2015-03-23 14:15:25.884759565 -0500 +@@ -6389,7 +6389,7 @@ + + static const BYTE masks[8] = {0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01}; + +-static DWORD get_glyph_outline(GdiFont *incoming_font, UINT glyph, UINT format, ++static DWORD __attribute__((optimize("O0"))) get_glyph_outline(GdiFont *incoming_font, UINT glyph, UINT format, + LPGLYPHMETRICS lpgm, ABC *abc, DWORD buflen, LPVOID buf, + const MAT2* lpmat) + { +--- wine-1.7.39/dlls/rpcrt4/rpc_binding.c.orig 2015-03-20 08:41:44.000000000 -0500 ++++ wine-1.7.39/dlls/rpcrt4/rpc_binding.c 2015-03-23 17:00:45.215424859 -0500 +@@ -984,7 +984,7 @@ + /*********************************************************************** + * RpcBindingCopy (RPCRT4.@) + */ +-RPC_STATUS RPC_ENTRY RpcBindingCopy( ++RPC_STATUS RPC_ENTRY __attribute__((optimize("O0"))) RpcBindingCopy( + RPC_BINDING_HANDLE SourceBinding, + RPC_BINDING_HANDLE* DestinationBinding) + { +--- wine-1.7.39/dlls/gdi32/font.c.orig 2015-03-23 20:33:48.751656009 -0500 ++++ wine-1.7.39/dlls/gdi32/font.c 2015-03-23 20:33:52.295693767 -0500 +@@ -1297,7 +1297,7 @@ + * Return the size of the string as it would be if it was output properly by + * e.g. TextOut. + */ +-BOOL WINAPI GetTextExtentExPointW( HDC hdc, LPCWSTR str, INT count, INT max_ext, ++BOOL WINAPI __attribute__((optimize("O0"))) GetTextExtentExPointW( HDC hdc, LPCWSTR str, INT count, INT max_ext, + LPINT nfit, LPINT dxs, LPSIZE size ) + { + DC *dc; +--- wine-1.7.39/dlls/gdi32/mapping.c.orig 2015-03-23 20:21:39.025790911 -0500 ++++ wine-1.7.39/dlls/gdi32/mapping.c 2015-03-23 20:27:31.380589949 -0500 +@@ -324,7 +324,7 @@ + /*********************************************************************** + * DPtoLP (GDI32.@) + */ +-BOOL WINAPI DPtoLP( HDC hdc, LPPOINT points, INT count ) ++BOOL WINAPI __attribute__((optimize("O0"))) DPtoLP( HDC hdc, LPPOINT points, INT count ) + { + DC * dc = get_dc_ptr( hdc ); + if (!dc) return FALSE; +@@ -352,7 +352,7 @@ + /*********************************************************************** + * LPtoDP (GDI32.@) + */ +-BOOL WINAPI LPtoDP( HDC hdc, LPPOINT points, INT count ) ++BOOL WINAPI __attribute__((optimize("O0"))) LPtoDP( HDC hdc, LPPOINT points, INT count ) + { + DC * dc = get_dc_ptr( hdc ); + if (!dc) return FALSE; +--- wine-1.7.39/dlls/user32/win.c.orig 2015-03-23 21:42:20.861715642 -0500 ++++ wine-1.7.39/dlls/user32/win.c 2015-03-23 21:45:49.223517788 -0500 +@@ -2955,7 +2955,7 @@ + /***************************************************************** + * SetParent (USER32.@) + */ +-HWND WINAPI SetParent( HWND hwnd, HWND parent ) ++HWND WINAPI __attribute__((optimize("O0"))) SetParent( HWND hwnd, HWND parent ) + { + HWND full_handle; + HWND old_parent = 0; +--- wine-1.7.39/programs/winecfg/appdefaults.c.orig 2015-03-23 21:15:50.402096990 -0500 ++++ wine-1.7.39/programs/winecfg/appdefaults.c 2015-03-23 21:16:22.345452810 -0500 +@@ -78,7 +78,7 @@ + static const char szKeyNT[] = "Software\\Microsoft\\Windows NT\\CurrentVersion"; + static const char szKeyProdNT[] = "System\\CurrentControlSet\\Control\\ProductOptions"; + +-static int get_registry_version(void) ++static int __attribute__((optimize("O0"))) get_registry_version(void) + { + int i, best = -1, platform, major, minor = 0, build = 0; + char *p, *ver, *type = NULL; +--- wine-1.7.39/programs/winemenubuilder/winemenubuilder.c.orig 2015-03-23 21:18:24.651815189 -0500 ++++ wine-1.7.39/programs/winemenubuilder/winemenubuilder.c 2015-03-23 21:24:20.565779739 -0500 +@@ -2323,7 +2323,7 @@ + return ret; + } + +-static void update_association(LPCWSTR extension, LPCSTR mimeType, LPCWSTR progId, ++static void __attribute__((optimize("O0"))) update_association(LPCWSTR extension, LPCSTR mimeType, LPCWSTR progId, + LPCSTR appName, LPCSTR desktopFile, LPCSTR openWithIcon) + { + static const WCHAR ProgIDW[] = {'P','r','o','g','I','D',0}; +@@ -2400,7 +2400,7 @@ + HeapFree(GetProcessHeap(), 0, openWithIconW); + } + +-static BOOL cleanup_associations(void) ++static BOOL __attribute__((optimize("O0"))) cleanup_associations(void) + { + static const WCHAR openW[] = {'o','p','e','n',0}; + static const WCHAR DesktopFileW[] = {'D','e','s','k','t','o','p','F','i','l','e',0}; diff --git a/wine.spec b/wine.spec index 31b5817..108dc40 100644 --- a/wine.spec +++ b/wine.spec @@ -21,8 +21,8 @@ %endif Name: wine -Version: 1.7.38 -Release: 3%{?dist} +Version: 1.7.39 +Release: 1%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -68,6 +68,8 @@ Source501: wine-tahoma.conf Source502: wine-README-tahoma Patch511: wine-cjk.patch +# temporary workaround for GCC 5.0 optimization regressions +Patch512: wine-gcc5.patch # wine compholio patches for pipelight. # pulseaudio-patch is covered by that patch-set, too. @@ -615,6 +617,9 @@ This package adds the opencl driver for wine. %prep %setup -q %patch511 -p1 -b.cjk +%if 0%{?fedora} > 21 +%patch512 -p1 -b.gcc5 +%endif # setup and apply compholio-patches or pulseaudio-patch. # since the pulse patch is included in the compholio patches use it from @@ -640,20 +645,13 @@ autoreconf %build -%if 0%{?fedora} > 21 -# GCC 5 has a optimization that causes wine to break -%ifnarch %{arm} -export CFLAGS="\ --fbranch-count-reg -fcombine-stack-adjustments -fcompare-elim -fcprop-registers -fdefer-pop -fforward-propagate -fguess-branch-probability -fif-conversion2 -fif-conversion -finline-functions-called-once -fipa-pure-const -fipa-profile -fipa-reference -fmerge-constants -fmove-loop-invariants -fshrink-wrap -fsplit-wide-types -fssa-phiopt -ftree-bit-ccp -ftree-ccp -ftree-ch -ftree-copy-prop -ftree-copyrename -ftree-dce -ftree-dominator-opts -ftree-dse -ftree-fre -ftree-sink -ftree-slsr -ftree-sra -ftree-pta -ftree-ter \ --falign-functions -falign-jumps -falign-labels -falign-loops -fcaller-saves -fcrossjumping -fcse-follow-jumps -fdevirtualize -fdevirtualize-speculatively -fexpensive-optimizations -fgcse -fhoist-adjacent-loads -findirect-inlining -finline-small-functions -fipa-cp -fipa-cp-alignment -fipa-icf -fipa-icf-functions -fipa-ra -fipa-sra -fisolate-erroneous-paths-dereference -flra-remat -foptimize-sibling-calls -foptimize-strlen -fpartial-inlining -fpeephole2 -freorder-blocks -freorder-blocks-and-partition -freorder-functions -frerun-cse-after-loop -fschedule-insns2 -fstrict-aliasing -fstrict-overflow -fthread-jumps -ftree-builtin-call-dce -ftree-pre -ftree-switch-conversion -ftree-tail-merge -ftree-vrp -fvect-cost-model=cheap \ --pipe -Wall -Werror=format-security -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -g -mtune=generic -Wno-error" -%else -export CFLAGS="-O0 -g -pipe -Wall -Werror=format-security -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard -Wno-error" -%endif -%else # disable fortify as it breaks wine # http://bugs.winehq.org/show_bug.cgi?id=24606 # http://bugs.winehq.org/show_bug.cgi?id=25073 +%if 0%{?fedora} > 21 +export TEMP_CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-O2/-O1/'`" +export CFLAGS="`echo $TEMP_CFLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno-error" +%else export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno-error" %endif @@ -1854,6 +1852,10 @@ fi %{_libdir}/wine/opencl.dll.so %changelog +* Sun Mar 22 2015 Michael Cronenworth 1.7.39-1 +- version upgrade +- Enable some optimizations and workarounds for GCC5 regressions + * Tue Mar 10 2015 Adam Jackson 1.7.38-3 - Drop sysvinit subpackage on F23+ From ca28a078b6c89d8470dca6afaa356b04cf35cb36 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 6 Apr 2015 11:47:05 -0500 Subject: [PATCH 336/715] Update to 1.7.40 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 12 +++++++++--- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 68c8868..5e05852 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.7.39.tar.bz2 -/wine-1.7.39.tar.bz2.sign -/wine-staging-1.7.39.tar.gz +/wine-1.7.40.tar.bz2 +/wine-1.7.40.tar.bz2.sign +/wine-staging-1.7.40.tar.gz diff --git a/sources b/sources index 12e114f..3914cb2 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -eada8f9fde77a72e1d1f682020d4cbfe wine-1.7.39.tar.bz2 -3d1c993249d4ca1971a69724657286ab wine-1.7.39.tar.bz2.sign -88b30faba37a5889843a96bfbc81af35 wine-staging-1.7.39.tar.gz +7c1dc804be000d73bc8c2afa623aa9e5 wine-1.7.40.tar.bz2 +042da83227777b8c25d524b343d11081 wine-1.7.40.tar.bz2.sign +0c89fbe48138c919278e5764042814e4 wine-staging-1.7.40.tar.gz diff --git a/wine.spec b/wine.spec index 108dc40..b7e2709 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ %endif Name: wine -Version: 1.7.39 +Version: 1.7.40 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -618,7 +618,7 @@ This package adds the opencl driver for wine. %setup -q %patch511 -p1 -b.cjk %if 0%{?fedora} > 21 -%patch512 -p1 -b.gcc5 +#patch512 -p1 -b.gcc5 %endif # setup and apply compholio-patches or pulseaudio-patch. @@ -649,7 +649,7 @@ autoreconf # http://bugs.winehq.org/show_bug.cgi?id=24606 # http://bugs.winehq.org/show_bug.cgi?id=25073 %if 0%{?fedora} > 21 -export TEMP_CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-O2/-O1/'`" +export TEMP_CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-O2/-O0/'`" export CFLAGS="`echo $TEMP_CFLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno-error" %else export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno-error" @@ -1268,6 +1268,9 @@ fi %{_libdir}/wine/ext-ms-win-gdi-devcaps-l1-1-0.dll.so %{_libdir}/wine/faultrep.dll.so %{_libdir}/wine/fltlib.dll.so +%if 0%{?compholio} +%{_libdir}/wine/fltmgr.sys.so +%endif %{_libdir}/wine/fntcache.dll.so %{_libdir}/wine/fontsub.dll.so %{_libdir}/wine/fusion.dll.so @@ -1852,6 +1855,9 @@ fi %{_libdir}/wine/opencl.dll.so %changelog +* Mon Apr 06 2015 Michael Cronenworth 1.7.40-1 +- version upgrade + * Sun Mar 22 2015 Michael Cronenworth 1.7.39-1 - version upgrade - Enable some optimizations and workarounds for GCC5 regressions From a9efbc109afaa9b4fe0487bca0d66b178824427f Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 18 Apr 2015 21:06:54 -0500 Subject: [PATCH 337/715] Update to 1.7.41 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 10 ++++++---- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index 5e05852..8da8633 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.7.40.tar.bz2 -/wine-1.7.40.tar.bz2.sign -/wine-staging-1.7.40.tar.gz +/wine-1.7.41.tar.bz2 +/wine-1.7.41.tar.bz2.sign +/wine-staging-1.7.41.tar.gz diff --git a/sources b/sources index 3914cb2..d7128f2 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -7c1dc804be000d73bc8c2afa623aa9e5 wine-1.7.40.tar.bz2 -042da83227777b8c25d524b343d11081 wine-1.7.40.tar.bz2.sign -0c89fbe48138c919278e5764042814e4 wine-staging-1.7.40.tar.gz +c6bc2faa48eab6d7c7fc4a47976e9021 wine-1.7.41.tar.bz2 +16a963feb3d421a0acb156dc6713bcc4 wine-1.7.41.tar.bz2.sign +505313d05c841ef58cf5f72c79a01856 wine-staging-1.7.41.tar.gz diff --git a/wine.spec b/wine.spec index b7e2709..cf73e2e 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ %endif Name: wine -Version: 1.7.40 +Version: 1.7.41 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -135,7 +135,6 @@ BuildRequires: gsm-devel BuildRequires: libv4l-devel BuildRequires: fontpackages-devel BuildRequires: ImageMagick-devel -BuildRequires: gstreamer-devel gstreamer-plugins-base-devel BuildRequires: libtiff-devel BuildRequires: prelink BuildRequires: gettext-devel @@ -658,7 +657,7 @@ export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno %configure \ --sysconfdir=%{_sysconfdir}/wine \ --x-includes=%{_includedir} --x-libraries=%{_libdir} \ - --without-hal --with-dbus \ + --without-hal --with-dbus --without-gstreamer \ --with-x \ --with-pulse \ %ifarch x86_64 @@ -1516,7 +1515,6 @@ fi %if 0%{?compholio} %{_libdir}/wine/wined3d-csmt.dll.so %endif -%{_libdir}/wine/winegstreamer.dll.so %{_libdir}/wine/winejoystick.drv.so %{_libdir}/wine/winemapi.dll.so %{_libdir}/wine/winex11.drv.so @@ -1855,6 +1853,10 @@ fi %{_libdir}/wine/opencl.dll.so %changelog +* Sat Apr 18 2015 Michael Cronenworth 1.7.41-1 +- version upgrade +- Disable gstreamer support (rhbz#1204185) + * Mon Apr 06 2015 Michael Cronenworth 1.7.40-1 - version upgrade From fa0ec3bdf77f0036891e843cffff2d477c6bbcc5 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 4 May 2015 22:15:27 -0500 Subject: [PATCH 338/715] Update to 1.7.42 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 5 ++++- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 8da8633..608b5ea 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.7.41.tar.bz2 -/wine-1.7.41.tar.bz2.sign -/wine-staging-1.7.41.tar.gz +/wine-1.7.42.tar.bz2 +/wine-1.7.42.tar.bz2.sign +/wine-staging-1.7.42.tar.gz diff --git a/sources b/sources index d7128f2..bc1c607 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -c6bc2faa48eab6d7c7fc4a47976e9021 wine-1.7.41.tar.bz2 -16a963feb3d421a0acb156dc6713bcc4 wine-1.7.41.tar.bz2.sign -505313d05c841ef58cf5f72c79a01856 wine-staging-1.7.41.tar.gz +8b7652a276a1c327b89048063b4532b1 wine-1.7.42.tar.bz2 +f873a08191fb346c40aa4d2afc74e742 wine-1.7.42.tar.bz2.sign +892c9216488c9e48087f9016115031aa wine-staging-1.7.42.tar.gz diff --git a/wine.spec b/wine.spec index cf73e2e..48217bc 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ %endif Name: wine -Version: 1.7.41 +Version: 1.7.42 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1853,6 +1853,9 @@ fi %{_libdir}/wine/opencl.dll.so %changelog +* Mon May 04 2015 Michael Cronenworth 1.7.42-1 +- version upgrade + * Sat Apr 18 2015 Michael Cronenworth 1.7.41-1 - version upgrade - Disable gstreamer support (rhbz#1204185) From 65d866a2af2040cbe8183a644db4cd05733aef03 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 18 May 2015 19:10:14 -0500 Subject: [PATCH 339/715] Update to 1.7.43 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 18 +++++++++++++++++- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 608b5ea..bfd18ea 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.7.42.tar.bz2 -/wine-1.7.42.tar.bz2.sign -/wine-staging-1.7.42.tar.gz +/wine-1.7.43.tar.bz2 +/wine-1.7.43.tar.bz2.sign +/wine-staging-1.7.43.tar.gz diff --git a/sources b/sources index bc1c607..678d5b0 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -8b7652a276a1c327b89048063b4532b1 wine-1.7.42.tar.bz2 -f873a08191fb346c40aa4d2afc74e742 wine-1.7.42.tar.bz2.sign -892c9216488c9e48087f9016115031aa wine-staging-1.7.42.tar.gz +5158c559dedd9e7668a1fcb9d573b309 wine-1.7.43.tar.bz2 +44d8764ab47ba4f1371f1cd6421ee15b wine-1.7.43.tar.bz2.sign +62c4e94265e068c064988bee2fc016e9 wine-staging-1.7.43.tar.gz diff --git a/wine.spec b/wine.spec index 48217bc..f773a0f 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ %endif Name: wine -Version: 1.7.42 +Version: 1.7.43 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1116,27 +1116,36 @@ fi %{_libdir}/wine/api-ms-win-core-console-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-datetime-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-datetime-l1-1-1.dll.so +%{_libdir}/wine/api-ms-win-core-debug-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-debug-l1-1-1.dll.so +%{_libdir}/wine/api-ms-win-core-errorhandling-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-errorhandling-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-errorhandling-l1-1-2.dll.so %{_libdir}/wine/api-ms-win-core-fibers-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-fibers-l1-1-1.dll.so +%{_libdir}/wine/api-ms-win-core-file-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-file-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-file-l2-1-0.dll.so %{_libdir}/wine/api-ms-win-core-file-l2-1-1.dll.so %{_libdir}/wine/api-ms-win-core-handle-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-heap-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-heap-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-heap-obsolete-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-interlocked-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-interlocked-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-io-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-kernel32-legacy-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-libraryloader-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-libraryloader-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-localization-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-localization-l1-2-1.dll.so %{_libdir}/wine/api-ms-win-core-localization-obsolete-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-localregistry-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-memory-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-memory-l1-1-1.dll.so +%{_libdir}/wine/api-ms-win-core-namedpipe-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-namedpipe-l1-2-0.dll.so +%{_libdir}/wine/api-ms-win-core-processenvironment-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-processenvironment-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-processthreads-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-processthreads-l1-1-1.dll.so @@ -1144,10 +1153,13 @@ fi %{_libdir}/wine/api-ms-win-core-profile-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-psapi-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-registry-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-rtlsupport-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-rtlsupport-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-shlwapi-legacy-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-string-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-synch-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-synch-l1-2-0.dll.so +%{_libdir}/wine/api-ms-win-core-sysinfo-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-sysinfo-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-sysinfo-l1-2-1.dll.so %{_libdir}/wine/api-ms-win-core-threadpool-legacy-l1-1-0.dll.so @@ -1411,6 +1423,7 @@ fi %{_libdir}/wine/nvcuda.dll.so %{_libdir}/wine/nvcuvid.dll.so %endif +%{_libdir}/wine/null.sys.so %{_libdir}/wine/objsel.dll.so %{_libdir}/wine/odbc32.dll.so %{_libdir}/wine/odbccp32.dll.so @@ -1853,6 +1866,9 @@ fi %{_libdir}/wine/opencl.dll.so %changelog +* Mon May 18 2015 Michael Cronenworth 1.7.43-1 +- version upgrade + * Mon May 04 2015 Michael Cronenworth 1.7.42-1 - version upgrade From 8fba487182eec09efa646262ed7b53ebbc66f6ca Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 31 May 2015 13:11:20 -0500 Subject: [PATCH 340/715] Update to 1.7.44 --- .gitignore | 6 +-- sources | 6 +-- wine-staging-rtlunwindex.patch | 76 ---------------------------------- wine.spec | 8 +++- 4 files changed, 12 insertions(+), 84 deletions(-) delete mode 100644 wine-staging-rtlunwindex.patch diff --git a/.gitignore b/.gitignore index bfd18ea..839b4ec 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.7.43.tar.bz2 -/wine-1.7.43.tar.bz2.sign -/wine-staging-1.7.43.tar.gz +/wine-1.7.44.tar.bz2 +/wine-1.7.44.tar.bz2.sign +/wine-staging-1.7.44.tar.gz diff --git a/sources b/sources index 678d5b0..f8d1129 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -5158c559dedd9e7668a1fcb9d573b309 wine-1.7.43.tar.bz2 -44d8764ab47ba4f1371f1cd6421ee15b wine-1.7.43.tar.bz2.sign -62c4e94265e068c064988bee2fc016e9 wine-staging-1.7.43.tar.gz +62f30f7a6937eb213bcab6d0b94710bc wine-1.7.44.tar.bz2 +5dfad7db7a4a7469b478470b3fcce684 wine-1.7.44.tar.bz2.sign +4c2c8b7c2c8f5ab3682ec52479a7502c wine-staging-1.7.44.tar.gz diff --git a/wine-staging-rtlunwindex.patch b/wine-staging-rtlunwindex.patch deleted file mode 100644 index ad00f08..0000000 --- a/wine-staging-rtlunwindex.patch +++ /dev/null @@ -1,76 +0,0 @@ -diff --git a/debian/changelog b/debian/changelog -index bf71cad..9293125 100644 ---- a/debian/changelog -+++ b/debian/changelog -@@ -1,3 +1,7 @@ -+wine-staging (1.7.36-1) UNRELEASED; urgency=low -+ * Update patchset for RtlUnwindEx on x86_64 and fix a second bug. -+ -- Sebastian Lackner Sun, 15 Feb 2015 22:24:13 +0100 -+ - wine-staging (1.7.36) unstable; urgency=low - * Fix an incompatibility of patchinstall.sh with non-bash shells under specific situations. - * Improve dinput-Events patch to be compatible with applications which do not explicitly poll for input. -diff --git a/patches/ntdll-RtlUnwindEx/0001-ntdll-Fix-check-for-end_frame-in-RtlUnwindEx-on-x86_.patch b/patches/ntdll-RtlUnwindEx/0001-ntdll-Fix-check-for-end_frame-in-RtlUnwindEx-on-x86_.patch -index 455a7fc..c5e8903 100644 ---- a/patches/ntdll-RtlUnwindEx/0001-ntdll-Fix-check-for-end_frame-in-RtlUnwindEx-on-x86_.patch -+++ b/patches/ntdll-RtlUnwindEx/0001-ntdll-Fix-check-for-end_frame-in-RtlUnwindEx-on-x86_.patch -@@ -1,18 +1,32 @@ --From 7dd7631b611976b237acc63386b26866e5b4b253 Mon Sep 17 00:00:00 2001 -+From 3c89d2a189c2cc869c7ce81293ab752e3fa57708 Mon Sep 17 00:00:00 2001 - From: Sebastian Lackner - Date: Sun, 25 Jan 2015 15:46:05 +0100 --Subject: ntdll: Fix check for end_frame in RtlUnwindEx on x86_64. -+Subject: ntdll: Fix check for end_frame in RtlUnwindEx on x86_64. (rev 2) - -+Changes in v2: -+* Calling wine internal handlers should not mess up the EstablisherFrame. - --- -- dlls/ntdll/signal_x86_64.c | 2 +- -- 1 file changed, 1 insertion(+), 1 deletion(-) -+ dlls/ntdll/signal_x86_64.c | 5 +++-- -+ 1 file changed, 3 insertions(+), 2 deletions(-) - - diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c --index 05581c2..e739cdb 100644 -+index 05581c2..7072569 100644 - --- a/dlls/ntdll/signal_x86_64.c - +++ b/dlls/ntdll/signal_x86_64.c --@@ -3178,7 +3178,7 @@ void WINAPI RtlUnwindEx( PVOID end_frame, PVOID target_ip, EXCEPTION_RECORD *rec -- dispatch.EstablisherFrame = new_context.Rsp; -+@@ -3167,6 +3167,7 @@ void WINAPI RtlUnwindEx( PVOID end_frame, PVOID target_ip, EXCEPTION_RECORD *rec -+ } -+ else /* hack: call builtin handlers registered in the tib list */ -+ { -++ DWORD64 backup_frame = dispatch.EstablisherFrame; -+ while ((ULONG64)teb_frame < new_context.Rsp && (ULONG64)teb_frame < (ULONG64)end_frame) -+ { -+ TRACE( "found builtin frame %p handler %p\n", teb_frame, teb_frame->Handler ); -+@@ -3175,10 +3176,10 @@ void WINAPI RtlUnwindEx( PVOID end_frame, PVOID target_ip, EXCEPTION_RECORD *rec -+ teb_frame = __wine_pop_frame( teb_frame ); -+ } -+ if ((ULONG64)teb_frame == (ULONG64)end_frame && (ULONG64)end_frame < new_context.Rsp) break; -+- dispatch.EstablisherFrame = new_context.Rsp; -++ dispatch.EstablisherFrame = backup_frame; - } - - - if (context->Rsp == (ULONG64)end_frame) break; -@@ -21,5 +35,5 @@ index 05581c2..e739cdb 100644 - } - - -- --2.2.1 -+2.2.2 - -diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh -index b1ac228..9f8a0fa 100755 ---- a/patches/patchinstall.sh -+++ b/patches/patchinstall.sh -@@ -2228,7 +2228,7 @@ fi - if test "$enable_ntdll_RtlUnwindEx" -eq 1; then - patch_apply ntdll-RtlUnwindEx/0001-ntdll-Fix-check-for-end_frame-in-RtlUnwindEx-on-x86_.patch - ( -- echo '+ { "Sebastian Lackner", "ntdll: Fix check for end_frame in RtlUnwindEx on x86_64.", 1 },'; -+ echo '+ { "Sebastian Lackner", "ntdll: Fix check for end_frame in RtlUnwindEx on x86_64.", 2 },'; - ) >> "$patchlist" - fi - diff --git a/wine.spec b/wine.spec index f773a0f..73f2c20 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ %endif Name: wine -Version: 1.7.43 +Version: 1.7.44 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1143,6 +1143,7 @@ fi %{_libdir}/wine/api-ms-win-core-localregistry-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-memory-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-memory-l1-1-1.dll.so +%{_libdir}/wine/api-ms-win-core-misc-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-namedpipe-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-namedpipe-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-processenvironment-l1-1-0.dll.so @@ -1353,6 +1354,7 @@ fi %{_libdir}/wine/mscat32.dll.so %{_libdir}/wine/mscoree.dll.so %{_libdir}/wine/msctf.dll.so +%{_libdir}/wine/msctfp.dll.so %{_libdir}/wine/msdaps.dll.so %{_libdir}/wine/msdmo.dll.so %{_libdir}/wine/msftedit.dll.so @@ -1423,7 +1425,6 @@ fi %{_libdir}/wine/nvcuda.dll.so %{_libdir}/wine/nvcuvid.dll.so %endif -%{_libdir}/wine/null.sys.so %{_libdir}/wine/objsel.dll.so %{_libdir}/wine/odbc32.dll.so %{_libdir}/wine/odbccp32.dll.so @@ -1866,6 +1867,9 @@ fi %{_libdir}/wine/opencl.dll.so %changelog +* Sun May 31 2015 Michael Cronenworth 1.7.44-1 +- version upgrade + * Mon May 18 2015 Michael Cronenworth 1.7.43-1 - version upgrade From 65fda318ebff23842e5351a712db6867221e0fa7 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 14 Jun 2015 12:36:37 -0500 Subject: [PATCH 341/715] Update to 1.7.45 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 5 ++++- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 839b4ec..7c5ceab 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.7.44.tar.bz2 -/wine-1.7.44.tar.bz2.sign -/wine-staging-1.7.44.tar.gz +/wine-1.7.45.tar.bz2 +/wine-1.7.45.tar.bz2.sign +/wine-staging-1.7.45.tar.gz diff --git a/sources b/sources index f8d1129..48a6e34 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -62f30f7a6937eb213bcab6d0b94710bc wine-1.7.44.tar.bz2 -5dfad7db7a4a7469b478470b3fcce684 wine-1.7.44.tar.bz2.sign -4c2c8b7c2c8f5ab3682ec52479a7502c wine-staging-1.7.44.tar.gz +df9cb748c58b42f99d16947ebe1a65f0 wine-1.7.45.tar.bz2 +7d9fe7d6b41fb9b902a3876ad8f717ae wine-1.7.45.tar.bz2.sign +9321eaedbc46f3f231e756c470cfa30f wine-staging-1.7.45.tar.gz diff --git a/wine.spec b/wine.spec index 73f2c20..6adbf2d 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ %endif Name: wine -Version: 1.7.44 +Version: 1.7.45 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1867,6 +1867,9 @@ fi %{_libdir}/wine/opencl.dll.so %changelog +* Sun Jun 14 2015 Michael Cronenworth 1.7.45-1 +- version upgrade + * Sun May 31 2015 Michael Cronenworth 1.7.44-1 - version upgrade From be7e47342b88bf74157ddf5a58be77cc6def211d Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Fri, 19 Jun 2015 02:26:51 +0000 Subject: [PATCH 342/715] - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild --- wine.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 6adbf2d..fcf9d2b 100644 --- a/wine.spec +++ b/wine.spec @@ -22,7 +22,7 @@ Name: wine Version: 1.7.45 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -1867,6 +1867,9 @@ fi %{_libdir}/wine/opencl.dll.so %changelog +* Fri Jun 19 2015 Fedora Release Engineering - 1.7.45-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + * Sun Jun 14 2015 Michael Cronenworth 1.7.45-1 - version upgrade From e5c8bfd48f548f61d22fba270bace941f763f448 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 29 Jun 2015 18:01:01 -0500 Subject: [PATCH 343/715] Update to 1.7.46 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 10 +++++++--- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 7c5ceab..df96d38 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.7.45.tar.bz2 -/wine-1.7.45.tar.bz2.sign -/wine-staging-1.7.45.tar.gz +/wine-1.7.46.tar.bz2 +/wine-1.7.46.tar.bz2.sign +/wine-staging-1.7.46.tar.gz diff --git a/sources b/sources index 48a6e34..6fc6703 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -df9cb748c58b42f99d16947ebe1a65f0 wine-1.7.45.tar.bz2 -7d9fe7d6b41fb9b902a3876ad8f717ae wine-1.7.45.tar.bz2.sign -9321eaedbc46f3f231e756c470cfa30f wine-staging-1.7.45.tar.gz +05c3b0997495dbf1daefcc448f3e22d4 wine-1.7.46.tar.bz2 +6f9fdbeee06bf02a5434884a75e72625 wine-1.7.46.tar.bz2.sign +a6088a2ab71fc41311139cf9980378de wine-staging-1.7.46.tar.gz diff --git a/wine.spec b/wine.spec index fcf9d2b..d1d2565 100644 --- a/wine.spec +++ b/wine.spec @@ -21,8 +21,8 @@ %endif Name: wine -Version: 1.7.45 -Release: 2%{?dist} +Version: 1.7.46 +Release: 1%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -582,7 +582,7 @@ Summary: Pulseaudio support for wine Group: System Environment/Libraries Requires: wine-core = %{version}-%{release} # midi output -Requires: wine-alsa = %{version}-%{release} +Requires: wine-alsa%{?_isa} = %{version}-%{release} %description pulseaudio This package adds a pulseaudio driver for wine. Please do not report bugs in @@ -1372,6 +1372,7 @@ fi %{_libdir}/wine/msls31.dll.so %{_libdir}/wine/msnet32.dll.so %{_libdir}/wine/mspatcha.dll.so +%{_libdir}/wine/msscript.ocx.so %{_libdir}/wine/mssign32.dll.so %{_libdir}/wine/mssip32.dll.so %{_libdir}/wine/msrle32.dll.so @@ -1867,6 +1868,9 @@ fi %{_libdir}/wine/opencl.dll.so %changelog +* Mon Jun 29 2015 Michael Cronenworth 1.7.46-1 +- version upgrade + * Fri Jun 19 2015 Fedora Release Engineering - 1.7.45-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild From 1f554e463605c866f7cba9341916c124b2863964 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 12 Jul 2015 20:38:35 -0500 Subject: [PATCH 344/715] Update to 1.7.47 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 7 ++++++- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index df96d38..1741953 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.7.46.tar.bz2 -/wine-1.7.46.tar.bz2.sign -/wine-staging-1.7.46.tar.gz +/wine-1.7.47.tar.bz2 +/wine-1.7.47.tar.bz2.sign +/wine-staging-1.7.47.tar.gz diff --git a/sources b/sources index 6fc6703..3773be7 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -05c3b0997495dbf1daefcc448f3e22d4 wine-1.7.46.tar.bz2 -6f9fdbeee06bf02a5434884a75e72625 wine-1.7.46.tar.bz2.sign -a6088a2ab71fc41311139cf9980378de wine-staging-1.7.46.tar.gz +f7f5254c5fdfa57a290f61466bbad3a8 wine-1.7.47.tar.bz2 +fd1b756327eec5f4c629bfdc2eed8724 wine-1.7.47.tar.bz2.sign +faa4e0e35bd3fff0963a99125bc1f9ba wine-staging-1.7.47.tar.gz diff --git a/wine.spec b/wine.spec index d1d2565..b49e8aa 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ %endif Name: wine -Version: 1.7.46 +Version: 1.7.47 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1237,6 +1237,7 @@ fi %{_libdir}/wine/d3dx11_42.dll.so %{_libdir}/wine/d3dx11_43.dll.so %{_libdir}/wine/d3dxof.dll.so +%{_libdir}/wine/davclnt.dll.so %{_libdir}/wine/dbgeng.dll.so %{_libdir}/wine/dbghelp.dll.so %{_libdir}/wine/dciman32.dll.so @@ -1297,6 +1298,7 @@ fi %{_libdir}/wine/hh.exe.so %{_libdir}/wine/hhctrl.ocx.so %{_libdir}/wine/hid.dll.so +%{_libdir}/wine/hidclass.sys.so %{_libdir}/wine/hlink.dll.so %{_libdir}/wine/hnetcfg.dll.so %{_libdir}/wine/httpapi.dll.so @@ -1868,6 +1870,9 @@ fi %{_libdir}/wine/opencl.dll.so %changelog +* Sun Jul 12 2015 Michael Cronenworth 1.7.47-1 +- version upgrade + * Mon Jun 29 2015 Michael Cronenworth 1.7.46-1 - version upgrade From b6aecaf39108df7375a223e6bddf4963b2c95b5f Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Fri, 31 Jul 2015 11:15:56 -0500 Subject: [PATCH 345/715] Update to 1.7.48 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 13 +++++++++++-- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index 1741953..85a2353 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.7.47.tar.bz2 -/wine-1.7.47.tar.bz2.sign -/wine-staging-1.7.47.tar.gz +/wine-1.7.48.tar.bz2 +/wine-1.7.48.tar.bz2.sign +/wine-staging-1.7.48.tar.gz diff --git a/sources b/sources index 3773be7..97adff5 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -f7f5254c5fdfa57a290f61466bbad3a8 wine-1.7.47.tar.bz2 -fd1b756327eec5f4c629bfdc2eed8724 wine-1.7.47.tar.bz2.sign -faa4e0e35bd3fff0963a99125bc1f9ba wine-staging-1.7.47.tar.gz +41628444b77d1fd52b76f1797c95fe9b wine-1.7.48.tar.bz2 +d3d1984c337c2331ddd9de27bb7f1df5 wine-1.7.48.tar.bz2.sign +434b180440cdb8661a9190aad048dd4c wine-staging-1.7.48.tar.gz diff --git a/wine.spec b/wine.spec index b49e8aa..37deefc 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ %endif Name: wine -Version: 1.7.47 +Version: 1.7.48 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -136,13 +136,13 @@ BuildRequires: libv4l-devel BuildRequires: fontpackages-devel BuildRequires: ImageMagick-devel BuildRequires: libtiff-devel -BuildRequires: prelink BuildRequires: gettext-devel BuildRequires: chrpath # Silverlight DRM-stuff needs XATTR enabled. %if 0%{?compholio} BuildRequires: libattr-devel +BuildRequires: libva-devel %endif # 0%{?compholio} %if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 @@ -246,6 +246,9 @@ Requires: libpcap(x86-32) Requires: mesa-libOSMesa(x86-32) Requires: libv4l(x86-32) Requires: unixODBC(x86-32) +%if 0%{?compholio} +Requires: libva(x86-32) +%endif %endif %ifarch x86_64 @@ -263,6 +266,9 @@ Requires: libpcap(x86-64) Requires: mesa-libOSMesa(x86-64) Requires: libv4l(x86-64) Requires: unixODBC(x86-64) +%if 0%{?compholio} +Requires: libva(x86-64) +%endif %endif %ifarch %{arm} @@ -1870,6 +1876,9 @@ fi %{_libdir}/wine/opencl.dll.so %changelog +* Fri Jul 31 2015 Michael Cronenworth 1.7.48-1 +- version upgrade + * Sun Jul 12 2015 Michael Cronenworth 1.7.47-1 - version upgrade From 5c8063dfffbaa59c1fb1279d1bcdc478a1f8e973 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Mon, 10 Aug 2015 14:44:57 +0200 Subject: [PATCH 346/715] rebuilt for mingw-wine-gecko-2.40 --- wine.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 37deefc..f9da013 100644 --- a/wine.spec +++ b/wine.spec @@ -22,7 +22,7 @@ Name: wine Version: 1.7.48 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -1876,6 +1876,9 @@ fi %{_libdir}/wine/opencl.dll.so %changelog +* Mon Aug 10 2015 Björn Esser - 1.7.48-2 +- rebuilt for mingw-wine-gecko-2.40 + * Fri Jul 31 2015 Michael Cronenworth 1.7.48-1 - version upgrade From f101482f1f228be85668c472b832ff9d848c3788 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Mon, 10 Aug 2015 14:49:21 +0200 Subject: [PATCH 347/715] bump %%global winegecko to 2.40 --- wine.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index f9da013..0d33791 100644 --- a/wine.spec +++ b/wine.spec @@ -2,7 +2,7 @@ %undefine _hardened_build %global no64bit 0 -%global winegecko 2.36 +%global winegecko 2.40 %global winemono 4.5.6 #global _default_patch_fuzz 2 From b67dcb3e955e70c62bd098ae8039bb5c18cdb988 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Fri, 14 Aug 2015 10:18:47 -0500 Subject: [PATCH 348/715] Update to 1.7.49 --- .gitignore | 6 +++--- sources | 6 +++--- wine-relocate-base.patch | 43 ++++++++++++++++++++++++++++++++++++++ wine.spec | 45 +++++++++++++++++++++++++++++++++------- 4 files changed, 86 insertions(+), 14 deletions(-) create mode 100644 wine-relocate-base.patch diff --git a/.gitignore b/.gitignore index 85a2353..08c9b5f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.7.48.tar.bz2 -/wine-1.7.48.tar.bz2.sign -/wine-staging-1.7.48.tar.gz +/wine-1.7.49.tar.bz2 +/wine-1.7.49.tar.bz2.sign +/wine-staging-1.7.49.tar.gz diff --git a/sources b/sources index 97adff5..584783c 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -41628444b77d1fd52b76f1797c95fe9b wine-1.7.48.tar.bz2 -d3d1984c337c2331ddd9de27bb7f1df5 wine-1.7.48.tar.bz2.sign -434b180440cdb8661a9190aad048dd4c wine-staging-1.7.48.tar.gz +bb27879f267a20599cacbb4043ebd584 wine-1.7.49.tar.bz2 +539d477d2cdf5bccdbc349e2b68f963f wine-1.7.49.tar.bz2.sign +658fbcb2647c6839d94ebf6232f67e62 wine-staging-1.7.49.tar.gz diff --git a/wine-relocate-base.patch b/wine-relocate-base.patch new file mode 100644 index 0000000..4a7d497 --- /dev/null +++ b/wine-relocate-base.patch @@ -0,0 +1,43 @@ +--- a/configure.ac.orig 2015-08-13 14:05:20.603210791 -0500 ++++ b/configure.ac 2015-08-14 09:20:46.380372331 -0500 +@@ -1021,6 +1021,9 @@ + *) LDEXECFLAGS="$LDEXECFLAGS -Wl,--section-start,.interp=0x7bf00400" ;; + esac + ]) ++ WINE_TRY_CFLAGS([-Wl,-Ttext-segment=0x7bc00000], ++ [AC_DEFINE([HAVE_TTEXT_SEGMENT],[1],[Define if ++linker supports -Ttext-segment.])]) + AC_PATH_PROG(PRELINK, prelink, false, [/sbin /usr/sbin $PATH]) + if test "x$PRELINK" = xfalse + then +--- a/tools/winegcc/winegcc.c.orig 2015-08-14 09:26:57.802873676 -0500 ++++ b/tools/winegcc/winegcc.c 2015-08-14 09:25:17.290194637 -0500 +@@ -1134,6 +1134,12 @@ + } + break; + default: ++#ifdef HAVE_TTEXT_SEGMENT ++ if (opts->image_base) ++ { ++ strarray_add(link_args, strmake("-Wl,-Ttext-segment=%s", opts->image_base)); ++ } ++#endif + break; + } + +@@ -1167,6 +1173,7 @@ + spawn(opts->prefix, link_args, 0); + strarray_free (link_args); + ++#ifndef HAVE_TTEXT_SEGMENT + /* set the base address */ + if (opts->image_base && !opts->target) + { +@@ -1182,6 +1189,7 @@ + strarray_free(prelink_args); + } + } ++#endif + + /* create the loader script */ + if (generate_app_loader) diff --git a/wine.spec b/wine.spec index 0d33791..3f2a891 100644 --- a/wine.spec +++ b/wine.spec @@ -21,8 +21,8 @@ %endif Name: wine -Version: 1.7.48 -Release: 2%{?dist} +Version: 1.7.49 +Release: 1%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -70,6 +70,8 @@ Source502: wine-README-tahoma Patch511: wine-cjk.patch # temporary workaround for GCC 5.0 optimization regressions Patch512: wine-gcc5.patch +# prelink has been retired, use linker method of base address relocation +Patch513: wine-relocate-base.patch # wine compholio patches for pipelight. # pulseaudio-patch is covered by that patch-set, too. @@ -141,6 +143,7 @@ BuildRequires: chrpath # Silverlight DRM-stuff needs XATTR enabled. %if 0%{?compholio} +BuildRequires: gtk3-devel BuildRequires: libattr-devel BuildRequires: libva-devel %endif # 0%{?compholio} @@ -559,17 +562,17 @@ Summary: ISDN support for wine Group: System Environment/Libraries Requires: wine-core = %{version}-%{release} #FIXME: parallel installable rhbz#1164355 -#%ifarch x86_64 +#ifarch x86_64 #Requires: isdn4k-utils(x86-64) -#%endif +#endif -#%ifarch %{ix86} +#ifarch %{ix86} #Requires: isdn4k-utils(x86-32) -#%endif +#endif -#%ifarch %{arm} +#ifarch %{arm} Requires: isdn4k-utils -#%endif +#endif %description capi ISDN support for wine @@ -625,6 +628,7 @@ This package adds the opencl driver for wine. %if 0%{?fedora} > 21 #patch512 -p1 -b.gcc5 %endif +%patch513 -p1 -b.relocate # setup and apply compholio-patches or pulseaudio-patch. # since the pulse patch is included in the compholio patches use it from @@ -1178,6 +1182,21 @@ fi %{_libdir}/wine/api-ms-win-core-winrt-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-winrt-string-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-xstate-l2-1-0.dll.so +%{_libdir}/wine/api-ms-win-crt-conio-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-crt-convert-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-crt-environment-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-crt-filesystem-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-crt-heap-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-crt-locale-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-crt-math-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-crt-multibyte-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-crt-private-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-crt-process-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-crt-runtime-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-crt-stdio-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-crt-string-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-crt-time-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-crt-utility-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-downlevel-advapi32-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-downlevel-advapi32-l2-1-0.dll.so %{_libdir}/wine/api-ms-win-downlevel-normaliz-l1-1-0.dll.so @@ -1510,6 +1529,7 @@ fi %{_libdir}/wine/taskkill.exe.so %{_libdir}/wine/taskschd.dll.so %{_libdir}/wine/traffic.dll.so +%{_libdir}/wine/ucrtbase.dll.so %{_libdir}/wine/unicows.dll.so %{_libdir}/wine/unlodctr.exe.so %{_libdir}/wine/updspapi.dll.so @@ -1519,11 +1539,16 @@ fi %{_libdir}/wine/user32.dll.so %{_libdir}/wine/usp10.dll.so %{_libdir}/wine/uxtheme.dll.so +%if 0%{?compholio} +%{_libdir}/wine/uxtheme-gtk.dll.so +%endif %{_libdir}/wine/userenv.dll.so %{_libdir}/wine/vbscript.dll.so %{_libdir}/wine/vcomp.dll.so %{_libdir}/wine/vcomp90.dll.so %{_libdir}/wine/vcomp100.dll.so +%{_libdir}/wine/vcomp110.dll.so +%{_libdir}/wine/vcruntime140.dll.so %{_libdir}/wine/vdmdbg.dll.so %{_libdir}/wine/version.dll.so %{_libdir}/wine/vssapi.dll.so @@ -1588,6 +1613,7 @@ fi %{_libdir}/wine/xapofx1_4.dll.so %{_libdir}/wine/xapofx1_5.dll.so %{_libdir}/wine/xaudio2_7.dll.so +%{_libdir}/wine/xaudio2_8.dll.so %{_libdir}/wine/xcopy.exe.so %{_libdir}/wine/xinput1_1.dll.so %{_libdir}/wine/xinput1_2.dll.so @@ -1876,6 +1902,9 @@ fi %{_libdir}/wine/opencl.dll.so %changelog +* Fri Aug 14 2015 Michael Cronenworth 1.7.49-1 +- version upgrade + * Mon Aug 10 2015 Björn Esser - 1.7.48-2 - rebuilt for mingw-wine-gecko-2.40 From df6e4fd53bbc15c16335b10fa167d458853c90ae Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Fri, 14 Aug 2015 15:59:30 -0500 Subject: [PATCH 349/715] Apply patch for gecko 2.40 support --- wine-gecko-2.40.patch | 780 ++++++++++++++++++++++++++++++++++++++++++ wine.spec | 8 +- 2 files changed, 787 insertions(+), 1 deletion(-) create mode 100644 wine-gecko-2.40.patch diff --git a/wine-gecko-2.40.patch b/wine-gecko-2.40.patch new file mode 100644 index 0000000..00b3ff0 --- /dev/null +++ b/wine-gecko-2.40.patch @@ -0,0 +1,780 @@ +From a556f9e5c12b76e1d331e49c38b0f63f54e808b9 Mon Sep 17 00:00:00 2001 +From: Jacek Caban +Date: Tue, 11 Aug 2015 15:11:35 +0200 +Subject: [PATCH 1/1] mshtml: Wine Gecko 2.40 release. + +--- + dlls/appwiz.cpl/addons.c | 6 +- + dlls/mshtml/nsembed.c | 6 +- + dlls/mshtml/nsiface.idl | 114 ++++++++++++++++++++-------------- + dlls/mshtml/nsio.c | 155 +++++++++++++++++++++++++++++++++++++---------- + 4 files changed, 199 insertions(+), 82 deletions(-) + +diff --git a/dlls/appwiz.cpl/addons.c b/dlls/appwiz.cpl/addons.c +index b4fcc25..48cd062 100644 +--- a/dlls/appwiz.cpl/addons.c ++++ b/dlls/appwiz.cpl/addons.c +@@ -51,14 +51,14 @@ + + WINE_DEFAULT_DEBUG_CHANNEL(appwizcpl); + +-#define GECKO_VERSION "2.36" ++#define GECKO_VERSION "2.40" + + #ifdef __i386__ + #define ARCH_STRING "x86" +-#define GECKO_SHA "08b02bf0e3ff3a315135afa1132ddb3a25a63e15" ++#define GECKO_SHA "7001a6ed5b02d0ae4e73b14c92018d604b87f3ad" + #elif defined(__x86_64__) + #define ARCH_STRING "x86_64" +-#define GECKO_SHA "a7624eb685d04c4ef1f4f093095a5a324808d57c" ++#define GECKO_SHA "356c414527b08b015b6dc53dbbf78d752320ae90" + #else + #define ARCH_STRING "" + #define GECKO_SHA "???" +diff --git a/dlls/mshtml/nsembed.c b/dlls/mshtml/nsembed.c +index df2e130..93f4277 100644 +--- a/dlls/mshtml/nsembed.c ++++ b/dlls/mshtml/nsembed.c +@@ -1577,12 +1577,12 @@ static nsresult NSAPI nsURIContentListener_OnStartURIOpen(nsIURIContentListener + } + + static nsresult NSAPI nsURIContentListener_DoContent(nsIURIContentListener *iface, +- const char *aContentType, cpp_bool aIsContentPreferred, nsIRequest *aRequest, ++ const nsACString *aContentType, cpp_bool aIsContentPreferred, nsIRequest *aRequest, + nsIStreamListener **aContentHandler, cpp_bool *_retval) + { + NSContainer *This = impl_from_nsIURIContentListener(iface); + +- TRACE("(%p)->(%s %x %p %p %p)\n", This, debugstr_a(aContentType), aIsContentPreferred, ++ TRACE("(%p)->(%p %x %p %p %p)\n", This, aContentType, aIsContentPreferred, + aRequest, aContentHandler, _retval); + + return This->content_listener +@@ -2199,7 +2199,7 @@ nsIXMLHttpRequest *create_nsxhr(nsIDOMWindow *nswindow) + return NULL; + } + +- nsres = nsIXMLHttpRequest_Init(nsxhr, nspri, NULL, nsglo, NULL); ++ nsres = nsIXMLHttpRequest_Init(nsxhr, nspri, NULL, nsglo, NULL, NULL); + + nsISupports_Release(nspri); + nsIGlobalObject_Release(nsglo); +diff --git a/dlls/mshtml/nsiface.idl b/dlls/mshtml/nsiface.idl +index 3fc2ca6..13c610f 100644 +--- a/dlls/mshtml/nsiface.idl ++++ b/dlls/mshtml/nsiface.idl +@@ -23,7 +23,7 @@ + * compatible with XPCOM, usable in C code. + */ + +-cpp_quote("#define GECKO_VERSION \"2.36\"") ++cpp_quote("#define GECKO_VERSION \"2.40\"") + cpp_quote("#define GECKO_VERSION_STRING \"Wine Gecko \" GECKO_VERSION") + + import "wtypes.idl"; +@@ -145,7 +145,6 @@ typedef nsISupports nsIAtom; + typedef nsISupports nsISupportsArray; + typedef nsISupports nsIContentFilter; + typedef nsISupports nsIDOMMediaList; +-typedef nsISupports nsIDOMHTMLTableCaptionElement; + typedef nsISupports nsIDOMHTMLTableSectionElement; + typedef nsISupports nsIDOMClientRectList; + typedef nsISupports nsINode; +@@ -608,7 +607,7 @@ interface nsIHttpHeaderVisitor : nsISupports + + [ + object, +- uuid(82083578-fb78-4f9a-953c-cecbae500697), ++ uuid(86ad7e1f-3a64-4e0f-a104-395ebecd7d5c), + local + ] + interface nsIHttpChannel : nsIChannel +@@ -636,12 +635,13 @@ interface nsIHttpChannel : nsIChannel + nsresult VisitResponseHeaders(nsIHttpHeaderVisitor *aVisitor); + nsresult IsNoStoreResponse(bool *_retval); + nsresult IsNoCacheResponse(bool *_retval); ++ nsresult IsPrivateResponse(bool *_retval); + nsresult RedirectTo(nsIURI *aNewURI); + } + + [ + object, +- uuid(62a8d6e2-3418-4c6f-9d90-88573838f6dd), ++ uuid(26833ec7-4555-4f23-9281-3a12d4b76db1), + local + ] + interface nsIHttpChannelInternal : nsISupports +@@ -666,17 +666,23 @@ interface nsIHttpChannelInternal : nsISupports + nsresult HTTPUpgrade(const nsACString *aProtocolName, nsIHttpUpgradeListener *aListener); + nsresult GetAllowSpdy(bool *aAllowSpdy); + nsresult SetAllowSpdy(bool aAllowSpdy); +- nsresult GetLoadAsBlocking(bool *aLoadAsBlocking); +- nsresult SetLoadAsBlocking(bool aLoadAsBlocking); +- nsresult GetLoadUnblocked(bool *aLoadUnblocked); +- nsresult SetLoadUnblocked(bool aLoadUnblocked); + nsresult GetResponseTimeoutEnabled(bool *aResponseTimeoutEnabled); + nsresult SetResponseTimeoutEnabled(bool aResponseTimeoutEnabled); + nsresult GetApiRedirectToURI(nsIURI **aApiRedirectToURI); ++ nsresult GetAllowAltSvc(bool *aAllowAltSvc); ++ nsresult SetAllowAltSvc(bool aAllowAltSvc); + nsresult AddRedirect(nsIPrincipal *aPrincipal); + nsresult GetLastModifiedTime(PRTime *aLastModifiedTime); + nsresult ForceNoIntercept(); ++ nsresult GetCorsIncludeCredentials(bool *aCorsIncludeCredentials); ++ nsresult SetCorsIncludeCredentials(bool aCorsIncludeCredentials); ++ nsresult GetCorsMode(uint32_t *aCorsMode); ++ nsresult SetCorsMode(uint32_t aCorsMode); + nsresult GetTopWindowURI(nsIURI **aTopWindowURI); ++ nsresult GetNetworkInterfaceId(nsACString *aNetworkInterfaceId); ++ nsresult SetNetworkInterfaceId(const nsACString *aNetworkInterfaceId); ++ nsresult ContinueBeginConnect(); ++ nsresult GetProxyURI(nsIURI **aProxyURI); + } + + [ +@@ -703,7 +709,7 @@ interface nsIAsyncVerifyRedirectCallback : nsISupports + + [ + object, +- uuid(a430d870-df77-4502-9570-d46a8de33154), ++ uuid(0197720d-37ed-4e75-8956-d0d296e4d8a6), + local + ] + interface nsIChannelEventSink : nsISupports +@@ -711,6 +717,7 @@ interface nsIChannelEventSink : nsISupports + const UINT REDIRECT_TEMPORARY = 1; + const UINT REDIRECT_PERMANENT = 2; + const UINT REDIRECT_INTERNAL = 4; ++ const UINT REDIRECT_STS_UPGRADE = 8; + + nsresult AsyncOnChannelRedirect(nsIChannel *oldChannel, nsIChannel *newChannel, uint32_t flags, + nsIAsyncVerifyRedirectCallback *callback); +@@ -1381,7 +1388,7 @@ interface nsIDOMWindowCollection : nsISupports + + [ + object, +- uuid(ed7cc4e4-cf5b-42af-9c2e-8df074a01470), ++ uuid(8146f3fc-9fc1-47c5-85ef-95d686e4ca6d), + local + ] + interface nsIDOMWindow : nsISupports +@@ -1429,7 +1436,6 @@ interface nsIDOMWindow : nsISupports + nsresult GetSessionStorage(nsISupports **aSessionStorage); + nsresult GetLocalStorage(nsISupports **aLocalStorage); + nsresult GetIndexedDB(nsISupports **aIndexedDB); +- nsresult GetMozIndexedDB(nsISupports **aMozIndexedDB); + nsresult GetSelection(nsISelection **_retval); + nsresult MatchMedia(const nsAString *media_query_list, nsISupports **_retval); + nsresult GetScreen(nsIDOMScreen **aScreen); +@@ -2012,8 +2018,8 @@ interface nsIDOMHTMLLinkElement : nsISupports + ] + interface nsIDOMHTMLTableElement : nsISupports + { +- nsresult GetCaption(nsIDOMHTMLTableCaptionElement **aCaption); +- nsresult SetCaption(nsIDOMHTMLTableCaptionElement *aCaption); ++ nsresult GetCaption(nsIDOMHTMLElement **aCaption); ++ nsresult SetCaption(nsIDOMHTMLElement *aCaption); + nsresult GetTHead(nsIDOMHTMLElement **aTHead); + nsresult SetTHead(nsIDOMHTMLElement *aTHead); + nsresult GetTFoot(nsIDOMHTMLElement **aTFoot); +@@ -2240,13 +2246,13 @@ interface nsIDOMHTMLStyleElement : nsISupports + + [ + object, +- uuid(94928ab3-8b63-11d3-989d-001083010e9b), ++ uuid(10a28f38-32e8-4c63-8aa1-12eaaebc369a), + local + ] + interface nsIURIContentListener : nsISupports + { + nsresult OnStartURIOpen(nsIURI *aURI, bool *_retval); +- nsresult DoContent(const char *aContentType, bool aIsContentPreferred, nsIRequest *aRequest, ++ nsresult DoContent(const nsACString *aContentType, bool aIsContentPreferred, nsIRequest *aRequest, + nsIStreamListener **aContentHandler, bool *_retval); + nsresult IsPreferred(const char *aContentType, char **aDesiredContentType, bool *_retval); + nsresult CanHandleContent(const char *aContentType, bool aIsContentPreferred, +@@ -2338,7 +2344,7 @@ interface nsIBaseWindow : nsISupports + + [ + object, +- uuid(b7568a50-4c50-442c-a6be-3a340a48d89a), ++ uuid(0e92d522-53a5-4af6-9a24-4eccdcbf4f91), + local + ] + interface nsIWebNavigation : nsISupports +@@ -2368,7 +2374,7 @@ interface nsIWebNavigation : nsISupports + nsresult GotoIndex(int32_t index); + nsresult LoadURI(const PRUnichar *aURI, uint32_t aLoadFlags, nsIURI *aReferrer, + nsIInputStream *aPostData, nsIInputStream *aHeaders); +- nsresult LoadURIWithBase(const PRUnichar *aURI, uint32_t aLoadFlags, nsIURI *aReferrer, ++ nsresult LoadURIWithOptions(const PRUnichar *aURI, uint32_t aLoadFlags, nsIURI *aReferrer, uint32_t aReferrerPolicy, + nsIInputStream *aPostData, nsIInputStream *aHeaders, nsIURI *aBaseURI); + nsresult Reload(uint32_t aReloadFlags); + nsresult Stop(uint32_t aStopFlags); +@@ -2783,7 +2789,7 @@ interface nsIExternalProtocolHandler : nsIProtocolHandler + + [ + object, +- uuid(d8555f58-203a-465a-a33e-442ae4c6c4cf), ++ uuid(4286de5a-b2ea-446f-8f70-e2a461f42694), + local + ] + interface nsIIOService : nsISupports +@@ -2796,6 +2802,7 @@ interface nsIIOService : nsISupports + nsresult NewChannelFromURI2(nsIURI *aURI, nsIDOMNode *aLoadingNode, nsIPrincipal *aLoadingPrincipal, + nsIPrincipal *aTriggeringPrincipal, uint32_t aSecurityFlags, uint32_t aContentPolicyType, + nsIChannel **_retval); ++ nsresult NewChannelFromURIWithLoadInfo(nsIURI *aURI, nsILoadInfo *aLoadInfo, nsIChannel **_retval); + nsresult NewChannelFromURI(nsIURI *aURI, nsIChannel **_retval); + nsresult NewChannel2(const nsACString *aSpec, const char *aOriginCharset, nsIURI *aBaseURI, + nsIDOMNode *aLoadingNode, nsIPrincipal *aLoadingPrincipal, nsIPrincipal *aTriggeringPrincipal, +@@ -2804,11 +2811,14 @@ interface nsIIOService : nsISupports + nsIChannel **_retval); + nsresult GetOffline(bool *aOffline); + nsresult SetOffline(bool aOffline); ++ nsresult GetConnectivity(bool *aConnectivity); + nsresult SetAppOffline(uint32_t appId, int32_t state); + nsresult IsAppOffline(uint32_t appId, bool *_retval); + nsresult GetAppOfflineState(uint32_t appId, int32_t *_retval); + nsresult AllowPort(int32_t aPort, const char *aScheme, bool *_retval); + nsresult ExtractScheme(const nsACString *urlString, nsACString *_retval); ++ nsresult NewLoadInfo(nsIPrincipal *aLoadingPrincipal, nsIPrincipal *aTriggeringPrincipal, ++ nsIDOMNode *aLoadingNode, uint32_t aSecurityFlags, uint32_t aContentPolicyType, nsILoadInfo **_retval); + } + + [ +@@ -2929,7 +2939,7 @@ interface nsIDOMEvent : nsISupports + + [ + object, +- uuid(9621eb05-b498-4e87-a012-95d817987624), ++ uuid(1a75c351-d115-4d51-94df-731dd1723a1f), + local + ] + interface nsIDOMWindowUtils : nsISupports +@@ -2949,8 +2959,9 @@ interface nsIDOMWindowUtils : nsISupports + nsresult SetDisplayPortMarginsForElement(float aLeftMargin, float aTopMargin, float aRightMargin, float aBottomMargin, + uint32_t aAlignmentX, uint32_t aAlignmentY, nsIDOMElement *aElement, uint32_t aPriority); + nsresult SetDisplayPortBaseForElement(int32_t aX, int32_t aY, int32_t aWidth, int32_t aHeight, nsIDOMElement *aElement); +- nsresult SetResolution(float aXResolution, float aYResolution); +- nsresult GetResolution(float *aXResolution, float *aYResolution); ++ nsresult SetResolution(float aResolution); ++ nsresult GetResolution(float *aResolution); ++ nsresult SetResolutionAndScaleTo(float aResolution); + nsresult GetIsResolutionSet(bool *aIsResolutionSet); + nsresult GetIsFirstPaint(bool *aIsFirstPaint); + nsresult SetIsFirstPaint(bool aIsFirstPaint); +@@ -2979,15 +2990,16 @@ interface nsIDOMWindowUtils : nsISupports + nsresult SendKeyEvent(const nsAString *aType, int32_t aKeyCode, int32_t aCharCode, int32_t aModifiers, + uint32_t aAdditionalFlags, bool *_retval); + nsresult SendNativeKeyEvent(int32_t aNativeKeyboardLayout, int32_t aNativeKeyCode, int32_t aModifierFlags, +- const nsAString *aCharacters, const nsAString *aUnmodifiedCharacters); ++ const nsAString *aCharacters, const nsAString *aUnmodifiedCharacters, nsIObserver *aObserver); + nsresult SendNativeMouseEvent(int32_t aScreenX, int32_t aScreenY, int32_t aNativeMessage, int32_t aModifierFlags, +- nsIDOMElement *aElement); ++ nsIDOMElement *aElement, nsIObserver *aObserver); + nsresult SendNativeMouseScrollEvent(int32_t aScreenX, int32_t aScreenY, uint32_t aNativeMessage, double aDeltaX, +- double aDeltaY, double aDeltaZ, uint32_t aModifierFlags, uint32_t aAdditionalFlags, nsIDOMElement *aElement); ++ double aDeltaY, double aDeltaZ, uint32_t aModifierFlags, uint32_t aAdditionalFlags, nsIDOMElement *aElement, ++ nsIObserver *aObserver); + nsresult SendNativeTouchPoint(uint32_t aPointerId, uint32_t aTouchState, int32_t aScreenX, int32_t aScreenY, +- double aPressure, uint32_t aOrientation); +- nsresult SendNativeTouchTap(int32_t aScreenX, int32_t aScreenY, bool aLongTap); +- nsresult ClearNativeTouchSequence(); ++ double aPressure, uint32_t aOrientation, nsIObserver *aObserver); ++ nsresult SendNativeTouchTap(int32_t aScreenX, int32_t aScreenY, bool aLongTap, nsIObserver *aObserver); ++ nsresult ClearNativeTouchSequence(nsIObserver *aObserver); + nsresult ActivateNativeMenuItemAt(const nsAString *indexString); + nsresult ForceUpdateNativeMenuAt(const nsAString *indexString); + nsresult Focus(nsIDOMElement *aElement); +@@ -3019,8 +3031,6 @@ interface nsIDOMWindowUtils : nsISupports + nsresult DispatchEventToChromeOnly(nsIDOMEventTarget *aTarget, nsIDOMEvent *aEvent, bool *_retval); + nsresult GetClassName(const /*JS::Value*/ void *aObject, JSContext *cx, char **_retval); + nsresult SendContentCommandEvent(const nsAString *aType, nsITransferable *aTransferable); +- nsresult SendCompositionEvent(const nsAString *aType, const nsAString *aData, const nsAString *aLocale); +- nsresult CreateCompositionStringSynthesizer(int /*nsICompositionStringSynthesizer*/ **_retval); + nsresult SendQueryContentEvent(uint32_t aType, uint32_t aOffset, uint32_t aLength, int32_t aX, int32_t aY, + uint32_t aAdditionalFlags, nsIQueryContentEventResult **_retval); + nsresult RemoteFrameFullscreenChanged(nsIDOMElement *aFrameElement, const nsAString *aNewOrigin); +@@ -3030,16 +3040,17 @@ interface nsIDOMWindowUtils : nsISupports + nsresult SelectAtPoint(float aX, float aY, uint32_t aSelectBehavior, bool *_retval); + nsresult GetVisitedDependentComputedStyle(nsIDOMElement *aElement, const nsAString *aPseudoElement, + const nsAString *aPropertyName, nsAString *_retval); +- nsresult GetParent(const /*JS::Value*/ void *obj, JSContext *cx, /*JS::Value*/ void *_retval); + nsresult GetOuterWindowID(uint64_t *aOuterWindowID); + nsresult GetCurrentInnerWindowID(uint64_t *aCurrentInnerWindowID); + nsresult EnterModalState(); + nsresult LeaveModalState(); + nsresult IsInModalState(bool *_retval); ++ nsresult SetDesktopModeViewport(bool aDesktopModeViewport); + nsresult SuspendTimeouts(); + nsresult ResumeTimeouts(); + nsresult GetLayerManagerType(nsAString *aLayerManagerType); + nsresult GetLayerManagerRemote(bool *aLayerManagerRemote); ++ nsresult GetSupportsHardwareH264Decoding(bool *aSupportsHardwareH264Decoding); + nsresult StartFrameTimeRecording(uint32_t *startIndex); + nsresult StopFrameTimeRecording(uint32_t startIndex, uint32_t *frameCount, float **frameIntervals); + nsresult BeginTabSwitch(); +@@ -3059,8 +3070,9 @@ interface nsIDOMWindowUtils : nsISupports + nsresult FindElementWithViewId(long /*nsViewID*/ aId, nsIDOMElement **_retval); + nsresult GetViewId(nsIDOMElement *aElement, long /*nsViewID*/ *_retval); + nsresult LeafLayersPartitionWindow(bool *_retval); +- nsresult GetMayHaveTouchEventListeners(bool *aMayHaveTouchEventListeners); + nsresult CheckAndClearPaintedState(nsIDOMElement *aElement, bool *_retval); ++ nsresult IsPartOfOpaqueLayer(nsIDOMElement *aElement, bool *_retval); ++ nsresult NumberOfAssignedPaintedLayers(nsIDOMElement **aElements, uint32_t count, uint32_t *_retval); + nsresult GetFileId(const /*JS::Value*/ void *aFile, JSContext *cx, int64_t *_retval); + nsresult GetFilePath(void /*JS::HandleValue*/ *aFile, JSContext *cx, nsAString *_retval); + nsresult GetFileReferences(const nsAString *aDatabaseName, int64_t aId, void /*JS::HandleValue*/ *aOptions, +@@ -3097,12 +3109,18 @@ interface nsIDOMWindowUtils : nsISupports + nsresult SetHandlingUserInput(bool aHandlingInput, void /*nsIJSRAIIHelper*/ **_retval); + nsresult GetContentAPZTestData(JSContext *cx, int /*JS::MutableHandleValue*/ _retval); + nsresult GetCompositorAPZTestData(JSContext *cx, void /*JS::MutableHandleValue*/ *_retval); ++ nsresult PostRestyleSelfEvent(nsIDOMElement *aElement); + nsresult GetAudioMuted(bool *aAudioMuted) ; + nsresult SetAudioMuted(bool aAudioMuted); + nsresult GetAudioVolume(float *aAudioVolume); + nsresult SetAudioVolume(float aAudioVolume); + nsresult XpconnectArgument(nsIDOMWindowUtils *aThis); + nsresult AskPermission(void /*nsIContentPermissionRequest*/ *aRequest); ++ nsresult GetFramesConstructed(uint64_t *aFramesConstructed); ++ nsresult GetFramesReflowed(uint64_t *aFramesReflowed); ++ nsresult SetChromeMargin(int32_t aTop, int32_t aRight, int32_t aBottom, int32_t aLeft); ++ nsresult GetServiceWorkersTestingEnabled(bool *aServiceWorkersTestingEnabled); ++ nsresult SetServiceWorkersTestingEnabled(bool aServiceWorkersTestingEnabled); + } + + cpp_quote("#define CONTEXT_NONE 0x00") +@@ -3394,7 +3412,7 @@ interface nsIController : nsISupports + + [ + object, +- uuid(697a2fe1-5549-48e7-9a1a-c29dab14e239), ++ uuid(70f7e9ea-a9bf-48cc-ad9d-8acaeed29b68), + local + ] + interface nsIContent : nsISupports +@@ -3404,7 +3422,7 @@ interface nsIContent : nsISupports + + [ + object, +- uuid(f63d2f6e-d1c1-49b9-8826-d59e5d722a42), ++ uuid(0b78eabe-8b94-4ea1-9331-5d48e83ada95), + local + ] + interface nsIDocument : nsISupports +@@ -3530,7 +3548,7 @@ interface nsIEditor : nsISupports + + [ + object, +- uuid(393a364f-e8e2-48a1-a271-a0067b6bac9b), ++ uuid(87ee993e-985f-4a43-a974-0d9512da2fb0), + local + ] + interface nsIHTMLEditor : nsISupports +@@ -3588,7 +3606,6 @@ interface nsIHTMLEditor : nsISupports + nsresult IsAnonymousElement([in] nsIDOMElement *aElement, [out] bool *_retval); + nsresult GetReturnInParagraphCreatesNewParagraph([out] bool *_retval); + nsresult SetReturnInParagraphCreatesNewParagraph([in] bool prb); +- nsresult BreakIsVisible(nsIDOMNode *aNode, bool *_retval); + void /*Element*/ *GetActiveEditingHost(); + } + +@@ -3756,7 +3773,7 @@ interface nsIDocShellLoadInfo : nsISupports + + [ + object, +- uuid(c2756385-bc54-417b-9ae4-c5a40053a2a3), ++ uuid(696b32a1-3cf1-4909-b501-474b25fc7954), + local + ] + interface nsIDocShell : nsIDocShellTreeItem +@@ -3800,6 +3817,8 @@ interface nsIDocShell : nsIDocShellTreeItem + nsresult SetAllowWindowControl(bool aAllowWindowControl); + nsresult GetAllowContentRetargeting(bool *aAllowContentRetargeting); + nsresult SetAllowContentRetargeting(bool aAllowContentRetargeting); ++ nsresult GetAllowContentRetargetingOnChildren(bool *aAllowContentRetargetingOnChildren); ++ nsresult SetAllowContentRetargetingOnChildren(bool aAllowContentRetargetingOnChildren); + nsresult GetDocShellEnumerator(int32_t aItemType, int32_t aDirection, nsISimpleEnumerator **_retval); + nsresult GetAppType(uint32_t *aAppType); + nsresult SetAppType(uint32_t aAppType); +@@ -3856,6 +3875,8 @@ interface nsIDocShell : nsIDocShellTreeItem + nsresult GetCanExecuteScripts(bool *aCanExecuteScripts); + nsresult GetIsActive(bool *aIsActive); + nsresult SetIsActive(bool aIsActive); ++ nsresult SetIsPrerendered(bool prerendered); ++ nsresult GetIsPrerendered(bool *aIsPrerendered); + nsresult GetHistoryID(uint64_t *aHistoryID); + nsresult GetIsAppTab(bool *aIsAppTab); + nsresult SetIsAppTab(bool aIsAppTab); +@@ -3925,13 +3946,15 @@ interface nsIDocShell : nsIDocShellTreeItem + nsresult SetDeviceSizeIsPageSize(bool aDeviceSizeIsPageSize); + void /* thiscall */ SetOpener(void /*nsITabParent*/ *aOpener); + void /* thiscall nsITabParent */ *GetOpener(); +- void /* thiscall */ SetOpenedRemote(void /*nsITabParent*/ *aOpenedRemote); +- void /* thiscall nsITabParent */ *GetOpenedRemote(); + void /*mozilla::dom::URLSearchParams */ *GetURLSearchParams(); +- void /* thiscall */ NotifyJSRunToCompletionStart(); ++ void /* thiscall */ NotifyJSRunToCompletionStart(const char *aReason, const char16_t *functionName, ++ const char16_t *fileName, uint32_t lineNumber); + void /* thiscall */ NotifyJSRunToCompletionStop(); + nsresult GetHasLoadedNonBlankURI(bool *aHasLoadedNonBlankURI); +- ++ nsresult GetPaymentRequestId(nsAString *aPaymentRequestId); ++ nsresult SetPaymentRequestId(const nsAString *aPaymentRequestId); ++ nsresult GetWindowDraggingAllowed(bool *aWindowDraggingAllowed); ++ nsresult SetWindowDraggingAllowed(bool aWindowDraggingAllowed); + } + + [ +@@ -4063,7 +4086,7 @@ interface nsIPluginInstance : nsISupports + + [ + object, +- uuid(e2538ded-13ef-4f4d-946b-65d333b4f03c), ++ uuid(11afa8be-d997-4e07-a6a3-6f872ec3ee7f), + local + ] + interface nsIGlobalObject : nsISupports +@@ -4072,7 +4095,7 @@ interface nsIGlobalObject : nsISupports + + [ + object, +- uuid(2e91e088-e9fa-4ba4-9887-2a0b7cf27a3e), ++ uuid(6f54214c-7175-498d-9d2d-0429e38c2869), + local + ] + interface nsIXMLHttpRequest : nsISupports +@@ -4090,7 +4113,6 @@ interface nsIXMLHttpRequest : nsISupports + nsresult GetResponseHeader(const nsACString *header, nsACString *_retval); + nsresult Open(const nsACString *method, const nsACString *url, bool async, const nsAString *user, const nsAString *password, uint8_t _argc); + nsresult Send(nsIVariant *body); +- nsresult SendAsBinary(const nsAString *body); + nsresult SetRequestHeader(const nsACString *header, const nsACString *value); + nsresult GetTimeout(uint32_t *aTimeout); + nsresult SetTimeout(uint32_t aTimeout); +@@ -4100,7 +4122,7 @@ interface nsIXMLHttpRequest : nsISupports + nsresult SetMozBackgroundRequest(bool aMozBackgroundRequest); + nsresult GetWithCredentials(bool *aWithCredentials); + nsresult SetWithCredentials(bool aWithCredentials); +- nsresult Init(nsIPrincipal *principal, nsIScriptContext *scriptContext, nsIGlobalObject *globalObject, nsIURI *baseURI); ++ nsresult Init(nsIPrincipal *principal, nsIScriptContext *scriptContext, nsIGlobalObject *globalObject, nsIURI *baseURI, nsILoadGroup *loadGroup); + nsresult GetUpload(nsIXMLHttpRequestUpload **aUpload); + nsresult GetOnreadystatechange(JSContext*cx, int /*JS::MutableHandleValue*/ aOnreadystatechange); + nsresult SetOnreadystatechange(JSContext*cx, int /*JS::HandleValue*/ aOnreadystatechange); +@@ -4110,7 +4132,7 @@ interface nsIXMLHttpRequest : nsISupports + + [ + object, +- uuid(f649959d-dae3-4027-83fd-5b7f8c8a8815), ++ uuid(ba602ca6-dc7a-457e-a57a-ee5b343fd863), + local + ] + interface nsIScriptSecurityManager : nsISupports { +@@ -4135,6 +4157,8 @@ interface nsIScriptSecurityManager : nsISupports { + nsresult GetJarPrefix(uint32_t appId, bool inMozBrowser, nsACString *_retval); + nsresult ActivateDomainPolicy(nsIDomainPolicy **_retval); + nsresult GetDomainPolicyActive(bool *aDomainPolicyActive); ++ nsresult ActivateDomainPolicyInternal(nsIDomainPolicy **_retval); ++ void CloneDomainPolicy(int /*mozilla::dom::DomainPolicyClone*/ *aClone); + nsresult PolicyAllowsScript(nsIURI *aDomain, bool *_retval); + } + +diff --git a/dlls/mshtml/nsio.c b/dlls/mshtml/nsio.c +index 9bced99..a661c4d 100644 +--- a/dlls/mshtml/nsio.c ++++ b/dlls/mshtml/nsio.c +@@ -1469,6 +1469,15 @@ static nsresult NSAPI nsChannel_IsNoCacheResponse(nsIHttpChannel *iface, cpp_boo + return NS_ERROR_NOT_IMPLEMENTED; + } + ++static nsresult NSAPI nsChannel_IsPrivateResponse(nsIHttpChannel *iface, cpp_bool *_retval) ++{ ++ nsChannel *This = impl_from_nsIHttpChannel(iface); ++ ++ FIXME("(%p)->(%p)\n", This, _retval); ++ ++ return NS_ERROR_NOT_IMPLEMENTED; ++} ++ + static nsresult NSAPI nsChannel_RedirectTo(nsIHttpChannel *iface, nsIURI *aNewURI) + { + nsChannel *This = impl_from_nsIHttpChannel(iface); +@@ -1538,6 +1547,7 @@ static const nsIHttpChannelVtbl nsChannelVtbl = { + nsChannel_VisitResponseHeaders, + nsChannel_IsNoStoreResponse, + nsChannel_IsNoCacheResponse, ++ nsChannel_IsPrivateResponse, + nsChannel_RedirectTo + }; + +@@ -1828,75 +1838,91 @@ static nsresult NSAPI nsHttpChannelInternal_SetAllowSpdy(nsIHttpChannelInternal + return NS_ERROR_NOT_IMPLEMENTED; + } + +-static nsresult NSAPI nsHttpChannelInternal_GetLoadAsBlocking(nsIHttpChannelInternal *iface, cpp_bool *aLoadAsBlocking) ++static nsresult NSAPI nsHttpChannelInternal_GetResponseTimeoutEnabled(nsIHttpChannelInternal *iface, ++ cpp_bool *aResponseTimeoutEnabled) + { + nsChannel *This = impl_from_nsIHttpChannelInternal(iface); +- FIXME("(%p)->(%p)\n", This, aLoadAsBlocking); ++ FIXME("(%p)->(%p)\n", This, aResponseTimeoutEnabled); + return NS_ERROR_NOT_IMPLEMENTED; + } + +-static nsresult NSAPI nsHttpChannelInternal_SetLoadAsBlocking(nsIHttpChannelInternal *iface, cpp_bool aLoadAsBlocking) ++static nsresult NSAPI nsHttpChannelInternal_SetResponseTimeoutEnabled(nsIHttpChannelInternal *iface, ++ cpp_bool aResponseTimeoutEnabled) + { + nsChannel *This = impl_from_nsIHttpChannelInternal(iface); +- FIXME("(%p)->(%x)\n", This, aLoadAsBlocking); ++ FIXME("(%p)->(%x)\n", This, aResponseTimeoutEnabled); + return NS_ERROR_NOT_IMPLEMENTED; + } + +-static nsresult NSAPI nsHttpChannelInternal_GetLoadUnblocked(nsIHttpChannelInternal *iface, cpp_bool *aLoadUnblocked) ++static nsresult NSAPI nsHttpChannelInternal_GetApiRedirectToURI(nsIHttpChannelInternal *iface, nsIURI **aApiRedirectToURI) + { + nsChannel *This = impl_from_nsIHttpChannelInternal(iface); +- FIXME("(%p)->(%p)\n", This, aLoadUnblocked); ++ FIXME("(%p)->(%p)\n", This, aApiRedirectToURI); + return NS_ERROR_NOT_IMPLEMENTED; + } + +-static nsresult NSAPI nsHttpChannelInternal_SetLoadUnblocked(nsIHttpChannelInternal *iface, cpp_bool aLoadUnblocked) ++static nsresult NSAPI nsHttpChannelInternal_GetAllowAltSvc(nsIHttpChannelInternal *iface, cpp_bool *aAllowAltSvc) + { + nsChannel *This = impl_from_nsIHttpChannelInternal(iface); +- FIXME("(%p)->(%x)\n", This, aLoadUnblocked); ++ FIXME("(%p)->(%p)\n", This, aAllowAltSvc); + return NS_ERROR_NOT_IMPLEMENTED; + } + +-static nsresult NSAPI nsHttpChannelInternal_GetResponseTimeoutEnabled(nsIHttpChannelInternal *iface, +- cpp_bool *aResponseTimeoutEnabled) ++static nsresult NSAPI nsHttpChannelInternal_SetAllowAltSvc(nsIHttpChannelInternal *iface, cpp_bool aAllowAltSvc) + { + nsChannel *This = impl_from_nsIHttpChannelInternal(iface); +- FIXME("(%p)->(%p)\n", This, aResponseTimeoutEnabled); ++ FIXME("(%p)->(%x)\n", This, aAllowAltSvc); + return NS_ERROR_NOT_IMPLEMENTED; + } + +-static nsresult NSAPI nsHttpChannelInternal_SetResponseTimeoutEnabled(nsIHttpChannelInternal *iface, +- cpp_bool aResponseTimeoutEnabled) ++static nsresult NSAPI nsHttpChannelInternal_AddRedirect(nsIHttpChannelInternal *iface, nsIPrincipal *aPrincipal) + { + nsChannel *This = impl_from_nsIHttpChannelInternal(iface); +- FIXME("(%p)->(%x)\n", This, aResponseTimeoutEnabled); ++ FIXME("(%p)->(%p)\n", This, aPrincipal); + return NS_ERROR_NOT_IMPLEMENTED; + } + +-static nsresult NSAPI nsHttpChannelInternal_GetApiRedirectToURI(nsIHttpChannelInternal *iface, nsIURI **aApiRedirectToURI) ++static nsresult NSAPI nsHttpChannelInternal_GetLastModifiedTime(nsIHttpChannelInternal *iface, PRTime *aLastModifiedTime) + { + nsChannel *This = impl_from_nsIHttpChannelInternal(iface); +- FIXME("(%p)->(%p)\n", This, aApiRedirectToURI); ++ FIXME("(%p)->(%p)\n", This, aLastModifiedTime); + return NS_ERROR_NOT_IMPLEMENTED; + } + +-static nsresult NSAPI nsHttpChannelInternal_AddRedirect(nsIHttpChannelInternal *iface, nsIPrincipal *aPrincipal) ++static nsresult NSAPI nsHttpChannelInternal_ForceNoIntercept(nsIHttpChannelInternal *iface) + { + nsChannel *This = impl_from_nsIHttpChannelInternal(iface); +- FIXME("(%p)->(%p)\n", This, aPrincipal); ++ FIXME("(%p)\n", This); + return NS_ERROR_NOT_IMPLEMENTED; + } + +-static nsresult NSAPI nsHttpChannelInternal_GetLastModifiedTime(nsIHttpChannelInternal *iface, PRTime *aLastModifiedTime) ++static nsresult NSAPI nsHttpChannelInternal_GetCorsIncludeCredentials(nsIHttpChannelInternal *iface, ++ cpp_bool *aCorsIncludeCredentials) + { + nsChannel *This = impl_from_nsIHttpChannelInternal(iface); +- FIXME("(%p)->(%p)\n", This, aLastModifiedTime); ++ FIXME("(%p)->(%p)\n", This, aCorsIncludeCredentials); + return NS_ERROR_NOT_IMPLEMENTED; + } + +-static nsresult NSAPI nsHttpChannelInternal_ForceNoIntercept(nsIHttpChannelInternal *iface) ++static nsresult NSAPI nsHttpChannelInternal_SetCorsIncludeCredentials(nsIHttpChannelInternal *iface, ++ cpp_bool aCorsIncludeCredentials) + { + nsChannel *This = impl_from_nsIHttpChannelInternal(iface); +- FIXME("(%p)\n", This); ++ FIXME("(%p)->(%x)\n", This, aCorsIncludeCredentials); ++ return NS_ERROR_NOT_IMPLEMENTED; ++} ++ ++static nsresult NSAPI nsHttpChannelInternal_GetCorsMode(nsIHttpChannelInternal *iface, UINT32 *aCorsMode) ++{ ++ nsChannel *This = impl_from_nsIHttpChannelInternal(iface); ++ FIXME("(%p)->(%p)\n", This, aCorsMode); ++ return NS_ERROR_NOT_IMPLEMENTED; ++} ++ ++static nsresult NSAPI nsHttpChannelInternal_SetCorsMode(nsIHttpChannelInternal *iface, UINT32 aCorsMode) ++{ ++ nsChannel *This = impl_from_nsIHttpChannelInternal(iface); ++ FIXME("(%p)->(%d)\n", This, aCorsMode); + return NS_ERROR_NOT_IMPLEMENTED; + } + +@@ -1907,6 +1933,36 @@ static nsresult NSAPI nsHttpChannelInternal_GetTopWindowURI(nsIHttpChannelIntern + return NS_ERROR_NOT_IMPLEMENTED; + } + ++static nsresult NSAPI nsHttpChannelInternal_GetNetworkInterfaceId(nsIHttpChannelInternal *iface, ++ nsACString *aNetworkInterfaceId) ++{ ++ nsChannel *This = impl_from_nsIHttpChannelInternal(iface); ++ FIXME("(%p)->(%p)\n", This, aNetworkInterfaceId); ++ return NS_ERROR_NOT_IMPLEMENTED; ++} ++ ++static nsresult NSAPI nsHttpChannelInternal_SetNetworkInterfaceId(nsIHttpChannelInternal *iface, ++ const nsACString *aNetworkInterfaceId) ++{ ++ nsChannel *This = impl_from_nsIHttpChannelInternal(iface); ++ FIXME("(%p)->(%s)\n", This, debugstr_nsacstr(aNetworkInterfaceId)); ++ return NS_ERROR_NOT_IMPLEMENTED; ++} ++ ++static nsresult NSAPI nsHttpChannelInternal_ContinueBeginConnect(nsIHttpChannelInternal *iface) ++{ ++ nsChannel *This = impl_from_nsIHttpChannelInternal(iface); ++ FIXME("(%p)\n", This); ++ return NS_ERROR_NOT_IMPLEMENTED; ++} ++ ++static nsresult NSAPI nsHttpChannelInternal_GetProxyURI(nsIHttpChannelInternal *iface, nsIURI **aProxyURI) ++{ ++ nsChannel *This = impl_from_nsIHttpChannelInternal(iface); ++ FIXME("(%p)->(%p)\n", This, aProxyURI); ++ return NS_ERROR_NOT_IMPLEMENTED; ++} ++ + static const nsIHttpChannelInternalVtbl nsHttpChannelInternalVtbl = { + nsHttpChannelInternal_QueryInterface, + nsHttpChannelInternal_AddRef, +@@ -1931,17 +1987,23 @@ static const nsIHttpChannelInternalVtbl nsHttpChannelInternalVtbl = { + nsHttpChannelInternal_HTTPUpgrade, + nsHttpChannelInternal_GetAllowSpdy, + nsHttpChannelInternal_SetAllowSpdy, +- nsHttpChannelInternal_GetLoadAsBlocking, +- nsHttpChannelInternal_SetLoadAsBlocking, +- nsHttpChannelInternal_GetLoadUnblocked, +- nsHttpChannelInternal_SetLoadUnblocked, + nsHttpChannelInternal_GetResponseTimeoutEnabled, + nsHttpChannelInternal_SetResponseTimeoutEnabled, + nsHttpChannelInternal_GetApiRedirectToURI, ++ nsHttpChannelInternal_GetAllowAltSvc, ++ nsHttpChannelInternal_SetAllowAltSvc, + nsHttpChannelInternal_AddRedirect, + nsHttpChannelInternal_GetLastModifiedTime, + nsHttpChannelInternal_ForceNoIntercept, +- nsHttpChannelInternal_GetTopWindowURI ++ nsHttpChannelInternal_GetCorsIncludeCredentials, ++ nsHttpChannelInternal_SetCorsIncludeCredentials, ++ nsHttpChannelInternal_GetCorsMode, ++ nsHttpChannelInternal_SetCorsMode, ++ nsHttpChannelInternal_GetTopWindowURI, ++ nsHttpChannelInternal_GetNetworkInterfaceId, ++ nsHttpChannelInternal_SetNetworkInterfaceId, ++ nsHttpChannelInternal_ContinueBeginConnect, ++ nsHttpChannelInternal_GetProxyURI + }; + + +@@ -3581,7 +3643,7 @@ static nsresult NSAPI nsIOService_NewFileURI(nsIIOService *iface, nsIFile *aFile + return nsIIOService_NewFileURI(nsio, aFile, _retval); + } + +-static nsresult new_channel_from_uri(nsIURI *uri, nsIChannel **_retval) ++static nsresult new_channel_from_uri(nsIURI *uri, nsILoadInfo *load_info, nsIChannel **_retval) + { + nsWineURI *wine_uri; + nsChannel *ret; +@@ -3601,6 +3663,9 @@ static nsresult new_channel_from_uri(nsIURI *uri, nsIChannel **_retval) + nsIURI_AddRef(uri); + ret->original_uri = uri; + ++ if(load_info) ++ nsIHttpChannel_SetLoadInfo(&ret->nsIHttpChannel_iface, load_info); ++ + *_retval = (nsIChannel*)&ret->nsIHttpChannel_iface; + return NS_OK; + } +@@ -3609,16 +3674,36 @@ static nsresult NSAPI nsIOService_NewChannelFromURI2(nsIIOService *iface, nsIURI + nsIDOMNode *aLoadingNode, nsIPrincipal *aLoadingPrincipal, nsIPrincipal *aTriggeringPrincipal, + UINT32 aSecurityFlags, UINT32 aContentPolicyType, nsIChannel **_retval) + { +- FIXME("(%p %p %p %p %x %d %p) semi-stub\n", aURI, aLoadingNode, aLoadingPrincipal, aTriggeringPrincipal, ++ nsILoadInfo *load_info = NULL; ++ nsresult nsres; ++ ++ TRACE("(%p %p %p %p %x %d %p)\n", aURI, aLoadingNode, aLoadingPrincipal, aTriggeringPrincipal, + aSecurityFlags, aContentPolicyType, _retval); +- return new_channel_from_uri(aURI, _retval); ++ ++ if(aLoadingNode || aLoadingPrincipal) { ++ nsres = nsIIOService_NewLoadInfo(nsio, aLoadingPrincipal, aTriggeringPrincipal, aLoadingNode, ++ aSecurityFlags, aContentPolicyType, &load_info); ++ assert(nsres == NS_OK); ++ } ++ ++ nsres = new_channel_from_uri(aURI, load_info, _retval); ++ if(load_info) ++ nsISupports_Release(load_info); ++ return nsres; ++} ++ ++static nsresult NSAPI nsIOService_NewChannelFromURIWithLoadInfo(nsIIOService *iface, nsIURI *aURI, ++ nsILoadInfo *aLoadInfo, nsIChannel **_retval) ++{ ++ TRACE("(%p %p %p)\n", aURI, aLoadInfo, _retval); ++ return new_channel_from_uri(aURI, aLoadInfo, _retval); + } + + static nsresult NSAPI nsIOService_NewChannelFromURI(nsIIOService *iface, nsIURI *aURI, + nsIChannel **_retval) + { + TRACE("(%p %p)\n", aURI, _retval); +- return new_channel_from_uri(aURI, _retval); ++ return new_channel_from_uri(aURI, NULL, _retval); + } + + static nsresult NSAPI nsIOService_NewChannel2(nsIIOService *iface, const nsACString *aSpec, +@@ -3650,6 +3735,12 @@ static nsresult NSAPI nsIOService_SetOffline(nsIIOService *iface, cpp_bool aOffl + return nsIIOService_SetOffline(nsio, aOffline); + } + ++static nsresult NSAPI nsIOService_GetConnectivity(nsIIOService *iface, cpp_bool *aConnectivity) ++{ ++ TRACE("(%p)\n", aConnectivity); ++ return nsIIOService_GetConnectivity(nsio, aConnectivity); ++} ++ + static nsresult NSAPI nsIOService_SetAppOffline(nsIIOService *iface, UINT32 appId, INT32 state) + { + TRACE("(%d %x)\n", appId, state); +@@ -3691,11 +3782,13 @@ static const nsIIOServiceVtbl nsIOServiceVtbl = { + nsIOService_NewURI, + nsIOService_NewFileURI, + nsIOService_NewChannelFromURI2, ++ nsIOService_NewChannelFromURIWithLoadInfo, + nsIOService_NewChannelFromURI, + nsIOService_NewChannel2, + nsIOService_NewChannel, + nsIOService_GetOffline, + nsIOService_SetOffline, ++ nsIOService_GetConnectivity, + nsIOService_SetAppOffline, + nsIOService_IsAppOffline, + nsIOService_GetAppOfflineState, +-- +1.9.1 + diff --git a/wine.spec b/wine.spec index 3f2a891..f6ab030 100644 --- a/wine.spec +++ b/wine.spec @@ -22,7 +22,7 @@ Name: wine Version: 1.7.49 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -72,6 +72,8 @@ Patch511: wine-cjk.patch Patch512: wine-gcc5.patch # prelink has been retired, use linker method of base address relocation Patch513: wine-relocate-base.patch +# backport patch for gecko 2.40 support, should be released in wine 1.7.50 +Patch514: wine-gecko-2.40.patch # wine compholio patches for pipelight. # pulseaudio-patch is covered by that patch-set, too. @@ -629,6 +631,7 @@ This package adds the opencl driver for wine. #patch512 -p1 -b.gcc5 %endif %patch513 -p1 -b.relocate +%patch514 -p1 -b.gecko # setup and apply compholio-patches or pulseaudio-patch. # since the pulse patch is included in the compholio patches use it from @@ -1902,6 +1905,9 @@ fi %{_libdir}/wine/opencl.dll.so %changelog +* Fri Aug 14 2015 Michael Cronenworth 1.7.49-2 +- backport gecko 2.40 patch + * Fri Aug 14 2015 Michael Cronenworth 1.7.49-1 - version upgrade From 52d10db320222e9deec7c5c1d5fa41044a750f41 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 24 Aug 2015 09:26:32 -0500 Subject: [PATCH 350/715] Update to 1.7.50 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 10 +++++----- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 08c9b5f..f306e79 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.7.49.tar.bz2 -/wine-1.7.49.tar.bz2.sign -/wine-staging-1.7.49.tar.gz +/wine-1.7.50.tar.bz2 +/wine-1.7.50.tar.bz2.sign +/wine-staging-1.7.50.tar.gz diff --git a/sources b/sources index 584783c..18935ce 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -bb27879f267a20599cacbb4043ebd584 wine-1.7.49.tar.bz2 -539d477d2cdf5bccdbc349e2b68f963f wine-1.7.49.tar.bz2.sign -658fbcb2647c6839d94ebf6232f67e62 wine-staging-1.7.49.tar.gz +c8b30bf13c3d418688fd6fa1321edb8a wine-1.7.50.tar.bz2 +e5fbff1f79483b3ec55cf1b4d545eb45 wine-1.7.50.tar.bz2.sign +09bb58240bdf89481a7b27992896685b wine-staging-1.7.50.tar.gz diff --git a/wine.spec b/wine.spec index f6ab030..b6b3f13 100644 --- a/wine.spec +++ b/wine.spec @@ -21,8 +21,8 @@ %endif Name: wine -Version: 1.7.49 -Release: 2%{?dist} +Version: 1.7.50 +Release: 1%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -72,8 +72,6 @@ Patch511: wine-cjk.patch Patch512: wine-gcc5.patch # prelink has been retired, use linker method of base address relocation Patch513: wine-relocate-base.patch -# backport patch for gecko 2.40 support, should be released in wine 1.7.50 -Patch514: wine-gecko-2.40.patch # wine compholio patches for pipelight. # pulseaudio-patch is covered by that patch-set, too. @@ -631,7 +629,6 @@ This package adds the opencl driver for wine. #patch512 -p1 -b.gcc5 %endif %patch513 -p1 -b.relocate -%patch514 -p1 -b.gecko # setup and apply compholio-patches or pulseaudio-patch. # since the pulse patch is included in the compholio patches use it from @@ -1905,6 +1902,9 @@ fi %{_libdir}/wine/opencl.dll.so %changelog +* Mon Aug 24 2015 Michael Cronenworth 1.7.50-1 +- version upgrade + * Fri Aug 14 2015 Michael Cronenworth 1.7.49-2 - backport gecko 2.40 patch From ddb68f330a65d5edee4dcb23d977319f45236a87 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 24 Aug 2015 09:27:01 -0500 Subject: [PATCH 351/715] Remove gecko 2.40 patch --- wine-gecko-2.40.patch | 780 ------------------------------------------ 1 file changed, 780 deletions(-) delete mode 100644 wine-gecko-2.40.patch diff --git a/wine-gecko-2.40.patch b/wine-gecko-2.40.patch deleted file mode 100644 index 00b3ff0..0000000 --- a/wine-gecko-2.40.patch +++ /dev/null @@ -1,780 +0,0 @@ -From a556f9e5c12b76e1d331e49c38b0f63f54e808b9 Mon Sep 17 00:00:00 2001 -From: Jacek Caban -Date: Tue, 11 Aug 2015 15:11:35 +0200 -Subject: [PATCH 1/1] mshtml: Wine Gecko 2.40 release. - ---- - dlls/appwiz.cpl/addons.c | 6 +- - dlls/mshtml/nsembed.c | 6 +- - dlls/mshtml/nsiface.idl | 114 ++++++++++++++++++++-------------- - dlls/mshtml/nsio.c | 155 +++++++++++++++++++++++++++++++++++++---------- - 4 files changed, 199 insertions(+), 82 deletions(-) - -diff --git a/dlls/appwiz.cpl/addons.c b/dlls/appwiz.cpl/addons.c -index b4fcc25..48cd062 100644 ---- a/dlls/appwiz.cpl/addons.c -+++ b/dlls/appwiz.cpl/addons.c -@@ -51,14 +51,14 @@ - - WINE_DEFAULT_DEBUG_CHANNEL(appwizcpl); - --#define GECKO_VERSION "2.36" -+#define GECKO_VERSION "2.40" - - #ifdef __i386__ - #define ARCH_STRING "x86" --#define GECKO_SHA "08b02bf0e3ff3a315135afa1132ddb3a25a63e15" -+#define GECKO_SHA "7001a6ed5b02d0ae4e73b14c92018d604b87f3ad" - #elif defined(__x86_64__) - #define ARCH_STRING "x86_64" --#define GECKO_SHA "a7624eb685d04c4ef1f4f093095a5a324808d57c" -+#define GECKO_SHA "356c414527b08b015b6dc53dbbf78d752320ae90" - #else - #define ARCH_STRING "" - #define GECKO_SHA "???" -diff --git a/dlls/mshtml/nsembed.c b/dlls/mshtml/nsembed.c -index df2e130..93f4277 100644 ---- a/dlls/mshtml/nsembed.c -+++ b/dlls/mshtml/nsembed.c -@@ -1577,12 +1577,12 @@ static nsresult NSAPI nsURIContentListener_OnStartURIOpen(nsIURIContentListener - } - - static nsresult NSAPI nsURIContentListener_DoContent(nsIURIContentListener *iface, -- const char *aContentType, cpp_bool aIsContentPreferred, nsIRequest *aRequest, -+ const nsACString *aContentType, cpp_bool aIsContentPreferred, nsIRequest *aRequest, - nsIStreamListener **aContentHandler, cpp_bool *_retval) - { - NSContainer *This = impl_from_nsIURIContentListener(iface); - -- TRACE("(%p)->(%s %x %p %p %p)\n", This, debugstr_a(aContentType), aIsContentPreferred, -+ TRACE("(%p)->(%p %x %p %p %p)\n", This, aContentType, aIsContentPreferred, - aRequest, aContentHandler, _retval); - - return This->content_listener -@@ -2199,7 +2199,7 @@ nsIXMLHttpRequest *create_nsxhr(nsIDOMWindow *nswindow) - return NULL; - } - -- nsres = nsIXMLHttpRequest_Init(nsxhr, nspri, NULL, nsglo, NULL); -+ nsres = nsIXMLHttpRequest_Init(nsxhr, nspri, NULL, nsglo, NULL, NULL); - - nsISupports_Release(nspri); - nsIGlobalObject_Release(nsglo); -diff --git a/dlls/mshtml/nsiface.idl b/dlls/mshtml/nsiface.idl -index 3fc2ca6..13c610f 100644 ---- a/dlls/mshtml/nsiface.idl -+++ b/dlls/mshtml/nsiface.idl -@@ -23,7 +23,7 @@ - * compatible with XPCOM, usable in C code. - */ - --cpp_quote("#define GECKO_VERSION \"2.36\"") -+cpp_quote("#define GECKO_VERSION \"2.40\"") - cpp_quote("#define GECKO_VERSION_STRING \"Wine Gecko \" GECKO_VERSION") - - import "wtypes.idl"; -@@ -145,7 +145,6 @@ typedef nsISupports nsIAtom; - typedef nsISupports nsISupportsArray; - typedef nsISupports nsIContentFilter; - typedef nsISupports nsIDOMMediaList; --typedef nsISupports nsIDOMHTMLTableCaptionElement; - typedef nsISupports nsIDOMHTMLTableSectionElement; - typedef nsISupports nsIDOMClientRectList; - typedef nsISupports nsINode; -@@ -608,7 +607,7 @@ interface nsIHttpHeaderVisitor : nsISupports - - [ - object, -- uuid(82083578-fb78-4f9a-953c-cecbae500697), -+ uuid(86ad7e1f-3a64-4e0f-a104-395ebecd7d5c), - local - ] - interface nsIHttpChannel : nsIChannel -@@ -636,12 +635,13 @@ interface nsIHttpChannel : nsIChannel - nsresult VisitResponseHeaders(nsIHttpHeaderVisitor *aVisitor); - nsresult IsNoStoreResponse(bool *_retval); - nsresult IsNoCacheResponse(bool *_retval); -+ nsresult IsPrivateResponse(bool *_retval); - nsresult RedirectTo(nsIURI *aNewURI); - } - - [ - object, -- uuid(62a8d6e2-3418-4c6f-9d90-88573838f6dd), -+ uuid(26833ec7-4555-4f23-9281-3a12d4b76db1), - local - ] - interface nsIHttpChannelInternal : nsISupports -@@ -666,17 +666,23 @@ interface nsIHttpChannelInternal : nsISupports - nsresult HTTPUpgrade(const nsACString *aProtocolName, nsIHttpUpgradeListener *aListener); - nsresult GetAllowSpdy(bool *aAllowSpdy); - nsresult SetAllowSpdy(bool aAllowSpdy); -- nsresult GetLoadAsBlocking(bool *aLoadAsBlocking); -- nsresult SetLoadAsBlocking(bool aLoadAsBlocking); -- nsresult GetLoadUnblocked(bool *aLoadUnblocked); -- nsresult SetLoadUnblocked(bool aLoadUnblocked); - nsresult GetResponseTimeoutEnabled(bool *aResponseTimeoutEnabled); - nsresult SetResponseTimeoutEnabled(bool aResponseTimeoutEnabled); - nsresult GetApiRedirectToURI(nsIURI **aApiRedirectToURI); -+ nsresult GetAllowAltSvc(bool *aAllowAltSvc); -+ nsresult SetAllowAltSvc(bool aAllowAltSvc); - nsresult AddRedirect(nsIPrincipal *aPrincipal); - nsresult GetLastModifiedTime(PRTime *aLastModifiedTime); - nsresult ForceNoIntercept(); -+ nsresult GetCorsIncludeCredentials(bool *aCorsIncludeCredentials); -+ nsresult SetCorsIncludeCredentials(bool aCorsIncludeCredentials); -+ nsresult GetCorsMode(uint32_t *aCorsMode); -+ nsresult SetCorsMode(uint32_t aCorsMode); - nsresult GetTopWindowURI(nsIURI **aTopWindowURI); -+ nsresult GetNetworkInterfaceId(nsACString *aNetworkInterfaceId); -+ nsresult SetNetworkInterfaceId(const nsACString *aNetworkInterfaceId); -+ nsresult ContinueBeginConnect(); -+ nsresult GetProxyURI(nsIURI **aProxyURI); - } - - [ -@@ -703,7 +709,7 @@ interface nsIAsyncVerifyRedirectCallback : nsISupports - - [ - object, -- uuid(a430d870-df77-4502-9570-d46a8de33154), -+ uuid(0197720d-37ed-4e75-8956-d0d296e4d8a6), - local - ] - interface nsIChannelEventSink : nsISupports -@@ -711,6 +717,7 @@ interface nsIChannelEventSink : nsISupports - const UINT REDIRECT_TEMPORARY = 1; - const UINT REDIRECT_PERMANENT = 2; - const UINT REDIRECT_INTERNAL = 4; -+ const UINT REDIRECT_STS_UPGRADE = 8; - - nsresult AsyncOnChannelRedirect(nsIChannel *oldChannel, nsIChannel *newChannel, uint32_t flags, - nsIAsyncVerifyRedirectCallback *callback); -@@ -1381,7 +1388,7 @@ interface nsIDOMWindowCollection : nsISupports - - [ - object, -- uuid(ed7cc4e4-cf5b-42af-9c2e-8df074a01470), -+ uuid(8146f3fc-9fc1-47c5-85ef-95d686e4ca6d), - local - ] - interface nsIDOMWindow : nsISupports -@@ -1429,7 +1436,6 @@ interface nsIDOMWindow : nsISupports - nsresult GetSessionStorage(nsISupports **aSessionStorage); - nsresult GetLocalStorage(nsISupports **aLocalStorage); - nsresult GetIndexedDB(nsISupports **aIndexedDB); -- nsresult GetMozIndexedDB(nsISupports **aMozIndexedDB); - nsresult GetSelection(nsISelection **_retval); - nsresult MatchMedia(const nsAString *media_query_list, nsISupports **_retval); - nsresult GetScreen(nsIDOMScreen **aScreen); -@@ -2012,8 +2018,8 @@ interface nsIDOMHTMLLinkElement : nsISupports - ] - interface nsIDOMHTMLTableElement : nsISupports - { -- nsresult GetCaption(nsIDOMHTMLTableCaptionElement **aCaption); -- nsresult SetCaption(nsIDOMHTMLTableCaptionElement *aCaption); -+ nsresult GetCaption(nsIDOMHTMLElement **aCaption); -+ nsresult SetCaption(nsIDOMHTMLElement *aCaption); - nsresult GetTHead(nsIDOMHTMLElement **aTHead); - nsresult SetTHead(nsIDOMHTMLElement *aTHead); - nsresult GetTFoot(nsIDOMHTMLElement **aTFoot); -@@ -2240,13 +2246,13 @@ interface nsIDOMHTMLStyleElement : nsISupports - - [ - object, -- uuid(94928ab3-8b63-11d3-989d-001083010e9b), -+ uuid(10a28f38-32e8-4c63-8aa1-12eaaebc369a), - local - ] - interface nsIURIContentListener : nsISupports - { - nsresult OnStartURIOpen(nsIURI *aURI, bool *_retval); -- nsresult DoContent(const char *aContentType, bool aIsContentPreferred, nsIRequest *aRequest, -+ nsresult DoContent(const nsACString *aContentType, bool aIsContentPreferred, nsIRequest *aRequest, - nsIStreamListener **aContentHandler, bool *_retval); - nsresult IsPreferred(const char *aContentType, char **aDesiredContentType, bool *_retval); - nsresult CanHandleContent(const char *aContentType, bool aIsContentPreferred, -@@ -2338,7 +2344,7 @@ interface nsIBaseWindow : nsISupports - - [ - object, -- uuid(b7568a50-4c50-442c-a6be-3a340a48d89a), -+ uuid(0e92d522-53a5-4af6-9a24-4eccdcbf4f91), - local - ] - interface nsIWebNavigation : nsISupports -@@ -2368,7 +2374,7 @@ interface nsIWebNavigation : nsISupports - nsresult GotoIndex(int32_t index); - nsresult LoadURI(const PRUnichar *aURI, uint32_t aLoadFlags, nsIURI *aReferrer, - nsIInputStream *aPostData, nsIInputStream *aHeaders); -- nsresult LoadURIWithBase(const PRUnichar *aURI, uint32_t aLoadFlags, nsIURI *aReferrer, -+ nsresult LoadURIWithOptions(const PRUnichar *aURI, uint32_t aLoadFlags, nsIURI *aReferrer, uint32_t aReferrerPolicy, - nsIInputStream *aPostData, nsIInputStream *aHeaders, nsIURI *aBaseURI); - nsresult Reload(uint32_t aReloadFlags); - nsresult Stop(uint32_t aStopFlags); -@@ -2783,7 +2789,7 @@ interface nsIExternalProtocolHandler : nsIProtocolHandler - - [ - object, -- uuid(d8555f58-203a-465a-a33e-442ae4c6c4cf), -+ uuid(4286de5a-b2ea-446f-8f70-e2a461f42694), - local - ] - interface nsIIOService : nsISupports -@@ -2796,6 +2802,7 @@ interface nsIIOService : nsISupports - nsresult NewChannelFromURI2(nsIURI *aURI, nsIDOMNode *aLoadingNode, nsIPrincipal *aLoadingPrincipal, - nsIPrincipal *aTriggeringPrincipal, uint32_t aSecurityFlags, uint32_t aContentPolicyType, - nsIChannel **_retval); -+ nsresult NewChannelFromURIWithLoadInfo(nsIURI *aURI, nsILoadInfo *aLoadInfo, nsIChannel **_retval); - nsresult NewChannelFromURI(nsIURI *aURI, nsIChannel **_retval); - nsresult NewChannel2(const nsACString *aSpec, const char *aOriginCharset, nsIURI *aBaseURI, - nsIDOMNode *aLoadingNode, nsIPrincipal *aLoadingPrincipal, nsIPrincipal *aTriggeringPrincipal, -@@ -2804,11 +2811,14 @@ interface nsIIOService : nsISupports - nsIChannel **_retval); - nsresult GetOffline(bool *aOffline); - nsresult SetOffline(bool aOffline); -+ nsresult GetConnectivity(bool *aConnectivity); - nsresult SetAppOffline(uint32_t appId, int32_t state); - nsresult IsAppOffline(uint32_t appId, bool *_retval); - nsresult GetAppOfflineState(uint32_t appId, int32_t *_retval); - nsresult AllowPort(int32_t aPort, const char *aScheme, bool *_retval); - nsresult ExtractScheme(const nsACString *urlString, nsACString *_retval); -+ nsresult NewLoadInfo(nsIPrincipal *aLoadingPrincipal, nsIPrincipal *aTriggeringPrincipal, -+ nsIDOMNode *aLoadingNode, uint32_t aSecurityFlags, uint32_t aContentPolicyType, nsILoadInfo **_retval); - } - - [ -@@ -2929,7 +2939,7 @@ interface nsIDOMEvent : nsISupports - - [ - object, -- uuid(9621eb05-b498-4e87-a012-95d817987624), -+ uuid(1a75c351-d115-4d51-94df-731dd1723a1f), - local - ] - interface nsIDOMWindowUtils : nsISupports -@@ -2949,8 +2959,9 @@ interface nsIDOMWindowUtils : nsISupports - nsresult SetDisplayPortMarginsForElement(float aLeftMargin, float aTopMargin, float aRightMargin, float aBottomMargin, - uint32_t aAlignmentX, uint32_t aAlignmentY, nsIDOMElement *aElement, uint32_t aPriority); - nsresult SetDisplayPortBaseForElement(int32_t aX, int32_t aY, int32_t aWidth, int32_t aHeight, nsIDOMElement *aElement); -- nsresult SetResolution(float aXResolution, float aYResolution); -- nsresult GetResolution(float *aXResolution, float *aYResolution); -+ nsresult SetResolution(float aResolution); -+ nsresult GetResolution(float *aResolution); -+ nsresult SetResolutionAndScaleTo(float aResolution); - nsresult GetIsResolutionSet(bool *aIsResolutionSet); - nsresult GetIsFirstPaint(bool *aIsFirstPaint); - nsresult SetIsFirstPaint(bool aIsFirstPaint); -@@ -2979,15 +2990,16 @@ interface nsIDOMWindowUtils : nsISupports - nsresult SendKeyEvent(const nsAString *aType, int32_t aKeyCode, int32_t aCharCode, int32_t aModifiers, - uint32_t aAdditionalFlags, bool *_retval); - nsresult SendNativeKeyEvent(int32_t aNativeKeyboardLayout, int32_t aNativeKeyCode, int32_t aModifierFlags, -- const nsAString *aCharacters, const nsAString *aUnmodifiedCharacters); -+ const nsAString *aCharacters, const nsAString *aUnmodifiedCharacters, nsIObserver *aObserver); - nsresult SendNativeMouseEvent(int32_t aScreenX, int32_t aScreenY, int32_t aNativeMessage, int32_t aModifierFlags, -- nsIDOMElement *aElement); -+ nsIDOMElement *aElement, nsIObserver *aObserver); - nsresult SendNativeMouseScrollEvent(int32_t aScreenX, int32_t aScreenY, uint32_t aNativeMessage, double aDeltaX, -- double aDeltaY, double aDeltaZ, uint32_t aModifierFlags, uint32_t aAdditionalFlags, nsIDOMElement *aElement); -+ double aDeltaY, double aDeltaZ, uint32_t aModifierFlags, uint32_t aAdditionalFlags, nsIDOMElement *aElement, -+ nsIObserver *aObserver); - nsresult SendNativeTouchPoint(uint32_t aPointerId, uint32_t aTouchState, int32_t aScreenX, int32_t aScreenY, -- double aPressure, uint32_t aOrientation); -- nsresult SendNativeTouchTap(int32_t aScreenX, int32_t aScreenY, bool aLongTap); -- nsresult ClearNativeTouchSequence(); -+ double aPressure, uint32_t aOrientation, nsIObserver *aObserver); -+ nsresult SendNativeTouchTap(int32_t aScreenX, int32_t aScreenY, bool aLongTap, nsIObserver *aObserver); -+ nsresult ClearNativeTouchSequence(nsIObserver *aObserver); - nsresult ActivateNativeMenuItemAt(const nsAString *indexString); - nsresult ForceUpdateNativeMenuAt(const nsAString *indexString); - nsresult Focus(nsIDOMElement *aElement); -@@ -3019,8 +3031,6 @@ interface nsIDOMWindowUtils : nsISupports - nsresult DispatchEventToChromeOnly(nsIDOMEventTarget *aTarget, nsIDOMEvent *aEvent, bool *_retval); - nsresult GetClassName(const /*JS::Value*/ void *aObject, JSContext *cx, char **_retval); - nsresult SendContentCommandEvent(const nsAString *aType, nsITransferable *aTransferable); -- nsresult SendCompositionEvent(const nsAString *aType, const nsAString *aData, const nsAString *aLocale); -- nsresult CreateCompositionStringSynthesizer(int /*nsICompositionStringSynthesizer*/ **_retval); - nsresult SendQueryContentEvent(uint32_t aType, uint32_t aOffset, uint32_t aLength, int32_t aX, int32_t aY, - uint32_t aAdditionalFlags, nsIQueryContentEventResult **_retval); - nsresult RemoteFrameFullscreenChanged(nsIDOMElement *aFrameElement, const nsAString *aNewOrigin); -@@ -3030,16 +3040,17 @@ interface nsIDOMWindowUtils : nsISupports - nsresult SelectAtPoint(float aX, float aY, uint32_t aSelectBehavior, bool *_retval); - nsresult GetVisitedDependentComputedStyle(nsIDOMElement *aElement, const nsAString *aPseudoElement, - const nsAString *aPropertyName, nsAString *_retval); -- nsresult GetParent(const /*JS::Value*/ void *obj, JSContext *cx, /*JS::Value*/ void *_retval); - nsresult GetOuterWindowID(uint64_t *aOuterWindowID); - nsresult GetCurrentInnerWindowID(uint64_t *aCurrentInnerWindowID); - nsresult EnterModalState(); - nsresult LeaveModalState(); - nsresult IsInModalState(bool *_retval); -+ nsresult SetDesktopModeViewport(bool aDesktopModeViewport); - nsresult SuspendTimeouts(); - nsresult ResumeTimeouts(); - nsresult GetLayerManagerType(nsAString *aLayerManagerType); - nsresult GetLayerManagerRemote(bool *aLayerManagerRemote); -+ nsresult GetSupportsHardwareH264Decoding(bool *aSupportsHardwareH264Decoding); - nsresult StartFrameTimeRecording(uint32_t *startIndex); - nsresult StopFrameTimeRecording(uint32_t startIndex, uint32_t *frameCount, float **frameIntervals); - nsresult BeginTabSwitch(); -@@ -3059,8 +3070,9 @@ interface nsIDOMWindowUtils : nsISupports - nsresult FindElementWithViewId(long /*nsViewID*/ aId, nsIDOMElement **_retval); - nsresult GetViewId(nsIDOMElement *aElement, long /*nsViewID*/ *_retval); - nsresult LeafLayersPartitionWindow(bool *_retval); -- nsresult GetMayHaveTouchEventListeners(bool *aMayHaveTouchEventListeners); - nsresult CheckAndClearPaintedState(nsIDOMElement *aElement, bool *_retval); -+ nsresult IsPartOfOpaqueLayer(nsIDOMElement *aElement, bool *_retval); -+ nsresult NumberOfAssignedPaintedLayers(nsIDOMElement **aElements, uint32_t count, uint32_t *_retval); - nsresult GetFileId(const /*JS::Value*/ void *aFile, JSContext *cx, int64_t *_retval); - nsresult GetFilePath(void /*JS::HandleValue*/ *aFile, JSContext *cx, nsAString *_retval); - nsresult GetFileReferences(const nsAString *aDatabaseName, int64_t aId, void /*JS::HandleValue*/ *aOptions, -@@ -3097,12 +3109,18 @@ interface nsIDOMWindowUtils : nsISupports - nsresult SetHandlingUserInput(bool aHandlingInput, void /*nsIJSRAIIHelper*/ **_retval); - nsresult GetContentAPZTestData(JSContext *cx, int /*JS::MutableHandleValue*/ _retval); - nsresult GetCompositorAPZTestData(JSContext *cx, void /*JS::MutableHandleValue*/ *_retval); -+ nsresult PostRestyleSelfEvent(nsIDOMElement *aElement); - nsresult GetAudioMuted(bool *aAudioMuted) ; - nsresult SetAudioMuted(bool aAudioMuted); - nsresult GetAudioVolume(float *aAudioVolume); - nsresult SetAudioVolume(float aAudioVolume); - nsresult XpconnectArgument(nsIDOMWindowUtils *aThis); - nsresult AskPermission(void /*nsIContentPermissionRequest*/ *aRequest); -+ nsresult GetFramesConstructed(uint64_t *aFramesConstructed); -+ nsresult GetFramesReflowed(uint64_t *aFramesReflowed); -+ nsresult SetChromeMargin(int32_t aTop, int32_t aRight, int32_t aBottom, int32_t aLeft); -+ nsresult GetServiceWorkersTestingEnabled(bool *aServiceWorkersTestingEnabled); -+ nsresult SetServiceWorkersTestingEnabled(bool aServiceWorkersTestingEnabled); - } - - cpp_quote("#define CONTEXT_NONE 0x00") -@@ -3394,7 +3412,7 @@ interface nsIController : nsISupports - - [ - object, -- uuid(697a2fe1-5549-48e7-9a1a-c29dab14e239), -+ uuid(70f7e9ea-a9bf-48cc-ad9d-8acaeed29b68), - local - ] - interface nsIContent : nsISupports -@@ -3404,7 +3422,7 @@ interface nsIContent : nsISupports - - [ - object, -- uuid(f63d2f6e-d1c1-49b9-8826-d59e5d722a42), -+ uuid(0b78eabe-8b94-4ea1-9331-5d48e83ada95), - local - ] - interface nsIDocument : nsISupports -@@ -3530,7 +3548,7 @@ interface nsIEditor : nsISupports - - [ - object, -- uuid(393a364f-e8e2-48a1-a271-a0067b6bac9b), -+ uuid(87ee993e-985f-4a43-a974-0d9512da2fb0), - local - ] - interface nsIHTMLEditor : nsISupports -@@ -3588,7 +3606,6 @@ interface nsIHTMLEditor : nsISupports - nsresult IsAnonymousElement([in] nsIDOMElement *aElement, [out] bool *_retval); - nsresult GetReturnInParagraphCreatesNewParagraph([out] bool *_retval); - nsresult SetReturnInParagraphCreatesNewParagraph([in] bool prb); -- nsresult BreakIsVisible(nsIDOMNode *aNode, bool *_retval); - void /*Element*/ *GetActiveEditingHost(); - } - -@@ -3756,7 +3773,7 @@ interface nsIDocShellLoadInfo : nsISupports - - [ - object, -- uuid(c2756385-bc54-417b-9ae4-c5a40053a2a3), -+ uuid(696b32a1-3cf1-4909-b501-474b25fc7954), - local - ] - interface nsIDocShell : nsIDocShellTreeItem -@@ -3800,6 +3817,8 @@ interface nsIDocShell : nsIDocShellTreeItem - nsresult SetAllowWindowControl(bool aAllowWindowControl); - nsresult GetAllowContentRetargeting(bool *aAllowContentRetargeting); - nsresult SetAllowContentRetargeting(bool aAllowContentRetargeting); -+ nsresult GetAllowContentRetargetingOnChildren(bool *aAllowContentRetargetingOnChildren); -+ nsresult SetAllowContentRetargetingOnChildren(bool aAllowContentRetargetingOnChildren); - nsresult GetDocShellEnumerator(int32_t aItemType, int32_t aDirection, nsISimpleEnumerator **_retval); - nsresult GetAppType(uint32_t *aAppType); - nsresult SetAppType(uint32_t aAppType); -@@ -3856,6 +3875,8 @@ interface nsIDocShell : nsIDocShellTreeItem - nsresult GetCanExecuteScripts(bool *aCanExecuteScripts); - nsresult GetIsActive(bool *aIsActive); - nsresult SetIsActive(bool aIsActive); -+ nsresult SetIsPrerendered(bool prerendered); -+ nsresult GetIsPrerendered(bool *aIsPrerendered); - nsresult GetHistoryID(uint64_t *aHistoryID); - nsresult GetIsAppTab(bool *aIsAppTab); - nsresult SetIsAppTab(bool aIsAppTab); -@@ -3925,13 +3946,15 @@ interface nsIDocShell : nsIDocShellTreeItem - nsresult SetDeviceSizeIsPageSize(bool aDeviceSizeIsPageSize); - void /* thiscall */ SetOpener(void /*nsITabParent*/ *aOpener); - void /* thiscall nsITabParent */ *GetOpener(); -- void /* thiscall */ SetOpenedRemote(void /*nsITabParent*/ *aOpenedRemote); -- void /* thiscall nsITabParent */ *GetOpenedRemote(); - void /*mozilla::dom::URLSearchParams */ *GetURLSearchParams(); -- void /* thiscall */ NotifyJSRunToCompletionStart(); -+ void /* thiscall */ NotifyJSRunToCompletionStart(const char *aReason, const char16_t *functionName, -+ const char16_t *fileName, uint32_t lineNumber); - void /* thiscall */ NotifyJSRunToCompletionStop(); - nsresult GetHasLoadedNonBlankURI(bool *aHasLoadedNonBlankURI); -- -+ nsresult GetPaymentRequestId(nsAString *aPaymentRequestId); -+ nsresult SetPaymentRequestId(const nsAString *aPaymentRequestId); -+ nsresult GetWindowDraggingAllowed(bool *aWindowDraggingAllowed); -+ nsresult SetWindowDraggingAllowed(bool aWindowDraggingAllowed); - } - - [ -@@ -4063,7 +4086,7 @@ interface nsIPluginInstance : nsISupports - - [ - object, -- uuid(e2538ded-13ef-4f4d-946b-65d333b4f03c), -+ uuid(11afa8be-d997-4e07-a6a3-6f872ec3ee7f), - local - ] - interface nsIGlobalObject : nsISupports -@@ -4072,7 +4095,7 @@ interface nsIGlobalObject : nsISupports - - [ - object, -- uuid(2e91e088-e9fa-4ba4-9887-2a0b7cf27a3e), -+ uuid(6f54214c-7175-498d-9d2d-0429e38c2869), - local - ] - interface nsIXMLHttpRequest : nsISupports -@@ -4090,7 +4113,6 @@ interface nsIXMLHttpRequest : nsISupports - nsresult GetResponseHeader(const nsACString *header, nsACString *_retval); - nsresult Open(const nsACString *method, const nsACString *url, bool async, const nsAString *user, const nsAString *password, uint8_t _argc); - nsresult Send(nsIVariant *body); -- nsresult SendAsBinary(const nsAString *body); - nsresult SetRequestHeader(const nsACString *header, const nsACString *value); - nsresult GetTimeout(uint32_t *aTimeout); - nsresult SetTimeout(uint32_t aTimeout); -@@ -4100,7 +4122,7 @@ interface nsIXMLHttpRequest : nsISupports - nsresult SetMozBackgroundRequest(bool aMozBackgroundRequest); - nsresult GetWithCredentials(bool *aWithCredentials); - nsresult SetWithCredentials(bool aWithCredentials); -- nsresult Init(nsIPrincipal *principal, nsIScriptContext *scriptContext, nsIGlobalObject *globalObject, nsIURI *baseURI); -+ nsresult Init(nsIPrincipal *principal, nsIScriptContext *scriptContext, nsIGlobalObject *globalObject, nsIURI *baseURI, nsILoadGroup *loadGroup); - nsresult GetUpload(nsIXMLHttpRequestUpload **aUpload); - nsresult GetOnreadystatechange(JSContext*cx, int /*JS::MutableHandleValue*/ aOnreadystatechange); - nsresult SetOnreadystatechange(JSContext*cx, int /*JS::HandleValue*/ aOnreadystatechange); -@@ -4110,7 +4132,7 @@ interface nsIXMLHttpRequest : nsISupports - - [ - object, -- uuid(f649959d-dae3-4027-83fd-5b7f8c8a8815), -+ uuid(ba602ca6-dc7a-457e-a57a-ee5b343fd863), - local - ] - interface nsIScriptSecurityManager : nsISupports { -@@ -4135,6 +4157,8 @@ interface nsIScriptSecurityManager : nsISupports { - nsresult GetJarPrefix(uint32_t appId, bool inMozBrowser, nsACString *_retval); - nsresult ActivateDomainPolicy(nsIDomainPolicy **_retval); - nsresult GetDomainPolicyActive(bool *aDomainPolicyActive); -+ nsresult ActivateDomainPolicyInternal(nsIDomainPolicy **_retval); -+ void CloneDomainPolicy(int /*mozilla::dom::DomainPolicyClone*/ *aClone); - nsresult PolicyAllowsScript(nsIURI *aDomain, bool *_retval); - } - -diff --git a/dlls/mshtml/nsio.c b/dlls/mshtml/nsio.c -index 9bced99..a661c4d 100644 ---- a/dlls/mshtml/nsio.c -+++ b/dlls/mshtml/nsio.c -@@ -1469,6 +1469,15 @@ static nsresult NSAPI nsChannel_IsNoCacheResponse(nsIHttpChannel *iface, cpp_boo - return NS_ERROR_NOT_IMPLEMENTED; - } - -+static nsresult NSAPI nsChannel_IsPrivateResponse(nsIHttpChannel *iface, cpp_bool *_retval) -+{ -+ nsChannel *This = impl_from_nsIHttpChannel(iface); -+ -+ FIXME("(%p)->(%p)\n", This, _retval); -+ -+ return NS_ERROR_NOT_IMPLEMENTED; -+} -+ - static nsresult NSAPI nsChannel_RedirectTo(nsIHttpChannel *iface, nsIURI *aNewURI) - { - nsChannel *This = impl_from_nsIHttpChannel(iface); -@@ -1538,6 +1547,7 @@ static const nsIHttpChannelVtbl nsChannelVtbl = { - nsChannel_VisitResponseHeaders, - nsChannel_IsNoStoreResponse, - nsChannel_IsNoCacheResponse, -+ nsChannel_IsPrivateResponse, - nsChannel_RedirectTo - }; - -@@ -1828,75 +1838,91 @@ static nsresult NSAPI nsHttpChannelInternal_SetAllowSpdy(nsIHttpChannelInternal - return NS_ERROR_NOT_IMPLEMENTED; - } - --static nsresult NSAPI nsHttpChannelInternal_GetLoadAsBlocking(nsIHttpChannelInternal *iface, cpp_bool *aLoadAsBlocking) -+static nsresult NSAPI nsHttpChannelInternal_GetResponseTimeoutEnabled(nsIHttpChannelInternal *iface, -+ cpp_bool *aResponseTimeoutEnabled) - { - nsChannel *This = impl_from_nsIHttpChannelInternal(iface); -- FIXME("(%p)->(%p)\n", This, aLoadAsBlocking); -+ FIXME("(%p)->(%p)\n", This, aResponseTimeoutEnabled); - return NS_ERROR_NOT_IMPLEMENTED; - } - --static nsresult NSAPI nsHttpChannelInternal_SetLoadAsBlocking(nsIHttpChannelInternal *iface, cpp_bool aLoadAsBlocking) -+static nsresult NSAPI nsHttpChannelInternal_SetResponseTimeoutEnabled(nsIHttpChannelInternal *iface, -+ cpp_bool aResponseTimeoutEnabled) - { - nsChannel *This = impl_from_nsIHttpChannelInternal(iface); -- FIXME("(%p)->(%x)\n", This, aLoadAsBlocking); -+ FIXME("(%p)->(%x)\n", This, aResponseTimeoutEnabled); - return NS_ERROR_NOT_IMPLEMENTED; - } - --static nsresult NSAPI nsHttpChannelInternal_GetLoadUnblocked(nsIHttpChannelInternal *iface, cpp_bool *aLoadUnblocked) -+static nsresult NSAPI nsHttpChannelInternal_GetApiRedirectToURI(nsIHttpChannelInternal *iface, nsIURI **aApiRedirectToURI) - { - nsChannel *This = impl_from_nsIHttpChannelInternal(iface); -- FIXME("(%p)->(%p)\n", This, aLoadUnblocked); -+ FIXME("(%p)->(%p)\n", This, aApiRedirectToURI); - return NS_ERROR_NOT_IMPLEMENTED; - } - --static nsresult NSAPI nsHttpChannelInternal_SetLoadUnblocked(nsIHttpChannelInternal *iface, cpp_bool aLoadUnblocked) -+static nsresult NSAPI nsHttpChannelInternal_GetAllowAltSvc(nsIHttpChannelInternal *iface, cpp_bool *aAllowAltSvc) - { - nsChannel *This = impl_from_nsIHttpChannelInternal(iface); -- FIXME("(%p)->(%x)\n", This, aLoadUnblocked); -+ FIXME("(%p)->(%p)\n", This, aAllowAltSvc); - return NS_ERROR_NOT_IMPLEMENTED; - } - --static nsresult NSAPI nsHttpChannelInternal_GetResponseTimeoutEnabled(nsIHttpChannelInternal *iface, -- cpp_bool *aResponseTimeoutEnabled) -+static nsresult NSAPI nsHttpChannelInternal_SetAllowAltSvc(nsIHttpChannelInternal *iface, cpp_bool aAllowAltSvc) - { - nsChannel *This = impl_from_nsIHttpChannelInternal(iface); -- FIXME("(%p)->(%p)\n", This, aResponseTimeoutEnabled); -+ FIXME("(%p)->(%x)\n", This, aAllowAltSvc); - return NS_ERROR_NOT_IMPLEMENTED; - } - --static nsresult NSAPI nsHttpChannelInternal_SetResponseTimeoutEnabled(nsIHttpChannelInternal *iface, -- cpp_bool aResponseTimeoutEnabled) -+static nsresult NSAPI nsHttpChannelInternal_AddRedirect(nsIHttpChannelInternal *iface, nsIPrincipal *aPrincipal) - { - nsChannel *This = impl_from_nsIHttpChannelInternal(iface); -- FIXME("(%p)->(%x)\n", This, aResponseTimeoutEnabled); -+ FIXME("(%p)->(%p)\n", This, aPrincipal); - return NS_ERROR_NOT_IMPLEMENTED; - } - --static nsresult NSAPI nsHttpChannelInternal_GetApiRedirectToURI(nsIHttpChannelInternal *iface, nsIURI **aApiRedirectToURI) -+static nsresult NSAPI nsHttpChannelInternal_GetLastModifiedTime(nsIHttpChannelInternal *iface, PRTime *aLastModifiedTime) - { - nsChannel *This = impl_from_nsIHttpChannelInternal(iface); -- FIXME("(%p)->(%p)\n", This, aApiRedirectToURI); -+ FIXME("(%p)->(%p)\n", This, aLastModifiedTime); - return NS_ERROR_NOT_IMPLEMENTED; - } - --static nsresult NSAPI nsHttpChannelInternal_AddRedirect(nsIHttpChannelInternal *iface, nsIPrincipal *aPrincipal) -+static nsresult NSAPI nsHttpChannelInternal_ForceNoIntercept(nsIHttpChannelInternal *iface) - { - nsChannel *This = impl_from_nsIHttpChannelInternal(iface); -- FIXME("(%p)->(%p)\n", This, aPrincipal); -+ FIXME("(%p)\n", This); - return NS_ERROR_NOT_IMPLEMENTED; - } - --static nsresult NSAPI nsHttpChannelInternal_GetLastModifiedTime(nsIHttpChannelInternal *iface, PRTime *aLastModifiedTime) -+static nsresult NSAPI nsHttpChannelInternal_GetCorsIncludeCredentials(nsIHttpChannelInternal *iface, -+ cpp_bool *aCorsIncludeCredentials) - { - nsChannel *This = impl_from_nsIHttpChannelInternal(iface); -- FIXME("(%p)->(%p)\n", This, aLastModifiedTime); -+ FIXME("(%p)->(%p)\n", This, aCorsIncludeCredentials); - return NS_ERROR_NOT_IMPLEMENTED; - } - --static nsresult NSAPI nsHttpChannelInternal_ForceNoIntercept(nsIHttpChannelInternal *iface) -+static nsresult NSAPI nsHttpChannelInternal_SetCorsIncludeCredentials(nsIHttpChannelInternal *iface, -+ cpp_bool aCorsIncludeCredentials) - { - nsChannel *This = impl_from_nsIHttpChannelInternal(iface); -- FIXME("(%p)\n", This); -+ FIXME("(%p)->(%x)\n", This, aCorsIncludeCredentials); -+ return NS_ERROR_NOT_IMPLEMENTED; -+} -+ -+static nsresult NSAPI nsHttpChannelInternal_GetCorsMode(nsIHttpChannelInternal *iface, UINT32 *aCorsMode) -+{ -+ nsChannel *This = impl_from_nsIHttpChannelInternal(iface); -+ FIXME("(%p)->(%p)\n", This, aCorsMode); -+ return NS_ERROR_NOT_IMPLEMENTED; -+} -+ -+static nsresult NSAPI nsHttpChannelInternal_SetCorsMode(nsIHttpChannelInternal *iface, UINT32 aCorsMode) -+{ -+ nsChannel *This = impl_from_nsIHttpChannelInternal(iface); -+ FIXME("(%p)->(%d)\n", This, aCorsMode); - return NS_ERROR_NOT_IMPLEMENTED; - } - -@@ -1907,6 +1933,36 @@ static nsresult NSAPI nsHttpChannelInternal_GetTopWindowURI(nsIHttpChannelIntern - return NS_ERROR_NOT_IMPLEMENTED; - } - -+static nsresult NSAPI nsHttpChannelInternal_GetNetworkInterfaceId(nsIHttpChannelInternal *iface, -+ nsACString *aNetworkInterfaceId) -+{ -+ nsChannel *This = impl_from_nsIHttpChannelInternal(iface); -+ FIXME("(%p)->(%p)\n", This, aNetworkInterfaceId); -+ return NS_ERROR_NOT_IMPLEMENTED; -+} -+ -+static nsresult NSAPI nsHttpChannelInternal_SetNetworkInterfaceId(nsIHttpChannelInternal *iface, -+ const nsACString *aNetworkInterfaceId) -+{ -+ nsChannel *This = impl_from_nsIHttpChannelInternal(iface); -+ FIXME("(%p)->(%s)\n", This, debugstr_nsacstr(aNetworkInterfaceId)); -+ return NS_ERROR_NOT_IMPLEMENTED; -+} -+ -+static nsresult NSAPI nsHttpChannelInternal_ContinueBeginConnect(nsIHttpChannelInternal *iface) -+{ -+ nsChannel *This = impl_from_nsIHttpChannelInternal(iface); -+ FIXME("(%p)\n", This); -+ return NS_ERROR_NOT_IMPLEMENTED; -+} -+ -+static nsresult NSAPI nsHttpChannelInternal_GetProxyURI(nsIHttpChannelInternal *iface, nsIURI **aProxyURI) -+{ -+ nsChannel *This = impl_from_nsIHttpChannelInternal(iface); -+ FIXME("(%p)->(%p)\n", This, aProxyURI); -+ return NS_ERROR_NOT_IMPLEMENTED; -+} -+ - static const nsIHttpChannelInternalVtbl nsHttpChannelInternalVtbl = { - nsHttpChannelInternal_QueryInterface, - nsHttpChannelInternal_AddRef, -@@ -1931,17 +1987,23 @@ static const nsIHttpChannelInternalVtbl nsHttpChannelInternalVtbl = { - nsHttpChannelInternal_HTTPUpgrade, - nsHttpChannelInternal_GetAllowSpdy, - nsHttpChannelInternal_SetAllowSpdy, -- nsHttpChannelInternal_GetLoadAsBlocking, -- nsHttpChannelInternal_SetLoadAsBlocking, -- nsHttpChannelInternal_GetLoadUnblocked, -- nsHttpChannelInternal_SetLoadUnblocked, - nsHttpChannelInternal_GetResponseTimeoutEnabled, - nsHttpChannelInternal_SetResponseTimeoutEnabled, - nsHttpChannelInternal_GetApiRedirectToURI, -+ nsHttpChannelInternal_GetAllowAltSvc, -+ nsHttpChannelInternal_SetAllowAltSvc, - nsHttpChannelInternal_AddRedirect, - nsHttpChannelInternal_GetLastModifiedTime, - nsHttpChannelInternal_ForceNoIntercept, -- nsHttpChannelInternal_GetTopWindowURI -+ nsHttpChannelInternal_GetCorsIncludeCredentials, -+ nsHttpChannelInternal_SetCorsIncludeCredentials, -+ nsHttpChannelInternal_GetCorsMode, -+ nsHttpChannelInternal_SetCorsMode, -+ nsHttpChannelInternal_GetTopWindowURI, -+ nsHttpChannelInternal_GetNetworkInterfaceId, -+ nsHttpChannelInternal_SetNetworkInterfaceId, -+ nsHttpChannelInternal_ContinueBeginConnect, -+ nsHttpChannelInternal_GetProxyURI - }; - - -@@ -3581,7 +3643,7 @@ static nsresult NSAPI nsIOService_NewFileURI(nsIIOService *iface, nsIFile *aFile - return nsIIOService_NewFileURI(nsio, aFile, _retval); - } - --static nsresult new_channel_from_uri(nsIURI *uri, nsIChannel **_retval) -+static nsresult new_channel_from_uri(nsIURI *uri, nsILoadInfo *load_info, nsIChannel **_retval) - { - nsWineURI *wine_uri; - nsChannel *ret; -@@ -3601,6 +3663,9 @@ static nsresult new_channel_from_uri(nsIURI *uri, nsIChannel **_retval) - nsIURI_AddRef(uri); - ret->original_uri = uri; - -+ if(load_info) -+ nsIHttpChannel_SetLoadInfo(&ret->nsIHttpChannel_iface, load_info); -+ - *_retval = (nsIChannel*)&ret->nsIHttpChannel_iface; - return NS_OK; - } -@@ -3609,16 +3674,36 @@ static nsresult NSAPI nsIOService_NewChannelFromURI2(nsIIOService *iface, nsIURI - nsIDOMNode *aLoadingNode, nsIPrincipal *aLoadingPrincipal, nsIPrincipal *aTriggeringPrincipal, - UINT32 aSecurityFlags, UINT32 aContentPolicyType, nsIChannel **_retval) - { -- FIXME("(%p %p %p %p %x %d %p) semi-stub\n", aURI, aLoadingNode, aLoadingPrincipal, aTriggeringPrincipal, -+ nsILoadInfo *load_info = NULL; -+ nsresult nsres; -+ -+ TRACE("(%p %p %p %p %x %d %p)\n", aURI, aLoadingNode, aLoadingPrincipal, aTriggeringPrincipal, - aSecurityFlags, aContentPolicyType, _retval); -- return new_channel_from_uri(aURI, _retval); -+ -+ if(aLoadingNode || aLoadingPrincipal) { -+ nsres = nsIIOService_NewLoadInfo(nsio, aLoadingPrincipal, aTriggeringPrincipal, aLoadingNode, -+ aSecurityFlags, aContentPolicyType, &load_info); -+ assert(nsres == NS_OK); -+ } -+ -+ nsres = new_channel_from_uri(aURI, load_info, _retval); -+ if(load_info) -+ nsISupports_Release(load_info); -+ return nsres; -+} -+ -+static nsresult NSAPI nsIOService_NewChannelFromURIWithLoadInfo(nsIIOService *iface, nsIURI *aURI, -+ nsILoadInfo *aLoadInfo, nsIChannel **_retval) -+{ -+ TRACE("(%p %p %p)\n", aURI, aLoadInfo, _retval); -+ return new_channel_from_uri(aURI, aLoadInfo, _retval); - } - - static nsresult NSAPI nsIOService_NewChannelFromURI(nsIIOService *iface, nsIURI *aURI, - nsIChannel **_retval) - { - TRACE("(%p %p)\n", aURI, _retval); -- return new_channel_from_uri(aURI, _retval); -+ return new_channel_from_uri(aURI, NULL, _retval); - } - - static nsresult NSAPI nsIOService_NewChannel2(nsIIOService *iface, const nsACString *aSpec, -@@ -3650,6 +3735,12 @@ static nsresult NSAPI nsIOService_SetOffline(nsIIOService *iface, cpp_bool aOffl - return nsIIOService_SetOffline(nsio, aOffline); - } - -+static nsresult NSAPI nsIOService_GetConnectivity(nsIIOService *iface, cpp_bool *aConnectivity) -+{ -+ TRACE("(%p)\n", aConnectivity); -+ return nsIIOService_GetConnectivity(nsio, aConnectivity); -+} -+ - static nsresult NSAPI nsIOService_SetAppOffline(nsIIOService *iface, UINT32 appId, INT32 state) - { - TRACE("(%d %x)\n", appId, state); -@@ -3691,11 +3782,13 @@ static const nsIIOServiceVtbl nsIOServiceVtbl = { - nsIOService_NewURI, - nsIOService_NewFileURI, - nsIOService_NewChannelFromURI2, -+ nsIOService_NewChannelFromURIWithLoadInfo, - nsIOService_NewChannelFromURI, - nsIOService_NewChannel2, - nsIOService_NewChannel, - nsIOService_GetOffline, - nsIOService_SetOffline, -+ nsIOService_GetConnectivity, - nsIOService_SetAppOffline, - nsIOService_IsAppOffline, - nsIOService_GetAppOfflineState, --- -1.9.1 - From 426e70cc47482352bb22de8fa1b8f141c7361752 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 8 Sep 2015 23:06:44 -0500 Subject: [PATCH 352/715] Update to 1.7.51 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 48 +++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 53 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index f306e79..fc3c17f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.7.50.tar.bz2 -/wine-1.7.50.tar.bz2.sign -/wine-staging-1.7.50.tar.gz +/wine-1.7.51.tar.bz2 +/wine-1.7.51.tar.bz2.sign +/wine-staging-1.7.51.tar.gz diff --git a/sources b/sources index 18935ce..3feeae9 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -c8b30bf13c3d418688fd6fa1321edb8a wine-1.7.50.tar.bz2 -e5fbff1f79483b3ec55cf1b4d545eb45 wine-1.7.50.tar.bz2.sign -09bb58240bdf89481a7b27992896685b wine-staging-1.7.50.tar.gz +0bd3707316cd404da6c48c30e07fafb5 wine-1.7.51.tar.bz2 +1f64d173383dabc163b8f3f2ae3d5fe8 wine-1.7.51.tar.bz2.sign +80c3fc0c262b380784990be18a91f260 wine-staging-1.7.51.tar.gz diff --git a/wine.spec b/wine.spec index b6b3f13..898f1aa 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ %endif Name: wine -Version: 1.7.50 +Version: 1.7.51 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -392,6 +392,9 @@ Requires: wine-system-fonts = %{version}-%{release} Requires: wine-marlett-fonts = %{version}-%{release} Requires: wine-ms-sans-serif-fonts = %{version}-%{release} Requires: wine-tahoma-fonts = %{version}-%{release} +%if 0%{?compholio} +Requires: wine-times-new-roman-fonts = %{version}-%{release} +%endif Requires: wine-symbol-fonts = %{version}-%{release} Requires: wine-wingdings-fonts = %{version}-%{release} # intermediate fix for #593140 @@ -493,6 +496,29 @@ Requires: wine-tahoma-fonts = %{version}-%{release} %description tahoma-fonts-system %{summary} +%if 0%{?compholio} +%package times-new-roman-fonts +Summary: Wine Times New Roman font family +Group: User Interface/X +BuildArch: noarch +Requires: wine-filesystem = %{version}-%{release} + +%description times-new-roman-fonts +%{summary} +Please note: If you want system integration for wine times new roman fonts install the +wine-times-new-roman-fonts-system package. + +%package times-new-roman-fonts-system +Summary: Wine Times New Roman font family system integration +Group: User Interface/X +BuildArch: noarch +Requires: fontpackages-filesystem +Requires: wine-times-new-roman-fonts = %{version}-%{release} + +%description times-new-roman-fonts-system +%{summary} +%endif + %package symbol-fonts Summary: Wine Symbol font family Group: User Interface/X @@ -874,6 +900,14 @@ install -p -m 0644 %{SOURCE501} %{buildroot}%{_fontconfig_templatedir}/20-wine-t ln -s %{_fontconfig_templatedir}/20-wine-tahoma-nobitmaps.conf \ %{buildroot}%{_fontconfig_confdir}/20-wine-tahoma-nobitmaps.conf +%if 0%{?compholio} +# install Times New Roman font for system package +install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-times-new-roman-fonts +pushd %{buildroot}/%{_datadir}/fonts/wine-times-new-roman-fonts +ln -s ../../wine/fonts/times.ttf times.ttf +popd +%endif + # install Wingdings font for system package install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-wingdings-fonts pushd %{buildroot}/%{_datadir}/fonts/wine-wingdings-fonts @@ -1801,6 +1835,15 @@ fi %{_fontconfig_confdir}/20-wine-tahoma*conf %{_fontconfig_templatedir}/20-wine-tahoma*conf +%if 0%{?compholio} +%files times-new-roman-fonts +%doc COPYING.LIB +%{_datadir}/wine/fonts/times.ttf + +%files times-new-roman-fonts-system +%{_datadir}/fonts/wine-times-new-roman-fonts +%endif + %files symbol-fonts %doc COPYING.LIB %{_datadir}/wine/fonts/symbol.ttf @@ -1902,6 +1945,9 @@ fi %{_libdir}/wine/opencl.dll.so %changelog +* Tue Sep 08 2015 Michael Cronenworth 1.7.51-1 +- version upgrade + * Mon Aug 24 2015 Michael Cronenworth 1.7.50-1 - version upgrade From d3ceb07d7540c0ef40c03b4af8e8afcdaa830d9b Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 3 Oct 2015 19:18:21 -0500 Subject: [PATCH 353/715] Update to 1.7.52 --- wine.spec | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/wine.spec b/wine.spec index 898f1aa..a966dc4 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ %endif Name: wine -Version: 1.7.51 +Version: 1.7.52 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1054,6 +1054,9 @@ fi %doc VERSION # do not include huge changelogs .OLD .ALPHA .BETA (#204302) %doc documentation/README.* +%if 0%{?compholio} +%{_bindir}/msidb +%endif %{_bindir}/winedump %{_libdir}/wine/explorer.exe.so %{_libdir}/wine/cabarc.exe.so @@ -1107,6 +1110,7 @@ fi %{_libdir}/wine/conhost.exe.so %{_libdir}/wine/cscript.exe.so %{_libdir}/wine/dpnsvr.exe.so +%{_libdir}/wine/eject.exe.so %{_libdir}/wine/expand.exe.so %{_libdir}/wine/extrac32.exe.so %{_libdir}/wine/findstr.exe.so @@ -1114,6 +1118,9 @@ fi %{_libdir}/wine/ipconfig.exe.so %{_libdir}/wine/winhlp32.exe.so %{_libdir}/wine/mshta.exe.so +%if 0%{?compholio} +%{_libdir}/wine/msidb.exe.so +%endif %{_libdir}/wine/msiexec.exe.so %{_libdir}/wine/net.exe.so %{_libdir}/wine/netstat.exe.so @@ -1334,7 +1341,7 @@ fi %{_libdir}/wine/dxdiagn.dll.so %{_libdir}/wine/dxgi.dll.so %{_libdir}/wine/dxva2.dll.so -%{_libdir}/wine/eject.exe.so +%{_libdir}/wine/esent.dll.so %{_libdir}/wine/evr.dll.so %{_libdir}/wine/explorerframe.dll.so %{_libdir}/wine/ext-ms-win-gdi-devcaps-l1-1-0.dll.so @@ -1417,6 +1424,7 @@ fi %{_libdir}/wine/msctf.dll.so %{_libdir}/wine/msctfp.dll.so %{_libdir}/wine/msdaps.dll.so +%{_libdir}/wine/msdelta.dll.so %{_libdir}/wine/msdmo.dll.so %{_libdir}/wine/msftedit.dll.so %{_libdir}/wine/msg711.acm.so @@ -1945,6 +1953,9 @@ fi %{_libdir}/wine/opencl.dll.so %changelog +* Sat Oct 03 2015 Michael Cronenworth 1.7.52-1 +- version upgrade + * Tue Sep 08 2015 Michael Cronenworth 1.7.51-1 - version upgrade From e47529cef15c288250a97527be745ed5102288f1 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 3 Oct 2015 19:22:28 -0500 Subject: [PATCH 354/715] Update sources to 1.7.52 --- .gitignore | 6 +++--- sources | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index fc3c17f..c1d32a4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.7.51.tar.bz2 -/wine-1.7.51.tar.bz2.sign -/wine-staging-1.7.51.tar.gz +/wine-1.7.52.tar.bz2 +/wine-1.7.52.tar.bz2.sign +/wine-staging-1.7.52.tar.gz diff --git a/sources b/sources index 3feeae9..3e87c5f 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -0bd3707316cd404da6c48c30e07fafb5 wine-1.7.51.tar.bz2 -1f64d173383dabc163b8f3f2ae3d5fe8 wine-1.7.51.tar.bz2.sign -80c3fc0c262b380784990be18a91f260 wine-staging-1.7.51.tar.gz +70ecd94e17394446ed28ee21282e3e4c wine-1.7.52.tar.bz2 +81ef48846d2e5859695259db9f37b9b3 wine-1.7.52.tar.bz2.sign +4418842dafac05d23e666e7695b2bf05 wine-staging-1.7.52.tar.gz From 857631cb48270e5aff089e0ea31a83fef563ff9e Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 21 Oct 2015 10:30:52 -0500 Subject: [PATCH 355/715] Update to 1.7.53 --- .gitignore | 6 +-- sources | 6 +-- wine-relocate-base.patch | 97 +++++++++++++++++++++++++++++----------- wine.spec | 15 ++++++- 4 files changed, 90 insertions(+), 34 deletions(-) diff --git a/.gitignore b/.gitignore index c1d32a4..141c04d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.7.52.tar.bz2 -/wine-1.7.52.tar.bz2.sign -/wine-staging-1.7.52.tar.gz +/wine-1.7.53.tar.bz2 +/wine-1.7.53.tar.bz2.sign +/wine-staging-1.7.53.tar.gz diff --git a/sources b/sources index 3e87c5f..841767b 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -70ecd94e17394446ed28ee21282e3e4c wine-1.7.52.tar.bz2 -81ef48846d2e5859695259db9f37b9b3 wine-1.7.52.tar.bz2.sign -4418842dafac05d23e666e7695b2bf05 wine-staging-1.7.52.tar.gz +199c4adc4f294bdbec51f919b34a3798 wine-1.7.53.tar.bz2 +a6e2984178a89fb7c48acd7125b74171 wine-1.7.53.tar.bz2.sign +62df4e7b3d01040e242ba68bf3a28917 wine-staging-1.7.53.tar.gz diff --git a/wine-relocate-base.patch b/wine-relocate-base.patch index 4a7d497..f744f9a 100644 --- a/wine-relocate-base.patch +++ b/wine-relocate-base.patch @@ -1,43 +1,86 @@ ---- a/configure.ac.orig 2015-08-13 14:05:20.603210791 -0500 -+++ b/configure.ac 2015-08-14 09:20:46.380372331 -0500 -@@ -1021,6 +1021,9 @@ +From 509a781e793cc6d15d74e1ffc5fc8d4a3c31026a Mon Sep 17 00:00:00 2001 +From: Michael Cronenworth +Date: Wed, 21 Oct 2015 10:26:40 -0500 +Subject: [PATCH] winegcc: Check for linker relocation support before relying + on prelink + +Prelink was used to rewrite binares and set their text segment, but +modern linkers support setting the value at link time. Prelink is +being retired by upstream. + +Signed-off-by: Michael Cronenworth +--- + configure.ac | 11 ++++++++--- + tools/winegcc/winegcc.c | 12 ++++++++++-- + 2 files changed, 18 insertions(+), 5 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 5ab2d69..a30b552 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -988,10 +988,15 @@ wine-installed: main.o *) LDEXECFLAGS="$LDEXECFLAGS -Wl,--section-start,.interp=0x7bf00400" ;; esac ]) +- AC_PATH_PROG(PRELINK, prelink, false, [/sbin /usr/sbin $PATH]) +- if test "x$PRELINK" = xfalse + WINE_TRY_CFLAGS([-Wl,-Ttext-segment=0x7bc00000], -+ [AC_DEFINE([HAVE_TTEXT_SEGMENT],[1],[Define if -+linker supports -Ttext-segment.])]) - AC_PATH_PROG(PRELINK, prelink, false, [/sbin /usr/sbin $PATH]) - if test "x$PRELINK" = xfalse ++ [HAVE_TTEXT_SEGMENT="yes"]) ++ if test "x$HAVE_TTEXT_SEGMENT" != "xyes" then ---- a/tools/winegcc/winegcc.c.orig 2015-08-14 09:26:57.802873676 -0500 -+++ b/tools/winegcc/winegcc.c 2015-08-14 09:25:17.290194637 -0500 -@@ -1134,6 +1134,12 @@ +- WINE_WARNING([prelink not found, base address of core dlls won't be set correctly.]) ++ AC_PATH_PROG(PRELINK, prelink, false, [/sbin /usr/sbin $PATH]) ++ if test "x$PRELINK" = xfalse ++ then ++ WINE_WARNING([prelink not found and linker does not support relocation, base address of core dlls won't be set correctly.]) ++ fi + fi + ;; + esac +diff --git a/tools/winegcc/winegcc.c b/tools/winegcc/winegcc.c +index 3b2794e..fa62c34 100644 +--- a/tools/winegcc/winegcc.c ++++ b/tools/winegcc/winegcc.c +@@ -778,6 +778,7 @@ static void build(struct options* opts) + const char *output_name, *spec_file, *lang; + int generate_app_loader = 1; + int fake_module = 0; ++ int text_segment = 0; + unsigned int j; + + /* NOTE: for the files array we'll use the following convention: +@@ -1112,6 +1113,11 @@ static void build(struct options* opts) + for ( j = 0 ; j < opts->linker_args->size ; j++ ) + strarray_add(link_args, opts->linker_args->base[j]); + ++ /* check linker support for setting text base address */ ++ if (opts->image_base && ++ !try_link(opts->prefix, link_args, strmake("-Wl,-Ttext-segment=%s", opts->image_base))) ++ text_segment = 1; ++ + switch (opts->target_platform) + { + case PLATFORM_APPLE: +@@ -1134,6 +1140,8 @@ static void build(struct options* opts) } break; default: -+#ifdef HAVE_TTEXT_SEGMENT -+ if (opts->image_base) -+ { ++ if (text_segment) + strarray_add(link_args, strmake("-Wl,-Ttext-segment=%s", opts->image_base)); -+ } -+#endif break; } -@@ -1167,6 +1173,7 @@ +@@ -1167,8 +1175,8 @@ static void build(struct options* opts) spawn(opts->prefix, link_args, 0); strarray_free (link_args); -+#ifndef HAVE_TTEXT_SEGMENT - /* set the base address */ - if (opts->image_base && !opts->target) +- /* set the base address */ +- if (opts->image_base && !opts->target) ++ /* set the base address with prelink if linker support is not present */ ++ if (opts->image_base && !opts->target && !text_segment) { -@@ -1182,6 +1189,7 @@ - strarray_free(prelink_args); - } - } -+#endif - - /* create the loader script */ - if (generate_app_loader) + const char *prelink = PRELINK; + if (prelink[0] && strcmp(prelink,"false")) +-- +2.4.3 + diff --git a/wine.spec b/wine.spec index a966dc4..a0752c9 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ %endif Name: wine -Version: 1.7.52 +Version: 1.7.53 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1590,6 +1590,7 @@ fi %{_libdir}/wine/vcomp90.dll.so %{_libdir}/wine/vcomp100.dll.so %{_libdir}/wine/vcomp110.dll.so +%{_libdir}/wine/vcomp120.dll.so %{_libdir}/wine/vcruntime140.dll.so %{_libdir}/wine/vdmdbg.dll.so %{_libdir}/wine/version.dll.so @@ -1643,6 +1644,7 @@ fi %{_libdir}/wine/wined3d.dll.so %{_libdir}/wine/dnsapi.dll.so %{_libdir}/wine/iexplore.exe.so +%{_libdir}/wine/x3daudio1_0.dll.so %{_libdir}/wine/x3daudio1_1.dll.so %{_libdir}/wine/x3daudio1_2.dll.so %{_libdir}/wine/x3daudio1_3.dll.so @@ -1651,9 +1653,17 @@ fi %{_libdir}/wine/x3daudio1_6.dll.so %{_libdir}/wine/x3daudio1_7.dll.so %{_libdir}/wine/xapofx1_1.dll.so +%{_libdir}/wine/xapofx1_2.dll.so %{_libdir}/wine/xapofx1_3.dll.so %{_libdir}/wine/xapofx1_4.dll.so %{_libdir}/wine/xapofx1_5.dll.so +%{_libdir}/wine/xaudio2_0.dll.so +%{_libdir}/wine/xaudio2_1.dll.so +%{_libdir}/wine/xaudio2_2.dll.so +%{_libdir}/wine/xaudio2_3.dll.so +%{_libdir}/wine/xaudio2_4.dll.so +%{_libdir}/wine/xaudio2_5.dll.so +%{_libdir}/wine/xaudio2_6.dll.so %{_libdir}/wine/xaudio2_7.dll.so %{_libdir}/wine/xaudio2_8.dll.so %{_libdir}/wine/xcopy.exe.so @@ -1953,6 +1963,9 @@ fi %{_libdir}/wine/opencl.dll.so %changelog +* Wed Oct 21 2015 Michael Cronenworth 1.7.53-1 +- version upgrade + * Sat Oct 03 2015 Michael Cronenworth 1.7.52-1 - version upgrade From 090baee6d8daf5ef122377c1104791b63f6a5fa4 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 21 Oct 2015 16:50:24 -0500 Subject: [PATCH 356/715] EPEL fixes --- wine.spec | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/wine.spec b/wine.spec index a0752c9..69a62ce 100644 --- a/wine.spec +++ b/wine.spec @@ -73,11 +73,9 @@ Patch512: wine-gcc5.patch # prelink has been retired, use linker method of base address relocation Patch513: wine-relocate-base.patch -# wine compholio patches for pipelight. +# wine compholio patches for wine-staging # pulseaudio-patch is covered by that patch-set, too. -%if 0%{?compholio} Source900: https://github.com/compholio/wine-compholio/archive/v%{version}.tar.gz#/wine-staging-%{version}.tar.gz -%endif %if !%{?no64bit} ExclusiveArch: %{ix86} x86_64 %{arm} @@ -103,8 +101,10 @@ BuildRequires: libusb-devel BuildRequires: libxml2-devel BuildRequires: libxslt-devel BuildRequires: ncurses-devel +%if 0%{?fedora} BuildRequires: ocl-icd-devel BuildRequires: opencl-headers +%endif BuildRequires: openldap-devel BuildRequires: unixODBC-devel BuildRequires: sane-backends-devel @@ -169,7 +169,9 @@ Requires: wine-pulseaudio(x86-32) = %{version}-%{release} %if 0%{?fedora} >= 10 || 0%{?rhel} == 6 Requires: wine-openal(x86-32) = %{version}-%{release} %endif +%if 0%{?fedora} Requires: wine-opencl(x86-32) = %{version}-%{release} +%endif %if 0%{?fedora} >= 17 Requires: mingw32-wine-gecko = %winegecko Requires: wine-mono = %winemono @@ -190,8 +192,10 @@ Requires: wine-twain(x86-64) = %{version}-%{release} Requires: wine-pulseaudio(x86-64) = %{version}-%{release} %if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 Requires: wine-openal(x86-64) = %{version}-%{release} -%endif +%endif +%if 0%{?fedora} Requires: wine-opencl(x86-64) = %{version}-%{release} +%endif %if 0%{?fedora} >= 17 Requires: mingw64-wine-gecko = %winegecko Requires: wine-mono = %winemono @@ -208,7 +212,9 @@ Requires: wine-ldap = %{version}-%{release} Requires: wine-twain = %{version}-%{release} Requires: wine-pulseaudio = %{version}-%{release} Requires: wine-openal = %{version}-%{release} +%if 0%{?fedora} Requires: wine-opencl = %{version}-%{release} +%endif Requires: mesa-dri-drivers Requires: samba-winbind-clients %endif @@ -641,12 +647,14 @@ Requires: wine-core = %{version}-%{release} This package adds an openal driver for wine. %endif +%if 0%{?fedora} %package opencl Summary: OpenCL support for wine Requires: wine-core = %{version}-%{release} %Description opencl This package adds the opencl driver for wine. +%endif %prep %setup -q @@ -659,8 +667,8 @@ This package adds the opencl driver for wine. # setup and apply compholio-patches or pulseaudio-patch. # since the pulse patch is included in the compholio patches use it from # there -%if 0%{?compholio} gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 +%if 0%{?compholio} %{__make} -C patches DESTDIR="`pwd`" install @@ -674,6 +682,8 @@ echo $p patch -p1 < $p done +rm -rf patches/ + # already run after applying compholio-patchset autoreconf %endif # 0%{?compholio} @@ -1347,9 +1357,7 @@ fi %{_libdir}/wine/ext-ms-win-gdi-devcaps-l1-1-0.dll.so %{_libdir}/wine/faultrep.dll.so %{_libdir}/wine/fltlib.dll.so -%if 0%{?compholio} %{_libdir}/wine/fltmgr.sys.so -%endif %{_libdir}/wine/fntcache.dll.so %{_libdir}/wine/fontsub.dll.so %{_libdir}/wine/fusion.dll.so @@ -1591,7 +1599,9 @@ fi %{_libdir}/wine/vcomp100.dll.so %{_libdir}/wine/vcomp110.dll.so %{_libdir}/wine/vcomp120.dll.so +%if 0%{?compholio} %{_libdir}/wine/vcruntime140.dll.so +%endif %{_libdir}/wine/vdmdbg.dll.so %{_libdir}/wine/version.dll.so %{_libdir}/wine/vssapi.dll.so @@ -1959,8 +1969,10 @@ fi %{_libdir}/wine/openal32.dll.so %endif +%if 0%{?fedora} %files opencl %{_libdir}/wine/opencl.dll.so +%endif %changelog * Wed Oct 21 2015 Michael Cronenworth 1.7.53-1 From 7f38989b25963c51ba54f76c5b9d5bae2d403441 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 4 Nov 2015 23:45:19 -0600 Subject: [PATCH 357/715] Update to 1.7.54 --- .gitignore | 6 +- sources | 6 +- wine-revert-makefiles-staging.patch | 44 ++++ wine-revert-makefiles.patch | 349 ++++++++++++++++++++++++++++ wine.spec | 14 +- 5 files changed, 409 insertions(+), 10 deletions(-) create mode 100644 wine-revert-makefiles-staging.patch create mode 100644 wine-revert-makefiles.patch diff --git a/.gitignore b/.gitignore index 141c04d..48313e7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.7.53.tar.bz2 -/wine-1.7.53.tar.bz2.sign -/wine-staging-1.7.53.tar.gz +/wine-1.7.54.tar.bz2 +/wine-1.7.54.tar.bz2.sign +/wine-staging-1.7.54.tar.gz diff --git a/sources b/sources index 841767b..0e6ffb1 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -199c4adc4f294bdbec51f919b34a3798 wine-1.7.53.tar.bz2 -a6e2984178a89fb7c48acd7125b74171 wine-1.7.53.tar.bz2.sign -62df4e7b3d01040e242ba68bf3a28917 wine-staging-1.7.53.tar.gz +155bbbed0465e8d56d5e6cb14a51fb6e wine-1.7.54.tar.bz2 +ebd8c72d14f7d2e71959b49689e0d407 wine-1.7.54.tar.bz2.sign +a33b2975dca2468dd83b84bb844d666d wine-staging-1.7.54.tar.gz diff --git a/wine-revert-makefiles-staging.patch b/wine-revert-makefiles-staging.patch new file mode 100644 index 0000000..d329e5f --- /dev/null +++ b/wine-revert-makefiles-staging.patch @@ -0,0 +1,44 @@ +--- a/patches/patchinstall.sh 2015-10-31 18:16:04.000000000 -0500 ++++ b/patches/patchinstall.sh 2015-11-04 23:26:11.214562133 -0600 +@@ -2371,12 +2371,12 @@ + # | Modified files: + # | * configure.ac + # | +-if test "$enable_configure_Absolute_RPATH" -eq 1; then +- patch_apply configure-Absolute_RPATH/0001-configure-Also-add-the-absolute-RPATH-when-linking-a.patch +- ( +- echo '+ { "Sebastian Lackner", "configure: Also add the absolute RPATH when linking against libwine.", 1 },'; +- ) >> "$patchlist" +-fi ++#if test "$enable_configure_Absolute_RPATH" -eq 1; then ++# patch_apply configure-Absolute_RPATH/0001-configure-Also-add-the-absolute-RPATH-when-linking-a.patch ++# ( ++# echo '+ { "Sebastian Lackner", "configure: Also add the absolute RPATH when linking against libwine.", 1 },'; ++# ) >> "$patchlist" ++#fi + + # Patchset crypt32-CMS_Certificates + # | +@@ -4477,14 +4477,14 @@ + # | dlls/ntoskrnl.exe/tests/driver.sys/util.h, dlls/ntoskrnl.exe/tests/ntoskrnl.c, include/wine/test.h, + # | tools/make_makefiles, tools/makedep.c + # | +-if test "$enable_ntoskrnl_DriverTest" -eq 1; then +- patch_apply ntoskrnl-DriverTest/0001-ntoskrnl.exe-tests-Add-initial-driver-testing-framew.patch +- patch_apply ntoskrnl-DriverTest/0002-ntoskrnl.exe-tests-Add-kernel-compliant-test-functio.patch +- ( +- echo '+ { "Sebastian Lackner", "ntoskrnl.exe/tests: Add initial driver testing framework and corresponding changes to Makefile system.", 2 },'; +- echo '+ { "Michael Müller", "ntoskrnl.exe/tests: Add kernel compliant test functions.", 1 },'; +- ) >> "$patchlist" +-fi ++#if test "$enable_ntoskrnl_DriverTest" -eq 1; then ++# patch_apply ntoskrnl-DriverTest/0001-ntoskrnl.exe-tests-Add-initial-driver-testing-framew.patch ++# patch_apply ntoskrnl-DriverTest/0002-ntoskrnl.exe-tests-Add-kernel-compliant-test-functio.patch ++# ( ++# echo '+ { "Sebastian Lackner", "ntoskrnl.exe/tests: Add initial driver testing framework and corresponding changes to Makefile system.", 2 },'; ++# echo '+ { "Michael Müller", "ntoskrnl.exe/tests: Add kernel compliant test functions.", 1 },'; ++# ) >> "$patchlist" ++#fi + + # Patchset ntoskrnl-Stubs + # | diff --git a/wine-revert-makefiles.patch b/wine-revert-makefiles.patch new file mode 100644 index 0000000..a75b42f --- /dev/null +++ b/wine-revert-makefiles.patch @@ -0,0 +1,349 @@ +From 2bd032d8e954693feb10cd85ada74a748ba493a8 Mon Sep 17 00:00:00 2001 +From: Michael Cronenworth +Date: Wed, 4 Nov 2015 22:09:26 -0600 +Subject: [PATCH] Revert "makefiles: Read variable definitions from the top + makefile instead of using Make.vars.in." + +This reverts commit ef557a8a8a47100a3a0eb0662c93e38634afed89. +--- + Make.vars.in | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + Makefile.in | 76 -------------------------------------------------------- + aclocal.m4 | 6 ++--- + configure | 12 ++++----- + configure.ac | 4 +-- + tools/makedep.c | 33 +++++-------------------- + 6 files changed, 94 insertions(+), 114 deletions(-) + create mode 100644 Make.vars.in + +diff --git a/Make.vars.in b/Make.vars.in +new file mode 100644 +index 0000000..e2de171 +--- /dev/null ++++ b/Make.vars.in +@@ -0,0 +1,77 @@ ++# @configure_input@ -*-Makefile-*- ++ ++prefix = @prefix@ ++exec_prefix = @exec_prefix@ ++bindir = @bindir@ ++libdir = @libdir@ ++datarootdir = @datarootdir@ ++datadir = @datadir@ ++mandir = @mandir@ ++fontdir = ${datadir}/wine/fonts ++includedir = @includedir@/wine ++dlldir = @dlldir@ ++fakedlldir = ${dlldir}/fakedlls ++top_srcdir = @top_srcdir@ ++top_builddir = @top_builddir@ ++srcdir = @srcdir@ ++SHELL = /bin/sh ++RM = rm -f ++MV = mv ++CC = @CC@ ++CXX = @CXX@ ++CPPBIN = @CPPBIN@ ++CROSSCC = @CROSSCC@ ++CFLAGS = @CFLAGS@ ++CPPFLAGS = @CPPFLAGS@ ++EXTRACFLAGS = @EXTRACFLAGS@ ++MSVCRTFLAGS = @BUILTINFLAG@ ++TARGETFLAGS = @TARGETFLAGS@ ++UNWINDFLAGS = @UNWINDFLAGS@ ++LIBS = @LIBS@ ++BISON = @BISON@ ++FLEX = @FLEX@ ++EXEEXT = @EXEEXT@ ++DLLPREFIX = @DLLPREFIX@ ++TOOLSEXT = @TOOLSEXT@ ++DLLTOOL = @DLLTOOL@ ++AR = @AR@ ++ARFLAGS = @ARFLAGS@ ++RANLIB = @RANLIB@ ++STRIP = @STRIP@ ++LN_S = @LN_S@ ++TOOLSDIR = @TOOLSDIR@ ++LD = @LD@ ++LDFLAGS = @LDFLAGS@ ++DLLFLAGS = @DLLFLAGS@ ++PRELINK = @PRELINK@ ++FONTFORGE = @FONTFORGE@ ++RSVG = @RSVG@ ++CONVERT = @CONVERT@ ++ICOTOOL = @ICOTOOL@ ++MSGFMT = @MSGFMT@ ++CROSSTARGET = @CROSSTARGET@ ++LINGUAS = @LINGUAS@ ++RUNTESTFLAGS = -q -P wine ++MAKEDEP = $(TOOLSDIR)/tools/makedep$(TOOLSEXT) ++WINEBUILD = $(TOOLSDIR)/tools/winebuild/winebuild$(TOOLSEXT) ++WRC = $(TOOLSDIR)/tools/wrc/wrc$(TOOLSEXT) ++LIBPORT = $(top_builddir)/libs/port/libwine_port.a ++LIBWPP = $(top_builddir)/libs/wpp/libwpp.a ++LIBWINE = -L$(top_builddir)/libs/wine -lwine ++LIBWINE_STATIC = $(top_builddir)/libs/wine/libwine_static.a ++SED_CMD = LC_ALL=C sed -e 's,@bindir\@,$(bindir),g' -e 's,@dlldir\@,$(dlldir),g' -e 's,@PACKAGE_STRING\@,@PACKAGE_STRING@,g' -e 's,@PACKAGE_VERSION\@,@PACKAGE_VERSION@,g' ++LDRPATH_INSTALL = @LDRPATH_INSTALL@ ++LDRPATH_LOCAL = @LDRPATH_LOCAL@ ++INSTALL_PROGRAM = STRIPPROG="$(STRIP)" $(top_srcdir)/tools/install-sh $(INSTALL_PROGRAM_FLAGS) ++INSTALL_SCRIPT = $(top_srcdir)/tools/install-sh $(INSTALL_SCRIPT_FLAGS) ++INSTALL_DATA = $(top_srcdir)/tools/install-sh -m 644 $(INSTALL_DATA_FLAGS) ++prog_manext = 1 ++api_manext = 3w ++conf_manext = 5 ++@ALL_VARS_RULES@ ++@SET_MAKE@ ++ ++all: ++.PHONY: all ++ ++# End of common header +diff --git a/Makefile.in b/Makefile.in +index fc37ae2..9c5158d 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -18,82 +18,6 @@ + # sgmlpages: compile sgml source for the Wine API Guide + # xmlpages: compile xml source for the Wine API Guide + +-# Start of common header +-# The following variable definitions are copied into all makefiles +- +-prefix = @prefix@ +-exec_prefix = @exec_prefix@ +-bindir = @bindir@ +-libdir = @libdir@ +-datarootdir = @datarootdir@ +-datadir = @datadir@ +-mandir = @mandir@ +-fontdir = ${datadir}/wine/fonts +-includedir = @includedir@/wine +-dlldir = @dlldir@ +-fakedlldir = ${dlldir}/fakedlls +-top_srcdir = @top_srcdir@ +-top_builddir = @top_builddir@ +-srcdir = @srcdir@ +-SHELL = /bin/sh +-RM = rm -f +-MV = mv +-CC = @CC@ +-CXX = @CXX@ +-CPPBIN = @CPPBIN@ +-CROSSCC = @CROSSCC@ +-CFLAGS = @CFLAGS@ +-CPPFLAGS = @CPPFLAGS@ +-EXTRACFLAGS = @EXTRACFLAGS@ +-MSVCRTFLAGS = @BUILTINFLAG@ +-TARGETFLAGS = @TARGETFLAGS@ +-UNWINDFLAGS = @UNWINDFLAGS@ +-LIBS = @LIBS@ +-BISON = @BISON@ +-FLEX = @FLEX@ +-EXEEXT = @EXEEXT@ +-DLLPREFIX = @DLLPREFIX@ +-TOOLSEXT = @TOOLSEXT@ +-DLLTOOL = @DLLTOOL@ +-AR = @AR@ +-ARFLAGS = @ARFLAGS@ +-RANLIB = @RANLIB@ +-STRIP = @STRIP@ +-LN_S = @LN_S@ +-TOOLSDIR = @TOOLSDIR@ +-LD = @LD@ +-LDFLAGS = @LDFLAGS@ +-DLLFLAGS = @DLLFLAGS@ +-PRELINK = @PRELINK@ +-FONTFORGE = @FONTFORGE@ +-RSVG = @RSVG@ +-CONVERT = @CONVERT@ +-ICOTOOL = @ICOTOOL@ +-MSGFMT = @MSGFMT@ +-CROSSTARGET = @CROSSTARGET@ +-LINGUAS = @LINGUAS@ +-RUNTESTFLAGS = -q -P wine +-MAKEDEP = $(TOOLSDIR)/tools/makedep$(TOOLSEXT) +-WINEBUILD = $(TOOLSDIR)/tools/winebuild/winebuild$(TOOLSEXT) +-WRC = $(TOOLSDIR)/tools/wrc/wrc$(TOOLSEXT) +-LIBPORT = $(top_builddir)/libs/port/libwine_port.a +-LIBWPP = $(top_builddir)/libs/wpp/libwpp.a +-LIBWINE = -L$(top_builddir)/libs/wine -lwine +-LIBWINE_STATIC = $(top_builddir)/libs/wine/libwine_static.a +-SED_CMD = LC_ALL=C sed -e 's,@bindir\@,$(bindir),g' -e 's,@dlldir\@,$(dlldir),g' -e 's,@PACKAGE_STRING\@,@PACKAGE_STRING@,g' -e 's,@PACKAGE_VERSION\@,@PACKAGE_VERSION@,g' +-LDRPATH_INSTALL = @LDRPATH_INSTALL@ +-LDRPATH_LOCAL = @LDRPATH_LOCAL@ +-INSTALL_PROGRAM = STRIPPROG="$(STRIP)" $(top_srcdir)/tools/install-sh $(INSTALL_PROGRAM_FLAGS) +-INSTALL_SCRIPT = $(top_srcdir)/tools/install-sh $(INSTALL_SCRIPT_FLAGS) +-INSTALL_DATA = $(top_srcdir)/tools/install-sh -m 644 $(INSTALL_DATA_FLAGS) +-prog_manext = 1 +-api_manext = 3w +-conf_manext = 5 +-@ALL_VARS_RULES@ +-@SET_MAKE@ +- +-# End of common header +- + all: wine + @echo "Wine build complete." + +diff --git a/aclocal.m4 b/aclocal.m4 +index 13bab9b..f7a12f1 100644 +--- a/aclocal.m4 ++++ b/aclocal.m4 +@@ -226,12 +226,12 @@ wine_fn_has_flag () + wine_fn_depend_rules () + { + wine_fn_append_rule \ +-"$ac_dir/Makefile: $srcdir/$ac_dir/Makefile.in Makefile config.status \$(MAKEDEP) +- @./config.status --file $ac_dir/Makefile && \$(MAKEDEP) $ac_dir ++"$ac_dir/Makefile: $srcdir/$ac_dir/Makefile.in $srcdir/Make.vars.in config.status \$(MAKEDEP) ++ @./config.status --file $ac_dir/Makefile:Make.vars.in:$ac_dir/Makefile.in && \$(MAKEDEP) $ac_dir + depend: $ac_dir/depend + .PHONY: $ac_dir/depend + $ac_dir/depend: \$(MAKEDEP) dummy +- @./config.status --file $ac_dir/Makefile && \$(MAKEDEP) $ac_dir" ++ @./config.status --file $ac_dir/Makefile:Make.vars.in:$ac_dir/Makefile.in && \$(MAKEDEP) $ac_dir" + } + + wine_fn_pot_rules () +diff --git a/configure b/configure +index 38c3c6c..83b7c32 100755 +--- a/configure ++++ b/configure +@@ -7390,12 +7390,12 @@ wine_fn_has_flag () + wine_fn_depend_rules () + { + wine_fn_append_rule \ +-"$ac_dir/Makefile: $srcdir/$ac_dir/Makefile.in Makefile config.status \$(MAKEDEP) +- @./config.status --file $ac_dir/Makefile && \$(MAKEDEP) $ac_dir ++"$ac_dir/Makefile: $srcdir/$ac_dir/Makefile.in $srcdir/Make.vars.in config.status \$(MAKEDEP) ++ @./config.status --file $ac_dir/Makefile:Make.vars.in:$ac_dir/Makefile.in && \$(MAKEDEP) $ac_dir + depend: $ac_dir/depend + .PHONY: $ac_dir/depend + $ac_dir/depend: \$(MAKEDEP) dummy +- @./config.status --file $ac_dir/Makefile && \$(MAKEDEP) $ac_dir" ++ @./config.status --file $ac_dir/Makefile:Make.vars.in:$ac_dir/Makefile.in && \$(MAKEDEP) $ac_dir" + } + + wine_fn_pot_rules () +@@ -17187,7 +17187,7 @@ CLEAN_FILES = *.o *.a *.so *.res *.fake *.ok *.tab.[ch] *.yy.c + .INIT: Makefile + .MAKEFILEDEPS: + all: Makefile +-Makefile: $srcdir/Makefile.in config.status \$(MAKEDEP) ++Makefile: $srcdir/Makefile.in $srcdir/Make.vars.in config.status \$(MAKEDEP) + @./config.status Make.tmp Makefile" + + test "$srcdir" = . && wine_fn_append_rule "all: .gitignore +@@ -18187,7 +18187,7 @@ fi + ac_config_commands="$ac_config_commands Makefile" + + +-ac_config_files="$ac_config_files Make.tmp:Makefile.in" ++ac_config_files="$ac_config_files Make.tmp:Make.vars.in:Makefile.in" + + + +@@ -19004,7 +19004,7 @@ do + "wine64") CONFIG_LINKS="$CONFIG_LINKS wine64:tools/winewrapper" ;; + "tools/makedep") CONFIG_COMMANDS="$CONFIG_COMMANDS tools/makedep" ;; + "Makefile") CONFIG_COMMANDS="$CONFIG_COMMANDS Makefile" ;; +- "Make.tmp") CONFIG_FILES="$CONFIG_FILES Make.tmp:Makefile.in" ;; ++ "Make.tmp") CONFIG_FILES="$CONFIG_FILES Make.tmp:Make.vars.in:Makefile.in" ;; + ".gitignore") CONFIG_COMMANDS="$CONFIG_COMMANDS .gitignore" ;; + + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; +diff --git a/configure.ac b/configure.ac +index 88efdc9..a494266 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -2682,7 +2682,7 @@ CLEAN_FILES = *.o *.a *.so *.res *.fake *.ok *.tab.[[ch]] *.yy.c + .INIT: Makefile + .MAKEFILEDEPS: + all: Makefile +-Makefile: $srcdir/Makefile.in config.status \$(MAKEDEP) ++Makefile: $srcdir/Makefile.in $srcdir/Make.vars.in config.status \$(MAKEDEP) + @./config.status Make.tmp Makefile]) + + test "$srcdir" = . && WINE_APPEND_RULE( +@@ -3682,7 +3682,7 @@ _WINE_EOF + AS_ERROR([could not create Makefile]) + }]) + +-AC_CONFIG_FILES([Make.tmp:Makefile.in]) ++AC_CONFIG_FILES([Make.tmp:Make.vars.in:Makefile.in]) + + dnl Some final makefile rules + +diff --git a/tools/makedep.c b/tools/makedep.c +index 119294b..54aab45 100644 +--- a/tools/makedep.c ++++ b/tools/makedep.c +@@ -1751,7 +1751,6 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t + for (i = 0; i < linguas.count; i++) + strarray_add( &mo_files, strmake( "%s/%s.mo", top_obj_dir_path( make, "po" ), linguas.str[i] )); + +- strarray_add( &phony_targets, "all" ); + strarray_add( &includes, strmake( "-I%s", obj_dir_path( make, "" ))); + if (make->src_dir) strarray_add( &includes, strmake( "-I%s", make->src_dir )); + if (make->parent_dir) strarray_add( &includes, strmake( "-I%s", src_dir_path( make, make->parent_dir ))); +@@ -2514,51 +2513,31 @@ static void output_gitignore( const char *dest, struct strarray files ) + + + /******************************************************************* +- * output_top_variables +- */ +-static void output_top_variables( struct makefile *make ) +-{ +- unsigned int i; +- struct strarray *vars = &top_makefile->vars; +- +- if (!make->base_dir) return; /* don't output variables in the top makefile */ +- +- output( "# Automatically generated by make depend; DO NOT EDIT!!\n\n" ); +- output( "all:\n\n" ); +- for (i = 0; i < vars->count; i += 2) +- output( "%s = %s\n", vars->str[i], get_make_variable( make, vars->str[i] )); +- output( "\n" ); +-} +- +- +-/******************************************************************* + * output_dependencies + */ + static void output_dependencies( struct makefile *make, const char *path ) + { + struct strarray targets, testlist_files = empty_strarray, ignore_files = empty_strarray; +- FILE *src_file; + +- if (Separator && ((src_file = fopen( path, "r" )))) ++ if (Separator && ((output_file = fopen( path, "r" )))) + { + char buffer[1024]; ++ FILE *tmp_file = create_temp_file( path ); + int found = 0; + +- output_file = create_temp_file( path ); +- output_top_variables( make ); +- while (fgets( buffer, sizeof(buffer), src_file ) && !found) ++ while (fgets( buffer, sizeof(buffer), output_file ) && !found) + { +- if (fwrite( buffer, 1, strlen(buffer), output_file ) != strlen(buffer)) fatal_perror( "write" ); ++ if (fwrite( buffer, 1, strlen(buffer), tmp_file ) != strlen(buffer)) fatal_perror( "write" ); + found = !strncmp( buffer, Separator, strlen(Separator) ); + } +- if (fclose( src_file )) fatal_perror( "close" ); ++ if (fclose( output_file )) fatal_perror( "write" ); ++ output_file = tmp_file; + if (!found) output( "\n%s\n", Separator ); + } + else + { + if (!(output_file = fopen( path, Separator ? "a" : "w" ))) + fatal_perror( "%s", path ); +- output_top_variables( make ); + } + + targets = output_sources( make, &testlist_files ); +-- +2.4.3 + diff --git a/wine.spec b/wine.spec index 69a62ce..6cf5712 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ %endif Name: wine -Version: 1.7.53 +Version: 1.7.54 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -70,8 +70,9 @@ Source502: wine-README-tahoma Patch511: wine-cjk.patch # temporary workaround for GCC 5.0 optimization regressions Patch512: wine-gcc5.patch -# prelink has been retired, use linker method of base address relocation -Patch513: wine-relocate-base.patch +# broken man page install target +Patch513: wine-revert-makefiles.patch +Patch514: wine-revert-makefiles-staging.patch # wine compholio patches for wine-staging # pulseaudio-patch is covered by that patch-set, too. @@ -662,7 +663,7 @@ This package adds the opencl driver for wine. %if 0%{?fedora} > 21 #patch512 -p1 -b.gcc5 %endif -%patch513 -p1 -b.relocate +%patch513 -p1 -b.revert-makefiles # setup and apply compholio-patches or pulseaudio-patch. # since the pulse patch is included in the compholio patches use it from @@ -670,6 +671,7 @@ This package adds the opencl driver for wine. gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 %if 0%{?compholio} +%patch514 -p1 -b.revert-makefiles-staging %{__make} -C patches DESTDIR="`pwd`" install # fix parallelized build @@ -1611,6 +1613,7 @@ fi %{_libdir}/wine/wer.dll.so %{_libdir}/wine/wevtapi.dll.so %{_libdir}/wine/wiaservc.dll.so +%{_libdir}/wine/wimgapi.dll.so %{_libdir}/wine/windowscodecs.dll.so %{_libdir}/wine/windowscodecsext.dll.so %if 0%{?compholio} @@ -1975,6 +1978,9 @@ fi %endif %changelog +* Wed Nov 04 2015 Michael Cronenworth 1.7.54-1 +- version upgrade + * Wed Oct 21 2015 Michael Cronenworth 1.7.53-1 - version upgrade From 873e0b572ab1b381811709333d2fac99b38c3444 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 4 Nov 2015 23:55:32 -0600 Subject: [PATCH 358/715] patch: Use correct version of revert patch --- wine-revert-makefiles.patch | 2294 ++++++++++++++++++++++++++++++++++- 1 file changed, 2283 insertions(+), 11 deletions(-) diff --git a/wine-revert-makefiles.patch b/wine-revert-makefiles.patch index a75b42f..43148c3 100644 --- a/wine-revert-makefiles.patch +++ b/wine-revert-makefiles.patch @@ -1,8 +1,2280 @@ -From 2bd032d8e954693feb10cd85ada74a748ba493a8 Mon Sep 17 00:00:00 2001 +From c1ed02fb85b6992388afab9a5607069d124b64ec Mon Sep 17 00:00:00 2001 From: Michael Cronenworth -Date: Wed, 4 Nov 2015 22:09:26 -0600 -Subject: [PATCH] Revert "makefiles: Read variable definitions from the top - makefile instead of using Make.vars.in." +Date: Wed, 4 Nov 2015 23:15:31 -0600 +Subject: [PATCH 01/12] Revert "makefiles: Specify whether to install program + binaries in the individual makefiles." + +This reverts commit 17ac5ba7f9909bfbd3c80c87a077f72ef4c1d19b. +--- + programs/msiexec/Makefile.in | 2 -- + programs/notepad/Makefile.in | 2 -- + programs/regedit/Makefile.in | 2 -- + programs/regsvr32/Makefile.in | 2 -- + programs/wineboot/Makefile.in | 2 -- + programs/winecfg/Makefile.in | 2 -- + programs/wineconsole/Makefile.in | 2 -- + programs/winedbg/Makefile.in | 2 -- + programs/winefile/Makefile.in | 2 -- + programs/winemine/Makefile.in | 2 -- + programs/winepath/Makefile.in | 2 -- + programs/winetest/Makefile.in | 2 -- + tools/make_makefiles | 50 +++++++++++++++++++++++++--------------- + tools/makedep.c | 19 --------------- + 14 files changed, 32 insertions(+), 61 deletions(-) + +diff --git a/programs/msiexec/Makefile.in b/programs/msiexec/Makefile.in +index 7686b10..6d0cf9a 100644 +--- a/programs/msiexec/Makefile.in ++++ b/programs/msiexec/Makefile.in +@@ -11,5 +11,3 @@ RC_SRCS = rsrc.rc + MANPAGES = msiexec.man.in + + SVG_SRCS = msiexec.svg +- +-INSTALL_LIB = msiexec.exe msiexec +diff --git a/programs/notepad/Makefile.in b/programs/notepad/Makefile.in +index e5d39a8..26e977d 100644 +--- a/programs/notepad/Makefile.in ++++ b/programs/notepad/Makefile.in +@@ -11,5 +11,3 @@ RC_SRCS = notepad.rc + MANPAGES = notepad.man.in + + SVG_SRCS = notepad.svg +- +-INSTALL_LIB = notepad.exe notepad +diff --git a/programs/regedit/Makefile.in b/programs/regedit/Makefile.in +index acbfbd4..c5dfd81 100644 +--- a/programs/regedit/Makefile.in ++++ b/programs/regedit/Makefile.in +@@ -20,5 +20,3 @@ RC_SRCS = regedit.rc + MANPAGES = regedit.man.in + + SVG_SRCS = regedit.svg +- +-INSTALL_LIB = regedit.exe regedit +diff --git a/programs/regsvr32/Makefile.in b/programs/regsvr32/Makefile.in +index e91f206..15646a6 100644 +--- a/programs/regsvr32/Makefile.in ++++ b/programs/regsvr32/Makefile.in +@@ -8,5 +8,3 @@ C_SRCS = \ + RC_SRCS = regsvr32.rc + + MANPAGES = regsvr32.man.in +- +-INSTALL_LIB = regsvr32.exe regsvr32 +diff --git a/programs/wineboot/Makefile.in b/programs/wineboot/Makefile.in +index 419ec16..f6da0f9 100644 +--- a/programs/wineboot/Makefile.in ++++ b/programs/wineboot/Makefile.in +@@ -10,5 +10,3 @@ C_SRCS = \ + RC_SRCS = wineboot.rc + + MANPAGES = wineboot.man.in +- +-INSTALL_LIB = wineboot.exe wineboot +diff --git a/programs/winecfg/Makefile.in b/programs/winecfg/Makefile.in +index 7b52a69..4e66e04 100644 +--- a/programs/winecfg/Makefile.in ++++ b/programs/winecfg/Makefile.in +@@ -22,5 +22,3 @@ MANPAGES = winecfg.man.in + SVG_SRCS = \ + logo.svg \ + winecfg.svg +- +-INSTALL_LIB = winecfg.exe winecfg +diff --git a/programs/wineconsole/Makefile.in b/programs/wineconsole/Makefile.in +index b1ba9ef..6cde7e3 100644 +--- a/programs/wineconsole/Makefile.in ++++ b/programs/wineconsole/Makefile.in +@@ -13,5 +13,3 @@ C_SRCS = \ + RC_SRCS = wineconsole.rc + + MANPAGES = wineconsole.man.in +- +-INSTALL_LIB = wineconsole.exe wineconsole +diff --git a/programs/winedbg/Makefile.in b/programs/winedbg/Makefile.in +index 739c4eb..a56c359 100644 +--- a/programs/winedbg/Makefile.in ++++ b/programs/winedbg/Makefile.in +@@ -34,5 +34,3 @@ LEX_SRCS = debug.l + BISON_SRCS = dbg.y + + MANPAGES = winedbg.man.in +- +-INSTALL_LIB = winedbg.exe winedbg +diff --git a/programs/winefile/Makefile.in b/programs/winefile/Makefile.in +index f400846..ac58f26 100644 +--- a/programs/winefile/Makefile.in ++++ b/programs/winefile/Makefile.in +@@ -12,5 +12,3 @@ RC_SRCS = winefile.rc + MANPAGES = winefile.man.in + + SVG_SRCS = winefile.svg +- +-INSTALL_LIB = winefile.exe winefile +diff --git a/programs/winemine/Makefile.in b/programs/winemine/Makefile.in +index ea9b9d3..f72e1b1 100644 +--- a/programs/winemine/Makefile.in ++++ b/programs/winemine/Makefile.in +@@ -12,5 +12,3 @@ RC_SRCS = winemine.rc + MANPAGES = winemine.man.in + + SVG_SRCS = winemine.svg +- +-INSTALL_LIB = winemine.exe winemine +diff --git a/programs/winepath/Makefile.in b/programs/winepath/Makefile.in +index ca28e30..16b5627 100644 +--- a/programs/winepath/Makefile.in ++++ b/programs/winepath/Makefile.in +@@ -4,5 +4,3 @@ APPMODE = -mconsole -municode + C_SRCS = winepath.c + + MANPAGES = winepath.man.in +- +-INSTALL_LIB = winepath.exe winepath +diff --git a/programs/winetest/Makefile.in b/programs/winetest/Makefile.in +index 4070016..7bdfe2a 100644 +--- a/programs/winetest/Makefile.in ++++ b/programs/winetest/Makefile.in +@@ -18,8 +18,6 @@ EXTRA_OBJS = build.res @ALL_TEST_RESOURCES@ + + EXTRA_TARGETS = build.rc build.nfo + +-INSTALL_LIB = none +- + build.rc: dummy + build="BUILD_INFO STRINGRES build.nfo STRINGTABLE { 1 \"`GIT_DIR=$(top_srcdir)/.git git rev-parse HEAD 2>/dev/null`\" }" && (echo $$build | cmp -s - $@) || echo $$build >$@ || ($(RM) $@ && exit 1) + +diff --git a/tools/make_makefiles b/tools/make_makefiles +index 96d8c01..4b539cd 100755 +--- a/tools/make_makefiles ++++ b/tools/make_makefiles +@@ -21,6 +21,28 @@ + + use strict; + ++# Programs that we want to install in the bin directory too ++my %bin_install = ++( ++ "msiexec" => 1, ++ "notepad" => 1, ++ "regedit" => 1, ++ "regsvr32" => 1, ++ "wineboot" => 1, ++ "winecfg" => 1, ++ "wineconsole" => 1, ++ "winedbg" => 1, ++ "winefile" => 1, ++ "winemine" => 1, ++ "winepath" => 1, ++); ++ ++# Programs that we don't want to install at all ++my %dont_install = ++( ++ "winetest" => 1, ++); ++ + # Dlls and programs that are 16-bit specific + my %modules16 = + ( +@@ -243,11 +265,18 @@ sub parse_makefile($) + ${$make{"=flags"}}{"implib"} = 1 if $var eq "IMPORTLIB"; + next; + } +- if (/^\s*(BISON_SRCS|LEX_SRCS|IDL_SRCS|IMPLIB_SRCS|C_SRCS|OBJC_SRCS|MC_SRCS|RC_SRCS|SVG_SRCS|FONT_SRCS|IN_SRCS|PROGRAMS|EXTRA_TARGETS|MANPAGES|INSTALL_LIB|INSTALL_DEV)\s*=\s*(.*)/) ++ if (/^\s*(BISON_SRCS|LEX_SRCS|IDL_SRCS|IMPLIB_SRCS|C_SRCS|OBJC_SRCS|MC_SRCS|RC_SRCS|SVG_SRCS|FONT_SRCS|IN_SRCS|PROGRAMS|EXTRA_TARGETS|MANPAGES)\s*=\s*(.*)/) + { + my $var = $1; + my @list = split(/\s+/, $2); + $make{$var} = \@list; ++ ${$make{"=flags"}}{"clean"} = 1 if $var eq "PROGRAMS"; ++ ${$make{"=flags"}}{"clean"} = 1 if $var eq "EXTRA_TARGETS"; ++ next; ++ } ++ if (/^\s*INSTALL_(LIB|DEV)\s*=\s*/) ++ { ++ ${$make{"=flags"}}{$1 eq "LIB" ? "install-lib" : "install-dev"} = 1; + next; + } + if (/(install-lib|install-dev|clean)\s*:/) +@@ -267,24 +296,9 @@ sub parse_makefile($) + + if ($file =~ /^programs\/([^\/]+)\/Makefile/) + { +- my $prog = $1; +- if (defined $make{"INSTALL_LIB"}) +- { +- ${$make{"=flags"}}{"install"} = 1 if grep { "$prog.exe" eq $_; } @{$make{"INSTALL_LIB"}}; +- ${$make{"=flags"}}{"installbin"} = 1 if grep { $prog eq $_; } @{$make{"INSTALL_LIB"}}; +- } +- else +- { +- ${$make{"=flags"}}{"install"} = 1; +- } +- } +- +- unless (defined $make{"MODULE"}) +- { +- ${$make{"=flags"}}{"install-lib"} = 1 if defined $make{"INSTALL_LIB"}; +- ${$make{"=flags"}}{"install-dev"} = 1 if defined $make{"INSTALL_DEV"}; ++ ${$make{"=flags"}}{"install"} = 1 unless $dont_install{$1}; ++ ${$make{"=flags"}}{"installbin"} = 1 if $bin_install{$1}; + } +- ${$make{"=flags"}}{"clean"} = 1 if defined $make{"PROGRAMS"} || defined $make{"EXTRA_TARGETS"}; + + if (defined $make{"=flags"} && defined $make{"MODULE"}) + { +diff --git a/tools/makedep.c b/tools/makedep.c +index 2a1b8d4..7af3bc9 100644 +--- a/tools/makedep.c ++++ b/tools/makedep.c +@@ -2214,17 +2214,11 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t + { + strarray_add( &all_targets, strmake( "%s%s", make->module, dll_ext )); + strarray_add( &all_targets, strmake( "%s.fake", make->module )); +- add_install_rule( make, make->module, strmake( "%s%s", make->module, dll_ext ), +- strmake( "p$(dlldir)/%s%s", make->module, dll_ext )); +- add_install_rule( make, make->module, strmake( "%s.fake", make->module ), +- strmake( "d$(fakedlldir)/%s", make->module )); + output( "%s%s %s.fake:", module_path, dll_ext, module_path ); + } + else + { + strarray_add( &all_targets, make->module ); +- add_install_rule( make, make->module, make->module, +- strmake( "p$(%s)/%s", spec_file ? "dlldir" : "bindir", make->module )); + output( "%s:", module_path ); + } + if (spec_file) output_filename( spec_file ); +@@ -2259,8 +2253,6 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t + output_filenames( target_flags ); + if (make->is_win16) output_filename( "-m16" ); + output( "\n" ); +- add_install_rule( make, make->importlib, strmake( "lib%s.def", make->importlib ), +- strmake( "d$(dlldir)/lib%s.def", make->importlib )); + if (implib_objs.count) + { + strarray_add( &clean_files, strmake( "lib%s.def.a", make->importlib )); +@@ -2272,8 +2264,6 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t + output_filenames_obj_dir( make, implib_objs ); + output( "\n" ); + output( "\t$(RANLIB) $@\n" ); +- add_install_rule( make, make->importlib, strmake( "lib%s.def.a", make->importlib ), +- strmake( "d$(dlldir)/lib%s.def.a", make->importlib )); + } + } + else +@@ -2286,8 +2276,6 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t + output_filenames( target_flags ); + output_filenames_obj_dir( make, implib_objs ); + output( "\n" ); +- add_install_rule( make, make->importlib, strmake( "lib%s.a", make->importlib ), +- strmake( "d$(dlldir)/lib%s.a", make->importlib )); + } + if (crosstarget && !make->is_win16) + { +@@ -2346,12 +2334,6 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t + } + else output( "manpages htmlpages sgmlpages xmlpages::\n" ); + } +- else if (*dll_ext) +- { +- char *binary = replace_extension( make->module, ".exe", "" ); +- add_install_rule( make, binary, tools_dir_path( make, "wineapploader" ), +- strmake( "s$(bindir)/%s", binary )); +- } + } + + if (make->staticlib) +@@ -2837,7 +2819,6 @@ static void update_makefile( const char *path ) + + make->install_lib_rules = empty_strarray; + make->install_dev_rules = empty_strarray; +- if (make->module && !make->install_lib.count) strarray_add( &make->install_lib, make->module ); + + make->include_args = empty_strarray; + make->define_args = empty_strarray; +-- +2.4.3 + +From e1b0769c11dc8f53e089eafedca66161484c0465 Mon Sep 17 00:00:00 2001 +From: Michael Cronenworth +Date: Wed, 4 Nov 2015 23:15:33 -0600 +Subject: [PATCH 02/12] Revert "makefiles: Fix the source path for ttf font + installs." + +This reverts commit a748b7bc47345f9fd3b10377da6817c3e6e29fe2. +--- + tools/makedep.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tools/makedep.c b/tools/makedep.c +index 7af3bc9..2c2a97d 100644 +--- a/tools/makedep.c ++++ b/tools/makedep.c +@@ -2057,7 +2057,7 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t + } + if (source->file->flags & FLAG_INSTALL) + { +- strarray_add( &make->install_lib_rules, strmake( "%s.ttf", obj )); ++ strarray_add( &make->install_lib_rules, ttf_file ); + strarray_add( &make->install_lib_rules, strmake( "D$(fontdir)/%s.ttf", obj )); + } + if (source->file->flags & FLAG_SFD_FONTS) +-- +2.4.3 + +From 4acb2bf30de244cb8aad6ed62af36aa68e9015b4 Mon Sep 17 00:00:00 2001 +From: Michael Cronenworth +Date: Wed, 4 Nov 2015 23:15:34 -0600 +Subject: [PATCH 03/12] Revert "makefiles: Don't add source dependency for + symlinks." + +This reverts commit cc5d07fc8a58f3f87137992247344cdbdad9ef8d. +--- + tools/makedep.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tools/makedep.c b/tools/makedep.c +index 2c2a97d..30bbc3e 100644 +--- a/tools/makedep.c ++++ b/tools/makedep.c +@@ -1796,7 +1796,7 @@ static void output_install_rules( struct makefile *make, struct strarray files, + if (!files.count) return; + + for (i = 0; i < files.count; i += 2) +- if (strchr( "dps", files.str[i + 1][0] )) /* only for files copied from object dir */ ++ if (files.str[i + 1][0] >= 'a' && files.str[i + 1][0] <= 'z') /* only for files in object dir */ + strarray_add_uniq( &targets, files.str[i] ); + + output( "install %s::", target ); +-- +2.4.3 + +From 0c2d10f1c63546f8bba8a29adeb30224adc6064c Mon Sep 17 00:00:00 2001 +From: Michael Cronenworth +Date: Wed, 4 Nov 2015 23:16:39 -0600 +Subject: [PATCH 04/12] Revert "makefiles: Generate rules for installing + symlinks." + +This reverts commit 356e46a1ef9f866f4a548674b4811a98d1b1847c. +--- + tools/makedep.c | 23 +---------------------- + tools/winegcc/Makefile.in | 21 ++++++++++++++++++--- + 2 files changed, 19 insertions(+), 25 deletions(-) + +diff --git a/tools/makedep.c b/tools/makedep.c +index 30bbc3e..ffd286f 100644 +--- a/tools/makedep.c ++++ b/tools/makedep.c +@@ -1831,9 +1831,6 @@ static void output_install_rules( struct makefile *make, struct strarray files, + output( "\t%s $(INSTALL_SCRIPT_FLAGS) %s $(DESTDIR)%s\n", + install_sh, src_dir_path( make, file ), dest + 1 ); + break; +- case 'y': /* symlink */ +- output( "\t$(RM) $(DESTDIR)%s && $(LN_S) %s $(DESTDIR)%s\n", dest + 1, file, dest + 1 ); +- break; + default: + assert(0); + } +@@ -1856,7 +1853,7 @@ static void output_install_rules( struct makefile *make, struct strarray files, + static struct strarray output_sources( struct makefile *make, struct strarray *testlist_files ) + { + struct incl_file *source; +- unsigned int i, j; ++ unsigned int i; + struct strarray object_files = empty_strarray; + struct strarray crossobj_files = empty_strarray; + struct strarray res_files = empty_strarray; +@@ -2021,7 +2018,6 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t + { + if (strendswith( obj, ".man" ) && source->file->args) + { +- struct strarray symlinks; + char *dir, *dest = replace_extension( obj, ".man", "" ); + char *lang = strchr( dest, '.' ); + char *section = source->file->args; +@@ -2032,10 +2028,6 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t + } + else dir = strmake( "$(mandir)/man%s", section ); + add_install_rule( make, dest, xstrdup(obj), strmake( "d%s/%s.%s", dir, dest, section )); +- symlinks = get_expanded_make_var_array( make, file_local_var( dest, "SYMLINKS" )); +- for (j = 0; j < symlinks.count; j++) +- add_install_rule( make, symlinks.str[j], strmake( "%s.%s", dest, section ), +- strmake( "y%s/%s.%s", dir, symlinks.str[j], section )); + free( dest ); + free( dir ); + strarray_add( &all_targets, xstrdup(obj) ); +@@ -2455,8 +2447,6 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t + struct strarray all_libs = empty_strarray; + struct strarray objs = get_expanded_make_var_array( make, + file_local_var( make->programs.str[i], "OBJS" )); +- struct strarray symlinks = get_expanded_make_var_array( make, +- file_local_var( make->programs.str[i], "SYMLINKS" )); + + if (!objs.count) objs = object_files; + output( "%s:", obj_dir_path( make, program ) ); +@@ -2495,19 +2485,8 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t + output( "\n" ); + strarray_add( &all_targets, program ); + +- if (symlinks.count) +- { +- output_filenames_obj_dir( make, symlinks ); +- output( ": %s\n", obj_dir_path( make, program )); +- output( "\t$(RM) $@ && $(LN_S) %s $@\n", obj_dir_path( make, program )); +- strarray_addall( &all_targets, symlinks ); +- } +- + add_install_rule( make, program, program_installed ? program_installed : program, + strmake( "p$(bindir)/%s", program )); +- for (j = 0; j < symlinks.count; j++) +- add_install_rule( make, symlinks.str[j], program, +- strmake( "y$(bindir)/%s%s", symlinks.str[j], exe_ext )); + } + + for (i = 0; i < make->scripts.count; i++) +diff --git a/tools/winegcc/Makefile.in b/tools/winegcc/Makefile.in +index daeb91b..1a3b2a7 100644 +--- a/tools/winegcc/Makefile.in ++++ b/tools/winegcc/Makefile.in +@@ -2,8 +2,6 @@ PROGRAMS = winegcc + + MANPAGES = winegcc.man.in + +-winegcc_SYMLINKS = winecpp wineg++ +- + C_SRCS = \ + utils.c \ + winegcc.c +@@ -18,4 +16,21 @@ winegcc_EXTRADEFS = \ + -DLD="\"$(LD)\"" \ + -DPRELINK="\"$(PRELINK)\"" + +-INSTALL_DEV = $(PROGRAMS) $(winegcc_SYMLINKS) ++INSTALL_DEV = $(PROGRAMS) ++ ++EXTRA_TARGETS = winecpp$(EXEEXT) wineg++$(EXEEXT) ++ ++all: $(EXTRA_TARGETS) ++ ++winecpp$(EXEEXT) wineg++$(EXEEXT): winegcc$(EXEEXT) ++ $(RM) $@ && $(LN_S) winegcc$(EXEEXT) $@ ++ ++install install-dev:: ++ cd $(DESTDIR)$(bindir) && $(RM) wineg++$(EXEEXT) && $(LN_S) winegcc$(EXEEXT) wineg++$(EXEEXT) ++ cd $(DESTDIR)$(bindir) && $(RM) winecpp$(EXEEXT) && $(LN_S) winegcc$(EXEEXT) winecpp$(EXEEXT) ++ cd $(DESTDIR)$(mandir)/man$(prog_manext) && $(RM) wineg++.$(prog_manext) && $(LN_S) winegcc.$(prog_manext) wineg++.$(prog_manext) ++ cd $(DESTDIR)$(mandir)/man$(prog_manext) && $(RM) winecpp.$(prog_manext) && $(LN_S) winegcc.$(prog_manext) winecpp.$(prog_manext) ++ ++uninstall:: ++ $(RM) $(DESTDIR)$(bindir)/wineg++$(EXEEXT) $(DESTDIR)$(bindir)/winecpp$(EXEEXT) ++ $(RM) $(DESTDIR)$(mandir)/man$(prog_manext)/wineg++.$(prog_manext) $(DESTDIR)$(mandir)/man$(prog_manext)/winecpp.$(prog_manext) +-- +2.4.3 + +From 6fc5a15518b51a55681bb20c51dfc93f45816cc2 Mon Sep 17 00:00:00 2001 +From: Michael Cronenworth +Date: Wed, 4 Nov 2015 23:16:49 -0600 +Subject: [PATCH 05/12] Revert "makefiles: Generate rules for installing + scripts." + +This reverts commit 5cd3395975f687ba8390fddda38bd110d98b30ed. +--- + tools/makedep.c | 6 ------ + tools/winedump/Makefile.in | 9 +++++++-- + tools/winemaker/Makefile.in | 10 +++++++--- + 3 files changed, 14 insertions(+), 11 deletions(-) + +diff --git a/tools/makedep.c b/tools/makedep.c +index ffd286f..9a21397 100644 +--- a/tools/makedep.c ++++ b/tools/makedep.c +@@ -150,7 +150,6 @@ struct makefile + struct strarray include_args; + struct strarray define_args; + struct strarray programs; +- struct strarray scripts; + struct strarray appmode; + struct strarray imports; + struct strarray delayimports; +@@ -2489,10 +2488,6 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t + strmake( "p$(bindir)/%s", program )); + } + +- for (i = 0; i < make->scripts.count; i++) +- add_install_rule( make, make->scripts.str[i], make->scripts.str[i], +- strmake( "S$(bindir)/%s", make->scripts.str[i] )); +- + if (all_targets.count) + { + output( "all:" ); +@@ -2780,7 +2775,6 @@ static void update_makefile( const char *path ) + make->importlib = get_expanded_make_variable( make, "IMPORTLIB" ); + + make->programs = get_expanded_make_var_array( make, "PROGRAMS" ); +- make->scripts = get_expanded_make_var_array( make, "SCRIPTS" ); + make->appmode = get_expanded_make_var_array( make, "APPMODE" ); + make->imports = get_expanded_make_var_array( make, "IMPORTS" ); + make->delayimports = get_expanded_make_var_array( make, "DELAYIMPORTS" ); +diff --git a/tools/winedump/Makefile.in b/tools/winedump/Makefile.in +index b55ac72..a93f078 100644 +--- a/tools/winedump/Makefile.in ++++ b/tools/winedump/Makefile.in +@@ -1,6 +1,5 @@ + PROGRAMS = winedump + MANPAGES = winedump.man.in +-SCRIPTS = function_grep.pl + + C_SRCS = \ + debug.c \ +@@ -24,4 +23,10 @@ C_SRCS = \ + symbol.c \ + tlb.c + +-INSTALL_DEV = $(PROGRAMS) $(SCRIPTS) ++INSTALL_DEV = $(PROGRAMS) ++ ++install install-dev:: ++ $(INSTALL_SCRIPT) $(srcdir)/function_grep.pl $(DESTDIR)$(bindir)/function_grep.pl ++ ++uninstall:: ++ $(RM) $(DESTDIR)$(bindir)/function_grep.pl +diff --git a/tools/winemaker/Makefile.in b/tools/winemaker/Makefile.in +index 37e345d..6afa016 100644 +--- a/tools/winemaker/Makefile.in ++++ b/tools/winemaker/Makefile.in +@@ -1,8 +1,12 @@ +-SCRIPTS = winemaker +- + MANPAGES = \ + winemaker.de.UTF-8.man.in \ + winemaker.fr.UTF-8.man.in \ + winemaker.man.in + +-INSTALL_DEV = $(SCRIPTS) ++INSTALL_DEV = winemaker ++ ++install install-dev:: ++ $(INSTALL_SCRIPT) $(srcdir)/winemaker $(DESTDIR)$(bindir)/winemaker ++ ++uninstall:: ++ $(RM) $(DESTDIR)$(bindir)/winemaker +-- +2.4.3 + +From 2b9f92aa8ed4a88321b0e60af01a2715cab19f11 Mon Sep 17 00:00:00 2001 +From: Michael Cronenworth +Date: Wed, 4 Nov 2015 23:16:57 -0600 +Subject: [PATCH 06/12] Revert "makefiles: Generate rules for installing + programs." + +This reverts commit da340169d6518cf42f1cbe169fbf120383202bdc. +--- + configure | 15 ++++- + configure.ac | 15 ++++- + server/Makefile.in | 8 ++- + tools/make_makefiles | 5 -- + tools/makedep.c | 135 ++++++++------------------------------------ + tools/widl/Makefile.in | 8 ++- + tools/winebuild/Makefile.in | 8 ++- + tools/winedump/Makefile.in | 7 ++- + tools/winegcc/Makefile.in | 9 +-- + tools/winemaker/Makefile.in | 4 +- + tools/wmc/Makefile.in | 8 ++- + tools/wrc/Makefile.in | 8 ++- + 12 files changed, 97 insertions(+), 133 deletions(-) + +diff --git a/configure b/configure +index b3a1f26..8cf26e4 100755 +--- a/configure ++++ b/configure +@@ -7852,6 +7852,12 @@ libwine_soversion=`expr $libwine_version : '\([0-9]*\)\..*'` + + LOADER_RULES=" + all: wine.inf ++ ++install install-lib:: $wine_binary-installed ++ \$(INSTALL_PROGRAM) $wine_binary-installed \$(DESTDIR)\$(bindir)/$wine_binary ++ ++uninstall:: ++ \$(RM) \$(DESTDIR)\$(bindir)/$wine_binary + " + + +@@ -14939,13 +14945,18 @@ case $host_os in + preloader_EXTRADEFS = $BUILTINFLAG + ${wine_binary}_preloader_OBJS = preloader.o + ${wine_binary}_preloader_LDFLAGS = -static -nostartfiles -nodefaultlibs -Wl,-Ttext=0x7c400000 ++ ++install install-lib:: $wine_binary-preloader ++ \$(INSTALL_PROGRAM) $wine_binary-preloader \$(DESTDIR)\$(bindir)/$wine_binary-preloader ++ ++uninstall:: ++ \$(RM) \$(DESTDIR)\$(bindir)/$wine_binary-preloader + " ;; + esac + ;; + esac + as_fn_append LOADER_RULES " + PROGRAMS = $loader_programs +-INSTALL_LIB = $loader_programs + " + + +@@ -18280,7 +18291,7 @@ clean:: + \$(RM) fonts server tools $with_wine64/loader/wine $with_wine64/loader/wine-preloader" + else + as_fn_append LOADER_RULES " +-install install-lib:: wine.inf ++install install-lib:: wine.inf install-man-pages + \$(INSTALL_DATA) wine.inf \$(DESTDIR)\$(datadir)/wine/wine.inf + \$(INSTALL_DATA) \$(srcdir)/l_intl.nls \$(DESTDIR)\$(datadir)/wine/l_intl.nls + +diff --git a/configure.ac b/configure.ac +index 3d48b67..ff74f8d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -691,6 +691,12 @@ libwine_soversion=`expr $libwine_version : '\([[0-9]]*\)\..*'` + + AC_SUBST(LOADER_RULES,[" + all: wine.inf ++ ++install install-lib:: $wine_binary-installed ++ \$(INSTALL_PROGRAM) $wine_binary-installed \$(DESTDIR)\$(bindir)/$wine_binary ++ ++uninstall:: ++ \$(RM) \$(DESTDIR)\$(bindir)/$wine_binary + "]) + + case $host_os in +@@ -2033,13 +2039,18 @@ case $host_os in + preloader_EXTRADEFS = $BUILTINFLAG + ${wine_binary}_preloader_OBJS = preloader.o + ${wine_binary}_preloader_LDFLAGS = -static -nostartfiles -nodefaultlibs -Wl,-Ttext=0x7c400000 ++ ++install install-lib:: $wine_binary-preloader ++ \$(INSTALL_PROGRAM) $wine_binary-preloader \$(DESTDIR)\$(bindir)/$wine_binary-preloader ++ ++uninstall:: ++ \$(RM) \$(DESTDIR)\$(bindir)/$wine_binary-preloader + "]) ;; + esac + ;; + esac + AS_VAR_APPEND([LOADER_RULES],[" + PROGRAMS = $loader_programs +-INSTALL_LIB = $loader_programs + "]) + + dnl **** Check for functions **** +@@ -3747,7 +3758,7 @@ clean:: + \$(RM) fonts server tools $with_wine64/loader/wine $with_wine64/loader/wine-preloader]) + else + AS_VAR_APPEND([LOADER_RULES],[" +-install install-lib:: wine.inf ++install install-lib:: wine.inf install-man-pages + \$(INSTALL_DATA) wine.inf \$(DESTDIR)\$(datadir)/wine/wine.inf + \$(INSTALL_DATA) \$(srcdir)/l_intl.nls \$(DESTDIR)\$(datadir)/wine/l_intl.nls + +diff --git a/server/Makefile.in b/server/Makefile.in +index 75ba199..7a1ac11 100644 +--- a/server/Makefile.in ++++ b/server/Makefile.in +@@ -52,4 +52,10 @@ MANPAGES = \ + + EXTRALIBS = -lwine $(POLL_LIBS) $(RT_LIBS) + +-INSTALL_LIB = $(PROGRAMS) ++.PHONY: install install-lib uninstall ++ ++install install-lib:: wineserver-installed install-man-pages ++ $(INSTALL_PROGRAM) wineserver-installed $(DESTDIR)$(bindir)/wineserver ++ ++uninstall:: ++ $(RM) $(DESTDIR)$(bindir)/wineserver +diff --git a/tools/make_makefiles b/tools/make_makefiles +index 4b539cd..069d0ae 100755 +--- a/tools/make_makefiles ++++ b/tools/make_makefiles +@@ -274,11 +274,6 @@ sub parse_makefile($) + ${$make{"=flags"}}{"clean"} = 1 if $var eq "EXTRA_TARGETS"; + next; + } +- if (/^\s*INSTALL_(LIB|DEV)\s*=\s*/) +- { +- ${$make{"=flags"}}{$1 eq "LIB" ? "install-lib" : "install-dev"} = 1; +- next; +- } + if (/(install-lib|install-dev|clean)\s*:/) + { + ${$make{"=flags"}}{$1} = 1; +diff --git a/tools/makedep.c b/tools/makedep.c +index 9a21397..295e5e8 100644 +--- a/tools/makedep.c ++++ b/tools/makedep.c +@@ -154,10 +154,6 @@ struct makefile + struct strarray imports; + struct strarray delayimports; + struct strarray extradllflags; +- struct strarray install_lib; +- struct strarray install_dev; +- struct strarray install_lib_rules; +- struct strarray install_dev_rules; + struct list sources; + struct list includes; + const char *base_dir; +@@ -1761,92 +1757,6 @@ static void output_include( struct incl_file *pFile, struct incl_file *owner ) + + + /******************************************************************* +- * add_install_rule +- */ +-static void add_install_rule( struct makefile *make, const char *target, +- const char *file, const char *dest ) +-{ +- if (strarray_exists( &make->install_lib, target )) +- { +- strarray_add( &make->install_lib_rules, file ); +- strarray_add( &make->install_lib_rules, dest ); +- } +- else if (strarray_exists( &make->install_dev, target )) +- { +- strarray_add( &make->install_dev_rules, file ); +- strarray_add( &make->install_dev_rules, dest ); +- } +-} +- +- +-/******************************************************************* +- * output_install_rules +- * +- * Rules are stored as a (file,dest) pair of values. +- * The first char of dest indicates the type of install. +- */ +-static void output_install_rules( struct makefile *make, struct strarray files, +- const char *target, struct strarray *phony_targets ) +-{ +- unsigned int i; +- char *install_sh; +- struct strarray targets = empty_strarray; +- +- if (!files.count) return; +- +- for (i = 0; i < files.count; i += 2) +- if (files.str[i + 1][0] >= 'a' && files.str[i + 1][0] <= 'z') /* only for files in object dir */ +- strarray_add_uniq( &targets, files.str[i] ); +- +- output( "install %s::", target ); +- output_filenames_obj_dir( make, targets ); +- output( "\n" ); +- +- install_sh = top_dir_path( make, "tools/install-sh" ); +- for (i = 0; i < files.count; i += 2) +- { +- const char *file = files.str[i]; +- const char *dest = files.str[i + 1]; +- +- switch (*dest) +- { +- case 'd': /* data file */ +- output( "\t%s -m 644 $(INSTALL_DATA_FLAGS) %s $(DESTDIR)%s\n", +- install_sh, obj_dir_path( make, file ), dest + 1 ); +- break; +- case 'D': /* data file in source dir */ +- output( "\t%s -m 644 $(INSTALL_DATA_FLAGS) %s $(DESTDIR)%s\n", +- install_sh, src_dir_path( make, file ), dest + 1 ); +- break; +- case 'p': /* program file */ +- output( "\tSTRIPPROG=\"$(STRIP)\" %s $(INSTALL_PROGRAM_FLAGS) %s $(DESTDIR)%s\n", +- install_sh, obj_dir_path( make, file ), dest + 1 ); +- break; +- case 's': /* script */ +- output( "\t%s $(INSTALL_SCRIPT_FLAGS) %s $(DESTDIR)%s\n", +- install_sh, obj_dir_path( make, file ), dest + 1 ); +- break; +- case 'S': /* script in source dir */ +- output( "\t%s $(INSTALL_SCRIPT_FLAGS) %s $(DESTDIR)%s\n", +- install_sh, src_dir_path( make, file ), dest + 1 ); +- break; +- default: +- assert(0); +- } +- } +- +- output( "uninstall::\n" ); +- output( "\t$(RM)" ); +- for (i = 0; i < files.count; i += 2) output_filename( strmake( "$(DESTDIR)%s", files.str[i + 1] + 1 )); +- output( "\n" ); +- +- strarray_add( phony_targets, "install" ); +- strarray_add( phony_targets, target ); +- strarray_add( phony_targets, "uninstall" ); +-} +- +- +-/******************************************************************* + * output_sources + */ + static struct strarray output_sources( struct makefile *make, struct strarray *testlist_files ) +@@ -2023,13 +1933,18 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t + if (lang) + { + *lang++ = 0; +- dir = strmake( "$(mandir)/%s/man%s", lang, section ); ++ dir = strmake( "$(DESTDIR)$(mandir)/%s/man%s", lang, section ); + } +- else dir = strmake( "$(mandir)/man%s", section ); +- add_install_rule( make, dest, xstrdup(obj), strmake( "d%s/%s.%s", dir, dest, section )); ++ else dir = strmake( "$(DESTDIR)$(mandir)/man%s", section ); ++ output( "install-man-pages:: %s\n", obj_dir_path( make, obj )); ++ output( "\t$(INSTALL_DATA) %s %s/%s.%s\n", obj_dir_path( make, obj ), dir, dest, section ); ++ output( "uninstall::\n" ); ++ output( "\t$(RM) %s/%s.%s\n", dir, dest, section ); + free( dest ); + free( dir ); + strarray_add( &all_targets, xstrdup(obj) ); ++ strarray_add_uniq( &phony_targets, "install-man-pages" ); ++ strarray_add_uniq( &phony_targets, "uninstall" ); + } + else strarray_add( &clean_files, xstrdup(obj) ); + output( "%s: %s\n", obj_dir_path( make, obj ), source->filename ); +@@ -2048,8 +1963,10 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t + } + if (source->file->flags & FLAG_INSTALL) + { +- strarray_add( &make->install_lib_rules, ttf_file ); +- strarray_add( &make->install_lib_rules, strmake( "D$(fontdir)/%s.ttf", obj )); ++ output( "install install-lib::\n" ); ++ output( "\t$(INSTALL_DATA) %s $(DESTDIR)$(fontdir)/%s.ttf\n", ttf_file, obj ); ++ output( "uninstall::\n" ); ++ output( "\t$(RM) $(DESTDIR)$(fontdir)/%s.ttf\n", obj ); + } + if (source->file->flags & FLAG_SFD_FONTS) + { +@@ -2064,10 +1981,19 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t + output( "%s: %s %s\n", obj_dir_path( make, font ), + tools_path( make, "sfnt2fon" ), ttf_file ); + output( "\t%s -o $@ %s %s\n", tools_path( make, "sfnt2fon" ), ttf_file, args ); +- strarray_add( &make->install_lib_rules, xstrdup(font) ); +- strarray_add( &make->install_lib_rules, strmake( "d$(fontdir)/%s", font )); ++ output( "install install-lib:: %s\n", font ); ++ output( "\t$(INSTALL_DATA) %s $(DESTDIR)$(fontdir)/%s\n", ++ obj_dir_path( make, font ), font ); ++ output( "uninstall::\n" ); ++ output( "\t$(RM) $(DESTDIR)$(fontdir)/%s\n", font ); + } + } ++ if (source->file->flags & (FLAG_INSTALL | FLAG_SFD_FONTS)) ++ { ++ strarray_add_uniq( &phony_targets, "install" ); ++ strarray_add_uniq( &phony_targets, "install-lib" ); ++ strarray_add_uniq( &phony_targets, "uninstall" ); ++ } + continue; /* no dependencies */ + } + else if (!strcmp( ext, "svg" )) /* svg file */ +@@ -2441,7 +2367,6 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t + + for (i = 0; i < make->programs.count; i++) + { +- char *program_installed = NULL; + char *program = strmake( "%s%s", make->programs.str[i], exe_ext ); + struct strarray all_libs = empty_strarray; + struct strarray objs = get_expanded_make_var_array( make, +@@ -2464,7 +2389,8 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t + strarray_add( &all_libs, strmake( "-L%s", top_obj_dir_path( make, "libs/wine" ))); + if (ldrpath_local && ldrpath_install) + { +- program_installed = strmake( "%s-installed%s", make->programs.str[i], exe_ext ); ++ char *program_installed = strmake( "%s-installed%s", make->programs.str[i], exe_ext ); ++ + output_filename( ldrpath_local ); + output_filenames( all_libs ); + output_filename( "$(LDFLAGS)" ); +@@ -2483,9 +2409,6 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t + output_filename( "$(LDFLAGS)" ); + output( "\n" ); + strarray_add( &all_targets, program ); +- +- add_install_rule( make, program, program_installed ? program_installed : program, +- strmake( "p$(bindir)/%s", program )); + } + + if (all_targets.count) +@@ -2495,9 +2418,6 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t + output( "\n" ); + } + +- output_install_rules( make, make->install_lib_rules, "install-lib", &phony_targets ); +- output_install_rules( make, make->install_dev_rules, "install-dev", &phony_targets ); +- + strarray_addall( &clean_files, object_files ); + strarray_addall( &clean_files, crossobj_files ); + strarray_addall( &clean_files, res_files ); +@@ -2779,8 +2699,6 @@ static void update_makefile( const char *path ) + make->imports = get_expanded_make_var_array( make, "IMPORTS" ); + make->delayimports = get_expanded_make_var_array( make, "DELAYIMPORTS" ); + make->extradllflags = get_expanded_make_var_array( make, "EXTRADLLFLAGS" ); +- make->install_lib = get_expanded_make_var_array( make, "INSTALL_LIB" ); +- make->install_dev = get_expanded_make_var_array( make, "INSTALL_DEV" ); + + if (make->module && strendswith( make->module, ".a" )) make->staticlib = make->module; + +@@ -2790,9 +2708,6 @@ static void update_makefile( const char *path ) + for (i = 0; i < make->imports.count && !make->use_msvcrt; i++) + make->use_msvcrt = !strncmp( make->imports.str[i], "msvcr", 5 ); + +- make->install_lib_rules = empty_strarray; +- make->install_dev_rules = empty_strarray; +- + make->include_args = empty_strarray; + make->define_args = empty_strarray; + strarray_add( &make->define_args, "-D__WINESRC__" ); +diff --git a/tools/widl/Makefile.in b/tools/widl/Makefile.in +index f8111f3..0c5595e 100644 +--- a/tools/widl/Makefile.in ++++ b/tools/widl/Makefile.in +@@ -23,4 +23,10 @@ widl_EXTRADEFS = -DDEFAULT_INCLUDE_DIR=\"${includedir}/windows/\" + + EXTRALIBS = $(LIBWPP) + +-INSTALL_DEV = $(PROGRAMS) ++.PHONY: install install-dev uninstall ++ ++install install-dev:: widl$(EXEEXT) install-man-pages ++ $(INSTALL_PROGRAM) widl$(EXEEXT) $(DESTDIR)$(bindir)/widl$(EXEEXT) ++ ++uninstall:: ++ $(RM) $(DESTDIR)$(bindir)/widl$(EXEEXT) +diff --git a/tools/winebuild/Makefile.in b/tools/winebuild/Makefile.in +index 0511012..3958902 100644 +--- a/tools/winebuild/Makefile.in ++++ b/tools/winebuild/Makefile.in +@@ -12,4 +12,10 @@ C_SRCS = \ + spec32.c \ + utils.c + +-INSTALL_DEV = $(PROGRAMS) ++.PHONY: install install-dev uninstall ++ ++install install-dev:: winebuild$(EXEEXT) install-man-pages ++ $(INSTALL_PROGRAM) winebuild$(EXEEXT) $(DESTDIR)$(bindir)/winebuild$(EXEEXT) ++ ++uninstall:: ++ $(RM) $(DESTDIR)$(bindir)/winebuild$(EXEEXT) +diff --git a/tools/winedump/Makefile.in b/tools/winedump/Makefile.in +index a93f078..dd36cff 100644 +--- a/tools/winedump/Makefile.in ++++ b/tools/winedump/Makefile.in +@@ -23,10 +23,11 @@ C_SRCS = \ + symbol.c \ + tlb.c + +-INSTALL_DEV = $(PROGRAMS) ++.PHONY: install install-dev uninstall + +-install install-dev:: ++install install-dev:: winedump$(EXEEXT) install-man-pages ++ $(INSTALL_PROGRAM) winedump$(EXEEXT) $(DESTDIR)$(bindir)/winedump$(EXEEXT) + $(INSTALL_SCRIPT) $(srcdir)/function_grep.pl $(DESTDIR)$(bindir)/function_grep.pl + + uninstall:: +- $(RM) $(DESTDIR)$(bindir)/function_grep.pl ++ $(RM) $(DESTDIR)$(bindir)/function_grep.pl $(DESTDIR)$(bindir)/winedump$(EXEEXT) +diff --git a/tools/winegcc/Makefile.in b/tools/winegcc/Makefile.in +index 1a3b2a7..3c0670b 100644 +--- a/tools/winegcc/Makefile.in ++++ b/tools/winegcc/Makefile.in +@@ -16,8 +16,6 @@ winegcc_EXTRADEFS = \ + -DLD="\"$(LD)\"" \ + -DPRELINK="\"$(PRELINK)\"" + +-INSTALL_DEV = $(PROGRAMS) +- + EXTRA_TARGETS = winecpp$(EXEEXT) wineg++$(EXEEXT) + + all: $(EXTRA_TARGETS) +@@ -25,12 +23,15 @@ all: $(EXTRA_TARGETS) + winecpp$(EXEEXT) wineg++$(EXEEXT): winegcc$(EXEEXT) + $(RM) $@ && $(LN_S) winegcc$(EXEEXT) $@ + +-install install-dev:: ++.PHONY: install install-dev uninstall ++ ++install install-dev:: winegcc$(EXEEXT) install-man-pages ++ $(INSTALL_PROGRAM) winegcc$(EXEEXT) $(DESTDIR)$(bindir)/winegcc$(EXEEXT) + cd $(DESTDIR)$(bindir) && $(RM) wineg++$(EXEEXT) && $(LN_S) winegcc$(EXEEXT) wineg++$(EXEEXT) + cd $(DESTDIR)$(bindir) && $(RM) winecpp$(EXEEXT) && $(LN_S) winegcc$(EXEEXT) winecpp$(EXEEXT) + cd $(DESTDIR)$(mandir)/man$(prog_manext) && $(RM) wineg++.$(prog_manext) && $(LN_S) winegcc.$(prog_manext) wineg++.$(prog_manext) + cd $(DESTDIR)$(mandir)/man$(prog_manext) && $(RM) winecpp.$(prog_manext) && $(LN_S) winegcc.$(prog_manext) winecpp.$(prog_manext) + + uninstall:: +- $(RM) $(DESTDIR)$(bindir)/wineg++$(EXEEXT) $(DESTDIR)$(bindir)/winecpp$(EXEEXT) ++ $(RM) $(DESTDIR)$(bindir)/winegcc$(EXEEXT) $(DESTDIR)$(bindir)/wineg++$(EXEEXT) $(DESTDIR)$(bindir)/winecpp$(EXEEXT) + $(RM) $(DESTDIR)$(mandir)/man$(prog_manext)/wineg++.$(prog_manext) $(DESTDIR)$(mandir)/man$(prog_manext)/winecpp.$(prog_manext) +diff --git a/tools/winemaker/Makefile.in b/tools/winemaker/Makefile.in +index 6afa016..7095ecf 100644 +--- a/tools/winemaker/Makefile.in ++++ b/tools/winemaker/Makefile.in +@@ -3,9 +3,9 @@ MANPAGES = \ + winemaker.fr.UTF-8.man.in \ + winemaker.man.in + +-INSTALL_DEV = winemaker ++.PHONY: install install-dev uninstall + +-install install-dev:: ++install install-dev:: install-man-pages + $(INSTALL_SCRIPT) $(srcdir)/winemaker $(DESTDIR)$(bindir)/winemaker + + uninstall:: +diff --git a/tools/wmc/Makefile.in b/tools/wmc/Makefile.in +index 41b7236..12a917d 100644 +--- a/tools/wmc/Makefile.in ++++ b/tools/wmc/Makefile.in +@@ -13,4 +13,10 @@ BISON_SRCS = mcy.y + + EXTRALIBS = $(GETTEXTPO_LIBS) $(LIBWINE_STATIC) + +-INSTALL_DEV = $(PROGRAMS) ++.PHONY: install install-dev uninstall ++ ++install install-dev:: wmc$(EXEEXT) install-man-pages ++ $(INSTALL_PROGRAM) wmc$(EXEEXT) $(DESTDIR)$(bindir)/wmc$(EXEEXT) ++ ++uninstall:: ++ $(RM) $(DESTDIR)$(bindir)/wmc$(EXEEXT) +diff --git a/tools/wrc/Makefile.in b/tools/wrc/Makefile.in +index 37dbe03..b6f8093 100644 +--- a/tools/wrc/Makefile.in ++++ b/tools/wrc/Makefile.in +@@ -19,4 +19,10 @@ wrc_EXTRADEFS = -DINCLUDEDIR="\"${includedir}\"" + + EXTRALIBS = $(GETTEXTPO_LIBS) $(LIBWPP) $(LIBWINE_STATIC) + +-INSTALL_DEV = $(PROGRAMS) ++.PHONY: install install-dev uninstall ++ ++install install-dev:: wrc$(EXEEXT) install-man-pages ++ $(INSTALL_PROGRAM) wrc$(EXEEXT) $(DESTDIR)$(bindir)/wrc$(EXEEXT) ++ ++uninstall:: ++ $(RM) $(DESTDIR)$(bindir)/wrc$(EXEEXT) +-- +2.4.3 + +From d6efc2ae486683881d5e13f455cc1e3f04a6b3c4 Mon Sep 17 00:00:00 2001 +From: Michael Cronenworth +Date: Wed, 4 Nov 2015 23:17:06 -0600 +Subject: [PATCH 07/12] Revert "makefiles: Automatically add RPATH support for + programs that use libwine." + +This reverts commit a1515c68d4d4b4334f44b098debba2548a16ca38. +--- + configure | 48 +++++++++++++++++++++++++++++------------------- + configure.ac | 48 +++++++++++++++++++++++++++++------------------- + loader/Makefile.in | 2 ++ + server/Makefile.in | 14 ++++++++++++-- + tools/makedep.c | 24 ------------------------ + 5 files changed, 72 insertions(+), 64 deletions(-) + +diff --git a/configure b/configure +index 8cf26e4..534afff 100755 +--- a/configure ++++ b/configure +@@ -7847,14 +7847,14 @@ distclean:: + + wine_binary="wine" + test "x$enable_win64" != "xyes" || wine_binary="wine64" +-loader_programs="$wine_binary" ++loader_programs="$wine_binary wine-installed" + libwine_soversion=`expr $libwine_version : '\([0-9]*\)\..*'` + + LOADER_RULES=" + all: wine.inf + +-install install-lib:: $wine_binary-installed +- \$(INSTALL_PROGRAM) $wine_binary-installed \$(DESTDIR)\$(bindir)/$wine_binary ++install install-lib:: wine-installed ++ \$(INSTALL_PROGRAM) wine-installed \$(DESTDIR)\$(bindir)/$wine_binary + + uninstall:: + \$(RM) \$(DESTDIR)\$(bindir)/$wine_binary +@@ -8017,7 +8017,7 @@ done + LIBEXT="dylib" + DLLFLAGS="$DLLFLAGS -fPIC" + LIBWINE_LDFLAGS="-multiply_defined suppress" +- LDRPATH_INSTALL="-Wl,-rpath,@loader_path/\`\$(MAKEDEP) -R \${bindir} \${libdir}\`" ++ LDRPATH_INSTALL="-Wl,-rpath,@loader_path/\`\$(MAKEDEP) -R \$(bindir) \$(libdir)\`" + LDRPATH_LOCAL="-Wl,-rpath,@loader_path/\$(top_builddir)/libs/wine" + COREFOUNDATION_LIBS="-framework CoreFoundation" + +@@ -8262,9 +8262,11 @@ uninstall:: + + + as_fn_append LOADER_RULES " +-${wine_binary}_OBJS = main.o +-${wine_binary}_LDFLAGS = $LDEXECFLAGS -lwine \$(PTHREAD_LIBS) +-$wine_binary $wine_binary-installed: wine_info.plist ++$wine_binary: main.o wine_info.plist ++ \$(CC) -o \$@ $LDEXECFLAGS main.o \$(LIBWINE) \$(LIBPORT) \$(EXTRALIBS) \$(LDFLAGS) \$(LDRPATH_LOCAL) ++ ++wine-installed: main.o wine_info.plist ++ \$(CC) -o \$@ $LDEXECFLAGS main.o \$(LIBWINE) \$(LIBPORT) \$(EXTRALIBS) \$(LDFLAGS) \$(LDRPATH_INSTALL) + " + ;; + +@@ -8323,7 +8325,7 @@ eval ac_res=\$$as_ac_var + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 + $as_echo "$ac_res" >&6; } + if eval test \"x\$"$as_ac_var"\" = x"yes"; then : +- LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \${bindir} \${libdir}\`" ++ LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \$(bindir) \$(libdir)\`" + LDRPATH_LOCAL="-Wl,--rpath,\\\$\$ORIGIN/\$(top_builddir)/libs/wine" + else + as_ac_var=`$as_echo "ac_cv_cflags_-fPIC -Wl,-R,\\$ORIGIN/../lib" | $as_tr_sh` +@@ -8351,7 +8353,7 @@ eval ac_res=\$$as_ac_var + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 + $as_echo "$ac_res" >&6; } + if eval test \"x\$"$as_ac_var"\" = x"yes"; then : +- LDRPATH_INSTALL="-Wl,-R,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \${bindir} \${libdir}\`" ++ LDRPATH_INSTALL="-Wl,-R,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \$(bindir) \$(libdir)\`" + LDRPATH_LOCAL="-Wl,-R,\\\$\$ORIGIN/\$(top_builddir)/libs/wine" + fi + fi +@@ -8430,8 +8432,11 @@ uninstall:: + + + as_fn_append LOADER_RULES " +-${wine_binary}_OBJS = main.o +-${wine_binary}_LDFLAGS = $LDEXECFLAGS -lwine \$(PTHREAD_LIBS) ++$wine_binary: main.o ++ \$(CC) -o \$@ $LDEXECFLAGS main.o \$(LIBWINE) \$(LIBPORT) \$(EXTRALIBS) \$(LDFLAGS) \$(LDRPATH_LOCAL) ++ ++wine-installed: main.o ++ \$(CC) -o \$@ $LDEXECFLAGS main.o \$(LIBWINE) \$(LIBPORT) \$(EXTRALIBS) \$(LDFLAGS) \$(LDRPATH_INSTALL) + " + ;; + +@@ -8594,7 +8599,7 @@ eval ac_res=\$$as_ac_var + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 + $as_echo "$ac_res" >&6; } + if eval test \"x\$"$as_ac_var"\" = x"yes"; then : +- LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \${bindir} \${libdir}\`" ++ LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \$(bindir) \$(libdir)\`" + LDRPATH_LOCAL="-Wl,--rpath,\\\$\$ORIGIN/\$(top_builddir)/libs/wine" + else + as_ac_var=`$as_echo "ac_cv_cflags_-fPIC -Wl,-R,\\$ORIGIN/../lib" | $as_tr_sh` +@@ -8622,7 +8627,7 @@ eval ac_res=\$$as_ac_var + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 + $as_echo "$ac_res" >&6; } + if eval test \"x\$"$as_ac_var"\" = x"yes"; then : +- LDRPATH_INSTALL="-Wl,-R,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \${bindir} \${libdir}\`" ++ LDRPATH_INSTALL="-Wl,-R,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \$(bindir) \$(libdir)\`" + LDRPATH_LOCAL="-Wl,-R,\\\$\$ORIGIN/\$(top_builddir)/libs/wine" + fi + fi +@@ -8814,8 +8819,11 @@ uninstall:: + + + as_fn_append LOADER_RULES " +-${wine_binary}_OBJS = main.o +-${wine_binary}_LDFLAGS = $LDEXECFLAGS -lwine \$(PTHREAD_LIBS) ++$wine_binary: main.o ++ \$(CC) -o \$@ $LDEXECFLAGS main.o \$(LIBWINE) \$(LIBPORT) \$(EXTRALIBS) \$(LDFLAGS) \$(LDRPATH_LOCAL) ++ ++wine-installed: main.o ++ \$(CC) -o \$@ $LDEXECFLAGS main.o \$(LIBWINE) \$(LIBPORT) \$(EXTRALIBS) \$(LDFLAGS) \$(LDRPATH_INSTALL) + " + if test -z "$with_wine64" + then +@@ -14942,21 +14950,23 @@ case $host_os in + test "$wine_binary" = wine || wine_fn_ignore_file "loader/wine-preloader" + loader_programs="$loader_programs $wine_binary-preloader" + as_fn_append LOADER_RULES " +-preloader_EXTRADEFS = $BUILTINFLAG +-${wine_binary}_preloader_OBJS = preloader.o +-${wine_binary}_preloader_LDFLAGS = -static -nostartfiles -nodefaultlibs -Wl,-Ttext=0x7c400000 ++$wine_binary-preloader: preloader.o ++ \$(CC) -o \$@ -static -nostartfiles -nodefaultlibs -Wl,-Ttext=0x7c400000 preloader.o \$(LIBPORT) \$(LDFLAGS) + + install install-lib:: $wine_binary-preloader + \$(INSTALL_PROGRAM) $wine_binary-preloader \$(DESTDIR)\$(bindir)/$wine_binary-preloader + + uninstall:: + \$(RM) \$(DESTDIR)\$(bindir)/$wine_binary-preloader ++ ++preloader_EXTRADEFS = $BUILTINFLAG + " ;; + esac + ;; + esac + as_fn_append LOADER_RULES " +-PROGRAMS = $loader_programs ++EXTRA_TARGETS = $loader_programs ++all: $loader_programs + " + + +diff --git a/configure.ac b/configure.ac +index ff74f8d..cdc68fe 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -686,14 +686,14 @@ WINE_CONFIG_HELPERS + + wine_binary="wine" + test "x$enable_win64" != "xyes" || wine_binary="wine64" +-loader_programs="$wine_binary" ++loader_programs="$wine_binary wine-installed" + libwine_soversion=`expr $libwine_version : '\([[0-9]]*\)\..*'` + + AC_SUBST(LOADER_RULES,[" + all: wine.inf + +-install install-lib:: $wine_binary-installed +- \$(INSTALL_PROGRAM) $wine_binary-installed \$(DESTDIR)\$(bindir)/$wine_binary ++install install-lib:: wine-installed ++ \$(INSTALL_PROGRAM) wine-installed \$(DESTDIR)\$(bindir)/$wine_binary + + uninstall:: + \$(RM) \$(DESTDIR)\$(bindir)/$wine_binary +@@ -754,7 +754,7 @@ uninstall:: + LIBEXT="dylib" + DLLFLAGS="$DLLFLAGS -fPIC" + LIBWINE_LDFLAGS="-multiply_defined suppress" +- LDRPATH_INSTALL="-Wl,-rpath,@loader_path/\`\$(MAKEDEP) -R \${bindir} \${libdir}\`" ++ LDRPATH_INSTALL="-Wl,-rpath,@loader_path/\`\$(MAKEDEP) -R \$(bindir) \$(libdir)\`" + LDRPATH_LOCAL="-Wl,-rpath,@loader_path/\$(top_builddir)/libs/wine" + dnl declare needed frameworks + AC_SUBST(COREFOUNDATION_LIBS,"-framework CoreFoundation") +@@ -891,9 +891,11 @@ uninstall:: + "]) + + AS_VAR_APPEND([LOADER_RULES],[" +-${wine_binary}_OBJS = main.o +-${wine_binary}_LDFLAGS = $LDEXECFLAGS -lwine \$(PTHREAD_LIBS) +-$wine_binary $wine_binary-installed: wine_info.plist ++$wine_binary: main.o wine_info.plist ++ \$(CC) -o \$@ $LDEXECFLAGS main.o \$(LIBWINE) \$(LIBPORT) \$(EXTRALIBS) \$(LDFLAGS) \$(LDRPATH_LOCAL) ++ ++wine-installed: main.o wine_info.plist ++ \$(CC) -o \$@ $LDEXECFLAGS main.o \$(LIBWINE) \$(LIBPORT) \$(EXTRALIBS) \$(LDFLAGS) \$(LDRPATH_INSTALL) + "]) + ;; + +@@ -905,10 +907,10 @@ $wine_binary $wine_binary-installed: wine_info.plist + WINE_TRY_CFLAGS([-fPIC -Wl,--export-dynamic], + [LDEXECFLAGS="-Wl,--export-dynamic"]) + WINE_TRY_CFLAGS([-fPIC -Wl,--rpath,\$ORIGIN/../lib], +- [LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \${bindir} \${libdir}\`" ++ [LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \$(bindir) \$(libdir)\`" + LDRPATH_LOCAL="-Wl,--rpath,\\\$\$ORIGIN/\$(top_builddir)/libs/wine"], + [WINE_TRY_CFLAGS([-fPIC -Wl,-R,\$ORIGIN/../lib], +- [LDRPATH_INSTALL="-Wl,-R,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \${bindir} \${libdir}\`" ++ [LDRPATH_INSTALL="-Wl,-R,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \$(bindir) \$(libdir)\`" + LDRPATH_LOCAL="-Wl,-R,\\\$\$ORIGIN/\$(top_builddir)/libs/wine"])]) + + WINE_TRY_CFLAGS([-Wl,--enable-new-dtags], +@@ -938,8 +940,11 @@ uninstall:: + "]) + + AS_VAR_APPEND([LOADER_RULES],[" +-${wine_binary}_OBJS = main.o +-${wine_binary}_LDFLAGS = $LDEXECFLAGS -lwine \$(PTHREAD_LIBS) ++$wine_binary: main.o ++ \$(CC) -o \$@ $LDEXECFLAGS main.o \$(LIBWINE) \$(LIBPORT) \$(EXTRALIBS) \$(LDFLAGS) \$(LDRPATH_LOCAL) ++ ++wine-installed: main.o ++ \$(CC) -o \$@ $LDEXECFLAGS main.o \$(LIBWINE) \$(LIBPORT) \$(EXTRALIBS) \$(LDFLAGS) \$(LDRPATH_INSTALL) + "]) + ;; + +@@ -966,10 +971,10 @@ ${wine_binary}_LDFLAGS = $LDEXECFLAGS -lwine \$(PTHREAD_LIBS) + [LDEXECFLAGS="-Wl,--export-dynamic"]) + + WINE_TRY_CFLAGS([-fPIC -Wl,--rpath,\$ORIGIN/../lib], +- [LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \${bindir} \${libdir}\`" ++ [LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \$(bindir) \$(libdir)\`" + LDRPATH_LOCAL="-Wl,--rpath,\\\$\$ORIGIN/\$(top_builddir)/libs/wine"], + [WINE_TRY_CFLAGS([-fPIC -Wl,-R,\$ORIGIN/../lib], +- [LDRPATH_INSTALL="-Wl,-R,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \${bindir} \${libdir}\`" ++ [LDRPATH_INSTALL="-Wl,-R,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \$(bindir) \$(libdir)\`" + LDRPATH_LOCAL="-Wl,-R,\\\$\$ORIGIN/\$(top_builddir)/libs/wine"])]) + + WINE_TRY_CFLAGS([-Wl,--enable-new-dtags], +@@ -1028,8 +1033,11 @@ uninstall:: + "]) + + AS_VAR_APPEND([LOADER_RULES],[" +-${wine_binary}_OBJS = main.o +-${wine_binary}_LDFLAGS = $LDEXECFLAGS -lwine \$(PTHREAD_LIBS) ++$wine_binary: main.o ++ \$(CC) -o \$@ $LDEXECFLAGS main.o \$(LIBWINE) \$(LIBPORT) \$(EXTRALIBS) \$(LDFLAGS) \$(LDRPATH_LOCAL) ++ ++wine-installed: main.o ++ \$(CC) -o \$@ $LDEXECFLAGS main.o \$(LIBWINE) \$(LIBPORT) \$(EXTRALIBS) \$(LDFLAGS) \$(LDRPATH_INSTALL) + "]) + if test -z "$with_wine64" + then +@@ -2036,21 +2044,23 @@ case $host_os in + test "$wine_binary" = wine || WINE_IGNORE_FILE("loader/wine-preloader") + loader_programs="$loader_programs $wine_binary-preloader" + AS_VAR_APPEND([LOADER_RULES],[" +-preloader_EXTRADEFS = $BUILTINFLAG +-${wine_binary}_preloader_OBJS = preloader.o +-${wine_binary}_preloader_LDFLAGS = -static -nostartfiles -nodefaultlibs -Wl,-Ttext=0x7c400000 ++$wine_binary-preloader: preloader.o ++ \$(CC) -o \$@ -static -nostartfiles -nodefaultlibs -Wl,-Ttext=0x7c400000 preloader.o \$(LIBPORT) \$(LDFLAGS) + + install install-lib:: $wine_binary-preloader + \$(INSTALL_PROGRAM) $wine_binary-preloader \$(DESTDIR)\$(bindir)/$wine_binary-preloader + + uninstall:: + \$(RM) \$(DESTDIR)\$(bindir)/$wine_binary-preloader ++ ++preloader_EXTRADEFS = $BUILTINFLAG + "]) ;; + esac + ;; + esac + AS_VAR_APPEND([LOADER_RULES],[" +-PROGRAMS = $loader_programs ++EXTRA_TARGETS = $loader_programs ++all: $loader_programs + "]) + + dnl **** Check for functions **** +diff --git a/loader/Makefile.in b/loader/Makefile.in +index 7719801..95e4798 100644 +--- a/loader/Makefile.in ++++ b/loader/Makefile.in +@@ -1,3 +1,5 @@ ++EXTRALIBS = $(PTHREAD_LIBS) ++ + C_SRCS = \ + main.c \ + preloader.c +diff --git a/server/Makefile.in b/server/Makefile.in +index 7a1ac11..e7fb603 100644 +--- a/server/Makefile.in ++++ b/server/Makefile.in +@@ -1,4 +1,4 @@ +-PROGRAMS = wineserver ++EXTRALIBS = $(POLL_LIBS) $(RT_LIBS) + + C_SRCS = \ + async.c \ +@@ -45,12 +45,22 @@ C_SRCS = \ + window.c \ + winstation.c + ++EXTRA_TARGETS = wineserver wineserver-installed ++ + MANPAGES = \ + wineserver.de.UTF-8.man.in \ + wineserver.fr.UTF-8.man.in \ + wineserver.man.in + +-EXTRALIBS = -lwine $(POLL_LIBS) $(RT_LIBS) ++OBJS = $(C_SRCS:.c=.o) ++ ++all: $(EXTRA_TARGETS) ++ ++wineserver: $(OBJS) ++ $(CC) -o $@ $(OBJS) $(LIBWINE) $(LIBPORT) $(LDFLAGS) $(EXTRALIBS) $(LIBS) $(LDRPATH_LOCAL) ++ ++wineserver-installed: $(OBJS) ++ $(CC) -o $@ $(OBJS) $(LIBWINE) $(LIBPORT) $(LDFLAGS) $(EXTRALIBS) $(LIBS) $(LDRPATH_INSTALL) + + .PHONY: install install-lib uninstall + +diff --git a/tools/makedep.c b/tools/makedep.c +index 295e5e8..8c5abde 100644 +--- a/tools/makedep.c ++++ b/tools/makedep.c +@@ -1778,8 +1778,6 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t + struct strarray subdirs = empty_strarray; + struct strarray phony_targets = empty_strarray; + struct strarray all_targets = empty_strarray; +- char *ldrpath_local = get_expanded_make_variable( make, "LDRPATH_LOCAL" ); +- char *ldrpath_install = get_expanded_make_variable( make, "LDRPATH_INSTALL" ); + + for (i = 0; i < linguas.count; i++) + strarray_add( &mo_files, strmake( "%s/%s.mo", top_obj_dir_path( make, "po" ), linguas.str[i] )); +@@ -2383,28 +2381,6 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t + strarray_addall( &all_libs, libs ); + strarray_addall( &all_libs, get_expanded_make_var_array( make, + file_local_var( make->programs.str[i], "LDFLAGS" ))); +- +- if (strarray_exists( &all_libs, "-lwine" )) +- { +- strarray_add( &all_libs, strmake( "-L%s", top_obj_dir_path( make, "libs/wine" ))); +- if (ldrpath_local && ldrpath_install) +- { +- char *program_installed = strmake( "%s-installed%s", make->programs.str[i], exe_ext ); +- +- output_filename( ldrpath_local ); +- output_filenames( all_libs ); +- output_filename( "$(LDFLAGS)" ); +- output( "\n" ); +- output( "%s:", obj_dir_path( make, program_installed ) ); +- output_filenames_obj_dir( make, objs ); +- output( "\n" ); +- output( "\t$(CC) -o $@" ); +- output_filenames_obj_dir( make, objs ); +- output_filename( ldrpath_install ); +- strarray_add( &all_targets, program_installed ); +- } +- } +- + output_filenames( all_libs ); + output_filename( "$(LDFLAGS)" ); + output( "\n" ); +-- +2.4.3 + +From 15ac6de3059fb8b0ebcf0b682a9fe013aba63f33 Mon Sep 17 00:00:00 2001 +From: Michael Cronenworth +Date: Wed, 4 Nov 2015 23:18:40 -0600 +Subject: [PATCH 08/12] Revert "makefiles: Read variable definitions from the + top makefile instead of using Make.vars.in." + +This reverts commit ef557a8a8a47100a3a0eb0662c93e38634afed89. + +# Conflicts: +# aclocal.m4 +# configure +# tools/makedep.c +--- + configure | 3 +-- + configure.ac | 3 +-- + server/Makefile.in | 4 +--- + tools/Makefile.in | 16 ++++++++++++++-- + tools/make_makefiles | 1 - + tools/makedep.c | 46 +++------------------------------------------ + tools/sfnt2fon/Makefile.in | 7 +++++-- + tools/widl/Makefile.in | 9 ++++++--- + tools/winebuild/Makefile.in | 9 +++++++-- + tools/winedump/Makefile.in | 9 +++++++-- + tools/winegcc/Makefile.in | 12 +++++++----- + tools/wmc/Makefile.in | 8 ++++++-- + tools/wrc/Makefile.in | 8 ++++++-- + 13 files changed, 64 insertions(+), 71 deletions(-) + +diff --git a/configure b/configure +index 534afff..4717706 100755 +--- a/configure ++++ b/configure +@@ -14965,8 +14965,7 @@ preloader_EXTRADEFS = $BUILTINFLAG + ;; + esac + as_fn_append LOADER_RULES " +-EXTRA_TARGETS = $loader_programs +-all: $loader_programs ++PROGRAMS = $loader_programs + " + + +diff --git a/configure.ac b/configure.ac +index cdc68fe..c915638 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -2059,8 +2059,7 @@ preloader_EXTRADEFS = $BUILTINFLAG + ;; + esac + AS_VAR_APPEND([LOADER_RULES],[" +-EXTRA_TARGETS = $loader_programs +-all: $loader_programs ++PROGRAMS = $loader_programs + "]) + + dnl **** Check for functions **** +diff --git a/server/Makefile.in b/server/Makefile.in +index e7fb603..19a4fac 100644 +--- a/server/Makefile.in ++++ b/server/Makefile.in +@@ -45,7 +45,7 @@ C_SRCS = \ + window.c \ + winstation.c + +-EXTRA_TARGETS = wineserver wineserver-installed ++PROGRAMS = wineserver wineserver-installed + + MANPAGES = \ + wineserver.de.UTF-8.man.in \ +@@ -54,8 +54,6 @@ MANPAGES = \ + + OBJS = $(C_SRCS:.c=.o) + +-all: $(EXTRA_TARGETS) +- + wineserver: $(OBJS) + $(CC) -o $@ $(OBJS) $(LIBWINE) $(LIBPORT) $(LDFLAGS) $(EXTRALIBS) $(LIBS) $(LDRPATH_LOCAL) + +diff --git a/tools/Makefile.in b/tools/Makefile.in +index bc13cc9..fa7e990 100644 +--- a/tools/Makefile.in ++++ b/tools/Makefile.in +@@ -1,10 +1,22 @@ + PROGRAMS = \ +- make_xftmpl ++ make_xftmpl$(EXEEXT) + + C_SRCS = \ +- make_xftmpl.c ++ make_xftmpl.c \ ++ makedep.c + + IN_SRCS = \ + wineapploader.in + + all: wineapploader ++ ++make_xftmpl$(EXEEXT): make_xftmpl.o ++ $(CC) $(CFLAGS) -o $@ make_xftmpl.o $(LIBPORT) $(LDFLAGS) ++ ++.PHONY: install install-dev uninstall ++ ++install install-dev:: install-man-pages ++ $(INSTALL_SCRIPT) $(srcdir)/winemaker $(DESTDIR)$(bindir)/winemaker ++ ++uninstall:: ++ $(RM) $(DESTDIR)$(bindir)/winemaker +diff --git a/tools/make_makefiles b/tools/make_makefiles +index 069d0ae..266f33a 100755 +--- a/tools/make_makefiles ++++ b/tools/make_makefiles +@@ -110,7 +110,6 @@ my %ignored_source_files = ( + "dlls/wineps.drv/afm2c.c" => 1, + "dlls/wineps.drv/mkagl.c" => 1, + "programs/winetest/dist.rc" => 1, +- "tools/makedep.c" => 1, + ); + + my (@linguas, @makefiles, %makefiles); +diff --git a/tools/makedep.c b/tools/makedep.c +index 8c5abde..3c30a0c 100644 +--- a/tools/makedep.c ++++ b/tools/makedep.c +@@ -149,7 +149,6 @@ struct makefile + struct strarray vars; + struct strarray include_args; + struct strarray define_args; +- struct strarray programs; + struct strarray appmode; + struct strarray imports; + struct strarray delayimports; +@@ -1561,19 +1560,6 @@ static struct strarray get_expanded_make_var_array( struct makefile *make, const + + + /******************************************************************* +- * file_local_var +- */ +-static char *file_local_var( const char *file, const char *name ) +-{ +- char *p, *var; +- +- var = strmake( "%s_%s", file, name ); +- for (p = var; *p; p++) if (!isalnum( *p )) *p = '_'; +- return var; +-} +- +- +-/******************************************************************* + * set_make_variable + */ + static int set_make_variable( struct strarray *array, const char *assignment ) +@@ -1777,7 +1763,7 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t + struct strarray includes = empty_strarray; + struct strarray subdirs = empty_strarray; + struct strarray phony_targets = empty_strarray; +- struct strarray all_targets = empty_strarray; ++ struct strarray all_targets = get_expanded_make_var_array( make, "PROGRAMS" ); + + for (i = 0; i < linguas.count; i++) + strarray_add( &mo_files, strmake( "%s/%s.mo", top_obj_dir_path( make, "po" ), linguas.str[i] )); +@@ -1807,7 +1793,7 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t + strarray_add_uniq( &subdirs, subdir ); + } + +- extradefs = get_expanded_make_var_array( make, file_local_var( obj, "EXTRADEFS" )); ++ extradefs = get_expanded_make_var_array( make, strmake( "%s_EXTRADEFS", obj )); + + if (!strcmp( ext, "y" )) /* yacc file */ + { +@@ -2283,7 +2269,7 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t + + for (i = 0; i < make->imports.count; i++) + strarray_add( &all_libs, strmake( "-l%s", make->imports.str[i] )); +- strarray_addall( &all_libs, libs ); ++ strarray_addall( &all_libs, get_expanded_make_var_array( make, "LIBS" )); + + strarray_add( &all_targets, strmake( "%s%s", testmodule, dll_ext )); + strarray_add( &clean_files, strmake( "%s%s", stripped, dll_ext )); +@@ -2363,30 +2349,6 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t + *testlist_files = strarray_replace_extension( &ok_files, ".ok", "" ); + } + +- for (i = 0; i < make->programs.count; i++) +- { +- char *program = strmake( "%s%s", make->programs.str[i], exe_ext ); +- struct strarray all_libs = empty_strarray; +- struct strarray objs = get_expanded_make_var_array( make, +- file_local_var( make->programs.str[i], "OBJS" )); +- +- if (!objs.count) objs = object_files; +- output( "%s:", obj_dir_path( make, program ) ); +- output_filenames_obj_dir( make, objs ); +- output( "\n" ); +- output( "\t$(CC) -o $@" ); +- output_filenames_obj_dir( make, objs ); +- strarray_add( &all_libs, top_obj_dir_path( make, "libs/port/libwine_port.a" )); +- strarray_addall( &all_libs, get_expanded_make_var_array( make, "EXTRALIBS" )); +- strarray_addall( &all_libs, libs ); +- strarray_addall( &all_libs, get_expanded_make_var_array( make, +- file_local_var( make->programs.str[i], "LDFLAGS" ))); +- output_filenames( all_libs ); +- output_filename( "$(LDFLAGS)" ); +- output( "\n" ); +- strarray_add( &all_targets, program ); +- } +- + if (all_targets.count) + { + output( "all:" ); +@@ -2670,7 +2632,6 @@ static void update_makefile( const char *path ) + make->staticlib = get_expanded_make_variable( make, "STATICLIB" ); + make->importlib = get_expanded_make_variable( make, "IMPORTLIB" ); + +- make->programs = get_expanded_make_var_array( make, "PROGRAMS" ); + make->appmode = get_expanded_make_var_array( make, "APPMODE" ); + make->imports = get_expanded_make_var_array( make, "IMPORTS" ); + make->delayimports = get_expanded_make_var_array( make, "DELAYIMPORTS" ); +@@ -2855,7 +2816,6 @@ int main( int argc, char *argv[] ) + + if (root_src_dir && !strcmp( root_src_dir, "." )) root_src_dir = NULL; + if (tools_dir && !strcmp( tools_dir, "." )) tools_dir = NULL; +- if (!exe_ext) exe_ext = ""; + if (!tools_ext) tools_ext = ""; + if (!dll_prefix) dll_prefix = ""; + if (!man_ext) man_ext = "3w"; +diff --git a/tools/sfnt2fon/Makefile.in b/tools/sfnt2fon/Makefile.in +index 5a92d85..a975154 100644 +--- a/tools/sfnt2fon/Makefile.in ++++ b/tools/sfnt2fon/Makefile.in +@@ -1,6 +1,9 @@ +-PROGRAMS = sfnt2fon ++PROGRAMS = sfnt2fon$(EXEEXT) + + C_SRCS = sfnt2fon.c + + EXTRAINCL = $(FREETYPE_CFLAGS) +-EXTRALIBS = $(FREETYPE_LIBS) $(LIBWINE_STATIC) ++EXTRALIBS = $(FREETYPE_LIBS) ++ ++sfnt2fon$(EXEEXT): sfnt2fon.o ++ $(CC) $(CFLAGS) -o $@ sfnt2fon.o $(LIBWINE_STATIC) $(LIBPORT) $(EXTRALIBS) $(LDFLAGS) +diff --git a/tools/widl/Makefile.in b/tools/widl/Makefile.in +index 0c5595e..a57f54f 100644 +--- a/tools/widl/Makefile.in ++++ b/tools/widl/Makefile.in +@@ -1,4 +1,4 @@ +-PROGRAMS = widl ++PROGRAMS = widl$(EXEEXT) + MANPAGES = widl.man.in + + C_SRCS = \ +@@ -21,11 +21,14 @@ BISON_SRCS = parser.y + + widl_EXTRADEFS = -DDEFAULT_INCLUDE_DIR=\"${includedir}/windows/\" + +-EXTRALIBS = $(LIBWPP) ++OBJS = $(C_SRCS:.c=.o) $(BISON_SRCS:.y=.tab.o) $(LEX_SRCS:.l=.yy.o) ++ ++widl$(EXEEXT): $(OBJS) $(LIBWPP) ++ $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBWPP) $(LIBPORT) $(LDFLAGS) + + .PHONY: install install-dev uninstall + +-install install-dev:: widl$(EXEEXT) install-man-pages ++install install-dev:: $(PROGRAMS) install-man-pages + $(INSTALL_PROGRAM) widl$(EXEEXT) $(DESTDIR)$(bindir)/widl$(EXEEXT) + + uninstall:: +diff --git a/tools/winebuild/Makefile.in b/tools/winebuild/Makefile.in +index 3958902..f5f4603 100644 +--- a/tools/winebuild/Makefile.in ++++ b/tools/winebuild/Makefile.in +@@ -1,4 +1,4 @@ +-PROGRAMS = winebuild ++PROGRAMS = winebuild$(EXEEXT) + MANPAGES = winebuild.man.in + + C_SRCS = \ +@@ -12,9 +12,14 @@ C_SRCS = \ + spec32.c \ + utils.c + ++OBJS = $(C_SRCS:.c=.o) ++ ++winebuild$(EXEEXT): $(OBJS) ++ $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBPORT) $(LDFLAGS) ++ + .PHONY: install install-dev uninstall + +-install install-dev:: winebuild$(EXEEXT) install-man-pages ++install install-dev:: $(PROGRAMS) install-man-pages + $(INSTALL_PROGRAM) winebuild$(EXEEXT) $(DESTDIR)$(bindir)/winebuild$(EXEEXT) + + uninstall:: +diff --git a/tools/winedump/Makefile.in b/tools/winedump/Makefile.in +index dd36cff..7b925c3 100644 +--- a/tools/winedump/Makefile.in ++++ b/tools/winedump/Makefile.in +@@ -1,4 +1,4 @@ +-PROGRAMS = winedump ++PROGRAMS = winedump$(EXEEXT) + MANPAGES = winedump.man.in + + C_SRCS = \ +@@ -23,9 +23,14 @@ C_SRCS = \ + symbol.c \ + tlb.c + ++OBJS = $(C_SRCS:.c=.o) ++ ++winedump$(EXEEXT): $(OBJS) ++ $(CC) $(CFLAGS) -o winedump$(EXEEXT) $(OBJS) $(LIBPORT) $(LDFLAGS) ++ + .PHONY: install install-dev uninstall + +-install install-dev:: winedump$(EXEEXT) install-man-pages ++install install-dev:: $(PROGRAMS) install-man-pages + $(INSTALL_PROGRAM) winedump$(EXEEXT) $(DESTDIR)$(bindir)/winedump$(EXEEXT) + $(INSTALL_SCRIPT) $(srcdir)/function_grep.pl $(DESTDIR)$(bindir)/function_grep.pl + +diff --git a/tools/winegcc/Makefile.in b/tools/winegcc/Makefile.in +index 3c0670b..370a2e4 100644 +--- a/tools/winegcc/Makefile.in ++++ b/tools/winegcc/Makefile.in +@@ -1,4 +1,7 @@ +-PROGRAMS = winegcc ++PROGRAMS = \ ++ winecpp$(EXEEXT) \ ++ winegcc$(EXEEXT) \ ++ wineg++$(EXEEXT) + + MANPAGES = winegcc.man.in + +@@ -16,16 +19,15 @@ winegcc_EXTRADEFS = \ + -DLD="\"$(LD)\"" \ + -DPRELINK="\"$(PRELINK)\"" + +-EXTRA_TARGETS = winecpp$(EXEEXT) wineg++$(EXEEXT) +- +-all: $(EXTRA_TARGETS) ++winegcc$(EXEEXT): winegcc.o utils.o ++ $(CC) $(CFLAGS) -o $@ winegcc.o utils.o $(LIBPORT) $(LDFLAGS) + + winecpp$(EXEEXT) wineg++$(EXEEXT): winegcc$(EXEEXT) + $(RM) $@ && $(LN_S) winegcc$(EXEEXT) $@ + + .PHONY: install install-dev uninstall + +-install install-dev:: winegcc$(EXEEXT) install-man-pages ++install install-dev:: $(PROGRAMS) install-man-pages + $(INSTALL_PROGRAM) winegcc$(EXEEXT) $(DESTDIR)$(bindir)/winegcc$(EXEEXT) + cd $(DESTDIR)$(bindir) && $(RM) wineg++$(EXEEXT) && $(LN_S) winegcc$(EXEEXT) wineg++$(EXEEXT) + cd $(DESTDIR)$(bindir) && $(RM) winecpp$(EXEEXT) && $(LN_S) winegcc$(EXEEXT) winecpp$(EXEEXT) +diff --git a/tools/wmc/Makefile.in b/tools/wmc/Makefile.in +index 12a917d..c163e34 100644 +--- a/tools/wmc/Makefile.in ++++ b/tools/wmc/Makefile.in +@@ -1,5 +1,6 @@ +-PROGRAMS = wmc ++PROGRAMS = wmc$(EXEEXT) + MANPAGES = wmc.man.in ++ALL_LIBS = $(GETTEXTPO_LIBS) $(LIBWINE_STATIC) $(LIBPORT) + + C_SRCS = \ + lang.c \ +@@ -11,7 +12,10 @@ C_SRCS = \ + + BISON_SRCS = mcy.y + +-EXTRALIBS = $(GETTEXTPO_LIBS) $(LIBWINE_STATIC) ++OBJS = $(C_SRCS:.c=.o) $(BISON_SRCS:.y=.tab.o) ++ ++wmc$(EXEEXT): $(OBJS) ++ $(CC) $(CFLAGS) -o $@ $(OBJS) $(ALL_LIBS) $(LDFLAGS) + + .PHONY: install install-dev uninstall + +diff --git a/tools/wrc/Makefile.in b/tools/wrc/Makefile.in +index b6f8093..056de1c 100644 +--- a/tools/wrc/Makefile.in ++++ b/tools/wrc/Makefile.in +@@ -1,5 +1,6 @@ +-PROGRAMS = wrc ++PROGRAMS = wrc$(EXEEXT) + MANPAGES = wrc.man.in ++ALL_LIBS = $(GETTEXTPO_LIBS) $(LIBWPP) $(LIBWINE_STATIC) $(LIBPORT) + + C_SRCS = \ + dumpres.c \ +@@ -17,7 +18,10 @@ BISON_SRCS = parser.y + + wrc_EXTRADEFS = -DINCLUDEDIR="\"${includedir}\"" + +-EXTRALIBS = $(GETTEXTPO_LIBS) $(LIBWPP) $(LIBWINE_STATIC) ++OBJS = $(C_SRCS:.c=.o) $(BISON_SRCS:.y=.tab.o) $(LEX_SRCS:.l=.yy.o) ++ ++wrc$(EXEEXT): $(OBJS) $(LIBWPP) ++ $(CC) $(CFLAGS) -o $@ $(OBJS) $(ALL_LIBS) $(LDFLAGS) + + .PHONY: install install-dev uninstall + +-- +2.4.3 + +From 049cf292e292f135ca304a23a596bb9e32e9ae9b Mon Sep 17 00:00:00 2001 +From: Michael Cronenworth +Date: Wed, 4 Nov 2015 23:18:56 -0600 +Subject: [PATCH 09/12] Revert "makefiles: Fix expansion of '$$' in make + variables." + +This reverts commit 581be47a45b2c566083e543d28609708b26002e2. +--- + tools/makedep.c | 12 +++++++----- + 1 file changed, 7 insertions(+), 5 deletions(-) + +diff --git a/tools/makedep.c b/tools/makedep.c +index 3c30a0c..c81a57e 100644 +--- a/tools/makedep.c ++++ b/tools/makedep.c +@@ -1518,21 +1518,23 @@ static char *get_expanded_make_variable( struct makefile *make, const char *name + var = get_make_variable( make, p + 2 ); + tmp = replace_substr( expand, p, end - p, var ? var : "" ); + free( var ); +- /* switch to the new string */ +- p = tmp + (p - expand); +- free( expand ); +- expand = tmp; + } + else if (p[1] == '{') /* don't expand ${} variables */ + { + if (!(end = strchr( p + 2, '}' ))) fatal_error( "syntax error in '%s'\n", expand ); + p = end + 1; ++ continue; + } + else if (p[1] == '$') + { +- p += 2; ++ tmp = replace_substr( expand, p, 2, "$" ); + } + else fatal_error( "syntax error in '%s'\n", expand ); ++ ++ /* switch to the new string */ ++ p = tmp + (p - expand); ++ free( expand ); ++ expand = tmp; + } + + /* consider empty variables undefined */ +-- +2.4.3 + +From 0b4781cbc1c55118361539779557e64211b9a246 Mon Sep 17 00:00:00 2001 +From: Michael Cronenworth +Date: Wed, 4 Nov 2015 23:19:06 -0600 +Subject: [PATCH 10/12] Revert "makefiles: Avoid running config.status when not + necessary." + +This reverts commit e0b1e8154dccd8a238a7cf6afb8e96520248ebd7. +--- + aclocal.m4 | 17 +++-------------- + configure | 23 ++++++----------------- + configure.ac | 6 +++--- + tools/make_makefiles | 4 ---- + tools/makedep.c | 48 +++++++++--------------------------------------- + 5 files changed, 21 insertions(+), 77 deletions(-) + +diff --git a/aclocal.m4 b/aclocal.m4 +index e236c92..13bab9b 100644 +--- a/aclocal.m4 ++++ b/aclocal.m4 +@@ -225,24 +225,13 @@ wine_fn_has_flag () + + wine_fn_depend_rules () + { +- if wine_fn_has_flag config +- then +- wine_fn_append_rule \ ++ wine_fn_append_rule \ + "$ac_dir/Makefile: $srcdir/$ac_dir/Makefile.in Makefile config.status \$(MAKEDEP) +- @./config.status --file $ac_dir/Makefile && \$(MAKEDEP) -iMakefile $ac_dir ++ @./config.status --file $ac_dir/Makefile && \$(MAKEDEP) $ac_dir + depend: $ac_dir/depend + .PHONY: $ac_dir/depend + $ac_dir/depend: \$(MAKEDEP) dummy +- @./config.status --file $ac_dir/Makefile && \$(MAKEDEP) -iMakefile $ac_dir" +- else +- wine_fn_append_rule \ +-"$ac_dir/Makefile: $srcdir/$ac_dir/Makefile.in Makefile \$(MAKEDEP) +- \$(MAKEDEP) $ac_dir +-depend: $ac_dir/depend +-.PHONY: $ac_dir/depend +-$ac_dir/depend: \$(MAKEDEP) dummy +- \$(MAKEDEP) $ac_dir" +- fi ++ @./config.status --file $ac_dir/Makefile && \$(MAKEDEP) $ac_dir" + } + + wine_fn_pot_rules () +diff --git a/configure b/configure +index 4717706..659f513 100755 +--- a/configure ++++ b/configure +@@ -7389,24 +7389,13 @@ wine_fn_has_flag () + + wine_fn_depend_rules () + { +- if wine_fn_has_flag config +- then +- wine_fn_append_rule \ ++ wine_fn_append_rule \ + "$ac_dir/Makefile: $srcdir/$ac_dir/Makefile.in Makefile config.status \$(MAKEDEP) +- @./config.status --file $ac_dir/Makefile && \$(MAKEDEP) -iMakefile $ac_dir ++ @./config.status --file $ac_dir/Makefile && \$(MAKEDEP) $ac_dir + depend: $ac_dir/depend + .PHONY: $ac_dir/depend + $ac_dir/depend: \$(MAKEDEP) dummy +- @./config.status --file $ac_dir/Makefile && \$(MAKEDEP) -iMakefile $ac_dir" +- else +- wine_fn_append_rule \ +-"$ac_dir/Makefile: $srcdir/$ac_dir/Makefile.in Makefile \$(MAKEDEP) +- \$(MAKEDEP) $ac_dir +-depend: $ac_dir/depend +-.PHONY: $ac_dir/depend +-$ac_dir/depend: \$(MAKEDEP) dummy +- \$(MAKEDEP) $ac_dir" +- fi ++ @./config.status --file $ac_dir/Makefile && \$(MAKEDEP) $ac_dir" + } + + wine_fn_pot_rules () +@@ -18055,9 +18044,9 @@ wine_fn_config_makefile documentation enable_documentation clean + wine_fn_config_makefile fonts enable_fonts clean,install-lib + wine_fn_config_makefile include enable_include clean,install-dev + wine_fn_config_makefile libs/port enable_libs_port +-wine_fn_config_makefile libs/wine enable_libs_wine clean,config,install-dev,install-lib ++wine_fn_config_makefile libs/wine enable_libs_wine clean,install-dev,install-lib + wine_fn_config_makefile libs/wpp enable_libs_wpp +-wine_fn_config_makefile loader enable_loader clean,config,install-lib,manpage ++wine_fn_config_makefile loader enable_loader clean,install-lib,manpage + wine_fn_config_program arp enable_arp install + wine_fn_config_program aspnet_regiis enable_aspnet_regiis install + wine_fn_config_program attrib enable_attrib install,po +@@ -18135,7 +18124,7 @@ wine_fn_config_program winemenubuilder enable_winemenubuilder install + wine_fn_config_program winemine enable_winemine install,installbin,manpage,po + wine_fn_config_program winemsibuilder enable_winemsibuilder install + wine_fn_config_program winepath enable_winepath install,installbin,manpage +-wine_fn_config_program winetest enable_winetest clean,config ++wine_fn_config_program winetest enable_winetest clean + wine_fn_config_program winevdm enable_win16 install + wine_fn_config_program winhelp.exe16 enable_win16 install + wine_fn_config_program winhlp32 enable_winhlp32 install,po +diff --git a/configure.ac b/configure.ac +index c915638..f6449a6 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3504,9 +3504,9 @@ WINE_CONFIG_MAKEFILE([documentation],,[clean]) + WINE_CONFIG_MAKEFILE([fonts],,[clean,install-lib]) + WINE_CONFIG_MAKEFILE([include],,[clean,install-dev]) + WINE_CONFIG_MAKEFILE([libs/port]) +-WINE_CONFIG_MAKEFILE([libs/wine],,[clean,config,install-dev,install-lib]) ++WINE_CONFIG_MAKEFILE([libs/wine],,[clean,install-dev,install-lib]) + WINE_CONFIG_MAKEFILE([libs/wpp]) +-WINE_CONFIG_MAKEFILE([loader],,[clean,config,install-lib,manpage]) ++WINE_CONFIG_MAKEFILE([loader],,[clean,install-lib,manpage]) + WINE_CONFIG_PROGRAM(arp,,[install]) + WINE_CONFIG_PROGRAM(aspnet_regiis,,[install]) + WINE_CONFIG_PROGRAM(attrib,,[install,po]) +@@ -3584,7 +3584,7 @@ WINE_CONFIG_PROGRAM(winemenubuilder,,[install]) + WINE_CONFIG_PROGRAM(winemine,,[install,installbin,manpage,po]) + WINE_CONFIG_PROGRAM(winemsibuilder,,[install]) + WINE_CONFIG_PROGRAM(winepath,,[install,installbin,manpage]) +-WINE_CONFIG_PROGRAM(winetest,,[clean,config]) ++WINE_CONFIG_PROGRAM(winetest,,[clean]) + WINE_CONFIG_PROGRAM(winevdm,enable_win16,[install]) + WINE_CONFIG_PROGRAM(winhelp.exe16,enable_win16,[install]) + WINE_CONFIG_PROGRAM(winhlp32,,[install,po]) +diff --git a/tools/make_makefiles b/tools/make_makefiles +index 266f33a..f0b40c0 100755 +--- a/tools/make_makefiles ++++ b/tools/make_makefiles +@@ -282,10 +282,6 @@ sub parse_makefile($) + { + die "Variable $1 in $file.in is obsolete"; + } +- if (/\@[A-Z_]+\@/) # config.status substitution variable +- { +- ${$make{"=flags"}}{"config"} = 1; +- } + } + + if ($file =~ /^programs\/([^\/]+)\/Makefile/) +diff --git a/tools/makedep.c b/tools/makedep.c +index c81a57e..104711e 100644 +--- a/tools/makedep.c ++++ b/tools/makedep.c +@@ -171,8 +171,7 @@ struct makefile + + static struct makefile *top_makefile; + +-static const char *output_makefile_name = "Makefile"; +-static const char *input_makefile_name; ++static const char *makefile_name = "Makefile"; + static const char *input_file_name; + static const char *output_file_name; + static const char *temp_file_name; +@@ -185,8 +184,7 @@ static const char Usage[] = + "Usage: makedep [options] directories\n" + "Options:\n" + " -R from to Compute the relative path between two directories\n" +- " -fxxx Store output in file 'xxx' (default: Makefile)\n" +- " -ixxx Read input from file 'xxx' (default: Makefile.in)\n"; ++ " -fxxx Store output in file 'xxx' (default: Makefile)\n"; + + + #ifndef __GNUC__ +@@ -1462,28 +1460,6 @@ static struct incl_file *add_src_file( struct makefile *make, const char *name ) + + + /******************************************************************* +- * open_input_makefile +- */ +-static FILE *open_input_makefile( struct makefile *make ) +-{ +- FILE *ret; +- +- if (make->base_dir) +- input_file_name = base_dir_path( make, input_makefile_name ); +- else +- input_file_name = output_makefile_name; /* always use output name for main Makefile */ +- +- input_line = 0; +- if (!(ret = fopen( input_file_name, "r" ))) +- { +- input_file_name = root_dir_path( input_file_name ); +- if (!(ret = fopen( input_file_name, "r" ))) fatal_perror( "open" ); +- } +- return ret; +-} +- +- +-/******************************************************************* + * get_make_variable + */ + static char *get_make_variable( struct makefile *make, const char *name ) +@@ -1602,7 +1578,10 @@ static struct makefile *parse_makefile( const char *path, const char *separator + if (!strcmp( make->base_dir, "." )) make->base_dir = NULL; + } + +- file = open_input_makefile( make ); ++ input_file_name = base_dir_path( make, makefile_name ); ++ if (!(file = fopen( input_file_name, "r" ))) fatal_perror( "open" ); ++ ++ input_line = 0; + while ((buffer = get_line( file ))) + { + if (separator && !strncmp( buffer, separator, strlen(separator) )) break; +@@ -2559,16 +2538,15 @@ static void output_dependencies( struct makefile *make ) + char buffer[1024]; + FILE *src_file; + +- output_file_name = base_dir_path( make, output_makefile_name ); ++ output_file_name = base_dir_path( make, makefile_name ); + output_file = create_temp_file( output_file_name ); + output_top_variables( make ); + + /* copy the contents of the source makefile */ +- src_file = open_input_makefile( make ); ++ if (!(src_file = fopen( output_file_name, "r" ))) fatal_perror( "open" ); + while (fgets( buffer, sizeof(buffer), src_file )) + if (fwrite( buffer, 1, strlen(buffer), output_file ) != strlen(buffer)) fatal_perror( "write" ); + if (fclose( src_file )) fatal_perror( "close" ); +- input_file_name = NULL; + + targets = output_sources( make, &testlist_files ); + +@@ -2662,9 +2640,6 @@ static void update_makefile( const char *path ) + list_init( &make->sources ); + list_init( &make->includes ); + +- /* FIXME: target dir has to exist to allow locating srcdir-relative include files */ +- if (make->base_dir) create_dir( make->base_dir ); +- + for (var = source_vars; *var; var++) + { + value = get_expanded_make_var_array( make, *var ); +@@ -2725,10 +2700,7 @@ static int parse_option( const char *opt ) + switch(opt[1]) + { + case 'f': +- if (opt[2]) output_makefile_name = opt + 2; +- break; +- case 'i': +- if (opt[2]) input_makefile_name = opt + 2; ++ if (opt[2]) makefile_name = opt + 2; + break; + case 'R': + relative_dir_mode = 1; +@@ -2790,8 +2762,6 @@ int main( int argc, char *argv[] ) + + for (i = 0; i < HASH_SIZE; i++) list_init( &files[i] ); + +- if (!input_makefile_name) input_makefile_name = strmake( "%s.in", output_makefile_name ); +- + top_makefile = parse_makefile( NULL, "# End of common header" ); + + linguas = get_expanded_make_var_array( top_makefile, "LINGUAS" ); +-- +2.4.3 + +From c28d8ee034dcabeed5cbddc03d64914c5ca36aab Mon Sep 17 00:00:00 2001 +From: Michael Cronenworth +Date: Wed, 4 Nov 2015 23:19:13 -0600 +Subject: [PATCH 11/12] Revert "makefiles: Get rid of the support for updating + a makefile in place." + +This reverts commit 6222e49c37c1fa9120bd3eff6fc48dc902f2d312. +--- + tools/makedep.c | 49 +++++++++++++++++++++++++++++++++---------------- + 1 file changed, 33 insertions(+), 16 deletions(-) + +diff --git a/tools/makedep.c b/tools/makedep.c +index 104711e..119294b 100644 +--- a/tools/makedep.c ++++ b/tools/makedep.c +@@ -172,6 +172,7 @@ struct makefile + static struct makefile *top_makefile; + + static const char *makefile_name = "Makefile"; ++static const char *Separator = "### Dependencies"; + static const char *input_file_name; + static const char *output_file_name; + static const char *temp_file_name; +@@ -184,7 +185,8 @@ static const char Usage[] = + "Usage: makedep [options] directories\n" + "Options:\n" + " -R from to Compute the relative path between two directories\n" +- " -fxxx Store output in file 'xxx' (default: Makefile)\n"; ++ " -fxxx Store output in file 'xxx' (default: Makefile)\n" ++ " -sxxx Use 'xxx' as separator (default: \"### Dependencies\")\n"; + + + #ifndef __GNUC__ +@@ -2532,27 +2534,38 @@ static void output_top_variables( struct makefile *make ) + /******************************************************************* + * output_dependencies + */ +-static void output_dependencies( struct makefile *make ) ++static void output_dependencies( struct makefile *make, const char *path ) + { + struct strarray targets, testlist_files = empty_strarray, ignore_files = empty_strarray; +- char buffer[1024]; + FILE *src_file; + +- output_file_name = base_dir_path( make, makefile_name ); +- output_file = create_temp_file( output_file_name ); +- output_top_variables( make ); ++ if (Separator && ((src_file = fopen( path, "r" )))) ++ { ++ char buffer[1024]; ++ int found = 0; + +- /* copy the contents of the source makefile */ +- if (!(src_file = fopen( output_file_name, "r" ))) fatal_perror( "open" ); +- while (fgets( buffer, sizeof(buffer), src_file )) +- if (fwrite( buffer, 1, strlen(buffer), output_file ) != strlen(buffer)) fatal_perror( "write" ); +- if (fclose( src_file )) fatal_perror( "close" ); ++ output_file = create_temp_file( path ); ++ output_top_variables( make ); ++ while (fgets( buffer, sizeof(buffer), src_file ) && !found) ++ { ++ if (fwrite( buffer, 1, strlen(buffer), output_file ) != strlen(buffer)) fatal_perror( "write" ); ++ found = !strncmp( buffer, Separator, strlen(Separator) ); ++ } ++ if (fclose( src_file )) fatal_perror( "close" ); ++ if (!found) output( "\n%s\n", Separator ); ++ } ++ else ++ { ++ if (!(output_file = fopen( path, Separator ? "a" : "w" ))) ++ fatal_perror( "%s", path ); ++ output_top_variables( make ); ++ } + + targets = output_sources( make, &testlist_files ); + + fclose( output_file ); + output_file = NULL; +- rename_temp_file( output_file_name ); ++ if (temp_file_name) rename_temp_file( path ); + + strarray_add( &ignore_files, ".gitignore" ); + strarray_add( &ignore_files, "Makefile" ); +@@ -2563,8 +2576,6 @@ static void output_dependencies( struct makefile *make ) + output_testlist( base_dir_path( make, "testlist.c" ), testlist_files ); + if (!make->src_dir && make->base_dir) + output_gitignore( base_dir_path( make, ".gitignore" ), ignore_files ); +- +- output_file_name = NULL; + } + + +@@ -2595,7 +2606,7 @@ static void update_makefile( const char *path ) + struct incl_file *file; + struct makefile *make; + +- make = parse_makefile( path, NULL ); ++ make = parse_makefile( path, Separator ); + + if (root_src_dir) + { +@@ -2660,7 +2671,9 @@ static void update_makefile( const char *path ) + + LIST_FOR_EACH_ENTRY( file, &make->includes, struct incl_file, entry ) parse_file( make, file, 0 ); + +- output_dependencies( make ); ++ output_file_name = base_dir_path( make, makefile_name ); ++ output_dependencies( make, output_file_name ); ++ output_file_name = NULL; + } + + +@@ -2705,6 +2718,10 @@ static int parse_option( const char *opt ) + case 'R': + relative_dir_mode = 1; + break; ++ case 's': ++ if (opt[2]) Separator = opt + 2; ++ else Separator = NULL; ++ break; + default: + fprintf( stderr, "Unknown option '%s'\n%s", opt, Usage ); + exit(1); +-- +2.4.3 + +From 6b23dbddf40220c570d0b73fba2c8355ce0f8aa4 Mon Sep 17 00:00:00 2001 +From: Michael Cronenworth +Date: Wed, 4 Nov 2015 23:19:21 -0600 +Subject: [PATCH 12/12] Revert "makefiles: Read variable definitions from the + top makefile instead of using Make.vars.in." This reverts commit ef557a8a8a47100a3a0eb0662c93e38634afed89. --- @@ -206,7 +2478,7 @@ index 13bab9b..f7a12f1 100644 wine_fn_pot_rules () diff --git a/configure b/configure -index 38c3c6c..83b7c32 100755 +index 659f513..dcaf8a8 100755 --- a/configure +++ b/configure @@ -7390,12 +7390,12 @@ wine_fn_has_flag () @@ -225,7 +2497,7 @@ index 38c3c6c..83b7c32 100755 } wine_fn_pot_rules () -@@ -17187,7 +17187,7 @@ CLEAN_FILES = *.o *.a *.so *.res *.fake *.ok *.tab.[ch] *.yy.c +@@ -17221,7 +17221,7 @@ CLEAN_FILES = *.o *.a *.so *.res *.fake *.ok *.tab.[ch] *.yy.c .INIT: Makefile .MAKEFILEDEPS: all: Makefile @@ -234,7 +2506,7 @@ index 38c3c6c..83b7c32 100755 @./config.status Make.tmp Makefile" test "$srcdir" = . && wine_fn_append_rule "all: .gitignore -@@ -18187,7 +18187,7 @@ fi +@@ -18222,7 +18222,7 @@ fi ac_config_commands="$ac_config_commands Makefile" @@ -243,7 +2515,7 @@ index 38c3c6c..83b7c32 100755 -@@ -19004,7 +19004,7 @@ do +@@ -19039,7 +19039,7 @@ do "wine64") CONFIG_LINKS="$CONFIG_LINKS wine64:tools/winewrapper" ;; "tools/makedep") CONFIG_COMMANDS="$CONFIG_COMMANDS tools/makedep" ;; "Makefile") CONFIG_COMMANDS="$CONFIG_COMMANDS Makefile" ;; @@ -253,10 +2525,10 @@ index 38c3c6c..83b7c32 100755 *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; diff --git a/configure.ac b/configure.ac -index 88efdc9..a494266 100644 +index f6449a6..8f77155 100644 --- a/configure.ac +++ b/configure.ac -@@ -2682,7 +2682,7 @@ CLEAN_FILES = *.o *.a *.so *.res *.fake *.ok *.tab.[[ch]] *.yy.c +@@ -2692,7 +2692,7 @@ CLEAN_FILES = *.o *.a *.so *.res *.fake *.ok *.tab.[[ch]] *.yy.c .INIT: Makefile .MAKEFILEDEPS: all: Makefile @@ -265,7 +2537,7 @@ index 88efdc9..a494266 100644 @./config.status Make.tmp Makefile]) test "$srcdir" = . && WINE_APPEND_RULE( -@@ -3682,7 +3682,7 @@ _WINE_EOF +@@ -3693,7 +3693,7 @@ _WINE_EOF AS_ERROR([could not create Makefile]) }]) From 8ca88379cfb7af90f4856924a6af8d2eee46076b Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 15 Nov 2015 19:37:21 -0600 Subject: [PATCH 359/715] Update to 1.7.55 --- .gitignore | 6 +- sources | 6 +- wine-revert-makefiles-staging.patch | 44 - wine-revert-makefiles.patch | 2621 --------------------------- wine.spec | 45 +- 5 files changed, 24 insertions(+), 2698 deletions(-) delete mode 100644 wine-revert-makefiles-staging.patch delete mode 100644 wine-revert-makefiles.patch diff --git a/.gitignore b/.gitignore index 48313e7..53254c1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.7.54.tar.bz2 -/wine-1.7.54.tar.bz2.sign -/wine-staging-1.7.54.tar.gz +/wine-1.7.55.tar.bz2 +/wine-1.7.55.tar.bz2.sign +/wine-staging-1.7.55.tar.gz diff --git a/sources b/sources index 0e6ffb1..30e38ea 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -155bbbed0465e8d56d5e6cb14a51fb6e wine-1.7.54.tar.bz2 -ebd8c72d14f7d2e71959b49689e0d407 wine-1.7.54.tar.bz2.sign -a33b2975dca2468dd83b84bb844d666d wine-staging-1.7.54.tar.gz +161b37f57ed21508d9171df664ff5e13 wine-1.7.55.tar.bz2 +2d411ab794bda23a1d6815ee467f8483 wine-1.7.55.tar.bz2.sign +59816f88f93bc8fc3f2430a33490d31c wine-staging-1.7.55.tar.gz diff --git a/wine-revert-makefiles-staging.patch b/wine-revert-makefiles-staging.patch deleted file mode 100644 index d329e5f..0000000 --- a/wine-revert-makefiles-staging.patch +++ /dev/null @@ -1,44 +0,0 @@ ---- a/patches/patchinstall.sh 2015-10-31 18:16:04.000000000 -0500 -+++ b/patches/patchinstall.sh 2015-11-04 23:26:11.214562133 -0600 -@@ -2371,12 +2371,12 @@ - # | Modified files: - # | * configure.ac - # | --if test "$enable_configure_Absolute_RPATH" -eq 1; then -- patch_apply configure-Absolute_RPATH/0001-configure-Also-add-the-absolute-RPATH-when-linking-a.patch -- ( -- echo '+ { "Sebastian Lackner", "configure: Also add the absolute RPATH when linking against libwine.", 1 },'; -- ) >> "$patchlist" --fi -+#if test "$enable_configure_Absolute_RPATH" -eq 1; then -+# patch_apply configure-Absolute_RPATH/0001-configure-Also-add-the-absolute-RPATH-when-linking-a.patch -+# ( -+# echo '+ { "Sebastian Lackner", "configure: Also add the absolute RPATH when linking against libwine.", 1 },'; -+# ) >> "$patchlist" -+#fi - - # Patchset crypt32-CMS_Certificates - # | -@@ -4477,14 +4477,14 @@ - # | dlls/ntoskrnl.exe/tests/driver.sys/util.h, dlls/ntoskrnl.exe/tests/ntoskrnl.c, include/wine/test.h, - # | tools/make_makefiles, tools/makedep.c - # | --if test "$enable_ntoskrnl_DriverTest" -eq 1; then -- patch_apply ntoskrnl-DriverTest/0001-ntoskrnl.exe-tests-Add-initial-driver-testing-framew.patch -- patch_apply ntoskrnl-DriverTest/0002-ntoskrnl.exe-tests-Add-kernel-compliant-test-functio.patch -- ( -- echo '+ { "Sebastian Lackner", "ntoskrnl.exe/tests: Add initial driver testing framework and corresponding changes to Makefile system.", 2 },'; -- echo '+ { "Michael Müller", "ntoskrnl.exe/tests: Add kernel compliant test functions.", 1 },'; -- ) >> "$patchlist" --fi -+#if test "$enable_ntoskrnl_DriverTest" -eq 1; then -+# patch_apply ntoskrnl-DriverTest/0001-ntoskrnl.exe-tests-Add-initial-driver-testing-framew.patch -+# patch_apply ntoskrnl-DriverTest/0002-ntoskrnl.exe-tests-Add-kernel-compliant-test-functio.patch -+# ( -+# echo '+ { "Sebastian Lackner", "ntoskrnl.exe/tests: Add initial driver testing framework and corresponding changes to Makefile system.", 2 },'; -+# echo '+ { "Michael Müller", "ntoskrnl.exe/tests: Add kernel compliant test functions.", 1 },'; -+# ) >> "$patchlist" -+#fi - - # Patchset ntoskrnl-Stubs - # | diff --git a/wine-revert-makefiles.patch b/wine-revert-makefiles.patch deleted file mode 100644 index 43148c3..0000000 --- a/wine-revert-makefiles.patch +++ /dev/null @@ -1,2621 +0,0 @@ -From c1ed02fb85b6992388afab9a5607069d124b64ec Mon Sep 17 00:00:00 2001 -From: Michael Cronenworth -Date: Wed, 4 Nov 2015 23:15:31 -0600 -Subject: [PATCH 01/12] Revert "makefiles: Specify whether to install program - binaries in the individual makefiles." - -This reverts commit 17ac5ba7f9909bfbd3c80c87a077f72ef4c1d19b. ---- - programs/msiexec/Makefile.in | 2 -- - programs/notepad/Makefile.in | 2 -- - programs/regedit/Makefile.in | 2 -- - programs/regsvr32/Makefile.in | 2 -- - programs/wineboot/Makefile.in | 2 -- - programs/winecfg/Makefile.in | 2 -- - programs/wineconsole/Makefile.in | 2 -- - programs/winedbg/Makefile.in | 2 -- - programs/winefile/Makefile.in | 2 -- - programs/winemine/Makefile.in | 2 -- - programs/winepath/Makefile.in | 2 -- - programs/winetest/Makefile.in | 2 -- - tools/make_makefiles | 50 +++++++++++++++++++++++++--------------- - tools/makedep.c | 19 --------------- - 14 files changed, 32 insertions(+), 61 deletions(-) - -diff --git a/programs/msiexec/Makefile.in b/programs/msiexec/Makefile.in -index 7686b10..6d0cf9a 100644 ---- a/programs/msiexec/Makefile.in -+++ b/programs/msiexec/Makefile.in -@@ -11,5 +11,3 @@ RC_SRCS = rsrc.rc - MANPAGES = msiexec.man.in - - SVG_SRCS = msiexec.svg -- --INSTALL_LIB = msiexec.exe msiexec -diff --git a/programs/notepad/Makefile.in b/programs/notepad/Makefile.in -index e5d39a8..26e977d 100644 ---- a/programs/notepad/Makefile.in -+++ b/programs/notepad/Makefile.in -@@ -11,5 +11,3 @@ RC_SRCS = notepad.rc - MANPAGES = notepad.man.in - - SVG_SRCS = notepad.svg -- --INSTALL_LIB = notepad.exe notepad -diff --git a/programs/regedit/Makefile.in b/programs/regedit/Makefile.in -index acbfbd4..c5dfd81 100644 ---- a/programs/regedit/Makefile.in -+++ b/programs/regedit/Makefile.in -@@ -20,5 +20,3 @@ RC_SRCS = regedit.rc - MANPAGES = regedit.man.in - - SVG_SRCS = regedit.svg -- --INSTALL_LIB = regedit.exe regedit -diff --git a/programs/regsvr32/Makefile.in b/programs/regsvr32/Makefile.in -index e91f206..15646a6 100644 ---- a/programs/regsvr32/Makefile.in -+++ b/programs/regsvr32/Makefile.in -@@ -8,5 +8,3 @@ C_SRCS = \ - RC_SRCS = regsvr32.rc - - MANPAGES = regsvr32.man.in -- --INSTALL_LIB = regsvr32.exe regsvr32 -diff --git a/programs/wineboot/Makefile.in b/programs/wineboot/Makefile.in -index 419ec16..f6da0f9 100644 ---- a/programs/wineboot/Makefile.in -+++ b/programs/wineboot/Makefile.in -@@ -10,5 +10,3 @@ C_SRCS = \ - RC_SRCS = wineboot.rc - - MANPAGES = wineboot.man.in -- --INSTALL_LIB = wineboot.exe wineboot -diff --git a/programs/winecfg/Makefile.in b/programs/winecfg/Makefile.in -index 7b52a69..4e66e04 100644 ---- a/programs/winecfg/Makefile.in -+++ b/programs/winecfg/Makefile.in -@@ -22,5 +22,3 @@ MANPAGES = winecfg.man.in - SVG_SRCS = \ - logo.svg \ - winecfg.svg -- --INSTALL_LIB = winecfg.exe winecfg -diff --git a/programs/wineconsole/Makefile.in b/programs/wineconsole/Makefile.in -index b1ba9ef..6cde7e3 100644 ---- a/programs/wineconsole/Makefile.in -+++ b/programs/wineconsole/Makefile.in -@@ -13,5 +13,3 @@ C_SRCS = \ - RC_SRCS = wineconsole.rc - - MANPAGES = wineconsole.man.in -- --INSTALL_LIB = wineconsole.exe wineconsole -diff --git a/programs/winedbg/Makefile.in b/programs/winedbg/Makefile.in -index 739c4eb..a56c359 100644 ---- a/programs/winedbg/Makefile.in -+++ b/programs/winedbg/Makefile.in -@@ -34,5 +34,3 @@ LEX_SRCS = debug.l - BISON_SRCS = dbg.y - - MANPAGES = winedbg.man.in -- --INSTALL_LIB = winedbg.exe winedbg -diff --git a/programs/winefile/Makefile.in b/programs/winefile/Makefile.in -index f400846..ac58f26 100644 ---- a/programs/winefile/Makefile.in -+++ b/programs/winefile/Makefile.in -@@ -12,5 +12,3 @@ RC_SRCS = winefile.rc - MANPAGES = winefile.man.in - - SVG_SRCS = winefile.svg -- --INSTALL_LIB = winefile.exe winefile -diff --git a/programs/winemine/Makefile.in b/programs/winemine/Makefile.in -index ea9b9d3..f72e1b1 100644 ---- a/programs/winemine/Makefile.in -+++ b/programs/winemine/Makefile.in -@@ -12,5 +12,3 @@ RC_SRCS = winemine.rc - MANPAGES = winemine.man.in - - SVG_SRCS = winemine.svg -- --INSTALL_LIB = winemine.exe winemine -diff --git a/programs/winepath/Makefile.in b/programs/winepath/Makefile.in -index ca28e30..16b5627 100644 ---- a/programs/winepath/Makefile.in -+++ b/programs/winepath/Makefile.in -@@ -4,5 +4,3 @@ APPMODE = -mconsole -municode - C_SRCS = winepath.c - - MANPAGES = winepath.man.in -- --INSTALL_LIB = winepath.exe winepath -diff --git a/programs/winetest/Makefile.in b/programs/winetest/Makefile.in -index 4070016..7bdfe2a 100644 ---- a/programs/winetest/Makefile.in -+++ b/programs/winetest/Makefile.in -@@ -18,8 +18,6 @@ EXTRA_OBJS = build.res @ALL_TEST_RESOURCES@ - - EXTRA_TARGETS = build.rc build.nfo - --INSTALL_LIB = none -- - build.rc: dummy - build="BUILD_INFO STRINGRES build.nfo STRINGTABLE { 1 \"`GIT_DIR=$(top_srcdir)/.git git rev-parse HEAD 2>/dev/null`\" }" && (echo $$build | cmp -s - $@) || echo $$build >$@ || ($(RM) $@ && exit 1) - -diff --git a/tools/make_makefiles b/tools/make_makefiles -index 96d8c01..4b539cd 100755 ---- a/tools/make_makefiles -+++ b/tools/make_makefiles -@@ -21,6 +21,28 @@ - - use strict; - -+# Programs that we want to install in the bin directory too -+my %bin_install = -+( -+ "msiexec" => 1, -+ "notepad" => 1, -+ "regedit" => 1, -+ "regsvr32" => 1, -+ "wineboot" => 1, -+ "winecfg" => 1, -+ "wineconsole" => 1, -+ "winedbg" => 1, -+ "winefile" => 1, -+ "winemine" => 1, -+ "winepath" => 1, -+); -+ -+# Programs that we don't want to install at all -+my %dont_install = -+( -+ "winetest" => 1, -+); -+ - # Dlls and programs that are 16-bit specific - my %modules16 = - ( -@@ -243,11 +265,18 @@ sub parse_makefile($) - ${$make{"=flags"}}{"implib"} = 1 if $var eq "IMPORTLIB"; - next; - } -- if (/^\s*(BISON_SRCS|LEX_SRCS|IDL_SRCS|IMPLIB_SRCS|C_SRCS|OBJC_SRCS|MC_SRCS|RC_SRCS|SVG_SRCS|FONT_SRCS|IN_SRCS|PROGRAMS|EXTRA_TARGETS|MANPAGES|INSTALL_LIB|INSTALL_DEV)\s*=\s*(.*)/) -+ if (/^\s*(BISON_SRCS|LEX_SRCS|IDL_SRCS|IMPLIB_SRCS|C_SRCS|OBJC_SRCS|MC_SRCS|RC_SRCS|SVG_SRCS|FONT_SRCS|IN_SRCS|PROGRAMS|EXTRA_TARGETS|MANPAGES)\s*=\s*(.*)/) - { - my $var = $1; - my @list = split(/\s+/, $2); - $make{$var} = \@list; -+ ${$make{"=flags"}}{"clean"} = 1 if $var eq "PROGRAMS"; -+ ${$make{"=flags"}}{"clean"} = 1 if $var eq "EXTRA_TARGETS"; -+ next; -+ } -+ if (/^\s*INSTALL_(LIB|DEV)\s*=\s*/) -+ { -+ ${$make{"=flags"}}{$1 eq "LIB" ? "install-lib" : "install-dev"} = 1; - next; - } - if (/(install-lib|install-dev|clean)\s*:/) -@@ -267,24 +296,9 @@ sub parse_makefile($) - - if ($file =~ /^programs\/([^\/]+)\/Makefile/) - { -- my $prog = $1; -- if (defined $make{"INSTALL_LIB"}) -- { -- ${$make{"=flags"}}{"install"} = 1 if grep { "$prog.exe" eq $_; } @{$make{"INSTALL_LIB"}}; -- ${$make{"=flags"}}{"installbin"} = 1 if grep { $prog eq $_; } @{$make{"INSTALL_LIB"}}; -- } -- else -- { -- ${$make{"=flags"}}{"install"} = 1; -- } -- } -- -- unless (defined $make{"MODULE"}) -- { -- ${$make{"=flags"}}{"install-lib"} = 1 if defined $make{"INSTALL_LIB"}; -- ${$make{"=flags"}}{"install-dev"} = 1 if defined $make{"INSTALL_DEV"}; -+ ${$make{"=flags"}}{"install"} = 1 unless $dont_install{$1}; -+ ${$make{"=flags"}}{"installbin"} = 1 if $bin_install{$1}; - } -- ${$make{"=flags"}}{"clean"} = 1 if defined $make{"PROGRAMS"} || defined $make{"EXTRA_TARGETS"}; - - if (defined $make{"=flags"} && defined $make{"MODULE"}) - { -diff --git a/tools/makedep.c b/tools/makedep.c -index 2a1b8d4..7af3bc9 100644 ---- a/tools/makedep.c -+++ b/tools/makedep.c -@@ -2214,17 +2214,11 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t - { - strarray_add( &all_targets, strmake( "%s%s", make->module, dll_ext )); - strarray_add( &all_targets, strmake( "%s.fake", make->module )); -- add_install_rule( make, make->module, strmake( "%s%s", make->module, dll_ext ), -- strmake( "p$(dlldir)/%s%s", make->module, dll_ext )); -- add_install_rule( make, make->module, strmake( "%s.fake", make->module ), -- strmake( "d$(fakedlldir)/%s", make->module )); - output( "%s%s %s.fake:", module_path, dll_ext, module_path ); - } - else - { - strarray_add( &all_targets, make->module ); -- add_install_rule( make, make->module, make->module, -- strmake( "p$(%s)/%s", spec_file ? "dlldir" : "bindir", make->module )); - output( "%s:", module_path ); - } - if (spec_file) output_filename( spec_file ); -@@ -2259,8 +2253,6 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t - output_filenames( target_flags ); - if (make->is_win16) output_filename( "-m16" ); - output( "\n" ); -- add_install_rule( make, make->importlib, strmake( "lib%s.def", make->importlib ), -- strmake( "d$(dlldir)/lib%s.def", make->importlib )); - if (implib_objs.count) - { - strarray_add( &clean_files, strmake( "lib%s.def.a", make->importlib )); -@@ -2272,8 +2264,6 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t - output_filenames_obj_dir( make, implib_objs ); - output( "\n" ); - output( "\t$(RANLIB) $@\n" ); -- add_install_rule( make, make->importlib, strmake( "lib%s.def.a", make->importlib ), -- strmake( "d$(dlldir)/lib%s.def.a", make->importlib )); - } - } - else -@@ -2286,8 +2276,6 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t - output_filenames( target_flags ); - output_filenames_obj_dir( make, implib_objs ); - output( "\n" ); -- add_install_rule( make, make->importlib, strmake( "lib%s.a", make->importlib ), -- strmake( "d$(dlldir)/lib%s.a", make->importlib )); - } - if (crosstarget && !make->is_win16) - { -@@ -2346,12 +2334,6 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t - } - else output( "manpages htmlpages sgmlpages xmlpages::\n" ); - } -- else if (*dll_ext) -- { -- char *binary = replace_extension( make->module, ".exe", "" ); -- add_install_rule( make, binary, tools_dir_path( make, "wineapploader" ), -- strmake( "s$(bindir)/%s", binary )); -- } - } - - if (make->staticlib) -@@ -2837,7 +2819,6 @@ static void update_makefile( const char *path ) - - make->install_lib_rules = empty_strarray; - make->install_dev_rules = empty_strarray; -- if (make->module && !make->install_lib.count) strarray_add( &make->install_lib, make->module ); - - make->include_args = empty_strarray; - make->define_args = empty_strarray; --- -2.4.3 - -From e1b0769c11dc8f53e089eafedca66161484c0465 Mon Sep 17 00:00:00 2001 -From: Michael Cronenworth -Date: Wed, 4 Nov 2015 23:15:33 -0600 -Subject: [PATCH 02/12] Revert "makefiles: Fix the source path for ttf font - installs." - -This reverts commit a748b7bc47345f9fd3b10377da6817c3e6e29fe2. ---- - tools/makedep.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tools/makedep.c b/tools/makedep.c -index 7af3bc9..2c2a97d 100644 ---- a/tools/makedep.c -+++ b/tools/makedep.c -@@ -2057,7 +2057,7 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t - } - if (source->file->flags & FLAG_INSTALL) - { -- strarray_add( &make->install_lib_rules, strmake( "%s.ttf", obj )); -+ strarray_add( &make->install_lib_rules, ttf_file ); - strarray_add( &make->install_lib_rules, strmake( "D$(fontdir)/%s.ttf", obj )); - } - if (source->file->flags & FLAG_SFD_FONTS) --- -2.4.3 - -From 4acb2bf30de244cb8aad6ed62af36aa68e9015b4 Mon Sep 17 00:00:00 2001 -From: Michael Cronenworth -Date: Wed, 4 Nov 2015 23:15:34 -0600 -Subject: [PATCH 03/12] Revert "makefiles: Don't add source dependency for - symlinks." - -This reverts commit cc5d07fc8a58f3f87137992247344cdbdad9ef8d. ---- - tools/makedep.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tools/makedep.c b/tools/makedep.c -index 2c2a97d..30bbc3e 100644 ---- a/tools/makedep.c -+++ b/tools/makedep.c -@@ -1796,7 +1796,7 @@ static void output_install_rules( struct makefile *make, struct strarray files, - if (!files.count) return; - - for (i = 0; i < files.count; i += 2) -- if (strchr( "dps", files.str[i + 1][0] )) /* only for files copied from object dir */ -+ if (files.str[i + 1][0] >= 'a' && files.str[i + 1][0] <= 'z') /* only for files in object dir */ - strarray_add_uniq( &targets, files.str[i] ); - - output( "install %s::", target ); --- -2.4.3 - -From 0c2d10f1c63546f8bba8a29adeb30224adc6064c Mon Sep 17 00:00:00 2001 -From: Michael Cronenworth -Date: Wed, 4 Nov 2015 23:16:39 -0600 -Subject: [PATCH 04/12] Revert "makefiles: Generate rules for installing - symlinks." - -This reverts commit 356e46a1ef9f866f4a548674b4811a98d1b1847c. ---- - tools/makedep.c | 23 +---------------------- - tools/winegcc/Makefile.in | 21 ++++++++++++++++++--- - 2 files changed, 19 insertions(+), 25 deletions(-) - -diff --git a/tools/makedep.c b/tools/makedep.c -index 30bbc3e..ffd286f 100644 ---- a/tools/makedep.c -+++ b/tools/makedep.c -@@ -1831,9 +1831,6 @@ static void output_install_rules( struct makefile *make, struct strarray files, - output( "\t%s $(INSTALL_SCRIPT_FLAGS) %s $(DESTDIR)%s\n", - install_sh, src_dir_path( make, file ), dest + 1 ); - break; -- case 'y': /* symlink */ -- output( "\t$(RM) $(DESTDIR)%s && $(LN_S) %s $(DESTDIR)%s\n", dest + 1, file, dest + 1 ); -- break; - default: - assert(0); - } -@@ -1856,7 +1853,7 @@ static void output_install_rules( struct makefile *make, struct strarray files, - static struct strarray output_sources( struct makefile *make, struct strarray *testlist_files ) - { - struct incl_file *source; -- unsigned int i, j; -+ unsigned int i; - struct strarray object_files = empty_strarray; - struct strarray crossobj_files = empty_strarray; - struct strarray res_files = empty_strarray; -@@ -2021,7 +2018,6 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t - { - if (strendswith( obj, ".man" ) && source->file->args) - { -- struct strarray symlinks; - char *dir, *dest = replace_extension( obj, ".man", "" ); - char *lang = strchr( dest, '.' ); - char *section = source->file->args; -@@ -2032,10 +2028,6 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t - } - else dir = strmake( "$(mandir)/man%s", section ); - add_install_rule( make, dest, xstrdup(obj), strmake( "d%s/%s.%s", dir, dest, section )); -- symlinks = get_expanded_make_var_array( make, file_local_var( dest, "SYMLINKS" )); -- for (j = 0; j < symlinks.count; j++) -- add_install_rule( make, symlinks.str[j], strmake( "%s.%s", dest, section ), -- strmake( "y%s/%s.%s", dir, symlinks.str[j], section )); - free( dest ); - free( dir ); - strarray_add( &all_targets, xstrdup(obj) ); -@@ -2455,8 +2447,6 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t - struct strarray all_libs = empty_strarray; - struct strarray objs = get_expanded_make_var_array( make, - file_local_var( make->programs.str[i], "OBJS" )); -- struct strarray symlinks = get_expanded_make_var_array( make, -- file_local_var( make->programs.str[i], "SYMLINKS" )); - - if (!objs.count) objs = object_files; - output( "%s:", obj_dir_path( make, program ) ); -@@ -2495,19 +2485,8 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t - output( "\n" ); - strarray_add( &all_targets, program ); - -- if (symlinks.count) -- { -- output_filenames_obj_dir( make, symlinks ); -- output( ": %s\n", obj_dir_path( make, program )); -- output( "\t$(RM) $@ && $(LN_S) %s $@\n", obj_dir_path( make, program )); -- strarray_addall( &all_targets, symlinks ); -- } -- - add_install_rule( make, program, program_installed ? program_installed : program, - strmake( "p$(bindir)/%s", program )); -- for (j = 0; j < symlinks.count; j++) -- add_install_rule( make, symlinks.str[j], program, -- strmake( "y$(bindir)/%s%s", symlinks.str[j], exe_ext )); - } - - for (i = 0; i < make->scripts.count; i++) -diff --git a/tools/winegcc/Makefile.in b/tools/winegcc/Makefile.in -index daeb91b..1a3b2a7 100644 ---- a/tools/winegcc/Makefile.in -+++ b/tools/winegcc/Makefile.in -@@ -2,8 +2,6 @@ PROGRAMS = winegcc - - MANPAGES = winegcc.man.in - --winegcc_SYMLINKS = winecpp wineg++ -- - C_SRCS = \ - utils.c \ - winegcc.c -@@ -18,4 +16,21 @@ winegcc_EXTRADEFS = \ - -DLD="\"$(LD)\"" \ - -DPRELINK="\"$(PRELINK)\"" - --INSTALL_DEV = $(PROGRAMS) $(winegcc_SYMLINKS) -+INSTALL_DEV = $(PROGRAMS) -+ -+EXTRA_TARGETS = winecpp$(EXEEXT) wineg++$(EXEEXT) -+ -+all: $(EXTRA_TARGETS) -+ -+winecpp$(EXEEXT) wineg++$(EXEEXT): winegcc$(EXEEXT) -+ $(RM) $@ && $(LN_S) winegcc$(EXEEXT) $@ -+ -+install install-dev:: -+ cd $(DESTDIR)$(bindir) && $(RM) wineg++$(EXEEXT) && $(LN_S) winegcc$(EXEEXT) wineg++$(EXEEXT) -+ cd $(DESTDIR)$(bindir) && $(RM) winecpp$(EXEEXT) && $(LN_S) winegcc$(EXEEXT) winecpp$(EXEEXT) -+ cd $(DESTDIR)$(mandir)/man$(prog_manext) && $(RM) wineg++.$(prog_manext) && $(LN_S) winegcc.$(prog_manext) wineg++.$(prog_manext) -+ cd $(DESTDIR)$(mandir)/man$(prog_manext) && $(RM) winecpp.$(prog_manext) && $(LN_S) winegcc.$(prog_manext) winecpp.$(prog_manext) -+ -+uninstall:: -+ $(RM) $(DESTDIR)$(bindir)/wineg++$(EXEEXT) $(DESTDIR)$(bindir)/winecpp$(EXEEXT) -+ $(RM) $(DESTDIR)$(mandir)/man$(prog_manext)/wineg++.$(prog_manext) $(DESTDIR)$(mandir)/man$(prog_manext)/winecpp.$(prog_manext) --- -2.4.3 - -From 6fc5a15518b51a55681bb20c51dfc93f45816cc2 Mon Sep 17 00:00:00 2001 -From: Michael Cronenworth -Date: Wed, 4 Nov 2015 23:16:49 -0600 -Subject: [PATCH 05/12] Revert "makefiles: Generate rules for installing - scripts." - -This reverts commit 5cd3395975f687ba8390fddda38bd110d98b30ed. ---- - tools/makedep.c | 6 ------ - tools/winedump/Makefile.in | 9 +++++++-- - tools/winemaker/Makefile.in | 10 +++++++--- - 3 files changed, 14 insertions(+), 11 deletions(-) - -diff --git a/tools/makedep.c b/tools/makedep.c -index ffd286f..9a21397 100644 ---- a/tools/makedep.c -+++ b/tools/makedep.c -@@ -150,7 +150,6 @@ struct makefile - struct strarray include_args; - struct strarray define_args; - struct strarray programs; -- struct strarray scripts; - struct strarray appmode; - struct strarray imports; - struct strarray delayimports; -@@ -2489,10 +2488,6 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t - strmake( "p$(bindir)/%s", program )); - } - -- for (i = 0; i < make->scripts.count; i++) -- add_install_rule( make, make->scripts.str[i], make->scripts.str[i], -- strmake( "S$(bindir)/%s", make->scripts.str[i] )); -- - if (all_targets.count) - { - output( "all:" ); -@@ -2780,7 +2775,6 @@ static void update_makefile( const char *path ) - make->importlib = get_expanded_make_variable( make, "IMPORTLIB" ); - - make->programs = get_expanded_make_var_array( make, "PROGRAMS" ); -- make->scripts = get_expanded_make_var_array( make, "SCRIPTS" ); - make->appmode = get_expanded_make_var_array( make, "APPMODE" ); - make->imports = get_expanded_make_var_array( make, "IMPORTS" ); - make->delayimports = get_expanded_make_var_array( make, "DELAYIMPORTS" ); -diff --git a/tools/winedump/Makefile.in b/tools/winedump/Makefile.in -index b55ac72..a93f078 100644 ---- a/tools/winedump/Makefile.in -+++ b/tools/winedump/Makefile.in -@@ -1,6 +1,5 @@ - PROGRAMS = winedump - MANPAGES = winedump.man.in --SCRIPTS = function_grep.pl - - C_SRCS = \ - debug.c \ -@@ -24,4 +23,10 @@ C_SRCS = \ - symbol.c \ - tlb.c - --INSTALL_DEV = $(PROGRAMS) $(SCRIPTS) -+INSTALL_DEV = $(PROGRAMS) -+ -+install install-dev:: -+ $(INSTALL_SCRIPT) $(srcdir)/function_grep.pl $(DESTDIR)$(bindir)/function_grep.pl -+ -+uninstall:: -+ $(RM) $(DESTDIR)$(bindir)/function_grep.pl -diff --git a/tools/winemaker/Makefile.in b/tools/winemaker/Makefile.in -index 37e345d..6afa016 100644 ---- a/tools/winemaker/Makefile.in -+++ b/tools/winemaker/Makefile.in -@@ -1,8 +1,12 @@ --SCRIPTS = winemaker -- - MANPAGES = \ - winemaker.de.UTF-8.man.in \ - winemaker.fr.UTF-8.man.in \ - winemaker.man.in - --INSTALL_DEV = $(SCRIPTS) -+INSTALL_DEV = winemaker -+ -+install install-dev:: -+ $(INSTALL_SCRIPT) $(srcdir)/winemaker $(DESTDIR)$(bindir)/winemaker -+ -+uninstall:: -+ $(RM) $(DESTDIR)$(bindir)/winemaker --- -2.4.3 - -From 2b9f92aa8ed4a88321b0e60af01a2715cab19f11 Mon Sep 17 00:00:00 2001 -From: Michael Cronenworth -Date: Wed, 4 Nov 2015 23:16:57 -0600 -Subject: [PATCH 06/12] Revert "makefiles: Generate rules for installing - programs." - -This reverts commit da340169d6518cf42f1cbe169fbf120383202bdc. ---- - configure | 15 ++++- - configure.ac | 15 ++++- - server/Makefile.in | 8 ++- - tools/make_makefiles | 5 -- - tools/makedep.c | 135 ++++++++------------------------------------ - tools/widl/Makefile.in | 8 ++- - tools/winebuild/Makefile.in | 8 ++- - tools/winedump/Makefile.in | 7 ++- - tools/winegcc/Makefile.in | 9 +-- - tools/winemaker/Makefile.in | 4 +- - tools/wmc/Makefile.in | 8 ++- - tools/wrc/Makefile.in | 8 ++- - 12 files changed, 97 insertions(+), 133 deletions(-) - -diff --git a/configure b/configure -index b3a1f26..8cf26e4 100755 ---- a/configure -+++ b/configure -@@ -7852,6 +7852,12 @@ libwine_soversion=`expr $libwine_version : '\([0-9]*\)\..*'` - - LOADER_RULES=" - all: wine.inf -+ -+install install-lib:: $wine_binary-installed -+ \$(INSTALL_PROGRAM) $wine_binary-installed \$(DESTDIR)\$(bindir)/$wine_binary -+ -+uninstall:: -+ \$(RM) \$(DESTDIR)\$(bindir)/$wine_binary - " - - -@@ -14939,13 +14945,18 @@ case $host_os in - preloader_EXTRADEFS = $BUILTINFLAG - ${wine_binary}_preloader_OBJS = preloader.o - ${wine_binary}_preloader_LDFLAGS = -static -nostartfiles -nodefaultlibs -Wl,-Ttext=0x7c400000 -+ -+install install-lib:: $wine_binary-preloader -+ \$(INSTALL_PROGRAM) $wine_binary-preloader \$(DESTDIR)\$(bindir)/$wine_binary-preloader -+ -+uninstall:: -+ \$(RM) \$(DESTDIR)\$(bindir)/$wine_binary-preloader - " ;; - esac - ;; - esac - as_fn_append LOADER_RULES " - PROGRAMS = $loader_programs --INSTALL_LIB = $loader_programs - " - - -@@ -18280,7 +18291,7 @@ clean:: - \$(RM) fonts server tools $with_wine64/loader/wine $with_wine64/loader/wine-preloader" - else - as_fn_append LOADER_RULES " --install install-lib:: wine.inf -+install install-lib:: wine.inf install-man-pages - \$(INSTALL_DATA) wine.inf \$(DESTDIR)\$(datadir)/wine/wine.inf - \$(INSTALL_DATA) \$(srcdir)/l_intl.nls \$(DESTDIR)\$(datadir)/wine/l_intl.nls - -diff --git a/configure.ac b/configure.ac -index 3d48b67..ff74f8d 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -691,6 +691,12 @@ libwine_soversion=`expr $libwine_version : '\([[0-9]]*\)\..*'` - - AC_SUBST(LOADER_RULES,[" - all: wine.inf -+ -+install install-lib:: $wine_binary-installed -+ \$(INSTALL_PROGRAM) $wine_binary-installed \$(DESTDIR)\$(bindir)/$wine_binary -+ -+uninstall:: -+ \$(RM) \$(DESTDIR)\$(bindir)/$wine_binary - "]) - - case $host_os in -@@ -2033,13 +2039,18 @@ case $host_os in - preloader_EXTRADEFS = $BUILTINFLAG - ${wine_binary}_preloader_OBJS = preloader.o - ${wine_binary}_preloader_LDFLAGS = -static -nostartfiles -nodefaultlibs -Wl,-Ttext=0x7c400000 -+ -+install install-lib:: $wine_binary-preloader -+ \$(INSTALL_PROGRAM) $wine_binary-preloader \$(DESTDIR)\$(bindir)/$wine_binary-preloader -+ -+uninstall:: -+ \$(RM) \$(DESTDIR)\$(bindir)/$wine_binary-preloader - "]) ;; - esac - ;; - esac - AS_VAR_APPEND([LOADER_RULES],[" - PROGRAMS = $loader_programs --INSTALL_LIB = $loader_programs - "]) - - dnl **** Check for functions **** -@@ -3747,7 +3758,7 @@ clean:: - \$(RM) fonts server tools $with_wine64/loader/wine $with_wine64/loader/wine-preloader]) - else - AS_VAR_APPEND([LOADER_RULES],[" --install install-lib:: wine.inf -+install install-lib:: wine.inf install-man-pages - \$(INSTALL_DATA) wine.inf \$(DESTDIR)\$(datadir)/wine/wine.inf - \$(INSTALL_DATA) \$(srcdir)/l_intl.nls \$(DESTDIR)\$(datadir)/wine/l_intl.nls - -diff --git a/server/Makefile.in b/server/Makefile.in -index 75ba199..7a1ac11 100644 ---- a/server/Makefile.in -+++ b/server/Makefile.in -@@ -52,4 +52,10 @@ MANPAGES = \ - - EXTRALIBS = -lwine $(POLL_LIBS) $(RT_LIBS) - --INSTALL_LIB = $(PROGRAMS) -+.PHONY: install install-lib uninstall -+ -+install install-lib:: wineserver-installed install-man-pages -+ $(INSTALL_PROGRAM) wineserver-installed $(DESTDIR)$(bindir)/wineserver -+ -+uninstall:: -+ $(RM) $(DESTDIR)$(bindir)/wineserver -diff --git a/tools/make_makefiles b/tools/make_makefiles -index 4b539cd..069d0ae 100755 ---- a/tools/make_makefiles -+++ b/tools/make_makefiles -@@ -274,11 +274,6 @@ sub parse_makefile($) - ${$make{"=flags"}}{"clean"} = 1 if $var eq "EXTRA_TARGETS"; - next; - } -- if (/^\s*INSTALL_(LIB|DEV)\s*=\s*/) -- { -- ${$make{"=flags"}}{$1 eq "LIB" ? "install-lib" : "install-dev"} = 1; -- next; -- } - if (/(install-lib|install-dev|clean)\s*:/) - { - ${$make{"=flags"}}{$1} = 1; -diff --git a/tools/makedep.c b/tools/makedep.c -index 9a21397..295e5e8 100644 ---- a/tools/makedep.c -+++ b/tools/makedep.c -@@ -154,10 +154,6 @@ struct makefile - struct strarray imports; - struct strarray delayimports; - struct strarray extradllflags; -- struct strarray install_lib; -- struct strarray install_dev; -- struct strarray install_lib_rules; -- struct strarray install_dev_rules; - struct list sources; - struct list includes; - const char *base_dir; -@@ -1761,92 +1757,6 @@ static void output_include( struct incl_file *pFile, struct incl_file *owner ) - - - /******************************************************************* -- * add_install_rule -- */ --static void add_install_rule( struct makefile *make, const char *target, -- const char *file, const char *dest ) --{ -- if (strarray_exists( &make->install_lib, target )) -- { -- strarray_add( &make->install_lib_rules, file ); -- strarray_add( &make->install_lib_rules, dest ); -- } -- else if (strarray_exists( &make->install_dev, target )) -- { -- strarray_add( &make->install_dev_rules, file ); -- strarray_add( &make->install_dev_rules, dest ); -- } --} -- -- --/******************************************************************* -- * output_install_rules -- * -- * Rules are stored as a (file,dest) pair of values. -- * The first char of dest indicates the type of install. -- */ --static void output_install_rules( struct makefile *make, struct strarray files, -- const char *target, struct strarray *phony_targets ) --{ -- unsigned int i; -- char *install_sh; -- struct strarray targets = empty_strarray; -- -- if (!files.count) return; -- -- for (i = 0; i < files.count; i += 2) -- if (files.str[i + 1][0] >= 'a' && files.str[i + 1][0] <= 'z') /* only for files in object dir */ -- strarray_add_uniq( &targets, files.str[i] ); -- -- output( "install %s::", target ); -- output_filenames_obj_dir( make, targets ); -- output( "\n" ); -- -- install_sh = top_dir_path( make, "tools/install-sh" ); -- for (i = 0; i < files.count; i += 2) -- { -- const char *file = files.str[i]; -- const char *dest = files.str[i + 1]; -- -- switch (*dest) -- { -- case 'd': /* data file */ -- output( "\t%s -m 644 $(INSTALL_DATA_FLAGS) %s $(DESTDIR)%s\n", -- install_sh, obj_dir_path( make, file ), dest + 1 ); -- break; -- case 'D': /* data file in source dir */ -- output( "\t%s -m 644 $(INSTALL_DATA_FLAGS) %s $(DESTDIR)%s\n", -- install_sh, src_dir_path( make, file ), dest + 1 ); -- break; -- case 'p': /* program file */ -- output( "\tSTRIPPROG=\"$(STRIP)\" %s $(INSTALL_PROGRAM_FLAGS) %s $(DESTDIR)%s\n", -- install_sh, obj_dir_path( make, file ), dest + 1 ); -- break; -- case 's': /* script */ -- output( "\t%s $(INSTALL_SCRIPT_FLAGS) %s $(DESTDIR)%s\n", -- install_sh, obj_dir_path( make, file ), dest + 1 ); -- break; -- case 'S': /* script in source dir */ -- output( "\t%s $(INSTALL_SCRIPT_FLAGS) %s $(DESTDIR)%s\n", -- install_sh, src_dir_path( make, file ), dest + 1 ); -- break; -- default: -- assert(0); -- } -- } -- -- output( "uninstall::\n" ); -- output( "\t$(RM)" ); -- for (i = 0; i < files.count; i += 2) output_filename( strmake( "$(DESTDIR)%s", files.str[i + 1] + 1 )); -- output( "\n" ); -- -- strarray_add( phony_targets, "install" ); -- strarray_add( phony_targets, target ); -- strarray_add( phony_targets, "uninstall" ); --} -- -- --/******************************************************************* - * output_sources - */ - static struct strarray output_sources( struct makefile *make, struct strarray *testlist_files ) -@@ -2023,13 +1933,18 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t - if (lang) - { - *lang++ = 0; -- dir = strmake( "$(mandir)/%s/man%s", lang, section ); -+ dir = strmake( "$(DESTDIR)$(mandir)/%s/man%s", lang, section ); - } -- else dir = strmake( "$(mandir)/man%s", section ); -- add_install_rule( make, dest, xstrdup(obj), strmake( "d%s/%s.%s", dir, dest, section )); -+ else dir = strmake( "$(DESTDIR)$(mandir)/man%s", section ); -+ output( "install-man-pages:: %s\n", obj_dir_path( make, obj )); -+ output( "\t$(INSTALL_DATA) %s %s/%s.%s\n", obj_dir_path( make, obj ), dir, dest, section ); -+ output( "uninstall::\n" ); -+ output( "\t$(RM) %s/%s.%s\n", dir, dest, section ); - free( dest ); - free( dir ); - strarray_add( &all_targets, xstrdup(obj) ); -+ strarray_add_uniq( &phony_targets, "install-man-pages" ); -+ strarray_add_uniq( &phony_targets, "uninstall" ); - } - else strarray_add( &clean_files, xstrdup(obj) ); - output( "%s: %s\n", obj_dir_path( make, obj ), source->filename ); -@@ -2048,8 +1963,10 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t - } - if (source->file->flags & FLAG_INSTALL) - { -- strarray_add( &make->install_lib_rules, ttf_file ); -- strarray_add( &make->install_lib_rules, strmake( "D$(fontdir)/%s.ttf", obj )); -+ output( "install install-lib::\n" ); -+ output( "\t$(INSTALL_DATA) %s $(DESTDIR)$(fontdir)/%s.ttf\n", ttf_file, obj ); -+ output( "uninstall::\n" ); -+ output( "\t$(RM) $(DESTDIR)$(fontdir)/%s.ttf\n", obj ); - } - if (source->file->flags & FLAG_SFD_FONTS) - { -@@ -2064,10 +1981,19 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t - output( "%s: %s %s\n", obj_dir_path( make, font ), - tools_path( make, "sfnt2fon" ), ttf_file ); - output( "\t%s -o $@ %s %s\n", tools_path( make, "sfnt2fon" ), ttf_file, args ); -- strarray_add( &make->install_lib_rules, xstrdup(font) ); -- strarray_add( &make->install_lib_rules, strmake( "d$(fontdir)/%s", font )); -+ output( "install install-lib:: %s\n", font ); -+ output( "\t$(INSTALL_DATA) %s $(DESTDIR)$(fontdir)/%s\n", -+ obj_dir_path( make, font ), font ); -+ output( "uninstall::\n" ); -+ output( "\t$(RM) $(DESTDIR)$(fontdir)/%s\n", font ); - } - } -+ if (source->file->flags & (FLAG_INSTALL | FLAG_SFD_FONTS)) -+ { -+ strarray_add_uniq( &phony_targets, "install" ); -+ strarray_add_uniq( &phony_targets, "install-lib" ); -+ strarray_add_uniq( &phony_targets, "uninstall" ); -+ } - continue; /* no dependencies */ - } - else if (!strcmp( ext, "svg" )) /* svg file */ -@@ -2441,7 +2367,6 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t - - for (i = 0; i < make->programs.count; i++) - { -- char *program_installed = NULL; - char *program = strmake( "%s%s", make->programs.str[i], exe_ext ); - struct strarray all_libs = empty_strarray; - struct strarray objs = get_expanded_make_var_array( make, -@@ -2464,7 +2389,8 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t - strarray_add( &all_libs, strmake( "-L%s", top_obj_dir_path( make, "libs/wine" ))); - if (ldrpath_local && ldrpath_install) - { -- program_installed = strmake( "%s-installed%s", make->programs.str[i], exe_ext ); -+ char *program_installed = strmake( "%s-installed%s", make->programs.str[i], exe_ext ); -+ - output_filename( ldrpath_local ); - output_filenames( all_libs ); - output_filename( "$(LDFLAGS)" ); -@@ -2483,9 +2409,6 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t - output_filename( "$(LDFLAGS)" ); - output( "\n" ); - strarray_add( &all_targets, program ); -- -- add_install_rule( make, program, program_installed ? program_installed : program, -- strmake( "p$(bindir)/%s", program )); - } - - if (all_targets.count) -@@ -2495,9 +2418,6 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t - output( "\n" ); - } - -- output_install_rules( make, make->install_lib_rules, "install-lib", &phony_targets ); -- output_install_rules( make, make->install_dev_rules, "install-dev", &phony_targets ); -- - strarray_addall( &clean_files, object_files ); - strarray_addall( &clean_files, crossobj_files ); - strarray_addall( &clean_files, res_files ); -@@ -2779,8 +2699,6 @@ static void update_makefile( const char *path ) - make->imports = get_expanded_make_var_array( make, "IMPORTS" ); - make->delayimports = get_expanded_make_var_array( make, "DELAYIMPORTS" ); - make->extradllflags = get_expanded_make_var_array( make, "EXTRADLLFLAGS" ); -- make->install_lib = get_expanded_make_var_array( make, "INSTALL_LIB" ); -- make->install_dev = get_expanded_make_var_array( make, "INSTALL_DEV" ); - - if (make->module && strendswith( make->module, ".a" )) make->staticlib = make->module; - -@@ -2790,9 +2708,6 @@ static void update_makefile( const char *path ) - for (i = 0; i < make->imports.count && !make->use_msvcrt; i++) - make->use_msvcrt = !strncmp( make->imports.str[i], "msvcr", 5 ); - -- make->install_lib_rules = empty_strarray; -- make->install_dev_rules = empty_strarray; -- - make->include_args = empty_strarray; - make->define_args = empty_strarray; - strarray_add( &make->define_args, "-D__WINESRC__" ); -diff --git a/tools/widl/Makefile.in b/tools/widl/Makefile.in -index f8111f3..0c5595e 100644 ---- a/tools/widl/Makefile.in -+++ b/tools/widl/Makefile.in -@@ -23,4 +23,10 @@ widl_EXTRADEFS = -DDEFAULT_INCLUDE_DIR=\"${includedir}/windows/\" - - EXTRALIBS = $(LIBWPP) - --INSTALL_DEV = $(PROGRAMS) -+.PHONY: install install-dev uninstall -+ -+install install-dev:: widl$(EXEEXT) install-man-pages -+ $(INSTALL_PROGRAM) widl$(EXEEXT) $(DESTDIR)$(bindir)/widl$(EXEEXT) -+ -+uninstall:: -+ $(RM) $(DESTDIR)$(bindir)/widl$(EXEEXT) -diff --git a/tools/winebuild/Makefile.in b/tools/winebuild/Makefile.in -index 0511012..3958902 100644 ---- a/tools/winebuild/Makefile.in -+++ b/tools/winebuild/Makefile.in -@@ -12,4 +12,10 @@ C_SRCS = \ - spec32.c \ - utils.c - --INSTALL_DEV = $(PROGRAMS) -+.PHONY: install install-dev uninstall -+ -+install install-dev:: winebuild$(EXEEXT) install-man-pages -+ $(INSTALL_PROGRAM) winebuild$(EXEEXT) $(DESTDIR)$(bindir)/winebuild$(EXEEXT) -+ -+uninstall:: -+ $(RM) $(DESTDIR)$(bindir)/winebuild$(EXEEXT) -diff --git a/tools/winedump/Makefile.in b/tools/winedump/Makefile.in -index a93f078..dd36cff 100644 ---- a/tools/winedump/Makefile.in -+++ b/tools/winedump/Makefile.in -@@ -23,10 +23,11 @@ C_SRCS = \ - symbol.c \ - tlb.c - --INSTALL_DEV = $(PROGRAMS) -+.PHONY: install install-dev uninstall - --install install-dev:: -+install install-dev:: winedump$(EXEEXT) install-man-pages -+ $(INSTALL_PROGRAM) winedump$(EXEEXT) $(DESTDIR)$(bindir)/winedump$(EXEEXT) - $(INSTALL_SCRIPT) $(srcdir)/function_grep.pl $(DESTDIR)$(bindir)/function_grep.pl - - uninstall:: -- $(RM) $(DESTDIR)$(bindir)/function_grep.pl -+ $(RM) $(DESTDIR)$(bindir)/function_grep.pl $(DESTDIR)$(bindir)/winedump$(EXEEXT) -diff --git a/tools/winegcc/Makefile.in b/tools/winegcc/Makefile.in -index 1a3b2a7..3c0670b 100644 ---- a/tools/winegcc/Makefile.in -+++ b/tools/winegcc/Makefile.in -@@ -16,8 +16,6 @@ winegcc_EXTRADEFS = \ - -DLD="\"$(LD)\"" \ - -DPRELINK="\"$(PRELINK)\"" - --INSTALL_DEV = $(PROGRAMS) -- - EXTRA_TARGETS = winecpp$(EXEEXT) wineg++$(EXEEXT) - - all: $(EXTRA_TARGETS) -@@ -25,12 +23,15 @@ all: $(EXTRA_TARGETS) - winecpp$(EXEEXT) wineg++$(EXEEXT): winegcc$(EXEEXT) - $(RM) $@ && $(LN_S) winegcc$(EXEEXT) $@ - --install install-dev:: -+.PHONY: install install-dev uninstall -+ -+install install-dev:: winegcc$(EXEEXT) install-man-pages -+ $(INSTALL_PROGRAM) winegcc$(EXEEXT) $(DESTDIR)$(bindir)/winegcc$(EXEEXT) - cd $(DESTDIR)$(bindir) && $(RM) wineg++$(EXEEXT) && $(LN_S) winegcc$(EXEEXT) wineg++$(EXEEXT) - cd $(DESTDIR)$(bindir) && $(RM) winecpp$(EXEEXT) && $(LN_S) winegcc$(EXEEXT) winecpp$(EXEEXT) - cd $(DESTDIR)$(mandir)/man$(prog_manext) && $(RM) wineg++.$(prog_manext) && $(LN_S) winegcc.$(prog_manext) wineg++.$(prog_manext) - cd $(DESTDIR)$(mandir)/man$(prog_manext) && $(RM) winecpp.$(prog_manext) && $(LN_S) winegcc.$(prog_manext) winecpp.$(prog_manext) - - uninstall:: -- $(RM) $(DESTDIR)$(bindir)/wineg++$(EXEEXT) $(DESTDIR)$(bindir)/winecpp$(EXEEXT) -+ $(RM) $(DESTDIR)$(bindir)/winegcc$(EXEEXT) $(DESTDIR)$(bindir)/wineg++$(EXEEXT) $(DESTDIR)$(bindir)/winecpp$(EXEEXT) - $(RM) $(DESTDIR)$(mandir)/man$(prog_manext)/wineg++.$(prog_manext) $(DESTDIR)$(mandir)/man$(prog_manext)/winecpp.$(prog_manext) -diff --git a/tools/winemaker/Makefile.in b/tools/winemaker/Makefile.in -index 6afa016..7095ecf 100644 ---- a/tools/winemaker/Makefile.in -+++ b/tools/winemaker/Makefile.in -@@ -3,9 +3,9 @@ MANPAGES = \ - winemaker.fr.UTF-8.man.in \ - winemaker.man.in - --INSTALL_DEV = winemaker -+.PHONY: install install-dev uninstall - --install install-dev:: -+install install-dev:: install-man-pages - $(INSTALL_SCRIPT) $(srcdir)/winemaker $(DESTDIR)$(bindir)/winemaker - - uninstall:: -diff --git a/tools/wmc/Makefile.in b/tools/wmc/Makefile.in -index 41b7236..12a917d 100644 ---- a/tools/wmc/Makefile.in -+++ b/tools/wmc/Makefile.in -@@ -13,4 +13,10 @@ BISON_SRCS = mcy.y - - EXTRALIBS = $(GETTEXTPO_LIBS) $(LIBWINE_STATIC) - --INSTALL_DEV = $(PROGRAMS) -+.PHONY: install install-dev uninstall -+ -+install install-dev:: wmc$(EXEEXT) install-man-pages -+ $(INSTALL_PROGRAM) wmc$(EXEEXT) $(DESTDIR)$(bindir)/wmc$(EXEEXT) -+ -+uninstall:: -+ $(RM) $(DESTDIR)$(bindir)/wmc$(EXEEXT) -diff --git a/tools/wrc/Makefile.in b/tools/wrc/Makefile.in -index 37dbe03..b6f8093 100644 ---- a/tools/wrc/Makefile.in -+++ b/tools/wrc/Makefile.in -@@ -19,4 +19,10 @@ wrc_EXTRADEFS = -DINCLUDEDIR="\"${includedir}\"" - - EXTRALIBS = $(GETTEXTPO_LIBS) $(LIBWPP) $(LIBWINE_STATIC) - --INSTALL_DEV = $(PROGRAMS) -+.PHONY: install install-dev uninstall -+ -+install install-dev:: wrc$(EXEEXT) install-man-pages -+ $(INSTALL_PROGRAM) wrc$(EXEEXT) $(DESTDIR)$(bindir)/wrc$(EXEEXT) -+ -+uninstall:: -+ $(RM) $(DESTDIR)$(bindir)/wrc$(EXEEXT) --- -2.4.3 - -From d6efc2ae486683881d5e13f455cc1e3f04a6b3c4 Mon Sep 17 00:00:00 2001 -From: Michael Cronenworth -Date: Wed, 4 Nov 2015 23:17:06 -0600 -Subject: [PATCH 07/12] Revert "makefiles: Automatically add RPATH support for - programs that use libwine." - -This reverts commit a1515c68d4d4b4334f44b098debba2548a16ca38. ---- - configure | 48 +++++++++++++++++++++++++++++------------------- - configure.ac | 48 +++++++++++++++++++++++++++++------------------- - loader/Makefile.in | 2 ++ - server/Makefile.in | 14 ++++++++++++-- - tools/makedep.c | 24 ------------------------ - 5 files changed, 72 insertions(+), 64 deletions(-) - -diff --git a/configure b/configure -index 8cf26e4..534afff 100755 ---- a/configure -+++ b/configure -@@ -7847,14 +7847,14 @@ distclean:: - - wine_binary="wine" - test "x$enable_win64" != "xyes" || wine_binary="wine64" --loader_programs="$wine_binary" -+loader_programs="$wine_binary wine-installed" - libwine_soversion=`expr $libwine_version : '\([0-9]*\)\..*'` - - LOADER_RULES=" - all: wine.inf - --install install-lib:: $wine_binary-installed -- \$(INSTALL_PROGRAM) $wine_binary-installed \$(DESTDIR)\$(bindir)/$wine_binary -+install install-lib:: wine-installed -+ \$(INSTALL_PROGRAM) wine-installed \$(DESTDIR)\$(bindir)/$wine_binary - - uninstall:: - \$(RM) \$(DESTDIR)\$(bindir)/$wine_binary -@@ -8017,7 +8017,7 @@ done - LIBEXT="dylib" - DLLFLAGS="$DLLFLAGS -fPIC" - LIBWINE_LDFLAGS="-multiply_defined suppress" -- LDRPATH_INSTALL="-Wl,-rpath,@loader_path/\`\$(MAKEDEP) -R \${bindir} \${libdir}\`" -+ LDRPATH_INSTALL="-Wl,-rpath,@loader_path/\`\$(MAKEDEP) -R \$(bindir) \$(libdir)\`" - LDRPATH_LOCAL="-Wl,-rpath,@loader_path/\$(top_builddir)/libs/wine" - COREFOUNDATION_LIBS="-framework CoreFoundation" - -@@ -8262,9 +8262,11 @@ uninstall:: - - - as_fn_append LOADER_RULES " --${wine_binary}_OBJS = main.o --${wine_binary}_LDFLAGS = $LDEXECFLAGS -lwine \$(PTHREAD_LIBS) --$wine_binary $wine_binary-installed: wine_info.plist -+$wine_binary: main.o wine_info.plist -+ \$(CC) -o \$@ $LDEXECFLAGS main.o \$(LIBWINE) \$(LIBPORT) \$(EXTRALIBS) \$(LDFLAGS) \$(LDRPATH_LOCAL) -+ -+wine-installed: main.o wine_info.plist -+ \$(CC) -o \$@ $LDEXECFLAGS main.o \$(LIBWINE) \$(LIBPORT) \$(EXTRALIBS) \$(LDFLAGS) \$(LDRPATH_INSTALL) - " - ;; - -@@ -8323,7 +8325,7 @@ eval ac_res=\$$as_ac_var - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 - $as_echo "$ac_res" >&6; } - if eval test \"x\$"$as_ac_var"\" = x"yes"; then : -- LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \${bindir} \${libdir}\`" -+ LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \$(bindir) \$(libdir)\`" - LDRPATH_LOCAL="-Wl,--rpath,\\\$\$ORIGIN/\$(top_builddir)/libs/wine" - else - as_ac_var=`$as_echo "ac_cv_cflags_-fPIC -Wl,-R,\\$ORIGIN/../lib" | $as_tr_sh` -@@ -8351,7 +8353,7 @@ eval ac_res=\$$as_ac_var - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 - $as_echo "$ac_res" >&6; } - if eval test \"x\$"$as_ac_var"\" = x"yes"; then : -- LDRPATH_INSTALL="-Wl,-R,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \${bindir} \${libdir}\`" -+ LDRPATH_INSTALL="-Wl,-R,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \$(bindir) \$(libdir)\`" - LDRPATH_LOCAL="-Wl,-R,\\\$\$ORIGIN/\$(top_builddir)/libs/wine" - fi - fi -@@ -8430,8 +8432,11 @@ uninstall:: - - - as_fn_append LOADER_RULES " --${wine_binary}_OBJS = main.o --${wine_binary}_LDFLAGS = $LDEXECFLAGS -lwine \$(PTHREAD_LIBS) -+$wine_binary: main.o -+ \$(CC) -o \$@ $LDEXECFLAGS main.o \$(LIBWINE) \$(LIBPORT) \$(EXTRALIBS) \$(LDFLAGS) \$(LDRPATH_LOCAL) -+ -+wine-installed: main.o -+ \$(CC) -o \$@ $LDEXECFLAGS main.o \$(LIBWINE) \$(LIBPORT) \$(EXTRALIBS) \$(LDFLAGS) \$(LDRPATH_INSTALL) - " - ;; - -@@ -8594,7 +8599,7 @@ eval ac_res=\$$as_ac_var - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 - $as_echo "$ac_res" >&6; } - if eval test \"x\$"$as_ac_var"\" = x"yes"; then : -- LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \${bindir} \${libdir}\`" -+ LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \$(bindir) \$(libdir)\`" - LDRPATH_LOCAL="-Wl,--rpath,\\\$\$ORIGIN/\$(top_builddir)/libs/wine" - else - as_ac_var=`$as_echo "ac_cv_cflags_-fPIC -Wl,-R,\\$ORIGIN/../lib" | $as_tr_sh` -@@ -8622,7 +8627,7 @@ eval ac_res=\$$as_ac_var - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 - $as_echo "$ac_res" >&6; } - if eval test \"x\$"$as_ac_var"\" = x"yes"; then : -- LDRPATH_INSTALL="-Wl,-R,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \${bindir} \${libdir}\`" -+ LDRPATH_INSTALL="-Wl,-R,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \$(bindir) \$(libdir)\`" - LDRPATH_LOCAL="-Wl,-R,\\\$\$ORIGIN/\$(top_builddir)/libs/wine" - fi - fi -@@ -8814,8 +8819,11 @@ uninstall:: - - - as_fn_append LOADER_RULES " --${wine_binary}_OBJS = main.o --${wine_binary}_LDFLAGS = $LDEXECFLAGS -lwine \$(PTHREAD_LIBS) -+$wine_binary: main.o -+ \$(CC) -o \$@ $LDEXECFLAGS main.o \$(LIBWINE) \$(LIBPORT) \$(EXTRALIBS) \$(LDFLAGS) \$(LDRPATH_LOCAL) -+ -+wine-installed: main.o -+ \$(CC) -o \$@ $LDEXECFLAGS main.o \$(LIBWINE) \$(LIBPORT) \$(EXTRALIBS) \$(LDFLAGS) \$(LDRPATH_INSTALL) - " - if test -z "$with_wine64" - then -@@ -14942,21 +14950,23 @@ case $host_os in - test "$wine_binary" = wine || wine_fn_ignore_file "loader/wine-preloader" - loader_programs="$loader_programs $wine_binary-preloader" - as_fn_append LOADER_RULES " --preloader_EXTRADEFS = $BUILTINFLAG --${wine_binary}_preloader_OBJS = preloader.o --${wine_binary}_preloader_LDFLAGS = -static -nostartfiles -nodefaultlibs -Wl,-Ttext=0x7c400000 -+$wine_binary-preloader: preloader.o -+ \$(CC) -o \$@ -static -nostartfiles -nodefaultlibs -Wl,-Ttext=0x7c400000 preloader.o \$(LIBPORT) \$(LDFLAGS) - - install install-lib:: $wine_binary-preloader - \$(INSTALL_PROGRAM) $wine_binary-preloader \$(DESTDIR)\$(bindir)/$wine_binary-preloader - - uninstall:: - \$(RM) \$(DESTDIR)\$(bindir)/$wine_binary-preloader -+ -+preloader_EXTRADEFS = $BUILTINFLAG - " ;; - esac - ;; - esac - as_fn_append LOADER_RULES " --PROGRAMS = $loader_programs -+EXTRA_TARGETS = $loader_programs -+all: $loader_programs - " - - -diff --git a/configure.ac b/configure.ac -index ff74f8d..cdc68fe 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -686,14 +686,14 @@ WINE_CONFIG_HELPERS - - wine_binary="wine" - test "x$enable_win64" != "xyes" || wine_binary="wine64" --loader_programs="$wine_binary" -+loader_programs="$wine_binary wine-installed" - libwine_soversion=`expr $libwine_version : '\([[0-9]]*\)\..*'` - - AC_SUBST(LOADER_RULES,[" - all: wine.inf - --install install-lib:: $wine_binary-installed -- \$(INSTALL_PROGRAM) $wine_binary-installed \$(DESTDIR)\$(bindir)/$wine_binary -+install install-lib:: wine-installed -+ \$(INSTALL_PROGRAM) wine-installed \$(DESTDIR)\$(bindir)/$wine_binary - - uninstall:: - \$(RM) \$(DESTDIR)\$(bindir)/$wine_binary -@@ -754,7 +754,7 @@ uninstall:: - LIBEXT="dylib" - DLLFLAGS="$DLLFLAGS -fPIC" - LIBWINE_LDFLAGS="-multiply_defined suppress" -- LDRPATH_INSTALL="-Wl,-rpath,@loader_path/\`\$(MAKEDEP) -R \${bindir} \${libdir}\`" -+ LDRPATH_INSTALL="-Wl,-rpath,@loader_path/\`\$(MAKEDEP) -R \$(bindir) \$(libdir)\`" - LDRPATH_LOCAL="-Wl,-rpath,@loader_path/\$(top_builddir)/libs/wine" - dnl declare needed frameworks - AC_SUBST(COREFOUNDATION_LIBS,"-framework CoreFoundation") -@@ -891,9 +891,11 @@ uninstall:: - "]) - - AS_VAR_APPEND([LOADER_RULES],[" --${wine_binary}_OBJS = main.o --${wine_binary}_LDFLAGS = $LDEXECFLAGS -lwine \$(PTHREAD_LIBS) --$wine_binary $wine_binary-installed: wine_info.plist -+$wine_binary: main.o wine_info.plist -+ \$(CC) -o \$@ $LDEXECFLAGS main.o \$(LIBWINE) \$(LIBPORT) \$(EXTRALIBS) \$(LDFLAGS) \$(LDRPATH_LOCAL) -+ -+wine-installed: main.o wine_info.plist -+ \$(CC) -o \$@ $LDEXECFLAGS main.o \$(LIBWINE) \$(LIBPORT) \$(EXTRALIBS) \$(LDFLAGS) \$(LDRPATH_INSTALL) - "]) - ;; - -@@ -905,10 +907,10 @@ $wine_binary $wine_binary-installed: wine_info.plist - WINE_TRY_CFLAGS([-fPIC -Wl,--export-dynamic], - [LDEXECFLAGS="-Wl,--export-dynamic"]) - WINE_TRY_CFLAGS([-fPIC -Wl,--rpath,\$ORIGIN/../lib], -- [LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \${bindir} \${libdir}\`" -+ [LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \$(bindir) \$(libdir)\`" - LDRPATH_LOCAL="-Wl,--rpath,\\\$\$ORIGIN/\$(top_builddir)/libs/wine"], - [WINE_TRY_CFLAGS([-fPIC -Wl,-R,\$ORIGIN/../lib], -- [LDRPATH_INSTALL="-Wl,-R,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \${bindir} \${libdir}\`" -+ [LDRPATH_INSTALL="-Wl,-R,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \$(bindir) \$(libdir)\`" - LDRPATH_LOCAL="-Wl,-R,\\\$\$ORIGIN/\$(top_builddir)/libs/wine"])]) - - WINE_TRY_CFLAGS([-Wl,--enable-new-dtags], -@@ -938,8 +940,11 @@ uninstall:: - "]) - - AS_VAR_APPEND([LOADER_RULES],[" --${wine_binary}_OBJS = main.o --${wine_binary}_LDFLAGS = $LDEXECFLAGS -lwine \$(PTHREAD_LIBS) -+$wine_binary: main.o -+ \$(CC) -o \$@ $LDEXECFLAGS main.o \$(LIBWINE) \$(LIBPORT) \$(EXTRALIBS) \$(LDFLAGS) \$(LDRPATH_LOCAL) -+ -+wine-installed: main.o -+ \$(CC) -o \$@ $LDEXECFLAGS main.o \$(LIBWINE) \$(LIBPORT) \$(EXTRALIBS) \$(LDFLAGS) \$(LDRPATH_INSTALL) - "]) - ;; - -@@ -966,10 +971,10 @@ ${wine_binary}_LDFLAGS = $LDEXECFLAGS -lwine \$(PTHREAD_LIBS) - [LDEXECFLAGS="-Wl,--export-dynamic"]) - - WINE_TRY_CFLAGS([-fPIC -Wl,--rpath,\$ORIGIN/../lib], -- [LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \${bindir} \${libdir}\`" -+ [LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \$(bindir) \$(libdir)\`" - LDRPATH_LOCAL="-Wl,--rpath,\\\$\$ORIGIN/\$(top_builddir)/libs/wine"], - [WINE_TRY_CFLAGS([-fPIC -Wl,-R,\$ORIGIN/../lib], -- [LDRPATH_INSTALL="-Wl,-R,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \${bindir} \${libdir}\`" -+ [LDRPATH_INSTALL="-Wl,-R,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \$(bindir) \$(libdir)\`" - LDRPATH_LOCAL="-Wl,-R,\\\$\$ORIGIN/\$(top_builddir)/libs/wine"])]) - - WINE_TRY_CFLAGS([-Wl,--enable-new-dtags], -@@ -1028,8 +1033,11 @@ uninstall:: - "]) - - AS_VAR_APPEND([LOADER_RULES],[" --${wine_binary}_OBJS = main.o --${wine_binary}_LDFLAGS = $LDEXECFLAGS -lwine \$(PTHREAD_LIBS) -+$wine_binary: main.o -+ \$(CC) -o \$@ $LDEXECFLAGS main.o \$(LIBWINE) \$(LIBPORT) \$(EXTRALIBS) \$(LDFLAGS) \$(LDRPATH_LOCAL) -+ -+wine-installed: main.o -+ \$(CC) -o \$@ $LDEXECFLAGS main.o \$(LIBWINE) \$(LIBPORT) \$(EXTRALIBS) \$(LDFLAGS) \$(LDRPATH_INSTALL) - "]) - if test -z "$with_wine64" - then -@@ -2036,21 +2044,23 @@ case $host_os in - test "$wine_binary" = wine || WINE_IGNORE_FILE("loader/wine-preloader") - loader_programs="$loader_programs $wine_binary-preloader" - AS_VAR_APPEND([LOADER_RULES],[" --preloader_EXTRADEFS = $BUILTINFLAG --${wine_binary}_preloader_OBJS = preloader.o --${wine_binary}_preloader_LDFLAGS = -static -nostartfiles -nodefaultlibs -Wl,-Ttext=0x7c400000 -+$wine_binary-preloader: preloader.o -+ \$(CC) -o \$@ -static -nostartfiles -nodefaultlibs -Wl,-Ttext=0x7c400000 preloader.o \$(LIBPORT) \$(LDFLAGS) - - install install-lib:: $wine_binary-preloader - \$(INSTALL_PROGRAM) $wine_binary-preloader \$(DESTDIR)\$(bindir)/$wine_binary-preloader - - uninstall:: - \$(RM) \$(DESTDIR)\$(bindir)/$wine_binary-preloader -+ -+preloader_EXTRADEFS = $BUILTINFLAG - "]) ;; - esac - ;; - esac - AS_VAR_APPEND([LOADER_RULES],[" --PROGRAMS = $loader_programs -+EXTRA_TARGETS = $loader_programs -+all: $loader_programs - "]) - - dnl **** Check for functions **** -diff --git a/loader/Makefile.in b/loader/Makefile.in -index 7719801..95e4798 100644 ---- a/loader/Makefile.in -+++ b/loader/Makefile.in -@@ -1,3 +1,5 @@ -+EXTRALIBS = $(PTHREAD_LIBS) -+ - C_SRCS = \ - main.c \ - preloader.c -diff --git a/server/Makefile.in b/server/Makefile.in -index 7a1ac11..e7fb603 100644 ---- a/server/Makefile.in -+++ b/server/Makefile.in -@@ -1,4 +1,4 @@ --PROGRAMS = wineserver -+EXTRALIBS = $(POLL_LIBS) $(RT_LIBS) - - C_SRCS = \ - async.c \ -@@ -45,12 +45,22 @@ C_SRCS = \ - window.c \ - winstation.c - -+EXTRA_TARGETS = wineserver wineserver-installed -+ - MANPAGES = \ - wineserver.de.UTF-8.man.in \ - wineserver.fr.UTF-8.man.in \ - wineserver.man.in - --EXTRALIBS = -lwine $(POLL_LIBS) $(RT_LIBS) -+OBJS = $(C_SRCS:.c=.o) -+ -+all: $(EXTRA_TARGETS) -+ -+wineserver: $(OBJS) -+ $(CC) -o $@ $(OBJS) $(LIBWINE) $(LIBPORT) $(LDFLAGS) $(EXTRALIBS) $(LIBS) $(LDRPATH_LOCAL) -+ -+wineserver-installed: $(OBJS) -+ $(CC) -o $@ $(OBJS) $(LIBWINE) $(LIBPORT) $(LDFLAGS) $(EXTRALIBS) $(LIBS) $(LDRPATH_INSTALL) - - .PHONY: install install-lib uninstall - -diff --git a/tools/makedep.c b/tools/makedep.c -index 295e5e8..8c5abde 100644 ---- a/tools/makedep.c -+++ b/tools/makedep.c -@@ -1778,8 +1778,6 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t - struct strarray subdirs = empty_strarray; - struct strarray phony_targets = empty_strarray; - struct strarray all_targets = empty_strarray; -- char *ldrpath_local = get_expanded_make_variable( make, "LDRPATH_LOCAL" ); -- char *ldrpath_install = get_expanded_make_variable( make, "LDRPATH_INSTALL" ); - - for (i = 0; i < linguas.count; i++) - strarray_add( &mo_files, strmake( "%s/%s.mo", top_obj_dir_path( make, "po" ), linguas.str[i] )); -@@ -2383,28 +2381,6 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t - strarray_addall( &all_libs, libs ); - strarray_addall( &all_libs, get_expanded_make_var_array( make, - file_local_var( make->programs.str[i], "LDFLAGS" ))); -- -- if (strarray_exists( &all_libs, "-lwine" )) -- { -- strarray_add( &all_libs, strmake( "-L%s", top_obj_dir_path( make, "libs/wine" ))); -- if (ldrpath_local && ldrpath_install) -- { -- char *program_installed = strmake( "%s-installed%s", make->programs.str[i], exe_ext ); -- -- output_filename( ldrpath_local ); -- output_filenames( all_libs ); -- output_filename( "$(LDFLAGS)" ); -- output( "\n" ); -- output( "%s:", obj_dir_path( make, program_installed ) ); -- output_filenames_obj_dir( make, objs ); -- output( "\n" ); -- output( "\t$(CC) -o $@" ); -- output_filenames_obj_dir( make, objs ); -- output_filename( ldrpath_install ); -- strarray_add( &all_targets, program_installed ); -- } -- } -- - output_filenames( all_libs ); - output_filename( "$(LDFLAGS)" ); - output( "\n" ); --- -2.4.3 - -From 15ac6de3059fb8b0ebcf0b682a9fe013aba63f33 Mon Sep 17 00:00:00 2001 -From: Michael Cronenworth -Date: Wed, 4 Nov 2015 23:18:40 -0600 -Subject: [PATCH 08/12] Revert "makefiles: Read variable definitions from the - top makefile instead of using Make.vars.in." - -This reverts commit ef557a8a8a47100a3a0eb0662c93e38634afed89. - -# Conflicts: -# aclocal.m4 -# configure -# tools/makedep.c ---- - configure | 3 +-- - configure.ac | 3 +-- - server/Makefile.in | 4 +--- - tools/Makefile.in | 16 ++++++++++++++-- - tools/make_makefiles | 1 - - tools/makedep.c | 46 +++------------------------------------------ - tools/sfnt2fon/Makefile.in | 7 +++++-- - tools/widl/Makefile.in | 9 ++++++--- - tools/winebuild/Makefile.in | 9 +++++++-- - tools/winedump/Makefile.in | 9 +++++++-- - tools/winegcc/Makefile.in | 12 +++++++----- - tools/wmc/Makefile.in | 8 ++++++-- - tools/wrc/Makefile.in | 8 ++++++-- - 13 files changed, 64 insertions(+), 71 deletions(-) - -diff --git a/configure b/configure -index 534afff..4717706 100755 ---- a/configure -+++ b/configure -@@ -14965,8 +14965,7 @@ preloader_EXTRADEFS = $BUILTINFLAG - ;; - esac - as_fn_append LOADER_RULES " --EXTRA_TARGETS = $loader_programs --all: $loader_programs -+PROGRAMS = $loader_programs - " - - -diff --git a/configure.ac b/configure.ac -index cdc68fe..c915638 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -2059,8 +2059,7 @@ preloader_EXTRADEFS = $BUILTINFLAG - ;; - esac - AS_VAR_APPEND([LOADER_RULES],[" --EXTRA_TARGETS = $loader_programs --all: $loader_programs -+PROGRAMS = $loader_programs - "]) - - dnl **** Check for functions **** -diff --git a/server/Makefile.in b/server/Makefile.in -index e7fb603..19a4fac 100644 ---- a/server/Makefile.in -+++ b/server/Makefile.in -@@ -45,7 +45,7 @@ C_SRCS = \ - window.c \ - winstation.c - --EXTRA_TARGETS = wineserver wineserver-installed -+PROGRAMS = wineserver wineserver-installed - - MANPAGES = \ - wineserver.de.UTF-8.man.in \ -@@ -54,8 +54,6 @@ MANPAGES = \ - - OBJS = $(C_SRCS:.c=.o) - --all: $(EXTRA_TARGETS) -- - wineserver: $(OBJS) - $(CC) -o $@ $(OBJS) $(LIBWINE) $(LIBPORT) $(LDFLAGS) $(EXTRALIBS) $(LIBS) $(LDRPATH_LOCAL) - -diff --git a/tools/Makefile.in b/tools/Makefile.in -index bc13cc9..fa7e990 100644 ---- a/tools/Makefile.in -+++ b/tools/Makefile.in -@@ -1,10 +1,22 @@ - PROGRAMS = \ -- make_xftmpl -+ make_xftmpl$(EXEEXT) - - C_SRCS = \ -- make_xftmpl.c -+ make_xftmpl.c \ -+ makedep.c - - IN_SRCS = \ - wineapploader.in - - all: wineapploader -+ -+make_xftmpl$(EXEEXT): make_xftmpl.o -+ $(CC) $(CFLAGS) -o $@ make_xftmpl.o $(LIBPORT) $(LDFLAGS) -+ -+.PHONY: install install-dev uninstall -+ -+install install-dev:: install-man-pages -+ $(INSTALL_SCRIPT) $(srcdir)/winemaker $(DESTDIR)$(bindir)/winemaker -+ -+uninstall:: -+ $(RM) $(DESTDIR)$(bindir)/winemaker -diff --git a/tools/make_makefiles b/tools/make_makefiles -index 069d0ae..266f33a 100755 ---- a/tools/make_makefiles -+++ b/tools/make_makefiles -@@ -110,7 +110,6 @@ my %ignored_source_files = ( - "dlls/wineps.drv/afm2c.c" => 1, - "dlls/wineps.drv/mkagl.c" => 1, - "programs/winetest/dist.rc" => 1, -- "tools/makedep.c" => 1, - ); - - my (@linguas, @makefiles, %makefiles); -diff --git a/tools/makedep.c b/tools/makedep.c -index 8c5abde..3c30a0c 100644 ---- a/tools/makedep.c -+++ b/tools/makedep.c -@@ -149,7 +149,6 @@ struct makefile - struct strarray vars; - struct strarray include_args; - struct strarray define_args; -- struct strarray programs; - struct strarray appmode; - struct strarray imports; - struct strarray delayimports; -@@ -1561,19 +1560,6 @@ static struct strarray get_expanded_make_var_array( struct makefile *make, const - - - /******************************************************************* -- * file_local_var -- */ --static char *file_local_var( const char *file, const char *name ) --{ -- char *p, *var; -- -- var = strmake( "%s_%s", file, name ); -- for (p = var; *p; p++) if (!isalnum( *p )) *p = '_'; -- return var; --} -- -- --/******************************************************************* - * set_make_variable - */ - static int set_make_variable( struct strarray *array, const char *assignment ) -@@ -1777,7 +1763,7 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t - struct strarray includes = empty_strarray; - struct strarray subdirs = empty_strarray; - struct strarray phony_targets = empty_strarray; -- struct strarray all_targets = empty_strarray; -+ struct strarray all_targets = get_expanded_make_var_array( make, "PROGRAMS" ); - - for (i = 0; i < linguas.count; i++) - strarray_add( &mo_files, strmake( "%s/%s.mo", top_obj_dir_path( make, "po" ), linguas.str[i] )); -@@ -1807,7 +1793,7 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t - strarray_add_uniq( &subdirs, subdir ); - } - -- extradefs = get_expanded_make_var_array( make, file_local_var( obj, "EXTRADEFS" )); -+ extradefs = get_expanded_make_var_array( make, strmake( "%s_EXTRADEFS", obj )); - - if (!strcmp( ext, "y" )) /* yacc file */ - { -@@ -2283,7 +2269,7 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t - - for (i = 0; i < make->imports.count; i++) - strarray_add( &all_libs, strmake( "-l%s", make->imports.str[i] )); -- strarray_addall( &all_libs, libs ); -+ strarray_addall( &all_libs, get_expanded_make_var_array( make, "LIBS" )); - - strarray_add( &all_targets, strmake( "%s%s", testmodule, dll_ext )); - strarray_add( &clean_files, strmake( "%s%s", stripped, dll_ext )); -@@ -2363,30 +2349,6 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t - *testlist_files = strarray_replace_extension( &ok_files, ".ok", "" ); - } - -- for (i = 0; i < make->programs.count; i++) -- { -- char *program = strmake( "%s%s", make->programs.str[i], exe_ext ); -- struct strarray all_libs = empty_strarray; -- struct strarray objs = get_expanded_make_var_array( make, -- file_local_var( make->programs.str[i], "OBJS" )); -- -- if (!objs.count) objs = object_files; -- output( "%s:", obj_dir_path( make, program ) ); -- output_filenames_obj_dir( make, objs ); -- output( "\n" ); -- output( "\t$(CC) -o $@" ); -- output_filenames_obj_dir( make, objs ); -- strarray_add( &all_libs, top_obj_dir_path( make, "libs/port/libwine_port.a" )); -- strarray_addall( &all_libs, get_expanded_make_var_array( make, "EXTRALIBS" )); -- strarray_addall( &all_libs, libs ); -- strarray_addall( &all_libs, get_expanded_make_var_array( make, -- file_local_var( make->programs.str[i], "LDFLAGS" ))); -- output_filenames( all_libs ); -- output_filename( "$(LDFLAGS)" ); -- output( "\n" ); -- strarray_add( &all_targets, program ); -- } -- - if (all_targets.count) - { - output( "all:" ); -@@ -2670,7 +2632,6 @@ static void update_makefile( const char *path ) - make->staticlib = get_expanded_make_variable( make, "STATICLIB" ); - make->importlib = get_expanded_make_variable( make, "IMPORTLIB" ); - -- make->programs = get_expanded_make_var_array( make, "PROGRAMS" ); - make->appmode = get_expanded_make_var_array( make, "APPMODE" ); - make->imports = get_expanded_make_var_array( make, "IMPORTS" ); - make->delayimports = get_expanded_make_var_array( make, "DELAYIMPORTS" ); -@@ -2855,7 +2816,6 @@ int main( int argc, char *argv[] ) - - if (root_src_dir && !strcmp( root_src_dir, "." )) root_src_dir = NULL; - if (tools_dir && !strcmp( tools_dir, "." )) tools_dir = NULL; -- if (!exe_ext) exe_ext = ""; - if (!tools_ext) tools_ext = ""; - if (!dll_prefix) dll_prefix = ""; - if (!man_ext) man_ext = "3w"; -diff --git a/tools/sfnt2fon/Makefile.in b/tools/sfnt2fon/Makefile.in -index 5a92d85..a975154 100644 ---- a/tools/sfnt2fon/Makefile.in -+++ b/tools/sfnt2fon/Makefile.in -@@ -1,6 +1,9 @@ --PROGRAMS = sfnt2fon -+PROGRAMS = sfnt2fon$(EXEEXT) - - C_SRCS = sfnt2fon.c - - EXTRAINCL = $(FREETYPE_CFLAGS) --EXTRALIBS = $(FREETYPE_LIBS) $(LIBWINE_STATIC) -+EXTRALIBS = $(FREETYPE_LIBS) -+ -+sfnt2fon$(EXEEXT): sfnt2fon.o -+ $(CC) $(CFLAGS) -o $@ sfnt2fon.o $(LIBWINE_STATIC) $(LIBPORT) $(EXTRALIBS) $(LDFLAGS) -diff --git a/tools/widl/Makefile.in b/tools/widl/Makefile.in -index 0c5595e..a57f54f 100644 ---- a/tools/widl/Makefile.in -+++ b/tools/widl/Makefile.in -@@ -1,4 +1,4 @@ --PROGRAMS = widl -+PROGRAMS = widl$(EXEEXT) - MANPAGES = widl.man.in - - C_SRCS = \ -@@ -21,11 +21,14 @@ BISON_SRCS = parser.y - - widl_EXTRADEFS = -DDEFAULT_INCLUDE_DIR=\"${includedir}/windows/\" - --EXTRALIBS = $(LIBWPP) -+OBJS = $(C_SRCS:.c=.o) $(BISON_SRCS:.y=.tab.o) $(LEX_SRCS:.l=.yy.o) -+ -+widl$(EXEEXT): $(OBJS) $(LIBWPP) -+ $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBWPP) $(LIBPORT) $(LDFLAGS) - - .PHONY: install install-dev uninstall - --install install-dev:: widl$(EXEEXT) install-man-pages -+install install-dev:: $(PROGRAMS) install-man-pages - $(INSTALL_PROGRAM) widl$(EXEEXT) $(DESTDIR)$(bindir)/widl$(EXEEXT) - - uninstall:: -diff --git a/tools/winebuild/Makefile.in b/tools/winebuild/Makefile.in -index 3958902..f5f4603 100644 ---- a/tools/winebuild/Makefile.in -+++ b/tools/winebuild/Makefile.in -@@ -1,4 +1,4 @@ --PROGRAMS = winebuild -+PROGRAMS = winebuild$(EXEEXT) - MANPAGES = winebuild.man.in - - C_SRCS = \ -@@ -12,9 +12,14 @@ C_SRCS = \ - spec32.c \ - utils.c - -+OBJS = $(C_SRCS:.c=.o) -+ -+winebuild$(EXEEXT): $(OBJS) -+ $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBPORT) $(LDFLAGS) -+ - .PHONY: install install-dev uninstall - --install install-dev:: winebuild$(EXEEXT) install-man-pages -+install install-dev:: $(PROGRAMS) install-man-pages - $(INSTALL_PROGRAM) winebuild$(EXEEXT) $(DESTDIR)$(bindir)/winebuild$(EXEEXT) - - uninstall:: -diff --git a/tools/winedump/Makefile.in b/tools/winedump/Makefile.in -index dd36cff..7b925c3 100644 ---- a/tools/winedump/Makefile.in -+++ b/tools/winedump/Makefile.in -@@ -1,4 +1,4 @@ --PROGRAMS = winedump -+PROGRAMS = winedump$(EXEEXT) - MANPAGES = winedump.man.in - - C_SRCS = \ -@@ -23,9 +23,14 @@ C_SRCS = \ - symbol.c \ - tlb.c - -+OBJS = $(C_SRCS:.c=.o) -+ -+winedump$(EXEEXT): $(OBJS) -+ $(CC) $(CFLAGS) -o winedump$(EXEEXT) $(OBJS) $(LIBPORT) $(LDFLAGS) -+ - .PHONY: install install-dev uninstall - --install install-dev:: winedump$(EXEEXT) install-man-pages -+install install-dev:: $(PROGRAMS) install-man-pages - $(INSTALL_PROGRAM) winedump$(EXEEXT) $(DESTDIR)$(bindir)/winedump$(EXEEXT) - $(INSTALL_SCRIPT) $(srcdir)/function_grep.pl $(DESTDIR)$(bindir)/function_grep.pl - -diff --git a/tools/winegcc/Makefile.in b/tools/winegcc/Makefile.in -index 3c0670b..370a2e4 100644 ---- a/tools/winegcc/Makefile.in -+++ b/tools/winegcc/Makefile.in -@@ -1,4 +1,7 @@ --PROGRAMS = winegcc -+PROGRAMS = \ -+ winecpp$(EXEEXT) \ -+ winegcc$(EXEEXT) \ -+ wineg++$(EXEEXT) - - MANPAGES = winegcc.man.in - -@@ -16,16 +19,15 @@ winegcc_EXTRADEFS = \ - -DLD="\"$(LD)\"" \ - -DPRELINK="\"$(PRELINK)\"" - --EXTRA_TARGETS = winecpp$(EXEEXT) wineg++$(EXEEXT) -- --all: $(EXTRA_TARGETS) -+winegcc$(EXEEXT): winegcc.o utils.o -+ $(CC) $(CFLAGS) -o $@ winegcc.o utils.o $(LIBPORT) $(LDFLAGS) - - winecpp$(EXEEXT) wineg++$(EXEEXT): winegcc$(EXEEXT) - $(RM) $@ && $(LN_S) winegcc$(EXEEXT) $@ - - .PHONY: install install-dev uninstall - --install install-dev:: winegcc$(EXEEXT) install-man-pages -+install install-dev:: $(PROGRAMS) install-man-pages - $(INSTALL_PROGRAM) winegcc$(EXEEXT) $(DESTDIR)$(bindir)/winegcc$(EXEEXT) - cd $(DESTDIR)$(bindir) && $(RM) wineg++$(EXEEXT) && $(LN_S) winegcc$(EXEEXT) wineg++$(EXEEXT) - cd $(DESTDIR)$(bindir) && $(RM) winecpp$(EXEEXT) && $(LN_S) winegcc$(EXEEXT) winecpp$(EXEEXT) -diff --git a/tools/wmc/Makefile.in b/tools/wmc/Makefile.in -index 12a917d..c163e34 100644 ---- a/tools/wmc/Makefile.in -+++ b/tools/wmc/Makefile.in -@@ -1,5 +1,6 @@ --PROGRAMS = wmc -+PROGRAMS = wmc$(EXEEXT) - MANPAGES = wmc.man.in -+ALL_LIBS = $(GETTEXTPO_LIBS) $(LIBWINE_STATIC) $(LIBPORT) - - C_SRCS = \ - lang.c \ -@@ -11,7 +12,10 @@ C_SRCS = \ - - BISON_SRCS = mcy.y - --EXTRALIBS = $(GETTEXTPO_LIBS) $(LIBWINE_STATIC) -+OBJS = $(C_SRCS:.c=.o) $(BISON_SRCS:.y=.tab.o) -+ -+wmc$(EXEEXT): $(OBJS) -+ $(CC) $(CFLAGS) -o $@ $(OBJS) $(ALL_LIBS) $(LDFLAGS) - - .PHONY: install install-dev uninstall - -diff --git a/tools/wrc/Makefile.in b/tools/wrc/Makefile.in -index b6f8093..056de1c 100644 ---- a/tools/wrc/Makefile.in -+++ b/tools/wrc/Makefile.in -@@ -1,5 +1,6 @@ --PROGRAMS = wrc -+PROGRAMS = wrc$(EXEEXT) - MANPAGES = wrc.man.in -+ALL_LIBS = $(GETTEXTPO_LIBS) $(LIBWPP) $(LIBWINE_STATIC) $(LIBPORT) - - C_SRCS = \ - dumpres.c \ -@@ -17,7 +18,10 @@ BISON_SRCS = parser.y - - wrc_EXTRADEFS = -DINCLUDEDIR="\"${includedir}\"" - --EXTRALIBS = $(GETTEXTPO_LIBS) $(LIBWPP) $(LIBWINE_STATIC) -+OBJS = $(C_SRCS:.c=.o) $(BISON_SRCS:.y=.tab.o) $(LEX_SRCS:.l=.yy.o) -+ -+wrc$(EXEEXT): $(OBJS) $(LIBWPP) -+ $(CC) $(CFLAGS) -o $@ $(OBJS) $(ALL_LIBS) $(LDFLAGS) - - .PHONY: install install-dev uninstall - --- -2.4.3 - -From 049cf292e292f135ca304a23a596bb9e32e9ae9b Mon Sep 17 00:00:00 2001 -From: Michael Cronenworth -Date: Wed, 4 Nov 2015 23:18:56 -0600 -Subject: [PATCH 09/12] Revert "makefiles: Fix expansion of '$$' in make - variables." - -This reverts commit 581be47a45b2c566083e543d28609708b26002e2. ---- - tools/makedep.c | 12 +++++++----- - 1 file changed, 7 insertions(+), 5 deletions(-) - -diff --git a/tools/makedep.c b/tools/makedep.c -index 3c30a0c..c81a57e 100644 ---- a/tools/makedep.c -+++ b/tools/makedep.c -@@ -1518,21 +1518,23 @@ static char *get_expanded_make_variable( struct makefile *make, const char *name - var = get_make_variable( make, p + 2 ); - tmp = replace_substr( expand, p, end - p, var ? var : "" ); - free( var ); -- /* switch to the new string */ -- p = tmp + (p - expand); -- free( expand ); -- expand = tmp; - } - else if (p[1] == '{') /* don't expand ${} variables */ - { - if (!(end = strchr( p + 2, '}' ))) fatal_error( "syntax error in '%s'\n", expand ); - p = end + 1; -+ continue; - } - else if (p[1] == '$') - { -- p += 2; -+ tmp = replace_substr( expand, p, 2, "$" ); - } - else fatal_error( "syntax error in '%s'\n", expand ); -+ -+ /* switch to the new string */ -+ p = tmp + (p - expand); -+ free( expand ); -+ expand = tmp; - } - - /* consider empty variables undefined */ --- -2.4.3 - -From 0b4781cbc1c55118361539779557e64211b9a246 Mon Sep 17 00:00:00 2001 -From: Michael Cronenworth -Date: Wed, 4 Nov 2015 23:19:06 -0600 -Subject: [PATCH 10/12] Revert "makefiles: Avoid running config.status when not - necessary." - -This reverts commit e0b1e8154dccd8a238a7cf6afb8e96520248ebd7. ---- - aclocal.m4 | 17 +++-------------- - configure | 23 ++++++----------------- - configure.ac | 6 +++--- - tools/make_makefiles | 4 ---- - tools/makedep.c | 48 +++++++++--------------------------------------- - 5 files changed, 21 insertions(+), 77 deletions(-) - -diff --git a/aclocal.m4 b/aclocal.m4 -index e236c92..13bab9b 100644 ---- a/aclocal.m4 -+++ b/aclocal.m4 -@@ -225,24 +225,13 @@ wine_fn_has_flag () - - wine_fn_depend_rules () - { -- if wine_fn_has_flag config -- then -- wine_fn_append_rule \ -+ wine_fn_append_rule \ - "$ac_dir/Makefile: $srcdir/$ac_dir/Makefile.in Makefile config.status \$(MAKEDEP) -- @./config.status --file $ac_dir/Makefile && \$(MAKEDEP) -iMakefile $ac_dir -+ @./config.status --file $ac_dir/Makefile && \$(MAKEDEP) $ac_dir - depend: $ac_dir/depend - .PHONY: $ac_dir/depend - $ac_dir/depend: \$(MAKEDEP) dummy -- @./config.status --file $ac_dir/Makefile && \$(MAKEDEP) -iMakefile $ac_dir" -- else -- wine_fn_append_rule \ --"$ac_dir/Makefile: $srcdir/$ac_dir/Makefile.in Makefile \$(MAKEDEP) -- \$(MAKEDEP) $ac_dir --depend: $ac_dir/depend --.PHONY: $ac_dir/depend --$ac_dir/depend: \$(MAKEDEP) dummy -- \$(MAKEDEP) $ac_dir" -- fi -+ @./config.status --file $ac_dir/Makefile && \$(MAKEDEP) $ac_dir" - } - - wine_fn_pot_rules () -diff --git a/configure b/configure -index 4717706..659f513 100755 ---- a/configure -+++ b/configure -@@ -7389,24 +7389,13 @@ wine_fn_has_flag () - - wine_fn_depend_rules () - { -- if wine_fn_has_flag config -- then -- wine_fn_append_rule \ -+ wine_fn_append_rule \ - "$ac_dir/Makefile: $srcdir/$ac_dir/Makefile.in Makefile config.status \$(MAKEDEP) -- @./config.status --file $ac_dir/Makefile && \$(MAKEDEP) -iMakefile $ac_dir -+ @./config.status --file $ac_dir/Makefile && \$(MAKEDEP) $ac_dir - depend: $ac_dir/depend - .PHONY: $ac_dir/depend - $ac_dir/depend: \$(MAKEDEP) dummy -- @./config.status --file $ac_dir/Makefile && \$(MAKEDEP) -iMakefile $ac_dir" -- else -- wine_fn_append_rule \ --"$ac_dir/Makefile: $srcdir/$ac_dir/Makefile.in Makefile \$(MAKEDEP) -- \$(MAKEDEP) $ac_dir --depend: $ac_dir/depend --.PHONY: $ac_dir/depend --$ac_dir/depend: \$(MAKEDEP) dummy -- \$(MAKEDEP) $ac_dir" -- fi -+ @./config.status --file $ac_dir/Makefile && \$(MAKEDEP) $ac_dir" - } - - wine_fn_pot_rules () -@@ -18055,9 +18044,9 @@ wine_fn_config_makefile documentation enable_documentation clean - wine_fn_config_makefile fonts enable_fonts clean,install-lib - wine_fn_config_makefile include enable_include clean,install-dev - wine_fn_config_makefile libs/port enable_libs_port --wine_fn_config_makefile libs/wine enable_libs_wine clean,config,install-dev,install-lib -+wine_fn_config_makefile libs/wine enable_libs_wine clean,install-dev,install-lib - wine_fn_config_makefile libs/wpp enable_libs_wpp --wine_fn_config_makefile loader enable_loader clean,config,install-lib,manpage -+wine_fn_config_makefile loader enable_loader clean,install-lib,manpage - wine_fn_config_program arp enable_arp install - wine_fn_config_program aspnet_regiis enable_aspnet_regiis install - wine_fn_config_program attrib enable_attrib install,po -@@ -18135,7 +18124,7 @@ wine_fn_config_program winemenubuilder enable_winemenubuilder install - wine_fn_config_program winemine enable_winemine install,installbin,manpage,po - wine_fn_config_program winemsibuilder enable_winemsibuilder install - wine_fn_config_program winepath enable_winepath install,installbin,manpage --wine_fn_config_program winetest enable_winetest clean,config -+wine_fn_config_program winetest enable_winetest clean - wine_fn_config_program winevdm enable_win16 install - wine_fn_config_program winhelp.exe16 enable_win16 install - wine_fn_config_program winhlp32 enable_winhlp32 install,po -diff --git a/configure.ac b/configure.ac -index c915638..f6449a6 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -3504,9 +3504,9 @@ WINE_CONFIG_MAKEFILE([documentation],,[clean]) - WINE_CONFIG_MAKEFILE([fonts],,[clean,install-lib]) - WINE_CONFIG_MAKEFILE([include],,[clean,install-dev]) - WINE_CONFIG_MAKEFILE([libs/port]) --WINE_CONFIG_MAKEFILE([libs/wine],,[clean,config,install-dev,install-lib]) -+WINE_CONFIG_MAKEFILE([libs/wine],,[clean,install-dev,install-lib]) - WINE_CONFIG_MAKEFILE([libs/wpp]) --WINE_CONFIG_MAKEFILE([loader],,[clean,config,install-lib,manpage]) -+WINE_CONFIG_MAKEFILE([loader],,[clean,install-lib,manpage]) - WINE_CONFIG_PROGRAM(arp,,[install]) - WINE_CONFIG_PROGRAM(aspnet_regiis,,[install]) - WINE_CONFIG_PROGRAM(attrib,,[install,po]) -@@ -3584,7 +3584,7 @@ WINE_CONFIG_PROGRAM(winemenubuilder,,[install]) - WINE_CONFIG_PROGRAM(winemine,,[install,installbin,manpage,po]) - WINE_CONFIG_PROGRAM(winemsibuilder,,[install]) - WINE_CONFIG_PROGRAM(winepath,,[install,installbin,manpage]) --WINE_CONFIG_PROGRAM(winetest,,[clean,config]) -+WINE_CONFIG_PROGRAM(winetest,,[clean]) - WINE_CONFIG_PROGRAM(winevdm,enable_win16,[install]) - WINE_CONFIG_PROGRAM(winhelp.exe16,enable_win16,[install]) - WINE_CONFIG_PROGRAM(winhlp32,,[install,po]) -diff --git a/tools/make_makefiles b/tools/make_makefiles -index 266f33a..f0b40c0 100755 ---- a/tools/make_makefiles -+++ b/tools/make_makefiles -@@ -282,10 +282,6 @@ sub parse_makefile($) - { - die "Variable $1 in $file.in is obsolete"; - } -- if (/\@[A-Z_]+\@/) # config.status substitution variable -- { -- ${$make{"=flags"}}{"config"} = 1; -- } - } - - if ($file =~ /^programs\/([^\/]+)\/Makefile/) -diff --git a/tools/makedep.c b/tools/makedep.c -index c81a57e..104711e 100644 ---- a/tools/makedep.c -+++ b/tools/makedep.c -@@ -171,8 +171,7 @@ struct makefile - - static struct makefile *top_makefile; - --static const char *output_makefile_name = "Makefile"; --static const char *input_makefile_name; -+static const char *makefile_name = "Makefile"; - static const char *input_file_name; - static const char *output_file_name; - static const char *temp_file_name; -@@ -185,8 +184,7 @@ static const char Usage[] = - "Usage: makedep [options] directories\n" - "Options:\n" - " -R from to Compute the relative path between two directories\n" -- " -fxxx Store output in file 'xxx' (default: Makefile)\n" -- " -ixxx Read input from file 'xxx' (default: Makefile.in)\n"; -+ " -fxxx Store output in file 'xxx' (default: Makefile)\n"; - - - #ifndef __GNUC__ -@@ -1462,28 +1460,6 @@ static struct incl_file *add_src_file( struct makefile *make, const char *name ) - - - /******************************************************************* -- * open_input_makefile -- */ --static FILE *open_input_makefile( struct makefile *make ) --{ -- FILE *ret; -- -- if (make->base_dir) -- input_file_name = base_dir_path( make, input_makefile_name ); -- else -- input_file_name = output_makefile_name; /* always use output name for main Makefile */ -- -- input_line = 0; -- if (!(ret = fopen( input_file_name, "r" ))) -- { -- input_file_name = root_dir_path( input_file_name ); -- if (!(ret = fopen( input_file_name, "r" ))) fatal_perror( "open" ); -- } -- return ret; --} -- -- --/******************************************************************* - * get_make_variable - */ - static char *get_make_variable( struct makefile *make, const char *name ) -@@ -1602,7 +1578,10 @@ static struct makefile *parse_makefile( const char *path, const char *separator - if (!strcmp( make->base_dir, "." )) make->base_dir = NULL; - } - -- file = open_input_makefile( make ); -+ input_file_name = base_dir_path( make, makefile_name ); -+ if (!(file = fopen( input_file_name, "r" ))) fatal_perror( "open" ); -+ -+ input_line = 0; - while ((buffer = get_line( file ))) - { - if (separator && !strncmp( buffer, separator, strlen(separator) )) break; -@@ -2559,16 +2538,15 @@ static void output_dependencies( struct makefile *make ) - char buffer[1024]; - FILE *src_file; - -- output_file_name = base_dir_path( make, output_makefile_name ); -+ output_file_name = base_dir_path( make, makefile_name ); - output_file = create_temp_file( output_file_name ); - output_top_variables( make ); - - /* copy the contents of the source makefile */ -- src_file = open_input_makefile( make ); -+ if (!(src_file = fopen( output_file_name, "r" ))) fatal_perror( "open" ); - while (fgets( buffer, sizeof(buffer), src_file )) - if (fwrite( buffer, 1, strlen(buffer), output_file ) != strlen(buffer)) fatal_perror( "write" ); - if (fclose( src_file )) fatal_perror( "close" ); -- input_file_name = NULL; - - targets = output_sources( make, &testlist_files ); - -@@ -2662,9 +2640,6 @@ static void update_makefile( const char *path ) - list_init( &make->sources ); - list_init( &make->includes ); - -- /* FIXME: target dir has to exist to allow locating srcdir-relative include files */ -- if (make->base_dir) create_dir( make->base_dir ); -- - for (var = source_vars; *var; var++) - { - value = get_expanded_make_var_array( make, *var ); -@@ -2725,10 +2700,7 @@ static int parse_option( const char *opt ) - switch(opt[1]) - { - case 'f': -- if (opt[2]) output_makefile_name = opt + 2; -- break; -- case 'i': -- if (opt[2]) input_makefile_name = opt + 2; -+ if (opt[2]) makefile_name = opt + 2; - break; - case 'R': - relative_dir_mode = 1; -@@ -2790,8 +2762,6 @@ int main( int argc, char *argv[] ) - - for (i = 0; i < HASH_SIZE; i++) list_init( &files[i] ); - -- if (!input_makefile_name) input_makefile_name = strmake( "%s.in", output_makefile_name ); -- - top_makefile = parse_makefile( NULL, "# End of common header" ); - - linguas = get_expanded_make_var_array( top_makefile, "LINGUAS" ); --- -2.4.3 - -From c28d8ee034dcabeed5cbddc03d64914c5ca36aab Mon Sep 17 00:00:00 2001 -From: Michael Cronenworth -Date: Wed, 4 Nov 2015 23:19:13 -0600 -Subject: [PATCH 11/12] Revert "makefiles: Get rid of the support for updating - a makefile in place." - -This reverts commit 6222e49c37c1fa9120bd3eff6fc48dc902f2d312. ---- - tools/makedep.c | 49 +++++++++++++++++++++++++++++++++---------------- - 1 file changed, 33 insertions(+), 16 deletions(-) - -diff --git a/tools/makedep.c b/tools/makedep.c -index 104711e..119294b 100644 ---- a/tools/makedep.c -+++ b/tools/makedep.c -@@ -172,6 +172,7 @@ struct makefile - static struct makefile *top_makefile; - - static const char *makefile_name = "Makefile"; -+static const char *Separator = "### Dependencies"; - static const char *input_file_name; - static const char *output_file_name; - static const char *temp_file_name; -@@ -184,7 +185,8 @@ static const char Usage[] = - "Usage: makedep [options] directories\n" - "Options:\n" - " -R from to Compute the relative path between two directories\n" -- " -fxxx Store output in file 'xxx' (default: Makefile)\n"; -+ " -fxxx Store output in file 'xxx' (default: Makefile)\n" -+ " -sxxx Use 'xxx' as separator (default: \"### Dependencies\")\n"; - - - #ifndef __GNUC__ -@@ -2532,27 +2534,38 @@ static void output_top_variables( struct makefile *make ) - /******************************************************************* - * output_dependencies - */ --static void output_dependencies( struct makefile *make ) -+static void output_dependencies( struct makefile *make, const char *path ) - { - struct strarray targets, testlist_files = empty_strarray, ignore_files = empty_strarray; -- char buffer[1024]; - FILE *src_file; - -- output_file_name = base_dir_path( make, makefile_name ); -- output_file = create_temp_file( output_file_name ); -- output_top_variables( make ); -+ if (Separator && ((src_file = fopen( path, "r" )))) -+ { -+ char buffer[1024]; -+ int found = 0; - -- /* copy the contents of the source makefile */ -- if (!(src_file = fopen( output_file_name, "r" ))) fatal_perror( "open" ); -- while (fgets( buffer, sizeof(buffer), src_file )) -- if (fwrite( buffer, 1, strlen(buffer), output_file ) != strlen(buffer)) fatal_perror( "write" ); -- if (fclose( src_file )) fatal_perror( "close" ); -+ output_file = create_temp_file( path ); -+ output_top_variables( make ); -+ while (fgets( buffer, sizeof(buffer), src_file ) && !found) -+ { -+ if (fwrite( buffer, 1, strlen(buffer), output_file ) != strlen(buffer)) fatal_perror( "write" ); -+ found = !strncmp( buffer, Separator, strlen(Separator) ); -+ } -+ if (fclose( src_file )) fatal_perror( "close" ); -+ if (!found) output( "\n%s\n", Separator ); -+ } -+ else -+ { -+ if (!(output_file = fopen( path, Separator ? "a" : "w" ))) -+ fatal_perror( "%s", path ); -+ output_top_variables( make ); -+ } - - targets = output_sources( make, &testlist_files ); - - fclose( output_file ); - output_file = NULL; -- rename_temp_file( output_file_name ); -+ if (temp_file_name) rename_temp_file( path ); - - strarray_add( &ignore_files, ".gitignore" ); - strarray_add( &ignore_files, "Makefile" ); -@@ -2563,8 +2576,6 @@ static void output_dependencies( struct makefile *make ) - output_testlist( base_dir_path( make, "testlist.c" ), testlist_files ); - if (!make->src_dir && make->base_dir) - output_gitignore( base_dir_path( make, ".gitignore" ), ignore_files ); -- -- output_file_name = NULL; - } - - -@@ -2595,7 +2606,7 @@ static void update_makefile( const char *path ) - struct incl_file *file; - struct makefile *make; - -- make = parse_makefile( path, NULL ); -+ make = parse_makefile( path, Separator ); - - if (root_src_dir) - { -@@ -2660,7 +2671,9 @@ static void update_makefile( const char *path ) - - LIST_FOR_EACH_ENTRY( file, &make->includes, struct incl_file, entry ) parse_file( make, file, 0 ); - -- output_dependencies( make ); -+ output_file_name = base_dir_path( make, makefile_name ); -+ output_dependencies( make, output_file_name ); -+ output_file_name = NULL; - } - - -@@ -2705,6 +2718,10 @@ static int parse_option( const char *opt ) - case 'R': - relative_dir_mode = 1; - break; -+ case 's': -+ if (opt[2]) Separator = opt + 2; -+ else Separator = NULL; -+ break; - default: - fprintf( stderr, "Unknown option '%s'\n%s", opt, Usage ); - exit(1); --- -2.4.3 - -From 6b23dbddf40220c570d0b73fba2c8355ce0f8aa4 Mon Sep 17 00:00:00 2001 -From: Michael Cronenworth -Date: Wed, 4 Nov 2015 23:19:21 -0600 -Subject: [PATCH 12/12] Revert "makefiles: Read variable definitions from the - top makefile instead of using Make.vars.in." - -This reverts commit ef557a8a8a47100a3a0eb0662c93e38634afed89. ---- - Make.vars.in | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - Makefile.in | 76 -------------------------------------------------------- - aclocal.m4 | 6 ++--- - configure | 12 ++++----- - configure.ac | 4 +-- - tools/makedep.c | 33 +++++-------------------- - 6 files changed, 94 insertions(+), 114 deletions(-) - create mode 100644 Make.vars.in - -diff --git a/Make.vars.in b/Make.vars.in -new file mode 100644 -index 0000000..e2de171 ---- /dev/null -+++ b/Make.vars.in -@@ -0,0 +1,77 @@ -+# @configure_input@ -*-Makefile-*- -+ -+prefix = @prefix@ -+exec_prefix = @exec_prefix@ -+bindir = @bindir@ -+libdir = @libdir@ -+datarootdir = @datarootdir@ -+datadir = @datadir@ -+mandir = @mandir@ -+fontdir = ${datadir}/wine/fonts -+includedir = @includedir@/wine -+dlldir = @dlldir@ -+fakedlldir = ${dlldir}/fakedlls -+top_srcdir = @top_srcdir@ -+top_builddir = @top_builddir@ -+srcdir = @srcdir@ -+SHELL = /bin/sh -+RM = rm -f -+MV = mv -+CC = @CC@ -+CXX = @CXX@ -+CPPBIN = @CPPBIN@ -+CROSSCC = @CROSSCC@ -+CFLAGS = @CFLAGS@ -+CPPFLAGS = @CPPFLAGS@ -+EXTRACFLAGS = @EXTRACFLAGS@ -+MSVCRTFLAGS = @BUILTINFLAG@ -+TARGETFLAGS = @TARGETFLAGS@ -+UNWINDFLAGS = @UNWINDFLAGS@ -+LIBS = @LIBS@ -+BISON = @BISON@ -+FLEX = @FLEX@ -+EXEEXT = @EXEEXT@ -+DLLPREFIX = @DLLPREFIX@ -+TOOLSEXT = @TOOLSEXT@ -+DLLTOOL = @DLLTOOL@ -+AR = @AR@ -+ARFLAGS = @ARFLAGS@ -+RANLIB = @RANLIB@ -+STRIP = @STRIP@ -+LN_S = @LN_S@ -+TOOLSDIR = @TOOLSDIR@ -+LD = @LD@ -+LDFLAGS = @LDFLAGS@ -+DLLFLAGS = @DLLFLAGS@ -+PRELINK = @PRELINK@ -+FONTFORGE = @FONTFORGE@ -+RSVG = @RSVG@ -+CONVERT = @CONVERT@ -+ICOTOOL = @ICOTOOL@ -+MSGFMT = @MSGFMT@ -+CROSSTARGET = @CROSSTARGET@ -+LINGUAS = @LINGUAS@ -+RUNTESTFLAGS = -q -P wine -+MAKEDEP = $(TOOLSDIR)/tools/makedep$(TOOLSEXT) -+WINEBUILD = $(TOOLSDIR)/tools/winebuild/winebuild$(TOOLSEXT) -+WRC = $(TOOLSDIR)/tools/wrc/wrc$(TOOLSEXT) -+LIBPORT = $(top_builddir)/libs/port/libwine_port.a -+LIBWPP = $(top_builddir)/libs/wpp/libwpp.a -+LIBWINE = -L$(top_builddir)/libs/wine -lwine -+LIBWINE_STATIC = $(top_builddir)/libs/wine/libwine_static.a -+SED_CMD = LC_ALL=C sed -e 's,@bindir\@,$(bindir),g' -e 's,@dlldir\@,$(dlldir),g' -e 's,@PACKAGE_STRING\@,@PACKAGE_STRING@,g' -e 's,@PACKAGE_VERSION\@,@PACKAGE_VERSION@,g' -+LDRPATH_INSTALL = @LDRPATH_INSTALL@ -+LDRPATH_LOCAL = @LDRPATH_LOCAL@ -+INSTALL_PROGRAM = STRIPPROG="$(STRIP)" $(top_srcdir)/tools/install-sh $(INSTALL_PROGRAM_FLAGS) -+INSTALL_SCRIPT = $(top_srcdir)/tools/install-sh $(INSTALL_SCRIPT_FLAGS) -+INSTALL_DATA = $(top_srcdir)/tools/install-sh -m 644 $(INSTALL_DATA_FLAGS) -+prog_manext = 1 -+api_manext = 3w -+conf_manext = 5 -+@ALL_VARS_RULES@ -+@SET_MAKE@ -+ -+all: -+.PHONY: all -+ -+# End of common header -diff --git a/Makefile.in b/Makefile.in -index fc37ae2..9c5158d 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -18,82 +18,6 @@ - # sgmlpages: compile sgml source for the Wine API Guide - # xmlpages: compile xml source for the Wine API Guide - --# Start of common header --# The following variable definitions are copied into all makefiles -- --prefix = @prefix@ --exec_prefix = @exec_prefix@ --bindir = @bindir@ --libdir = @libdir@ --datarootdir = @datarootdir@ --datadir = @datadir@ --mandir = @mandir@ --fontdir = ${datadir}/wine/fonts --includedir = @includedir@/wine --dlldir = @dlldir@ --fakedlldir = ${dlldir}/fakedlls --top_srcdir = @top_srcdir@ --top_builddir = @top_builddir@ --srcdir = @srcdir@ --SHELL = /bin/sh --RM = rm -f --MV = mv --CC = @CC@ --CXX = @CXX@ --CPPBIN = @CPPBIN@ --CROSSCC = @CROSSCC@ --CFLAGS = @CFLAGS@ --CPPFLAGS = @CPPFLAGS@ --EXTRACFLAGS = @EXTRACFLAGS@ --MSVCRTFLAGS = @BUILTINFLAG@ --TARGETFLAGS = @TARGETFLAGS@ --UNWINDFLAGS = @UNWINDFLAGS@ --LIBS = @LIBS@ --BISON = @BISON@ --FLEX = @FLEX@ --EXEEXT = @EXEEXT@ --DLLPREFIX = @DLLPREFIX@ --TOOLSEXT = @TOOLSEXT@ --DLLTOOL = @DLLTOOL@ --AR = @AR@ --ARFLAGS = @ARFLAGS@ --RANLIB = @RANLIB@ --STRIP = @STRIP@ --LN_S = @LN_S@ --TOOLSDIR = @TOOLSDIR@ --LD = @LD@ --LDFLAGS = @LDFLAGS@ --DLLFLAGS = @DLLFLAGS@ --PRELINK = @PRELINK@ --FONTFORGE = @FONTFORGE@ --RSVG = @RSVG@ --CONVERT = @CONVERT@ --ICOTOOL = @ICOTOOL@ --MSGFMT = @MSGFMT@ --CROSSTARGET = @CROSSTARGET@ --LINGUAS = @LINGUAS@ --RUNTESTFLAGS = -q -P wine --MAKEDEP = $(TOOLSDIR)/tools/makedep$(TOOLSEXT) --WINEBUILD = $(TOOLSDIR)/tools/winebuild/winebuild$(TOOLSEXT) --WRC = $(TOOLSDIR)/tools/wrc/wrc$(TOOLSEXT) --LIBPORT = $(top_builddir)/libs/port/libwine_port.a --LIBWPP = $(top_builddir)/libs/wpp/libwpp.a --LIBWINE = -L$(top_builddir)/libs/wine -lwine --LIBWINE_STATIC = $(top_builddir)/libs/wine/libwine_static.a --SED_CMD = LC_ALL=C sed -e 's,@bindir\@,$(bindir),g' -e 's,@dlldir\@,$(dlldir),g' -e 's,@PACKAGE_STRING\@,@PACKAGE_STRING@,g' -e 's,@PACKAGE_VERSION\@,@PACKAGE_VERSION@,g' --LDRPATH_INSTALL = @LDRPATH_INSTALL@ --LDRPATH_LOCAL = @LDRPATH_LOCAL@ --INSTALL_PROGRAM = STRIPPROG="$(STRIP)" $(top_srcdir)/tools/install-sh $(INSTALL_PROGRAM_FLAGS) --INSTALL_SCRIPT = $(top_srcdir)/tools/install-sh $(INSTALL_SCRIPT_FLAGS) --INSTALL_DATA = $(top_srcdir)/tools/install-sh -m 644 $(INSTALL_DATA_FLAGS) --prog_manext = 1 --api_manext = 3w --conf_manext = 5 --@ALL_VARS_RULES@ --@SET_MAKE@ -- --# End of common header -- - all: wine - @echo "Wine build complete." - -diff --git a/aclocal.m4 b/aclocal.m4 -index 13bab9b..f7a12f1 100644 ---- a/aclocal.m4 -+++ b/aclocal.m4 -@@ -226,12 +226,12 @@ wine_fn_has_flag () - wine_fn_depend_rules () - { - wine_fn_append_rule \ --"$ac_dir/Makefile: $srcdir/$ac_dir/Makefile.in Makefile config.status \$(MAKEDEP) -- @./config.status --file $ac_dir/Makefile && \$(MAKEDEP) $ac_dir -+"$ac_dir/Makefile: $srcdir/$ac_dir/Makefile.in $srcdir/Make.vars.in config.status \$(MAKEDEP) -+ @./config.status --file $ac_dir/Makefile:Make.vars.in:$ac_dir/Makefile.in && \$(MAKEDEP) $ac_dir - depend: $ac_dir/depend - .PHONY: $ac_dir/depend - $ac_dir/depend: \$(MAKEDEP) dummy -- @./config.status --file $ac_dir/Makefile && \$(MAKEDEP) $ac_dir" -+ @./config.status --file $ac_dir/Makefile:Make.vars.in:$ac_dir/Makefile.in && \$(MAKEDEP) $ac_dir" - } - - wine_fn_pot_rules () -diff --git a/configure b/configure -index 659f513..dcaf8a8 100755 ---- a/configure -+++ b/configure -@@ -7390,12 +7390,12 @@ wine_fn_has_flag () - wine_fn_depend_rules () - { - wine_fn_append_rule \ --"$ac_dir/Makefile: $srcdir/$ac_dir/Makefile.in Makefile config.status \$(MAKEDEP) -- @./config.status --file $ac_dir/Makefile && \$(MAKEDEP) $ac_dir -+"$ac_dir/Makefile: $srcdir/$ac_dir/Makefile.in $srcdir/Make.vars.in config.status \$(MAKEDEP) -+ @./config.status --file $ac_dir/Makefile:Make.vars.in:$ac_dir/Makefile.in && \$(MAKEDEP) $ac_dir - depend: $ac_dir/depend - .PHONY: $ac_dir/depend - $ac_dir/depend: \$(MAKEDEP) dummy -- @./config.status --file $ac_dir/Makefile && \$(MAKEDEP) $ac_dir" -+ @./config.status --file $ac_dir/Makefile:Make.vars.in:$ac_dir/Makefile.in && \$(MAKEDEP) $ac_dir" - } - - wine_fn_pot_rules () -@@ -17221,7 +17221,7 @@ CLEAN_FILES = *.o *.a *.so *.res *.fake *.ok *.tab.[ch] *.yy.c - .INIT: Makefile - .MAKEFILEDEPS: - all: Makefile --Makefile: $srcdir/Makefile.in config.status \$(MAKEDEP) -+Makefile: $srcdir/Makefile.in $srcdir/Make.vars.in config.status \$(MAKEDEP) - @./config.status Make.tmp Makefile" - - test "$srcdir" = . && wine_fn_append_rule "all: .gitignore -@@ -18222,7 +18222,7 @@ fi - ac_config_commands="$ac_config_commands Makefile" - - --ac_config_files="$ac_config_files Make.tmp:Makefile.in" -+ac_config_files="$ac_config_files Make.tmp:Make.vars.in:Makefile.in" - - - -@@ -19039,7 +19039,7 @@ do - "wine64") CONFIG_LINKS="$CONFIG_LINKS wine64:tools/winewrapper" ;; - "tools/makedep") CONFIG_COMMANDS="$CONFIG_COMMANDS tools/makedep" ;; - "Makefile") CONFIG_COMMANDS="$CONFIG_COMMANDS Makefile" ;; -- "Make.tmp") CONFIG_FILES="$CONFIG_FILES Make.tmp:Makefile.in" ;; -+ "Make.tmp") CONFIG_FILES="$CONFIG_FILES Make.tmp:Make.vars.in:Makefile.in" ;; - ".gitignore") CONFIG_COMMANDS="$CONFIG_COMMANDS .gitignore" ;; - - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; -diff --git a/configure.ac b/configure.ac -index f6449a6..8f77155 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -2692,7 +2692,7 @@ CLEAN_FILES = *.o *.a *.so *.res *.fake *.ok *.tab.[[ch]] *.yy.c - .INIT: Makefile - .MAKEFILEDEPS: - all: Makefile --Makefile: $srcdir/Makefile.in config.status \$(MAKEDEP) -+Makefile: $srcdir/Makefile.in $srcdir/Make.vars.in config.status \$(MAKEDEP) - @./config.status Make.tmp Makefile]) - - test "$srcdir" = . && WINE_APPEND_RULE( -@@ -3693,7 +3693,7 @@ _WINE_EOF - AS_ERROR([could not create Makefile]) - }]) - --AC_CONFIG_FILES([Make.tmp:Makefile.in]) -+AC_CONFIG_FILES([Make.tmp:Make.vars.in:Makefile.in]) - - dnl Some final makefile rules - -diff --git a/tools/makedep.c b/tools/makedep.c -index 119294b..54aab45 100644 ---- a/tools/makedep.c -+++ b/tools/makedep.c -@@ -1751,7 +1751,6 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t - for (i = 0; i < linguas.count; i++) - strarray_add( &mo_files, strmake( "%s/%s.mo", top_obj_dir_path( make, "po" ), linguas.str[i] )); - -- strarray_add( &phony_targets, "all" ); - strarray_add( &includes, strmake( "-I%s", obj_dir_path( make, "" ))); - if (make->src_dir) strarray_add( &includes, strmake( "-I%s", make->src_dir )); - if (make->parent_dir) strarray_add( &includes, strmake( "-I%s", src_dir_path( make, make->parent_dir ))); -@@ -2514,51 +2513,31 @@ static void output_gitignore( const char *dest, struct strarray files ) - - - /******************************************************************* -- * output_top_variables -- */ --static void output_top_variables( struct makefile *make ) --{ -- unsigned int i; -- struct strarray *vars = &top_makefile->vars; -- -- if (!make->base_dir) return; /* don't output variables in the top makefile */ -- -- output( "# Automatically generated by make depend; DO NOT EDIT!!\n\n" ); -- output( "all:\n\n" ); -- for (i = 0; i < vars->count; i += 2) -- output( "%s = %s\n", vars->str[i], get_make_variable( make, vars->str[i] )); -- output( "\n" ); --} -- -- --/******************************************************************* - * output_dependencies - */ - static void output_dependencies( struct makefile *make, const char *path ) - { - struct strarray targets, testlist_files = empty_strarray, ignore_files = empty_strarray; -- FILE *src_file; - -- if (Separator && ((src_file = fopen( path, "r" )))) -+ if (Separator && ((output_file = fopen( path, "r" )))) - { - char buffer[1024]; -+ FILE *tmp_file = create_temp_file( path ); - int found = 0; - -- output_file = create_temp_file( path ); -- output_top_variables( make ); -- while (fgets( buffer, sizeof(buffer), src_file ) && !found) -+ while (fgets( buffer, sizeof(buffer), output_file ) && !found) - { -- if (fwrite( buffer, 1, strlen(buffer), output_file ) != strlen(buffer)) fatal_perror( "write" ); -+ if (fwrite( buffer, 1, strlen(buffer), tmp_file ) != strlen(buffer)) fatal_perror( "write" ); - found = !strncmp( buffer, Separator, strlen(Separator) ); - } -- if (fclose( src_file )) fatal_perror( "close" ); -+ if (fclose( output_file )) fatal_perror( "write" ); -+ output_file = tmp_file; - if (!found) output( "\n%s\n", Separator ); - } - else - { - if (!(output_file = fopen( path, Separator ? "a" : "w" ))) - fatal_perror( "%s", path ); -- output_top_variables( make ); - } - - targets = output_sources( make, &testlist_files ); --- -2.4.3 - diff --git a/wine.spec b/wine.spec index 6cf5712..93dbe31 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ %endif Name: wine -Version: 1.7.54 +Version: 1.7.55 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -70,9 +70,6 @@ Source502: wine-README-tahoma Patch511: wine-cjk.patch # temporary workaround for GCC 5.0 optimization regressions Patch512: wine-gcc5.patch -# broken man page install target -Patch513: wine-revert-makefiles.patch -Patch514: wine-revert-makefiles-staging.patch # wine compholio patches for wine-staging # pulseaudio-patch is covered by that patch-set, too. @@ -627,8 +624,7 @@ Requires: wine-core = %{version}-%{release} Requires: wine-alsa%{?_isa} = %{version}-%{release} %description pulseaudio -This package adds a pulseaudio driver for wine. Please do not report bugs in -the pulseaudio wine backend at winehq. +This package adds a pulseaudio driver for wine. %package alsa Summary: Alsa support for wine @@ -663,15 +659,11 @@ This package adds the opencl driver for wine. %if 0%{?fedora} > 21 #patch512 -p1 -b.gcc5 %endif -%patch513 -p1 -b.revert-makefiles -# setup and apply compholio-patches or pulseaudio-patch. -# since the pulse patch is included in the compholio patches use it from -# there +# setup and apply wine-staging patches gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 %if 0%{?compholio} -%patch514 -p1 -b.revert-makefiles-staging %{__make} -C patches DESTDIR="`pwd`" install # fix parallelized build @@ -679,15 +671,8 @@ sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in %else # 0%{?compholio} -for p in `ls patches/winepulse-PulseAudio_Support/*patch`; do -echo $p -patch -p1 < $p -done - rm -rf patches/ -# already run after applying compholio-patchset -autoreconf %endif # 0%{?compholio} %build @@ -707,7 +692,6 @@ export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno --x-includes=%{_includedir} --x-libraries=%{_libdir} \ --without-hal --with-dbus --without-gstreamer \ --with-x \ - --with-pulse \ %ifarch x86_64 --enable-win64 \ %endif @@ -934,6 +918,13 @@ do iconv -f iso8859-1 -t utf-8 README.$lang > \ done; popd +# wine makefiles are currently broken and don't install the wine man page +install -p -m 0644 loader/wine.man %{buildroot}%{_mandir}/man1/wine.1 +install -p -m 0644 loader/wine.de.UTF-8.man %{buildroot}%{_mandir}/de.UTF-8/man1/wine.1 +install -p -m 0644 loader/wine.fr.UTF-8.man %{buildroot}%{_mandir}/fr.UTF-8/man1/wine.1 +mkdir -p %{buildroot}%{_mandir}/pl.UTF-8/man1 +install -p -m 0644 loader/wine.pl.UTF-8.man %{buildroot}%{_mandir}/pl.UTF-8/man1/wine.1 + %if 0%{?fedora} >= 15 %if 0%{?fedora} < 23 @@ -993,12 +984,6 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %post core -p /sbin/ldconfig %posttrans core -# needed temporarily until people get on alternatives -rm -f %{_bindir}/wine -%ifnarch %{arm} -rm -f %{_bindir}/wine-preloader -%endif -rm -f %{_bindir}/wineserver %ifarch x86_64 %{_sbindir}/alternatives --install %{_bindir}/wine \ wine %{_bindir}/wine64 10 \ @@ -1163,6 +1148,7 @@ fi %{_libdir}/wine/winemenubuilder.exe.so %{_libdir}/wine/winecfg.exe.so %{_libdir}/wine/winedevice.exe.so +%{_libdir}/wine/wmplayer.exe.so %{_libdir}/wine/wscript.exe.so %{_libdir}/wine/uninstaller.exe.so @@ -1279,7 +1265,9 @@ fi %{_libdir}/wine/avifil32.dll.so %{_libdir}/wine/avrt.dll.so %{_libdir}/wine/bcrypt.dll.so +%{_libdir}/wine/bluetoothapis.dll.so %{_libdir}/wine/browseui.dll.so +%{_libdir}/wine/bthprops.cpl.so %{_libdir}/wine/cabinet.dll.so %{_libdir}/wine/cards.dll.so %{_libdir}/wine/cfgmgr32.dll.so @@ -1801,10 +1789,10 @@ fi %{_mandir}/man1/winefile.1* %{_mandir}/man1/winemine.1* %{_mandir}/man1/winepath.1* -%lang(fr) %{_mandir}/fr.UTF-8/man1/wine.1* -%lang(fr) %{_mandir}/fr.UTF-8/man1/wineserver.1* %lang(de) %{_mandir}/de.UTF-8/man1/wine.1* %lang(de) %{_mandir}/de.UTF-8/man1/wineserver.1* +%lang(fr) %{_mandir}/fr.UTF-8/man1/wine.1* +%lang(fr) %{_mandir}/fr.UTF-8/man1/wineserver.1* %lang(pl) %{_mandir}/pl.UTF-8/man1/wine.1* %files fonts @@ -1978,6 +1966,9 @@ fi %endif %changelog +* Sun Nov 15 2015 Michael Cronenworth 1.7.55-1 +- version upgrade + * Wed Nov 04 2015 Michael Cronenworth 1.7.54-1 - version upgrade From cdfa0eeaaaa492f18a99ef331020b83c25f26130 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 7 Dec 2015 13:21:46 -0600 Subject: [PATCH 360/715] Update to 1.8-rc3 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 18 ++++++++++++------ 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index 53254c1..09672bb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.7.55.tar.bz2 -/wine-1.7.55.tar.bz2.sign -/wine-staging-1.7.55.tar.gz +/wine-1.8-rc3.tar.bz2 +/wine-1.8-rc3.tar.bz2.sign +/wine-staging-1.8-rc3.tar.gz diff --git a/sources b/sources index 30e38ea..19acffe 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -161b37f57ed21508d9171df664ff5e13 wine-1.7.55.tar.bz2 -2d411ab794bda23a1d6815ee467f8483 wine-1.7.55.tar.bz2.sign -59816f88f93bc8fc3f2430a33490d31c wine-staging-1.7.55.tar.gz +5ad43f42e4ebec51d421392d78bd9e91 wine-1.8-rc3.tar.bz2 +6efebb655823625a09f68ee83b628693 wine-1.8-rc3.tar.bz2.sign +781dd6fbad2df34d8c951441cd538c6b wine-staging-1.8-rc3.tar.gz diff --git a/wine.spec b/wine.spec index 93dbe31..c749b75 100644 --- a/wine.spec +++ b/wine.spec @@ -21,15 +21,15 @@ %endif Name: wine -Version: 1.7.55 -Release: 1%{?dist} +Version: 1.8 +Release: 0.1%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -Source0: http://downloads.sourceforge.net/wine/wine-%{version}.tar.bz2 -Source10: http://downloads.sourceforge.net/wine/wine-%{version}.tar.bz2.sign +Source0: http://downloads.sourceforge.net/wine/wine-%{version}-rc3.tar.bz2 +Source10: http://downloads.sourceforge.net/wine/wine-%{version}-rc3.tar.bz2.sign Source1: wine.init Source2: wine.systemd @@ -73,7 +73,7 @@ Patch512: wine-gcc5.patch # wine compholio patches for wine-staging # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/compholio/wine-compholio/archive/v%{version}.tar.gz#/wine-staging-%{version}.tar.gz +Source900: https://github.com/compholio/wine-compholio/archive/v%{version}-rc3.tar.gz#/wine-staging-%{version}-rc3.tar.gz %if !%{?no64bit} ExclusiveArch: %{ix86} x86_64 %{arm} @@ -654,7 +654,7 @@ This package adds the opencl driver for wine. %endif %prep -%setup -q +%setup -q -n wine-%{version}-rc3 %patch511 -p1 -b.cjk %if 0%{?fedora} > 21 #patch512 -p1 -b.gcc5 @@ -1568,6 +1568,9 @@ fi %{_libdir}/wine/tapi32.dll.so %{_libdir}/wine/taskkill.exe.so %{_libdir}/wine/taskschd.dll.so +%if 0%{?compholio} +%{_libdir}/wine/tdi.sys.so +%endif %{_libdir}/wine/traffic.dll.so %{_libdir}/wine/ucrtbase.dll.so %{_libdir}/wine/unicows.dll.so @@ -1966,6 +1969,9 @@ fi %endif %changelog +* Sun Dec 06 2015 Michael Cronenworth 1.8-0.1 +- version upgrade, 1.8-rc3 + * Sun Nov 15 2015 Michael Cronenworth 1.7.55-1 - version upgrade From 5e6a1832bb3c22146791274075abc0b0e8426a37 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 15 Dec 2015 10:59:39 -0600 Subject: [PATCH 361/715] Update to 1.8-rc4, enable compiler optimizations --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 19 +++++++++---------- 3 files changed, 15 insertions(+), 16 deletions(-) diff --git a/.gitignore b/.gitignore index 09672bb..4c334f0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.8-rc3.tar.bz2 -/wine-1.8-rc3.tar.bz2.sign -/wine-staging-1.8-rc3.tar.gz +/wine-1.8-rc4.tar.bz2 +/wine-1.8-rc4.tar.bz2.sign +/wine-staging-1.8-rc4.tar.gz diff --git a/sources b/sources index 19acffe..51a1604 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -5ad43f42e4ebec51d421392d78bd9e91 wine-1.8-rc3.tar.bz2 -6efebb655823625a09f68ee83b628693 wine-1.8-rc3.tar.bz2.sign -781dd6fbad2df34d8c951441cd538c6b wine-staging-1.8-rc3.tar.gz +f0d8109a3fa1e714721f6743adf48fc2 wine-1.8-rc4.tar.bz2 +dd5db2348efe7b0aa58ed9fe34ab30c3 wine-1.8-rc4.tar.bz2.sign +fba1c197f940a660c861e99cb5ab28d8 wine-staging-1.8-rc4.tar.gz diff --git a/wine.spec b/wine.spec index c749b75..7e25c11 100644 --- a/wine.spec +++ b/wine.spec @@ -22,14 +22,14 @@ Name: wine Version: 1.8 -Release: 0.1%{?dist} +Release: 0.2%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -Source0: http://downloads.sourceforge.net/wine/wine-%{version}-rc3.tar.bz2 -Source10: http://downloads.sourceforge.net/wine/wine-%{version}-rc3.tar.bz2.sign +Source0: http://downloads.sourceforge.net/wine/wine-%{version}-rc4.tar.bz2 +Source10: http://downloads.sourceforge.net/wine/wine-%{version}-rc4.tar.bz2.sign Source1: wine.init Source2: wine.systemd @@ -73,7 +73,7 @@ Patch512: wine-gcc5.patch # wine compholio patches for wine-staging # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/compholio/wine-compholio/archive/v%{version}-rc3.tar.gz#/wine-staging-%{version}-rc3.tar.gz +Source900: https://github.com/compholio/wine-compholio/archive/v%{version}-rc4.tar.gz#/wine-staging-%{version}-rc4.tar.gz %if !%{?no64bit} ExclusiveArch: %{ix86} x86_64 %{arm} @@ -654,7 +654,7 @@ This package adds the opencl driver for wine. %endif %prep -%setup -q -n wine-%{version}-rc3 +%setup -q -n wine-%{version}-rc4 %patch511 -p1 -b.cjk %if 0%{?fedora} > 21 #patch512 -p1 -b.gcc5 @@ -680,12 +680,7 @@ rm -rf patches/ # disable fortify as it breaks wine # http://bugs.winehq.org/show_bug.cgi?id=24606 # http://bugs.winehq.org/show_bug.cgi?id=25073 -%if 0%{?fedora} > 21 -export TEMP_CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-O2/-O0/'`" -export CFLAGS="`echo $TEMP_CFLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno-error" -%else export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno-error" -%endif %configure \ --sysconfdir=%{_sysconfdir}/wine \ @@ -1969,6 +1964,10 @@ fi %endif %changelog +* Tue Dec 15 2015 Michael Cronenworth 1.8-0.2 +- version upgrade, 1.8-rc4 +- enabling compiler optimizations again (-O2), thanks to gcc 5.3 + * Sun Dec 06 2015 Michael Cronenworth 1.8-0.1 - version upgrade, 1.8-rc3 From 74fbd34b3e6120c80340940a2d3fb0f7ed0eb940 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 23 Dec 2015 09:50:45 -0600 Subject: [PATCH 362/715] Update to 1.8 final --- .gitignore | 3 + sources | 6 +- wine-gcc5.patch | 161 ------------------------------------------------ wine.spec | 18 +++--- 4 files changed, 14 insertions(+), 174 deletions(-) delete mode 100644 wine-gcc5.patch diff --git a/.gitignore b/.gitignore index 4c334f0..271b459 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ /wine-1.8-rc4.tar.bz2 /wine-1.8-rc4.tar.bz2.sign /wine-staging-1.8-rc4.tar.gz +/wine-1.8.tar.bz2 +/wine-1.8.tar.bz2.sign +/wine-staging-1.8.tar.gz diff --git a/sources b/sources index 51a1604..77e2eb5 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -f0d8109a3fa1e714721f6743adf48fc2 wine-1.8-rc4.tar.bz2 -dd5db2348efe7b0aa58ed9fe34ab30c3 wine-1.8-rc4.tar.bz2.sign -fba1c197f940a660c861e99cb5ab28d8 wine-staging-1.8-rc4.tar.gz +96b51a2f2ae727802d71095354e69fef wine-1.8.tar.bz2 +49d22a959c4924e5d1419f49bb134e37 wine-1.8.tar.bz2.sign +7d65f0f8a70089eed7a8e0b73d8edc99 wine-staging-1.8.tar.gz diff --git a/wine-gcc5.patch b/wine-gcc5.patch deleted file mode 100644 index e90ede6..0000000 --- a/wine-gcc5.patch +++ /dev/null @@ -1,161 +0,0 @@ ---- wine-1.7.38/dlls/ntdll/sec.c.orig 2015-03-06 07:27:36.000000000 -0600 -+++ wine-1.7.38/dlls/ntdll/sec.c 2015-03-19 10:42:37.117665983 -0500 -@@ -1714,7 +1714,7 @@ - * the native function returns something like - * "S-1-5-21-0000000000-000000000-0000000000-500"; - */ --NTSTATUS WINAPI RtlConvertSidToUnicodeString( -+NTSTATUS WINAPI __attribute__((optimize("O0"))) RtlConvertSidToUnicodeString( - PUNICODE_STRING String, - PSID pSid, - BOOLEAN AllocateString) ---- wine-1.7.38/dlls/ntdll/directory.c.orig 2015-03-19 13:53:47.952588902 -0500 -+++ wine-1.7.38/dlls/ntdll/directory.c 2015-03-19 13:52:51.571954998 -0500 -@@ -3008,7 +3008,7 @@ - * element doesn't have to exist; in that case STATUS_NO_SUCH_FILE is - * returned, but the unix name is still filled in properly. - */ --NTSTATUS CDECL wine_nt_to_unix_file_name( const UNICODE_STRING *nameW, ANSI_STRING *unix_name_ret, -+NTSTATUS CDECL __attribute__((optimize("O0"))) wine_nt_to_unix_file_name( const UNICODE_STRING *nameW, ANSI_STRING *unix_name_ret, - UINT disposition, BOOLEAN check_case ) - { - static const WCHAR unixW[] = {'u','n','i','x'}; ---- wine-1.7.38/dlls/kernel32/volume.c.orig 2015-03-19 15:01:23.647111174 -0500 -+++ wine-1.7.38/dlls/kernel32/volume.c 2015-03-19 15:00:59.460854627 -0500 -@@ -714,7 +714,7 @@ - /*********************************************************************** - * GetVolumeInformationW (KERNEL32.@) - */ --BOOL WINAPI GetVolumeInformationW( LPCWSTR root, LPWSTR label, DWORD label_len, -+BOOL WINAPI __attribute__((optimize("O0"))) GetVolumeInformationW( LPCWSTR root, LPWSTR label, DWORD label_len, - DWORD *serial, DWORD *filename_len, DWORD *flags, - LPWSTR fsname, DWORD fsname_len ) - { ---- wine-1.7.39/dlls/ntdll/virtual.c.orig 2015-03-23 09:22:18.512141978 -0500 -+++ wine-1.7.39/dlls/ntdll/virtual.c 2015-03-23 09:22:47.951415202 -0500 -@@ -2346,7 +2346,7 @@ - * NtQueryVirtualMemory (NTDLL.@) - * ZwQueryVirtualMemory (NTDLL.@) - */ --NTSTATUS WINAPI NtQueryVirtualMemory( HANDLE process, LPCVOID addr, -+NTSTATUS WINAPI __attribute__((optimize("O0"))) NtQueryVirtualMemory( HANDLE process, LPCVOID addr, - MEMORY_INFORMATION_CLASS info_class, PVOID buffer, - SIZE_T len, SIZE_T *res_len ) - { ---- wine-1.7.39/dlls/kernel32/process.c.orig 2015-03-23 11:35:21.490412754 -0500 -+++ wine-1.7.39/dlls/kernel32/process.c 2015-03-23 12:12:36.928665968 -0500 -@@ -1088,7 +1088,7 @@ - * - * Startup routine of a new process. Runs on the new process stack. - */ --static DWORD WINAPI start_process( PEB *peb ) -+static DWORD WINAPI __attribute__((optimize("O0"))) start_process( PEB *peb ) - { - IMAGE_NT_HEADERS *nt; - LPTHREAD_START_ROUTINE entry; ---- wine-1.7.39/dlls/winex11.drv/window.c.orig 2015-03-23 12:14:36.789785691 -0500 -+++ wine-1.7.39/dlls/winex11.drv/window.c 2015-03-23 12:35:56.656863213 -0500 -@@ -1270,7 +1270,7 @@ - * - * Synchronize the X client window position with the Windows one - */ --static void sync_client_position( struct x11drv_win_data *data, -+static void __attribute__((optimize("O0"))) sync_client_position( struct x11drv_win_data *data, - const RECT *old_client_rect, const RECT *old_whole_rect ) - { - int mask = 0; ---- wine-1.7.39/dlls/gdi32/freetype.c.orig 2015-03-20 08:41:44.000000000 -0500 -+++ wine-1.7.39/dlls/gdi32/freetype.c 2015-03-23 14:15:25.884759565 -0500 -@@ -6389,7 +6389,7 @@ - - static const BYTE masks[8] = {0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01}; - --static DWORD get_glyph_outline(GdiFont *incoming_font, UINT glyph, UINT format, -+static DWORD __attribute__((optimize("O0"))) get_glyph_outline(GdiFont *incoming_font, UINT glyph, UINT format, - LPGLYPHMETRICS lpgm, ABC *abc, DWORD buflen, LPVOID buf, - const MAT2* lpmat) - { ---- wine-1.7.39/dlls/rpcrt4/rpc_binding.c.orig 2015-03-20 08:41:44.000000000 -0500 -+++ wine-1.7.39/dlls/rpcrt4/rpc_binding.c 2015-03-23 17:00:45.215424859 -0500 -@@ -984,7 +984,7 @@ - /*********************************************************************** - * RpcBindingCopy (RPCRT4.@) - */ --RPC_STATUS RPC_ENTRY RpcBindingCopy( -+RPC_STATUS RPC_ENTRY __attribute__((optimize("O0"))) RpcBindingCopy( - RPC_BINDING_HANDLE SourceBinding, - RPC_BINDING_HANDLE* DestinationBinding) - { ---- wine-1.7.39/dlls/gdi32/font.c.orig 2015-03-23 20:33:48.751656009 -0500 -+++ wine-1.7.39/dlls/gdi32/font.c 2015-03-23 20:33:52.295693767 -0500 -@@ -1297,7 +1297,7 @@ - * Return the size of the string as it would be if it was output properly by - * e.g. TextOut. - */ --BOOL WINAPI GetTextExtentExPointW( HDC hdc, LPCWSTR str, INT count, INT max_ext, -+BOOL WINAPI __attribute__((optimize("O0"))) GetTextExtentExPointW( HDC hdc, LPCWSTR str, INT count, INT max_ext, - LPINT nfit, LPINT dxs, LPSIZE size ) - { - DC *dc; ---- wine-1.7.39/dlls/gdi32/mapping.c.orig 2015-03-23 20:21:39.025790911 -0500 -+++ wine-1.7.39/dlls/gdi32/mapping.c 2015-03-23 20:27:31.380589949 -0500 -@@ -324,7 +324,7 @@ - /*********************************************************************** - * DPtoLP (GDI32.@) - */ --BOOL WINAPI DPtoLP( HDC hdc, LPPOINT points, INT count ) -+BOOL WINAPI __attribute__((optimize("O0"))) DPtoLP( HDC hdc, LPPOINT points, INT count ) - { - DC * dc = get_dc_ptr( hdc ); - if (!dc) return FALSE; -@@ -352,7 +352,7 @@ - /*********************************************************************** - * LPtoDP (GDI32.@) - */ --BOOL WINAPI LPtoDP( HDC hdc, LPPOINT points, INT count ) -+BOOL WINAPI __attribute__((optimize("O0"))) LPtoDP( HDC hdc, LPPOINT points, INT count ) - { - DC * dc = get_dc_ptr( hdc ); - if (!dc) return FALSE; ---- wine-1.7.39/dlls/user32/win.c.orig 2015-03-23 21:42:20.861715642 -0500 -+++ wine-1.7.39/dlls/user32/win.c 2015-03-23 21:45:49.223517788 -0500 -@@ -2955,7 +2955,7 @@ - /***************************************************************** - * SetParent (USER32.@) - */ --HWND WINAPI SetParent( HWND hwnd, HWND parent ) -+HWND WINAPI __attribute__((optimize("O0"))) SetParent( HWND hwnd, HWND parent ) - { - HWND full_handle; - HWND old_parent = 0; ---- wine-1.7.39/programs/winecfg/appdefaults.c.orig 2015-03-23 21:15:50.402096990 -0500 -+++ wine-1.7.39/programs/winecfg/appdefaults.c 2015-03-23 21:16:22.345452810 -0500 -@@ -78,7 +78,7 @@ - static const char szKeyNT[] = "Software\\Microsoft\\Windows NT\\CurrentVersion"; - static const char szKeyProdNT[] = "System\\CurrentControlSet\\Control\\ProductOptions"; - --static int get_registry_version(void) -+static int __attribute__((optimize("O0"))) get_registry_version(void) - { - int i, best = -1, platform, major, minor = 0, build = 0; - char *p, *ver, *type = NULL; ---- wine-1.7.39/programs/winemenubuilder/winemenubuilder.c.orig 2015-03-23 21:18:24.651815189 -0500 -+++ wine-1.7.39/programs/winemenubuilder/winemenubuilder.c 2015-03-23 21:24:20.565779739 -0500 -@@ -2323,7 +2323,7 @@ - return ret; - } - --static void update_association(LPCWSTR extension, LPCSTR mimeType, LPCWSTR progId, -+static void __attribute__((optimize("O0"))) update_association(LPCWSTR extension, LPCSTR mimeType, LPCWSTR progId, - LPCSTR appName, LPCSTR desktopFile, LPCSTR openWithIcon) - { - static const WCHAR ProgIDW[] = {'P','r','o','g','I','D',0}; -@@ -2400,7 +2400,7 @@ - HeapFree(GetProcessHeap(), 0, openWithIconW); - } - --static BOOL cleanup_associations(void) -+static BOOL __attribute__((optimize("O0"))) cleanup_associations(void) - { - static const WCHAR openW[] = {'o','p','e','n',0}; - static const WCHAR DesktopFileW[] = {'D','e','s','k','t','o','p','F','i','l','e',0}; diff --git a/wine.spec b/wine.spec index 7e25c11..6956b5f 100644 --- a/wine.spec +++ b/wine.spec @@ -22,14 +22,14 @@ Name: wine Version: 1.8 -Release: 0.2%{?dist} +Release: 1%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -Source0: http://downloads.sourceforge.net/wine/wine-%{version}-rc4.tar.bz2 -Source10: http://downloads.sourceforge.net/wine/wine-%{version}-rc4.tar.bz2.sign +Source0: http://downloads.sourceforge.net/wine/wine-%{version}.tar.bz2 +Source10: http://downloads.sourceforge.net/wine/wine-%{version}.tar.bz2.sign Source1: wine.init Source2: wine.systemd @@ -68,12 +68,10 @@ Source501: wine-tahoma.conf Source502: wine-README-tahoma Patch511: wine-cjk.patch -# temporary workaround for GCC 5.0 optimization regressions -Patch512: wine-gcc5.patch # wine compholio patches for wine-staging # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/compholio/wine-compholio/archive/v%{version}-rc4.tar.gz#/wine-staging-%{version}-rc4.tar.gz +Source900: https://github.com/compholio/wine-compholio/archive/v%{version}.tar.gz#/wine-staging-%{version}.tar.gz %if !%{?no64bit} ExclusiveArch: %{ix86} x86_64 %{arm} @@ -654,11 +652,8 @@ This package adds the opencl driver for wine. %endif %prep -%setup -q -n wine-%{version}-rc4 +%setup -q -n wine-%{version} %patch511 -p1 -b.cjk -%if 0%{?fedora} > 21 -#patch512 -p1 -b.gcc5 -%endif # setup and apply wine-staging patches gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 @@ -1964,6 +1959,9 @@ fi %endif %changelog +* Wed Dec 23 2015 Michael Cronenworth 1.8-1 +- version upgrade + * Tue Dec 15 2015 Michael Cronenworth 1.8-0.2 - version upgrade, 1.8-rc4 - enabling compiler optimizations again (-O2), thanks to gcc 5.3 From 359a301e1f9fe55eb7c03d8d6c079e10e2355bc9 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 23 Dec 2015 10:12:18 -0600 Subject: [PATCH 363/715] Upstream now carries vcruntime140.dll --- wine-relocate-base.patch | 86 ---------------------------------------- wine.spec | 2 - 2 files changed, 88 deletions(-) delete mode 100644 wine-relocate-base.patch diff --git a/wine-relocate-base.patch b/wine-relocate-base.patch deleted file mode 100644 index f744f9a..0000000 --- a/wine-relocate-base.patch +++ /dev/null @@ -1,86 +0,0 @@ -From 509a781e793cc6d15d74e1ffc5fc8d4a3c31026a Mon Sep 17 00:00:00 2001 -From: Michael Cronenworth -Date: Wed, 21 Oct 2015 10:26:40 -0500 -Subject: [PATCH] winegcc: Check for linker relocation support before relying - on prelink - -Prelink was used to rewrite binares and set their text segment, but -modern linkers support setting the value at link time. Prelink is -being retired by upstream. - -Signed-off-by: Michael Cronenworth ---- - configure.ac | 11 ++++++++--- - tools/winegcc/winegcc.c | 12 ++++++++++-- - 2 files changed, 18 insertions(+), 5 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 5ab2d69..a30b552 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -988,10 +988,15 @@ wine-installed: main.o - *) LDEXECFLAGS="$LDEXECFLAGS -Wl,--section-start,.interp=0x7bf00400" ;; - esac - ]) -- AC_PATH_PROG(PRELINK, prelink, false, [/sbin /usr/sbin $PATH]) -- if test "x$PRELINK" = xfalse -+ WINE_TRY_CFLAGS([-Wl,-Ttext-segment=0x7bc00000], -+ [HAVE_TTEXT_SEGMENT="yes"]) -+ if test "x$HAVE_TTEXT_SEGMENT" != "xyes" - then -- WINE_WARNING([prelink not found, base address of core dlls won't be set correctly.]) -+ AC_PATH_PROG(PRELINK, prelink, false, [/sbin /usr/sbin $PATH]) -+ if test "x$PRELINK" = xfalse -+ then -+ WINE_WARNING([prelink not found and linker does not support relocation, base address of core dlls won't be set correctly.]) -+ fi - fi - ;; - esac -diff --git a/tools/winegcc/winegcc.c b/tools/winegcc/winegcc.c -index 3b2794e..fa62c34 100644 ---- a/tools/winegcc/winegcc.c -+++ b/tools/winegcc/winegcc.c -@@ -778,6 +778,7 @@ static void build(struct options* opts) - const char *output_name, *spec_file, *lang; - int generate_app_loader = 1; - int fake_module = 0; -+ int text_segment = 0; - unsigned int j; - - /* NOTE: for the files array we'll use the following convention: -@@ -1112,6 +1113,11 @@ static void build(struct options* opts) - for ( j = 0 ; j < opts->linker_args->size ; j++ ) - strarray_add(link_args, opts->linker_args->base[j]); - -+ /* check linker support for setting text base address */ -+ if (opts->image_base && -+ !try_link(opts->prefix, link_args, strmake("-Wl,-Ttext-segment=%s", opts->image_base))) -+ text_segment = 1; -+ - switch (opts->target_platform) - { - case PLATFORM_APPLE: -@@ -1134,6 +1140,8 @@ static void build(struct options* opts) - } - break; - default: -+ if (text_segment) -+ strarray_add(link_args, strmake("-Wl,-Ttext-segment=%s", opts->image_base)); - break; - } - -@@ -1167,8 +1175,8 @@ static void build(struct options* opts) - spawn(opts->prefix, link_args, 0); - strarray_free (link_args); - -- /* set the base address */ -- if (opts->image_base && !opts->target) -+ /* set the base address with prelink if linker support is not present */ -+ if (opts->image_base && !opts->target && !text_segment) - { - const char *prelink = PRELINK; - if (prelink[0] && strcmp(prelink,"false")) --- -2.4.3 - diff --git a/wine.spec b/wine.spec index 6956b5f..e7a126e 100644 --- a/wine.spec +++ b/wine.spec @@ -1582,9 +1582,7 @@ fi %{_libdir}/wine/vcomp100.dll.so %{_libdir}/wine/vcomp110.dll.so %{_libdir}/wine/vcomp120.dll.so -%if 0%{?compholio} %{_libdir}/wine/vcruntime140.dll.so -%endif %{_libdir}/wine/vdmdbg.dll.so %{_libdir}/wine/version.dll.so %{_libdir}/wine/vssapi.dll.so From bd2e3af4069e98729cc0c26b28b7232c65379e6c Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 28 Dec 2015 11:13:00 -0600 Subject: [PATCH 364/715] Update to 1.9.0 --- .gitignore | 9 +++------ sources | 6 +++--- wine.spec | 7 ++++++- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index 271b459..b81d537 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,3 @@ -/wine-1.8-rc4.tar.bz2 -/wine-1.8-rc4.tar.bz2.sign -/wine-staging-1.8-rc4.tar.gz -/wine-1.8.tar.bz2 -/wine-1.8.tar.bz2.sign -/wine-staging-1.8.tar.gz +/wine-1.9.0.tar.bz2 +/wine-1.9.0.tar.bz2.sign +/wine-staging-1.9.0.tar.gz diff --git a/sources b/sources index 77e2eb5..a36c82c 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -96b51a2f2ae727802d71095354e69fef wine-1.8.tar.bz2 -49d22a959c4924e5d1419f49bb134e37 wine-1.8.tar.bz2.sign -7d65f0f8a70089eed7a8e0b73d8edc99 wine-staging-1.8.tar.gz +adbd370a1726d3ffd571936f46262c94 wine-1.9.0.tar.bz2 +39e35e0680f27482b92d41a40b22f13a wine-1.9.0.tar.bz2.sign +e4580a384c51d691310ab60727ccf5a6 wine-staging-1.9.0.tar.gz diff --git a/wine.spec b/wine.spec index e7a126e..20b673b 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ %endif Name: wine -Version: 1.8 +Version: 1.9.0 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1185,6 +1185,7 @@ fi %{_libdir}/wine/api-ms-win-core-misc-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-namedpipe-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-namedpipe-l1-2-0.dll.so +%{_libdir}/wine/api-ms-win-core-path-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-processenvironment-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-processenvironment-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-processthreads-l1-1-0.dll.so @@ -1239,6 +1240,7 @@ fi %{_libdir}/wine/api-ms-win-ntuser-dc-access-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-security-base-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-security-base-l1-2-0.dll.so +%{_libdir}/wine/api-ms-win-security-lsalookup-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-security-sddl-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-service-core-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-service-management-l1-1-0.dll.so @@ -1957,6 +1959,9 @@ fi %endif %changelog +* Mon Dec 28 2015 Michael Cronenworth 1.9.0-1 +- version upgrade + * Wed Dec 23 2015 Michael Cronenworth 1.8-1 - version upgrade From a1fae3e0a72eddc373f90317148d3f3e6fdb8e4b Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 10 Jan 2016 23:09:13 -0600 Subject: [PATCH 365/715] Update to 1.9.1 --- .gitignore | 3 +++ sources | 6 +++--- wine.spec | 6 +++++- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index b81d537..6a00070 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ /wine-1.9.0.tar.bz2 /wine-1.9.0.tar.bz2.sign /wine-staging-1.9.0.tar.gz +/wine-1.9.1.tar.bz2 +/wine-1.9.1.tar.bz2.sign +/wine-staging-1.9.1.tar.gz diff --git a/sources b/sources index a36c82c..7072727 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -adbd370a1726d3ffd571936f46262c94 wine-1.9.0.tar.bz2 -39e35e0680f27482b92d41a40b22f13a wine-1.9.0.tar.bz2.sign -e4580a384c51d691310ab60727ccf5a6 wine-staging-1.9.0.tar.gz +c3fbcceae7be23683aa8572737e8637a wine-1.9.1.tar.bz2 +dffafad12b32d592e0439b5c2c53a6b4 wine-1.9.1.tar.bz2.sign +a28bb17c55fe84cc0cc68e34b45ca66c wine-staging-1.9.1.tar.gz diff --git a/wine.spec b/wine.spec index 20b673b..a84a5de 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ %endif Name: wine -Version: 1.9.0 +Version: 1.9.1 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1241,6 +1241,7 @@ fi %{_libdir}/wine/api-ms-win-security-base-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-security-base-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-security-lsalookup-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-security-lsalookup-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-security-sddl-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-service-core-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-service-management-l1-1-0.dll.so @@ -1959,6 +1960,9 @@ fi %endif %changelog +* Sun Jan 10 2016 Michael Cronenworth 1.9.1-1 +- version upgrade + * Mon Dec 28 2015 Michael Cronenworth 1.9.0-1 - version upgrade From 08d0eb5cf717896ef336063a47295ceb1aeeaa18 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 24 Jan 2016 11:54:45 -0600 Subject: [PATCH 366/715] Update to 1.9.2 --- .gitignore | 9 +++------ sources | 6 +++--- wine.spec | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 3 files changed, 57 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index 6a00070..a775115 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,3 @@ -/wine-1.9.0.tar.bz2 -/wine-1.9.0.tar.bz2.sign -/wine-staging-1.9.0.tar.gz -/wine-1.9.1.tar.bz2 -/wine-1.9.1.tar.bz2.sign -/wine-staging-1.9.1.tar.gz +/wine-1.9.2.tar.bz2 +/wine-1.9.2.tar.bz2.sign +/wine-staging-1.9.2.tar.gz diff --git a/sources b/sources index 7072727..48c7147 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -c3fbcceae7be23683aa8572737e8637a wine-1.9.1.tar.bz2 -dffafad12b32d592e0439b5c2c53a6b4 wine-1.9.1.tar.bz2.sign -a28bb17c55fe84cc0cc68e34b45ca66c wine-staging-1.9.1.tar.gz +13c74ba8b92a72cd6d7d79168ed9eaae wine-1.9.2.tar.bz2 +c6328c4121a4b1a3d81161d20adaca46 wine-1.9.2.tar.bz2.sign +a1874a85ac5f795dc75caf3dfc245513 wine-staging-1.9.2.tar.gz diff --git a/wine.spec b/wine.spec index a84a5de..723aac2 100644 --- a/wine.spec +++ b/wine.spec @@ -2,7 +2,7 @@ %undefine _hardened_build %global no64bit 0 -%global winegecko 2.40 +%global winegecko 2.44 %global winemono 4.5.6 #global _default_patch_fuzz 2 @@ -21,7 +21,7 @@ %endif Name: wine -Version: 1.9.1 +Version: 1.9.2 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -136,6 +136,8 @@ BuildRequires: ImageMagick-devel BuildRequires: libtiff-devel BuildRequires: gettext-devel BuildRequires: chrpath +BuildRequires: gstreamer1-devel +BuildRequires: gstreamer1-plugins-base-devel # Silverlight DRM-stuff needs XATTR enabled. %if 0%{?compholio} @@ -680,7 +682,7 @@ export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno %configure \ --sysconfdir=%{_sysconfdir}/wine \ --x-includes=%{_includedir} --x-libraries=%{_libdir} \ - --without-hal --with-dbus --without-gstreamer \ + --without-hal --with-dbus \ --with-x \ %ifarch x86_64 --enable-win64 \ @@ -1246,6 +1248,27 @@ fi %{_libdir}/wine/api-ms-win-service-core-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-service-management-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-service-winsvc-l1-2-0.dll.so +%if 0%{?compholio} +%{_libdir}/wine/api-ms-win-appmodel-runtime-l1-1-1.dll.so +%{_libdir}/wine/api-ms-win-core-apiquery-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-com-l1-1-1.dll.so +%{_libdir}/wine/api-ms-win-core-delayload-l1-1-1.dll.so +%{_libdir}/wine/api-ms-win-core-heap-l2-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-kernel32-legacy-l1-1-1.dll.so +%{_libdir}/wine/api-ms-win-core-libraryloader-l1-2-0.dll.so +%{_libdir}/wine/api-ms-win-core-memory-l1-1-2.dll.so +%{_libdir}/wine/api-ms-win-core-quirks-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-shlwapi-obsolete-l1-2-0.dll.so +%{_libdir}/wine/api-ms-win-core-threadpool-l1-2-0.dll.so +%{_libdir}/wine/api-ms-win-core-winrt-registration-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-wow64-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-eventing-classicprovider-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-rtcore-ntuser-draw-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-rtcore-ntuser-window-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-shcore-obsolete-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-shcore-stream-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-shcore-thread-l1-1-0.dll.so +%endif %{_libdir}/wine/apphelp.dll.so %{_libdir}/wine/appwiz.cpl.so %{_libdir}/wine/atl.dll.so @@ -1338,6 +1361,15 @@ fi %{_libdir}/wine/evr.dll.so %{_libdir}/wine/explorerframe.dll.so %{_libdir}/wine/ext-ms-win-gdi-devcaps-l1-1-0.dll.so +%if 0%{?compholio} +%{_libdir}/wine/ext-ms-win-appmodel-usercontext-l1-1-0.dll.so +%{_libdir}/wine/ext-ms-win-kernel32-package-current-l1-1-0.dll.so +%{_libdir}/wine/ext-ms-win-ntuser-mouse-l1-1-0.dll.so +%{_libdir}/wine/ext-ms-win-rtcore-ntuser-syscolors-l1-1-0.dll.so +%{_libdir}/wine/ext-ms-win-rtcore-ntuser-sysparams-l1-1-0.dll.so +%{_libdir}/wine/ext-ms-win-uxtheme-themes-l1-1-0.dll.so +%{_libdir}/wine/ext-ms-win-xaml-pal-l1-1-0.dll.so +%endif %{_libdir}/wine/faultrep.dll.so %{_libdir}/wine/fltlib.dll.so %{_libdir}/wine/fltmgr.sys.so @@ -1363,6 +1395,9 @@ fi %{_libdir}/wine/icinfo.exe.so %{_libdir}/wine/icmp.dll.so %{_libdir}/wine/ieframe.dll.so +%if 0%{?compholio} +%{_libdir}/wine/iertutil.dll.so +%endif %{_libdir}/wine/imaadp32.acm.so %{_libdir}/wine/imagehlp.dll.so %{_libdir}/wine/imm32.dll.so @@ -1374,12 +1409,16 @@ fi %{_libdir}/wine/inkobj.dll.so %{_libdir}/wine/inseng.dll.so %{_libdir}/wine/iphlpapi.dll.so +%{_libdir}/wine/irprops.cpl.so %{_libdir}/wine/itircl.dll.so %{_libdir}/wine/itss.dll.so %{_libdir}/wine/joy.cpl.so %{_libdir}/wine/jscript.dll.so %{_libdir}/wine/jsproxy.dll.so %{_libdir}/wine/kernel32.dll.so +%if 0%{?compholio} +%{_libdir}/wine/kernelbase.dll.so +%endif %{_libdir}/wine/ksuser.dll.so %{_libdir}/wine/ktmw32.dll.so %{_libdir}/wine/loadperf.dll.so @@ -1539,6 +1578,9 @@ fi %{_libdir}/wine/serialui.dll.so %{_libdir}/wine/setupapi.dll.so %{_libdir}/wine/sfc_os.dll.so +%if 0%{?compholio} +%{_libdir}/wine/shcore.dll.so +%endif %{_libdir}/wine/shdoclc.dll.so %{_libdir}/wine/shdocvw.dll.so %{_libdir}/wine/schedsvc.dll.so @@ -1601,6 +1643,7 @@ fi %if 0%{?compholio} %{_libdir}/wine/wined3d-csmt.dll.so %endif +%{_libdir}/wine/winegstreamer.dll.so %{_libdir}/wine/winejoystick.drv.so %{_libdir}/wine/winemapi.dll.so %{_libdir}/wine/winex11.drv.so @@ -1661,6 +1704,7 @@ fi %{_libdir}/wine/xaudio2_6.dll.so %{_libdir}/wine/xaudio2_7.dll.so %{_libdir}/wine/xaudio2_8.dll.so +%{_libdir}/wine/xaudio2_9.dll.so %{_libdir}/wine/xcopy.exe.so %{_libdir}/wine/xinput1_1.dll.so %{_libdir}/wine/xinput1_2.dll.so @@ -1960,6 +2004,10 @@ fi %endif %changelog +* Sun Jan 24 2016 Michael Cronenworth 1.9.2-1 +- version upgrade +- enable gstreamer support + * Sun Jan 10 2016 Michael Cronenworth 1.9.1-1 - version upgrade From 563e0105d589f4b710c354a57fd82b9d3f5fc7a7 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 27 Jan 2016 18:38:00 -0600 Subject: [PATCH 367/715] Temporary workaround for Fedora 23 and lower for Wine Gecko --- wine.spec | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/wine.spec b/wine.spec index 723aac2..d976508 100644 --- a/wine.spec +++ b/wine.spec @@ -2,7 +2,11 @@ %undefine _hardened_build %global no64bit 0 +%if 0%{?fedora} > 23 %global winegecko 2.44 +%else +%global winegecko 2.40 +%endif %global winemono 4.5.6 #global _default_patch_fuzz 2 From c8891df350ff45cc23a104a7830d65db83bd19cb Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 5 Feb 2016 03:03:10 +0000 Subject: [PATCH 368/715] - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild --- wine.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index d976508..f68d9c7 100644 --- a/wine.spec +++ b/wine.spec @@ -26,7 +26,7 @@ Name: wine Version: 1.9.2 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -2008,6 +2008,9 @@ fi %endif %changelog +* Fri Feb 05 2016 Fedora Release Engineering - 1.9.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + * Sun Jan 24 2016 Michael Cronenworth 1.9.2-1 - version upgrade - enable gstreamer support From 80585e0e4e85d6f251d3760d68f4b8ab89502e31 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 8 Feb 2016 12:26:00 -0600 Subject: [PATCH 369/715] Update to 1.9.3 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 10 +++++----- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index a775115..bf23adb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.9.2.tar.bz2 -/wine-1.9.2.tar.bz2.sign -/wine-staging-1.9.2.tar.gz +/wine-1.9.3.tar.bz2 +/wine-1.9.3.tar.bz2.sign +/wine-staging-1.9.3.tar.gz diff --git a/sources b/sources index 48c7147..43b6805 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -13c74ba8b92a72cd6d7d79168ed9eaae wine-1.9.2.tar.bz2 -c6328c4121a4b1a3d81161d20adaca46 wine-1.9.2.tar.bz2.sign -a1874a85ac5f795dc75caf3dfc245513 wine-staging-1.9.2.tar.gz +3b1a5b198dabc51f1cb37b6ae729727a wine-1.9.3.tar.bz2 +0c33587cae9db289fa6ed91409b9cf4a wine-1.9.3.tar.bz2.sign +578018f8b332bb3f6830b30f6d1d2543 wine-staging-1.9.3.tar.gz diff --git a/wine.spec b/wine.spec index d976508..5157e1f 100644 --- a/wine.spec +++ b/wine.spec @@ -2,11 +2,7 @@ %undefine _hardened_build %global no64bit 0 -%if 0%{?fedora} > 23 %global winegecko 2.44 -%else -%global winegecko 2.40 -%endif %global winemono 4.5.6 #global _default_patch_fuzz 2 @@ -25,7 +21,7 @@ %endif Name: wine -Version: 1.9.2 +Version: 1.9.3 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1460,6 +1456,7 @@ fi %{_libdir}/wine/msdaps.dll.so %{_libdir}/wine/msdelta.dll.so %{_libdir}/wine/msdmo.dll.so +%{_libdir}/wine/msdrm.dll.so %{_libdir}/wine/msftedit.dll.so %{_libdir}/wine/msg711.acm.so %{_libdir}/wine/msgsm32.acm.so @@ -2008,6 +2005,9 @@ fi %endif %changelog +* Mon Feb 08 2016 Michael Cronenworth 1.9.3-1 +- version upgrade + * Sun Jan 24 2016 Michael Cronenworth 1.9.2-1 - version upgrade - enable gstreamer support From 033fd3e4d6bd17279af2aa675ecc1c688ceb18b6 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Thu, 11 Feb 2016 16:38:58 -0600 Subject: [PATCH 370/715] Disable optimizations again, RHBZ#1305637 --- wine.spec | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/wine.spec b/wine.spec index 1906f6c..e8456ec 100644 --- a/wine.spec +++ b/wine.spec @@ -677,7 +677,12 @@ rm -rf patches/ # disable fortify as it breaks wine # http://bugs.winehq.org/show_bug.cgi?id=24606 # http://bugs.winehq.org/show_bug.cgi?id=25073 +%if 0%{?fedora} > 23 export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno-error" +%else +export TEMP_CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-O2/-O0/'`" +export CFLAGS="`echo $TEMP_CFLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno-error" +%endif %configure \ --sysconfdir=%{_sysconfdir}/wine \ From d9586f56a452716bea4dbf820a3262072bd1f01f Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 22 Feb 2016 19:54:59 -0600 Subject: [PATCH 371/715] Update to 1.9.4 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 10 +++++++++- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index bf23adb..0017315 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.9.3.tar.bz2 -/wine-1.9.3.tar.bz2.sign -/wine-staging-1.9.3.tar.gz +/wine-1.9.4.tar.bz2 +/wine-1.9.4.tar.bz2.sign +/wine-staging-1.9.4.tar.gz diff --git a/sources b/sources index 43b6805..43ed69c 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -3b1a5b198dabc51f1cb37b6ae729727a wine-1.9.3.tar.bz2 -0c33587cae9db289fa6ed91409b9cf4a wine-1.9.3.tar.bz2.sign -578018f8b332bb3f6830b30f6d1d2543 wine-staging-1.9.3.tar.gz +28e703edf86a9fb9f6b11bf61b9e0d1d wine-1.9.4.tar.bz2 +1e19394c022a45809600c1eee282c41a wine-1.9.4.tar.bz2.sign +c1b6370fca6631dbbceadb909c894045 wine-staging-1.9.4.tar.gz diff --git a/wine.spec b/wine.spec index e8456ec..edb7885 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ %endif Name: wine -Version: 1.9.3 +Version: 1.9.4 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1183,6 +1183,7 @@ fi %{_libdir}/wine/api-ms-win-core-kernel32-legacy-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-libraryloader-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-libraryloader-l1-1-1.dll.so +%{_libdir}/wine/api-ms-win-core-localization-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-localization-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-localization-l1-2-1.dll.so %{_libdir}/wine/api-ms-win-core-localization-obsolete-l1-1-0.dll.so @@ -1396,6 +1397,7 @@ fi %{_libdir}/wine/hlink.dll.so %{_libdir}/wine/hnetcfg.dll.so %{_libdir}/wine/httpapi.dll.so +%{_libdir}/wine/icacls.exe.so %{_libdir}/wine/iccvid.dll.so %{_libdir}/wine/icinfo.exe.so %{_libdir}/wine/icmp.dll.so @@ -1593,6 +1595,9 @@ fi %{_libdir}/wine/shell32.dll.so %{_libdir}/wine/shfolder.dll.so %{_libdir}/wine/shlwapi.dll.so +%if 0%{?compholio} +%{_libdir}/wine/shutdown.exe.so +%endif %{_libdir}/wine/slbcsp.dll.so %{_libdir}/wine/slc.dll.so %{_libdir}/wine/snmpapi.dll.so @@ -2010,6 +2015,9 @@ fi %endif %changelog +* Mon Feb 22 2016 Michael Cronenworth 1.9.4-1 +- version upgrade + * Mon Feb 08 2016 Michael Cronenworth 1.9.3-1 - version upgrade From 429914b03854d3e3d18e2b3624c24cd1cb11b7d1 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 8 Mar 2016 14:11:11 -0600 Subject: [PATCH 372/715] Update to 1.9.5 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 5 ++++- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 0017315..2175c32 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.9.4.tar.bz2 -/wine-1.9.4.tar.bz2.sign -/wine-staging-1.9.4.tar.gz +/wine-1.9.5.tar.bz2 +/wine-1.9.5.tar.bz2.sign +/wine-staging-1.9.5.tar.gz diff --git a/sources b/sources index 43ed69c..3555b82 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -28e703edf86a9fb9f6b11bf61b9e0d1d wine-1.9.4.tar.bz2 -1e19394c022a45809600c1eee282c41a wine-1.9.4.tar.bz2.sign -c1b6370fca6631dbbceadb909c894045 wine-staging-1.9.4.tar.gz +c5f2f2e7dc2f0fe84d75833bc90ebd4f wine-1.9.5.tar.bz2 +7f14f0a727ee88b27ee3414db02d8ffa wine-1.9.5.tar.bz2.sign +bce12033c4ea34caec965ec944385288 wine-staging-1.9.5.tar.gz diff --git a/wine.spec b/wine.spec index edb7885..c6d0ab8 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ %endif Name: wine -Version: 1.9.4 +Version: 1.9.5 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -2015,6 +2015,9 @@ fi %endif %changelog +* Tue Mar 08 2016 Michael Cronenworth 1.9.5-1 +- version upgrade + * Mon Feb 22 2016 Michael Cronenworth 1.9.4-1 - version upgrade From 375cda9f640a08b04022fce7e07b095d77327928 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 8 Mar 2016 19:03:38 -0600 Subject: [PATCH 373/715] Update mono requirement to 4.6.0 --- wine.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/wine.spec b/wine.spec index c6d0ab8..dd5db02 100644 --- a/wine.spec +++ b/wine.spec @@ -3,7 +3,7 @@ %global no64bit 0 %global winegecko 2.44 -%global winemono 4.5.6 +%global winemono 4.6.0 #global _default_patch_fuzz 2 # build with compholio-patches, see: http://www.compholio.com/wine-compholio/ @@ -22,7 +22,7 @@ Name: wine Version: 1.9.5 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -2015,6 +2015,9 @@ fi %endif %changelog +* Tue Mar 08 2016 Michael Cronenworth 1.9.5-2 +- update mono requirement + * Tue Mar 08 2016 Michael Cronenworth 1.9.5-1 - version upgrade From 51b8759f66b03d65c2058d835eb6d6b415e81835 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 21 Mar 2016 16:51:38 -0500 Subject: [PATCH 374/715] Update to 1.9.6 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 20 +++++++++++++++++--- 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 2175c32..25df601 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.9.5.tar.bz2 -/wine-1.9.5.tar.bz2.sign -/wine-staging-1.9.5.tar.gz +/wine-1.9.6.tar.bz2 +/wine-1.9.6.tar.bz2.sign +/wine-staging-1.9.6.tar.gz diff --git a/sources b/sources index 3555b82..bf77ee7 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -c5f2f2e7dc2f0fe84d75833bc90ebd4f wine-1.9.5.tar.bz2 -7f14f0a727ee88b27ee3414db02d8ffa wine-1.9.5.tar.bz2.sign -bce12033c4ea34caec965ec944385288 wine-staging-1.9.5.tar.gz +a18d9054e84e0a12e08d4d84f902c6a6 wine-1.9.6.tar.bz2 +1354eb01ae25711a15c5340161d8f9fe wine-1.9.6.tar.bz2.sign +7c5f8200be9e3b4ad18bb72619c918d4 wine-staging-1.9.6.tar.gz diff --git a/wine.spec b/wine.spec index dd5db02..520eb36 100644 --- a/wine.spec +++ b/wine.spec @@ -21,8 +21,8 @@ %endif Name: wine -Version: 1.9.5 -Release: 2%{?dist} +Version: 1.9.6 +Release: 1%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -1171,6 +1171,7 @@ fi %{_libdir}/wine/api-ms-win-core-fibers-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-file-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-file-l1-2-0.dll.so +%{_libdir}/wine/api-ms-win-core-file-l1-2-1.dll.so %{_libdir}/wine/api-ms-win-core-file-l2-1-0.dll.so %{_libdir}/wine/api-ms-win-core-file-l2-1-1.dll.so %{_libdir}/wine/api-ms-win-core-handle-l1-1-0.dll.so @@ -1190,6 +1191,7 @@ fi %{_libdir}/wine/api-ms-win-core-localregistry-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-memory-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-memory-l1-1-1.dll.so +%{_libdir}/wine/api-ms-win-core-memory-l1-1-2.dll.so %{_libdir}/wine/api-ms-win-core-misc-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-namedpipe-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-namedpipe-l1-2-0.dll.so @@ -1206,6 +1208,7 @@ fi %{_libdir}/wine/api-ms-win-core-rtlsupport-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-shlwapi-legacy-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-string-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-string-l2-1-0.dll.so %{_libdir}/wine/api-ms-win-core-synch-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-synch-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-sysinfo-l1-1-0.dll.so @@ -1215,6 +1218,7 @@ fi %{_libdir}/wine/api-ms-win-core-timezone-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-url-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-util-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-version-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-winrt-error-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-winrt-error-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-winrt-l1-1-0.dll.so @@ -1262,7 +1266,6 @@ fi %{_libdir}/wine/api-ms-win-core-heap-l2-1-0.dll.so %{_libdir}/wine/api-ms-win-core-kernel32-legacy-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-libraryloader-l1-2-0.dll.so -%{_libdir}/wine/api-ms-win-core-memory-l1-1-2.dll.so %{_libdir}/wine/api-ms-win-core-quirks-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-shlwapi-obsolete-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-threadpool-l1-2-0.dll.so @@ -1642,6 +1645,10 @@ fi %{_libdir}/wine/vdmdbg.dll.so %{_libdir}/wine/version.dll.so %{_libdir}/wine/vssapi.dll.so +%if 0%{?compholio} +%{_libdir}/wine/vulkan-1.dll.so +%{_libdir}/wine/vulkan.dll.so +%endif %{_libdir}/wine/wbemdisp.dll.so %{_libdir}/wine/wbemprox.dll.so %{_libdir}/wine/webservices.dll.so @@ -1665,6 +1672,7 @@ fi %{_libdir}/wine/winnls32.dll.so %{_libdir}/wine/winspool.drv.so %{_libdir}/wine/winsta.dll.so +%{_libdir}/wine/wmasf.dll.so %{_libdir}/wine/wmi.dll.so %{_libdir}/wine/wmic.exe.so %{_libdir}/wine/wmiutils.dll.so @@ -1684,6 +1692,9 @@ fi %{_libdir}/wine/wtsapi32.dll.so %{_libdir}/wine/wuapi.dll.so %{_libdir}/wine/wuaueng.dll.so +%if 0%{?compholio} +%{_libdir}/wine/wuauserv.exe.so +%endif %{_libdir}/wine/security.dll.so %{_libdir}/wine/sfc.dll.so %{_libdir}/wine/wineps.drv.so @@ -2015,6 +2026,9 @@ fi %endif %changelog +* Mon Mar 21 2016 Michael Cronenworth 1.9.6-1 +- version upgrade + * Tue Mar 08 2016 Michael Cronenworth 1.9.5-2 - update mono requirement From 3e13c8a8f1daba6c5c49d16155852b4e3a2f532f Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 4 Apr 2016 00:06:57 -0500 Subject: [PATCH 375/715] Update to 1.9.7 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 8 +++++++- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 25df601..79b6f8d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.9.6.tar.bz2 -/wine-1.9.6.tar.bz2.sign -/wine-staging-1.9.6.tar.gz +/wine-1.9.7.tar.bz2 +/wine-1.9.7.tar.bz2.sign +/wine-staging-1.9.7.tar.gz diff --git a/sources b/sources index bf77ee7..bf20ec0 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -a18d9054e84e0a12e08d4d84f902c6a6 wine-1.9.6.tar.bz2 -1354eb01ae25711a15c5340161d8f9fe wine-1.9.6.tar.bz2.sign -7c5f8200be9e3b4ad18bb72619c918d4 wine-staging-1.9.6.tar.gz +6c8856cd2014336128e7a090f40429b5 wine-1.9.7.tar.bz2 +c861ba13251f3f154d2229ef3e013984 wine-1.9.7.tar.bz2.sign +181eeac72e2f27f0dde1061e9843e473 wine-staging-1.9.7.tar.gz diff --git a/wine.spec b/wine.spec index 520eb36..ef4203a 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ %endif Name: wine -Version: 1.9.6 +Version: 1.9.7 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1108,6 +1108,9 @@ fi %{_libdir}/wine/expand.exe.so %{_libdir}/wine/extrac32.exe.so %{_libdir}/wine/findstr.exe.so +%if 0%{?compholio} +%{_libdir}/wine/fsutil.exe.so +%endif %{_libdir}/wine/hostname.exe.so %{_libdir}/wine/ipconfig.exe.so %{_libdir}/wine/winhlp32.exe.so @@ -2026,6 +2029,9 @@ fi %endif %changelog +* Sun Apr 03 2016 Michael Cronenworth 1.9.7-1 +- version upgrade + * Mon Mar 21 2016 Michael Cronenworth 1.9.6-1 - version upgrade From edc88be43c848d97b08982c50af97ef554e4c010 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 17 Apr 2016 15:21:12 -0500 Subject: [PATCH 376/715] Update to 1.9.8 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 18 +++++++++++------- 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index 79b6f8d..78ebef4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.9.7.tar.bz2 -/wine-1.9.7.tar.bz2.sign -/wine-staging-1.9.7.tar.gz +/wine-1.9.8.tar.bz2 +/wine-1.9.8.tar.bz2.sign +/wine-staging-1.9.8.tar.gz diff --git a/sources b/sources index bf20ec0..390fc27 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -6c8856cd2014336128e7a090f40429b5 wine-1.9.7.tar.bz2 -c861ba13251f3f154d2229ef3e013984 wine-1.9.7.tar.bz2.sign -181eeac72e2f27f0dde1061e9843e473 wine-staging-1.9.7.tar.gz +308733cebe3302b5a3e2324f58b14ce2 wine-1.9.8.tar.bz2 +6cb0242cd34ebaf227564d773f1cfee6 wine-1.9.8.tar.bz2.sign +2ed56ffb91353ede40c32ba47f517b77 wine-staging-1.9.8.tar.gz diff --git a/wine.spec b/wine.spec index ef4203a..62efb1e 100644 --- a/wine.spec +++ b/wine.spec @@ -3,7 +3,7 @@ %global no64bit 0 %global winegecko 2.44 -%global winemono 4.6.0 +%global winemono 4.6.2 #global _default_patch_fuzz 2 # build with compholio-patches, see: http://www.compholio.com/wine-compholio/ @@ -21,7 +21,7 @@ %endif Name: wine -Version: 1.9.7 +Version: 1.9.8 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -677,12 +677,7 @@ rm -rf patches/ # disable fortify as it breaks wine # http://bugs.winehq.org/show_bug.cgi?id=24606 # http://bugs.winehq.org/show_bug.cgi?id=25073 -%if 0%{?fedora} > 23 export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno-error" -%else -export TEMP_CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-O2/-O0/'`" -export CFLAGS="`echo $TEMP_CFLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno-error" -%endif %configure \ --sysconfdir=%{_sysconfdir}/wine \ @@ -1383,6 +1378,9 @@ fi %{_libdir}/wine/ext-ms-win-xaml-pal-l1-1-0.dll.so %endif %{_libdir}/wine/faultrep.dll.so +%if 0%{?compholio} +%{_libdir}/wine/feclient.dll.so +%endif %{_libdir}/wine/fltlib.dll.so %{_libdir}/wine/fltmgr.sys.so %{_libdir}/wine/fntcache.dll.so @@ -1625,6 +1623,9 @@ fi %endif %{_libdir}/wine/traffic.dll.so %{_libdir}/wine/ucrtbase.dll.so +%if 0%{?compholio} +%{_libdir}/wine/uiautomationcore.dll.so +%endif %{_libdir}/wine/unicows.dll.so %{_libdir}/wine/unlodctr.exe.so %{_libdir}/wine/updspapi.dll.so @@ -2029,6 +2030,9 @@ fi %endif %changelog +* Sun Apr 17 2016 Michael Cronenworth 1.9.8-1 +- version upgrade + * Sun Apr 03 2016 Michael Cronenworth 1.9.7-1 - version upgrade From c19efda84b773f1bfe207c65851ae410cfd69030 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 1 May 2016 20:20:44 -0500 Subject: [PATCH 377/715] Update to 1.9.9 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 5 ++++- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 78ebef4..f7047de 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.9.8.tar.bz2 -/wine-1.9.8.tar.bz2.sign -/wine-staging-1.9.8.tar.gz +/wine-1.9.9.tar.bz2 +/wine-1.9.9.tar.bz2.sign +/wine-staging-1.9.9.tar.gz diff --git a/sources b/sources index 390fc27..e8098b6 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -308733cebe3302b5a3e2324f58b14ce2 wine-1.9.8.tar.bz2 -6cb0242cd34ebaf227564d773f1cfee6 wine-1.9.8.tar.bz2.sign -2ed56ffb91353ede40c32ba47f517b77 wine-staging-1.9.8.tar.gz +1a045462fa85bdf3314db34202528808 wine-1.9.9.tar.bz2 +26ec73f8a7a38b5a6a2998e0c7d86a4e wine-1.9.9.tar.bz2.sign +7078fa432ba9d6663aaa64cc60ae54f0 wine-staging-1.9.9.tar.gz diff --git a/wine.spec b/wine.spec index 62efb1e..2882d62 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ %endif Name: wine -Version: 1.9.8 +Version: 1.9.9 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -2030,6 +2030,9 @@ fi %endif %changelog +* Sun May 01 2016 Michael Cronenworth 1.9.9-1 +- version upgrade + * Sun Apr 17 2016 Michael Cronenworth 1.9.8-1 - version upgrade From e456a2703c1f2ed39e555ca2af132c9f711b153d Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 17 May 2016 21:17:18 -0500 Subject: [PATCH 378/715] Update to 1.9.10 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 5 ++++- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index f7047de..86eddaf 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.9.9.tar.bz2 -/wine-1.9.9.tar.bz2.sign -/wine-staging-1.9.9.tar.gz +/wine-1.9.10.tar.bz2 +/wine-1.9.10.tar.bz2.sign +/wine-staging-1.9.10.tar.gz diff --git a/sources b/sources index e8098b6..24b6beb 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -1a045462fa85bdf3314db34202528808 wine-1.9.9.tar.bz2 -26ec73f8a7a38b5a6a2998e0c7d86a4e wine-1.9.9.tar.bz2.sign -7078fa432ba9d6663aaa64cc60ae54f0 wine-staging-1.9.9.tar.gz +5e22fd3846fb3df3c7acfd61e544452d wine-1.9.10.tar.bz2 +f60332197813f5d90384e07aac337986 wine-1.9.10.tar.bz2.sign +f1157005ffa8cc4385ccb7b715a164eb wine-staging-1.9.10.tar.gz diff --git a/wine.spec b/wine.spec index 2882d62..912df95 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ %endif Name: wine -Version: 1.9.9 +Version: 1.9.10 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -2030,6 +2030,9 @@ fi %endif %changelog +* Tue May 17 2016 Michael Cronenworth 1.9.10-1 +- version upgrade + * Sun May 01 2016 Michael Cronenworth 1.9.9-1 - version upgrade From ce30ef6762b633afa7b3954e81114a7cf374ea7d Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 25 May 2016 19:11:07 -0500 Subject: [PATCH 379/715] Update gecko to 2.47 --- wine.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/wine.spec b/wine.spec index 912df95..6c8cad2 100644 --- a/wine.spec +++ b/wine.spec @@ -2,7 +2,7 @@ %undefine _hardened_build %global no64bit 0 -%global winegecko 2.44 +%global winegecko 2.47 %global winemono 4.6.2 #global _default_patch_fuzz 2 @@ -22,7 +22,7 @@ Name: wine Version: 1.9.10 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -2030,6 +2030,9 @@ fi %endif %changelog +* Tue May 24 2016 Michael Cronenworth 1.9.10-2 +- gecko update + * Tue May 17 2016 Michael Cronenworth 1.9.10-1 - version upgrade From 2fee003f0184ad12f0772a1f678f0bdb0d73ce70 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 7 Jun 2016 22:04:53 -0500 Subject: [PATCH 380/715] Update to 1.9.11 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 12 ++++++++++-- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index 86eddaf..a267c25 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.9.10.tar.bz2 -/wine-1.9.10.tar.bz2.sign -/wine-staging-1.9.10.tar.gz +/wine-1.9.11.tar.bz2 +/wine-1.9.11.tar.bz2.sign +/wine-staging-1.9.11.tar.gz diff --git a/sources b/sources index 24b6beb..75d1146 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -5e22fd3846fb3df3c7acfd61e544452d wine-1.9.10.tar.bz2 -f60332197813f5d90384e07aac337986 wine-1.9.10.tar.bz2.sign -f1157005ffa8cc4385ccb7b715a164eb wine-staging-1.9.10.tar.gz +4671b9db70be056f45ad145bb11a6305 wine-1.9.11.tar.bz2 +7c57071df7227046d5df7c61b07d0407 wine-1.9.11.tar.bz2.sign +23948b7852951073d83072747c3ab2b6 wine-staging-1.9.11.tar.gz diff --git a/wine.spec b/wine.spec index 6c8cad2..0ac5408 100644 --- a/wine.spec +++ b/wine.spec @@ -2,7 +2,11 @@ %undefine _hardened_build %global no64bit 0 +%if 0%{?fedora} <= 23 +%global winegecko 2.44 +%else %global winegecko 2.47 +%endif %global winemono 4.6.2 #global _default_patch_fuzz 2 @@ -21,8 +25,8 @@ %endif Name: wine -Version: 1.9.10 -Release: 2%{?dist} +Version: 1.9.11 +Release: 1%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -1521,6 +1525,7 @@ fi %{_libdir}/wine/msxml4.dll.so %{_libdir}/wine/msxml6.dll.so %{_libdir}/wine/nddeapi.dll.so +%{_libdir}/wine/ncrypt.dll.so %{_libdir}/wine/ndis.sys.so %{_libdir}/wine/netapi32.dll.so %{_libdir}/wine/netcfgx.dll.so @@ -2030,6 +2035,9 @@ fi %endif %changelog +* Tue Jun 07 2016 Michael Cronenworth 1.9.11-1 +- version update + * Tue May 24 2016 Michael Cronenworth 1.9.10-2 - gecko update From b92b5b1470b0d8ced3da9b03f5eab51b08b6ec20 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 15 Jun 2016 11:21:10 -0500 Subject: [PATCH 381/715] Update to 1.9.12 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 7 +++++-- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index a267c25..11cb11a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.9.11.tar.bz2 -/wine-1.9.11.tar.bz2.sign -/wine-staging-1.9.11.tar.gz +/wine-1.9.12.tar.bz2 +/wine-1.9.12.tar.bz2.sign +/wine-staging-1.9.12.tar.gz diff --git a/sources b/sources index 75d1146..9cef125 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -4671b9db70be056f45ad145bb11a6305 wine-1.9.11.tar.bz2 -7c57071df7227046d5df7c61b07d0407 wine-1.9.11.tar.bz2.sign -23948b7852951073d83072747c3ab2b6 wine-staging-1.9.11.tar.gz +1043247aac3945ae9c3711a0daa84c87 wine-1.9.12.tar.bz2 +1a2dc149ae76e542bb3b352c3633e50b wine-1.9.12.tar.bz2.sign +ea3badb73deb93dfeee24f944070f8d1 wine-staging-1.9.12.tar.gz diff --git a/wine.spec b/wine.spec index 0ac5408..532a276 100644 --- a/wine.spec +++ b/wine.spec @@ -7,7 +7,7 @@ %else %global winegecko 2.47 %endif -%global winemono 4.6.2 +%global winemono 4.6.3 #global _default_patch_fuzz 2 # build with compholio-patches, see: http://www.compholio.com/wine-compholio/ @@ -25,7 +25,7 @@ %endif Name: wine -Version: 1.9.11 +Version: 1.9.12 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -2035,6 +2035,9 @@ fi %endif %changelog +* Wed Jun 15 2016 Michael Cronenworth 1.9.12-1 +- version update + * Tue Jun 07 2016 Michael Cronenworth 1.9.11-1 - version update From e8affc21da695d25ae3935b0d6dc10171e5f55c8 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 15 Jun 2016 19:12:28 -0500 Subject: [PATCH 382/715] Add patch for GnuTLS 3.5 API change. --- wine-gnutls-3.5.patch | 94 +++++++++++++++++++++++++++++++++++++++++++ wine.spec | 3 ++ 2 files changed, 97 insertions(+) create mode 100644 wine-gnutls-3.5.patch diff --git a/wine-gnutls-3.5.patch b/wine-gnutls-3.5.patch new file mode 100644 index 0000000..f2819e1 --- /dev/null +++ b/wine-gnutls-3.5.patch @@ -0,0 +1,94 @@ +From 3e08f247b8bf105f1548648b93fad4a672ac7d7b Mon Sep 17 00:00:00 2001 +From: Michael Cronenworth +Date: Wed, 15 Jun 2016 19:03:22 -0500 +Subject: [PATCH] configure: Check for GnuTLS block size function + +Instead of providing an extern, perform a configure check. The +function return type changed from signed to unsigned in GnuTLS 3.5. + +Signed-off-by: Michael Cronenworth +--- + configure | 37 +++++++++++++++++++++++++++++++++++++ + configure.ac | 3 +++ + dlls/secur32/schannel_gnutls.c | 3 --- + 3 files changed, 40 insertions(+), 3 deletions(-) + +diff --git a/configure b/configure +index d1a6a68..1c39a6c 100755 +--- a/configure ++++ b/configure +@@ -11655,6 +11655,43 @@ CPPFLAGS=$ac_save_CPPFLAGS + test -z "$GNUTLS_CFLAGS" || GNUTLS_CFLAGS=`echo " $GNUTLS_CFLAGS" | sed 's/ -I\([^/]\)/ -I\$(top_builddir)\/\1/g'` + test -z "$GNUTLS_LIBS" || GNUTLS_LIBS=`echo " $GNUTLS_LIBS" | sed 's/ -L\([^/]\)/ -L\$(top_builddir)\/\1/g'` + ++ if ${GNUTLS_CFLAGS:+false} :; then : ++ if ${PKG_CONFIG+:} false; then : ++ GNUTLS_CFLAGS=`$PKG_CONFIG --cflags gnutls 2>/dev/null` ++fi ++fi ++ ++if ${GNUTLS_LIBS:+false} :; then : ++ if ${PKG_CONFIG+:} false; then : ++ GNUTLS_LIBS=`$PKG_CONFIG --libs gnutls 2>/dev/null` ++fi ++fi ++ ++ ++$as_echo "$as_me:${as_lineno-$LINENO}: gnutls cflags: $GNUTLS_CFLAGS" >&5 ++$as_echo "$as_me:${as_lineno-$LINENO}: gnutls libs: $GNUTLS_LIBS" >&5 ++ac_save_CPPFLAGS=$CPPFLAGS ++CPPFLAGS="$CPPFLAGS $GNUTLS_CFLAGS" ++ac_wine_check_funcs_save_LIBS="$LIBS" ++LIBS="$LIBS $GNUTLS_LIBS" ++for ac_func in gnutls_cipher_get_block_size ++do : ++ ac_fn_c_check_func "$LINENO" "gnutls_cipher_get_block_size" "ac_cv_func_gnutls_cipher_get_block_size" ++if test "x$ac_cv_func_gnutls_cipher_get_block_size" = xyes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_GNUTLS_CIPHER_GET_BLOCK_SIZE 1 ++_ACEOF ++ ++else ++ as_fn_append wine_notices "|libgnutls ${notice_platform}development files too old, no block size support." ++fi ++done ++ ++LIBS="$ac_wine_check_funcs_save_LIBS" ++CPPFLAGS=$ac_save_CPPFLAGS ++test -z "$GNUTLS_CFLAGS" || GNUTLS_CFLAGS=`echo " $GNUTLS_CFLAGS" | sed 's/ -I\([^/]\)/ -I\$(top_builddir)\/\1/g'` ++test -z "$GNUTLS_LIBS" || GNUTLS_LIBS=`echo " $GNUTLS_LIBS" | sed 's/ -L\([^/]\)/ -L\$(top_builddir)\/\1/g'` ++ + fi + if test "x$ac_cv_lib_soname_gnutls" = "x"; then : + case "x$with_gnutls" in +diff --git a/configure.ac b/configure.ac +index 7f234b2..6ae8dde 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1268,6 +1268,9 @@ then + WINE_CHECK_LIB_FUNCS(gnutls_hash,[$GNUTLS_LIBS],, + [WINE_NOTICE([libgnutls ${notice_platform}development files too old, no bcrypt hash support.])])])], + [GNUTLS_CFLAGS=""])]) ++ WINE_PACKAGE_FLAGS(GNUTLS,[gnutls],,,, ++ [WINE_CHECK_LIB_FUNCS(gnutls_cipher_get_block_size,[$GNUTLS_LIBS],, ++ [WINE_NOTICE([libgnutls ${notice_platform}development files too old, no block size support.])])]) + fi + WINE_WARNING_WITH(gnutls,[test "x$ac_cv_lib_soname_gnutls" = "x"], + [libgnutls ${notice_platform}development files not found, no schannel support.]) +diff --git a/dlls/secur32/schannel_gnutls.c b/dlls/secur32/schannel_gnutls.c +index b10b629..2388c55 100644 +--- a/dlls/secur32/schannel_gnutls.c ++++ b/dlls/secur32/schannel_gnutls.c +@@ -41,9 +41,6 @@ + WINE_DEFAULT_DEBUG_CHANNEL(secur32); + WINE_DECLARE_DEBUG_CHANNEL(winediag); + +-/* Not present in gnutls version < 2.9.10. */ +-extern int gnutls_cipher_get_block_size(gnutls_cipher_algorithm_t algorithm); +- + static void *libgnutls_handle; + #define MAKE_FUNCPTR(f) static typeof(f) * p##f + MAKE_FUNCPTR(gnutls_alert_get); +-- +2.5.5 + diff --git a/wine.spec b/wine.spec index 532a276..0a0f7ba 100644 --- a/wine.spec +++ b/wine.spec @@ -72,6 +72,8 @@ Source501: wine-tahoma.conf Source502: wine-README-tahoma Patch511: wine-cjk.patch +# GnuTLS 3.5 fix +Patch512: wine-gnutls-3.5.patch # wine compholio patches for wine-staging # pulseaudio-patch is covered by that patch-set, too. @@ -660,6 +662,7 @@ This package adds the opencl driver for wine. %prep %setup -q -n wine-%{version} %patch511 -p1 -b.cjk +%patch512 -p1 -b.gnutls # setup and apply wine-staging patches gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 From 83d1daa2b80f10e158ce73745bad3588506d77c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= Date: Fri, 24 Jun 2016 09:39:20 +0200 Subject: [PATCH 383/715] Mandatory Perl build-requires added --- wine.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/wine.spec b/wine.spec index 0a0f7ba..ff4b276 100644 --- a/wine.spec +++ b/wine.spec @@ -108,6 +108,7 @@ BuildRequires: ocl-icd-devel BuildRequires: opencl-headers %endif BuildRequires: openldap-devel +BuildRequires: perl-generators BuildRequires: unixODBC-devel BuildRequires: sane-backends-devel BuildRequires: zlib-devel From aa3e243d341ce79e99d70ebee25985661b1107a4 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Fri, 1 Jul 2016 16:44:02 -0500 Subject: [PATCH 384/715] Update to 1.9.13 --- .gitignore | 6 +-- sources | 6 +-- wine-cups-2.2.patch | 27 +++++++++++++ wine-gnutls-3.5.patch | 94 ------------------------------------------- wine.spec | 10 +++-- 5 files changed, 39 insertions(+), 104 deletions(-) create mode 100644 wine-cups-2.2.patch delete mode 100644 wine-gnutls-3.5.patch diff --git a/.gitignore b/.gitignore index 11cb11a..4ad2f78 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.9.12.tar.bz2 -/wine-1.9.12.tar.bz2.sign -/wine-staging-1.9.12.tar.gz +/wine-1.9.13.tar.bz2 +/wine-1.9.13.tar.bz2.sign +/wine-staging-1.9.13.tar.gz diff --git a/sources b/sources index 9cef125..cc36d58 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -1043247aac3945ae9c3711a0daa84c87 wine-1.9.12.tar.bz2 -1a2dc149ae76e542bb3b352c3633e50b wine-1.9.12.tar.bz2.sign -ea3badb73deb93dfeee24f944070f8d1 wine-staging-1.9.12.tar.gz +0ef601ed1eb8e9b800eb0ee334d7ad6a wine-1.9.13.tar.bz2 +21e95ddaa66e8e7c8d650246d749e675 wine-1.9.13.tar.bz2.sign +234c7f88068dc25bd67ab67efda9c319 wine-staging-1.9.13.tar.gz diff --git a/wine-cups-2.2.patch b/wine-cups-2.2.patch new file mode 100644 index 0000000..bea5ef7 --- /dev/null +++ b/wine-cups-2.2.patch @@ -0,0 +1,27 @@ +From 8570aa372d00aa6410605b97a78614c61d74c4b3 Mon Sep 17 00:00:00 2001 +From: Michael Cronenworth +Date: Fri, 1 Jul 2016 16:31:11 -0500 +Subject: [PATCH] winspool.drv: Support cups 2.2 header update + +Signed-off-by: Michael Cronenworth +--- + dlls/winspool.drv/info.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/dlls/winspool.drv/info.c b/dlls/winspool.drv/info.c +index 3ba94cd..5468066 100644 +--- a/dlls/winspool.drv/info.c ++++ b/dlls/winspool.drv/info.c +@@ -43,6 +43,9 @@ + #include + #ifdef HAVE_CUPS_CUPS_H + # include ++# if CUPS_VERSION_MAJOR > 2 || (CUPS_VERSION_MAJOR == 2 && CUPS_VERSION_MINOR > 1) ++# include ++# endif + #endif + + #ifdef HAVE_APPLICATIONSERVICES_APPLICATIONSERVICES_H +-- +2.5.5 + diff --git a/wine-gnutls-3.5.patch b/wine-gnutls-3.5.patch deleted file mode 100644 index f2819e1..0000000 --- a/wine-gnutls-3.5.patch +++ /dev/null @@ -1,94 +0,0 @@ -From 3e08f247b8bf105f1548648b93fad4a672ac7d7b Mon Sep 17 00:00:00 2001 -From: Michael Cronenworth -Date: Wed, 15 Jun 2016 19:03:22 -0500 -Subject: [PATCH] configure: Check for GnuTLS block size function - -Instead of providing an extern, perform a configure check. The -function return type changed from signed to unsigned in GnuTLS 3.5. - -Signed-off-by: Michael Cronenworth ---- - configure | 37 +++++++++++++++++++++++++++++++++++++ - configure.ac | 3 +++ - dlls/secur32/schannel_gnutls.c | 3 --- - 3 files changed, 40 insertions(+), 3 deletions(-) - -diff --git a/configure b/configure -index d1a6a68..1c39a6c 100755 ---- a/configure -+++ b/configure -@@ -11655,6 +11655,43 @@ CPPFLAGS=$ac_save_CPPFLAGS - test -z "$GNUTLS_CFLAGS" || GNUTLS_CFLAGS=`echo " $GNUTLS_CFLAGS" | sed 's/ -I\([^/]\)/ -I\$(top_builddir)\/\1/g'` - test -z "$GNUTLS_LIBS" || GNUTLS_LIBS=`echo " $GNUTLS_LIBS" | sed 's/ -L\([^/]\)/ -L\$(top_builddir)\/\1/g'` - -+ if ${GNUTLS_CFLAGS:+false} :; then : -+ if ${PKG_CONFIG+:} false; then : -+ GNUTLS_CFLAGS=`$PKG_CONFIG --cflags gnutls 2>/dev/null` -+fi -+fi -+ -+if ${GNUTLS_LIBS:+false} :; then : -+ if ${PKG_CONFIG+:} false; then : -+ GNUTLS_LIBS=`$PKG_CONFIG --libs gnutls 2>/dev/null` -+fi -+fi -+ -+ -+$as_echo "$as_me:${as_lineno-$LINENO}: gnutls cflags: $GNUTLS_CFLAGS" >&5 -+$as_echo "$as_me:${as_lineno-$LINENO}: gnutls libs: $GNUTLS_LIBS" >&5 -+ac_save_CPPFLAGS=$CPPFLAGS -+CPPFLAGS="$CPPFLAGS $GNUTLS_CFLAGS" -+ac_wine_check_funcs_save_LIBS="$LIBS" -+LIBS="$LIBS $GNUTLS_LIBS" -+for ac_func in gnutls_cipher_get_block_size -+do : -+ ac_fn_c_check_func "$LINENO" "gnutls_cipher_get_block_size" "ac_cv_func_gnutls_cipher_get_block_size" -+if test "x$ac_cv_func_gnutls_cipher_get_block_size" = xyes; then : -+ cat >>confdefs.h <<_ACEOF -+#define HAVE_GNUTLS_CIPHER_GET_BLOCK_SIZE 1 -+_ACEOF -+ -+else -+ as_fn_append wine_notices "|libgnutls ${notice_platform}development files too old, no block size support." -+fi -+done -+ -+LIBS="$ac_wine_check_funcs_save_LIBS" -+CPPFLAGS=$ac_save_CPPFLAGS -+test -z "$GNUTLS_CFLAGS" || GNUTLS_CFLAGS=`echo " $GNUTLS_CFLAGS" | sed 's/ -I\([^/]\)/ -I\$(top_builddir)\/\1/g'` -+test -z "$GNUTLS_LIBS" || GNUTLS_LIBS=`echo " $GNUTLS_LIBS" | sed 's/ -L\([^/]\)/ -L\$(top_builddir)\/\1/g'` -+ - fi - if test "x$ac_cv_lib_soname_gnutls" = "x"; then : - case "x$with_gnutls" in -diff --git a/configure.ac b/configure.ac -index 7f234b2..6ae8dde 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1268,6 +1268,9 @@ then - WINE_CHECK_LIB_FUNCS(gnutls_hash,[$GNUTLS_LIBS],, - [WINE_NOTICE([libgnutls ${notice_platform}development files too old, no bcrypt hash support.])])])], - [GNUTLS_CFLAGS=""])]) -+ WINE_PACKAGE_FLAGS(GNUTLS,[gnutls],,,, -+ [WINE_CHECK_LIB_FUNCS(gnutls_cipher_get_block_size,[$GNUTLS_LIBS],, -+ [WINE_NOTICE([libgnutls ${notice_platform}development files too old, no block size support.])])]) - fi - WINE_WARNING_WITH(gnutls,[test "x$ac_cv_lib_soname_gnutls" = "x"], - [libgnutls ${notice_platform}development files not found, no schannel support.]) -diff --git a/dlls/secur32/schannel_gnutls.c b/dlls/secur32/schannel_gnutls.c -index b10b629..2388c55 100644 ---- a/dlls/secur32/schannel_gnutls.c -+++ b/dlls/secur32/schannel_gnutls.c -@@ -41,9 +41,6 @@ - WINE_DEFAULT_DEBUG_CHANNEL(secur32); - WINE_DECLARE_DEBUG_CHANNEL(winediag); - --/* Not present in gnutls version < 2.9.10. */ --extern int gnutls_cipher_get_block_size(gnutls_cipher_algorithm_t algorithm); -- - static void *libgnutls_handle; - #define MAKE_FUNCPTR(f) static typeof(f) * p##f - MAKE_FUNCPTR(gnutls_alert_get); --- -2.5.5 - diff --git a/wine.spec b/wine.spec index ff4b276..8fe00ca 100644 --- a/wine.spec +++ b/wine.spec @@ -25,7 +25,7 @@ %endif Name: wine -Version: 1.9.12 +Version: 1.9.13 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -72,8 +72,7 @@ Source501: wine-tahoma.conf Source502: wine-README-tahoma Patch511: wine-cjk.patch -# GnuTLS 3.5 fix -Patch512: wine-gnutls-3.5.patch +Patch512: wine-cups-2.2.patch # wine compholio patches for wine-staging # pulseaudio-patch is covered by that patch-set, too. @@ -663,7 +662,7 @@ This package adds the opencl driver for wine. %prep %setup -q -n wine-%{version} %patch511 -p1 -b.cjk -%patch512 -p1 -b.gnutls +%patch512 -p1 -b.cups # setup and apply wine-staging patches gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 @@ -2039,6 +2038,9 @@ fi %endif %changelog +* Fri Jul 01 2016 Michael Cronenworth 1.9.13-1 +- version update + * Wed Jun 15 2016 Michael Cronenworth 1.9.12-1 - version update From 3843f57f76cf26348b9f8a03b27319a6a1febc5f Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Fri, 29 Jul 2016 13:33:35 -0500 Subject: [PATCH 385/715] Update to 1.9.15 --- .gitignore | 6 +++--- sources | 6 +++--- wine-cups-2.2.patch | 27 --------------------------- wine.spec | 11 ++++++++--- 4 files changed, 14 insertions(+), 36 deletions(-) delete mode 100644 wine-cups-2.2.patch diff --git a/.gitignore b/.gitignore index 4ad2f78..7a7d32f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.9.13.tar.bz2 -/wine-1.9.13.tar.bz2.sign -/wine-staging-1.9.13.tar.gz +/wine-1.9.15.tar.bz2 +/wine-1.9.15.tar.bz2.sign +/wine-staging-1.9.15.tar.gz diff --git a/sources b/sources index cc36d58..dba9820 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -0ef601ed1eb8e9b800eb0ee334d7ad6a wine-1.9.13.tar.bz2 -21e95ddaa66e8e7c8d650246d749e675 wine-1.9.13.tar.bz2.sign -234c7f88068dc25bd67ab67efda9c319 wine-staging-1.9.13.tar.gz +385ef1e93d45ad871f5d38d52af602dd wine-1.9.15.tar.bz2 +45d708b63e6e856430759a8e19c4be9f wine-1.9.15.tar.bz2.sign +f5ef9cf51e45d4e8d856675c3f57e370 wine-staging-1.9.15.tar.gz diff --git a/wine-cups-2.2.patch b/wine-cups-2.2.patch deleted file mode 100644 index bea5ef7..0000000 --- a/wine-cups-2.2.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 8570aa372d00aa6410605b97a78614c61d74c4b3 Mon Sep 17 00:00:00 2001 -From: Michael Cronenworth -Date: Fri, 1 Jul 2016 16:31:11 -0500 -Subject: [PATCH] winspool.drv: Support cups 2.2 header update - -Signed-off-by: Michael Cronenworth ---- - dlls/winspool.drv/info.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/dlls/winspool.drv/info.c b/dlls/winspool.drv/info.c -index 3ba94cd..5468066 100644 ---- a/dlls/winspool.drv/info.c -+++ b/dlls/winspool.drv/info.c -@@ -43,6 +43,9 @@ - #include - #ifdef HAVE_CUPS_CUPS_H - # include -+# if CUPS_VERSION_MAJOR > 2 || (CUPS_VERSION_MAJOR == 2 && CUPS_VERSION_MINOR > 1) -+# include -+# endif - #endif - - #ifdef HAVE_APPLICATIONSERVICES_APPLICATIONSERVICES_H --- -2.5.5 - diff --git a/wine.spec b/wine.spec index 8fe00ca..89d7510 100644 --- a/wine.spec +++ b/wine.spec @@ -25,7 +25,7 @@ %endif Name: wine -Version: 1.9.13 +Version: 1.9.15 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -72,7 +72,6 @@ Source501: wine-tahoma.conf Source502: wine-README-tahoma Patch511: wine-cjk.patch -Patch512: wine-cups-2.2.patch # wine compholio patches for wine-staging # pulseaudio-patch is covered by that patch-set, too. @@ -662,7 +661,6 @@ This package adds the opencl driver for wine. %prep %setup -q -n wine-%{version} %patch511 -p1 -b.cjk -%patch512 -p1 -b.cups # setup and apply wine-staging patches gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 @@ -1615,6 +1613,7 @@ fi %{_libdir}/wine/snmpapi.dll.so %{_libdir}/wine/softpub.dll.so %{_libdir}/wine/spoolsv.exe.so +%{_libdir}/wine/sspicli.dll.so %{_libdir}/wine/stdole2.tlb.so %{_libdir}/wine/stdole32.tlb.so %{_libdir}/wine/sti.dll.so @@ -2038,6 +2037,12 @@ fi %endif %changelog +* Fri Jul 29 2016 Michael Cronenworth 1.9.15-1 +- version update + +* Mon Jul 11 2016 Michael Cronenworth 1.9.14-1 +- version update + * Fri Jul 01 2016 Michael Cronenworth 1.9.13-1 - version update From 6973665f818933aac7427972a65fd15975dda018 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 9 Aug 2016 12:02:41 -0500 Subject: [PATCH 386/715] Update to 1.9.16 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 6 +++++- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 7a7d32f..6e6c137 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.9.15.tar.bz2 -/wine-1.9.15.tar.bz2.sign -/wine-staging-1.9.15.tar.gz +/wine-1.9.16.tar.bz2 +/wine-1.9.16.tar.bz2.sign +/wine-staging-1.9.16.tar.gz diff --git a/sources b/sources index dba9820..62c409f 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -385ef1e93d45ad871f5d38d52af602dd wine-1.9.15.tar.bz2 -45d708b63e6e856430759a8e19c4be9f wine-1.9.15.tar.bz2.sign -f5ef9cf51e45d4e8d856675c3f57e370 wine-staging-1.9.15.tar.gz +11a2fc9592609acacd779509e8c7210f wine-1.9.16.tar.bz2 +ebc05e9c4ab12ce91d560c7837da1d44 wine-1.9.16.tar.bz2.sign +bdaac48fdfdbfe2c03ad7431b7c75c41 wine-staging-1.9.16.tar.gz diff --git a/wine.spec b/wine.spec index 89d7510..dc455fe 100644 --- a/wine.spec +++ b/wine.spec @@ -25,7 +25,7 @@ %endif Name: wine -Version: 1.9.15 +Version: 1.9.16 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1505,6 +1505,7 @@ fi %{_libdir}/wine/msvcp110.dll.so %{_libdir}/wine/msvcp120.dll.so %{_libdir}/wine/msvcp120_app.dll.so +%{_libdir}/wine/msvcp140.dll.so %{_libdir}/wine/msvcr70.dll.so %{_libdir}/wine/msvcr71.dll.so %{_libdir}/wine/msvcr80.dll.so @@ -2037,6 +2038,9 @@ fi %endif %changelog +* Tue Aug 09 2016 Michael Cronenworth 1.9.16-1 +- version update + * Fri Jul 29 2016 Michael Cronenworth 1.9.15-1 - version update From 278b2dbb0c83fc72e22d2c0fd91c2b99b9cdd72c Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Sat, 20 Aug 2016 20:38:39 +0100 Subject: [PATCH 387/715] build on aarch64 --- wine.spec | 65 +++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 44 insertions(+), 21 deletions(-) diff --git a/wine.spec b/wine.spec index dc455fe..cb9c212 100644 --- a/wine.spec +++ b/wine.spec @@ -26,7 +26,7 @@ Name: wine Version: 1.9.16 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -78,7 +78,7 @@ Patch511: wine-cjk.patch Source900: https://github.com/compholio/wine-compholio/archive/v%{version}.tar.gz#/wine-staging-%{version}.tar.gz %if !%{?no64bit} -ExclusiveArch: %{ix86} x86_64 %{arm} +ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %else ExclusiveArch: %{ix86} %{arm} %endif @@ -207,7 +207,7 @@ Requires: mesa-dri-drivers(x86-64) %endif # ARM parts -%ifarch %{arm} +%ifarch %{arm} aarch64 Requires: wine-core = %{version}-%{release} Requires: wine-capi = %{version}-%{release} Requires: wine-cms = %{version}-%{release} @@ -222,6 +222,20 @@ Requires: mesa-dri-drivers Requires: samba-winbind-clients %endif +# aarch64 parts +%ifarch aarch64 +Requires: wine-core(aarch64) = %{version}-%{release} +Requires: wine-capi(aarch64) = %{version}-%{release} +Requires: wine-cms(aarch64) = %{version}-%{release} +Requires: wine-ldap(aarch64) = %{version}-%{release} +Requires: wine-twain(aarch64) = %{version}-%{release} +Requires: wine-pulseaudio(aarch64) = %{version}-%{release} +Requires: wine-openal(aarch64) = %{version}-%{release} +Requires: wine-opencl(aarch64) = %{version}-%{release} +Requires: mingw64-wine-gecko = %winegecko +Requires: mesa-dri-drivers(aarch64) +%endif + %description Wine as a compatibility layer for UNIX to run Windows applications. This package includes a program loader, which allows unmodified Windows @@ -283,7 +297,7 @@ Requires: libva(x86-64) %endif %endif -%ifarch %{arm} +%ifarch %{arm} aarch64 Requires: freetype Requires: nss-mdns Requires: gnutls @@ -295,6 +309,9 @@ Requires: libpcap Requires: mesa-libOSMesa Requires: libv4l Requires: unixODBC +%if 0%{?compholio} +Requires: libva +%endif %endif # old removed packages @@ -585,7 +602,7 @@ Requires: sane-backends-libs(x86-32) %ifarch x86_64 Requires: sane-backends-libs(x86-64) %endif -%ifarch %{arm} +%ifarch %{arm} aarch64 Requires: sane-backends-libs %endif @@ -666,7 +683,7 @@ This package adds the opencl driver for wine. gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 %if 0%{?compholio} -%{__make} -C patches DESTDIR="`pwd`" install +make -C patches DESTDIR="`pwd`" install # fix parallelized build sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in @@ -689,13 +706,13 @@ export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno --x-includes=%{_includedir} --x-libraries=%{_libdir} \ --without-hal --with-dbus \ --with-x \ -%ifarch x86_64 +%ifarch x86_64 aarch64 --enable-win64 \ %endif %{?compholio: --with-xattr} \ --disable-tests -%{__make} %{?_smp_mflags} TARGETFLAGS="" +make %{?_smp_mflags} TARGETFLAGS="" %install @@ -707,15 +724,16 @@ export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno UPDATE_DESKTOP_DATABASE=/bin/true # setup for alternatives usage -%ifarch x86_64 +%ifarch x86_64 aarch64 mv %{buildroot}%{_bindir}/wineserver %{buildroot}%{_bindir}/wineserver64 -%else -mv %{buildroot}%{_bindir}/wine %{buildroot}%{_bindir}/wine32 -%ifnarch %{arm} -mv %{buildroot}%{_bindir}/wine-preloader %{buildroot}%{_bindir}/wine32-preloader %endif +%ifarch %{ix86} %{arm} +mv %{buildroot}%{_bindir}/wine %{buildroot}%{_bindir}/wine32 mv %{buildroot}%{_bindir}/wineserver %{buildroot}%{_bindir}/wineserver32 %endif +%ifnarch %{arm} aarch64 +mv %{buildroot}%{_bindir}/wine-preloader %{buildroot}%{_bindir}/wine32-preloader +%endif touch %{buildroot}%{_bindir}/wine %ifnarch %{arm} touch %{buildroot}%{_bindir}/wine-preloader @@ -725,7 +743,7 @@ touch %{buildroot}%{_bindir}/wineserver # remove rpath chrpath --delete %{buildroot}%{_bindir}/wmc chrpath --delete %{buildroot}%{_bindir}/wrc -%ifarch x86_64 +%ifarch x86_64 aarch64 chrpath --delete %{buildroot}%{_bindir}/wine64 chrpath --delete %{buildroot}%{_bindir}/wineserver64 %else @@ -873,7 +891,7 @@ mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d/ install -p -m644 %{SOURCE4} %{buildroot}%{_sysconfdir}/ld.so.conf.d/ %endif -%ifarch x86_64 +%ifarch x86_64 aarch64 install -p -m644 %{SOURCE5} %{buildroot}%{_sysconfdir}/ld.so.conf.d/ %endif @@ -981,7 +999,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %post core -p /sbin/ldconfig %posttrans core -%ifarch x86_64 +%ifarch x86_64 aarch64 %{_sbindir}/alternatives --install %{_bindir}/wine \ wine %{_bindir}/wine64 10 \ --slave %{_bindir}/wine-preloader wine-preloader %{_bindir}/wine64-preloader @@ -1005,7 +1023,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %postun core /sbin/ldconfig if [ $1 -eq 0 ] ; then -%ifarch x86_64 +%ifarch x86_64 aarch64 aarch64 %{_sbindir}/alternatives --remove wine %{_bindir}/wine64 %{_sbindir}/alternatives --remove wineserver %{_bindir}/wineserver64 %else @@ -1080,12 +1098,14 @@ fi %config %{_sysconfdir}/ld.so.conf.d/wine-32.conf %endif -%ifarch x86_64 +%ifarch x86_64 aarch64 %{_bindir}/wine64 -%{_bindir}/wine64-preloader %{_bindir}/wineserver64 %config %{_sysconfdir}/ld.so.conf.d/wine-64.conf %endif +%ifarch x86_64 +%{_bindir}/wine64-preloader +%endif %ghost %{_bindir}/wine %ifnarch %{arm} @@ -1751,7 +1771,7 @@ fi %{_libdir}/wine/xpssvcs.dll.so %if 0%{?compholio} -%ifarch x86_64 +%ifarch x86_64 aarch64 %{_libdir}/wine/nvapi64.dll.so %{_libdir}/wine/nvencodeapi64.dll.so %else @@ -1761,7 +1781,7 @@ fi %endif # 16 bit and other non 64bit stuff -%ifnarch x86_64 %{arm} +%ifnarch x86_64 %{arm} aarch64 %{_libdir}/wine/winevdm.exe.so %{_libdir}/wine/ifsmgr.vxd.so %{_libdir}/wine/mmdevldr.vxd.so @@ -2038,6 +2058,9 @@ fi %endif %changelog +* Sat Aug 20 2016 Peter Robinson 1.9.16-2 +- build on aarch64 + * Tue Aug 09 2016 Michael Cronenworth 1.9.16-1 - version update From b7c0c3d9330645869bed32fdf76457ffce5c4ac1 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Sat, 20 Aug 2016 21:46:38 +0100 Subject: [PATCH 388/715] fix up ifarch statement --- wine.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index cb9c212..6579f3c 100644 --- a/wine.spec +++ b/wine.spec @@ -731,7 +731,7 @@ mv %{buildroot}%{_bindir}/wineserver %{buildroot}%{_bindir}/wineserver64 mv %{buildroot}%{_bindir}/wine %{buildroot}%{_bindir}/wine32 mv %{buildroot}%{_bindir}/wineserver %{buildroot}%{_bindir}/wineserver32 %endif -%ifnarch %{arm} aarch64 +%ifnarch %{arm} aarch64 x86_64 mv %{buildroot}%{_bindir}/wine-preloader %{buildroot}%{_bindir}/wine32-preloader %endif touch %{buildroot}%{_bindir}/wine From 3ac2b4594635fe77ac0648f332292dc4bd78a65c Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 28 Aug 2016 11:37:20 -0500 Subject: [PATCH 389/715] Update to 1.9.17 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 8 +++++++- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 6e6c137..a41a03d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.9.16.tar.bz2 -/wine-1.9.16.tar.bz2.sign -/wine-staging-1.9.16.tar.gz +/wine-1.9.17.tar.bz2 +/wine-1.9.17.tar.bz2.sign +/wine-staging-1.9.17.tar.gz diff --git a/sources b/sources index 62c409f..ff2969a 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -11a2fc9592609acacd779509e8c7210f wine-1.9.16.tar.bz2 -ebc05e9c4ab12ce91d560c7837da1d44 wine-1.9.16.tar.bz2.sign -bdaac48fdfdbfe2c03ad7431b7c75c41 wine-staging-1.9.16.tar.gz +79fe7f8f7dde35de10576c0809d39d4f wine-1.9.17.tar.bz2 +68fbcce5c5d9370af6cf85e285f1227e wine-1.9.17.tar.bz2.sign +d7b1926a460c798d2f94cebce24d4a65 wine-staging-1.9.17.tar.gz diff --git a/wine.spec b/wine.spec index dc455fe..2f93d15 100644 --- a/wine.spec +++ b/wine.spec @@ -25,7 +25,7 @@ %endif Name: wine -Version: 1.9.16 +Version: 1.9.17 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1163,6 +1163,7 @@ fi %{_libdir}/wine/amstream.dll.so %{_libdir}/wine/api-ms-win-core-com-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-console-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-console-l2-1-0.dll.so %{_libdir}/wine/api-ms-win-core-datetime-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-datetime-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-debug-l1-1-0.dll.so @@ -1307,6 +1308,7 @@ fi %{_libdir}/wine/comdlg32.dll.so %{_libdir}/wine/compstui.dll.so %{_libdir}/wine/comsvcs.dll.so +%{_libdir}/wine/concrt140.dll.so %{_libdir}/wine/connect.dll.so %{_libdir}/wine/credui.dll.so %{_libdir}/wine/crtdll.dll.so @@ -1653,6 +1655,7 @@ fi %{_libdir}/wine/vcomp100.dll.so %{_libdir}/wine/vcomp110.dll.so %{_libdir}/wine/vcomp120.dll.so +%{_libdir}/wine/vcomp140.dll.so %{_libdir}/wine/vcruntime140.dll.so %{_libdir}/wine/vdmdbg.dll.so %{_libdir}/wine/version.dll.so @@ -2038,6 +2041,9 @@ fi %endif %changelog +* Sun Aug 28 2016 Michael Cronenworth 1.9.17-1 +- version update + * Tue Aug 09 2016 Michael Cronenworth 1.9.16-1 - version update From 1e1932d80628de3b8a0cf4d57d9fa5e88b7a1dc6 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 7 Sep 2016 10:54:02 -0500 Subject: [PATCH 390/715] Update to 1.9.18 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 15 ++++++++++++++- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index a41a03d..868c406 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.9.17.tar.bz2 -/wine-1.9.17.tar.bz2.sign -/wine-staging-1.9.17.tar.gz +/wine-1.9.18.tar.bz2 +/wine-1.9.18.tar.bz2.sign +/wine-staging-1.9.18.tar.gz diff --git a/sources b/sources index ff2969a..b53d016 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -79fe7f8f7dde35de10576c0809d39d4f wine-1.9.17.tar.bz2 -68fbcce5c5d9370af6cf85e285f1227e wine-1.9.17.tar.bz2.sign -d7b1926a460c798d2f94cebce24d4a65 wine-staging-1.9.17.tar.gz +9da9321d9f8f5703b4ec83d673c8d7a4 wine-1.9.18.tar.bz2 +a3f2df75991e48ffcb10f009ed2b4834 wine-1.9.18.tar.bz2.sign +9f87f4b518e0da79eaa6c965654f43bd wine-staging-1.9.18.tar.gz diff --git a/wine.spec b/wine.spec index 8501742..02a4d07 100644 --- a/wine.spec +++ b/wine.spec @@ -25,7 +25,7 @@ %endif Name: wine -Version: 1.9.17 +Version: 1.9.18 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1205,6 +1205,8 @@ fi %{_libdir}/wine/api-ms-win-core-interlocked-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-interlocked-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-io-l1-1-1.dll.so +%{_libdir}/wine/api-ms-win-core-job-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-job-l2-1-0.dll.so %{_libdir}/wine/api-ms-win-core-kernel32-legacy-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-libraryloader-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-libraryloader-l1-1-1.dll.so @@ -1219,6 +1221,8 @@ fi %{_libdir}/wine/api-ms-win-core-misc-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-namedpipe-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-namedpipe-l1-2-0.dll.so +%{_libdir}/wine/api-ms-win-core-namespace-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-normalization-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-path-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-processenvironment-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-processenvironment-l1-2-0.dll.so @@ -1233,6 +1237,7 @@ fi %{_libdir}/wine/api-ms-win-core-shlwapi-legacy-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-string-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-string-l2-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-string-obsolete-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-synch-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-synch-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-sysinfo-l1-1-0.dll.so @@ -1240,6 +1245,7 @@ fi %{_libdir}/wine/api-ms-win-core-sysinfo-l1-2-1.dll.so %{_libdir}/wine/api-ms-win-core-threadpool-legacy-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-timezone-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-toolhelp-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-url-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-util-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-version-l1-1-0.dll.so @@ -1273,6 +1279,7 @@ fi %{_libdir}/wine/api-ms-win-downlevel-user32-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-downlevel-version-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-eventing-provider-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-eventlog-legacy-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-ntuser-dc-access-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-security-base-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-security-base-l1-2-0.dll.so @@ -1282,6 +1289,7 @@ fi %{_libdir}/wine/api-ms-win-service-core-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-service-management-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-service-winsvc-l1-2-0.dll.so +%{_libdir}/wine/api-ms-win-shell-shellfolders-l1-1-0.dll.so %if 0%{?compholio} %{_libdir}/wine/api-ms-win-appmodel-runtime-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-apiquery-l1-1-0.dll.so @@ -1510,6 +1518,7 @@ fi %{_libdir}/wine/msls31.dll.so %{_libdir}/wine/msnet32.dll.so %{_libdir}/wine/mspatcha.dll.so +%{_libdir}/wine/msports.dll.so %{_libdir}/wine/msscript.ocx.so %{_libdir}/wine/mssign32.dll.so %{_libdir}/wine/mssip32.dll.so @@ -1719,6 +1728,7 @@ fi %{_libdir}/wine/wintrust.dll.so %{_libdir}/wine/wlanapi.dll.so %{_libdir}/wine/wnaspi32.dll.so +%{_libdir}/wine/wpc.dll.so %{_libdir}/wine/wpcap.dll.so %{_libdir}/wine/ws2_32.dll.so %{_libdir}/wine/wshom.ocx.so @@ -2061,6 +2071,9 @@ fi %endif %changelog +* Wed Sep 07 2016 Michael Cronenworth 1.9.18-1 +- version update + * Sun Aug 28 2016 Michael Cronenworth 1.9.17-1 - version update From 59a1d2faf3d7e8d968c6a840ac0b3720e7b42a25 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 15 Sep 2016 09:20:34 +0100 Subject: [PATCH 391/715] fix aarch64 definition --- wine.spec | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/wine.spec b/wine.spec index 02a4d07..299429e 100644 --- a/wine.spec +++ b/wine.spec @@ -26,7 +26,7 @@ Name: wine Version: 1.9.18 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -224,16 +224,16 @@ Requires: samba-winbind-clients # aarch64 parts %ifarch aarch64 -Requires: wine-core(aarch64) = %{version}-%{release} -Requires: wine-capi(aarch64) = %{version}-%{release} -Requires: wine-cms(aarch64) = %{version}-%{release} -Requires: wine-ldap(aarch64) = %{version}-%{release} -Requires: wine-twain(aarch64) = %{version}-%{release} -Requires: wine-pulseaudio(aarch64) = %{version}-%{release} -Requires: wine-openal(aarch64) = %{version}-%{release} -Requires: wine-opencl(aarch64) = %{version}-%{release} +Requires: wine-core(aarch-64) = %{version}-%{release} +Requires: wine-capi(aarch-64) = %{version}-%{release} +Requires: wine-cms(aarch-64) = %{version}-%{release} +Requires: wine-ldap(aarch-64) = %{version}-%{release} +Requires: wine-twain(aarch-64) = %{version}-%{release} +Requires: wine-pulseaudio(aarch-64) = %{version}-%{release} +Requires: wine-openal(aarch-64) = %{version}-%{release} +Requires: wine-opencl(aarch-64) = %{version}-%{release} Requires: mingw64-wine-gecko = %winegecko -Requires: mesa-dri-drivers(aarch64) +Requires: mesa-dri-drivers(aarch-64) %endif %description @@ -2071,6 +2071,9 @@ fi %endif %changelog +* Thu Sep 15 2016 Peter Robinson 1.9.18-2 +- fix aarch64 definition + * Wed Sep 07 2016 Michael Cronenworth 1.9.18-1 - version update From 31b9709d2ca23f12640fad9a8f20e533e208ac47 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 20 Sep 2016 20:36:08 -0500 Subject: [PATCH 392/715] Update to 1.9.19 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 25 +++++++++++++++++++++++-- 3 files changed, 29 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index 868c406..81244ff 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.9.18.tar.bz2 -/wine-1.9.18.tar.bz2.sign -/wine-staging-1.9.18.tar.gz +/wine-1.9.19.tar.bz2 +/wine-1.9.19.tar.bz2.sign +/wine-staging-1.9.19.tar.gz diff --git a/sources b/sources index b53d016..5ab0749 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -9da9321d9f8f5703b4ec83d673c8d7a4 wine-1.9.18.tar.bz2 -a3f2df75991e48ffcb10f009ed2b4834 wine-1.9.18.tar.bz2.sign -9f87f4b518e0da79eaa6c965654f43bd wine-staging-1.9.18.tar.gz +d9d3794d7394b9a22f7514d63f3a95f1 wine-1.9.19.tar.bz2 +6c3d8a56003ea78284d966ba42235033 wine-1.9.19.tar.bz2.sign +63282e36efb9804a3a80ae6eaf3e2e11 wine-staging-1.9.19.tar.gz diff --git a/wine.spec b/wine.spec index 299429e..ba082cd 100644 --- a/wine.spec +++ b/wine.spec @@ -25,8 +25,8 @@ %endif Name: wine -Version: 1.9.18 -Release: 2%{?dist} +Version: 1.9.19 +Release: 1%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -1181,6 +1181,7 @@ fi %{_libdir}/wine/advapi32.dll.so %{_libdir}/wine/advpack.dll.so %{_libdir}/wine/amstream.dll.so +%{_libdir}/wine/api-ms-win-core-atoms-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-com-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-console-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-console-l2-1-0.dll.so @@ -1208,12 +1209,16 @@ fi %{_libdir}/wine/api-ms-win-core-job-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-job-l2-1-0.dll.so %{_libdir}/wine/api-ms-win-core-kernel32-legacy-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-kernel32-private-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-libraryloader-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-libraryloader-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-localization-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-localization-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-localization-l1-2-1.dll.so +%{_libdir}/wine/api-ms-win-core-localization-l2-1-0.dll.so %{_libdir}/wine/api-ms-win-core-localization-obsolete-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-localization-obsolete-l1-2-0.dll.so +%{_libdir}/wine/api-ms-win-core-localization-private-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-localregistry-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-memory-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-memory-l1-1-1.dll.so @@ -1224,6 +1229,7 @@ fi %{_libdir}/wine/api-ms-win-core-namespace-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-normalization-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-path-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-privateprofile-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-processenvironment-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-processenvironment-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-processthreads-l1-1-0.dll.so @@ -1231,26 +1237,35 @@ fi %{_libdir}/wine/api-ms-win-core-processthreads-l1-1-2.dll.so %{_libdir}/wine/api-ms-win-core-profile-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-psapi-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-realtime-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-registry-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-registryuserspecific-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-rtlsupport-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-rtlsupport-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-shlwapi-legacy-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-shlwapi-obsolete-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-sidebyside-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-string-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-string-l2-1-0.dll.so %{_libdir}/wine/api-ms-win-core-string-obsolete-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-stringansi-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-synch-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-synch-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-sysinfo-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-sysinfo-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-sysinfo-l1-2-1.dll.so +%{_libdir}/wine/api-ms-win-core-threadpool-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-threadpool-legacy-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-timezone-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-toolhelp-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-url-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-util-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-version-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-versionansi-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-windowserrorreporting-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-winrt-error-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-winrt-error-l1-1-1.dll.so +%{_libdir}/wine/api-ms-win-core-winrt-errorprivate-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-winrt-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-winrt-string-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-xstate-l2-1-0.dll.so @@ -1289,6 +1304,7 @@ fi %{_libdir}/wine/api-ms-win-service-core-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-service-management-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-service-winsvc-l1-2-0.dll.so +%{_libdir}/wine/api-ms-win-shell-shellcom-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-shell-shellfolders-l1-1-0.dll.so %if 0%{?compholio} %{_libdir}/wine/api-ms-win-appmodel-runtime-l1-1-1.dll.so @@ -1513,6 +1529,7 @@ fi %{_libdir}/wine/msimtf.dll.so %{_libdir}/wine/msimg32.dll.so %{_libdir}/wine/msimsg.dll.so +%{_libdir}/wine/msinfo32.exe.so %{_libdir}/wine/msisip.dll.so %{_libdir}/wine/msisys.ocx.so %{_libdir}/wine/msls31.dll.so @@ -1702,6 +1719,7 @@ fi %{_libdir}/wine/wimgapi.dll.so %{_libdir}/wine/windowscodecs.dll.so %{_libdir}/wine/windowscodecsext.dll.so +%{_libdir}/wine/winebus.sys.so %if 0%{?compholio} %{_libdir}/wine/wined3d-csmt.dll.so %endif @@ -2071,6 +2089,9 @@ fi %endif %changelog +* Mon Sep 19 2016 Michael Cronenworth 1.9.19-1 +- version update + * Thu Sep 15 2016 Peter Robinson 1.9.18-2 - fix aarch64 definition From 45d7119e37054c3eab2c034d3b8f5e31dceff521 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 3 Oct 2016 08:54:06 -0500 Subject: [PATCH 393/715] Update to 1.9.20 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 22 +++++++++++++++++++++- 3 files changed, 27 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 81244ff..81b7537 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.9.19.tar.bz2 -/wine-1.9.19.tar.bz2.sign -/wine-staging-1.9.19.tar.gz +/wine-1.9.20.tar.bz2 +/wine-1.9.20.tar.bz2.sign +/wine-staging-1.9.20.tar.gz diff --git a/sources b/sources index 5ab0749..70536ad 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -d9d3794d7394b9a22f7514d63f3a95f1 wine-1.9.19.tar.bz2 -6c3d8a56003ea78284d966ba42235033 wine-1.9.19.tar.bz2.sign -63282e36efb9804a3a80ae6eaf3e2e11 wine-staging-1.9.19.tar.gz +8cdf98f6963089d368dfb55313d5d93f wine-1.9.20.tar.bz2 +2468ecd50c3eb2cc11ef10b3c689074c wine-1.9.20.tar.bz2.sign +3f6a010343c096db33c408c2b1e8b546 wine-staging-1.9.20.tar.gz diff --git a/wine.spec b/wine.spec index ba082cd..be52e9e 100644 --- a/wine.spec +++ b/wine.spec @@ -25,7 +25,7 @@ %endif Name: wine -Version: 1.9.19 +Version: 1.9.20 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1181,7 +1181,10 @@ fi %{_libdir}/wine/advapi32.dll.so %{_libdir}/wine/advpack.dll.so %{_libdir}/wine/amstream.dll.so +%{_libdir}/wine/api-ms-win-core-appcompat-l1-1-1.dll.so +%{_libdir}/wine/api-ms-win-core-appinit-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-atoms-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-bem-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-com-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-console-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-console-l2-1-0.dll.so @@ -1189,6 +1192,7 @@ fi %{_libdir}/wine/api-ms-win-core-datetime-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-debug-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-debug-l1-1-1.dll.so +%{_libdir}/wine/api-ms-win-core-delayload-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-errorhandling-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-errorhandling-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-errorhandling-l1-1-2.dll.so @@ -1205,6 +1209,7 @@ fi %{_libdir}/wine/api-ms-win-core-heap-obsolete-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-interlocked-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-interlocked-l1-2-0.dll.so +%{_libdir}/wine/api-ms-win-core-io-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-io-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-job-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-job-l2-1-0.dll.so @@ -1212,6 +1217,7 @@ fi %{_libdir}/wine/api-ms-win-core-kernel32-private-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-libraryloader-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-libraryloader-l1-1-1.dll.so +%{_libdir}/wine/api-ms-win-core-libraryloader-l1-2-2.dll.so %{_libdir}/wine/api-ms-win-core-localization-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-localization-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-localization-l1-2-1.dll.so @@ -1261,6 +1267,7 @@ fi %{_libdir}/wine/api-ms-win-core-url-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-util-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-version-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-version-private-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-versionansi-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-windowserrorreporting-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-winrt-error-l1-1-0.dll.so @@ -1268,6 +1275,7 @@ fi %{_libdir}/wine/api-ms-win-core-winrt-errorprivate-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-winrt-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-winrt-string-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-xstate-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-xstate-l2-1-0.dll.so %{_libdir}/wine/api-ms-win-crt-conio-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-crt-convert-l1-1-0.dll.so @@ -1293,16 +1301,24 @@ fi %{_libdir}/wine/api-ms-win-downlevel-shlwapi-l2-1-0.dll.so %{_libdir}/wine/api-ms-win-downlevel-user32-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-downlevel-version-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-eventing-consumer-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-eventing-controller-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-eventing-provider-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-eventlog-legacy-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-ntuser-dc-access-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-security-audit-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-security-base-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-security-base-l1-2-0.dll.so +%{_libdir}/wine/api-ms-win-security-base-private-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-security-lsalookup-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-security-lsalookup-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-security-sddl-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-service-core-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-service-core-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-service-management-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-service-management-l2-1-0.dll.so +%{_libdir}/wine/api-ms-win-service-private-l1-1-1.dll.so +%{_libdir}/wine/api-ms-win-service-winsvc-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-service-winsvc-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-shell-shellcom-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-shell-shellfolders-l1-1-0.dll.so @@ -1471,6 +1487,7 @@ fi %{_libdir}/wine/inkobj.dll.so %{_libdir}/wine/inseng.dll.so %{_libdir}/wine/iphlpapi.dll.so +%{_libdir}/wine/iprop.dll.so %{_libdir}/wine/irprops.cpl.so %{_libdir}/wine/itircl.dll.so %{_libdir}/wine/itss.dll.so @@ -2089,6 +2106,9 @@ fi %endif %changelog +* Sun Oct 02 2016 Michael Cronenworth 1.9.20-1 +- version update + * Mon Sep 19 2016 Michael Cronenworth 1.9.19-1 - version update From 06706743abddb734208cc8980339269a4d5cc737 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 17 Oct 2016 10:09:54 -0500 Subject: [PATCH 394/715] Update to 1.9.21 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 7 ++++++- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 81b7537..aaec2fe 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.9.20.tar.bz2 -/wine-1.9.20.tar.bz2.sign -/wine-staging-1.9.20.tar.gz +/wine-1.9.21.tar.bz2 +/wine-1.9.21.tar.bz2.sign +/wine-staging-1.9.21.tar.gz diff --git a/sources b/sources index 70536ad..8b0f7d6 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -8cdf98f6963089d368dfb55313d5d93f wine-1.9.20.tar.bz2 -2468ecd50c3eb2cc11ef10b3c689074c wine-1.9.20.tar.bz2.sign -3f6a010343c096db33c408c2b1e8b546 wine-staging-1.9.20.tar.gz +2a56340aa89c3120576d00f7bf280af9 wine-1.9.21.tar.bz2 +98c97f5958f4f812037888c2632747fc wine-1.9.21.tar.bz2.sign +5959dac72013863843917b9be84662a3 wine-staging-1.9.21.tar.gz diff --git a/wine.spec b/wine.spec index be52e9e..bbf662b 100644 --- a/wine.spec +++ b/wine.spec @@ -25,7 +25,7 @@ %endif Name: wine -Version: 1.9.20 +Version: 1.9.21 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1683,6 +1683,7 @@ fi %{_libdir}/wine/stdole2.tlb.so %{_libdir}/wine/stdole32.tlb.so %{_libdir}/wine/sti.dll.so +%{_libdir}/wine/subst.exe.so %{_libdir}/wine/svchost.exe.so %{_libdir}/wine/svrapi.dll.so %{_libdir}/wine/sxs.dll.so @@ -1741,6 +1742,7 @@ fi %{_libdir}/wine/wined3d-csmt.dll.so %endif %{_libdir}/wine/winegstreamer.dll.so +%{_libdir}/wine/winehid.sys.so %{_libdir}/wine/winejoystick.drv.so %{_libdir}/wine/winemapi.dll.so %{_libdir}/wine/winex11.drv.so @@ -2106,6 +2108,9 @@ fi %endif %changelog +* Mon Oct 17 2016 Michael Cronenworth 1.9.21-1 +- version update + * Sun Oct 02 2016 Michael Cronenworth 1.9.20-1 - version update From 3775eb996c030013897028296c796ac60cd91787 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Thu, 3 Nov 2016 10:23:16 -0500 Subject: [PATCH 395/715] Update to 1.9.22 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 10 +++++++++- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index aaec2fe..0f5e4c3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.9.21.tar.bz2 -/wine-1.9.21.tar.bz2.sign -/wine-staging-1.9.21.tar.gz +/wine-1.9.22.tar.bz2 +/wine-1.9.22.tar.bz2.sign +/wine-staging-1.9.22.tar.gz diff --git a/sources b/sources index 8b0f7d6..5191d24 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -2a56340aa89c3120576d00f7bf280af9 wine-1.9.21.tar.bz2 -98c97f5958f4f812037888c2632747fc wine-1.9.21.tar.bz2.sign -5959dac72013863843917b9be84662a3 wine-staging-1.9.21.tar.gz +604c64eb3e1e5c85bc467e5e7b251b1d wine-1.9.22.tar.bz2 +31fc62bf9a490b53c0e6bfe7bde85a18 wine-1.9.22.tar.bz2.sign +4d443656fff8a9524c0a3e7c46753cc8 wine-staging-1.9.22.tar.gz diff --git a/wine.spec b/wine.spec index bbf662b..5a8815f 100644 --- a/wine.spec +++ b/wine.spec @@ -25,7 +25,7 @@ %endif Name: wine -Version: 1.9.21 +Version: 1.9.22 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1243,6 +1243,7 @@ fi %{_libdir}/wine/api-ms-win-core-processthreads-l1-1-2.dll.so %{_libdir}/wine/api-ms-win-core-profile-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-psapi-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-psapi-obsolete-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-realtime-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-registry-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-registryuserspecific-l1-1-0.dll.so @@ -1434,7 +1435,11 @@ fi %{_libdir}/wine/esent.dll.so %{_libdir}/wine/evr.dll.so %{_libdir}/wine/explorerframe.dll.so +%{_libdir}/wine/ext-ms-win-gdi-dc-create-l1-1-1.dll.so %{_libdir}/wine/ext-ms-win-gdi-devcaps-l1-1-0.dll.so +%{_libdir}/wine/ext-ms-win-ntuser-message-l1-1-1.dll.so +%{_libdir}/wine/ext-ms-win-ntuser-uicontext-ext-l1-1-0.dll.so +%{_libdir}/wine/ext-ms-win-rtcore-ntuser-dpi-l1-1-0.dll.so %if 0%{?compholio} %{_libdir}/wine/ext-ms-win-appmodel-usercontext-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-kernel32-package-current-l1-1-0.dll.so @@ -2108,6 +2113,9 @@ fi %endif %changelog +* Thu Nov 03 2016 Michael Cronenworth 1.9.22-1 +- version update + * Mon Oct 17 2016 Michael Cronenworth 1.9.21-1 - version update From 293b55b35a26a90927f7d6f3df04c8522499ee8b Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 16 Nov 2016 08:56:02 -0600 Subject: [PATCH 396/715] Update to 1.9.23. Fix cups support, include mp3 support. --- .gitignore | 6 +-- sources | 6 +-- wine.spec | 115 ++++++++++++++++++++++++----------------------------- 3 files changed, 57 insertions(+), 70 deletions(-) diff --git a/.gitignore b/.gitignore index 0f5e4c3..7e137b4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.9.22.tar.bz2 -/wine-1.9.22.tar.bz2.sign -/wine-staging-1.9.22.tar.gz +/wine-1.9.23.tar.bz2 +/wine-1.9.23.tar.bz2.sign +/wine-staging-1.9.23.tar.gz diff --git a/sources b/sources index 5191d24..1b81b31 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -604c64eb3e1e5c85bc467e5e7b251b1d wine-1.9.22.tar.bz2 -31fc62bf9a490b53c0e6bfe7bde85a18 wine-1.9.22.tar.bz2.sign -4d443656fff8a9524c0a3e7c46753cc8 wine-staging-1.9.22.tar.gz +bb2a1490369dc08e48993b60b59233a8 wine-1.9.23.tar.bz2 +f1a5cd72568348fcc425f8fc683c4b2f wine-1.9.23.tar.bz2.sign +423d881fbadb60b52593d91fca23e1a1 wine-staging-1.9.23.tar.gz diff --git a/wine.spec b/wine.spec index 5a8815f..5c1b365 100644 --- a/wine.spec +++ b/wine.spec @@ -2,11 +2,7 @@ %undefine _hardened_build %global no64bit 0 -%if 0%{?fedora} <= 23 -%global winegecko 2.44 -%else %global winegecko 2.47 -%endif %global winemono 4.6.3 #global _default_patch_fuzz 2 @@ -17,7 +13,7 @@ %endif # 0%{?fedora} # binfmt macros for RHEL -%if 0%{?fedora} <= 20 || 0%{?rhel} == 7 +%if 0%{?rhel} == 7 %global _binfmtdir /usr/lib/binfmt.d %global binfmt_apply() \ /usr/lib/systemd/systemd-binfmt %{?*} >/dev/null 2>&1 || : \ @@ -25,7 +21,7 @@ %endif Name: wine -Version: 1.9.22 +Version: 1.9.23 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -109,6 +105,7 @@ BuildRequires: openldap-devel BuildRequires: perl-generators BuildRequires: unixODBC-devel BuildRequires: sane-backends-devel +BuildRequires: systemd-devel BuildRequires: zlib-devel BuildRequires: fontforge freetype-devel BuildRequires: libgphoto2-devel @@ -129,9 +126,6 @@ BuildRequires: libXmu-devel BuildRequires: libXi-devel BuildRequires: libXcursor-devel BuildRequires: dbus-devel -%if !0%{?fedora} >= 16 -BuildRequires: hal-devel -%endif BuildRequires: gnutls-devel BuildRequires: pulseaudio-libs-devel BuildRequires: gsm-devel @@ -143,6 +137,9 @@ BuildRequires: gettext-devel BuildRequires: chrpath BuildRequires: gstreamer1-devel BuildRequires: gstreamer1-plugins-base-devel +%if 0%{?fedora} > 24 +BuildRequires: mpg123-devel +%endif # Silverlight DRM-stuff needs XATTR enabled. %if 0%{?compholio} @@ -258,6 +255,8 @@ Requires(preun): %{_sbindir}/alternatives Requires: wine-filesystem = %{version}-%{release} %ifarch %{ix86} +# CUPS support uses dlopen - rhbz#1367537 +Requires: cups-libs(x86-32) Requires: freetype(x86-32) Requires: nss-mdns(x86-32) Requires: gnutls(x86-32) @@ -278,6 +277,8 @@ Requires: libva(x86-32) %endif %ifarch x86_64 +# CUPS support uses dlopen - rhbz#1367537 +Requires: cups-libs(x86-64) Requires: freetype(x86-64) Requires: nss-mdns(x86-64) Requires: gnutls(x86-64) @@ -298,6 +299,8 @@ Requires: libva(x86-64) %endif %ifarch %{arm} aarch64 +# CUPS support uses dlopen - rhbz#1367537 +Requires: cups-libs Requires: freetype Requires: nss-mdns Requires: gnutls @@ -314,26 +317,6 @@ Requires: libva %endif %endif -# old removed packages -Obsoletes: wine-arts < 0.9.34 -Provides: wine-arts = %{version}-%{release} -Obsoletes: wine-tools <= 1.1.27 -Provides: wine-tools = %{version}-%{release} - -# removed as of 1.3.25 (new sound api) -Obsoletes: wine-esd <= 1.3.24 -Provides: wine-esd = %{version}-%{release} -Obsoletes: wine-jack <= 1.3.24 -Provides: wine-jack = %{version}-%{release} - -# removed as of 1.3.19 (we don't support oss4) -Obsoletes: wine-oss <= 1.3.18 -Provides: wine-oss = %{version}-%{release} - -# removed as of 1.3.16 -Obsoletes: wine-nas <= 1.3.15 -Provides: wine-nas = %{version}-%{release} - # removed as of 1.7.35 Obsoletes: wine-wow < 1.7.35 Provides: wine-wow = %{version}-%{release} @@ -353,8 +336,9 @@ Requires(postun): systemd %description systemd Register the wine binary handler for windows executables via systemd binfmt handling. See man binfmt.d for further information. +%endif -%if 0%{?fedora} < 23 +%if 0%{?rhel} < 7 %package sysvinit Summary: SysV initscript for the wine binfmt handler Group: Applications/Emulators @@ -363,7 +347,6 @@ BuildArch: noarch %description sysvinit Register the wine binary handler for windows executables via SysV init files. %endif -%endif %package filesystem Summary: Filesystem directories for wine @@ -394,6 +377,9 @@ Requires: wine-common = %{version}-%{release} %if 0%{?fedora} >= 15 || 0%{?rhel} >= 7 Requires: wine-systemd = %{version}-%{release} %endif +%if 0%{?rhel} < 7 +Requires: wine-sysvinit = %{version}-%{release} +%endif Requires: hicolor-icon-theme BuildArch: noarch @@ -613,18 +599,15 @@ Twain support for wine Summary: ISDN support for wine Group: System Environment/Libraries Requires: wine-core = %{version}-%{release} -#FIXME: parallel installable rhbz#1164355 -#ifarch x86_64 -#Requires: isdn4k-utils(x86-64) -#endif - -#ifarch %{ix86} -#Requires: isdn4k-utils(x86-32) -#endif - -#ifarch %{arm} +%ifarch x86_64 +Requires: isdn4k-utils(x86-64) +%endif +%ifarch %{ix86} +Requires: isdn4k-utils(x86-32) +%endif +%ifarch %{arm} aarch64 Requires: isdn4k-utils -#endif +%endif %description capi ISDN support for wine @@ -754,7 +737,7 @@ chrpath --delete %{buildroot}%{_bindir}/wineserver32 mkdir -p %{buildroot}%{_sysconfdir}/wine # Allow users to launch Windows programs by just clicking on the .exe file... -%if 0%{?fedora} < 23 +%if 0%{?rhel} < 7 mkdir -p %{buildroot}%{_initrddir} install -p -c -m 755 %{SOURCE1} %{buildroot}%{_initrddir}/wine %endif @@ -941,8 +924,7 @@ mkdir -p %{buildroot}%{_mandir}/pl.UTF-8/man1 install -p -m 0644 loader/wine.pl.UTF-8.man %{buildroot}%{_mandir}/pl.UTF-8/man1/wine.1 -%if 0%{?fedora} >= 15 -%if 0%{?fedora} < 23 +%if 0%{?rhel} < 7 %post sysvinit if [ $1 -eq 1 ]; then /sbin/chkconfig --add wine @@ -957,6 +939,7 @@ if [ $1 -eq 0 ]; then fi %endif +%if 0%{?fedora} >= 15 || 0%{?rhel} > 6 %post systemd %binfmt_apply wine.conf @@ -964,28 +947,12 @@ fi if [ $1 -eq 0 ]; then /bin/systemctl try-restart systemd-binfmt.service fi +%endif %post desktop update-desktop-database &>/dev/null || : touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : -%else -%post desktop -update-desktop-database &>/dev/null || : -touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : -if [ $1 -eq 1 ]; then -/sbin/chkconfig --add wine -/sbin/chkconfig --level 2345 wine on -/sbin/service wine start &>/dev/null || : -fi - -%preun desktop -if [ $1 -eq 0 ]; then -/sbin/service wine stop >/dev/null 2>&1 -/sbin/chkconfig --del wine -fi -%endif - %postun desktop update-desktop-database &>/dev/null || : if [ $1 -eq 0 ] ; then @@ -1302,11 +1269,13 @@ fi %{_libdir}/wine/api-ms-win-downlevel-shlwapi-l2-1-0.dll.so %{_libdir}/wine/api-ms-win-downlevel-user32-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-downlevel-version-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-dx-d3dkmt-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-eventing-consumer-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-eventing-controller-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-eventing-provider-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-eventlog-legacy-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-ntuser-dc-access-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-rtcore-ntuser-private-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-security-audit-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-security-base-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-security-base-l1-2-0.dll.so @@ -1435,10 +1404,19 @@ fi %{_libdir}/wine/esent.dll.so %{_libdir}/wine/evr.dll.so %{_libdir}/wine/explorerframe.dll.so +%{_libdir}/wine/ext-ms-win-gdi-dc-l1-2-0.dll.so %{_libdir}/wine/ext-ms-win-gdi-dc-create-l1-1-1.dll.so %{_libdir}/wine/ext-ms-win-gdi-devcaps-l1-1-0.dll.so +%{_libdir}/wine/ext-ms-win-gdi-draw-l1-1-1.dll.so +%{_libdir}/wine/ext-ms-win-gdi-render-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-ntuser-message-l1-1-1.dll.so +%{_libdir}/wine/ext-ms-win-ntuser-private-l1-1-1.dll.so +%{_libdir}/wine/ext-ms-win-ntuser-rectangle-ext-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-ntuser-uicontext-ext-l1-1-0.dll.so +%{_libdir}/wine/ext-ms-win-ntuser-window-l1-1-1.dll.so +%{_libdir}/wine/ext-ms-win-rtcore-gdi-object-l1-1-0.dll.so +%{_libdir}/wine/ext-ms-win-rtcore-gdi-rgn-l1-1-0.dll.so +%{_libdir}/wine/ext-ms-win-rtcore-ntuser-dc-access-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-rtcore-ntuser-dpi-l1-1-0.dll.so %if 0%{?compholio} %{_libdir}/wine/ext-ms-win-appmodel-usercontext-l1-1-0.dll.so @@ -1750,6 +1728,9 @@ fi %{_libdir}/wine/winehid.sys.so %{_libdir}/wine/winejoystick.drv.so %{_libdir}/wine/winemapi.dll.so +%if 0%{?fedora} > 24 +%{_libdir}/wine/winemp3.acm.so +%endif %{_libdir}/wine/winex11.drv.so %{_libdir}/wine/wing32.dll.so %{_libdir}/wine/winhttp.dll.so @@ -2043,12 +2024,12 @@ fi %if 0%{?fedora} >= 15 || 0%{?rhel} >= 7 %files systemd %config %{_binfmtdir}/wine.conf +%endif -%if 0%{?fedora} < 23 +%if 0%{?rhel} < 7 %files sysvinit %{_initrddir}/wine %endif -%endif # ldap subpackage %files ldap @@ -2113,6 +2094,12 @@ fi %endif %changelog +* Wed Nov 16 2016 Michael Cronenworth 1.9.23-1 +- version update +- remove old cruft in spec +- add hard cups-libs dependency (rhbz#1367537) +- include mp3 support (rhbz#1395711) + * Thu Nov 03 2016 Michael Cronenworth 1.9.22-1 - version update From 06fe78a978f0cdf8879efd339380ea9a0070e383 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 23 Nov 2016 09:04:26 -0600 Subject: [PATCH 397/715] Drop sysvinit on Fedora, again --- wine.spec | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/wine.spec b/wine.spec index 5c1b365..b5f86c1 100644 --- a/wine.spec +++ b/wine.spec @@ -22,7 +22,7 @@ Name: wine Version: 1.9.23 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -332,13 +332,14 @@ Requires: systemd >= 23 BuildArch: noarch Requires(post): systemd Requires(postun): systemd +Obsoletes: wine-sysvinit < %{version}-%{release} %description systemd Register the wine binary handler for windows executables via systemd binfmt handling. See man binfmt.d for further information. %endif -%if 0%{?rhel} < 7 +%if 0%{?rhel} == 6 %package sysvinit Summary: SysV initscript for the wine binfmt handler Group: Applications/Emulators @@ -377,7 +378,7 @@ Requires: wine-common = %{version}-%{release} %if 0%{?fedora} >= 15 || 0%{?rhel} >= 7 Requires: wine-systemd = %{version}-%{release} %endif -%if 0%{?rhel} < 7 +%if 0%{?rhel} == 6 Requires: wine-sysvinit = %{version}-%{release} %endif Requires: hicolor-icon-theme @@ -916,6 +917,10 @@ do iconv -f iso8859-1 -t utf-8 README.$lang > \ done; popd +%if 0%{?fedora} || 0%{?rhel} > 6 +rm -f %{buildroot}%{_initrddir}/wine +%endif + # wine makefiles are currently broken and don't install the wine man page install -p -m 0644 loader/wine.man %{buildroot}%{_mandir}/man1/wine.1 install -p -m 0644 loader/wine.de.UTF-8.man %{buildroot}%{_mandir}/de.UTF-8/man1/wine.1 @@ -924,7 +929,7 @@ mkdir -p %{buildroot}%{_mandir}/pl.UTF-8/man1 install -p -m 0644 loader/wine.pl.UTF-8.man %{buildroot}%{_mandir}/pl.UTF-8/man1/wine.1 -%if 0%{?rhel} < 7 +%if 0%{?rhel} == 6 %post sysvinit if [ $1 -eq 1 ]; then /sbin/chkconfig --add wine @@ -2026,7 +2031,7 @@ fi %config %{_binfmtdir}/wine.conf %endif -%if 0%{?rhel} < 7 +%if 0%{?rhel} == 6 %files sysvinit %{_initrddir}/wine %endif @@ -2094,6 +2099,9 @@ fi %endif %changelog +* Wed Nov 23 2016 Michael Cronenworth 1.9.23-2 +- drop sysvinit on Fedora, again + * Wed Nov 16 2016 Michael Cronenworth 1.9.23-1 - version update - remove old cruft in spec From bb0edb372deb9a845522d25eb6363c9cd3515489 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Thu, 15 Dec 2016 16:26:22 -0600 Subject: [PATCH 398/715] Update to 2.0-rc1 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 26 +++++++++++++++++++------- 3 files changed, 25 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index 7e137b4..ebfff69 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-1.9.23.tar.bz2 -/wine-1.9.23.tar.bz2.sign -/wine-staging-1.9.23.tar.gz +/wine-2.0-rc1.tar.bz2 +/wine-2.0-rc1.tar.bz2.sign +/wine-staging-2.0-rc1.tar.gz diff --git a/sources b/sources index 1b81b31..479af92 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -bb2a1490369dc08e48993b60b59233a8 wine-1.9.23.tar.bz2 -f1a5cd72568348fcc425f8fc683c4b2f wine-1.9.23.tar.bz2.sign -423d881fbadb60b52593d91fca23e1a1 wine-staging-1.9.23.tar.gz +SHA512 (wine-2.0-rc1.tar.bz2) = 052ec3cbdbf0b201d5afdd66c244fa834498396a444d657e357c9427b2a19171f77998586816a41b4471d080e81198b7df2d77b92095783bca37c70507b2e475 +SHA512 (wine-2.0-rc1.tar.bz2.sign) = f156c07c0cb94f8fd56185115c2c02d9d4a721031707d07862651c2dc8a67b1ff480048b6e4d3c535ef9487fefb1736ac754aaebadfc4a7b0f8041f24ba976fa +SHA512 (wine-staging-2.0-rc1.tar.gz) = 75e25930314ec8cc476cef675b72c34f2e210ef7fd585b44d06f2e88875dbe863abb7d6b29742f6cc413758f72dda7cc45c227a2e467b5cfff71150201ef5773 diff --git a/wine.spec b/wine.spec index b5f86c1..eae91a8 100644 --- a/wine.spec +++ b/wine.spec @@ -3,7 +3,7 @@ %global no64bit 0 %global winegecko 2.47 -%global winemono 4.6.3 +%global winemono 4.6.4 #global _default_patch_fuzz 2 # build with compholio-patches, see: http://www.compholio.com/wine-compholio/ @@ -21,15 +21,15 @@ %endif Name: wine -Version: 1.9.23 -Release: 2%{?dist} +Version: 2.0 +Release: 0.1.rc1%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -Source0: http://downloads.sourceforge.net/wine/wine-%{version}.tar.bz2 -Source10: http://downloads.sourceforge.net/wine/wine-%{version}.tar.bz2.sign +Source0: http://downloads.sourceforge.net/wine/wine-%{version}-rc1.tar.bz2 +Source10: http://downloads.sourceforge.net/wine/wine-%{version}-rc1.tar.bz2.sign Source1: wine.init Source2: wine.systemd @@ -71,7 +71,7 @@ Patch511: wine-cjk.patch # wine compholio patches for wine-staging # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/compholio/wine-compholio/archive/v%{version}.tar.gz#/wine-staging-%{version}.tar.gz +Source900: https://github.com/compholio/wine-compholio/archive/v%{version}.tar.gz#/wine-staging-%{version}-rc1.tar.gz %if !%{?no64bit} ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 @@ -660,7 +660,7 @@ This package adds the opencl driver for wine. %endif %prep -%setup -q -n wine-%{version} +%setup -q -n wine-%{version}-rc1 %patch511 -p1 -b.cjk # setup and apply wine-staging patches @@ -1153,11 +1153,13 @@ fi %{_libdir}/wine/advapi32.dll.so %{_libdir}/wine/advpack.dll.so %{_libdir}/wine/amstream.dll.so +%{_libdir}/wine/api-ms-win-appmodel-identity-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-appcompat-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-appinit-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-atoms-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-bem-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-com-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-com-private-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-console-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-console-l2-1-0.dll.so %{_libdir}/wine/api-ms-win-core-datetime-l1-1-0.dll.so @@ -1265,6 +1267,8 @@ fi %{_libdir}/wine/api-ms-win-crt-string-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-crt-time-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-crt-utility-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-devices-config-l1-1-1.dll.so +%{_libdir}/wine/api-ms-win-devices-query-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-downlevel-advapi32-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-downlevel-advapi32-l2-1-0.dll.so %{_libdir}/wine/api-ms-win-downlevel-normaliz-l1-1-0.dll.so @@ -1280,6 +1284,8 @@ fi %{_libdir}/wine/api-ms-win-eventing-provider-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-eventlog-legacy-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-ntuser-dc-access-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-power-base-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-power-setting-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-rtcore-ntuser-private-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-security-audit-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-security-base-l1-1-0.dll.so @@ -1287,6 +1293,8 @@ fi %{_libdir}/wine/api-ms-win-security-base-private-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-security-lsalookup-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-security-lsalookup-l1-1-1.dll.so +%{_libdir}/wine/api-ms-win-security-lsalookup-l2-1-1.dll.so +%{_libdir}/wine/api-ms-win-security-lsapolicy-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-security-sddl-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-service-core-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-service-core-l1-1-1.dll.so @@ -1409,6 +1417,7 @@ fi %{_libdir}/wine/esent.dll.so %{_libdir}/wine/evr.dll.so %{_libdir}/wine/explorerframe.dll.so +%{_libdir}/wine/ext-ms-win-domainjoin-netjoin-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-gdi-dc-l1-2-0.dll.so %{_libdir}/wine/ext-ms-win-gdi-dc-create-l1-1-1.dll.so %{_libdir}/wine/ext-ms-win-gdi-devcaps-l1-1-0.dll.so @@ -2099,6 +2108,9 @@ fi %endif %changelog +* Thu Dec 15 2016 Michael Cronenworth 2.0-0.1.rc1 +- version update + * Wed Nov 23 2016 Michael Cronenworth 1.9.23-2 - drop sysvinit on Fedora, again From 1e6b5198161be8cf047fb7187ab9b64dd2e160f4 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 21 Dec 2016 12:54:35 -0600 Subject: [PATCH 399/715] Update to 2.0-rc2 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 19 ++++++++++++++----- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index ebfff69..970c386 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-2.0-rc1.tar.bz2 -/wine-2.0-rc1.tar.bz2.sign -/wine-staging-2.0-rc1.tar.gz +/wine-2.0-rc2.tar.bz2 +/wine-2.0-rc2.tar.bz2.sign +/wine-staging-2.0-rc2.tar.gz diff --git a/sources b/sources index 479af92..245b41c 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-2.0-rc1.tar.bz2) = 052ec3cbdbf0b201d5afdd66c244fa834498396a444d657e357c9427b2a19171f77998586816a41b4471d080e81198b7df2d77b92095783bca37c70507b2e475 -SHA512 (wine-2.0-rc1.tar.bz2.sign) = f156c07c0cb94f8fd56185115c2c02d9d4a721031707d07862651c2dc8a67b1ff480048b6e4d3c535ef9487fefb1736ac754aaebadfc4a7b0f8041f24ba976fa -SHA512 (wine-staging-2.0-rc1.tar.gz) = 75e25930314ec8cc476cef675b72c34f2e210ef7fd585b44d06f2e88875dbe863abb7d6b29742f6cc413758f72dda7cc45c227a2e467b5cfff71150201ef5773 +SHA512 (wine-2.0-rc2.tar.bz2) = 89efaea78f5591089c922b22eec5426e8421e51edd55997a1e3ceee4bb32757c457856d7659b2829337bb9db4eea68cf2e1a06eff6b8b13c7c147472d13c1983 +SHA512 (wine-2.0-rc2.tar.bz2.sign) = 0bf7a90e67c2477045bbc144508b92655bc0bbe54bc914c56650b84f2e0babd3c788f60fde668fcbf1d1a52d9a3ac4306b5ad8cf261d5ae41eb8277babcd7a95 +SHA512 (wine-staging-2.0-rc2.tar.gz) = 791bea1f3b9a3843c3c8aad536ca6146e896cf77234d2a79dc408a6dd53c781f80d07f1a6cd869c836bfc1308daca916dc73f12b87de6df35d34006136133554 diff --git a/wine.spec b/wine.spec index eae91a8..9c587d1 100644 --- a/wine.spec +++ b/wine.spec @@ -22,14 +22,14 @@ Name: wine Version: 2.0 -Release: 0.1.rc1%{?dist} +Release: 0.1.rc2%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -Source0: http://downloads.sourceforge.net/wine/wine-%{version}-rc1.tar.bz2 -Source10: http://downloads.sourceforge.net/wine/wine-%{version}-rc1.tar.bz2.sign +Source0: http://downloads.sourceforge.net/wine/wine-%{version}-rc2.tar.bz2 +Source10: http://downloads.sourceforge.net/wine/wine-%{version}-rc2.tar.bz2.sign Source1: wine.init Source2: wine.systemd @@ -71,7 +71,7 @@ Patch511: wine-cjk.patch # wine compholio patches for wine-staging # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/compholio/wine-compholio/archive/v%{version}.tar.gz#/wine-staging-%{version}-rc1.tar.gz +Source900: https://github.com/compholio/wine-compholio/archive/v%{version}.tar.gz#/wine-staging-%{version}-rc2.tar.gz %if !%{?no64bit} ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 @@ -660,7 +660,7 @@ This package adds the opencl driver for wine. %endif %prep -%setup -q -n wine-%{version}-rc1 +%setup -q -n wine-%{version}-rc2 %patch511 -p1 -b.cjk # setup and apply wine-staging patches @@ -683,7 +683,13 @@ rm -rf patches/ # disable fortify as it breaks wine # http://bugs.winehq.org/show_bug.cgi?id=24606 # http://bugs.winehq.org/show_bug.cgi?id=25073 +%if 0%{?fedora} < 26 export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno-error" +%else +# https://bugzilla.redhat.com/show_bug.cgi?id=1406093 +export TEMP_CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-O2/-O1/'`" +export CFLAGS="`echo $TEMP_CFLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno-error" +%endif %configure \ --sysconfdir=%{_sysconfdir}/wine \ @@ -2108,6 +2114,9 @@ fi %endif %changelog +* Wed Dec 21 2016 Michael Cronenworth 2.0-0.1.rc2 +- version update + * Thu Dec 15 2016 Michael Cronenworth 2.0-0.1.rc1 - version update From 6bb2ecf5c36370b66b778e53dfbfdd2b62044744 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 27 Dec 2016 19:53:09 -0600 Subject: [PATCH 400/715] Update to 2.0-rc3 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 13 ++++++++----- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 970c386..b8e7de6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-2.0-rc2.tar.bz2 -/wine-2.0-rc2.tar.bz2.sign -/wine-staging-2.0-rc2.tar.gz +/wine-2.0-rc3.tar.bz2 +/wine-2.0-rc3.tar.bz2.sign +/wine-staging-2.0-rc3.tar.gz diff --git a/sources b/sources index 245b41c..15b9795 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-2.0-rc2.tar.bz2) = 89efaea78f5591089c922b22eec5426e8421e51edd55997a1e3ceee4bb32757c457856d7659b2829337bb9db4eea68cf2e1a06eff6b8b13c7c147472d13c1983 -SHA512 (wine-2.0-rc2.tar.bz2.sign) = 0bf7a90e67c2477045bbc144508b92655bc0bbe54bc914c56650b84f2e0babd3c788f60fde668fcbf1d1a52d9a3ac4306b5ad8cf261d5ae41eb8277babcd7a95 -SHA512 (wine-staging-2.0-rc2.tar.gz) = 791bea1f3b9a3843c3c8aad536ca6146e896cf77234d2a79dc408a6dd53c781f80d07f1a6cd869c836bfc1308daca916dc73f12b87de6df35d34006136133554 +SHA512 (wine-2.0-rc3.tar.bz2) = 75427e6734acdcd759bc90051b774e27d3dfed55ea8181f001365a6827509b60f4d6bd34ba2c0a3859eac65e784ac9746a2ea896fa63bf08203fbf857c609d20 +SHA512 (wine-2.0-rc3.tar.bz2.sign) = b5b09aeb1721f37a6224785749a1a2bec8575b083ced3e7be52215ee353cc405f8dc4669b46292894401b210fb9b8b48281cd120d97c497d148367308331fd3f +SHA512 (wine-staging-2.0-rc3.tar.gz) = ce86b808adf76f18838d5ba6aff859fa758756992fe66ea0173168ea5a438465890890b384c576babde4f108a3e3005073256738653c87623399f0e6db40c393 diff --git a/wine.spec b/wine.spec index 9c587d1..5ce6614 100644 --- a/wine.spec +++ b/wine.spec @@ -22,14 +22,14 @@ Name: wine Version: 2.0 -Release: 0.1.rc2%{?dist} +Release: 0.1.rc3%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -Source0: http://downloads.sourceforge.net/wine/wine-%{version}-rc2.tar.bz2 -Source10: http://downloads.sourceforge.net/wine/wine-%{version}-rc2.tar.bz2.sign +Source0: http://downloads.sourceforge.net/wine/wine-%{version}-rc3.tar.bz2 +Source10: http://downloads.sourceforge.net/wine/wine-%{version}-rc3.tar.bz2.sign Source1: wine.init Source2: wine.systemd @@ -71,7 +71,7 @@ Patch511: wine-cjk.patch # wine compholio patches for wine-staging # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/compholio/wine-compholio/archive/v%{version}.tar.gz#/wine-staging-%{version}-rc2.tar.gz +Source900: https://github.com/compholio/wine-compholio/archive/v%{version}.tar.gz#/wine-staging-%{version}-rc3.tar.gz %if !%{?no64bit} ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 @@ -660,7 +660,7 @@ This package adds the opencl driver for wine. %endif %prep -%setup -q -n wine-%{version}-rc2 +%setup -q -n wine-%{version}-rc3 %patch511 -p1 -b.cjk # setup and apply wine-staging patches @@ -2114,6 +2114,9 @@ fi %endif %changelog +* Tue Dec 27 2016 Michael Cronenworth 2.0-0.1.rc3 +- version update + * Wed Dec 21 2016 Michael Cronenworth 2.0-0.1.rc2 - version update From 1c1efd54dda24f0331a54f6e21d4b8d05b41c536 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 9 Jan 2017 09:16:11 -0600 Subject: [PATCH 401/715] Update to 2.0-rc4 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 13 ++++++++----- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index b8e7de6..43759d2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-2.0-rc3.tar.bz2 -/wine-2.0-rc3.tar.bz2.sign -/wine-staging-2.0-rc3.tar.gz +/wine-2.0-rc4.tar.bz2 +/wine-2.0-rc4.tar.bz2.sign +/wine-staging-2.0-rc4.tar.gz diff --git a/sources b/sources index 15b9795..411037c 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-2.0-rc3.tar.bz2) = 75427e6734acdcd759bc90051b774e27d3dfed55ea8181f001365a6827509b60f4d6bd34ba2c0a3859eac65e784ac9746a2ea896fa63bf08203fbf857c609d20 -SHA512 (wine-2.0-rc3.tar.bz2.sign) = b5b09aeb1721f37a6224785749a1a2bec8575b083ced3e7be52215ee353cc405f8dc4669b46292894401b210fb9b8b48281cd120d97c497d148367308331fd3f -SHA512 (wine-staging-2.0-rc3.tar.gz) = ce86b808adf76f18838d5ba6aff859fa758756992fe66ea0173168ea5a438465890890b384c576babde4f108a3e3005073256738653c87623399f0e6db40c393 +SHA512 (wine-2.0-rc4.tar.bz2) = 1da7e7bd04b6d8b4c190b7204c001939854ebd246f758e0d8c00e3a10ce3da121040ba8d4111bb0ce625dc24af14cefb25a7f148780fa5187571d1cc2b2cb1ba +SHA512 (wine-2.0-rc4.tar.bz2.sign) = 9f3fc55ff35cb1ba5174b7c4b6ce0f05dfd1ebd966e5574a52f81c4c9122676985414fb6e70618ed5980ba77dd2286d994a373b7d6703232e119e05df690ef66 +SHA512 (wine-staging-2.0-rc4.tar.gz) = d9fce5bdc795f04052f63591fc13802aaf7bf0eb1008a69573c2be04e19d56725a892daff3870f1052d6949f5a75bdff58ef8f55a8db4b1af9060867d4f9bc8a diff --git a/wine.spec b/wine.spec index 5ce6614..b895880 100644 --- a/wine.spec +++ b/wine.spec @@ -22,14 +22,14 @@ Name: wine Version: 2.0 -Release: 0.1.rc3%{?dist} +Release: 0.1.rc4%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -Source0: http://downloads.sourceforge.net/wine/wine-%{version}-rc3.tar.bz2 -Source10: http://downloads.sourceforge.net/wine/wine-%{version}-rc3.tar.bz2.sign +Source0: http://downloads.sourceforge.net/wine/wine-%{version}-rc4.tar.bz2 +Source10: http://downloads.sourceforge.net/wine/wine-%{version}-rc4.tar.bz2.sign Source1: wine.init Source2: wine.systemd @@ -71,7 +71,7 @@ Patch511: wine-cjk.patch # wine compholio patches for wine-staging # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/compholio/wine-compholio/archive/v%{version}.tar.gz#/wine-staging-%{version}-rc3.tar.gz +Source900: https://github.com/compholio/wine-compholio/archive/v%{version}.tar.gz#/wine-staging-%{version}-rc4.tar.gz %if !%{?no64bit} ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 @@ -660,7 +660,7 @@ This package adds the opencl driver for wine. %endif %prep -%setup -q -n wine-%{version}-rc3 +%setup -q -n wine-%{version}-rc4 %patch511 -p1 -b.cjk # setup and apply wine-staging patches @@ -2114,6 +2114,9 @@ fi %endif %changelog +* Mon Jan 09 2017 Michael Cronenworth 2.0-0.1.rc4 +- version update + * Tue Dec 27 2016 Michael Cronenworth 2.0-0.1.rc3 - version update From b0b8f24002d4c1215953af2e130232b6a5f37b22 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 16 Jan 2017 14:05:53 -0600 Subject: [PATCH 402/715] Update to 2.0-rc5 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 13 ++++++++----- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 43759d2..5d76b43 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-2.0-rc4.tar.bz2 -/wine-2.0-rc4.tar.bz2.sign -/wine-staging-2.0-rc4.tar.gz +/wine-2.0-rc5.tar.bz2 +/wine-2.0-rc5.tar.bz2.sign +/wine-staging-2.0-rc5.tar.gz diff --git a/sources b/sources index 411037c..0b71506 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-2.0-rc4.tar.bz2) = 1da7e7bd04b6d8b4c190b7204c001939854ebd246f758e0d8c00e3a10ce3da121040ba8d4111bb0ce625dc24af14cefb25a7f148780fa5187571d1cc2b2cb1ba -SHA512 (wine-2.0-rc4.tar.bz2.sign) = 9f3fc55ff35cb1ba5174b7c4b6ce0f05dfd1ebd966e5574a52f81c4c9122676985414fb6e70618ed5980ba77dd2286d994a373b7d6703232e119e05df690ef66 -SHA512 (wine-staging-2.0-rc4.tar.gz) = d9fce5bdc795f04052f63591fc13802aaf7bf0eb1008a69573c2be04e19d56725a892daff3870f1052d6949f5a75bdff58ef8f55a8db4b1af9060867d4f9bc8a +SHA512 (wine-2.0-rc5.tar.bz2) = 8aff06d88e7716ff7cc7af47bb10447da51725d182b46645f6a301656cbe87517a40156679ded43aae6452de07de653f07da93f1284f60168fd55c5f3e029200 +SHA512 (wine-2.0-rc5.tar.bz2.sign) = 1b5749e2b9d184f3ccb13b767b2505cb06156cb4cc0ab79f00993e54c26d7c808e0d4842acd9329df32c1747705e1a5b8bdc46d9dbb2842c22fd9101ab32bead +SHA512 (wine-staging-2.0-rc5.tar.gz) = faef895eb198d3a2f57f18cab8c4d55f5ec761538bb88c99bdd0017af680b23af12d76e0d67e8eb168ce8c651862de5b6932be0fb001cf0606f87d1bb928f7d8 diff --git a/wine.spec b/wine.spec index b895880..98e19e0 100644 --- a/wine.spec +++ b/wine.spec @@ -22,14 +22,14 @@ Name: wine Version: 2.0 -Release: 0.1.rc4%{?dist} +Release: 0.1.rc5%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -Source0: http://downloads.sourceforge.net/wine/wine-%{version}-rc4.tar.bz2 -Source10: http://downloads.sourceforge.net/wine/wine-%{version}-rc4.tar.bz2.sign +Source0: http://downloads.sourceforge.net/wine/wine-%{version}-rc5.tar.bz2 +Source10: http://downloads.sourceforge.net/wine/wine-%{version}-rc5.tar.bz2.sign Source1: wine.init Source2: wine.systemd @@ -71,7 +71,7 @@ Patch511: wine-cjk.patch # wine compholio patches for wine-staging # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/compholio/wine-compholio/archive/v%{version}.tar.gz#/wine-staging-%{version}-rc4.tar.gz +Source900: https://github.com/compholio/wine-compholio/archive/v%{version}.tar.gz#/wine-staging-%{version}-rc5.tar.gz %if !%{?no64bit} ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 @@ -660,7 +660,7 @@ This package adds the opencl driver for wine. %endif %prep -%setup -q -n wine-%{version}-rc4 +%setup -q -n wine-%{version}-rc5 %patch511 -p1 -b.cjk # setup and apply wine-staging patches @@ -2114,6 +2114,9 @@ fi %endif %changelog +* Mon Jan 16 2017 Michael Cronenworth 2.0-0.1.rc5 +- version update + * Mon Jan 09 2017 Michael Cronenworth 2.0-0.1.rc4 - version update From 1bbb7a4e94a3bc7dd413b0c72ee4b63d857343c3 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 23 Jan 2017 22:56:41 -0600 Subject: [PATCH 403/715] Update to 2.0-rc6 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 13 ++++++++----- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 5d76b43..ae5b340 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-2.0-rc5.tar.bz2 -/wine-2.0-rc5.tar.bz2.sign -/wine-staging-2.0-rc5.tar.gz +/wine-2.0-rc6.tar.bz2 +/wine-2.0-rc6.tar.bz2.sign +/wine-staging-2.0-rc6.tar.gz diff --git a/sources b/sources index 0b71506..5fad4c0 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-2.0-rc5.tar.bz2) = 8aff06d88e7716ff7cc7af47bb10447da51725d182b46645f6a301656cbe87517a40156679ded43aae6452de07de653f07da93f1284f60168fd55c5f3e029200 -SHA512 (wine-2.0-rc5.tar.bz2.sign) = 1b5749e2b9d184f3ccb13b767b2505cb06156cb4cc0ab79f00993e54c26d7c808e0d4842acd9329df32c1747705e1a5b8bdc46d9dbb2842c22fd9101ab32bead -SHA512 (wine-staging-2.0-rc5.tar.gz) = faef895eb198d3a2f57f18cab8c4d55f5ec761538bb88c99bdd0017af680b23af12d76e0d67e8eb168ce8c651862de5b6932be0fb001cf0606f87d1bb928f7d8 +SHA512 (wine-2.0-rc6.tar.bz2) = f7eb0e91a0bf0eb932c59bb3c6832fc145b8742fa7357abc525f3b8357a322bfd93ebb7f9934583623258605d014e8ff5b638617f7b38b87e2dbde6f17e14e51 +SHA512 (wine-2.0-rc6.tar.bz2.sign) = 1563c86fd75d49ca8b83a09a53562c4b6e908d7759c129fb641db9dd58a481f54e411aef8a9c759ec9d7765ec5ff71418341465d6459e4f9999bba2323dc8ce6 +SHA512 (wine-staging-2.0-rc6.tar.gz) = 901b813d714298e5c9c51234fdb35fba0483ae812b819417a350c243b0a182a50fc38a6946fcf76212e72a063b2e2d2a3256cc82a82d83bcd1e3d001176521ae diff --git a/wine.spec b/wine.spec index 98e19e0..9a8868e 100644 --- a/wine.spec +++ b/wine.spec @@ -22,14 +22,14 @@ Name: wine Version: 2.0 -Release: 0.1.rc5%{?dist} +Release: 0.1.rc6%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -Source0: http://downloads.sourceforge.net/wine/wine-%{version}-rc5.tar.bz2 -Source10: http://downloads.sourceforge.net/wine/wine-%{version}-rc5.tar.bz2.sign +Source0: http://downloads.sourceforge.net/wine/wine-%{version}-rc6.tar.bz2 +Source10: http://downloads.sourceforge.net/wine/wine-%{version}-rc6.tar.bz2.sign Source1: wine.init Source2: wine.systemd @@ -71,7 +71,7 @@ Patch511: wine-cjk.patch # wine compholio patches for wine-staging # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/compholio/wine-compholio/archive/v%{version}.tar.gz#/wine-staging-%{version}-rc5.tar.gz +Source900: https://github.com/compholio/wine-compholio/archive/v%{version}.tar.gz#/wine-staging-%{version}-rc6.tar.gz %if !%{?no64bit} ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 @@ -660,7 +660,7 @@ This package adds the opencl driver for wine. %endif %prep -%setup -q -n wine-%{version}-rc5 +%setup -q -n wine-%{version}-rc6 %patch511 -p1 -b.cjk # setup and apply wine-staging patches @@ -2114,6 +2114,9 @@ fi %endif %changelog +* Mon Jan 23 2017 Michael Cronenworth 2.0-0.1.rc6 +- version update + * Mon Jan 16 2017 Michael Cronenworth 2.0-0.1.rc5 - version update From 90d4ecabb5e01b3e5def2da84035edc528984b7f Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 25 Jan 2017 09:03:12 -0600 Subject: [PATCH 404/715] Update to 2.0 final --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 13 ++++++++----- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index ae5b340..6421fe8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-2.0-rc6.tar.bz2 -/wine-2.0-rc6.tar.bz2.sign -/wine-staging-2.0-rc6.tar.gz +/wine-2.0.tar.bz2 +/wine-2.0.tar.bz2.sign +/wine-staging-2.0.tar.gz diff --git a/sources b/sources index 5fad4c0..edd2fe3 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-2.0-rc6.tar.bz2) = f7eb0e91a0bf0eb932c59bb3c6832fc145b8742fa7357abc525f3b8357a322bfd93ebb7f9934583623258605d014e8ff5b638617f7b38b87e2dbde6f17e14e51 -SHA512 (wine-2.0-rc6.tar.bz2.sign) = 1563c86fd75d49ca8b83a09a53562c4b6e908d7759c129fb641db9dd58a481f54e411aef8a9c759ec9d7765ec5ff71418341465d6459e4f9999bba2323dc8ce6 -SHA512 (wine-staging-2.0-rc6.tar.gz) = 901b813d714298e5c9c51234fdb35fba0483ae812b819417a350c243b0a182a50fc38a6946fcf76212e72a063b2e2d2a3256cc82a82d83bcd1e3d001176521ae +SHA512 (wine-2.0.tar.bz2) = b0a57ba8202d9fc396e5bfb7a7718d6bababbed8f3351e7fdc36afa37f35a871e04903757618f73427aeb71a52b2d323977d79e48f8b38d636f23fd404441186 +SHA512 (wine-2.0.tar.bz2.sign) = 94bcfaa2a9019e03bbb855dea028a256029f0ba4ce83bfcdda0e73402c0df2edccc07d82274446f93ee30cc094b089db5b6739bb1a4e22ab2380e2949a2a5535 +SHA512 (wine-staging-2.0.tar.gz) = 51412299259d6e92c8993543d5fdb3239ebe31e0d1d715e0a9e8ce94b3139c0567b08ff1600d41be94f12427cbfccc2f6b6b2ed030535445c95618aaf6578580 diff --git a/wine.spec b/wine.spec index 9a8868e..c5003f8 100644 --- a/wine.spec +++ b/wine.spec @@ -22,14 +22,14 @@ Name: wine Version: 2.0 -Release: 0.1.rc6%{?dist} +Release: 1%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -Source0: http://downloads.sourceforge.net/wine/wine-%{version}-rc6.tar.bz2 -Source10: http://downloads.sourceforge.net/wine/wine-%{version}-rc6.tar.bz2.sign +Source0: http://downloads.sourceforge.net/wine/wine-%{version}.tar.bz2 +Source10: http://downloads.sourceforge.net/wine/wine-%{version}.tar.bz2.sign Source1: wine.init Source2: wine.systemd @@ -71,7 +71,7 @@ Patch511: wine-cjk.patch # wine compholio patches for wine-staging # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/compholio/wine-compholio/archive/v%{version}.tar.gz#/wine-staging-%{version}-rc6.tar.gz +Source900: https://github.com/compholio/wine-compholio/archive/v%{version}.tar.gz#/wine-staging-%{version}.tar.gz %if !%{?no64bit} ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 @@ -660,7 +660,7 @@ This package adds the opencl driver for wine. %endif %prep -%setup -q -n wine-%{version}-rc6 +%setup -q -n wine-%{version} %patch511 -p1 -b.cjk # setup and apply wine-staging patches @@ -2114,6 +2114,9 @@ fi %endif %changelog +* Wed Jan 25 2017 Michael Cronenworth 2.0-1 +- version update + * Mon Jan 23 2017 Michael Cronenworth 2.0-0.1.rc6 - version update From c3d92d0be4e5ad0f8d8ae9929874cd78c8665a2f Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Thu, 9 Feb 2017 20:37:05 -0600 Subject: [PATCH 405/715] Update to version 2.1 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 12 +++++++++--- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 6421fe8..4274eb8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-2.0.tar.bz2 -/wine-2.0.tar.bz2.sign -/wine-staging-2.0.tar.gz +/wine-2.1.tar.xz +/wine-2.1.tar.xz.sign +/wine-staging-2.1.tar.gz diff --git a/sources b/sources index edd2fe3..0dce49e 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-2.0.tar.bz2) = b0a57ba8202d9fc396e5bfb7a7718d6bababbed8f3351e7fdc36afa37f35a871e04903757618f73427aeb71a52b2d323977d79e48f8b38d636f23fd404441186 -SHA512 (wine-2.0.tar.bz2.sign) = 94bcfaa2a9019e03bbb855dea028a256029f0ba4ce83bfcdda0e73402c0df2edccc07d82274446f93ee30cc094b089db5b6739bb1a4e22ab2380e2949a2a5535 -SHA512 (wine-staging-2.0.tar.gz) = 51412299259d6e92c8993543d5fdb3239ebe31e0d1d715e0a9e8ce94b3139c0567b08ff1600d41be94f12427cbfccc2f6b6b2ed030535445c95618aaf6578580 +SHA512 (wine-2.1.tar.xz) = 03d678ee6e89c2804813f2827255fcf59e96ca9a45b7d8ac441cfc84f835e5e5689c70a79a41a04c631e1add7807fa4a5758acef3bd7aadfb2e92e68958c6ef6 +SHA512 (wine-2.1.tar.xz.sign) = 182d4603cc2ab65e81b45c2613713193fb67b76270f16e8522f74d569245cd374191b865ee617c80972d22c61d9763ae2c8a044b3941843573d4668d197a846a +SHA512 (wine-staging-2.1.tar.gz) = c64c48b265f0779c621a643ddbd2d12aaa548e4bff3b2b728280cdb9613214989911ee8ba5e46c7770f5f6430014a5da1c98e95d5008c1174bd14bf9ce5250db diff --git a/wine.spec b/wine.spec index c5003f8..7f361a4 100644 --- a/wine.spec +++ b/wine.spec @@ -21,15 +21,15 @@ %endif Name: wine -Version: 2.0 +Version: 2.1 Release: 1%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators License: LGPLv2+ URL: http://www.winehq.org/ -Source0: http://downloads.sourceforge.net/wine/wine-%{version}.tar.bz2 -Source10: http://downloads.sourceforge.net/wine/wine-%{version}.tar.bz2.sign +Source0: http://downloads.sourceforge.net/wine/wine-%{version}.tar.xz +Source10: http://downloads.sourceforge.net/wine/wine-%{version}.tar.xz.sign Source1: wine.init Source2: wine.systemd @@ -1516,6 +1516,7 @@ fi %{_libdir}/wine/mciseq.dll.so %{_libdir}/wine/mciwave.dll.so %{_libdir}/wine/mf.dll.so +%{_libdir}/wine/mf3216.dll.so %{_libdir}/wine/mfplat.dll.so %{_libdir}/wine/mfreadwrite.dll.so %{_libdir}/wine/mgmtapi.dll.so @@ -1658,6 +1659,7 @@ fi %{_libdir}/wine/scarddlg.dll.so %{_libdir}/wine/sccbase.dll.so %{_libdir}/wine/schannel.dll.so +%{_libdir}/wine/scrobj.dll.so %{_libdir}/wine/scrrun.dll.so %{_libdir}/wine/scsiport.sys.so %{_libdir}/wine/secur32.dll.so @@ -1769,6 +1771,7 @@ fi %{_libdir}/wine/winscard.dll.so %{_libdir}/wine/wintab32.dll.so %{_libdir}/wine/wintrust.dll.so +%{_libdir}/wine/winusb.dll.so %{_libdir}/wine/wlanapi.dll.so %{_libdir}/wine/wnaspi32.dll.so %{_libdir}/wine/wpc.dll.so @@ -2114,6 +2117,9 @@ fi %endif %changelog +* Thu Feb 09 2017 Michael Cronenworth 2.1-1 +- version update + * Wed Jan 25 2017 Michael Cronenworth 2.0-1 - version update From 6415898a833ea5f879de5f808879988ebe036593 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 20 Feb 2017 22:19:23 -0600 Subject: [PATCH 406/715] Update to 2.2 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 6 +++++- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 4274eb8..a6332c5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-2.1.tar.xz -/wine-2.1.tar.xz.sign -/wine-staging-2.1.tar.gz +/wine-2.2.tar.xz +/wine-2.2.tar.xz.sign +/wine-staging-2.2.tar.gz diff --git a/sources b/sources index 0dce49e..e6ca72e 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-2.1.tar.xz) = 03d678ee6e89c2804813f2827255fcf59e96ca9a45b7d8ac441cfc84f835e5e5689c70a79a41a04c631e1add7807fa4a5758acef3bd7aadfb2e92e68958c6ef6 -SHA512 (wine-2.1.tar.xz.sign) = 182d4603cc2ab65e81b45c2613713193fb67b76270f16e8522f74d569245cd374191b865ee617c80972d22c61d9763ae2c8a044b3941843573d4668d197a846a -SHA512 (wine-staging-2.1.tar.gz) = c64c48b265f0779c621a643ddbd2d12aaa548e4bff3b2b728280cdb9613214989911ee8ba5e46c7770f5f6430014a5da1c98e95d5008c1174bd14bf9ce5250db +SHA512 (wine-2.2.tar.xz) = 0700868244d397c1442948716321e5ff030c667edce464570f76aa4340199489a422872aa3975bc0a57b8285c9d59fc04e223a4bde094169fc6db460acb626c4 +SHA512 (wine-2.2.tar.xz.sign) = f642f9d105fd1abb0163dfe0ffe7258a1ab05c52703e08c2c446b5a97c781e0dd178498b5b5f69b02919ac686a101c0e4316eda8ddf6664e05e0245a844b49a2 +SHA512 (wine-staging-2.2.tar.gz) = 8ad3f8ba4c6439a9ec4884a55018a67c9e2c2384830074646aac7b70cb9f4f5a20f760247ab42dc3d2f697cdac7ea5322be8ed12c435cb0bc185ac08fdd4dd91 diff --git a/wine.spec b/wine.spec index 7f361a4..343a0a0 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ %endif Name: wine -Version: 2.1 +Version: 2.2 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1728,6 +1728,7 @@ fi %{_libdir}/wine/vcruntime140.dll.so %{_libdir}/wine/vdmdbg.dll.so %{_libdir}/wine/version.dll.so +%{_libdir}/wine/virtdisk.dll.so %{_libdir}/wine/vssapi.dll.so %if 0%{?compholio} %{_libdir}/wine/vulkan-1.dll.so @@ -2117,6 +2118,9 @@ fi %endif %changelog +* Mon Feb 20 2017 Michael Cronenworth 2.2-1 +- version update + * Thu Feb 09 2017 Michael Cronenworth 2.1-1 - version update From bd987e47dcbacb407a227e5dcbd386dadc646eac Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 6 Mar 2017 20:06:33 -0600 Subject: [PATCH 407/715] Update to 2.3 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 5 ++++- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index a6332c5..84fe9d0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-2.2.tar.xz -/wine-2.2.tar.xz.sign -/wine-staging-2.2.tar.gz +/wine-2.3.tar.xz +/wine-2.3.tar.xz.sign +/wine-staging-2.3.tar.gz diff --git a/sources b/sources index e6ca72e..a3f8993 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-2.2.tar.xz) = 0700868244d397c1442948716321e5ff030c667edce464570f76aa4340199489a422872aa3975bc0a57b8285c9d59fc04e223a4bde094169fc6db460acb626c4 -SHA512 (wine-2.2.tar.xz.sign) = f642f9d105fd1abb0163dfe0ffe7258a1ab05c52703e08c2c446b5a97c781e0dd178498b5b5f69b02919ac686a101c0e4316eda8ddf6664e05e0245a844b49a2 -SHA512 (wine-staging-2.2.tar.gz) = 8ad3f8ba4c6439a9ec4884a55018a67c9e2c2384830074646aac7b70cb9f4f5a20f760247ab42dc3d2f697cdac7ea5322be8ed12c435cb0bc185ac08fdd4dd91 +SHA512 (wine-2.3.tar.xz) = bea78e8468555ff9e08dedf3918da5ea82721549c43984869989bbdafeea00e454820ff9558aa29925c97a165a9b01e5cd1fd397f133833c58824984a6686171 +SHA512 (wine-2.3.tar.xz.sign) = 354b4c7a4c26deb5b8e4e384cab46c2088cfd35c664fcdab1573318ee134e27b34175c08757b69ad2acae8248760f90f71afe27552459d0ec86f13f9f3184adb +SHA512 (wine-staging-2.3.tar.gz) = 8e8af1e36cc69c63ec3542f0ec4db18b6d8c16b5c9077eb211297f3a886519da71bcf72934bf8d6d72e44c7c9f765e1d00203d0d75cab8544f69f9b0c10a7133 diff --git a/wine.spec b/wine.spec index 343a0a0..ae3e87a 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ %endif Name: wine -Version: 2.2 +Version: 2.3 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -2118,6 +2118,9 @@ fi %endif %changelog +* Mon Mar 06 2017 Michael Cronenworth 2.3-1 +- version update + * Mon Feb 20 2017 Michael Cronenworth 2.2-1 - version update From 8742eea3b80f019598d6d7bfc8ed7bb3ab0750e4 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Thu, 23 Mar 2017 09:05:53 -0500 Subject: [PATCH 408/715] Update to 2.4 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 5 ++++- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 84fe9d0..764935a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-2.3.tar.xz -/wine-2.3.tar.xz.sign -/wine-staging-2.3.tar.gz +/wine-2.4.tar.xz +/wine-2.4.tar.xz.sign +/wine-staging-2.4.tar.gz diff --git a/sources b/sources index a3f8993..78fe763 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-2.3.tar.xz) = bea78e8468555ff9e08dedf3918da5ea82721549c43984869989bbdafeea00e454820ff9558aa29925c97a165a9b01e5cd1fd397f133833c58824984a6686171 -SHA512 (wine-2.3.tar.xz.sign) = 354b4c7a4c26deb5b8e4e384cab46c2088cfd35c664fcdab1573318ee134e27b34175c08757b69ad2acae8248760f90f71afe27552459d0ec86f13f9f3184adb -SHA512 (wine-staging-2.3.tar.gz) = 8e8af1e36cc69c63ec3542f0ec4db18b6d8c16b5c9077eb211297f3a886519da71bcf72934bf8d6d72e44c7c9f765e1d00203d0d75cab8544f69f9b0c10a7133 +SHA512 (wine-2.4.tar.xz) = 15ae7e97dc72a8636b2c15c93803ed430fa456d673add61457cf3e479e769559c682b40949b5d38828f6681f13183e560fcb4a2eb0f0ba25e6eade46f7d3d7c0 +SHA512 (wine-2.4.tar.xz.sign) = ee001890dacd245f35fff0426b6f545120bc8125595e7b94c148a8a123c050875f12bde316873a28f00e8d9ad8e38ec2849ecb5977c49fb4fb38d4eee266575c +SHA512 (wine-staging-2.4.tar.gz) = 55d11851697836b582ba54696cadc812ef6b14872440f5c3ed6fbe30a05abcb8abe2ab31a11ea4daeb354854c7c0e6549401d4b26b26621808bdeb89aeb206f9 diff --git a/wine.spec b/wine.spec index ae3e87a..2b8e5cd 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ %endif Name: wine -Version: 2.3 +Version: 2.4 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -2118,6 +2118,9 @@ fi %endif %changelog +* Thu Mar 23 2017 Michael Cronenworth 2.4-1 +- version update + * Mon Mar 06 2017 Michael Cronenworth 2.3-1 - version update From 7db1c0e7297d9d500652a680652a8cbc00b30817 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Thu, 23 Mar 2017 15:59:17 -0500 Subject: [PATCH 409/715] Update wine-mono requirement --- wine.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/wine.spec b/wine.spec index 2b8e5cd..ad25f1c 100644 --- a/wine.spec +++ b/wine.spec @@ -3,7 +3,7 @@ %global no64bit 0 %global winegecko 2.47 -%global winemono 4.6.4 +%global winemono 4.7.0 #global _default_patch_fuzz 2 # build with compholio-patches, see: http://www.compholio.com/wine-compholio/ @@ -22,7 +22,7 @@ Name: wine Version: 2.4 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -2118,6 +2118,9 @@ fi %endif %changelog +* Thu Mar 23 2017 Michael Cronenworth 2.4-2 +- update wine-mono requirement + * Thu Mar 23 2017 Michael Cronenworth 2.4-1 - version update From d6f816c7468a4e097c29576df3f4025b432c39db Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 10 Apr 2017 23:31:23 -0500 Subject: [PATCH 410/715] Update to 2.5 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 14 ++++++++++++-- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index 764935a..19d7411 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-2.4.tar.xz -/wine-2.4.tar.xz.sign -/wine-staging-2.4.tar.gz +/wine-2.5.tar.xz +/wine-2.5.tar.xz.sign +/wine-staging-2.5.tar.gz diff --git a/sources b/sources index 78fe763..bb16151 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-2.4.tar.xz) = 15ae7e97dc72a8636b2c15c93803ed430fa456d673add61457cf3e479e769559c682b40949b5d38828f6681f13183e560fcb4a2eb0f0ba25e6eade46f7d3d7c0 -SHA512 (wine-2.4.tar.xz.sign) = ee001890dacd245f35fff0426b6f545120bc8125595e7b94c148a8a123c050875f12bde316873a28f00e8d9ad8e38ec2849ecb5977c49fb4fb38d4eee266575c -SHA512 (wine-staging-2.4.tar.gz) = 55d11851697836b582ba54696cadc812ef6b14872440f5c3ed6fbe30a05abcb8abe2ab31a11ea4daeb354854c7c0e6549401d4b26b26621808bdeb89aeb206f9 +SHA512 (wine-2.5.tar.xz) = 7b6faf6d8aa3d41465ad93ebae055581136f736c7eb8b4c61682e5a05589c83a0ff2c85e0f9abbca016f31b6f1c1435617c4994f1913f715a8707ebee3f28467 +SHA512 (wine-2.5.tar.xz.sign) = f275bb0fe95d17da96700dd42aa93d60e4cc04c2b2f3888bfe31ea64ffdcda9e5054dc401a821227a0fdd97c38f2645b9644145fc771ef89aadc5aac154e5676 +SHA512 (wine-staging-2.5.tar.gz) = 6ab981886776f624c6478230aad18870f55b7252f1c6df90bfe1a248f7ea76cbb181f8e0780fdd4bb5e3c589a785baa7cf126a2c838adf65db2a67f873ed1698 diff --git a/wine.spec b/wine.spec index ad25f1c..074dc68 100644 --- a/wine.spec +++ b/wine.spec @@ -21,8 +21,8 @@ %endif Name: wine -Version: 2.4 -Release: 2%{?dist} +Version: 2.5 +Release: 1%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -1226,6 +1226,7 @@ fi %{_libdir}/wine/api-ms-win-core-psapi-obsolete-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-realtime-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-registry-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-registry-l2-1-0.dll.so %{_libdir}/wine/api-ms-win-core-registryuserspecific-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-rtlsupport-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-rtlsupport-l1-2-0.dll.so @@ -1243,6 +1244,7 @@ fi %{_libdir}/wine/api-ms-win-core-sysinfo-l1-2-1.dll.so %{_libdir}/wine/api-ms-win-core-threadpool-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-threadpool-legacy-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-threadpool-private-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-timezone-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-toolhelp-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-url-l1-1-0.dll.so @@ -1255,6 +1257,7 @@ fi %{_libdir}/wine/api-ms-win-core-winrt-error-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-winrt-errorprivate-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-winrt-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-winrt-string-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-xstate-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-xstate-l2-1-0.dll.so @@ -1289,6 +1292,8 @@ fi %{_libdir}/wine/api-ms-win-eventing-controller-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-eventing-provider-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-eventlog-legacy-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-mm-misc-l1-1-1.dll.so +%{_libdir}/wine/api-ms-win-mm-mme-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-ntuser-dc-access-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-power-base-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-power-setting-l1-1-0.dll.so @@ -1297,11 +1302,13 @@ fi %{_libdir}/wine/api-ms-win-security-base-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-security-base-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-security-base-private-l1-1-1.dll.so +%{_libdir}/wine/api-ms-win-security-grouppolicy-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-security-lsalookup-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-security-lsalookup-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-security-lsalookup-l2-1-1.dll.so %{_libdir}/wine/api-ms-win-security-lsapolicy-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-security-sddl-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-security-systemfunctions-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-service-core-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-service-core-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-service-management-l1-1-0.dll.so @@ -2118,6 +2125,9 @@ fi %endif %changelog +* Mon Apr 10 2017 Michael Cronenworth 2.5-1 +- version update + * Thu Mar 23 2017 Michael Cronenworth 2.4-2 - update wine-mono requirement From 605bb49f5626d4814be7d920cc3f28e2def2497f Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 19 Apr 2017 21:36:09 -0500 Subject: [PATCH 411/715] Update to 2.6 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 7 ++++++- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 19d7411..8cfafbe 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-2.5.tar.xz -/wine-2.5.tar.xz.sign -/wine-staging-2.5.tar.gz +/wine-2.6.tar.xz +/wine-2.6.tar.xz.sign +/wine-staging-2.6.tar.gz diff --git a/sources b/sources index bb16151..1db6453 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-2.5.tar.xz) = 7b6faf6d8aa3d41465ad93ebae055581136f736c7eb8b4c61682e5a05589c83a0ff2c85e0f9abbca016f31b6f1c1435617c4994f1913f715a8707ebee3f28467 -SHA512 (wine-2.5.tar.xz.sign) = f275bb0fe95d17da96700dd42aa93d60e4cc04c2b2f3888bfe31ea64ffdcda9e5054dc401a821227a0fdd97c38f2645b9644145fc771ef89aadc5aac154e5676 -SHA512 (wine-staging-2.5.tar.gz) = 6ab981886776f624c6478230aad18870f55b7252f1c6df90bfe1a248f7ea76cbb181f8e0780fdd4bb5e3c589a785baa7cf126a2c838adf65db2a67f873ed1698 +SHA512 (wine-2.6.tar.xz) = 2aa55413ac090e011725566d004e42ee46323cd4c6961b9faa63e3de422ba60bb657bf224a4d7e8aa712a8e26e11977d07acb7c088ffeef8c37310e8cc698970 +SHA512 (wine-2.6.tar.xz.sign) = 0c51e27136a490e031cd4509b7b85c27e9e4092412f003f88d1666668aec2e0c65c981579ca819cf2e6a30816111808ca411bc596d06b6a8008891a9ff6efa55 +SHA512 (wine-staging-2.6.tar.gz) = dc199b5345985d261b708ac811b02253ab9fbc4966889f2382ce518d991fe43b7c771c1d56d055c6234c9329d5c571cd9cf0b16587b77124b9c46917ddd066d2 diff --git a/wine.spec b/wine.spec index 074dc68..ab8ce34 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ %endif Name: wine -Version: 2.5 +Version: 2.6 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1602,6 +1602,7 @@ fi %{_libdir}/wine/msxml3.dll.so %{_libdir}/wine/msxml4.dll.so %{_libdir}/wine/msxml6.dll.so +%{_libdir}/wine/mtxdm.dll.so %{_libdir}/wine/nddeapi.dll.so %{_libdir}/wine/ncrypt.dll.so %{_libdir}/wine/ndis.sys.so @@ -1785,6 +1786,7 @@ fi %{_libdir}/wine/wpc.dll.so %{_libdir}/wine/wpcap.dll.so %{_libdir}/wine/ws2_32.dll.so +%{_libdir}/wine/wsdapi.dll.so %{_libdir}/wine/wshom.ocx.so %{_libdir}/wine/wsnmp32.dll.so %{_libdir}/wine/wsock32.dll.so @@ -2125,6 +2127,9 @@ fi %endif %changelog +* Wed Apr 19 2017 Michael Cronenworth 2.6-1 +- version update + * Mon Apr 10 2017 Michael Cronenworth 2.5-1 - version update From 82e777ca94b98b26dc7836f55991f2c52a89bb97 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 2 May 2017 18:13:17 -0500 Subject: [PATCH 412/715] Update to 2.7 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 5 ++++- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 8cfafbe..50fcc90 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-2.6.tar.xz -/wine-2.6.tar.xz.sign -/wine-staging-2.6.tar.gz +/wine-2.7.tar.xz +/wine-2.7.tar.xz.sign +/wine-staging-2.7.tar.gz diff --git a/sources b/sources index 1db6453..61c7171 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-2.6.tar.xz) = 2aa55413ac090e011725566d004e42ee46323cd4c6961b9faa63e3de422ba60bb657bf224a4d7e8aa712a8e26e11977d07acb7c088ffeef8c37310e8cc698970 -SHA512 (wine-2.6.tar.xz.sign) = 0c51e27136a490e031cd4509b7b85c27e9e4092412f003f88d1666668aec2e0c65c981579ca819cf2e6a30816111808ca411bc596d06b6a8008891a9ff6efa55 -SHA512 (wine-staging-2.6.tar.gz) = dc199b5345985d261b708ac811b02253ab9fbc4966889f2382ce518d991fe43b7c771c1d56d055c6234c9329d5c571cd9cf0b16587b77124b9c46917ddd066d2 +SHA512 (wine-2.7.tar.xz) = 1e61b9a4aa1f5f42fb27d11d5254a9ba90f348ad9c4d1ddd4b5da47cd7de638290a20accf7447db9c0e4ced4c2144497cdf5fc906a5eac60e923dabb61f65d3a +SHA512 (wine-2.7.tar.xz.sign) = b03f4376b10bd8ea66e5e6fc0862a4f948e009862a374677c326744b31c9d9fdcf1efd3b789149fcb6fe617f9c75b1b47d61f884e06e8c0fe16633a99911b667 +SHA512 (wine-staging-2.7.tar.gz) = 0abc89af701ae1b95c0eb08e72894c7bc40bdfe792e05b8af9282eab8407bb90b7dfcd4eb3a193a88759ce5d6ea6c2aa9696cac2d744f543c92529bb0d2636ee diff --git a/wine.spec b/wine.spec index ab8ce34..00e305d 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ %endif Name: wine -Version: 2.6 +Version: 2.7 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -2127,6 +2127,9 @@ fi %endif %changelog +* Tue May 02 2017 Michael Cronenworth 2.7-1 +- version update + * Wed Apr 19 2017 Michael Cronenworth 2.6-1 - version update From abdd11be8d2873362e073ecdc5aafbca0b49b6e5 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 16 May 2017 20:16:37 -0500 Subject: [PATCH 413/715] Update to 2.8 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 6 +++++- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 50fcc90..b11ee6d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-2.7.tar.xz -/wine-2.7.tar.xz.sign -/wine-staging-2.7.tar.gz +/wine-2.8.tar.xz +/wine-2.8.tar.xz.sign +/wine-staging-2.8.tar.gz diff --git a/sources b/sources index 61c7171..8a5a585 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-2.7.tar.xz) = 1e61b9a4aa1f5f42fb27d11d5254a9ba90f348ad9c4d1ddd4b5da47cd7de638290a20accf7447db9c0e4ced4c2144497cdf5fc906a5eac60e923dabb61f65d3a -SHA512 (wine-2.7.tar.xz.sign) = b03f4376b10bd8ea66e5e6fc0862a4f948e009862a374677c326744b31c9d9fdcf1efd3b789149fcb6fe617f9c75b1b47d61f884e06e8c0fe16633a99911b667 -SHA512 (wine-staging-2.7.tar.gz) = 0abc89af701ae1b95c0eb08e72894c7bc40bdfe792e05b8af9282eab8407bb90b7dfcd4eb3a193a88759ce5d6ea6c2aa9696cac2d744f543c92529bb0d2636ee +SHA512 (wine-2.8.tar.xz) = 4d0b167b1e5add31ed0ed05b328d16fc13cd268285c03a9100e7ddc53864aa07f6b216a555ef0c2e51dee550e3f4abf0c7c20db2cbca177bb38e8c3e11f05b97 +SHA512 (wine-2.8.tar.xz.sign) = b404a728321a14bb88f5fcb49d26caaa0d7d9d0dac061da249c6c490ebaa3c552cb5987a542fab6ff926630181cf40d1d0f9bd658bbb09ab9685f96e6ba9b7ca +SHA512 (wine-staging-2.8.tar.gz) = af1707fe3119664a0d97d94fc4c955612d80cb76eae8c4248a268c0f6be9e659fccf7c26899c9e9ae5822f74474c0db5283b598dd4d9d69a3b108f947653217a diff --git a/wine.spec b/wine.spec index 00e305d..826220a 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ %endif Name: wine -Version: 2.7 +Version: 2.8 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1430,6 +1430,7 @@ fi %{_libdir}/wine/esent.dll.so %{_libdir}/wine/evr.dll.so %{_libdir}/wine/explorerframe.dll.so +%{_libdir}/wine/ext-ms-win-authz-context-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-domainjoin-netjoin-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-gdi-dc-l1-2-0.dll.so %{_libdir}/wine/ext-ms-win-gdi-dc-create-l1-1-1.dll.so @@ -2127,6 +2128,9 @@ fi %endif %changelog +* Tue May 16 2017 Michael Cronenworth 2.8-1 +- version update + * Tue May 02 2017 Michael Cronenworth 2.7-1 - version update From 0b1d25408dcd3e4b7b7cdd85e7f4b66cc2d915cc Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 29 May 2017 16:10:18 -0500 Subject: [PATCH 414/715] Update to 2.9 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 5 ++++- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index b11ee6d..ab12f4b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-2.8.tar.xz -/wine-2.8.tar.xz.sign -/wine-staging-2.8.tar.gz +/wine-2.9.tar.xz +/wine-2.9.tar.xz.sign +/wine-staging-2.9.tar.gz diff --git a/sources b/sources index 8a5a585..d70cccf 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-2.8.tar.xz) = 4d0b167b1e5add31ed0ed05b328d16fc13cd268285c03a9100e7ddc53864aa07f6b216a555ef0c2e51dee550e3f4abf0c7c20db2cbca177bb38e8c3e11f05b97 -SHA512 (wine-2.8.tar.xz.sign) = b404a728321a14bb88f5fcb49d26caaa0d7d9d0dac061da249c6c490ebaa3c552cb5987a542fab6ff926630181cf40d1d0f9bd658bbb09ab9685f96e6ba9b7ca -SHA512 (wine-staging-2.8.tar.gz) = af1707fe3119664a0d97d94fc4c955612d80cb76eae8c4248a268c0f6be9e659fccf7c26899c9e9ae5822f74474c0db5283b598dd4d9d69a3b108f947653217a +SHA512 (wine-2.9.tar.xz) = 6d06e511d8f338297ed0ddb7bf2ffb501f528209eaecbbee3d4e5d53db649dd5ea0aeb78bba661a9bcfda5f97e170ca10eb8fab355e229bfe7db6a5feb7ec4e8 +SHA512 (wine-2.9.tar.xz.sign) = 04ab13d5bbde00b5af1c0ad255352f0b62b7a992f25d15ae1adc2e714e314a8e65d710faa7b8c2cda066ac4e890f7a5f8f5b73b2e218ba149524dc56a80d3308 +SHA512 (wine-staging-2.9.tar.gz) = 7862a403817791c54c5c1b8f233b06a850500305c46283bccb9026fb6db041a8fba619d145ab21fe2fdc5f25ed3bbb75fde05245fbbbd67139a5f64b547b1196 diff --git a/wine.spec b/wine.spec index 826220a..2d1f51d 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ %endif Name: wine -Version: 2.8 +Version: 2.9 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -2128,6 +2128,9 @@ fi %endif %changelog +* Mon May 29 2017 Michael Cronenworth 2.9-1 +- version update + * Tue May 16 2017 Michael Cronenworth 2.8-1 - version update From 33fd1b0ad7bb9fd3be656c9bb005b0c4ed67dbfc Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 13 Jun 2017 18:18:42 -0500 Subject: [PATCH 415/715] Update to 2.10 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 15 ++++++++++++++- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index ab12f4b..736d3c7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-2.9.tar.xz -/wine-2.9.tar.xz.sign -/wine-staging-2.9.tar.gz +/wine-2.10.tar.xz +/wine-2.10.tar.xz.sign +/wine-staging-2.10.tar.gz diff --git a/sources b/sources index d70cccf..4f18f3e 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-2.9.tar.xz) = 6d06e511d8f338297ed0ddb7bf2ffb501f528209eaecbbee3d4e5d53db649dd5ea0aeb78bba661a9bcfda5f97e170ca10eb8fab355e229bfe7db6a5feb7ec4e8 -SHA512 (wine-2.9.tar.xz.sign) = 04ab13d5bbde00b5af1c0ad255352f0b62b7a992f25d15ae1adc2e714e314a8e65d710faa7b8c2cda066ac4e890f7a5f8f5b73b2e218ba149524dc56a80d3308 -SHA512 (wine-staging-2.9.tar.gz) = 7862a403817791c54c5c1b8f233b06a850500305c46283bccb9026fb6db041a8fba619d145ab21fe2fdc5f25ed3bbb75fde05245fbbbd67139a5f64b547b1196 +SHA512 (wine-2.10.tar.xz) = 8807e16a571bf45d99097ad5fdfb9fe755f6dbe84010a330fed82f1d48c76b7f19589bfc0e5dde0b9e49a608fd0501db3f7e3e129e4d9d34bcae03bc51a73139 +SHA512 (wine-2.10.tar.xz.sign) = 7ec97c70ff58e22a924ebe1cc29a9e03ebdaa233e29103e9e100c9ea1bc0a35556654fb555c72b213f62f62370f0d817a8f2b6d64374685d296505a2655e6572 +SHA512 (wine-staging-2.10.tar.gz) = c3bf7027ddfd1405263cce844a7cbeb923e9de56cffdb296384449c0cc600b3c9a37c7fe09b62fb9ae0b47f97a2d4f208cc589f0e4205fa84ce5d112953ac2e7 diff --git a/wine.spec b/wine.spec index 2d1f51d..44fc0c7 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ %endif Name: wine -Version: 2.9 +Version: 2.10 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1156,6 +1156,7 @@ fi %{_libdir}/wine/aclui.dll.so %{_libdir}/wine/activeds.dll.so %{_libdir}/wine/actxprxy.dll.so +%{_libdir}/wine/adsldpc.dll.so %{_libdir}/wine/advapi32.dll.so %{_libdir}/wine/advpack.dll.so %{_libdir}/wine/amstream.dll.so @@ -1298,6 +1299,7 @@ fi %{_libdir}/wine/api-ms-win-power-base-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-power-setting-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-rtcore-ntuser-private-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-security-activedirectoryclient-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-security-audit-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-security-base-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-security-base-l1-2-0.dll.so @@ -1426,6 +1428,10 @@ fi %{_libdir}/wine/dwrite.dll.so %{_libdir}/wine/dxdiagn.dll.so %{_libdir}/wine/dxgi.dll.so +%if 0%{?compholio} +%{_libdir}/wine/dxgkrnl.sys.so +%{_libdir}/wine/dxgmms1.sys.so +%endif %{_libdir}/wine/dxva2.dll.so %{_libdir}/wine/esent.dll.so %{_libdir}/wine/evr.dll.so @@ -1706,6 +1712,7 @@ fi %{_libdir}/wine/tapi32.dll.so %{_libdir}/wine/taskkill.exe.so %{_libdir}/wine/taskschd.dll.so +%{_libdir}/wine/tdh.dll.so %if 0%{?compholio} %{_libdir}/wine/tdi.sys.so %endif @@ -1750,6 +1757,9 @@ fi %{_libdir}/wine/wevtapi.dll.so %{_libdir}/wine/wiaservc.dll.so %{_libdir}/wine/wimgapi.dll.so +%if 0%{?compholio} +%{_libdir}/wine/win32k.sys.so +%endif %{_libdir}/wine/windowscodecs.dll.so %{_libdir}/wine/windowscodecsext.dll.so %{_libdir}/wine/winebus.sys.so @@ -2128,6 +2138,9 @@ fi %endif %changelog +* Tue Jun 13 2017 Michael Cronenworth 2.10-1 +- version update + * Mon May 29 2017 Michael Cronenworth 2.9-1 - version update From ee805e4cb8b86f2776bafdb554b6d0681471a49c Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 27 Jun 2017 21:35:31 -0500 Subject: [PATCH 416/715] Update to 2.11 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 8 +++++++- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 736d3c7..35b48a4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-2.10.tar.xz -/wine-2.10.tar.xz.sign -/wine-staging-2.10.tar.gz +/wine-2.11.tar.xz +/wine-2.11.tar.xz.sign +/wine-staging-2.11.tar.gz diff --git a/sources b/sources index 4f18f3e..fdc1d3c 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-2.10.tar.xz) = 8807e16a571bf45d99097ad5fdfb9fe755f6dbe84010a330fed82f1d48c76b7f19589bfc0e5dde0b9e49a608fd0501db3f7e3e129e4d9d34bcae03bc51a73139 -SHA512 (wine-2.10.tar.xz.sign) = 7ec97c70ff58e22a924ebe1cc29a9e03ebdaa233e29103e9e100c9ea1bc0a35556654fb555c72b213f62f62370f0d817a8f2b6d64374685d296505a2655e6572 -SHA512 (wine-staging-2.10.tar.gz) = c3bf7027ddfd1405263cce844a7cbeb923e9de56cffdb296384449c0cc600b3c9a37c7fe09b62fb9ae0b47f97a2d4f208cc589f0e4205fa84ce5d112953ac2e7 +SHA512 (wine-2.11.tar.xz) = 691f329c47af5e51498287029988b8ca0777bfc3902ed80fd315004aba2337a938e79177e752efe86423c9b34544df3952b8c443bf43149356575fac75a779ac +SHA512 (wine-2.11.tar.xz.sign) = f6ae1a0891a0a43f2cd77fd5b32213ae481e0e25d58db7487a7345fb29871caabd06a022dfab7a6d5137d7868f69a8198449c157db211de3d7ae32bfc0de723b +SHA512 (wine-staging-2.11.tar.gz) = e2d05ee88e1cc932c2890f1db867a9382f2c62a00ea7d63fc6bd7b3fab57ea2f0e4908313cbed08b92e48d5bc17753b0b78f6cdf2cb64e81aa5725fd86cbc695 diff --git a/wine.spec b/wine.spec index 44fc0c7..36a59e9 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ %endif Name: wine -Version: 2.10 +Version: 2.11 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1169,6 +1169,8 @@ fi %{_libdir}/wine/api-ms-win-core-com-private-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-console-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-console-l2-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-crt-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-crt-l2-1-0.dll.so %{_libdir}/wine/api-ms-win-core-datetime-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-datetime-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-debug-l1-1-0.dll.so @@ -1304,6 +1306,7 @@ fi %{_libdir}/wine/api-ms-win-security-base-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-security-base-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-security-base-private-l1-1-1.dll.so +%{_libdir}/wine/api-ms-win-security-credentials-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-security-grouppolicy-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-security-lsalookup-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-security-lsalookup-l1-1-1.dll.so @@ -2138,6 +2141,9 @@ fi %endif %changelog +* Tue Jun 27 2017 Michael Cronenworth 2.11-1 +- version update + * Tue Jun 13 2017 Michael Cronenworth 2.10-1 - version update From aa182109cc1e78a6757a7b0ccdf4e0edeadf5885 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 12 Jul 2017 09:52:46 -0500 Subject: [PATCH 417/715] Update to 2.12 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 10 +++++++++- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 35b48a4..aed0ea7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-2.11.tar.xz -/wine-2.11.tar.xz.sign -/wine-staging-2.11.tar.gz +/wine-2.12.tar.xz +/wine-2.12.tar.xz.sign +/wine-staging-2.12.tar.gz diff --git a/sources b/sources index fdc1d3c..8da0305 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-2.11.tar.xz) = 691f329c47af5e51498287029988b8ca0777bfc3902ed80fd315004aba2337a938e79177e752efe86423c9b34544df3952b8c443bf43149356575fac75a779ac -SHA512 (wine-2.11.tar.xz.sign) = f6ae1a0891a0a43f2cd77fd5b32213ae481e0e25d58db7487a7345fb29871caabd06a022dfab7a6d5137d7868f69a8198449c157db211de3d7ae32bfc0de723b -SHA512 (wine-staging-2.11.tar.gz) = e2d05ee88e1cc932c2890f1db867a9382f2c62a00ea7d63fc6bd7b3fab57ea2f0e4908313cbed08b92e48d5bc17753b0b78f6cdf2cb64e81aa5725fd86cbc695 +SHA512 (wine-2.12.tar.xz) = d44c1937d7d2d797150381f70317b810616d61355a59be096366d3507f59b678cffaf6d841cecf02bf9d2afa3dbf4d19270f80fb1d3ba5f0f93787d40c328f62 +SHA512 (wine-2.12.tar.xz.sign) = e9aa69bc2e870a2317e9047f569518bb44fc24717209dcd2c8c87f8aecd3ecb945db3f02e73e612cdbaae610b78f94de34fa3df5bffbb725d5417c1291866cf8 +SHA512 (wine-staging-2.12.tar.gz) = a8c21c923153a42609e3ea9065b84208b01f3b14d55b7e68e548ebf6d27df956051b29dc2f053aec6287422c13eed5b6ec71e667ae6f46b1c80ae7c84a51b648 diff --git a/wine.spec b/wine.spec index 36a59e9..aa9be44 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ %endif Name: wine -Version: 2.11 +Version: 2.12 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1446,15 +1446,20 @@ fi %{_libdir}/wine/ext-ms-win-gdi-devcaps-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-gdi-draw-l1-1-1.dll.so %{_libdir}/wine/ext-ms-win-gdi-render-l1-1-0.dll.so +%{_libdir}/wine/ext-ms-win-kernel32-package-l1-1-1.dll.so %{_libdir}/wine/ext-ms-win-ntuser-message-l1-1-1.dll.so %{_libdir}/wine/ext-ms-win-ntuser-private-l1-1-1.dll.so %{_libdir}/wine/ext-ms-win-ntuser-rectangle-ext-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-ntuser-uicontext-ext-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-ntuser-window-l1-1-1.dll.so +%{_libdir}/wine/ext-ms-win-ntuser-windowclass-l1-1-1.dll.so +%{_libdir}/wine/ext-ms-win-ras-rasapi32-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-rtcore-gdi-object-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-rtcore-gdi-rgn-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-rtcore-ntuser-dc-access-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-rtcore-ntuser-dpi-l1-1-0.dll.so +%{_libdir}/wine/ext-ms-win-security-credui-l1-1-0.dll.so +%{_libdir}/wine/ext-ms-win-security-cryptui-l1-1-0.dll.so %if 0%{?compholio} %{_libdir}/wine/ext-ms-win-appmodel-usercontext-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-kernel32-package-current-l1-1-0.dll.so @@ -2141,6 +2146,9 @@ fi %endif %changelog +* Wed Jul 12 2017 Michael Cronenworth 2.12-1 +- version update + * Tue Jun 27 2017 Michael Cronenworth 2.11-1 - version update From 01fc5b5a5341dc4107c6efbbecdd6db8a01f9056 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 25 Jul 2017 17:21:54 -0500 Subject: [PATCH 418/715] Update to 2.13 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 9 ++++++++- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index aed0ea7..8c741cc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-2.12.tar.xz -/wine-2.12.tar.xz.sign -/wine-staging-2.12.tar.gz +/wine-2.13.tar.xz +/wine-2.13.tar.xz.sign +/wine-staging-2.13.tar.gz diff --git a/sources b/sources index 8da0305..bd4448b 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-2.12.tar.xz) = d44c1937d7d2d797150381f70317b810616d61355a59be096366d3507f59b678cffaf6d841cecf02bf9d2afa3dbf4d19270f80fb1d3ba5f0f93787d40c328f62 -SHA512 (wine-2.12.tar.xz.sign) = e9aa69bc2e870a2317e9047f569518bb44fc24717209dcd2c8c87f8aecd3ecb945db3f02e73e612cdbaae610b78f94de34fa3df5bffbb725d5417c1291866cf8 -SHA512 (wine-staging-2.12.tar.gz) = a8c21c923153a42609e3ea9065b84208b01f3b14d55b7e68e548ebf6d27df956051b29dc2f053aec6287422c13eed5b6ec71e667ae6f46b1c80ae7c84a51b648 +SHA512 (wine-2.13.tar.xz) = 71873b9ec1605dd5f7502b87b0f3429c3d14a4196543d7304df455854b58ef82b8fafdcea91450cbfc01434a44886a0e0c4c4cf289ffb53167dde0f969cddc48 +SHA512 (wine-2.13.tar.xz.sign) = edf50eb52c45d99b8bb8fd956a14e103aca0176b041811936d9b6af0ffb876b71561a9cc9056703b929819caf241cc273381d3b0a75369d52207756eb2fb9234 +SHA512 (wine-staging-2.13.tar.gz) = 86077747d8a4f6e56dc1b0dda1688810defa9bcebaaadbf2419ce56e4590d4249881105e1dda24236f861baf0b1cc42019b2538de5d24a6d3c4f27c7a8248086 diff --git a/wine.spec b/wine.spec index aa9be44..31ead1e 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ %endif Name: wine -Version: 2.12 +Version: 2.13 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1123,6 +1123,7 @@ fi %{_libdir}/wine/ntoskrnl.exe.so %{_libdir}/wine/oleview.exe.so %{_libdir}/wine/ping.exe.so +%{_libdir}/wine/powershell.exe.so %{_libdir}/wine/reg.exe.so %{_libdir}/wine/regasm.exe.so %{_libdir}/wine/regedit.exe.so @@ -1226,6 +1227,7 @@ fi %{_libdir}/wine/api-ms-win-core-processthreads-l1-1-2.dll.so %{_libdir}/wine/api-ms-win-core-profile-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-psapi-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-psapi-ansi-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-psapi-obsolete-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-realtime-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-registry-l1-1-0.dll.so @@ -1297,6 +1299,7 @@ fi %{_libdir}/wine/api-ms-win-eventlog-legacy-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-mm-misc-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-mm-mme-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-mm-time-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-ntuser-dc-access-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-power-base-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-power-setting-l1-1-0.dll.so @@ -1312,6 +1315,7 @@ fi %{_libdir}/wine/api-ms-win-security-lsalookup-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-security-lsalookup-l2-1-1.dll.so %{_libdir}/wine/api-ms-win-security-lsapolicy-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-security-provider-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-security-sddl-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-security-systemfunctions-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-service-core-l1-1-0.dll.so @@ -2146,6 +2150,9 @@ fi %endif %changelog +* Tue Jul 25 2017 Michael Cronenworth 2.13-1 +- version update + * Wed Jul 12 2017 Michael Cronenworth 2.12-1 - version update From f0cf4f53a1ed8d104823370466746299b6872f1f Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 3 Aug 2017 10:17:48 +0000 Subject: [PATCH 419/715] - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild --- wine.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 31ead1e..d9a78c2 100644 --- a/wine.spec +++ b/wine.spec @@ -22,7 +22,7 @@ Name: wine Version: 2.13 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -2150,6 +2150,9 @@ fi %endif %changelog +* Thu Aug 03 2017 Fedora Release Engineering - 2.13-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + * Tue Jul 25 2017 Michael Cronenworth 2.13-1 - version update From 76358e902428b6e7c9ff725e7c53372a4a958cf7 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 8 Aug 2017 23:22:39 -0500 Subject: [PATCH 420/715] Update to 2.14 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 12 +++++++++--- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 8c741cc..bbee8c8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-2.13.tar.xz -/wine-2.13.tar.xz.sign -/wine-staging-2.13.tar.gz +/wine-2.14.tar.xz +/wine-2.14.tar.xz.sign +/wine-staging-2.14.tar.gz diff --git a/sources b/sources index bd4448b..455dd63 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-2.13.tar.xz) = 71873b9ec1605dd5f7502b87b0f3429c3d14a4196543d7304df455854b58ef82b8fafdcea91450cbfc01434a44886a0e0c4c4cf289ffb53167dde0f969cddc48 -SHA512 (wine-2.13.tar.xz.sign) = edf50eb52c45d99b8bb8fd956a14e103aca0176b041811936d9b6af0ffb876b71561a9cc9056703b929819caf241cc273381d3b0a75369d52207756eb2fb9234 -SHA512 (wine-staging-2.13.tar.gz) = 86077747d8a4f6e56dc1b0dda1688810defa9bcebaaadbf2419ce56e4590d4249881105e1dda24236f861baf0b1cc42019b2538de5d24a6d3c4f27c7a8248086 +SHA512 (wine-2.14.tar.xz) = ff43d386d46c0c74449e667b61d8cebd5fa768c88e6220aa2f13df03d80b71b6c0bdf8cbab023aed96f7c88b9787a3be4989da892fa1778412534ae82a7279bb +SHA512 (wine-2.14.tar.xz.sign) = aadd6fa989bea9dd12830b1cd783e9753cedd535b5fe59fa049c12177f13f44354fcd535bdf2647f54147f92c81d43ac744fd8ee2741eed2f12220c6b9df88ed +SHA512 (wine-staging-2.14.tar.gz) = 1e794f77309e94612f822b72872ac2726e37d219a40c4a45feb2fb56f4413c34eae966a4ae8708d502c837cd47db22979e9a05cb73b681703cd729f701cdb210 diff --git a/wine.spec b/wine.spec index d9a78c2..b951af5 100644 --- a/wine.spec +++ b/wine.spec @@ -3,7 +3,7 @@ %global no64bit 0 %global winegecko 2.47 -%global winemono 4.7.0 +%global winemono 4.7.1 #global _default_patch_fuzz 2 # build with compholio-patches, see: http://www.compholio.com/wine-compholio/ @@ -21,8 +21,8 @@ %endif Name: wine -Version: 2.13 -Release: 2%{?dist} +Version: 2.14 +Release: 1%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -1055,6 +1055,7 @@ fi %{_libdir}/wine/notepad.exe.so %{_libdir}/wine/plugplay.exe.so %{_libdir}/wine/progman.exe.so +%{_libdir}/wine/runas.exe.so %{_libdir}/wine/taskmgr.exe.so %{_libdir}/wine/winedbg.exe.so %{_libdir}/wine/winefile.exe.so @@ -1429,6 +1430,7 @@ fi %{_libdir}/wine/dpwsockx.dll.so %{_libdir}/wine/drmclien.dll.so %{_libdir}/wine/dsound.dll.so +%{_libdir}/wine/dsquery.dll.so %{_libdir}/wine/dssenh.dll.so %{_libdir}/wine/dswave.dll.so %{_libdir}/wine/dwmapi.dll.so @@ -1733,6 +1735,7 @@ fi %if 0%{?compholio} %{_libdir}/wine/uiautomationcore.dll.so %endif +%{_libdir}/wine/uiribbon.dll.so %{_libdir}/wine/unicows.dll.so %{_libdir}/wine/unlodctr.exe.so %{_libdir}/wine/updspapi.dll.so @@ -2150,6 +2153,9 @@ fi %endif %changelog +* Tue Aug 08 2017 Michael Cronenworth 2.14-1 +- version update + * Thu Aug 03 2017 Fedora Release Engineering - 2.13-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild From e9dc71f2663eeb1e0c2ba06e80090f492454d0c1 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 23 Aug 2017 21:40:15 -0500 Subject: [PATCH 421/715] Update to 2.15 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 8 ++++++-- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index bbee8c8..6f361a4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-2.14.tar.xz -/wine-2.14.tar.xz.sign -/wine-staging-2.14.tar.gz +/wine-2.15.tar.xz +/wine-2.15.tar.xz.sign +/wine-staging-2.15.tar.gz diff --git a/sources b/sources index 455dd63..f41ba90 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-2.14.tar.xz) = ff43d386d46c0c74449e667b61d8cebd5fa768c88e6220aa2f13df03d80b71b6c0bdf8cbab023aed96f7c88b9787a3be4989da892fa1778412534ae82a7279bb -SHA512 (wine-2.14.tar.xz.sign) = aadd6fa989bea9dd12830b1cd783e9753cedd535b5fe59fa049c12177f13f44354fcd535bdf2647f54147f92c81d43ac744fd8ee2741eed2f12220c6b9df88ed -SHA512 (wine-staging-2.14.tar.gz) = 1e794f77309e94612f822b72872ac2726e37d219a40c4a45feb2fb56f4413c34eae966a4ae8708d502c837cd47db22979e9a05cb73b681703cd729f701cdb210 +SHA512 (wine-2.15.tar.xz) = a52a42dd1f20fe68213c55a07ac5b2455150806e534f0ab77a8e9ae3d2f12840983fa92290dac569207d3640c7f45cda83801e9f2e80294863ffa854c6c89171 +SHA512 (wine-2.15.tar.xz.sign) = 0f47eb5bfdef1764f40c21c3f83b1fef5f2f9750a8441ca2931f349db35430dc054e2628c8cb9c8f6ead58fd3184b1478b72f247d3d8a727f543406ff42e7938 +SHA512 (wine-staging-2.15.tar.gz) = 75d64d103839da2daed6e5b2400185c0a5274d0e50b675283bbadff70cafe712e573701207d80c8e8af7f68d1d273efec3c0d705dc982c74b8574929daadecfa diff --git a/wine.spec b/wine.spec index b951af5..f09d371 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ %endif Name: wine -Version: 2.14 +Version: 2.15 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1046,6 +1046,7 @@ fi %doc documentation/README.* %if 0%{?compholio} %{_bindir}/msidb +%{_libdir}/wine/runas.exe.so %endif %{_bindir}/winedump %{_libdir}/wine/explorer.exe.so @@ -1055,7 +1056,6 @@ fi %{_libdir}/wine/notepad.exe.so %{_libdir}/wine/plugplay.exe.so %{_libdir}/wine/progman.exe.so -%{_libdir}/wine/runas.exe.so %{_libdir}/wine/taskmgr.exe.so %{_libdir}/wine/winedbg.exe.so %{_libdir}/wine/winefile.exe.so @@ -1507,6 +1507,7 @@ fi %if 0%{?compholio} %{_libdir}/wine/iertutil.dll.so %endif +%{_libdir}/wine/ieproxy.dll.so %{_libdir}/wine/imaadp32.acm.so %{_libdir}/wine/imagehlp.dll.so %{_libdir}/wine/imm32.dll.so @@ -2153,6 +2154,9 @@ fi %endif %changelog +* Wed Aug 23 2017 Michael Cronenworth 2.15-1 +- version update + * Tue Aug 08 2017 Michael Cronenworth 2.14-1 - version update From 0a720f0e33a7575303147a68ec27406eee5d0fad Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Thu, 7 Sep 2017 10:37:06 -0500 Subject: [PATCH 422/715] Update to 2.16 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 9 +++++++-- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index 6f361a4..8191ef1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-2.15.tar.xz -/wine-2.15.tar.xz.sign -/wine-staging-2.15.tar.gz +/wine-2.16.tar.xz +/wine-2.16.tar.xz.sign +/wine-staging-2.16.tar.gz diff --git a/sources b/sources index f41ba90..c876518 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-2.15.tar.xz) = a52a42dd1f20fe68213c55a07ac5b2455150806e534f0ab77a8e9ae3d2f12840983fa92290dac569207d3640c7f45cda83801e9f2e80294863ffa854c6c89171 -SHA512 (wine-2.15.tar.xz.sign) = 0f47eb5bfdef1764f40c21c3f83b1fef5f2f9750a8441ca2931f349db35430dc054e2628c8cb9c8f6ead58fd3184b1478b72f247d3d8a727f543406ff42e7938 -SHA512 (wine-staging-2.15.tar.gz) = 75d64d103839da2daed6e5b2400185c0a5274d0e50b675283bbadff70cafe712e573701207d80c8e8af7f68d1d273efec3c0d705dc982c74b8574929daadecfa +SHA512 (wine-2.16.tar.xz) = 749a36b536506c4b63ff7512e316f44503cdb0db46e38a124da86df638f3e8ff9c404b034ece5cbb95cf20c09bc46be9a38f2ee66480aa6a4f2385e2a7a7eea4 +SHA512 (wine-2.16.tar.xz.sign) = 26fee5371cd5cff64ac418a00aaa8f5c869b7d57b1893f2485b2db87555be5c5000663a31611243d3cf1433cf7daf7572e9ca7dfe72a4476f74947f6810fc262 +SHA512 (wine-staging-2.16.tar.gz) = 96585caf77569a31f516aefe230a8907ef91db29759f75075593b751985f294bf292a1c146d287a3f0859a6b6273560670c4bc734ef0fbecb0809574eb3f09ba diff --git a/wine.spec b/wine.spec index f09d371..a2661a2 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ %endif Name: wine -Version: 2.15 +Version: 2.16 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -131,7 +131,6 @@ BuildRequires: pulseaudio-libs-devel BuildRequires: gsm-devel BuildRequires: libv4l-devel BuildRequires: fontpackages-devel -BuildRequires: ImageMagick-devel BuildRequires: libtiff-devel BuildRequires: gettext-devel BuildRequires: chrpath @@ -1296,6 +1295,7 @@ fi %{_libdir}/wine/api-ms-win-dx-d3dkmt-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-eventing-consumer-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-eventing-controller-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-eventing-legacy-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-eventing-provider-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-eventlog-legacy-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-mm-misc-l1-1-1.dll.so @@ -1809,6 +1809,7 @@ fi %{_libdir}/wine/wintrust.dll.so %{_libdir}/wine/winusb.dll.so %{_libdir}/wine/wlanapi.dll.so +%{_libdir}/wine/wmphoto.dll.so %{_libdir}/wine/wnaspi32.dll.so %{_libdir}/wine/wpc.dll.so %{_libdir}/wine/wpcap.dll.so @@ -2154,6 +2155,10 @@ fi %endif %changelog +* Thu Sep 07 2017 Michael Cronenworth 2.16-1 +- version update +- drop BR on ImageMagick + * Wed Aug 23 2017 Michael Cronenworth 2.15-1 - version update From 874fe50796aed7a059748bb1cd61a5b909f934b2 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Thu, 21 Sep 2017 11:13:11 -0500 Subject: [PATCH 423/715] Update to 2.17 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 9 ++++++++- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 8191ef1..bed12e0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-2.16.tar.xz -/wine-2.16.tar.xz.sign -/wine-staging-2.16.tar.gz +/wine-2.17.tar.xz +/wine-2.17.tar.xz.sign +/wine-staging-2.17.tar.gz diff --git a/sources b/sources index c876518..a857d06 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-2.16.tar.xz) = 749a36b536506c4b63ff7512e316f44503cdb0db46e38a124da86df638f3e8ff9c404b034ece5cbb95cf20c09bc46be9a38f2ee66480aa6a4f2385e2a7a7eea4 -SHA512 (wine-2.16.tar.xz.sign) = 26fee5371cd5cff64ac418a00aaa8f5c869b7d57b1893f2485b2db87555be5c5000663a31611243d3cf1433cf7daf7572e9ca7dfe72a4476f74947f6810fc262 -SHA512 (wine-staging-2.16.tar.gz) = 96585caf77569a31f516aefe230a8907ef91db29759f75075593b751985f294bf292a1c146d287a3f0859a6b6273560670c4bc734ef0fbecb0809574eb3f09ba +SHA512 (wine-2.17.tar.xz) = cb10c876e689aa601c68673aab32c0514dd174692a01bdb3afc78d5e6079b0e77f48783af2f54245f397c762da3b4e5f2c1d39d2ce7fdb3b117d338b95c24810 +SHA512 (wine-2.17.tar.xz.sign) = 8bf73d87630c3feb7f8ca1c683643870ce9b7f2effd76cf965c457d02ef4e00b8b050938911825f66e4983c365b177522fa579631138c58476c8b353c524a928 +SHA512 (wine-staging-2.17.tar.gz) = b652f6a852a1382c1b8275e172b7ac7608749c34aef5c0c5387cf262bf0da8db67a77ce397d49e53f3e2a8f210a3dbea1a9b3f3feb15c7d5bad8952b6fb7b53c diff --git a/wine.spec b/wine.spec index a2661a2..eec70cd 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ %endif Name: wine -Version: 2.16 +Version: 2.17 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1190,6 +1190,7 @@ fi %{_libdir}/wine/api-ms-win-core-handle-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-heap-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-heap-l1-2-0.dll.so +%{_libdir}/wine/api-ms-win-core-heap-l2-1-0.dll.so %{_libdir}/wine/api-ms-win-core-heap-obsolete-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-interlocked-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-interlocked-l1-2-0.dll.so @@ -1208,6 +1209,7 @@ fi %{_libdir}/wine/api-ms-win-core-localization-l2-1-0.dll.so %{_libdir}/wine/api-ms-win-core-localization-obsolete-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-localization-obsolete-l1-2-0.dll.so +%{_libdir}/wine/api-ms-win-core-localization-obsolete-l1-3-0.dll.so %{_libdir}/wine/api-ms-win-core-localization-private-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-localregistry-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-memory-l1-1-0.dll.so @@ -1237,6 +1239,7 @@ fi %{_libdir}/wine/api-ms-win-core-rtlsupport-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-shlwapi-legacy-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-shlwapi-obsolete-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-shlwapi-obsolete-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-sidebyside-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-string-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-string-l2-1-0.dll.so @@ -1244,6 +1247,7 @@ fi %{_libdir}/wine/api-ms-win-core-stringansi-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-synch-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-synch-l1-2-0.dll.so +%{_libdir}/wine/api-ms-win-core-synch-l1-2-1.dll.so %{_libdir}/wine/api-ms-win-core-sysinfo-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-sysinfo-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-sysinfo-l1-2-1.dll.so @@ -2155,6 +2159,9 @@ fi %endif %changelog +* Thu Sep 21 2017 Michael Cronenworth 2.17-1 +- version update + * Thu Sep 07 2017 Michael Cronenworth 2.16-1 - version update - drop BR on ImageMagick From c9359b73e3866ba30e16cb51a9185205339f3100 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Thu, 12 Oct 2017 08:50:51 -0500 Subject: [PATCH 424/715] Update to 2.18 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 14 +++++++++++++- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index bed12e0..aaa855b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-2.17.tar.xz -/wine-2.17.tar.xz.sign -/wine-staging-2.17.tar.gz +/wine-2.18.tar.xz +/wine-2.18.tar.xz.sign +/wine-staging-2.18.tar.gz diff --git a/sources b/sources index a857d06..8cf15cb 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-2.17.tar.xz) = cb10c876e689aa601c68673aab32c0514dd174692a01bdb3afc78d5e6079b0e77f48783af2f54245f397c762da3b4e5f2c1d39d2ce7fdb3b117d338b95c24810 -SHA512 (wine-2.17.tar.xz.sign) = 8bf73d87630c3feb7f8ca1c683643870ce9b7f2effd76cf965c457d02ef4e00b8b050938911825f66e4983c365b177522fa579631138c58476c8b353c524a928 -SHA512 (wine-staging-2.17.tar.gz) = b652f6a852a1382c1b8275e172b7ac7608749c34aef5c0c5387cf262bf0da8db67a77ce397d49e53f3e2a8f210a3dbea1a9b3f3feb15c7d5bad8952b6fb7b53c +SHA512 (wine-2.18.tar.xz) = 61cc39fa3d2b0a0ab3c5d17579865e6aea76dd9513a4b3c45975a2d5c05f2b4ba952b97eef547131a014763c7f692a08df29bc2ebf7e4ac7e2616e6a7822ddb9 +SHA512 (wine-2.18.tar.xz.sign) = 47fa9f418b1d690f2f8a95b5a36b79675fabff9f5e47604f5d306681c5229d7b0fa7c4c25a83000f47f1c6f088b7429dc6c6e3fc774e0c36a72bc3a7c2f1178c +SHA512 (wine-staging-2.18.tar.gz) = fe18b53d4160596d134ceed392f6459e9c183381f4712add43d8422e77d7d5d89ff34a3bb3afbd7740f250d85dfda0f3501e9600a41270790ae02138ed6d7dc7 diff --git a/wine.spec b/wine.spec index eec70cd..27f8f9b 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ %endif Name: wine -Version: 2.17 +Version: 2.18 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1180,6 +1180,7 @@ fi %{_libdir}/wine/api-ms-win-core-errorhandling-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-errorhandling-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-errorhandling-l1-1-2.dll.so +%{_libdir}/wine/api-ms-win-core-errorhandling-l1-1-3.dll.so %{_libdir}/wine/api-ms-win-core-fibers-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-fibers-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-file-l1-1-0.dll.so @@ -1187,6 +1188,7 @@ fi %{_libdir}/wine/api-ms-win-core-file-l1-2-1.dll.so %{_libdir}/wine/api-ms-win-core-file-l2-1-0.dll.so %{_libdir}/wine/api-ms-win-core-file-l2-1-1.dll.so +%{_libdir}/wine/api-ms-win-core-file-l2-1-2.dll.so %{_libdir}/wine/api-ms-win-core-handle-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-heap-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-heap-l1-2-0.dll.so @@ -1227,6 +1229,7 @@ fi %{_libdir}/wine/api-ms-win-core-processthreads-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-processthreads-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-processthreads-l1-1-2.dll.so +%{_libdir}/wine/api-ms-win-core-processtopology-obsolete-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-profile-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-psapi-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-psapi-ansi-l1-1-0.dll.so @@ -1259,6 +1262,7 @@ fi %{_libdir}/wine/api-ms-win-core-url-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-util-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-version-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-version-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-version-private-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-versionansi-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-windowserrorreporting-l1-1-0.dll.so @@ -1268,6 +1272,7 @@ fi %{_libdir}/wine/api-ms-win-core-winrt-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-winrt-string-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-wow64-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-xstate-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-xstate-l2-1-0.dll.so %{_libdir}/wine/api-ms-win-crt-conio-l1-1-0.dll.so @@ -1302,10 +1307,12 @@ fi %{_libdir}/wine/api-ms-win-eventing-legacy-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-eventing-provider-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-eventlog-legacy-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-mm-joystick-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-mm-misc-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-mm-mme-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-mm-time-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-ntuser-dc-access-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-ntuser-rectangle-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-power-base-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-power-setting-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-rtcore-ntuser-private-l1-1-0.dll.so @@ -1439,6 +1446,7 @@ fi %{_libdir}/wine/dswave.dll.so %{_libdir}/wine/dwmapi.dll.so %{_libdir}/wine/dwrite.dll.so +%{_libdir}/wine/dx8vb.dll.so %{_libdir}/wine/dxdiagn.dll.so %{_libdir}/wine/dxgi.dll.so %if 0%{?compholio} @@ -1689,6 +1697,7 @@ fi %{_libdir}/wine/rstrtmgr.dll.so %{_libdir}/wine/rtutils.dll.so %{_libdir}/wine/samlib.dll.so +%{_libdir}/wine/sapi.dll.so %{_libdir}/wine/sc.exe.so %{_libdir}/wine/scarddlg.dll.so %{_libdir}/wine/sccbase.dll.so @@ -2159,6 +2168,9 @@ fi %endif %changelog +* Wed Oct 11 2017 Michael Cronenworth 2.18-1 +- version update + * Thu Sep 21 2017 Michael Cronenworth 2.17-1 - version update From e096998840ceaf74cd12cca4528a2b1ecefeb6bb Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 22 Oct 2017 12:20:13 -0500 Subject: [PATCH 425/715] Update to 2.19 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 14 ++++++++------ 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index aaa855b..bd5521a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-2.18.tar.xz -/wine-2.18.tar.xz.sign -/wine-staging-2.18.tar.gz +/wine-2.19.tar.xz +/wine-2.19.tar.xz.sign +/wine-staging-2.19.tar.gz diff --git a/sources b/sources index 8cf15cb..fb2a33d 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-2.18.tar.xz) = 61cc39fa3d2b0a0ab3c5d17579865e6aea76dd9513a4b3c45975a2d5c05f2b4ba952b97eef547131a014763c7f692a08df29bc2ebf7e4ac7e2616e6a7822ddb9 -SHA512 (wine-2.18.tar.xz.sign) = 47fa9f418b1d690f2f8a95b5a36b79675fabff9f5e47604f5d306681c5229d7b0fa7c4c25a83000f47f1c6f088b7429dc6c6e3fc774e0c36a72bc3a7c2f1178c -SHA512 (wine-staging-2.18.tar.gz) = fe18b53d4160596d134ceed392f6459e9c183381f4712add43d8422e77d7d5d89ff34a3bb3afbd7740f250d85dfda0f3501e9600a41270790ae02138ed6d7dc7 +SHA512 (wine-2.19.tar.xz) = 83558231bdc592b1f69cfedf6c689063df7bd9fecdfafba6fb7f6a2c7fa7783973efb85a6a49305afc18b1aa268209ee5b9c0655756e05d7550468698dfa51ae +SHA512 (wine-2.19.tar.xz.sign) = 3e977304c7673f5f747617e5367d236d8b28eef70be511c3df0e5950e9214077a1d48f47f45188585dcbfa6007ed978fecbd873b10e9ff72f7f0b2b1cbcb5799 +SHA512 (wine-staging-2.19.tar.gz) = 90916cb096bbfec35514eff4c1b6e2090b6e68e3e7af1164715f5abb1d255c5cfd6411f53c27cb277adcf0982fa6d6e508a7cdbc1404dcca6c2700b05c2c5483 diff --git a/wine.spec b/wine.spec index 27f8f9b..3d59388 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ %endif Name: wine -Version: 2.18 +Version: 2.19 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1162,6 +1162,7 @@ fi %{_libdir}/wine/advpack.dll.so %{_libdir}/wine/amstream.dll.so %{_libdir}/wine/api-ms-win-appmodel-identity-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-appmodel-runtime-l1-1-2.dll.so %{_libdir}/wine/api-ms-win-core-appcompat-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-appinit-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-atoms-l1-1-0.dll.so @@ -1344,11 +1345,9 @@ fi %{_libdir}/wine/api-ms-win-core-apiquery-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-com-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-delayload-l1-1-1.dll.so -%{_libdir}/wine/api-ms-win-core-heap-l2-1-0.dll.so %{_libdir}/wine/api-ms-win-core-kernel32-legacy-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-libraryloader-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-quirks-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-shlwapi-obsolete-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-threadpool-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-winrt-registration-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-wow64-l1-1-0.dll.so @@ -1544,6 +1543,9 @@ fi %endif %{_libdir}/wine/ksuser.dll.so %{_libdir}/wine/ktmw32.dll.so +%if 0%{?fedora} > 24 +%{_libdir}/wine/l3codeca.acm.so +%endif %{_libdir}/wine/loadperf.dll.so %{_libdir}/wine/localspl.dll.so %{_libdir}/wine/localui.dll.so @@ -1799,9 +1801,6 @@ fi %{_libdir}/wine/winehid.sys.so %{_libdir}/wine/winejoystick.drv.so %{_libdir}/wine/winemapi.dll.so -%if 0%{?fedora} > 24 -%{_libdir}/wine/winemp3.acm.so -%endif %{_libdir}/wine/winex11.drv.so %{_libdir}/wine/wing32.dll.so %{_libdir}/wine/winhttp.dll.so @@ -2168,6 +2167,9 @@ fi %endif %changelog +* Sun Oct 22 2017 Michael Cronenworth 2.19-1 +- version update + * Wed Oct 11 2017 Michael Cronenworth 2.18-1 - version update From 6b44ea9ab81387072dcd9f68dd6d7a2bd1382f43 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 6 Nov 2017 23:14:27 -0600 Subject: [PATCH 426/715] Update to 2.20 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 10 +++++++++- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index bd5521a..e1f7568 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-2.19.tar.xz -/wine-2.19.tar.xz.sign -/wine-staging-2.19.tar.gz +/wine-2.20.tar.xz +/wine-2.20.tar.xz.sign +/wine-staging-2.20.tar.gz diff --git a/sources b/sources index fb2a33d..87feb46 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-2.19.tar.xz) = 83558231bdc592b1f69cfedf6c689063df7bd9fecdfafba6fb7f6a2c7fa7783973efb85a6a49305afc18b1aa268209ee5b9c0655756e05d7550468698dfa51ae -SHA512 (wine-2.19.tar.xz.sign) = 3e977304c7673f5f747617e5367d236d8b28eef70be511c3df0e5950e9214077a1d48f47f45188585dcbfa6007ed978fecbd873b10e9ff72f7f0b2b1cbcb5799 -SHA512 (wine-staging-2.19.tar.gz) = 90916cb096bbfec35514eff4c1b6e2090b6e68e3e7af1164715f5abb1d255c5cfd6411f53c27cb277adcf0982fa6d6e508a7cdbc1404dcca6c2700b05c2c5483 +SHA512 (wine-2.20.tar.xz) = d8d374d1e690ce9d3964fc81054fb7f4cd56cbae6bc44ebbf80b7dc7f04524baa2bd831e0be8f00de4cb0e14c1cb71780d424f5dcb9851fcaed9fb22f5ce5d23 +SHA512 (wine-2.20.tar.xz.sign) = 48f2a1da70a3be3ef8b6363c8cfa5e7a340a3e903a9a648c690fa5721f320033f233842be65fa60a1779cae0c6142137e1d621fdd2795412d7e191fd4372a998 +SHA512 (wine-staging-2.20.tar.gz) = 16f55130291ca70487a74d01cee9057f95f3eae3e049d30fb2a9aeb8e425b2020289fb805fdbae860708be0615a86da0502c06ff32cc21536d040088cc13605f diff --git a/wine.spec b/wine.spec index 3d59388..de4261a 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ %endif Name: wine -Version: 2.19 +Version: 2.20 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1187,6 +1187,7 @@ fi %{_libdir}/wine/api-ms-win-core-file-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-file-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-file-l1-2-1.dll.so +%{_libdir}/wine/api-ms-win-core-file-l1-2-2.dll.so %{_libdir}/wine/api-ms-win-core-file-l2-1-0.dll.so %{_libdir}/wine/api-ms-win-core-file-l2-1-1.dll.so %{_libdir}/wine/api-ms-win-core-file-l2-1-2.dll.so @@ -1205,6 +1206,7 @@ fi %{_libdir}/wine/api-ms-win-core-kernel32-private-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-libraryloader-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-libraryloader-l1-1-1.dll.so +%{_libdir}/wine/api-ms-win-core-libraryloader-l1-2-1.dll.so %{_libdir}/wine/api-ms-win-core-libraryloader-l1-2-2.dll.so %{_libdir}/wine/api-ms-win-core-localization-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-localization-l1-2-0.dll.so @@ -1252,6 +1254,7 @@ fi %{_libdir}/wine/api-ms-win-core-synch-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-synch-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-synch-l1-2-1.dll.so +%{_libdir}/wine/api-ms-win-core-synch-ansi-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-sysinfo-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-sysinfo-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-sysinfo-l1-2-1.dll.so @@ -1338,6 +1341,7 @@ fi %{_libdir}/wine/api-ms-win-service-private-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-service-winsvc-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-service-winsvc-l1-2-0.dll.so +%{_libdir}/wine/api-ms-win-shcore-scaling-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-shell-shellcom-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-shell-shellfolders-l1-1-0.dll.so %if 0%{?compholio} @@ -1537,6 +1541,7 @@ fi %{_libdir}/wine/joy.cpl.so %{_libdir}/wine/jscript.dll.so %{_libdir}/wine/jsproxy.dll.so +%{_libdir}/wine/kerberos.dll.so %{_libdir}/wine/kernel32.dll.so %if 0%{?compholio} %{_libdir}/wine/kernelbase.dll.so @@ -2167,6 +2172,9 @@ fi %endif %changelog +* Mon Nov 06 2017 Michael Cronenworth 2.20-1 +- version update + * Sun Oct 22 2017 Michael Cronenworth 2.19-1 - version update From 11a210f62928c64ea1210c498307d50f3a29e975 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 7 Nov 2017 07:23:23 -0600 Subject: [PATCH 427/715] Ship the preloader for aarch64 --- wine.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index de4261a..32d681e 100644 --- a/wine.spec +++ b/wine.spec @@ -1081,7 +1081,7 @@ fi %{_bindir}/wineserver64 %config %{_sysconfdir}/ld.so.conf.d/wine-64.conf %endif -%ifarch x86_64 +%ifarch x86_64 aarch64 %{_bindir}/wine64-preloader %endif From ffbfec497be16f1b7d0796d2fe34cd9c65220361 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 25 Nov 2017 11:06:18 -0600 Subject: [PATCH 428/715] Update to 2.21 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 5 ++++- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index e1f7568..45c0420 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-2.20.tar.xz -/wine-2.20.tar.xz.sign -/wine-staging-2.20.tar.gz +/wine-2.21.tar.xz +/wine-2.21.tar.xz.sign +/wine-staging-2.21.tar.gz diff --git a/sources b/sources index 87feb46..a9ee45c 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-2.20.tar.xz) = d8d374d1e690ce9d3964fc81054fb7f4cd56cbae6bc44ebbf80b7dc7f04524baa2bd831e0be8f00de4cb0e14c1cb71780d424f5dcb9851fcaed9fb22f5ce5d23 -SHA512 (wine-2.20.tar.xz.sign) = 48f2a1da70a3be3ef8b6363c8cfa5e7a340a3e903a9a648c690fa5721f320033f233842be65fa60a1779cae0c6142137e1d621fdd2795412d7e191fd4372a998 -SHA512 (wine-staging-2.20.tar.gz) = 16f55130291ca70487a74d01cee9057f95f3eae3e049d30fb2a9aeb8e425b2020289fb805fdbae860708be0615a86da0502c06ff32cc21536d040088cc13605f +SHA512 (wine-2.21.tar.xz) = 4e33c463debe637827ed65f1118e692832bb5374491f706f9d251b8a2956e20d2df5d90ceba218b9bc9e946de91b8ba1d96b460453f59cdd9d82f070d07e0c43 +SHA512 (wine-2.21.tar.xz.sign) = 0c31776e2a3eb2356ee3f83f53d911716a7cf4afd2eb1f94561d765e3f51d374a267effd8958bfd211577c543674ab5bbc75f0e83aeca24728450cc752852ac3 +SHA512 (wine-staging-2.21.tar.gz) = 701c6352c8bc5745b8078947bcc3b6209e4e6c387905395cc81d42276402243522d7fa543bb34293c74786adcde9a3c50a2cf4cd57e05e0f4c68991a49a00b41 diff --git a/wine.spec b/wine.spec index 32d681e..cc2f375 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ %endif Name: wine -Version: 2.20 +Version: 2.21 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -2172,6 +2172,9 @@ fi %endif %changelog +* Sat Nov 25 2017 Michael Cronenworth 2.21-1 +- version update + * Mon Nov 06 2017 Michael Cronenworth 2.20-1 - version update From 1234bb4c273ecb4b384e817a3df0c842d914c220 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 25 Nov 2017 12:35:14 -0600 Subject: [PATCH 429/715] disable shell32-ACE_Viewer patch for now, breaks ARMv7 --- wine.spec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index cc2f375..f5152f3 100644 --- a/wine.spec +++ b/wine.spec @@ -666,7 +666,8 @@ This package adds the opencl driver for wine. gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 %if 0%{?compholio} -make -C patches DESTDIR="`pwd`" install +# disable shell32-ACE_Viewer patch for now, breaks ARMv7 +patches/patchinstall.sh DESTDIR="`pwd`" --all -W shell32-ACE_Viewer # fix parallelized build sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in From 95efc85f370ae39cc77b766539b16d464c08e8ec Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Fri, 9 Feb 2018 12:00:55 -0600 Subject: [PATCH 430/715] Update to 3.1, disable wine-staging --- .gitignore | 5 ++--- sources | 5 ++--- wine.spec | 59 +++++++++++++++++++++++++----------------------------- 3 files changed, 31 insertions(+), 38 deletions(-) diff --git a/.gitignore b/.gitignore index 45c0420..141eb39 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,2 @@ -/wine-2.21.tar.xz -/wine-2.21.tar.xz.sign -/wine-staging-2.21.tar.gz +/wine-3.1.tar.xz +/wine-3.1.tar.xz.sign diff --git a/sources b/sources index a9ee45c..0eea7a1 100644 --- a/sources +++ b/sources @@ -1,3 +1,2 @@ -SHA512 (wine-2.21.tar.xz) = 4e33c463debe637827ed65f1118e692832bb5374491f706f9d251b8a2956e20d2df5d90ceba218b9bc9e946de91b8ba1d96b460453f59cdd9d82f070d07e0c43 -SHA512 (wine-2.21.tar.xz.sign) = 0c31776e2a3eb2356ee3f83f53d911716a7cf4afd2eb1f94561d765e3f51d374a267effd8958bfd211577c543674ab5bbc75f0e83aeca24728450cc752852ac3 -SHA512 (wine-staging-2.21.tar.gz) = 701c6352c8bc5745b8078947bcc3b6209e4e6c387905395cc81d42276402243522d7fa543bb34293c74786adcde9a3c50a2cf4cd57e05e0f4c68991a49a00b41 +SHA512 (wine-3.1.tar.xz) = 49c30d820b8f4028935b4d90dd6251c881cb8cd41bde8833db2782f04111a3d111e24605a87b2d70e419d54cfb6bb42d941f4593f9b381812e3602bf1307c545 +SHA512 (wine-3.1.tar.xz.sign) = 4e3c16c7e60e98cae655e8937e5f9601375b8411b0aa213f95230e9d0ff3afc791a9043901cc73919f16fe52b51741389b1f25afc22638813210e743474f6428 diff --git a/wine.spec b/wine.spec index f5152f3..13e42c9 100644 --- a/wine.spec +++ b/wine.spec @@ -7,9 +7,9 @@ #global _default_patch_fuzz 2 # build with compholio-patches, see: http://www.compholio.com/wine-compholio/ -# uncomment to enable; comment-out to disable. +# wine-staging appears to be dead %if 0%{?fedora} -%global compholio 1 +%global compholio 0 %endif # 0%{?fedora} # binfmt macros for RHEL @@ -21,7 +21,7 @@ %endif Name: wine -Version: 2.21 +Version: 3.1 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -69,9 +69,11 @@ Source502: wine-README-tahoma Patch511: wine-cjk.patch +%if 0%{?compholio} # wine compholio patches for wine-staging # pulseaudio-patch is covered by that patch-set, too. Source900: https://github.com/compholio/wine-compholio/archive/v%{version}.tar.gz#/wine-staging-%{version}.tar.gz +%endif %if !%{?no64bit} ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 @@ -662,9 +664,9 @@ This package adds the opencl driver for wine. %setup -q -n wine-%{version} %patch511 -p1 -b.cjk +%if 0%{?compholio} # setup and apply wine-staging patches gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 -%if 0%{?compholio} # disable shell32-ACE_Viewer patch for now, breaks ARMv7 patches/patchinstall.sh DESTDIR="`pwd`" --all -W shell32-ACE_Viewer @@ -672,10 +674,6 @@ patches/patchinstall.sh DESTDIR="`pwd`" --all -W shell32-ACE_Viewer # fix parallelized build sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in -%else # 0%{?compholio} - -rm -rf patches/ - %endif # 0%{?compholio} %build @@ -1107,9 +1105,7 @@ fi %{_libdir}/wine/expand.exe.so %{_libdir}/wine/extrac32.exe.so %{_libdir}/wine/findstr.exe.so -%if 0%{?compholio} %{_libdir}/wine/fsutil.exe.so -%endif %{_libdir}/wine/hostname.exe.so %{_libdir}/wine/ipconfig.exe.so %{_libdir}/wine/winhlp32.exe.so @@ -1163,12 +1159,15 @@ fi %{_libdir}/wine/advpack.dll.so %{_libdir}/wine/amstream.dll.so %{_libdir}/wine/api-ms-win-appmodel-identity-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-appmodel-runtime-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-appmodel-runtime-l1-1-2.dll.so +%{_libdir}/wine/api-ms-win-core-apiquery-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-appcompat-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-appinit-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-atoms-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-bem-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-com-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-com-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-com-private-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-console-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-console-l2-1-0.dll.so @@ -1179,6 +1178,7 @@ fi %{_libdir}/wine/api-ms-win-core-debug-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-debug-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-delayload-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-delayload-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-errorhandling-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-errorhandling-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-errorhandling-l1-1-2.dll.so @@ -1204,9 +1204,11 @@ fi %{_libdir}/wine/api-ms-win-core-job-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-job-l2-1-0.dll.so %{_libdir}/wine/api-ms-win-core-kernel32-legacy-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-kernel32-legacy-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-kernel32-private-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-libraryloader-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-libraryloader-l1-1-1.dll.so +%{_libdir}/wine/api-ms-win-core-libraryloader-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-libraryloader-l1-2-1.dll.so %{_libdir}/wine/api-ms-win-core-libraryloader-l1-2-2.dll.so %{_libdir}/wine/api-ms-win-core-localization-l1-1-0.dll.so @@ -1238,6 +1240,7 @@ fi %{_libdir}/wine/api-ms-win-core-psapi-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-psapi-ansi-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-psapi-obsolete-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-quirks-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-realtime-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-registry-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-registry-l2-1-0.dll.so @@ -1247,6 +1250,7 @@ fi %{_libdir}/wine/api-ms-win-core-shlwapi-legacy-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-shlwapi-obsolete-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-shlwapi-obsolete-l1-2-0.dll.so +%{_libdir}/wine/api-ms-win-core-shutdown-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-sidebyside-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-string-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-string-l2-1-0.dll.so @@ -1260,6 +1264,7 @@ fi %{_libdir}/wine/api-ms-win-core-sysinfo-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-sysinfo-l1-2-1.dll.so %{_libdir}/wine/api-ms-win-core-threadpool-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-threadpool-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-threadpool-legacy-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-threadpool-private-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-timezone-l1-1-0.dll.so @@ -1275,8 +1280,10 @@ fi %{_libdir}/wine/api-ms-win-core-winrt-error-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-winrt-errorprivate-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-winrt-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-winrt-registration-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-winrt-string-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-wow64-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-wow64-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-xstate-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-xstate-l2-1-0.dll.so @@ -1307,6 +1314,7 @@ fi %{_libdir}/wine/api-ms-win-downlevel-user32-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-downlevel-version-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-dx-d3dkmt-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-eventing-classicprovider-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-eventing-consumer-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-eventing-controller-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-eventing-legacy-l1-1-0.dll.so @@ -1330,6 +1338,7 @@ fi %{_libdir}/wine/api-ms-win-security-grouppolicy-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-security-lsalookup-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-security-lsalookup-l1-1-1.dll.so +%{_libdir}/wine/api-ms-win-security-lsalookup-l2-1-0.dll.so %{_libdir}/wine/api-ms-win-security-lsalookup-l2-1-1.dll.so %{_libdir}/wine/api-ms-win-security-lsapolicy-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-security-provider-l1-1-0.dll.so @@ -1347,16 +1356,6 @@ fi %{_libdir}/wine/api-ms-win-shell-shellfolders-l1-1-0.dll.so %if 0%{?compholio} %{_libdir}/wine/api-ms-win-appmodel-runtime-l1-1-1.dll.so -%{_libdir}/wine/api-ms-win-core-apiquery-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-com-l1-1-1.dll.so -%{_libdir}/wine/api-ms-win-core-delayload-l1-1-1.dll.so -%{_libdir}/wine/api-ms-win-core-kernel32-legacy-l1-1-1.dll.so -%{_libdir}/wine/api-ms-win-core-libraryloader-l1-2-0.dll.so -%{_libdir}/wine/api-ms-win-core-quirks-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-threadpool-l1-2-0.dll.so -%{_libdir}/wine/api-ms-win-core-winrt-registration-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-wow64-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-eventing-classicprovider-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-rtcore-ntuser-draw-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-rtcore-ntuser-window-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-shcore-obsolete-l1-1-0.dll.so @@ -1422,6 +1421,7 @@ fi %{_libdir}/wine/ddrawex.dll.so %{_libdir}/wine/devenum.dll.so %{_libdir}/wine/dhcpcsvc.dll.so +%{_libdir}/wine/dhtmled.ocx.so %{_libdir}/wine/difxapi.dll.so %{_libdir}/wine/dinput.dll.so %{_libdir}/wine/dinput8.dll.so @@ -1469,6 +1469,7 @@ fi %{_libdir}/wine/ext-ms-win-gdi-draw-l1-1-1.dll.so %{_libdir}/wine/ext-ms-win-gdi-render-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-kernel32-package-l1-1-1.dll.so +%{_libdir}/wine/ext-ms-win-kernel32-package-current-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-ntuser-message-l1-1-1.dll.so %{_libdir}/wine/ext-ms-win-ntuser-private-l1-1-1.dll.so %{_libdir}/wine/ext-ms-win-ntuser-rectangle-ext-l1-1-0.dll.so @@ -1480,14 +1481,13 @@ fi %{_libdir}/wine/ext-ms-win-rtcore-gdi-rgn-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-rtcore-ntuser-dc-access-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-rtcore-ntuser-dpi-l1-1-0.dll.so +%{_libdir}/wine/ext-ms-win-rtcore-ntuser-sysparams-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-security-credui-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-security-cryptui-l1-1-0.dll.so %if 0%{?compholio} %{_libdir}/wine/ext-ms-win-appmodel-usercontext-l1-1-0.dll.so -%{_libdir}/wine/ext-ms-win-kernel32-package-current-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-ntuser-mouse-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-rtcore-ntuser-syscolors-l1-1-0.dll.so -%{_libdir}/wine/ext-ms-win-rtcore-ntuser-sysparams-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-uxtheme-themes-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-xaml-pal-l1-1-0.dll.so %endif @@ -1544,9 +1544,7 @@ fi %{_libdir}/wine/jsproxy.dll.so %{_libdir}/wine/kerberos.dll.so %{_libdir}/wine/kernel32.dll.so -%if 0%{?compholio} %{_libdir}/wine/kernelbase.dll.so -%endif %{_libdir}/wine/ksuser.dll.so %{_libdir}/wine/ktmw32.dll.so %if 0%{?fedora} > 24 @@ -1718,18 +1716,14 @@ fi %{_libdir}/wine/serialui.dll.so %{_libdir}/wine/setupapi.dll.so %{_libdir}/wine/sfc_os.dll.so -%if 0%{?compholio} %{_libdir}/wine/shcore.dll.so -%endif %{_libdir}/wine/shdoclc.dll.so %{_libdir}/wine/shdocvw.dll.so %{_libdir}/wine/schedsvc.dll.so %{_libdir}/wine/shell32.dll.so %{_libdir}/wine/shfolder.dll.so %{_libdir}/wine/shlwapi.dll.so -%if 0%{?compholio} %{_libdir}/wine/shutdown.exe.so -%endif %{_libdir}/wine/slbcsp.dll.so %{_libdir}/wine/slc.dll.so %{_libdir}/wine/snmpapi.dll.so @@ -1749,14 +1743,10 @@ fi %{_libdir}/wine/taskkill.exe.so %{_libdir}/wine/taskschd.dll.so %{_libdir}/wine/tdh.dll.so -%if 0%{?compholio} %{_libdir}/wine/tdi.sys.so -%endif %{_libdir}/wine/traffic.dll.so %{_libdir}/wine/ucrtbase.dll.so -%if 0%{?compholio} %{_libdir}/wine/uiautomationcore.dll.so -%endif %{_libdir}/wine/uiribbon.dll.so %{_libdir}/wine/unicows.dll.so %{_libdir}/wine/unlodctr.exe.so @@ -1789,6 +1779,7 @@ fi %endif %{_libdir}/wine/wbemdisp.dll.so %{_libdir}/wine/wbemprox.dll.so +%{_libdir}/wine/wdscore.dll.so %{_libdir}/wine/webservices.dll.so %{_libdir}/wine/wer.dll.so %{_libdir}/wine/wevtapi.dll.so @@ -2173,6 +2164,10 @@ fi %endif %changelog +* Fri Feb 09 2018 Michael Cronenworth 3.1-1 +- version update +- disable wine-staging + * Sat Nov 25 2017 Michael Cronenworth 2.21-1 - version update From 26cfee826b9c07438515452bbb4aecbb5a2c0255 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Fri, 9 Feb 2018 16:21:21 -0600 Subject: [PATCH 431/715] Wine's ARM float check fails on Fedora --- wine.spec | 3 +++ 1 file changed, 3 insertions(+) diff --git a/wine.spec b/wine.spec index 13e42c9..ff6e50c 100644 --- a/wine.spec +++ b/wine.spec @@ -694,6 +694,9 @@ export CFLAGS="`echo $TEMP_CFLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno-e --x-includes=%{_includedir} --x-libraries=%{_libdir} \ --without-hal --with-dbus \ --with-x \ +%ifarch %{arm} + --with-float-abi=hard \ +%endif %ifarch x86_64 aarch64 --enable-win64 \ %endif From 676693573f42e66439a3040c13914bf6c3f11bc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Sun, 11 Feb 2018 12:21:02 +0100 Subject: [PATCH 432/715] Obsolete wine-times-new-roman-fonts, if built without wine-staging --- wine.spec | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index ff6e50c..5121940 100644 --- a/wine.spec +++ b/wine.spec @@ -22,7 +22,7 @@ Name: wine Version: 3.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -406,8 +406,11 @@ Requires: wine-system-fonts = %{version}-%{release} Requires: wine-marlett-fonts = %{version}-%{release} Requires: wine-ms-sans-serif-fonts = %{version}-%{release} Requires: wine-tahoma-fonts = %{version}-%{release} +# times-new-roman-fonts are available with compholio-patchset, only. %if 0%{?compholio} Requires: wine-times-new-roman-fonts = %{version}-%{release} +%else +Obsoletes: wine-times-new-roman-fonts <= %{version}-%{release} %endif Requires: wine-symbol-fonts = %{version}-%{release} Requires: wine-wingdings-fonts = %{version}-%{release} @@ -2167,6 +2170,9 @@ fi %endif %changelog +* Sun Feb 11 2018 Björn Esser - 3.1-2 +- Obsolete wine-times-new-roman-fonts, if built without wine-staging + * Fri Feb 09 2018 Michael Cronenworth 3.1-1 - version update - disable wine-staging From f4a8c91895f5a7a9f782f056a8b3798d8bf41eac Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 14 Feb 2018 08:42:24 -0600 Subject: [PATCH 433/715] fix upgrade path from wine-staging --- wine.spec | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/wine.spec b/wine.spec index ff6e50c..367cbf0 100644 --- a/wine.spec +++ b/wine.spec @@ -22,7 +22,7 @@ Name: wine Version: 3.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -406,9 +406,12 @@ Requires: wine-system-fonts = %{version}-%{release} Requires: wine-marlett-fonts = %{version}-%{release} Requires: wine-ms-sans-serif-fonts = %{version}-%{release} Requires: wine-tahoma-fonts = %{version}-%{release} +# times-new-roman-fonts are available with compholio-patchset, only. %if 0%{?compholio} Requires: wine-times-new-roman-fonts = %{version}-%{release} -%endif +%else # 0%{?compholio} +Obsoletes: wine-times-new-roman-fonts <= %{version}-%{release} +%endif # 0%{?compholio} Requires: wine-symbol-fonts = %{version}-%{release} Requires: wine-wingdings-fonts = %{version}-%{release} # intermediate fix for #593140 @@ -2167,6 +2170,9 @@ fi %endif %changelog +* Wed Feb 14 2018 Michael Cronenworth 3.1-2 +- fix upgrade path from wine-staging + * Fri Feb 09 2018 Michael Cronenworth 3.1-1 - version update - disable wine-staging From 4bbdeb5315dd7f1fee2a2c9e716939fbe6546cd0 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 19 Feb 2018 09:06:33 -0600 Subject: [PATCH 434/715] Update to 3.2 --- .gitignore | 4 ++-- sources | 4 ++-- wine.spec | 12 ++++++++++-- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 141eb39..44144af 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -/wine-3.1.tar.xz -/wine-3.1.tar.xz.sign +/wine-3.2.tar.xz +/wine-3.2.tar.xz.sign diff --git a/sources b/sources index 0eea7a1..245c3cd 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (wine-3.1.tar.xz) = 49c30d820b8f4028935b4d90dd6251c881cb8cd41bde8833db2782f04111a3d111e24605a87b2d70e419d54cfb6bb42d941f4593f9b381812e3602bf1307c545 -SHA512 (wine-3.1.tar.xz.sign) = 4e3c16c7e60e98cae655e8937e5f9601375b8411b0aa213f95230e9d0ff3afc791a9043901cc73919f16fe52b51741389b1f25afc22638813210e743474f6428 +SHA512 (wine-3.2.tar.xz) = 94b4903d628bf7aacd712a2bf566b53161880bf28311611106776df222222f592edb212d491f02e4c1b0c60d88e4b4a126981d445d1e18018238ff993c6c3092 +SHA512 (wine-3.2.tar.xz.sign) = 6099b578e8ef925350beef31edd7ebb940191f7b1324abfe63dc126f3646986c2d5a10047b951143aea1f1562bb7629d613887646ddfd94c7ad103a637ff6c0a diff --git a/wine.spec b/wine.spec index 367cbf0..7a82397 100644 --- a/wine.spec +++ b/wine.spec @@ -21,8 +21,8 @@ %endif Name: wine -Version: 3.1 -Release: 2%{?dist} +Version: 3.2 +Release: 1%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -83,6 +83,7 @@ ExclusiveArch: %{ix86} %{arm} BuildRequires: bison BuildRequires: flex +BuildRequires: gcc BuildRequires: autoconf BuildRequires: desktop-file-utils BuildRequires: alsa-lib-devel @@ -1160,6 +1161,7 @@ fi %{_libdir}/wine/aclui.dll.so %{_libdir}/wine/activeds.dll.so %{_libdir}/wine/actxprxy.dll.so +%{_libdir}/wine/adsldp.dll.so %{_libdir}/wine/adsldpc.dll.so %{_libdir}/wine/advapi32.dll.so %{_libdir}/wine/advpack.dll.so @@ -1332,6 +1334,7 @@ fi %{_libdir}/wine/api-ms-win-mm-time-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-ntuser-dc-access-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-ntuser-rectangle-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-perf-legacy-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-power-base-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-power-setting-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-rtcore-ntuser-private-l1-1-0.dll.so @@ -1385,6 +1388,7 @@ fi %{_libdir}/wine/bthprops.cpl.so %{_libdir}/wine/cabinet.dll.so %{_libdir}/wine/cards.dll.so +%{_libdir}/wine/cdosys.dll.so %{_libdir}/wine/cfgmgr32.dll.so %{_libdir}/wine/clock.exe.so %{_libdir}/wine/clusapi.dll.so @@ -1411,6 +1415,7 @@ fi %{_libdir}/wine/d3d10_1.dll.so %{_libdir}/wine/d3d10core.dll.so %{_libdir}/wine/d3d11.dll.so +%{_libdir}/wine/d3d12.dll.so %{_libdir}/wine/d3dcompiler_*.dll.so %{_libdir}/wine/d3dim.dll.so %{_libdir}/wine/d3drm.dll.so @@ -2170,6 +2175,9 @@ fi %endif %changelog +* Mon Feb 19 2018 Michael Cronenworth 3.2-1 +- version update + * Wed Feb 14 2018 Michael Cronenworth 3.1-2 - fix upgrade path from wine-staging From 598ea5dcbfd46704ede0c2e4779f5a5f657ae33f Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 20 Feb 2018 09:39:12 -0600 Subject: [PATCH 435/715] fix another upgrade path from wine-staging (RHBZ#1547137) --- wine.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 7a82397..eea0f65 100644 --- a/wine.spec +++ b/wine.spec @@ -22,7 +22,7 @@ Name: wine Version: 3.2 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -412,6 +412,7 @@ Requires: wine-tahoma-fonts = %{version}-%{release} Requires: wine-times-new-roman-fonts = %{version}-%{release} %else # 0%{?compholio} Obsoletes: wine-times-new-roman-fonts <= %{version}-%{release} +Obsoletes: wine-times-new-roman-fonts-system <= %{version}-%{release} %endif # 0%{?compholio} Requires: wine-symbol-fonts = %{version}-%{release} Requires: wine-wingdings-fonts = %{version}-%{release} @@ -2175,6 +2176,9 @@ fi %endif %changelog +* Tue Feb 20 2018 Michael Cronenworth 3.2-2 +- fix another upgrade path from wine-staging (RHBZ#1547137) + * Mon Feb 19 2018 Michael Cronenworth 3.2-1 - version update From 0f471f733f0f5a79ef65c24b038afa6131a7580e Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Fri, 2 Mar 2018 14:32:42 -0600 Subject: [PATCH 436/715] Update to 3.3 --- .gitignore | 4 ++-- sources | 4 ++-- wine.spec | 14 +++++++++----- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 44144af..7aa462a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -/wine-3.2.tar.xz -/wine-3.2.tar.xz.sign +/wine-3.3.tar.xz +/wine-3.3.tar.xz.sign diff --git a/sources b/sources index 245c3cd..a9463c6 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (wine-3.2.tar.xz) = 94b4903d628bf7aacd712a2bf566b53161880bf28311611106776df222222f592edb212d491f02e4c1b0c60d88e4b4a126981d445d1e18018238ff993c6c3092 -SHA512 (wine-3.2.tar.xz.sign) = 6099b578e8ef925350beef31edd7ebb940191f7b1324abfe63dc126f3646986c2d5a10047b951143aea1f1562bb7629d613887646ddfd94c7ad103a637ff6c0a +SHA512 (wine-3.3.tar.xz) = c9e4c75e94d745837208bf877b19c4e4e46df1e78082d21e716f52c9f9d93eaabbec8bf34783cda68e4275f53e37929b81ac128e5b8a13c1e5035223b2621d6a +SHA512 (wine-3.3.tar.xz.sign) = 70d4e476f330f0da5e3cdfea3b35c10c7320fb8817ce339c506b09a80e74c8f3b9ee7ddfcdb044383ceac11fde28b8b40c8ebc89e4957f95f6ed9e1fc83e2f97 diff --git a/wine.spec b/wine.spec index eea0f65..e742381 100644 --- a/wine.spec +++ b/wine.spec @@ -21,15 +21,15 @@ %endif Name: wine -Version: 3.2 -Release: 2%{?dist} +Version: 3.3 +Release: 1%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators License: LGPLv2+ -URL: http://www.winehq.org/ -Source0: http://downloads.sourceforge.net/wine/wine-%{version}.tar.xz -Source10: http://downloads.sourceforge.net/wine/wine-%{version}.tar.xz.sign +URL: https://www.winehq.org/ +Source0: https://dl.winehq.org/wine/source/3.x/wine-%{version}.tar.xz +Source10: https://dl.winehq.org/wine/source/3.x/wine-%{version}.tar.xz.sign Source1: wine.init Source2: wine.systemd @@ -1810,6 +1810,7 @@ fi %{_libdir}/wine/winehid.sys.so %{_libdir}/wine/winejoystick.drv.so %{_libdir}/wine/winemapi.dll.so +%{_libdir}/wine/winevulkan.dll.so %{_libdir}/wine/winex11.drv.so %{_libdir}/wine/wing32.dll.so %{_libdir}/wine/winhttp.dll.so @@ -2176,6 +2177,9 @@ fi %endif %changelog +* Fri Mar 02 2018 Michael Cronenworth 3.3-1 +- version update + * Tue Feb 20 2018 Michael Cronenworth 3.2-2 - fix another upgrade path from wine-staging (RHBZ#1547137) From 661d4008c38076ecfe540d2cb5a23c6e2ef0f2ac Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Fri, 2 Mar 2018 20:19:34 -0600 Subject: [PATCH 437/715] enable SDL2 and vulkan support --- wine.spec | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index e742381..9d392aa 100644 --- a/wine.spec +++ b/wine.spec @@ -22,7 +22,7 @@ Name: wine Version: 3.3 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -142,6 +142,8 @@ BuildRequires: gstreamer1-plugins-base-devel %if 0%{?fedora} > 24 BuildRequires: mpg123-devel %endif +BuildRequires: SDL2-devel +BuildRequires: vulkan-devel # Silverlight DRM-stuff needs XATTR enabled. %if 0%{?compholio} @@ -273,6 +275,8 @@ Requires: libpcap(x86-32) Requires: mesa-libOSMesa(x86-32) Requires: libv4l(x86-32) Requires: unixODBC(x86-32) +Requires: SDL2(x86-32) +Requires: vulkan(x86-32) %if 0%{?compholio} Requires: libva(x86-32) %endif @@ -295,6 +299,8 @@ Requires: libpcap(x86-64) Requires: mesa-libOSMesa(x86-64) Requires: libv4l(x86-64) Requires: unixODBC(x86-64) +Requires: SDL2(x86-64) +Requires: vulkan(x86-64) %if 0%{?compholio} Requires: libva(x86-64) %endif @@ -314,6 +320,8 @@ Requires: libpcap Requires: mesa-libOSMesa Requires: libv4l Requires: unixODBC +Requires: SDL2 +Requires: vulkan %if 0%{?compholio} Requires: libva %endif @@ -2177,6 +2185,9 @@ fi %endif %changelog +* Fri Mar 02 2018 Michael Cronenworth 3.3-2 +- enable SDL2 and vulkan support + * Fri Mar 02 2018 Michael Cronenworth 3.3-1 - version update From 633e0b04339742a3dfe40d6b0ca943000457cf64 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 17 Mar 2018 09:43:44 -0500 Subject: [PATCH 438/715] Update to 3.4 --- .gitignore | 4 ++-- sources | 4 ++-- wine.spec | 40 +++++++++++++++++++++++++++++++--------- 3 files changed, 35 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index 7aa462a..fe1acb4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -/wine-3.3.tar.xz -/wine-3.3.tar.xz.sign +/wine-3.4.tar.xz +/wine-3.4.tar.xz.sign diff --git a/sources b/sources index a9463c6..83f56b7 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (wine-3.3.tar.xz) = c9e4c75e94d745837208bf877b19c4e4e46df1e78082d21e716f52c9f9d93eaabbec8bf34783cda68e4275f53e37929b81ac128e5b8a13c1e5035223b2621d6a -SHA512 (wine-3.3.tar.xz.sign) = 70d4e476f330f0da5e3cdfea3b35c10c7320fb8817ce339c506b09a80e74c8f3b9ee7ddfcdb044383ceac11fde28b8b40c8ebc89e4957f95f6ed9e1fc83e2f97 +SHA512 (wine-3.4.tar.xz) = 5787bf3fa13d363302ee26f86b96ed728b2b06184572021efdbb00b2c8ebd088056c6d9e22c6c78f0edc0a0b12e26facccc51f08970c8c5eaab4309e86b4286c +SHA512 (wine-3.4.tar.xz.sign) = fab6fe8960c3279d25b4706cce6975cc76461ca99bd4f80b7253c1ccf8fae3af85ef19112c87491bac24b2af6728d171cd53af13fc8c56882e4ed485edef6481 diff --git a/wine.spec b/wine.spec index 9d392aa..1ca6481 100644 --- a/wine.spec +++ b/wine.spec @@ -21,8 +21,8 @@ %endif Name: wine -Version: 3.3 -Release: 2%{?dist} +Version: 3.4 +Release: 1%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -1220,6 +1220,7 @@ fi %{_libdir}/wine/api-ms-win-core-io-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-job-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-job-l2-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-largeinteger-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-kernel32-legacy-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-kernel32-legacy-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-kernel32-private-l1-1-1.dll.so @@ -1337,6 +1338,7 @@ fi %{_libdir}/wine/api-ms-win-eventing-legacy-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-eventing-provider-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-eventlog-legacy-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-gdi-dpiinfo-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-mm-joystick-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-mm-misc-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-mm-mme-l1-1-0.dll.so @@ -1346,7 +1348,13 @@ fi %{_libdir}/wine/api-ms-win-perf-legacy-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-power-base-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-power-setting-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-rtcore-ntuser-draw-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-rtcore-ntuser-private-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-rtcore-ntuser-private-l1-1-4.dll.so +%{_libdir}/wine/api-ms-win-rtcore-ntuser-window-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-rtcore-ntuser-winevent-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-rtcore-ntuser-wmpointer-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-rtcore-ntuser-wmpointer-l1-1-3.dll.so %{_libdir}/wine/api-ms-win-security-activedirectoryclient-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-security-audit-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-security-base-l1-1-0.dll.so @@ -1369,16 +1377,14 @@ fi %{_libdir}/wine/api-ms-win-service-private-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-service-winsvc-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-service-winsvc-l1-2-0.dll.so +%{_libdir}/wine/api-ms-win-shcore-obsolete-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-shcore-scaling-l1-1-1.dll.so +%{_libdir}/wine/api-ms-win-shcore-stream-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-shcore-thread-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-shell-shellcom-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-shell-shellfolders-l1-1-0.dll.so %if 0%{?compholio} %{_libdir}/wine/api-ms-win-appmodel-runtime-l1-1-1.dll.so -%{_libdir}/wine/api-ms-win-rtcore-ntuser-draw-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-rtcore-ntuser-window-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-shcore-obsolete-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-shcore-stream-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-shcore-thread-l1-1-0.dll.so %endif %{_libdir}/wine/apphelp.dll.so %{_libdir}/wine/appwiz.cpl.so @@ -1483,6 +1489,7 @@ fi %{_libdir}/wine/explorerframe.dll.so %{_libdir}/wine/ext-ms-win-authz-context-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-domainjoin-netjoin-l1-1-0.dll.so +%{_libdir}/wine/ext-ms-win-dwmapi-ext-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-gdi-dc-l1-2-0.dll.so %{_libdir}/wine/ext-ms-win-gdi-dc-create-l1-1-1.dll.so %{_libdir}/wine/ext-ms-win-gdi-devcaps-l1-1-0.dll.so @@ -1490,24 +1497,35 @@ fi %{_libdir}/wine/ext-ms-win-gdi-render-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-kernel32-package-l1-1-1.dll.so %{_libdir}/wine/ext-ms-win-kernel32-package-current-l1-1-0.dll.so +%{_libdir}/wine/ext-ms-win-ntuser-draw-l1-1-0.dll.so +%{_libdir}/wine/ext-ms-win-ntuser-gui-l1-3-0.dll.so +%{_libdir}/wine/ext-ms-win-ntuser-keyboard-l1-3-0.dll.so +%{_libdir}/wine/ext-ms-win-ntuser-misc-l1-5-1.dll.so %{_libdir}/wine/ext-ms-win-ntuser-message-l1-1-1.dll.so +%{_libdir}/wine/ext-ms-win-ntuser-mouse-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-ntuser-private-l1-1-1.dll.so +%{_libdir}/wine/ext-ms-win-ntuser-private-l1-3-1.dll.so %{_libdir}/wine/ext-ms-win-ntuser-rectangle-ext-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-ntuser-uicontext-ext-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-ntuser-window-l1-1-1.dll.so +%{_libdir}/wine/ext-ms-win-ntuser-window-l1-1-4.dll.so %{_libdir}/wine/ext-ms-win-ntuser-windowclass-l1-1-1.dll.so +%{_libdir}/wine/ext-ms-win-oleacc-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-ras-rasapi32-l1-1-0.dll.so +%{_libdir}/wine/ext-ms-win-rtcore-gdi-devcaps-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-rtcore-gdi-object-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-rtcore-gdi-rgn-l1-1-0.dll.so +%{_libdir}/wine/ext-ms-win-rtcore-ntuser-cursor-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-rtcore-ntuser-dc-access-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-rtcore-ntuser-dpi-l1-1-0.dll.so +%{_libdir}/wine/ext-ms-win-rtcore-ntuser-dpi-l1-2-0.dll.so +%{_libdir}/wine/ext-ms-win-rtcore-ntuser-rawinput-l1-1-0.dll.so +%{_libdir}/wine/ext-ms-win-rtcore-ntuser-syscolors-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-rtcore-ntuser-sysparams-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-security-credui-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-security-cryptui-l1-1-0.dll.so %if 0%{?compholio} %{_libdir}/wine/ext-ms-win-appmodel-usercontext-l1-1-0.dll.so -%{_libdir}/wine/ext-ms-win-ntuser-mouse-l1-1-0.dll.so -%{_libdir}/wine/ext-ms-win-rtcore-ntuser-syscolors-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-uxtheme-themes-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-xaml-pal-l1-1-0.dll.so %endif @@ -1671,6 +1689,7 @@ fi %{_libdir}/wine/netprofm.dll.so %{_libdir}/wine/netsh.exe.so %{_libdir}/wine/newdev.dll.so +%{_libdir}/wine/ninput.dll.so %{_libdir}/wine/normaliz.dll.so %{_libdir}/wine/npmshtml.dll.so %{_libdir}/wine/npptools.dll.so @@ -2185,6 +2204,9 @@ fi %endif %changelog +* Fri Mar 16 2018 Michael Cronenworth 3.4-1 +- version update + * Fri Mar 02 2018 Michael Cronenworth 3.3-2 - enable SDL2 and vulkan support From 929de35ca6f96b27bf62c21ee3bf15fea8a16058 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 2 Apr 2018 23:23:11 -0500 Subject: [PATCH 439/715] Update to 3.5 --- .gitignore | 4 ++-- sources | 4 ++-- wine.spec | 10 ++++++---- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index fe1acb4..b52479f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -/wine-3.4.tar.xz -/wine-3.4.tar.xz.sign +/wine-3.5.tar.xz +/wine-3.5.tar.xz.sign diff --git a/sources b/sources index 83f56b7..ce8da2e 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (wine-3.4.tar.xz) = 5787bf3fa13d363302ee26f86b96ed728b2b06184572021efdbb00b2c8ebd088056c6d9e22c6c78f0edc0a0b12e26facccc51f08970c8c5eaab4309e86b4286c -SHA512 (wine-3.4.tar.xz.sign) = fab6fe8960c3279d25b4706cce6975cc76461ca99bd4f80b7253c1ccf8fae3af85ef19112c87491bac24b2af6728d171cd53af13fc8c56882e4ed485edef6481 +SHA512 (wine-3.5.tar.xz) = c1e36f3db862fdedd00c3ac20c84c6eb799b53fe32e959b481a6168baf7d9725ed9bd0a97e7f9b651e3ccfba4f8fb623445369be03fde5010ed0fcb0a53e7d3f +SHA512 (wine-3.5.tar.xz.sign) = 0922beb160f378528c3605b34b82734412d40d0c7fea82598254e16f596e496974f3a21b88f32bf8b0c1ba49e2e1db22615991c96e0bebaa99e24a7b0c51c508 diff --git a/wine.spec b/wine.spec index 1ca6481..e8ed4bd 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ %endif Name: wine -Version: 3.4 +Version: 3.5 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1743,6 +1743,7 @@ fi %{_libdir}/wine/rtutils.dll.so %{_libdir}/wine/samlib.dll.so %{_libdir}/wine/sapi.dll.so +%{_libdir}/wine/sas.dll.so %{_libdir}/wine/sc.exe.so %{_libdir}/wine/scarddlg.dll.so %{_libdir}/wine/sccbase.dll.so @@ -1772,6 +1773,7 @@ fi %{_libdir}/wine/stdole2.tlb.so %{_libdir}/wine/stdole32.tlb.so %{_libdir}/wine/sti.dll.so +%{_libdir}/wine/strmdll.dll.so %{_libdir}/wine/subst.exe.so %{_libdir}/wine/svchost.exe.so %{_libdir}/wine/svrapi.dll.so @@ -1812,10 +1814,7 @@ fi %{_libdir}/wine/version.dll.so %{_libdir}/wine/virtdisk.dll.so %{_libdir}/wine/vssapi.dll.so -%if 0%{?compholio} %{_libdir}/wine/vulkan-1.dll.so -%{_libdir}/wine/vulkan.dll.so -%endif %{_libdir}/wine/wbemdisp.dll.so %{_libdir}/wine/wbemprox.dll.so %{_libdir}/wine/wdscore.dll.so @@ -2204,6 +2203,9 @@ fi %endif %changelog +* Tue Apr 03 2018 Michael Cronenworth 3.5-1 +- version update + * Fri Mar 16 2018 Michael Cronenworth 3.4-1 - version update From 561a613ba21a98c07c35524f5e4a01dd55a5170b Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 14 Apr 2018 22:31:41 -0500 Subject: [PATCH 440/715] Update to 3.6, enable staging --- .gitignore | 5 +++-- sources | 5 +++-- wine.spec | 23 ++++++++--------------- 3 files changed, 14 insertions(+), 19 deletions(-) diff --git a/.gitignore b/.gitignore index b52479f..beff821 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ -/wine-3.5.tar.xz -/wine-3.5.tar.xz.sign +/wine-3.6.tar.xz +/wine-3.6.tar.xz.sign +/wine-staging-3.6.tar.gz diff --git a/sources b/sources index ce8da2e..87f5673 100644 --- a/sources +++ b/sources @@ -1,2 +1,3 @@ -SHA512 (wine-3.5.tar.xz) = c1e36f3db862fdedd00c3ac20c84c6eb799b53fe32e959b481a6168baf7d9725ed9bd0a97e7f9b651e3ccfba4f8fb623445369be03fde5010ed0fcb0a53e7d3f -SHA512 (wine-3.5.tar.xz.sign) = 0922beb160f378528c3605b34b82734412d40d0c7fea82598254e16f596e496974f3a21b88f32bf8b0c1ba49e2e1db22615991c96e0bebaa99e24a7b0c51c508 +SHA512 (wine-3.6.tar.xz) = 31d24cc78734bdb743afcec7df05b641ab0625568361401eaf8cd5e217719c8c51a0ef7ed737a560fe42cb9ecd88f10d35e62a98d9df69b966502a5b0dab5a22 +SHA512 (wine-3.6.tar.xz.sign) = 0e3cc6ca6630e94581a09a466eea58148e8ab65fd98b5350aeb7bb3e949c524ce806b760522795047572399fa21f4e12deb15613007cc86da812ec36ce959647 +SHA512 (wine-staging-3.6.tar.gz) = 839731fa3dba91cefd9e0f036b4d688c4786fe8cb19143819457fb9e45a6c14ef3a70630b585abdd424a00036312114034a2529700012ea1863527e45fbfac2a diff --git a/wine.spec b/wine.spec index e8ed4bd..6c03fa0 100644 --- a/wine.spec +++ b/wine.spec @@ -9,7 +9,7 @@ # build with compholio-patches, see: http://www.compholio.com/wine-compholio/ # wine-staging appears to be dead %if 0%{?fedora} -%global compholio 0 +%global compholio 1 %endif # 0%{?fedora} # binfmt macros for RHEL @@ -21,7 +21,7 @@ %endif Name: wine -Version: 3.5 +Version: 3.6 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -72,7 +72,7 @@ Patch511: wine-cjk.patch %if 0%{?compholio} # wine compholio patches for wine-staging # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/compholio/wine-compholio/archive/v%{version}.tar.gz#/wine-staging-%{version}.tar.gz +Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar.gz#/wine-staging-%{version}.tar.gz %endif %if !%{?no64bit} @@ -694,13 +694,7 @@ sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in # disable fortify as it breaks wine # http://bugs.winehq.org/show_bug.cgi?id=24606 # http://bugs.winehq.org/show_bug.cgi?id=25073 -%if 0%{?fedora} < 26 export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno-error" -%else -# https://bugzilla.redhat.com/show_bug.cgi?id=1406093 -export TEMP_CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-O2/-O1/'`" -export CFLAGS="`echo $TEMP_CFLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno-error" -%endif %configure \ --sysconfdir=%{_sysconfdir}/wine \ @@ -1383,9 +1377,6 @@ fi %{_libdir}/wine/api-ms-win-shcore-thread-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-shell-shellcom-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-shell-shellfolders-l1-1-0.dll.so -%if 0%{?compholio} -%{_libdir}/wine/api-ms-win-appmodel-runtime-l1-1-1.dll.so -%endif %{_libdir}/wine/apphelp.dll.so %{_libdir}/wine/appwiz.cpl.so %{_libdir}/wine/atl.dll.so @@ -1769,6 +1760,7 @@ fi %{_libdir}/wine/snmpapi.dll.so %{_libdir}/wine/softpub.dll.so %{_libdir}/wine/spoolsv.exe.so +%{_libdir}/wine/srclient.dll.so %{_libdir}/wine/sspicli.dll.so %{_libdir}/wine/stdole2.tlb.so %{_libdir}/wine/stdole32.tlb.so @@ -1829,9 +1821,6 @@ fi %{_libdir}/wine/windowscodecs.dll.so %{_libdir}/wine/windowscodecsext.dll.so %{_libdir}/wine/winebus.sys.so -%if 0%{?compholio} -%{_libdir}/wine/wined3d-csmt.dll.so -%endif %{_libdir}/wine/winegstreamer.dll.so %{_libdir}/wine/winehid.sys.so %{_libdir}/wine/winejoystick.drv.so @@ -2203,6 +2192,10 @@ fi %endif %changelog +* Sat Apr 14 2018 Michael Cronenworth 3.6-1 +- version update +- enable wine-staging + * Tue Apr 03 2018 Michael Cronenworth 3.5-1 - version update From b2411fe8690c16ad61780c716ba41d4a041cadf6 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 15 Apr 2018 09:58:14 -0500 Subject: [PATCH 441/715] Skip fsutil patch, breaks ARMv7 --- wine.spec | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/wine.spec b/wine.spec index 6c03fa0..2284f1c 100644 --- a/wine.spec +++ b/wine.spec @@ -681,8 +681,9 @@ This package adds the opencl driver for wine. # setup and apply wine-staging patches gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 -# disable shell32-ACE_Viewer patch for now, breaks ARMv7 -patches/patchinstall.sh DESTDIR="`pwd`" --all -W shell32-ACE_Viewer +# disable some patches for now, breaks ARMv7 +# https://bugs.winehq.org/show_bug.cgi?id=44099 +patches/patchinstall.sh DESTDIR="`pwd`" --all -W shell32-ACE_Viewer -W fsutil-Stub_Program # fix parallelized build sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in From 77994da36ea9bed3fbc6c9f29ab080f67e33ecd8 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 15 Apr 2018 10:46:53 -0500 Subject: [PATCH 442/715] Disable another patch --- wine.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 2284f1c..eb35e74 100644 --- a/wine.spec +++ b/wine.spec @@ -683,7 +683,10 @@ gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 # disable some patches for now, breaks ARMv7 # https://bugs.winehq.org/show_bug.cgi?id=44099 -patches/patchinstall.sh DESTDIR="`pwd`" --all -W shell32-ACE_Viewer -W fsutil-Stub_Program +patches/patchinstall.sh DESTDIR="`pwd`" --all \ + -W shell32-ACE_Viewer \ + -W fsutil-Stub_Program \ + -W advapi32-Token_Integrity_Level # fix parallelized build sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in From ecb73dbe2b9c908b6e00650a5df0b3a82350b5a6 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 15 Apr 2018 11:07:03 -0500 Subject: [PATCH 443/715] Disable runas.exe from file list --- wine.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index eb35e74..77dea46 100644 --- a/wine.spec +++ b/wine.spec @@ -1058,7 +1058,7 @@ fi %doc documentation/README.* %if 0%{?compholio} %{_bindir}/msidb -%{_libdir}/wine/runas.exe.so +#{_libdir}/wine/runas.exe.so %endif %{_bindir}/winedump %{_libdir}/wine/explorer.exe.so From 8abf3809077f3fe50b253202efe16054ea44749f Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 12 May 2018 11:11:55 -0500 Subject: [PATCH 444/715] Update to 3.8 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 19 ++++++++++--------- 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/.gitignore b/.gitignore index beff821..6e7b3d0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-3.6.tar.xz -/wine-3.6.tar.xz.sign -/wine-staging-3.6.tar.gz +/wine-3.8.tar.xz +/wine-3.8.tar.xz.sign +/wine-staging-3.8.tar.gz diff --git a/sources b/sources index 87f5673..0c28232 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-3.6.tar.xz) = 31d24cc78734bdb743afcec7df05b641ab0625568361401eaf8cd5e217719c8c51a0ef7ed737a560fe42cb9ecd88f10d35e62a98d9df69b966502a5b0dab5a22 -SHA512 (wine-3.6.tar.xz.sign) = 0e3cc6ca6630e94581a09a466eea58148e8ab65fd98b5350aeb7bb3e949c524ce806b760522795047572399fa21f4e12deb15613007cc86da812ec36ce959647 -SHA512 (wine-staging-3.6.tar.gz) = 839731fa3dba91cefd9e0f036b4d688c4786fe8cb19143819457fb9e45a6c14ef3a70630b585abdd424a00036312114034a2529700012ea1863527e45fbfac2a +SHA512 (wine-3.8.tar.xz) = 387c6bff3eafac7e92030d11c02b3461b4ead059d2aad7f6d903e176f304d2ac0a426132fcd452507868f0d22bb360a30734edf3e73dfd514037458f08406e98 +SHA512 (wine-3.8.tar.xz.sign) = 169462c3c4d77ce7f843a3936c3f622350056b13b72672c1132f944f40908f16b2d4597f018d455f8766d2ca790d80e18529b7e11666509b2f871dc8df55dc01 +SHA512 (wine-staging-3.8.tar.gz) = 46ba27b0b9fe5f86d1647f12050715b796604c91487cad6847dce5250ffcfdf8ccf44dcff79c88048221cbf58af92ed72523c09f3591e2c5306bba24ff9d154c diff --git a/wine.spec b/wine.spec index 77dea46..8231222 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ %endif Name: wine -Version: 3.6 +Version: 3.8 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -681,12 +681,7 @@ This package adds the opencl driver for wine. # setup and apply wine-staging patches gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 -# disable some patches for now, breaks ARMv7 -# https://bugs.winehq.org/show_bug.cgi?id=44099 -patches/patchinstall.sh DESTDIR="`pwd`" --all \ - -W shell32-ACE_Viewer \ - -W fsutil-Stub_Program \ - -W advapi32-Token_Integrity_Level +patches/patchinstall.sh DESTDIR="`pwd`" --all # fix parallelized build sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in @@ -1058,13 +1053,14 @@ fi %doc documentation/README.* %if 0%{?compholio} %{_bindir}/msidb -#{_libdir}/wine/runas.exe.so +%{_libdir}/wine/runas.exe.so %endif %{_bindir}/winedump %{_libdir}/wine/explorer.exe.so %{_libdir}/wine/cabarc.exe.so %{_libdir}/wine/control.exe.so %{_libdir}/wine/cmd.exe.so +%{_libdir}/wine/dxdiag.exe.so %{_libdir}/wine/notepad.exe.so %{_libdir}/wine/plugplay.exe.so %{_libdir}/wine/progman.exe.so @@ -1074,11 +1070,11 @@ fi %{_libdir}/wine/winemine.exe.so %{_libdir}/wine/winemsibuilder.exe.so %{_libdir}/wine/winepath.exe.so +%{_libdir}/wine/winmgmt.exe.so %{_libdir}/wine/winver.exe.so %{_libdir}/wine/wordpad.exe.so %{_libdir}/wine/write.exe.so %{_libdir}/wine/wusa.exe.so -%{_libdir}/wine/dxdiag.exe.so %ifarch %{ix86} %{arm} %{_bindir}/wine32 @@ -1388,6 +1384,7 @@ fi %{_libdir}/wine/atl90.dll.so %{_libdir}/wine/atl100.dll.so %{_libdir}/wine/atl110.dll.so +%{_libdir}/wine/atmlib.dll.so %{_libdir}/wine/authz.dll.so %{_libdir}/wine/avicap32.dll.so %{_libdir}/wine/avifil32.dll.so @@ -1606,6 +1603,7 @@ fi %{_libdir}/wine/mmdevapi.dll.so %{_libdir}/wine/mofcomp.exe.so %{_libdir}/wine/mountmgr.sys.so +%{_libdir}/wine/mp3dmod.dll.so %{_libdir}/wine/mpr.dll.so %{_libdir}/wine/mprapi.dll.so %{_libdir}/wine/msacm32.dll.so @@ -2196,6 +2194,9 @@ fi %endif %changelog +* Sat May 12 2018 Michael Cronenworth 3.8-1 +- version update + * Sat Apr 14 2018 Michael Cronenworth 3.6-1 - version update - enable wine-staging From e9fd18efa1f753f731d202f51e54639bbea7352d Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 12 May 2018 12:09:08 -0500 Subject: [PATCH 445/715] Wine 3.8 now requires Clang on ARM64 https://source.winehq.org/git/wine.git/commit/8fb8cc03c3edb599dd98f369e14a08f899cbff95 --- wine.spec | 3 +++ 1 file changed, 3 insertions(+) diff --git a/wine.spec b/wine.spec index 8231222..c3f0185 100644 --- a/wine.spec +++ b/wine.spec @@ -84,6 +84,9 @@ ExclusiveArch: %{ix86} %{arm} BuildRequires: bison BuildRequires: flex BuildRequires: gcc +%ifarch aarch64 +BuildRequires: clang >= 5.0 +%endif BuildRequires: autoconf BuildRequires: desktop-file-utils BuildRequires: alsa-lib-devel From 20bc4ba006fdb0b914f7e7effdb04f7495e1859b Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 12 May 2018 12:19:45 -0500 Subject: [PATCH 446/715] Try not installing gcc on ARM64 --- wine.spec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index c3f0185..c0c41c1 100644 --- a/wine.spec +++ b/wine.spec @@ -83,9 +83,10 @@ ExclusiveArch: %{ix86} %{arm} BuildRequires: bison BuildRequires: flex -BuildRequires: gcc %ifarch aarch64 BuildRequires: clang >= 5.0 +%else +BuildRequires: gcc %endif BuildRequires: autoconf BuildRequires: desktop-file-utils From 4c071d0d0ad2f48b9848268383205ecab883747b Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 12 May 2018 12:35:28 -0500 Subject: [PATCH 447/715] Try exporting CC for ARM64 --- wine.spec | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/wine.spec b/wine.spec index c0c41c1..bf6c1b7 100644 --- a/wine.spec +++ b/wine.spec @@ -699,6 +699,12 @@ sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in # http://bugs.winehq.org/show_bug.cgi?id=25073 export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno-error" +%ifarch aarch64 +# ARM64 now requires clang +# https://source.winehq.org/git/wine.git/commit/8fb8cc03c3edb599dd98f369e14a08f899cbff95 +export CC="/usr/bin/clang" +%endif + %configure \ --sysconfdir=%{_sysconfdir}/wine \ --x-includes=%{_includedir} --x-libraries=%{_libdir} \ From 3c45e52305c91e4b24da70d585d280e80c10e25f Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 30 May 2018 09:36:07 -0500 Subject: [PATCH 448/715] Update to 3.9 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 6 +++++- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 6e7b3d0..39604cc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-3.8.tar.xz -/wine-3.8.tar.xz.sign -/wine-staging-3.8.tar.gz +/wine-3.9.tar.xz +/wine-3.9.tar.xz.sign +/wine-staging-3.9.tar.gz diff --git a/sources b/sources index 0c28232..01d0b58 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-3.8.tar.xz) = 387c6bff3eafac7e92030d11c02b3461b4ead059d2aad7f6d903e176f304d2ac0a426132fcd452507868f0d22bb360a30734edf3e73dfd514037458f08406e98 -SHA512 (wine-3.8.tar.xz.sign) = 169462c3c4d77ce7f843a3936c3f622350056b13b72672c1132f944f40908f16b2d4597f018d455f8766d2ca790d80e18529b7e11666509b2f871dc8df55dc01 -SHA512 (wine-staging-3.8.tar.gz) = 46ba27b0b9fe5f86d1647f12050715b796604c91487cad6847dce5250ffcfdf8ccf44dcff79c88048221cbf58af92ed72523c09f3591e2c5306bba24ff9d154c +SHA512 (wine-3.9.tar.xz) = 4c4e5a741a61b9427c175e015177df5806638736f7dfd92098ed95239d41a373cbab876c054d3c948e1db6a7de359db3babd63bc194edc8c2c3be28b58f75e64 +SHA512 (wine-3.9.tar.xz.sign) = ebc5d24e3ec53979b0a592a328e869d7cc63ad6d912f052cd2245a5fcd34247e1fcca0cdd8264df6527a2c75b0e7c024da719ea8fcafdf2bd0f2b6b430df0db7 +SHA512 (wine-staging-3.9.tar.gz) = 4f52937621b7e5a3f4b3e52ecba8c7d318c621e76c8e4ce3be176d56b382bf06e3a0453d37c3b725df63f0a7349f53a7c075148c7e1ed89a028696538e31acad diff --git a/wine.spec b/wine.spec index bf6c1b7..557b14a 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ %endif Name: wine -Version: 3.8 +Version: 3.9 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -147,6 +147,7 @@ BuildRequires: gstreamer1-plugins-base-devel BuildRequires: mpg123-devel %endif BuildRequires: SDL2-devel +BuildRequires: libvkd3d-devel BuildRequires: vulkan-devel # Silverlight DRM-stuff needs XATTR enabled. @@ -2204,6 +2205,9 @@ fi %endif %changelog +* Wed May 30 2018 Michael Cronenworth 3.9-1 +- version update + * Sat May 12 2018 Michael Cronenworth 3.8-1 - version update From 40eb4c3ad893c3fc9f26592b92e54e477d9a09bf Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 12 Jun 2018 09:05:20 -0500 Subject: [PATCH 449/715] Update to 3.10 --- .gitignore | 6 ++-- sources | 6 ++-- wine.spec | 90 +++++++++++++++++++++++++++++------------------------- 3 files changed, 55 insertions(+), 47 deletions(-) diff --git a/.gitignore b/.gitignore index 39604cc..0bbf6e3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-3.9.tar.xz -/wine-3.9.tar.xz.sign -/wine-staging-3.9.tar.gz +/wine-3.10.tar.xz +/wine-3.10.tar.xz.sign +/wine-staging-3.10.tar.gz diff --git a/sources b/sources index 01d0b58..c0ad9c4 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-3.9.tar.xz) = 4c4e5a741a61b9427c175e015177df5806638736f7dfd92098ed95239d41a373cbab876c054d3c948e1db6a7de359db3babd63bc194edc8c2c3be28b58f75e64 -SHA512 (wine-3.9.tar.xz.sign) = ebc5d24e3ec53979b0a592a328e869d7cc63ad6d912f052cd2245a5fcd34247e1fcca0cdd8264df6527a2c75b0e7c024da719ea8fcafdf2bd0f2b6b430df0db7 -SHA512 (wine-staging-3.9.tar.gz) = 4f52937621b7e5a3f4b3e52ecba8c7d318c621e76c8e4ce3be176d56b382bf06e3a0453d37c3b725df63f0a7349f53a7c075148c7e1ed89a028696538e31acad +SHA512 (wine-3.10.tar.xz) = bb1a1d8e8ad7f48d9fcf48ebbf0ebbb8e3b45ea211736bd7837144ea34b373f74955d3c0ccc4cdc44020eea23c8af8e67252e1c5cd6115e11419ad5f6ef24843 +SHA512 (wine-3.10.tar.xz.sign) = 7635b06b7a72b974bbce8bfa053fd59ab1c3c619ce71a3b59da32d8e195d1025df85cfbc614586c320135c524e5810a84d68a3043913a3555146a058dfd85328 +SHA512 (wine-staging-3.10.tar.gz) = baae31ce569c06f8ac5ffc579d8f3bb95de55c50b83c1db13eaaeaee5c8c5b3b7fb6028d69dce6645ac697692372a65be8d60532123a94e0f5fcd0778d2082c5 diff --git a/wine.spec b/wine.spec index 557b14a..0e448cb 100644 --- a/wine.spec +++ b/wine.spec @@ -6,10 +6,9 @@ %global winemono 4.7.1 #global _default_patch_fuzz 2 -# build with compholio-patches, see: http://www.compholio.com/wine-compholio/ -# wine-staging appears to be dead +# build with wine-staging patches, see: https://github.com/wine-staging/wine-staging %if 0%{?fedora} -%global compholio 1 +%global wine_staging 1 %endif # 0%{?fedora} # binfmt macros for RHEL @@ -21,7 +20,7 @@ %endif Name: wine -Version: 3.9 +Version: 3.10 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -69,8 +68,8 @@ Source502: wine-README-tahoma Patch511: wine-cjk.patch -%if 0%{?compholio} -# wine compholio patches for wine-staging +%if 0%{?wine_staging} +# wine-staging patches # pulseaudio-patch is covered by that patch-set, too. Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar.gz#/wine-staging-%{version}.tar.gz %endif @@ -151,11 +150,11 @@ BuildRequires: libvkd3d-devel BuildRequires: vulkan-devel # Silverlight DRM-stuff needs XATTR enabled. -%if 0%{?compholio} +%if 0%{?wine_staging} BuildRequires: gtk3-devel BuildRequires: libattr-devel BuildRequires: libva-devel -%endif # 0%{?compholio} +%endif # 0%{?wine_staging} %if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 BuildRequires: openal-soft-devel @@ -282,7 +281,7 @@ Requires: libv4l(x86-32) Requires: unixODBC(x86-32) Requires: SDL2(x86-32) Requires: vulkan(x86-32) -%if 0%{?compholio} +%if 0%{?wine_staging} Requires: libva(x86-32) %endif %endif @@ -306,7 +305,7 @@ Requires: libv4l(x86-64) Requires: unixODBC(x86-64) Requires: SDL2(x86-64) Requires: vulkan(x86-64) -%if 0%{?compholio} +%if 0%{?wine_staging} Requires: libva(x86-64) %endif %endif @@ -327,7 +326,7 @@ Requires: libv4l Requires: unixODBC Requires: SDL2 Requires: vulkan -%if 0%{?compholio} +%if 0%{?wine_staging} Requires: libva %endif %endif @@ -407,12 +406,12 @@ handler service. Summary: Wine font files Group: Applications/Emulators BuildArch: noarch -# arial-fonts are available with compholio-patchset, only. -%if 0%{?compholio} +# arial-fonts are available with wine-staging patchset, only. +%if 0%{?wine_staging} Requires: wine-arial-fonts = %{version}-%{release} -%else # 0%{?compholio} +%else # 0%{?wine_staging} Obsoletes: wine-arial-fonts <= %{version}-%{release} -%endif # 0%{?compholio} +%endif # 0%{?wine_staging} Requires: wine-courier-fonts = %{version}-%{release} Requires: wine-fixedsys-fonts = %{version}-%{release} Requires: wine-small-fonts = %{version}-%{release} @@ -420,13 +419,13 @@ Requires: wine-system-fonts = %{version}-%{release} Requires: wine-marlett-fonts = %{version}-%{release} Requires: wine-ms-sans-serif-fonts = %{version}-%{release} Requires: wine-tahoma-fonts = %{version}-%{release} -# times-new-roman-fonts are available with compholio-patchset, only. -%if 0%{?compholio} +# times-new-roman-fonts are available with wine_staging-patchset, only. +%if 0%{?wine_staging} Requires: wine-times-new-roman-fonts = %{version}-%{release} -%else # 0%{?compholio} +%else # 0%{?wine_staging} Obsoletes: wine-times-new-roman-fonts <= %{version}-%{release} Obsoletes: wine-times-new-roman-fonts-system <= %{version}-%{release} -%endif # 0%{?compholio} +%endif # 0%{?wine_staging} Requires: wine-symbol-fonts = %{version}-%{release} Requires: wine-wingdings-fonts = %{version}-%{release} # intermediate fix for #593140 @@ -438,7 +437,7 @@ Requires: liberation-narrow-fonts %description fonts %{summary} -%if 0%{?compholio} +%if 0%{?wine_staging} %package arial-fonts Summary: Wine Arial font family Group: User Interface/X @@ -447,7 +446,7 @@ Requires: fontpackages-filesystem %description arial-fonts %{summary} -%endif # 0%{?compholio} +%endif # 0%{?wine_staging} %package courier-fonts Summary: Wine Courier font family @@ -528,7 +527,7 @@ Requires: wine-tahoma-fonts = %{version}-%{release} %description tahoma-fonts-system %{summary} -%if 0%{?compholio} +%if 0%{?wine_staging} %package times-new-roman-fonts Summary: Wine Times New Roman font family Group: User Interface/X @@ -682,7 +681,7 @@ This package adds the opencl driver for wine. %setup -q -n wine-%{version} %patch511 -p1 -b.cjk -%if 0%{?compholio} +%if 0%{?wine_staging} # setup and apply wine-staging patches gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 @@ -691,7 +690,7 @@ patches/patchinstall.sh DESTDIR="`pwd`" --all # fix parallelized build sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in -%endif # 0%{?compholio} +%endif # 0%{?wine_staging} %build @@ -717,7 +716,7 @@ export CC="/usr/bin/clang" %ifarch x86_64 aarch64 --enable-win64 \ %endif -%{?compholio: --with-xattr} \ +%{?wine_staging: --with-xattr} \ --disable-tests make %{?_smp_mflags} TARGETFLAGS="" @@ -919,7 +918,7 @@ install -p -m 0644 %{SOURCE501} %{buildroot}%{_fontconfig_templatedir}/20-wine-t ln -s %{_fontconfig_templatedir}/20-wine-tahoma-nobitmaps.conf \ %{buildroot}%{_fontconfig_confdir}/20-wine-tahoma-nobitmaps.conf -%if 0%{?compholio} +%if 0%{?wine_staging} # install Times New Roman font for system package install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-times-new-roman-fonts pushd %{buildroot}/%{_datadir}/fonts/wine-times-new-roman-fonts @@ -1062,7 +1061,7 @@ fi %doc VERSION # do not include huge changelogs .OLD .ALPHA .BETA (#204302) %doc documentation/README.* -%if 0%{?compholio} +%if 0%{?wine_staging} %{_bindir}/msidb %{_libdir}/wine/runas.exe.so %endif @@ -1121,17 +1120,20 @@ fi %{_libdir}/wine/cacls.exe.so %{_libdir}/wine/conhost.exe.so %{_libdir}/wine/cscript.exe.so +%{_libdir}/wine/dism.exe.so %{_libdir}/wine/dpnsvr.exe.so %{_libdir}/wine/eject.exe.so %{_libdir}/wine/expand.exe.so %{_libdir}/wine/extrac32.exe.so +%{_libdir}/wine/fc.exe.so +%{_libdir}/wine/find.exe.so %{_libdir}/wine/findstr.exe.so %{_libdir}/wine/fsutil.exe.so %{_libdir}/wine/hostname.exe.so %{_libdir}/wine/ipconfig.exe.so %{_libdir}/wine/winhlp32.exe.so %{_libdir}/wine/mshta.exe.so -%if 0%{?compholio} +%if 0%{?wine_staging} %{_libdir}/wine/msidb.exe.so %endif %{_libdir}/wine/msiexec.exe.so @@ -1482,7 +1484,7 @@ fi %{_libdir}/wine/dx8vb.dll.so %{_libdir}/wine/dxdiagn.dll.so %{_libdir}/wine/dxgi.dll.so -%if 0%{?compholio} +%if 0%{?wine_staging} %{_libdir}/wine/dxgkrnl.sys.so %{_libdir}/wine/dxgmms1.sys.so %endif @@ -1527,13 +1529,13 @@ fi %{_libdir}/wine/ext-ms-win-rtcore-ntuser-sysparams-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-security-credui-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-security-cryptui-l1-1-0.dll.so -%if 0%{?compholio} +%if 0%{?wine_staging} %{_libdir}/wine/ext-ms-win-appmodel-usercontext-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-uxtheme-themes-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-xaml-pal-l1-1-0.dll.so %endif %{_libdir}/wine/faultrep.dll.so -%if 0%{?compholio} +%if 0%{?wine_staging} %{_libdir}/wine/feclient.dll.so %endif %{_libdir}/wine/fltlib.dll.so @@ -1561,7 +1563,7 @@ fi %{_libdir}/wine/icinfo.exe.so %{_libdir}/wine/icmp.dll.so %{_libdir}/wine/ieframe.dll.so -%if 0%{?compholio} +%if 0%{?wine_staging} %{_libdir}/wine/iertutil.dll.so %endif %{_libdir}/wine/ieproxy.dll.so @@ -1700,7 +1702,7 @@ fi %{_libdir}/wine/ntdll.dll.so %{_libdir}/wine/ntdsapi.dll.so %{_libdir}/wine/ntprint.dll.so -%if 0%{?compholio} +%if 0%{?wine_staging} %{_libdir}/wine/nvcuda.dll.so %{_libdir}/wine/nvcuvid.dll.so %endif @@ -1792,6 +1794,9 @@ fi %{_libdir}/wine/tdi.sys.so %{_libdir}/wine/traffic.dll.so %{_libdir}/wine/ucrtbase.dll.so +%if 0%{?wine_staging} +%{_libdir}/wine/uianimation.dll.so +%endif %{_libdir}/wine/uiautomationcore.dll.so %{_libdir}/wine/uiribbon.dll.so %{_libdir}/wine/unicows.dll.so @@ -1803,7 +1808,7 @@ fi %{_libdir}/wine/user32.dll.so %{_libdir}/wine/usp10.dll.so %{_libdir}/wine/uxtheme.dll.so -%if 0%{?compholio} +%if 0%{?wine_staging} %{_libdir}/wine/uxtheme-gtk.dll.so %endif %{_libdir}/wine/userenv.dll.so @@ -1828,7 +1833,7 @@ fi %{_libdir}/wine/wevtapi.dll.so %{_libdir}/wine/wiaservc.dll.so %{_libdir}/wine/wimgapi.dll.so -%if 0%{?compholio} +%if 0%{?wine_staging} %{_libdir}/wine/win32k.sys.so %endif %{_libdir}/wine/windowscodecs.dll.so @@ -1871,7 +1876,7 @@ fi %{_libdir}/wine/wtsapi32.dll.so %{_libdir}/wine/wuapi.dll.so %{_libdir}/wine/wuaueng.dll.so -%if 0%{?compholio} +%if 0%{?wine_staging} %{_libdir}/wine/wuauserv.exe.so %endif %{_libdir}/wine/security.dll.so @@ -1917,7 +1922,7 @@ fi %{_libdir}/wine/xpsprint.dll.so %{_libdir}/wine/xpssvcs.dll.so -%if 0%{?compholio} +%if 0%{?wine_staging} %ifarch x86_64 aarch64 %{_libdir}/wine/nvapi64.dll.so %{_libdir}/wine/nvencodeapi64.dll.so @@ -2037,11 +2042,11 @@ fi %files fonts # meta package -%if 0%{?compholio} +%if 0%{?wine_staging} %files arial-fonts %doc COPYING.LIB %{_datadir}/wine/fonts/arial* -%endif #0%{?compholio} +%endif #0%{?wine_staging} %files courier-fonts %doc COPYING.LIB @@ -2079,7 +2084,7 @@ fi %files ms-sans-serif-fonts %doc COPYING.LIB %{_datadir}/wine/fonts/sse* -%if 0%{?compholio} +%if 0%{?wine_staging} %{_datadir}/wine/fonts/msyh.ttf %endif @@ -2093,7 +2098,7 @@ fi %{_fontconfig_confdir}/20-wine-tahoma*conf %{_fontconfig_templatedir}/20-wine-tahoma*conf -%if 0%{?compholio} +%if 0%{?wine_staging} %files times-new-roman-fonts %doc COPYING.LIB %{_datadir}/wine/fonts/times.ttf @@ -2205,6 +2210,9 @@ fi %endif %changelog +* Tue Jun 12 2018 Michael Cronenworth 3.10-1 +- version update + * Wed May 30 2018 Michael Cronenworth 3.9-1 - version update From b9676fc75ed7ed9a4c3f33b41f5585d0910d10e7 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 18 Jun 2018 11:46:11 -0500 Subject: [PATCH 450/715] Move Requires for old initscript actions into EPEL6 block --- wine.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wine.spec b/wine.spec index 0e448cb..d7e2068 100644 --- a/wine.spec +++ b/wine.spec @@ -358,6 +358,8 @@ handling. See man binfmt.d for further information. Summary: SysV initscript for the wine binfmt handler Group: Applications/Emulators BuildArch: noarch +Requires(post): /sbin/chkconfig, /sbin/service +Requires(preun): /sbin/chkconfig, /sbin/service %description sysvinit Register the wine binary handler for windows executables via SysV init files. @@ -383,9 +385,7 @@ Common wine files and scripts. %package desktop Summary: Desktop integration features for wine Group: Applications/Emulators -Requires(post): /sbin/chkconfig, /sbin/service, Requires(post): desktop-file-utils >= 0.8 -Requires(preun): /sbin/chkconfig, /sbin/service Requires(postun): desktop-file-utils >= 0.8 Requires: wine-core = %{version}-%{release} Requires: wine-common = %{version}-%{release} From 09cb9e29740199afa0fcd2e8352cc2cdda179b71 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 24 Jun 2018 10:16:24 -0500 Subject: [PATCH 451/715] Add StartupNotify and StartupWMClass to default desktop files (RHBZ#1594399) --- wine-mime-msi.desktop | 2 ++ wine-notepad.desktop | 2 ++ wine-oleview.desktop | 4 +++- wine-regedit.desktop | 2 ++ wine-uninstaller.desktop | 4 +++- wine-winecfg.desktop | 2 ++ wine-winemine.desktop | 2 ++ wine-winhelp.desktop | 4 +++- wine-wordpad.desktop | 4 +++- 9 files changed, 22 insertions(+), 4 deletions(-) diff --git a/wine-mime-msi.desktop b/wine-mime-msi.desktop index 60e7bef..bbe9853 100644 --- a/wine-mime-msi.desktop +++ b/wine-mime-msi.desktop @@ -5,3 +5,5 @@ Name[ar]=مثبت حزم واين Exec=wine %f MimeType=application/x-ole-storage;text/mspg-legacyinfo; Hidden=true +StartupNotify=true +StartupWMClass=msiexec.exe diff --git a/wine-notepad.desktop b/wine-notepad.desktop index b8af5b9..62d11e2 100644 --- a/wine-notepad.desktop +++ b/wine-notepad.desktop @@ -7,4 +7,6 @@ Exec=notepad Icon=notepad Terminal=false Type=Application +StartupNotify=true +StartupWMClass=notepad.exe Categories=X-Wine; diff --git a/wine-oleview.desktop b/wine-oleview.desktop index d30f78f..6bb3aa7 100644 --- a/wine-oleview.desktop +++ b/wine-oleview.desktop @@ -3,8 +3,10 @@ Name=Wine OLE View Comment=Windows OLE View Name[ar]=عارض العناصر Comment[ar]=لعرض العناصر البيئية في واين -Exec=wine oleview +Exec=wine oleview.exe Icon=wine Terminal=false Type=Application +StartupNotify=true +StartupWMClass=oleview.exe Categories=X-Wine; diff --git a/wine-regedit.desktop b/wine-regedit.desktop index c39cfa0..b6e4a67 100644 --- a/wine-regedit.desktop +++ b/wine-regedit.desktop @@ -7,4 +7,6 @@ Exec=regedit Icon=regedit Terminal=false Type=Application +StartupNotify=true +StartupWMClass=regedit.exe Categories=X-Wine; diff --git a/wine-uninstaller.desktop b/wine-uninstaller.desktop index 6087726..47653ed 100644 --- a/wine-uninstaller.desktop +++ b/wine-uninstaller.desktop @@ -3,8 +3,10 @@ Name=Wine Software Uninstaller Comment=Interface to uninstall software Name[ar]=مزيل التطبيقات من واين Comment[ar]=واجهة إزالة التّطبيقات من واين -Exec=wine uninstaller +Exec=wine uninstaller.exe Icon=msiexec Terminal=false Type=Application +StartupNotify=true +StartupWMClass=uninstaller.exe Categories=X-Wine; diff --git a/wine-winecfg.desktop b/wine-winecfg.desktop index 6204af2..78546d3 100644 --- a/wine-winecfg.desktop +++ b/wine-winecfg.desktop @@ -7,4 +7,6 @@ Exec=winecfg Icon=winecfg Terminal=false Type=Application +StartupNotify=true +StartupWMClass=winecfg.exe Categories=X-Wine; diff --git a/wine-winemine.desktop b/wine-winemine.desktop index a7816de..1bead9b 100644 --- a/wine-winemine.desktop +++ b/wine-winemine.desktop @@ -7,4 +7,6 @@ Exec=winemine Icon=winemine Terminal=false Type=Application +StartupNotify=true +StartupWMClass=winemine.exe Categories=Game;LogicGame; diff --git a/wine-winhelp.desktop b/wine-winhelp.desktop index db97819..5280b20 100644 --- a/wine-winhelp.desktop +++ b/wine-winhelp.desktop @@ -3,8 +3,10 @@ Name=Wine Help Comment=Windows Help Browser Name[ar]=أداة المساعدة في واين Comment[ar]=استعراض ملفات المساعدة بتنسيقات وندوز -Exec=wine winhlp32 +Exec=wine winhlp32.exe Icon=winhelp Terminal=false Type=Application +StartupNotify=true +StartupWMClass=winhlp32.exe Categories=X-Wine; diff --git a/wine-wordpad.desktop b/wine-wordpad.desktop index 032fdbc..044a027 100644 --- a/wine-wordpad.desktop +++ b/wine-wordpad.desktop @@ -3,8 +3,10 @@ Name=Wine Wordpad Comment=Text Editor Name[ar]=دفتر واين Comment[ar]=محرر النّصوص دفتر واين -Exec=wine wordpad +Exec=wine wordpad.exe Icon=wordpad Terminal=false Type=Application +StartupNotify=true +StartupWMClass=wordpad.exe Categories=X-Wine; From a691ab00bc8e607e9f931024bc9b3a546640d636 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 24 Jun 2018 10:34:54 -0500 Subject: [PATCH 452/715] Update to 3.11 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 5 ++++- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 0bbf6e3..2334f0c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-3.10.tar.xz -/wine-3.10.tar.xz.sign -/wine-staging-3.10.tar.gz +/wine-3.11.tar.xz +/wine-3.11.tar.xz.sign +/wine-staging-3.11.tar.gz diff --git a/sources b/sources index c0ad9c4..441fb08 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-3.10.tar.xz) = bb1a1d8e8ad7f48d9fcf48ebbf0ebbb8e3b45ea211736bd7837144ea34b373f74955d3c0ccc4cdc44020eea23c8af8e67252e1c5cd6115e11419ad5f6ef24843 -SHA512 (wine-3.10.tar.xz.sign) = 7635b06b7a72b974bbce8bfa053fd59ab1c3c619ce71a3b59da32d8e195d1025df85cfbc614586c320135c524e5810a84d68a3043913a3555146a058dfd85328 -SHA512 (wine-staging-3.10.tar.gz) = baae31ce569c06f8ac5ffc579d8f3bb95de55c50b83c1db13eaaeaee5c8c5b3b7fb6028d69dce6645ac697692372a65be8d60532123a94e0f5fcd0778d2082c5 +SHA512 (wine-3.11.tar.xz) = 8f7226364648ec30eb77f1848ee6bf01be2445fd96f902309575ac1f6ece31bf54d415516fcda76ae438010a36a9d4846d22cc37365aac4a230701376f9589d7 +SHA512 (wine-3.11.tar.xz.sign) = c306fc4da529cfe1aba158eb466aad71d7ecf9712669ec75d76a9d59e7cacdaa8a62faabd8c2f52049955285ec1ba80d26c5a78bf19a527e78d63e004e5af10e +SHA512 (wine-staging-3.11.tar.gz) = 811a8668c3747f02850928a99bc66612937c38d98068dddec47bffe427d00c7c83b172f12807e1cb609d83c00e978949f913877bfbf5d8443a5ad29011c03545 diff --git a/wine.spec b/wine.spec index d7e2068..f5ba029 100644 --- a/wine.spec +++ b/wine.spec @@ -20,7 +20,7 @@ %endif Name: wine -Version: 3.10 +Version: 3.11 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -2210,6 +2210,9 @@ fi %endif %changelog +* Sun Jun 24 2018 Michael Cronenworth 3.11-1 +- version update + * Tue Jun 12 2018 Michael Cronenworth 3.10-1 - version update From 2a354bfaf82da139228e5ee3c84577b59005b5a6 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 10 Jul 2018 08:43:56 -0500 Subject: [PATCH 453/715] Update to 3.12 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 11 +++++++---- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index 2334f0c..167e193 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-3.11.tar.xz -/wine-3.11.tar.xz.sign -/wine-staging-3.11.tar.gz +/wine-3.12.tar.xz +/wine-3.12.tar.xz.sign +/wine-staging-3.12.tar.gz diff --git a/sources b/sources index 441fb08..ddf655c 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-3.11.tar.xz) = 8f7226364648ec30eb77f1848ee6bf01be2445fd96f902309575ac1f6ece31bf54d415516fcda76ae438010a36a9d4846d22cc37365aac4a230701376f9589d7 -SHA512 (wine-3.11.tar.xz.sign) = c306fc4da529cfe1aba158eb466aad71d7ecf9712669ec75d76a9d59e7cacdaa8a62faabd8c2f52049955285ec1ba80d26c5a78bf19a527e78d63e004e5af10e -SHA512 (wine-staging-3.11.tar.gz) = 811a8668c3747f02850928a99bc66612937c38d98068dddec47bffe427d00c7c83b172f12807e1cb609d83c00e978949f913877bfbf5d8443a5ad29011c03545 +SHA512 (wine-3.12.tar.xz) = afc76e8975ea780f664de27a17128f730bcbe72a9fad0c01bfe6dcc98c2f98729ccde32e97fe4df2cf98f5d1b254b28f0e7cd380855148c5cfb41dd88f3012a1 +SHA512 (wine-3.12.tar.xz.sign) = 21394e7ddba556345ae4dfe28ef37c93e1614f6614bdc237bd0120297f6ac81e1a93c445bbd04a065753e6a72c6bd390006fb66ac192eb1e0b4dc663eba1128a +SHA512 (wine-staging-3.12.tar.gz) = 166f991f7c8f59df656f3fb28150a8e26e48d1ff6906b3eccd31cb84524e28efe7e7df00eadc21881940308ccc4b4edebcb2a71bdd03ba3de5beb1cf42e2f058 diff --git a/wine.spec b/wine.spec index f5ba029..3ee9e36 100644 --- a/wine.spec +++ b/wine.spec @@ -20,7 +20,7 @@ %endif Name: wine -Version: 3.11 +Version: 3.12 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -280,7 +280,7 @@ Requires: mesa-libOSMesa(x86-32) Requires: libv4l(x86-32) Requires: unixODBC(x86-32) Requires: SDL2(x86-32) -Requires: vulkan(x86-32) +Requires: vulkan-loader(x86-32) %if 0%{?wine_staging} Requires: libva(x86-32) %endif @@ -304,7 +304,7 @@ Requires: mesa-libOSMesa(x86-64) Requires: libv4l(x86-64) Requires: unixODBC(x86-64) Requires: SDL2(x86-64) -Requires: vulkan(x86-64) +Requires: vulkan-loader(x86-64) %if 0%{?wine_staging} Requires: libva(x86-64) %endif @@ -325,7 +325,7 @@ Requires: mesa-libOSMesa Requires: libv4l Requires: unixODBC Requires: SDL2 -Requires: vulkan +Requires: vulkan-loader %if 0%{?wine_staging} Requires: libva %endif @@ -2210,6 +2210,9 @@ fi %endif %changelog +* Tue Jul 10 2018 Michael Cronenworth 3.12-1 +- version update + * Sun Jun 24 2018 Michael Cronenworth 3.11-1 - version update From a74095455b2742b5b5f2599cfd9ae372cb360371 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 14 Jul 2018 08:52:04 +0000 Subject: [PATCH 454/715] - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- wine.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 3ee9e36..3d28cff 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ Name: wine Version: 3.12 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -2210,6 +2210,9 @@ fi %endif %changelog +* Sat Jul 14 2018 Fedora Release Engineering - 3.12-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + * Tue Jul 10 2018 Michael Cronenworth 3.12-1 - version update From c839ed3ec82b0032ea63dba69351de1f3b5b3c12 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 21 Jul 2018 17:28:21 -0500 Subject: [PATCH 455/715] Update to 3.13 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 9 ++++++--- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 167e193..a325b11 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-3.12.tar.xz -/wine-3.12.tar.xz.sign -/wine-staging-3.12.tar.gz +/wine-3.13.tar.xz +/wine-3.13.tar.xz.sign +/wine-staging-3.13.tar.gz diff --git a/sources b/sources index ddf655c..f04eac0 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-3.12.tar.xz) = afc76e8975ea780f664de27a17128f730bcbe72a9fad0c01bfe6dcc98c2f98729ccde32e97fe4df2cf98f5d1b254b28f0e7cd380855148c5cfb41dd88f3012a1 -SHA512 (wine-3.12.tar.xz.sign) = 21394e7ddba556345ae4dfe28ef37c93e1614f6614bdc237bd0120297f6ac81e1a93c445bbd04a065753e6a72c6bd390006fb66ac192eb1e0b4dc663eba1128a -SHA512 (wine-staging-3.12.tar.gz) = 166f991f7c8f59df656f3fb28150a8e26e48d1ff6906b3eccd31cb84524e28efe7e7df00eadc21881940308ccc4b4edebcb2a71bdd03ba3de5beb1cf42e2f058 +SHA512 (wine-3.13.tar.xz) = a07a3d2a19261f9251f165ca4c14871e6ebda4d3f99da16f9fc41f06e80cae3fb50aeab96628c7a739e635e896dbb31c55df8b42c4637a058f9035c664c93a59 +SHA512 (wine-3.13.tar.xz.sign) = f9a8bde7da20c48d9e9eb94aff4313c2c4caae3f2eaedac0106edcecca53d9c45ded27bb8608412f894cfee65420dfb4611d38e0c7182b1b73f0d2b787708c0a +SHA512 (wine-staging-3.13.tar.gz) = 0124950cc18d566daecc532a432bce27d712f48eaaa9b37bf930e056b460e30a8fb1806aa179f72b44a95dc56963a3dc063b4acb71affb7b8ddff3001fe59b9a diff --git a/wine.spec b/wine.spec index 3d28cff..e5adfa1 100644 --- a/wine.spec +++ b/wine.spec @@ -3,7 +3,7 @@ %global no64bit 0 %global winegecko 2.47 -%global winemono 4.7.1 +%global winemono 4.7.3 #global _default_patch_fuzz 2 # build with wine-staging patches, see: https://github.com/wine-staging/wine-staging @@ -20,8 +20,8 @@ %endif Name: wine -Version: 3.12 -Release: 2%{?dist} +Version: 3.13 +Release: 1%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -2210,6 +2210,9 @@ fi %endif %changelog +* Sat Jul 21 2018 Michael Cronenworth 3.13-1 +- version update + * Sat Jul 14 2018 Fedora Release Engineering - 3.12-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild From 1760c2beb051e4df5a4c0f6d2e0c9fe7ac8841ba Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 24 Jul 2018 12:20:18 -0500 Subject: [PATCH 456/715] Add patch to fix audio with staging --- wine.spec | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index e5adfa1..9d7061c 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ Name: wine Version: 3.13 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -51,6 +51,9 @@ Source109: wine-oleview.desktop # build fixes # wine bugs +#https://bugs.winehq.org/show_bug.cgi?id=45502 +#https://github.com/wine-staging/wine-staging/commit/f0d3ae8cf201128497ddb5c3d89e1c8778726ac2 +Patch0: wine-3.13-pulseaudio.patch # desktop dir Source200: wine.menu @@ -679,6 +682,7 @@ This package adds the opencl driver for wine. %prep %setup -q -n wine-%{version} +%patch0 -p1 -b.pulseaudio %patch511 -p1 -b.cjk %if 0%{?wine_staging} @@ -2210,6 +2214,9 @@ fi %endif %changelog +* Tue Jul 24 2018 Michael Cronenworth 3.13-2 +- Add patch to fix audio with staging + * Sat Jul 21 2018 Michael Cronenworth 3.13-1 - version update From f8c2060211b03797edd037c98279083ae1969655 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 24 Jul 2018 12:25:51 -0500 Subject: [PATCH 457/715] Upload pulseaudio patch --- wine-3.13-pulseaudio.patch | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 wine-3.13-pulseaudio.patch diff --git a/wine-3.13-pulseaudio.patch b/wine-3.13-pulseaudio.patch new file mode 100644 index 0000000..07c6d7e --- /dev/null +++ b/wine-3.13-pulseaudio.patch @@ -0,0 +1,38 @@ +From f0d3ae8cf201128497ddb5c3d89e1c8778726ac2 Mon Sep 17 00:00:00 2001 +From: Alistair Leslie-Hughes +Date: Tue, 24 Jul 2018 11:32:12 +1000 +Subject: [PATCH] Updated winepulse-PulseAudio_Support patchset + +Fixes: https://bugs.winehq.org/show_bug.cgi?id=45502 +--- + .../0002-winepulse-Don-t-rely-on-pulseaudio-callbacks-for-tim.patch | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/patches/winepulse-PulseAudio_Support/0002-winepulse-Don-t-rely-on-pulseaudio-callbacks-for-tim.patch b/patches/winepulse-PulseAudio_Support/0002-winepulse-Don-t-rely-on-pulseaudio-callbacks-for-tim.patch +index a483298e..7ff59b0e 100644 +--- a/patches/winepulse-PulseAudio_Support/0002-winepulse-Don-t-rely-on-pulseaudio-callbacks-for-tim.patch ++++ b/patches/winepulse-PulseAudio_Support/0002-winepulse-Don-t-rely-on-pulseaudio-callbacks-for-tim.patch +@@ -1,4 +1,4 @@ +-From 6b24328a061f853e5aafe258fc8f3075aae71b16 Mon Sep 17 00:00:00 2001 ++From 4611d3dd983d7707d845508ddde2d49e9daafec5 Mon Sep 17 00:00:00 2001 + From: Andrew Eikum + Date: Fri, 1 Jun 2018 14:43:01 -0500 + Subject: [PATCH 2/7] winepulse: Don't rely on pulseaudio callbacks for timing +@@ -8,7 +8,7 @@ Subject: [PATCH 2/7] winepulse: Don't rely on pulseaudio callbacks for timing + 1 file changed, 231 insertions(+), 274 deletions(-) + + diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c +-index f192b1d..0654ab0 100644 ++index f192b1d..b750986 100644 + --- a/dlls/winepulse.drv/mmdevdrv.c + +++ b/dlls/winepulse.drv/mmdevdrv.c + @@ -169,13 +169,16 @@ struct ACImpl { +@@ -198,7 +198,7 @@ index f192b1d..0654ab0 100644 + This->peek_len = 0; + - } else { + - pa_stream_peek(This->stream, (const void**)&src, &src_len); +-+ } else if (pa_stream_peek(This->stream, (const void**)&src, &src_len) && src_len) { +++ } else if (pa_stream_peek(This->stream, (const void**)&src, &src_len) == 0 && src_len) { + + copy = min(rem, src_len); + From 65bbf5694707f3471a1d03daad81f2fda1e16cd6 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 24 Jul 2018 13:34:15 -0500 Subject: [PATCH 458/715] Apply patch at correct time --- wine.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 9d7061c..805bc62 100644 --- a/wine.spec +++ b/wine.spec @@ -682,7 +682,6 @@ This package adds the opencl driver for wine. %prep %setup -q -n wine-%{version} -%patch0 -p1 -b.pulseaudio %patch511 -p1 -b.cjk %if 0%{?wine_staging} @@ -690,6 +689,7 @@ This package adds the opencl driver for wine. gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 patches/patchinstall.sh DESTDIR="`pwd`" --all +%patch0 -p1 -b.pulseaudio # fix parallelized build sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in From 4061c4cb71fe1ff8317c47fb0875551cb3fe60f1 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Thu, 26 Jul 2018 20:05:36 -0500 Subject: [PATCH 459/715] Fix application of patch --- wine.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/wine.spec b/wine.spec index 805bc62..9c2c21d 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ Name: wine Version: 3.13 -Release: 2%{?dist} +Release: 3%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -688,8 +688,8 @@ This package adds the opencl driver for wine. # setup and apply wine-staging patches gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 -patches/patchinstall.sh DESTDIR="`pwd`" --all %patch0 -p1 -b.pulseaudio +patches/patchinstall.sh DESTDIR="`pwd`" --all # fix parallelized build sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in @@ -2214,6 +2214,9 @@ fi %endif %changelog +* Thu Jul 26 2018 Michael Cronenworth 3.13-3 +- Fix application of patch + * Tue Jul 24 2018 Michael Cronenworth 3.13-2 - Add patch to fix audio with staging From 85bfc9f98267345abb5834e7b4b7113ec4cb5e26 Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Fri, 27 Jul 2018 14:55:23 +0200 Subject: [PATCH 460/715] Rebuild for new binutils Signed-off-by: Igor Gnatenko --- wine.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 9c2c21d..4d83260 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ Name: wine Version: 3.13 -Release: 3%{?dist} +Release: 4%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -2214,6 +2214,9 @@ fi %endif %changelog +* Fri Jul 27 2018 Igor Gnatenko - 3.13-4 +- Rebuild for new binutils + * Thu Jul 26 2018 Michael Cronenworth 3.13-3 - Fix application of patch From e2ade588451fc6a0ff138fb9c1c519948d343fa5 Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Tue, 31 Jul 2018 11:20:50 +0200 Subject: [PATCH 461/715] Rebuild with fixed binutils --- wine.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 4d83260..c84dccb 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ Name: wine Version: 3.13 -Release: 4%{?dist} +Release: 5%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -2214,6 +2214,9 @@ fi %endif %changelog +* Tue Jul 31 2018 Florian Weimer - 3.13-5 +- Rebuild with fixed binutils + * Fri Jul 27 2018 Igor Gnatenko - 3.13-4 - Rebuild for new binutils From 3cc5a3d75251adf5b0343f7e105c0fadfd0f4da4 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 20 Aug 2018 08:48:52 -0500 Subject: [PATCH 462/715] Update to 3.14 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 15 +++++++++------ 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index a325b11..ffab116 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-3.13.tar.xz -/wine-3.13.tar.xz.sign -/wine-staging-3.13.tar.gz +/wine-3.14.tar.xz +/wine-3.14.tar.xz.sign +/wine-staging-3.14.tar.gz diff --git a/sources b/sources index f04eac0..70edef9 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-3.13.tar.xz) = a07a3d2a19261f9251f165ca4c14871e6ebda4d3f99da16f9fc41f06e80cae3fb50aeab96628c7a739e635e896dbb31c55df8b42c4637a058f9035c664c93a59 -SHA512 (wine-3.13.tar.xz.sign) = f9a8bde7da20c48d9e9eb94aff4313c2c4caae3f2eaedac0106edcecca53d9c45ded27bb8608412f894cfee65420dfb4611d38e0c7182b1b73f0d2b787708c0a -SHA512 (wine-staging-3.13.tar.gz) = 0124950cc18d566daecc532a432bce27d712f48eaaa9b37bf930e056b460e30a8fb1806aa179f72b44a95dc56963a3dc063b4acb71affb7b8ddff3001fe59b9a +SHA512 (wine-3.14.tar.xz) = 50dbbf8a832abfa01247b9d170c6e1fe4f722cc8868659512df7bc17efd7e9d618db10283baf1eda0f1e4abbcdd130be16dbdb8d5a91b155c2c441e50e2b43f1 +SHA512 (wine-3.14.tar.xz.sign) = a8c443920675f8c63fc5811aad2044c519367da9da3fd9506c1d250af48b2079a5502c6436aa0915868c217566a1123931f6d96f49ac37cd59f553f2c10f60b4 +SHA512 (wine-staging-3.14.tar.gz) = f998baac6be3fece1ae6d4e924f883befea43f849d678c987e9fe4d102cf22fde7b4a0fa728294c46d70c7d29caa037022fb9e33ce4b4fac0e49c94d25cdfa66 diff --git a/wine.spec b/wine.spec index c84dccb..9bd96e2 100644 --- a/wine.spec +++ b/wine.spec @@ -20,8 +20,8 @@ %endif Name: wine -Version: 3.13 -Release: 5%{?dist} +Version: 3.14 +Release: 1%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -51,9 +51,6 @@ Source109: wine-oleview.desktop # build fixes # wine bugs -#https://bugs.winehq.org/show_bug.cgi?id=45502 -#https://github.com/wine-staging/wine-staging/commit/f0d3ae8cf201128497ddb5c3d89e1c8778726ac2 -Patch0: wine-3.13-pulseaudio.patch # desktop dir Source200: wine.menu @@ -688,7 +685,6 @@ This package adds the opencl driver for wine. # setup and apply wine-staging patches gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 -%patch0 -p1 -b.pulseaudio patches/patchinstall.sh DESTDIR="`pwd`" --all # fix parallelized build @@ -1331,6 +1327,7 @@ fi %{_libdir}/wine/api-ms-win-crt-string-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-crt-time-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-crt-utility-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-devices-config-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-devices-config-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-devices-query-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-downlevel-advapi32-l1-1-0.dll.so @@ -1870,6 +1867,9 @@ fi %{_libdir}/wine/wlanapi.dll.so %{_libdir}/wine/wmphoto.dll.so %{_libdir}/wine/wnaspi32.dll.so +%if 0%{?wine_staging} +%{_libdir}/wine/wow64cpu.dll.so +%endif %{_libdir}/wine/wpc.dll.so %{_libdir}/wine/wpcap.dll.so %{_libdir}/wine/ws2_32.dll.so @@ -2214,6 +2214,9 @@ fi %endif %changelog +* Mon Aug 20 2018 Michael Cronenworth 3.14-1 +- version update + * Tue Jul 31 2018 Florian Weimer - 3.13-5 - Rebuild with fixed binutils From 0dfab9fafa86c0cf6c7063e38c1fa3494259d79c Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 20 Aug 2018 22:45:25 -0500 Subject: [PATCH 463/715] Patch from staging to fix ARM builds --- wine-3.13-pulseaudio.patch | 38 ---------- wine-staging-3.14-arm.patch | 137 ++++++++++++++++++++++++++++++++++++ wine.spec | 3 + 3 files changed, 140 insertions(+), 38 deletions(-) delete mode 100644 wine-3.13-pulseaudio.patch create mode 100644 wine-staging-3.14-arm.patch diff --git a/wine-3.13-pulseaudio.patch b/wine-3.13-pulseaudio.patch deleted file mode 100644 index 07c6d7e..0000000 --- a/wine-3.13-pulseaudio.patch +++ /dev/null @@ -1,38 +0,0 @@ -From f0d3ae8cf201128497ddb5c3d89e1c8778726ac2 Mon Sep 17 00:00:00 2001 -From: Alistair Leslie-Hughes -Date: Tue, 24 Jul 2018 11:32:12 +1000 -Subject: [PATCH] Updated winepulse-PulseAudio_Support patchset - -Fixes: https://bugs.winehq.org/show_bug.cgi?id=45502 ---- - .../0002-winepulse-Don-t-rely-on-pulseaudio-callbacks-for-tim.patch | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/patches/winepulse-PulseAudio_Support/0002-winepulse-Don-t-rely-on-pulseaudio-callbacks-for-tim.patch b/patches/winepulse-PulseAudio_Support/0002-winepulse-Don-t-rely-on-pulseaudio-callbacks-for-tim.patch -index a483298e..7ff59b0e 100644 ---- a/patches/winepulse-PulseAudio_Support/0002-winepulse-Don-t-rely-on-pulseaudio-callbacks-for-tim.patch -+++ b/patches/winepulse-PulseAudio_Support/0002-winepulse-Don-t-rely-on-pulseaudio-callbacks-for-tim.patch -@@ -1,4 +1,4 @@ --From 6b24328a061f853e5aafe258fc8f3075aae71b16 Mon Sep 17 00:00:00 2001 -+From 4611d3dd983d7707d845508ddde2d49e9daafec5 Mon Sep 17 00:00:00 2001 - From: Andrew Eikum - Date: Fri, 1 Jun 2018 14:43:01 -0500 - Subject: [PATCH 2/7] winepulse: Don't rely on pulseaudio callbacks for timing -@@ -8,7 +8,7 @@ Subject: [PATCH 2/7] winepulse: Don't rely on pulseaudio callbacks for timing - 1 file changed, 231 insertions(+), 274 deletions(-) - - diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c --index f192b1d..0654ab0 100644 -+index f192b1d..b750986 100644 - --- a/dlls/winepulse.drv/mmdevdrv.c - +++ b/dlls/winepulse.drv/mmdevdrv.c - @@ -169,13 +169,16 @@ struct ACImpl { -@@ -198,7 +198,7 @@ index f192b1d..0654ab0 100644 - This->peek_len = 0; - - } else { - - pa_stream_peek(This->stream, (const void**)&src, &src_len); --+ } else if (pa_stream_peek(This->stream, (const void**)&src, &src_len) && src_len) { -++ } else if (pa_stream_peek(This->stream, (const void**)&src, &src_len) == 0 && src_len) { - - copy = min(rem, src_len); - diff --git a/wine-staging-3.14-arm.patch b/wine-staging-3.14-arm.patch new file mode 100644 index 0000000..7e49f8d --- /dev/null +++ b/wine-staging-3.14-arm.patch @@ -0,0 +1,137 @@ +From 720db34b6e2d5d4363a3fa14d8e0bcd1e0706d11 Mon Sep 17 00:00:00 2001 +From: Zebediah Figura +Date: Mon, 20 Aug 2018 18:07:00 -0500 +Subject: [PATCH] ntdll-RtlCreateUserThread: Fix compilation for ARM. + +* Fix field dereferencing, should fix bug 45678. +* Don't use __syscall_ wrappers on architectures where syscall thunks aren't + implemented. (Ideally we'd just redirect them, but it turns out that this + is very hard to do with the current infrastructure.) This should fix bug + 45677. +--- + ...tlCreateUserThread-into-NtCreateThre.patch | 36 +++++++++++-------- + 1 file changed, 22 insertions(+), 14 deletions(-) + +diff --git a/patches/ntdll-RtlCreateUserThread/0001-ntdll-Refactor-RtlCreateUserThread-into-NtCreateThre.patch b/patches/ntdll-RtlCreateUserThread/0001-ntdll-Refactor-RtlCreateUserThread-into-NtCreateThre.patch +index 67681d51..c995f4f9 100644 +--- a/patches/ntdll-RtlCreateUserThread/0001-ntdll-Refactor-RtlCreateUserThread-into-NtCreateThre.patch ++++ b/patches/ntdll-RtlCreateUserThread/0001-ntdll-Refactor-RtlCreateUserThread-into-NtCreateThre.patch +@@ -1,4 +1,4 @@ +-From 06289ea3c98030049e080fd3348073932898740f Mon Sep 17 00:00:00 2001 ++From 095a6032a9ba158b4e203d1c56f92d40de9172ae Mon Sep 17 00:00:00 2001 + From: Andrew Wesie + Date: Fri, 27 Jul 2018 01:22:59 -0500 + Subject: [PATCH] ntdll: Refactor RtlCreateUserThread into NtCreateThreadEx. +@@ -7,12 +7,12 @@ League of Legends hooks NtCreateThread or NtCreateThreadEx (depending on the + reported version), and expects it to be called whenever a thread is created. + --- + dlls/ntdll/ntdll.spec | 2 +- +- dlls/ntdll/thread.c | 177 ++++++++++++++++++++++++++++++++++++++++++-------- ++ dlls/ntdll/thread.c | 185 ++++++++++++++++++++++++++++++++++++++++++-------- + include/winternl.h | 25 +++++++ +- 3 files changed, 175 insertions(+), 29 deletions(-) ++ 3 files changed, 183 insertions(+), 29 deletions(-) + + diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec +-index 705538a..90e537e 100644 ++index 003e4f9..f62942c 100644 + --- a/dlls/ntdll/ntdll.spec + +++ b/dlls/ntdll/ntdll.spec + @@ -154,7 +154,7 @@ +@@ -25,10 +25,10 @@ index 705538a..90e537e 100644 + @ stdcall NtCreateTimer(ptr long ptr long) + @ stub NtCreateToken + diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c +-index eda4fa7..b50524d 100644 ++index 59d64e1..99f312f 100644 + --- a/dlls/ntdll/thread.c + +++ b/dlls/ntdll/thread.c +-@@ -682,34 +682,18 @@ static void start_thread( struct startup_info *info ) ++@@ -527,34 +527,18 @@ static void start_thread( struct startup_info *info ) + /*********************************************************************** + * NtCreateThreadEx (NTDLL.@) + */ +@@ -68,7 +68,7 @@ index eda4fa7..b50524d 100644 + HANDLE handle = 0, actctx = 0; + TEB *teb = NULL; + DWORD tid = 0; +-@@ -717,6 +701,33 @@ NTSTATUS WINAPI RtlCreateUserThread( HANDLE process, const SECURITY_DESCRIPTOR * ++@@ -562,6 +546,33 @@ NTSTATUS WINAPI RtlCreateUserThread( HANDLE process, const SECURITY_DESCRIPTOR * + NTSTATUS status; + SIZE_T extra_stack = PTHREAD_STACK_MIN; + +@@ -102,7 +102,7 @@ index eda4fa7..b50524d 100644 + if (process != NtCurrentProcess()) + { + apc_call_t call; +-@@ -747,7 +758,7 @@ NTSTATUS WINAPI RtlCreateUserThread( HANDLE process, const SECURITY_DESCRIPTOR * ++@@ -592,7 +603,7 @@ NTSTATUS WINAPI RtlCreateUserThread( HANDLE process, const SECURITY_DESCRIPTOR * + + SERVER_START_REQ( new_thread ) + { +@@ -111,7 +111,7 @@ index eda4fa7..b50524d 100644 + req->attributes = 0; /* FIXME */ + req->suspend = suspended; + req->request_fd = request_pipe[0]; +-@@ -804,19 +815,19 @@ NTSTATUS WINAPI RtlCreateUserThread( HANDLE process, const SECURITY_DESCRIPTOR * ++@@ -649,19 +660,19 @@ NTSTATUS WINAPI RtlCreateUserThread( HANDLE process, const SECURITY_DESCRIPTOR * + thread_data->wait_fd[1] = -1; + thread_data->start_stack = (char *)teb->Tib.StackBase; + +@@ -137,7 +137,7 @@ index eda4fa7..b50524d 100644 + pthread_sigmask( SIG_SETMASK, &sigset, NULL ); + + if (id) id->UniqueThread = ULongToHandle(tid); +-@@ -833,6 +844,116 @@ error: ++@@ -678,6 +689,124 @@ error: + return status; + } + +@@ -159,8 +159,8 @@ index eda4fa7..b50524d 100644 + + entry = (LPTHREAD_START_ROUTINE) context->R0; + + arg = (void *)context->R1; + +#elif defined(__aarch64__) +-+ entry = (LPTHREAD_START_ROUTINE) context->u.s.X0; +-+ arg = (void *)context->u.s.X1; +++ entry = (LPTHREAD_START_ROUTINE) context->u.X0; +++ arg = (void *)context->u.X1; + +#elif defined(__powerpc__) + + entry = (LPTHREAD_START_ROUTINE) context->Gpr3; + + arg = (void *)context->Gpr4; +@@ -229,7 +229,11 @@ index eda4fa7..b50524d 100644 + + context.Gpr4 = (DWORD)arg; + +#endif + + +++#if defined(__i386__) || defined(__x86_64__) + + return __syscall_NtCreateThread(handle_ptr, (ACCESS_MASK)0, NULL, process, id, &context, NULL, suspended); +++#else +++ return NtCreateThread(handle_ptr, (ACCESS_MASK)0, NULL, process, id, &context, NULL, suspended); +++#endif + + } + + else + + { +@@ -247,7 +251,11 @@ index eda4fa7..b50524d 100644 + + pattr_list = &attr_list; + + } + + +++#if defined(__i386__) || defined(__x86_64__) + + return __syscall_NtCreateThreadEx(handle_ptr, (ACCESS_MASK)0, NULL, process, (LPTHREAD_START_ROUTINE)entry, arg, flags, 0, stack_commit, stack_reserve, pattr_list); +++#else +++ return NtCreateThreadEx(handle_ptr, (ACCESS_MASK)0, NULL, process, (LPTHREAD_START_ROUTINE)entry, arg, flags, 0, stack_commit, stack_reserve, pattr_list); +++#endif + + } + +} + + +@@ -255,10 +263,10 @@ index eda4fa7..b50524d 100644 + /****************************************************************************** + * RtlGetNtGlobalFlags (NTDLL.@) + diff --git a/include/winternl.h b/include/winternl.h +-index ebfe8d8..827fead 100644 ++index dca8ff3..6617974 100644 + --- a/include/winternl.h + +++ b/include/winternl.h +-@@ -2170,6 +2170,31 @@ typedef enum _SYSDBG_COMMAND { ++@@ -2173,6 +2173,31 @@ typedef enum _SYSDBG_COMMAND { + SysDbgWriteBusData + } SYSDBG_COMMAND, *PSYSDBG_COMMAND; + diff --git a/wine.spec b/wine.spec index 9bd96e2..2a7909f 100644 --- a/wine.spec +++ b/wine.spec @@ -51,6 +51,8 @@ Source109: wine-oleview.desktop # build fixes # wine bugs +# https://github.com/wine-staging/wine-staging/commit/720db34b6e2d5d4363a3fa14d8e0bcd1e0706d11 +Patch1: wine-staging-3.14-arm.patch # desktop dir Source200: wine.menu @@ -685,6 +687,7 @@ This package adds the opencl driver for wine. # setup and apply wine-staging patches gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 +%patch1 -p1 -b.arm patches/patchinstall.sh DESTDIR="`pwd`" --all # fix parallelized build From fff2367174ff5bd4ed60d040e4c11359fa5d5962 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 21 Aug 2018 13:20:26 -0500 Subject: [PATCH 464/715] Try to fix the ARM build myself --- wine-staging-3.14-arm-2.patch | 13 +++++++++++++ wine.spec | 2 ++ 2 files changed, 15 insertions(+) create mode 100644 wine-staging-3.14-arm-2.patch diff --git a/wine-staging-3.14-arm-2.patch b/wine-staging-3.14-arm-2.patch new file mode 100644 index 0000000..4d418cf --- /dev/null +++ b/wine-staging-3.14-arm-2.patch @@ -0,0 +1,13 @@ +--- a/patches/ntdll-RtlCreateUserThread/0001-ntdll-Refactor-RtlCreateUserThread-into-NtCreateThre.patch ++++ b/patches/ntdll-RtlCreateUserThread/0001-ntdll-Refactor-RtlCreateUserThread-into-NtCreateThre.patch +@@ -222,8 +222,8 @@ + + context.R0 = (DWORD)entry; + + context.R1 = (DWORD)arg; + +#elif defined(__aarch64__) +-+ context.u.s.X0 = (DWORD_PTR)entry; +-+ context.u.s.X1 = (DWORD_PTR)arg; +++ context.u.X0 = (DWORD_PTR)entry; +++ context.u.X1 = (DWORD_PTR)arg; + +#elif defined(__powerpc__) + + context.Gpr3 = (DWORD)entry; + + context.Gpr4 = (DWORD)arg; diff --git a/wine.spec b/wine.spec index 2a7909f..c07e75e 100644 --- a/wine.spec +++ b/wine.spec @@ -53,6 +53,7 @@ Source109: wine-oleview.desktop # wine bugs # https://github.com/wine-staging/wine-staging/commit/720db34b6e2d5d4363a3fa14d8e0bcd1e0706d11 Patch1: wine-staging-3.14-arm.patch +Patch2: wine-staging-3.14-arm-2.patch # desktop dir Source200: wine.menu @@ -688,6 +689,7 @@ This package adds the opencl driver for wine. gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 %patch1 -p1 -b.arm +%patch2 -p1 -b.arm2 patches/patchinstall.sh DESTDIR="`pwd`" --all # fix parallelized build From 010d82eee5f689994415055618fc023fcca1629b Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 3 Sep 2018 18:26:30 -0500 Subject: [PATCH 465/715] Update to 3.15 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 11 +++++------ 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index ffab116..16f95c7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-3.14.tar.xz -/wine-3.14.tar.xz.sign -/wine-staging-3.14.tar.gz +/wine-3.15.tar.xz +/wine-3.15.tar.xz.sign +/wine-staging-3.15.tar.gz diff --git a/sources b/sources index 70edef9..b4bbda0 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-3.14.tar.xz) = 50dbbf8a832abfa01247b9d170c6e1fe4f722cc8868659512df7bc17efd7e9d618db10283baf1eda0f1e4abbcdd130be16dbdb8d5a91b155c2c441e50e2b43f1 -SHA512 (wine-3.14.tar.xz.sign) = a8c443920675f8c63fc5811aad2044c519367da9da3fd9506c1d250af48b2079a5502c6436aa0915868c217566a1123931f6d96f49ac37cd59f553f2c10f60b4 -SHA512 (wine-staging-3.14.tar.gz) = f998baac6be3fece1ae6d4e924f883befea43f849d678c987e9fe4d102cf22fde7b4a0fa728294c46d70c7d29caa037022fb9e33ce4b4fac0e49c94d25cdfa66 +SHA512 (wine-3.15.tar.xz) = 3fb3f6a896eae53ef75a751e72f7431f9b6986b56738dc314bca9eff9d078e65d865ebb28cbb7a63aa571eb11cdaed20c21c36cec565f81610e348fd165e0f2a +SHA512 (wine-3.15.tar.xz.sign) = d805541d20766a02adf6458e859e8fcb1b5404ba5d9b2c9497cc544d952641378d90092f15d250f1eebbf1eb2b79186ad5e025c295aef1a1f463e653abfa0614 +SHA512 (wine-staging-3.15.tar.gz) = f0ed9d4a099b03c04a126927919b7eddbdaff7a08a0b97cdf387c64318826d6454183cf03997425b349540d13b1ccf6262aa2c5af0af682939584e3de71b7541 diff --git a/wine.spec b/wine.spec index c07e75e..16668a1 100644 --- a/wine.spec +++ b/wine.spec @@ -20,7 +20,7 @@ %endif Name: wine -Version: 3.14 +Version: 3.15 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -51,9 +51,6 @@ Source109: wine-oleview.desktop # build fixes # wine bugs -# https://github.com/wine-staging/wine-staging/commit/720db34b6e2d5d4363a3fa14d8e0bcd1e0706d11 -Patch1: wine-staging-3.14-arm.patch -Patch2: wine-staging-3.14-arm-2.patch # desktop dir Source200: wine.menu @@ -688,8 +685,6 @@ This package adds the opencl driver for wine. # setup and apply wine-staging patches gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 -%patch1 -p1 -b.arm -%patch2 -p1 -b.arm2 patches/patchinstall.sh DESTDIR="`pwd`" --all # fix parallelized build @@ -1725,6 +1720,7 @@ fi %{_libdir}/wine/olepro32.dll.so %{_libdir}/wine/olesvr32.dll.so %{_libdir}/wine/olethk32.dll.so +%{_libdir}/wine/opcservices.dll.so %{_libdir}/wine/packager.dll.so %{_libdir}/wine/pdh.dll.so %{_libdir}/wine/photometadatahandler.dll.so @@ -2219,6 +2215,9 @@ fi %endif %changelog +* Mon Sep 03 2018 Michael Cronenworth 3.15-1 +- version update + * Mon Aug 20 2018 Michael Cronenworth 3.14-1 - version update From b1777918611f9bcb1a4ba8af8767af66d303fc7a Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 3 Sep 2018 18:51:22 -0500 Subject: [PATCH 466/715] Remove upstream patches --- wine-staging-3.14-arm-2.patch | 13 ---- wine-staging-3.14-arm.patch | 137 ---------------------------------- 2 files changed, 150 deletions(-) delete mode 100644 wine-staging-3.14-arm-2.patch delete mode 100644 wine-staging-3.14-arm.patch diff --git a/wine-staging-3.14-arm-2.patch b/wine-staging-3.14-arm-2.patch deleted file mode 100644 index 4d418cf..0000000 --- a/wine-staging-3.14-arm-2.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- a/patches/ntdll-RtlCreateUserThread/0001-ntdll-Refactor-RtlCreateUserThread-into-NtCreateThre.patch -+++ b/patches/ntdll-RtlCreateUserThread/0001-ntdll-Refactor-RtlCreateUserThread-into-NtCreateThre.patch -@@ -222,8 +222,8 @@ - + context.R0 = (DWORD)entry; - + context.R1 = (DWORD)arg; - +#elif defined(__aarch64__) --+ context.u.s.X0 = (DWORD_PTR)entry; --+ context.u.s.X1 = (DWORD_PTR)arg; -++ context.u.X0 = (DWORD_PTR)entry; -++ context.u.X1 = (DWORD_PTR)arg; - +#elif defined(__powerpc__) - + context.Gpr3 = (DWORD)entry; - + context.Gpr4 = (DWORD)arg; diff --git a/wine-staging-3.14-arm.patch b/wine-staging-3.14-arm.patch deleted file mode 100644 index 7e49f8d..0000000 --- a/wine-staging-3.14-arm.patch +++ /dev/null @@ -1,137 +0,0 @@ -From 720db34b6e2d5d4363a3fa14d8e0bcd1e0706d11 Mon Sep 17 00:00:00 2001 -From: Zebediah Figura -Date: Mon, 20 Aug 2018 18:07:00 -0500 -Subject: [PATCH] ntdll-RtlCreateUserThread: Fix compilation for ARM. - -* Fix field dereferencing, should fix bug 45678. -* Don't use __syscall_ wrappers on architectures where syscall thunks aren't - implemented. (Ideally we'd just redirect them, but it turns out that this - is very hard to do with the current infrastructure.) This should fix bug - 45677. ---- - ...tlCreateUserThread-into-NtCreateThre.patch | 36 +++++++++++-------- - 1 file changed, 22 insertions(+), 14 deletions(-) - -diff --git a/patches/ntdll-RtlCreateUserThread/0001-ntdll-Refactor-RtlCreateUserThread-into-NtCreateThre.patch b/patches/ntdll-RtlCreateUserThread/0001-ntdll-Refactor-RtlCreateUserThread-into-NtCreateThre.patch -index 67681d51..c995f4f9 100644 ---- a/patches/ntdll-RtlCreateUserThread/0001-ntdll-Refactor-RtlCreateUserThread-into-NtCreateThre.patch -+++ b/patches/ntdll-RtlCreateUserThread/0001-ntdll-Refactor-RtlCreateUserThread-into-NtCreateThre.patch -@@ -1,4 +1,4 @@ --From 06289ea3c98030049e080fd3348073932898740f Mon Sep 17 00:00:00 2001 -+From 095a6032a9ba158b4e203d1c56f92d40de9172ae Mon Sep 17 00:00:00 2001 - From: Andrew Wesie - Date: Fri, 27 Jul 2018 01:22:59 -0500 - Subject: [PATCH] ntdll: Refactor RtlCreateUserThread into NtCreateThreadEx. -@@ -7,12 +7,12 @@ League of Legends hooks NtCreateThread or NtCreateThreadEx (depending on the - reported version), and expects it to be called whenever a thread is created. - --- - dlls/ntdll/ntdll.spec | 2 +- -- dlls/ntdll/thread.c | 177 ++++++++++++++++++++++++++++++++++++++++++-------- -+ dlls/ntdll/thread.c | 185 ++++++++++++++++++++++++++++++++++++++++++-------- - include/winternl.h | 25 +++++++ -- 3 files changed, 175 insertions(+), 29 deletions(-) -+ 3 files changed, 183 insertions(+), 29 deletions(-) - - diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec --index 705538a..90e537e 100644 -+index 003e4f9..f62942c 100644 - --- a/dlls/ntdll/ntdll.spec - +++ b/dlls/ntdll/ntdll.spec - @@ -154,7 +154,7 @@ -@@ -25,10 +25,10 @@ index 705538a..90e537e 100644 - @ stdcall NtCreateTimer(ptr long ptr long) - @ stub NtCreateToken - diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c --index eda4fa7..b50524d 100644 -+index 59d64e1..99f312f 100644 - --- a/dlls/ntdll/thread.c - +++ b/dlls/ntdll/thread.c --@@ -682,34 +682,18 @@ static void start_thread( struct startup_info *info ) -+@@ -527,34 +527,18 @@ static void start_thread( struct startup_info *info ) - /*********************************************************************** - * NtCreateThreadEx (NTDLL.@) - */ -@@ -68,7 +68,7 @@ index eda4fa7..b50524d 100644 - HANDLE handle = 0, actctx = 0; - TEB *teb = NULL; - DWORD tid = 0; --@@ -717,6 +701,33 @@ NTSTATUS WINAPI RtlCreateUserThread( HANDLE process, const SECURITY_DESCRIPTOR * -+@@ -562,6 +546,33 @@ NTSTATUS WINAPI RtlCreateUserThread( HANDLE process, const SECURITY_DESCRIPTOR * - NTSTATUS status; - SIZE_T extra_stack = PTHREAD_STACK_MIN; - -@@ -102,7 +102,7 @@ index eda4fa7..b50524d 100644 - if (process != NtCurrentProcess()) - { - apc_call_t call; --@@ -747,7 +758,7 @@ NTSTATUS WINAPI RtlCreateUserThread( HANDLE process, const SECURITY_DESCRIPTOR * -+@@ -592,7 +603,7 @@ NTSTATUS WINAPI RtlCreateUserThread( HANDLE process, const SECURITY_DESCRIPTOR * - - SERVER_START_REQ( new_thread ) - { -@@ -111,7 +111,7 @@ index eda4fa7..b50524d 100644 - req->attributes = 0; /* FIXME */ - req->suspend = suspended; - req->request_fd = request_pipe[0]; --@@ -804,19 +815,19 @@ NTSTATUS WINAPI RtlCreateUserThread( HANDLE process, const SECURITY_DESCRIPTOR * -+@@ -649,19 +660,19 @@ NTSTATUS WINAPI RtlCreateUserThread( HANDLE process, const SECURITY_DESCRIPTOR * - thread_data->wait_fd[1] = -1; - thread_data->start_stack = (char *)teb->Tib.StackBase; - -@@ -137,7 +137,7 @@ index eda4fa7..b50524d 100644 - pthread_sigmask( SIG_SETMASK, &sigset, NULL ); - - if (id) id->UniqueThread = ULongToHandle(tid); --@@ -833,6 +844,116 @@ error: -+@@ -678,6 +689,124 @@ error: - return status; - } - -@@ -159,8 +159,8 @@ index eda4fa7..b50524d 100644 - + entry = (LPTHREAD_START_ROUTINE) context->R0; - + arg = (void *)context->R1; - +#elif defined(__aarch64__) --+ entry = (LPTHREAD_START_ROUTINE) context->u.s.X0; --+ arg = (void *)context->u.s.X1; -++ entry = (LPTHREAD_START_ROUTINE) context->u.X0; -++ arg = (void *)context->u.X1; - +#elif defined(__powerpc__) - + entry = (LPTHREAD_START_ROUTINE) context->Gpr3; - + arg = (void *)context->Gpr4; -@@ -229,7 +229,11 @@ index eda4fa7..b50524d 100644 - + context.Gpr4 = (DWORD)arg; - +#endif - + -++#if defined(__i386__) || defined(__x86_64__) - + return __syscall_NtCreateThread(handle_ptr, (ACCESS_MASK)0, NULL, process, id, &context, NULL, suspended); -++#else -++ return NtCreateThread(handle_ptr, (ACCESS_MASK)0, NULL, process, id, &context, NULL, suspended); -++#endif - + } - + else - + { -@@ -247,7 +251,11 @@ index eda4fa7..b50524d 100644 - + pattr_list = &attr_list; - + } - + -++#if defined(__i386__) || defined(__x86_64__) - + return __syscall_NtCreateThreadEx(handle_ptr, (ACCESS_MASK)0, NULL, process, (LPTHREAD_START_ROUTINE)entry, arg, flags, 0, stack_commit, stack_reserve, pattr_list); -++#else -++ return NtCreateThreadEx(handle_ptr, (ACCESS_MASK)0, NULL, process, (LPTHREAD_START_ROUTINE)entry, arg, flags, 0, stack_commit, stack_reserve, pattr_list); -++#endif - + } - +} - + -@@ -255,10 +263,10 @@ index eda4fa7..b50524d 100644 - /****************************************************************************** - * RtlGetNtGlobalFlags (NTDLL.@) - diff --git a/include/winternl.h b/include/winternl.h --index ebfe8d8..827fead 100644 -+index dca8ff3..6617974 100644 - --- a/include/winternl.h - +++ b/include/winternl.h --@@ -2170,6 +2170,31 @@ typedef enum _SYSDBG_COMMAND { -+@@ -2173,6 +2173,31 @@ typedef enum _SYSDBG_COMMAND { - SysDbgWriteBusData - } SYSDBG_COMMAND, *PSYSDBG_COMMAND; - From 95e2141ddba985d20224b6c89fea1a80c0baa950 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 17 Sep 2018 07:50:17 -0500 Subject: [PATCH 467/715] Update to 3.16 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 5 ++++- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 16f95c7..7adbe41 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-3.15.tar.xz -/wine-3.15.tar.xz.sign -/wine-staging-3.15.tar.gz +/wine-3.16.tar.xz +/wine-3.16.tar.xz.sign +/wine-staging-3.16.tar.gz diff --git a/sources b/sources index b4bbda0..dc21ed7 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-3.15.tar.xz) = 3fb3f6a896eae53ef75a751e72f7431f9b6986b56738dc314bca9eff9d078e65d865ebb28cbb7a63aa571eb11cdaed20c21c36cec565f81610e348fd165e0f2a -SHA512 (wine-3.15.tar.xz.sign) = d805541d20766a02adf6458e859e8fcb1b5404ba5d9b2c9497cc544d952641378d90092f15d250f1eebbf1eb2b79186ad5e025c295aef1a1f463e653abfa0614 -SHA512 (wine-staging-3.15.tar.gz) = f0ed9d4a099b03c04a126927919b7eddbdaff7a08a0b97cdf387c64318826d6454183cf03997425b349540d13b1ccf6262aa2c5af0af682939584e3de71b7541 +SHA512 (wine-3.16.tar.xz) = f0c566f70ede01e5896b7611dfe58cd6748b92d55d22a71ccc9add575e9aa5062bbbffa14f0a30ee3df5cf79e9ea4dcf02a7d62db64b94d5b56927e256a978c2 +SHA512 (wine-3.16.tar.xz.sign) = 4ff39497e48062d0924bc1094b06fddae550e9caae7f2b29db68bf919e5ac414226dbe3f717e73bb4c712a33fdf8ff1a4b76fdef4f569fbcf74ba790f5f7b973 +SHA512 (wine-staging-3.16.tar.gz) = 25f06b06a0880b3926d9d3dfb35fd1aeb1f168426917dee32dcf906970474862021416f4e9db1917d8320962bc0bc17d1f3dad21b634a60b8e0da87a4b54067e diff --git a/wine.spec b/wine.spec index 16668a1..83524c2 100644 --- a/wine.spec +++ b/wine.spec @@ -20,7 +20,7 @@ %endif Name: wine -Version: 3.15 +Version: 3.16 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -2215,6 +2215,9 @@ fi %endif %changelog +* Mon Sep 17 2018 Michael Cronenworth 3.16-1 +- version update + * Mon Sep 03 2018 Michael Cronenworth 3.15-1 - version update From 68fa1bdcd40d11a778abee8c2e95afa13b670022 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 17 Sep 2018 08:36:36 -0500 Subject: [PATCH 468/715] Three new DLLs found in testing --- wine.spec | 3 +++ 1 file changed, 3 insertions(+) diff --git a/wine.spec b/wine.spec index 83524c2..c08fe77 100644 --- a/wine.spec +++ b/wine.spec @@ -1193,6 +1193,7 @@ fi %{_libdir}/wine/api-ms-win-core-com-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-com-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-com-private-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-comm-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-console-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-console-l2-1-0.dll.so %{_libdir}/wine/api-ms-win-core-crt-l1-1-0.dll.so @@ -1281,6 +1282,7 @@ fi %{_libdir}/wine/api-ms-win-core-string-l2-1-0.dll.so %{_libdir}/wine/api-ms-win-core-string-obsolete-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-stringansi-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-stringloader-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-synch-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-synch-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-core-synch-l1-2-1.dll.so @@ -1369,6 +1371,7 @@ fi %{_libdir}/wine/api-ms-win-security-base-l1-2-0.dll.so %{_libdir}/wine/api-ms-win-security-base-private-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-security-credentials-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-security-cryptoapi-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-security-grouppolicy-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-security-lsalookup-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-security-lsalookup-l1-1-1.dll.so From 7c047594d3abcda34c64451f6d25794b318418f2 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 30 Sep 2018 16:50:20 -0500 Subject: [PATCH 469/715] Update to 3.17 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 5 ++++- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 7adbe41..d538ae5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-3.16.tar.xz -/wine-3.16.tar.xz.sign -/wine-staging-3.16.tar.gz +/wine-3.17.tar.xz +/wine-3.17.tar.xz.sign +/wine-staging-3.17.tar.gz diff --git a/sources b/sources index dc21ed7..4e56580 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-3.16.tar.xz) = f0c566f70ede01e5896b7611dfe58cd6748b92d55d22a71ccc9add575e9aa5062bbbffa14f0a30ee3df5cf79e9ea4dcf02a7d62db64b94d5b56927e256a978c2 -SHA512 (wine-3.16.tar.xz.sign) = 4ff39497e48062d0924bc1094b06fddae550e9caae7f2b29db68bf919e5ac414226dbe3f717e73bb4c712a33fdf8ff1a4b76fdef4f569fbcf74ba790f5f7b973 -SHA512 (wine-staging-3.16.tar.gz) = 25f06b06a0880b3926d9d3dfb35fd1aeb1f168426917dee32dcf906970474862021416f4e9db1917d8320962bc0bc17d1f3dad21b634a60b8e0da87a4b54067e +SHA512 (wine-3.17.tar.xz) = ea50c9e09d3fd7f41ff96a1219d43896946ac79c8cdef31ae56e10664fc3b0b6dd1f9d8cd72db874d08c431eba9c8033ea72182499666a5aa62c1056876b0a66 +SHA512 (wine-3.17.tar.xz.sign) = 039bc41089f1af96933f99073d4a6e6eade790b14199058cdb872f0053b030502cf3ef2a7244c0027c8ae34f8f05fbdacc6889be9b25afa6d1a01a2acd10d1eb +SHA512 (wine-staging-3.17.tar.gz) = 2fe9e8f801b53fa9b71fd908f5403956251522851383bfdde6828c6a8545d6f50ac8c41df54d89c2f92d74dc3bb563cd6a7d8ad394002c981197b71adc1a5e13 diff --git a/wine.spec b/wine.spec index c08fe77..abd4e6e 100644 --- a/wine.spec +++ b/wine.spec @@ -20,7 +20,7 @@ %endif Name: wine -Version: 3.16 +Version: 3.17 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -2218,6 +2218,9 @@ fi %endif %changelog +* Sun Sep 30 2018 Michael Cronenworth 3.17-1 +- version update + * Mon Sep 17 2018 Michael Cronenworth 3.16-1 - version update From 3eee3b1763f3d928b83551b581d95be6cd8602f4 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 17 Oct 2018 16:38:06 -0500 Subject: [PATCH 470/715] Update to 3.18 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 5 ++++- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index d538ae5..982478f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-3.17.tar.xz -/wine-3.17.tar.xz.sign -/wine-staging-3.17.tar.gz +/wine-3.18.tar.xz +/wine-3.18.tar.xz.sign +/wine-staging-3.18.tar.gz diff --git a/sources b/sources index 4e56580..b5a296e 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-3.17.tar.xz) = ea50c9e09d3fd7f41ff96a1219d43896946ac79c8cdef31ae56e10664fc3b0b6dd1f9d8cd72db874d08c431eba9c8033ea72182499666a5aa62c1056876b0a66 -SHA512 (wine-3.17.tar.xz.sign) = 039bc41089f1af96933f99073d4a6e6eade790b14199058cdb872f0053b030502cf3ef2a7244c0027c8ae34f8f05fbdacc6889be9b25afa6d1a01a2acd10d1eb -SHA512 (wine-staging-3.17.tar.gz) = 2fe9e8f801b53fa9b71fd908f5403956251522851383bfdde6828c6a8545d6f50ac8c41df54d89c2f92d74dc3bb563cd6a7d8ad394002c981197b71adc1a5e13 +SHA512 (wine-3.18.tar.xz) = 2137662ea69964a69d77ff5c05f271783bda49af65d605909074d465ed8087d84065156e5c509eae31b4c3a20e83a838fc71bd077b2267640b163acfa5f7366e +SHA512 (wine-3.18.tar.xz.sign) = 27aa0fb3f44696de8c1769bb0223dec5ae104d03e30f67bafa2d5fb26a3e5437c34f3d22ebc3bc34e58385c6dc9d87f7c58e9eb2ba448fb5c2a11ee0239d5348 +SHA512 (wine-staging-3.18.tar.gz) = d7c353b2302616b8ffe9f41090bc36c8869238410eda16072aed0b70e54c8a09b4a48d439fc9e4f211804945d55dc4a00a5d70efd2ca4a50f72db7607e6ef10e diff --git a/wine.spec b/wine.spec index abd4e6e..a3ad946 100644 --- a/wine.spec +++ b/wine.spec @@ -20,7 +20,7 @@ %endif Name: wine -Version: 3.17 +Version: 3.18 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -2218,6 +2218,9 @@ fi %endif %changelog +* Wed Oct 17 2018 Michael Cronenworth 3.18-1 +- version update + * Sun Sep 30 2018 Michael Cronenworth 3.17-1 - version update From fc65c80ff6e78894b8489ec2c4740e421db0ae34 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 29 Oct 2018 14:50:07 -0500 Subject: [PATCH 471/715] Update to 3.19 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 5 ++++- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 982478f..0182b51 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-3.18.tar.xz -/wine-3.18.tar.xz.sign -/wine-staging-3.18.tar.gz +/wine-3.19.tar.xz +/wine-3.19.tar.xz.sign +/wine-staging-3.19.tar.gz diff --git a/sources b/sources index b5a296e..2911a7e 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-3.18.tar.xz) = 2137662ea69964a69d77ff5c05f271783bda49af65d605909074d465ed8087d84065156e5c509eae31b4c3a20e83a838fc71bd077b2267640b163acfa5f7366e -SHA512 (wine-3.18.tar.xz.sign) = 27aa0fb3f44696de8c1769bb0223dec5ae104d03e30f67bafa2d5fb26a3e5437c34f3d22ebc3bc34e58385c6dc9d87f7c58e9eb2ba448fb5c2a11ee0239d5348 -SHA512 (wine-staging-3.18.tar.gz) = d7c353b2302616b8ffe9f41090bc36c8869238410eda16072aed0b70e54c8a09b4a48d439fc9e4f211804945d55dc4a00a5d70efd2ca4a50f72db7607e6ef10e +SHA512 (wine-3.19.tar.xz) = 84a1811b01024191959fd16a86bd532c96f16344feb4241954d0b5819ba1db8073dc7adcf1589b67169fb6089d2d501846f6fcbdc396c804f26c794cc4a1edd1 +SHA512 (wine-3.19.tar.xz.sign) = 7a54831a36d793a4c95679ef981ab7de21dda96ae8d0131f37ac9143481a56565d847005fcd7b06d6872ae799f66c6fae30da0477770ee1d4afd275d129809eb +SHA512 (wine-staging-3.19.tar.gz) = c3e66c88b4baad4c854b8729ef58aabff587f16f0a13fe89396dd5d99c9b928c6e23ff15938dd40376ec76a40538bba950dd0e2b5b25ce1260de023bb1d17198 diff --git a/wine.spec b/wine.spec index a3ad946..eec710d 100644 --- a/wine.spec +++ b/wine.spec @@ -20,7 +20,7 @@ %endif Name: wine -Version: 3.18 +Version: 3.19 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -2218,6 +2218,9 @@ fi %endif %changelog +* Mon Oct 29 2018 Michael Cronenworth 3.19-1 +- version update + * Wed Oct 17 2018 Michael Cronenworth 3.18-1 - version update From d5290c8657fd83ce9c50cfff2b7f8524f360674b Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 13 Nov 2018 08:20:08 -0600 Subject: [PATCH 472/715] Update to 3.20 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 9 ++++++++- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 0182b51..fc03bcb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-3.19.tar.xz -/wine-3.19.tar.xz.sign -/wine-staging-3.19.tar.gz +/wine-3.20.tar.xz +/wine-3.20.tar.xz.sign +/wine-staging-3.20.tar.gz diff --git a/sources b/sources index 2911a7e..c28e850 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-3.19.tar.xz) = 84a1811b01024191959fd16a86bd532c96f16344feb4241954d0b5819ba1db8073dc7adcf1589b67169fb6089d2d501846f6fcbdc396c804f26c794cc4a1edd1 -SHA512 (wine-3.19.tar.xz.sign) = 7a54831a36d793a4c95679ef981ab7de21dda96ae8d0131f37ac9143481a56565d847005fcd7b06d6872ae799f66c6fae30da0477770ee1d4afd275d129809eb -SHA512 (wine-staging-3.19.tar.gz) = c3e66c88b4baad4c854b8729ef58aabff587f16f0a13fe89396dd5d99c9b928c6e23ff15938dd40376ec76a40538bba950dd0e2b5b25ce1260de023bb1d17198 +SHA512 (wine-3.20.tar.xz) = fb66d1d4b427f46dd048b13e53bcd15a5eaeb19039221fe98ec771140c33b3c245a974e52242eab5731ffa0de15f5932204032fe24f86e1a313ff8f11da59cc4 +SHA512 (wine-3.20.tar.xz.sign) = 86e7667e51c04d7928f80cad300b41ee62a22710e9e03d2c0aad5c6993128ccbede4200b3e18dc80c1e3783fec0b515165cb48fbc6c0b60b05418a503c736575 +SHA512 (wine-staging-3.20.tar.gz) = 4b92e53e84046d99c3f7ec5e0d0d7e62fdb767b1c44e23605125744686439fe62991c8adea941950b390a01d251ecbb79f3b329cfe5a1b1fbc76c5372283579d diff --git a/wine.spec b/wine.spec index eec710d..6a62e2e 100644 --- a/wine.spec +++ b/wine.spec @@ -20,7 +20,7 @@ %endif Name: wine -Version: 3.19 +Version: 3.20 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1261,6 +1261,7 @@ fi %{_libdir}/wine/api-ms-win-core-processthreads-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-processthreads-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-processthreads-l1-1-2.dll.so +%{_libdir}/wine/api-ms-win-core-processthreads-l1-1-3.dll.so %{_libdir}/wine/api-ms-win-core-processtopology-obsolete-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-profile-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-psapi-l1-1-0.dll.so @@ -1310,6 +1311,7 @@ fi %{_libdir}/wine/api-ms-win-core-winrt-registration-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-winrt-string-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-core-winrt-string-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-wow64-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-core-wow64-l1-1-1.dll.so %{_libdir}/wine/api-ms-win-core-xstate-l1-1-0.dll.so @@ -1355,6 +1357,7 @@ fi %{_libdir}/wine/api-ms-win-mm-time-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-ntuser-dc-access-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-ntuser-rectangle-l1-1-0.dll.so +%{_libdir}/wine/api-ms-win-ntuser-sysparams-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-perf-legacy-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-power-base-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-power-setting-l1-1-0.dll.so @@ -1741,6 +1744,7 @@ fi %{_libdir}/wine/qmgrprxy.dll.so %{_libdir}/wine/quartz.dll.so %{_libdir}/wine/query.dll.so +%{_libdir}/wine/qwave.dll.so %{_libdir}/wine/rasapi32.dll.so %{_libdir}/wine/rasdlg.dll.so %{_libdir}/wine/regapi.dll.so @@ -2218,6 +2222,9 @@ fi %endif %changelog +* Mon Nov 12 2018 Michael Cronenworth 3.20-1 +- version update + * Mon Oct 29 2018 Michael Cronenworth 3.19-1 - version update From 12b58e125479ddb7186553541cb62e92d9d29aa6 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 28 Nov 2018 10:24:46 -0600 Subject: [PATCH 473/715] Update to 3.21 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 5 ++++- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index fc03bcb..f285945 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-3.20.tar.xz -/wine-3.20.tar.xz.sign -/wine-staging-3.20.tar.gz +/wine-3.21.tar.xz +/wine-3.21.tar.xz.sign +/wine-staging-3.21.tar.gz diff --git a/sources b/sources index c28e850..ee735ce 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-3.20.tar.xz) = fb66d1d4b427f46dd048b13e53bcd15a5eaeb19039221fe98ec771140c33b3c245a974e52242eab5731ffa0de15f5932204032fe24f86e1a313ff8f11da59cc4 -SHA512 (wine-3.20.tar.xz.sign) = 86e7667e51c04d7928f80cad300b41ee62a22710e9e03d2c0aad5c6993128ccbede4200b3e18dc80c1e3783fec0b515165cb48fbc6c0b60b05418a503c736575 -SHA512 (wine-staging-3.20.tar.gz) = 4b92e53e84046d99c3f7ec5e0d0d7e62fdb767b1c44e23605125744686439fe62991c8adea941950b390a01d251ecbb79f3b329cfe5a1b1fbc76c5372283579d +SHA512 (wine-3.21.tar.xz) = dd64a6778bf1b848c8fe14dc26cfca21f6c1c92714ca1b2e932a28560a2adc1f69aa1b2cba250f49a5df4f91a4accde677a2afaf960c200d3998eac1957b5c6b +SHA512 (wine-3.21.tar.xz.sign) = 5524112ced2b17bc2eb03a9f1d5010bdc2473c7593c0db3a0cd5c840085ea3e6c824e625574b21de0886a26d81b6c9d936db4d48cd3daf380c7d64cfb88b4e53 +SHA512 (wine-staging-3.21.tar.gz) = 17f8194954a420d1424d564ba9ad5e6d4dd574dc38da4895d5b6740c1990f8655cb573bd57c77ace2c78c71da4782b511a5ac937ca1f0fc958e3c925abaeefde diff --git a/wine.spec b/wine.spec index 6a62e2e..b4d67b9 100644 --- a/wine.spec +++ b/wine.spec @@ -20,7 +20,7 @@ %endif Name: wine -Version: 3.20 +Version: 3.21 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -2222,6 +2222,9 @@ fi %endif %changelog +* Wed Nov 28 2018 Michael Cronenworth 3.21-1 +- version update + * Mon Nov 12 2018 Michael Cronenworth 3.20-1 - version update From 7b41d9c56d0f611eba661f694f2e7dc378824994 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 10 Dec 2018 11:04:29 -0600 Subject: [PATCH 474/715] Update to 4.0 rc1 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 17 +++++++++++------ 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index f285945..882be7d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-3.21.tar.xz -/wine-3.21.tar.xz.sign -/wine-staging-3.21.tar.gz +/wine-4.0-rc1.tar.xz +/wine-4.0-rc1.tar.xz.sign +/wine-staging-4.0-rc1.tar.gz diff --git a/sources b/sources index ee735ce..2e0464c 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-3.21.tar.xz) = dd64a6778bf1b848c8fe14dc26cfca21f6c1c92714ca1b2e932a28560a2adc1f69aa1b2cba250f49a5df4f91a4accde677a2afaf960c200d3998eac1957b5c6b -SHA512 (wine-3.21.tar.xz.sign) = 5524112ced2b17bc2eb03a9f1d5010bdc2473c7593c0db3a0cd5c840085ea3e6c824e625574b21de0886a26d81b6c9d936db4d48cd3daf380c7d64cfb88b4e53 -SHA512 (wine-staging-3.21.tar.gz) = 17f8194954a420d1424d564ba9ad5e6d4dd574dc38da4895d5b6740c1990f8655cb573bd57c77ace2c78c71da4782b511a5ac937ca1f0fc958e3c925abaeefde +SHA512 (wine-4.0-rc1.tar.xz) = a380b9fa33a43cf6fa9199db91e31139ea57efd0b63f6b26cef42893995b5bec7492b684df9bc3f3b173988c2b45840533644486b7e58fcc3d513f3a80a8c0a5 +SHA512 (wine-4.0-rc1.tar.xz.sign) = 4fa0353d4efab88fe53c07ae9981ba39a6656c9e1400b4f4f5c507763026bde5dcdf23c0630621c1826dc9dee42737aeb730b362c10d41d02b207b1e1a9dc2be +SHA512 (wine-staging-4.0-rc1.tar.gz) = dc07e69095cc5a0f144e5ff926e90235ec1d6d9574e5b653d5c1a273b54e70074040440cd291958b470c3e6140a2355e09b08283881aa2696653d73634e5351b diff --git a/wine.spec b/wine.spec index b4d67b9..8921f57 100644 --- a/wine.spec +++ b/wine.spec @@ -20,15 +20,15 @@ %endif Name: wine -Version: 3.21 -Release: 1%{?dist} +Version: 4.0 +Release: 0.1.rc1%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators License: LGPLv2+ URL: https://www.winehq.org/ -Source0: https://dl.winehq.org/wine/source/3.x/wine-%{version}.tar.xz -Source10: https://dl.winehq.org/wine/source/3.x/wine-%{version}.tar.xz.sign +Source0: https://dl.winehq.org/wine/source/4.0/wine-%{version}-rc1.tar.xz +Source10: https://dl.winehq.org/wine/source/4.0/wine-%{version}-rc1.tar.xz.sign Source1: wine.init Source2: wine.systemd @@ -71,7 +71,7 @@ Patch511: wine-cjk.patch %if 0%{?wine_staging} # wine-staging patches # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar.gz#/wine-staging-%{version}.tar.gz +Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}-rc1.tar.gz#/wine-staging-%{version}-rc1.tar.gz %endif %if !%{?no64bit} @@ -678,7 +678,7 @@ This package adds the opencl driver for wine. %endif %prep -%setup -q -n wine-%{version} +%setup -q -n wine-%{version}-rc1 %patch511 -p1 -b.cjk %if 0%{?wine_staging} @@ -1512,6 +1512,7 @@ fi %{_libdir}/wine/ext-ms-win-ntuser-draw-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-ntuser-gui-l1-3-0.dll.so %{_libdir}/wine/ext-ms-win-ntuser-keyboard-l1-3-0.dll.so +%{_libdir}/wine/ext-ms-win-ntuser-misc-l1-2-0.dll.so %{_libdir}/wine/ext-ms-win-ntuser-misc-l1-5-1.dll.so %{_libdir}/wine/ext-ms-win-ntuser-message-l1-1-1.dll.so %{_libdir}/wine/ext-ms-win-ntuser-mouse-l1-1-0.dll.so @@ -1802,6 +1803,7 @@ fi %{_libdir}/wine/tdh.dll.so %{_libdir}/wine/tdi.sys.so %{_libdir}/wine/traffic.dll.so +%{_libdir}/wine/tzres.dll.so %{_libdir}/wine/ucrtbase.dll.so %if 0%{?wine_staging} %{_libdir}/wine/uianimation.dll.so @@ -2222,6 +2224,9 @@ fi %endif %changelog +* Mon Dec 10 2018 Michael Cronenworth 4.0-0.1.rc1 +- version update + * Wed Nov 28 2018 Michael Cronenworth 3.21-1 - version update From a475401d3471d089015c06a9d91608f34ced9f46 Mon Sep 17 00:00:00 2001 From: josef radinger Date: Sat, 15 Dec 2018 17:32:58 +0000 Subject: [PATCH 475/715] fix typo and wording --- wine-README-Fedora | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/wine-README-Fedora b/wine-README-Fedora index 8baf94e..3765ea0 100644 --- a/wine-README-Fedora +++ b/wine-README-Fedora @@ -1,7 +1,7 @@ Wine directory structure used in Fedora Linux: ============================================== -${HOME}/.wine/drive_c is the root directory (aka C: drive) wine looks for it +${HOME}/.wine/drive_c is the root directory (aka C: drive) wine looks for by default. It is created with (empty) C:\windows and C:\windows\system directories, needed to operate Wine without an existing Windows installation, if it does not already exist. @@ -18,8 +18,8 @@ Wine bugs: ========== If you find a bug, please take the time to move your ${HOME}/.wine directory someplace and try with a fresh version (like mv ${HOME}/.wine{,-save}). If the -bug is still there look trough https://bugzilla.redhat.com and see if the bug -is already reported. In case it is not please report it. +bug is still there look through https://bugzilla.redhat.com and see if the bug +has already been reported. In case it was not please report it. CJK support: ============ From e683cc3932142303af6ba60472d4f36b2a8e6243 Mon Sep 17 00:00:00 2001 From: josef radinger Date: Sat, 15 Dec 2018 17:34:51 +0000 Subject: [PATCH 476/715] fix typos --- wine-README-tahoma | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wine-README-tahoma b/wine-README-tahoma index 777f302..da22815 100644 --- a/wine-README-tahoma +++ b/wine-README-tahoma @@ -1,7 +1,7 @@ = wine-tahoma-fonts = Wine provides the wine tahoma font family. In fedora embedded bitmaps are -turned of per default (/etc/fonts/conf.d/20-wine-tahoma-nobitmaps.conf) as -this will provide smother letters for most users. +turned off per default (/etc/fonts/conf.d/20-wine-tahoma-nobitmaps.conf) as +this will provide smoother letters for most users. If you do not like the wine tahoma font experience but want to keep it installed you can turn it of by adding the following to ~/.fonts.conf or by From 50ad92b34e9c7338f58a522a205ba70b6d424d75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Sat, 15 Dec 2018 19:32:33 +0100 Subject: [PATCH 477/715] rpm changelog and bump release --- wine.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 8921f57..458c031 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ Name: wine Version: 4.0 -Release: 0.1.rc1%{?dist} +Release: 0.2.rc1%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -2224,6 +2224,9 @@ fi %endif %changelog +* Sat Dec 15 2018 Björn Esser - 4.0-0.2.rc1 +- fix typos and wording in readme-files + * Mon Dec 10 2018 Michael Cronenworth 4.0-0.1.rc1 - version update From 1938c099b2626b37c0593cb6a3826162a1ebbebb Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 16 Dec 2018 15:15:20 -0600 Subject: [PATCH 478/715] Update to 4.0-rc2 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 13 ++++++++----- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 882be7d..b1469ac 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-4.0-rc1.tar.xz -/wine-4.0-rc1.tar.xz.sign -/wine-staging-4.0-rc1.tar.gz +/wine-4.0-rc2.tar.xz +/wine-4.0-rc2.tar.xz.sign +/wine-staging-4.0-rc2.tar.gz diff --git a/sources b/sources index 2e0464c..d2b65c3 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-4.0-rc1.tar.xz) = a380b9fa33a43cf6fa9199db91e31139ea57efd0b63f6b26cef42893995b5bec7492b684df9bc3f3b173988c2b45840533644486b7e58fcc3d513f3a80a8c0a5 -SHA512 (wine-4.0-rc1.tar.xz.sign) = 4fa0353d4efab88fe53c07ae9981ba39a6656c9e1400b4f4f5c507763026bde5dcdf23c0630621c1826dc9dee42737aeb730b362c10d41d02b207b1e1a9dc2be -SHA512 (wine-staging-4.0-rc1.tar.gz) = dc07e69095cc5a0f144e5ff926e90235ec1d6d9574e5b653d5c1a273b54e70074040440cd291958b470c3e6140a2355e09b08283881aa2696653d73634e5351b +SHA512 (wine-4.0-rc2.tar.xz) = 3678e746a317761b9c47daee336d1875578fada229330c9b5c4203e438f826c9d00b60661f109b4a3b98d27de75721810d96dfde4d786de5055cb36f576419b2 +SHA512 (wine-4.0-rc2.tar.xz.sign) = bf9f507f4e227c1815814c0b660b0d9988cda40e2f0c797794f466ccb7aa9badcf5d1ac5009c6004f7566dd66c3c947b36d7691b657c9a11423103b4b6f24219 +SHA512 (wine-staging-4.0-rc2.tar.gz) = 893ba270d73d7ad87babafb3256c77384ed90657f0304904628520f0e762446fe246c5ab2256299ee6df0bd30a7d41f96d4c2c5ce3d02941d25f3d4d2f5d1267 diff --git a/wine.spec b/wine.spec index 458c031..f5bb9d1 100644 --- a/wine.spec +++ b/wine.spec @@ -21,14 +21,14 @@ Name: wine Version: 4.0 -Release: 0.2.rc1%{?dist} +Release: 0.3.rc2%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators License: LGPLv2+ URL: https://www.winehq.org/ -Source0: https://dl.winehq.org/wine/source/4.0/wine-%{version}-rc1.tar.xz -Source10: https://dl.winehq.org/wine/source/4.0/wine-%{version}-rc1.tar.xz.sign +Source0: https://dl.winehq.org/wine/source/4.0/wine-%{version}-rc2.tar.xz +Source10: https://dl.winehq.org/wine/source/4.0/wine-%{version}-rc2.tar.xz.sign Source1: wine.init Source2: wine.systemd @@ -71,7 +71,7 @@ Patch511: wine-cjk.patch %if 0%{?wine_staging} # wine-staging patches # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}-rc1.tar.gz#/wine-staging-%{version}-rc1.tar.gz +Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}-rc2.tar.gz#/wine-staging-%{version}-rc2.tar.gz %endif %if !%{?no64bit} @@ -678,7 +678,7 @@ This package adds the opencl driver for wine. %endif %prep -%setup -q -n wine-%{version}-rc1 +%setup -q -n wine-%{version}-rc2 %patch511 -p1 -b.cjk %if 0%{?wine_staging} @@ -2224,6 +2224,9 @@ fi %endif %changelog +* Sun Dec 16 2018 Michael Cronenworth 4.0-0.3.rc2 +- version update + * Sat Dec 15 2018 Björn Esser - 4.0-0.2.rc1 - fix typos and wording in readme-files From 00c266f05adbda717c11b677439097f82358b8b2 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Thu, 3 Jan 2019 10:35:13 -0600 Subject: [PATCH 479/715] Update to 4.0-rc4 --- .gitignore | 3 +++ sources | 6 +++--- wine.spec | 5 ++++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index b1469ac..c22989e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ /wine-4.0-rc2.tar.xz /wine-4.0-rc2.tar.xz.sign /wine-staging-4.0-rc2.tar.gz +/wine-4.0-rc4.tar.xz +/wine-4.0-rc4.tar.xz.sign +/wine-staging-4.0-rc4.tar.gz diff --git a/sources b/sources index d2b65c3..3f3dea3 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-4.0-rc2.tar.xz) = 3678e746a317761b9c47daee336d1875578fada229330c9b5c4203e438f826c9d00b60661f109b4a3b98d27de75721810d96dfde4d786de5055cb36f576419b2 -SHA512 (wine-4.0-rc2.tar.xz.sign) = bf9f507f4e227c1815814c0b660b0d9988cda40e2f0c797794f466ccb7aa9badcf5d1ac5009c6004f7566dd66c3c947b36d7691b657c9a11423103b4b6f24219 -SHA512 (wine-staging-4.0-rc2.tar.gz) = 893ba270d73d7ad87babafb3256c77384ed90657f0304904628520f0e762446fe246c5ab2256299ee6df0bd30a7d41f96d4c2c5ce3d02941d25f3d4d2f5d1267 +SHA512 (wine-4.0-rc4.tar.xz) = 683b696ea1225da73495758f08715ba6fb2f8e0477942462f2c627da1f695d868b54287fdb6dba8252211d794e40c4bb3c881d68e792bf196e0a4271347212bb +SHA512 (wine-4.0-rc4.tar.xz.sign) = 182764669d073eb558c2d16dbbb7a4d61814aa4f7b68b6bca24e3c26d9a7bde1b319e83844e6458c2d41c9efdc0d1dc5d12cc4512879fff8947e18078f976dfb +SHA512 (wine-staging-4.0-rc4.tar.gz) = 63c6cb0bf10b9bf2aeb2a93d70e6a4efabdb4bb617f93ca68b2eb9de51837c6a15e970063fa9f3c067aa65d32c87ebef3e888565962f8fd541276e4be97b1855 diff --git a/wine.spec b/wine.spec index f5bb9d1..736bd11 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ Name: wine Version: 4.0 -Release: 0.3.rc2%{?dist} +Release: 0.4.rc4%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators @@ -2224,6 +2224,9 @@ fi %endif %changelog +* Thu Jan 03 2019 Michael Cronenworth 4.0-0.4.rc4 +- version update + * Sun Dec 16 2018 Michael Cronenworth 4.0-0.3.rc2 - version update From 25dd42803685f6c0931b4fe044f24b028087cb18 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Thu, 3 Jan 2019 10:35:13 -0600 Subject: [PATCH 480/715] Update to 4.0-rc4 --- .gitignore | 3 +++ sources | 6 +++--- wine.spec | 13 ++++++++----- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index b1469ac..c22989e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ /wine-4.0-rc2.tar.xz /wine-4.0-rc2.tar.xz.sign /wine-staging-4.0-rc2.tar.gz +/wine-4.0-rc4.tar.xz +/wine-4.0-rc4.tar.xz.sign +/wine-staging-4.0-rc4.tar.gz diff --git a/sources b/sources index d2b65c3..3f3dea3 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-4.0-rc2.tar.xz) = 3678e746a317761b9c47daee336d1875578fada229330c9b5c4203e438f826c9d00b60661f109b4a3b98d27de75721810d96dfde4d786de5055cb36f576419b2 -SHA512 (wine-4.0-rc2.tar.xz.sign) = bf9f507f4e227c1815814c0b660b0d9988cda40e2f0c797794f466ccb7aa9badcf5d1ac5009c6004f7566dd66c3c947b36d7691b657c9a11423103b4b6f24219 -SHA512 (wine-staging-4.0-rc2.tar.gz) = 893ba270d73d7ad87babafb3256c77384ed90657f0304904628520f0e762446fe246c5ab2256299ee6df0bd30a7d41f96d4c2c5ce3d02941d25f3d4d2f5d1267 +SHA512 (wine-4.0-rc4.tar.xz) = 683b696ea1225da73495758f08715ba6fb2f8e0477942462f2c627da1f695d868b54287fdb6dba8252211d794e40c4bb3c881d68e792bf196e0a4271347212bb +SHA512 (wine-4.0-rc4.tar.xz.sign) = 182764669d073eb558c2d16dbbb7a4d61814aa4f7b68b6bca24e3c26d9a7bde1b319e83844e6458c2d41c9efdc0d1dc5d12cc4512879fff8947e18078f976dfb +SHA512 (wine-staging-4.0-rc4.tar.gz) = 63c6cb0bf10b9bf2aeb2a93d70e6a4efabdb4bb617f93ca68b2eb9de51837c6a15e970063fa9f3c067aa65d32c87ebef3e888565962f8fd541276e4be97b1855 diff --git a/wine.spec b/wine.spec index f5bb9d1..cb68650 100644 --- a/wine.spec +++ b/wine.spec @@ -21,14 +21,14 @@ Name: wine Version: 4.0 -Release: 0.3.rc2%{?dist} +Release: 0.4.rc4%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators License: LGPLv2+ URL: https://www.winehq.org/ -Source0: https://dl.winehq.org/wine/source/4.0/wine-%{version}-rc2.tar.xz -Source10: https://dl.winehq.org/wine/source/4.0/wine-%{version}-rc2.tar.xz.sign +Source0: https://dl.winehq.org/wine/source/4.0/wine-%{version}-rc4.tar.xz +Source10: https://dl.winehq.org/wine/source/4.0/wine-%{version}-rc4.tar.xz.sign Source1: wine.init Source2: wine.systemd @@ -71,7 +71,7 @@ Patch511: wine-cjk.patch %if 0%{?wine_staging} # wine-staging patches # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}-rc2.tar.gz#/wine-staging-%{version}-rc2.tar.gz +Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}-rc4.tar.gz#/wine-staging-%{version}-rc4.tar.gz %endif %if !%{?no64bit} @@ -678,7 +678,7 @@ This package adds the opencl driver for wine. %endif %prep -%setup -q -n wine-%{version}-rc2 +%setup -q -n wine-%{version}-rc4 %patch511 -p1 -b.cjk %if 0%{?wine_staging} @@ -2224,6 +2224,9 @@ fi %endif %changelog +* Thu Jan 03 2019 Michael Cronenworth 4.0-0.4.rc4 +- version update + * Sun Dec 16 2018 Michael Cronenworth 4.0-0.3.rc2 - version update From 828989739bc14ebfb4fc2d5fa87137d89d3f79ed Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Thu, 3 Jan 2019 14:57:51 -0600 Subject: [PATCH 481/715] Fix ARM64 build after recent clang changes --- wine.spec | 3 +++ 1 file changed, 3 insertions(+) diff --git a/wine.spec b/wine.spec index cb68650..dce57da 100644 --- a/wine.spec +++ b/wine.spec @@ -703,6 +703,9 @@ export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno # ARM64 now requires clang # https://source.winehq.org/git/wine.git/commit/8fb8cc03c3edb599dd98f369e14a08f899cbff95 export CC="/usr/bin/clang" +# Fedora's default compiler flags now conflict with what clang supports +# https://bugzilla.redhat.com/show_bug.cgi?id=1658311 +export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-fstack-clash-protection//'`" %endif %configure \ From 0d8a4141f8459a233e928cc785fc4517d7fbd2b7 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Thu, 3 Jan 2019 15:13:35 -0600 Subject: [PATCH 482/715] Small update to CFLAGS construction for ARM64 --- wine.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index dce57da..fa63282 100644 --- a/wine.spec +++ b/wine.spec @@ -705,7 +705,7 @@ export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno export CC="/usr/bin/clang" # Fedora's default compiler flags now conflict with what clang supports # https://bugzilla.redhat.com/show_bug.cgi?id=1658311 -export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-fstack-clash-protection//'`" +export CFLAGS="`echo $CFLAGS | sed -e 's/-fstack-clash-protection//'`" %endif %configure \ From 70e23b50ce90dded383c2d41494df4abd3bcd538 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Thu, 17 Jan 2019 08:45:19 -0600 Subject: [PATCH 483/715] Update to 4.0-rc6 --- .gitignore | 9 +++------ sources | 6 +++--- wine.spec | 16 ++++++++++------ 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/.gitignore b/.gitignore index c22989e..1cc599b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,3 @@ -/wine-4.0-rc2.tar.xz -/wine-4.0-rc2.tar.xz.sign -/wine-staging-4.0-rc2.tar.gz -/wine-4.0-rc4.tar.xz -/wine-4.0-rc4.tar.xz.sign -/wine-staging-4.0-rc4.tar.gz +/wine-4.0-rc6.tar.xz +/wine-4.0-rc6.tar.xz.sign +/wine-staging-4.0-rc6.tar.gz diff --git a/sources b/sources index 3f3dea3..add3a8d 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-4.0-rc4.tar.xz) = 683b696ea1225da73495758f08715ba6fb2f8e0477942462f2c627da1f695d868b54287fdb6dba8252211d794e40c4bb3c881d68e792bf196e0a4271347212bb -SHA512 (wine-4.0-rc4.tar.xz.sign) = 182764669d073eb558c2d16dbbb7a4d61814aa4f7b68b6bca24e3c26d9a7bde1b319e83844e6458c2d41c9efdc0d1dc5d12cc4512879fff8947e18078f976dfb -SHA512 (wine-staging-4.0-rc4.tar.gz) = 63c6cb0bf10b9bf2aeb2a93d70e6a4efabdb4bb617f93ca68b2eb9de51837c6a15e970063fa9f3c067aa65d32c87ebef3e888565962f8fd541276e4be97b1855 +SHA512 (wine-4.0-rc6.tar.xz) = 5856aaacc16d8dc085219314ff5a3d4ed3fe0c9b0b3d1a728ad17179f219835d5cb5ef8810f83a2e8711c130944a86cf48e1fc44ab1f3a156dc40b0419085505 +SHA512 (wine-4.0-rc6.tar.xz.sign) = de72e4545b1d850555dcebab34a931da9f017a0bf8e2779e29fde6de3adcfe89161f4b21e637980f7e2865f8805cc2c47e951798cdf1f900e031241ba4419ded +SHA512 (wine-staging-4.0-rc6.tar.gz) = ded04b80ec95089237bf3bd7c40f503dea6a57d1fd23219fabffab1a441bc15942c04a3b6befbc648b56d5a9fa584a3d14a5c1359c7e72c44ba55695edeae925 diff --git a/wine.spec b/wine.spec index fa63282..fdcc887 100644 --- a/wine.spec +++ b/wine.spec @@ -21,14 +21,14 @@ Name: wine Version: 4.0 -Release: 0.4.rc4%{?dist} +Release: 0.5.rc6%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators License: LGPLv2+ URL: https://www.winehq.org/ -Source0: https://dl.winehq.org/wine/source/4.0/wine-%{version}-rc4.tar.xz -Source10: https://dl.winehq.org/wine/source/4.0/wine-%{version}-rc4.tar.xz.sign +Source0: https://dl.winehq.org/wine/source/4.0/wine-%{version}-rc6.tar.xz +Source10: https://dl.winehq.org/wine/source/4.0/wine-%{version}-rc6.tar.xz.sign Source1: wine.init Source2: wine.systemd @@ -71,7 +71,7 @@ Patch511: wine-cjk.patch %if 0%{?wine_staging} # wine-staging patches # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}-rc4.tar.gz#/wine-staging-%{version}-rc4.tar.gz +Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}-rc6.tar.gz#/wine-staging-%{version}-rc6.tar.gz %endif %if !%{?no64bit} @@ -678,7 +678,7 @@ This package adds the opencl driver for wine. %endif %prep -%setup -q -n wine-%{version}-rc4 +%setup -q -n wine-%{version}-rc6 %patch511 -p1 -b.cjk %if 0%{?wine_staging} @@ -727,7 +727,7 @@ make %{?_smp_mflags} TARGETFLAGS="" %install %makeinstall \ - includedir=%{buildroot}%{_includedir}/wine \ + includedir=%{buildroot}%{_includedir} \ sysconfdir=%{buildroot}%{_sysconfdir}/wine \ dlldir=%{buildroot}%{_libdir}/wine \ LDCONFIG=/bin/true \ @@ -2227,6 +2227,10 @@ fi %endif %changelog +* Thu Jan 17 2019 Michael Cronenworth 4.0-0.5.rc6 +- version update +- Include path fix (RHBZ#1664292) + * Thu Jan 03 2019 Michael Cronenworth 4.0-0.4.rc4 - version update From bb0d8f710142bfc7675340f1ab922b57a62c606b Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Tue, 22 Jan 2019 18:41:19 +0100 Subject: [PATCH 484/715] Remove obsolete ldconfig scriptlets References: https://fedoraproject.org/wiki/Changes/RemoveObsoleteScriptlets Signed-off-by: Igor Gnatenko --- wine.spec | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/wine.spec b/wine.spec index fdcc887..629fa93 100644 --- a/wine.spec +++ b/wine.spec @@ -254,7 +254,6 @@ wine-* sub packages. %package core Summary: Wine core package Group: Applications/Emulators -Requires(post): /sbin/ldconfig Requires(postun): /sbin/ldconfig Requires(posttrans): %{_sbindir}/alternatives Requires(preun): %{_sbindir}/alternatives @@ -994,7 +993,7 @@ fi %posttrans desktop gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : -%post core -p /sbin/ldconfig +%ldconfig_post core %posttrans core %ifarch x86_64 aarch64 @@ -1019,7 +1018,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %postun core -/sbin/ldconfig +%{?ldconfig} if [ $1 -eq 0 ] ; then %ifarch x86_64 aarch64 aarch64 %{_sbindir}/alternatives --remove wine %{_bindir}/wine64 @@ -1030,24 +1029,18 @@ if [ $1 -eq 0 ] ; then %endif fi -%post ldap -p /sbin/ldconfig -%postun ldap -p /sbin/ldconfig +%ldconfig_scriptlets ldap -%post cms -p /sbin/ldconfig -%postun cms -p /sbin/ldconfig +%ldconfig_scriptlets cms -%post twain -p /sbin/ldconfig -%postun twain -p /sbin/ldconfig +%ldconfig_scriptlets twain -%post capi -p /sbin/ldconfig -%postun capi -p /sbin/ldconfig +%ldconfig_scriptlets capi -%post alsa -p /sbin/ldconfig -%postun alsa -p /sbin/ldconfig +%ldconfig_scriptlets alsa %if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 -%post openal -p /sbin/ldconfig -%postun openal -p /sbin/ldconfig +%ldconfig_scriptlets openal %endif %files From 9ee394eb1003c008766c4190cf526717c8f19362 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 23 Jan 2019 09:57:09 -0600 Subject: [PATCH 485/715] Update to 4.0 final --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 13 ++++++++----- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 1cc599b..bb7f221 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-4.0-rc6.tar.xz -/wine-4.0-rc6.tar.xz.sign -/wine-staging-4.0-rc6.tar.gz +/wine-4.0.tar.xz +/wine-4.0.tar.xz.sign +/wine-staging-4.0.tar.gz diff --git a/sources b/sources index add3a8d..ffaad95 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-4.0-rc6.tar.xz) = 5856aaacc16d8dc085219314ff5a3d4ed3fe0c9b0b3d1a728ad17179f219835d5cb5ef8810f83a2e8711c130944a86cf48e1fc44ab1f3a156dc40b0419085505 -SHA512 (wine-4.0-rc6.tar.xz.sign) = de72e4545b1d850555dcebab34a931da9f017a0bf8e2779e29fde6de3adcfe89161f4b21e637980f7e2865f8805cc2c47e951798cdf1f900e031241ba4419ded -SHA512 (wine-staging-4.0-rc6.tar.gz) = ded04b80ec95089237bf3bd7c40f503dea6a57d1fd23219fabffab1a441bc15942c04a3b6befbc648b56d5a9fa584a3d14a5c1359c7e72c44ba55695edeae925 +SHA512 (wine-4.0.tar.xz) = 7607fa7a3d5f7bcd3d8c4c9e7bb6e1987466110bbfc672782ebe57c6d9da348c58e76abf40b0a70c725dfd703163db6e194ee0e3db11a47b6b60e225163308dd +SHA512 (wine-4.0.tar.xz.sign) = 81248a89f6f49edaad9e5cb6fb9d2f8e6e8e3dd5cbb48e266fe72263a1eb79c80e4448827271a033184be976931a446d1fd5bb789e1f2a0b9ec72200caf74228 +SHA512 (wine-staging-4.0.tar.gz) = 4c2277449be17b83235bab7898818a886e84e82c0c5eb8216a5bc42e3d9a0e1dcf09d4522e1165d503fd9237673fa91c2c07d837cde58897f1b6fc8bc6fa5d33 diff --git a/wine.spec b/wine.spec index fdcc887..36bdb0b 100644 --- a/wine.spec +++ b/wine.spec @@ -21,14 +21,14 @@ Name: wine Version: 4.0 -Release: 0.5.rc6%{?dist} +Release: 1%{?dist} Summary: A compatibility layer for windows applications Group: Applications/Emulators License: LGPLv2+ URL: https://www.winehq.org/ -Source0: https://dl.winehq.org/wine/source/4.0/wine-%{version}-rc6.tar.xz -Source10: https://dl.winehq.org/wine/source/4.0/wine-%{version}-rc6.tar.xz.sign +Source0: https://dl.winehq.org/wine/source/4.0/wine-%{version}.tar.xz +Source10: https://dl.winehq.org/wine/source/4.0/wine-%{version}.tar.xz.sign Source1: wine.init Source2: wine.systemd @@ -71,7 +71,7 @@ Patch511: wine-cjk.patch %if 0%{?wine_staging} # wine-staging patches # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}-rc6.tar.gz#/wine-staging-%{version}-rc6.tar.gz +Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar.gz#/wine-staging-%{version}.tar.gz %endif %if !%{?no64bit} @@ -678,7 +678,7 @@ This package adds the opencl driver for wine. %endif %prep -%setup -q -n wine-%{version}-rc6 +%setup -q -n wine-%{version} %patch511 -p1 -b.cjk %if 0%{?wine_staging} @@ -2227,6 +2227,9 @@ fi %endif %changelog +* Wed Jan 23 2019 Michael Cronenworth 4.0-1 +- version update + * Thu Jan 17 2019 Michael Cronenworth 4.0-0.5.rc6 - version update - Include path fix (RHBZ#1664292) From be1d9f059dec932ab98cf7e3babba06c85b84bc6 Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Sun, 27 Jan 2019 13:20:26 +0100 Subject: [PATCH 486/715] Remove obsolete scriptlets References: https://fedoraproject.org/wiki/Changes/RemoveObsoleteScriptlets Signed-off-by: Igor Gnatenko --- wine.spec | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/wine.spec b/wine.spec index bb5dc30..f615144 100644 --- a/wine.spec +++ b/wine.spec @@ -979,20 +979,6 @@ if [ $1 -eq 0 ]; then fi %endif -%post desktop -update-desktop-database &>/dev/null || : -touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : - -%postun desktop -update-desktop-database &>/dev/null || : -if [ $1 -eq 0 ] ; then - touch --no-create %{_datadir}/icons/hicolor &>/dev/null - gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : -fi - -%posttrans desktop -gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : - %ldconfig_post core %posttrans core From 48e9c54e41eaafb46134433af20e2b2ab802cd41 Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Mon, 28 Jan 2019 20:18:30 +0100 Subject: [PATCH 487/715] Remove obsolete Group tag References: https://fedoraproject.org/wiki/Changes/Remove_Group_Tag --- wine.spec | 30 ------------------------------ 1 file changed, 30 deletions(-) diff --git a/wine.spec b/wine.spec index f615144..90650a3 100644 --- a/wine.spec +++ b/wine.spec @@ -24,7 +24,6 @@ Version: 4.0 Release: 1%{?dist} Summary: A compatibility layer for windows applications -Group: Applications/Emulators License: LGPLv2+ URL: https://www.winehq.org/ Source0: https://dl.winehq.org/wine/source/4.0/wine-%{version}.tar.xz @@ -253,7 +252,6 @@ wine-* sub packages. %package core Summary: Wine core package -Group: Applications/Emulators Requires(postun): /sbin/ldconfig Requires(posttrans): %{_sbindir}/alternatives Requires(preun): %{_sbindir}/alternatives @@ -340,7 +338,6 @@ Wine core package includes the basic wine stuff needed by all other packages. %if 0%{?fedora} >= 15 || 0%{?rhel} >= 7 %package systemd Summary: Systemd config for the wine binfmt handler -Group: Applications/Emulators Requires: systemd >= 23 BuildArch: noarch Requires(post): systemd @@ -355,7 +352,6 @@ handling. See man binfmt.d for further information. %if 0%{?rhel} == 6 %package sysvinit Summary: SysV initscript for the wine binfmt handler -Group: Applications/Emulators BuildArch: noarch Requires(post): /sbin/chkconfig, /sbin/service Requires(preun): /sbin/chkconfig, /sbin/service @@ -366,7 +362,6 @@ Register the wine binary handler for windows executables via SysV init files. %package filesystem Summary: Filesystem directories for wine -Group: Applications/Emulators BuildArch: noarch %description filesystem @@ -374,7 +369,6 @@ Filesystem directories and basic configuration for wine. %package common Summary: Common files -Group: Applications/Emulators Requires: wine-core = %{version}-%{release} BuildArch: noarch @@ -383,7 +377,6 @@ Common wine files and scripts. %package desktop Summary: Desktop integration features for wine -Group: Applications/Emulators Requires(post): desktop-file-utils >= 0.8 Requires(postun): desktop-file-utils >= 0.8 Requires: wine-core = %{version}-%{release} @@ -403,7 +396,6 @@ handler service. %package fonts Summary: Wine font files -Group: Applications/Emulators BuildArch: noarch # arial-fonts are available with wine-staging patchset, only. %if 0%{?wine_staging} @@ -439,7 +431,6 @@ Requires: liberation-narrow-fonts %if 0%{?wine_staging} %package arial-fonts Summary: Wine Arial font family -Group: User Interface/X BuildArch: noarch Requires: fontpackages-filesystem @@ -449,7 +440,6 @@ Requires: fontpackages-filesystem %package courier-fonts Summary: Wine Courier font family -Group: User Interface/X BuildArch: noarch Requires: fontpackages-filesystem @@ -458,7 +448,6 @@ Requires: fontpackages-filesystem %package fixedsys-fonts Summary: Wine Fixedsys font family -Group: User Interface/X BuildArch: noarch Requires: fontpackages-filesystem @@ -467,7 +456,6 @@ Requires: fontpackages-filesystem %package small-fonts Summary: Wine Small font family -Group: User Interface/X BuildArch: noarch Requires: fontpackages-filesystem @@ -476,7 +464,6 @@ Requires: fontpackages-filesystem %package system-fonts Summary: Wine System font family -Group: User Interface/X BuildArch: noarch Requires: fontpackages-filesystem @@ -486,7 +473,6 @@ Requires: fontpackages-filesystem %package marlett-fonts Summary: Wine Marlett font family -Group: User Interface/X BuildArch: noarch Requires: fontpackages-filesystem @@ -496,7 +482,6 @@ Requires: fontpackages-filesystem %package ms-sans-serif-fonts Summary: Wine MS Sans Serif font family -Group: User Interface/X BuildArch: noarch Requires: fontpackages-filesystem @@ -507,7 +492,6 @@ Requires: fontpackages-filesystem # http://lists.fedoraproject.org/pipermail/devel/2012-June/168153.html %package tahoma-fonts Summary: Wine Tahoma font family -Group: User Interface/X BuildArch: noarch Requires: wine-filesystem = %{version}-%{release} @@ -518,7 +502,6 @@ wine-tahoma-fonts-system package. %package tahoma-fonts-system Summary: Wine Tahoma font family system integration -Group: User Interface/X BuildArch: noarch Requires: fontpackages-filesystem Requires: wine-tahoma-fonts = %{version}-%{release} @@ -529,7 +512,6 @@ Requires: wine-tahoma-fonts = %{version}-%{release} %if 0%{?wine_staging} %package times-new-roman-fonts Summary: Wine Times New Roman font family -Group: User Interface/X BuildArch: noarch Requires: wine-filesystem = %{version}-%{release} @@ -540,7 +522,6 @@ wine-times-new-roman-fonts-system package. %package times-new-roman-fonts-system Summary: Wine Times New Roman font family system integration -Group: User Interface/X BuildArch: noarch Requires: fontpackages-filesystem Requires: wine-times-new-roman-fonts = %{version}-%{release} @@ -551,7 +532,6 @@ Requires: wine-times-new-roman-fonts = %{version}-%{release} %package symbol-fonts Summary: Wine Symbol font family -Group: User Interface/X BuildArch: noarch Requires: fontpackages-filesystem @@ -560,7 +540,6 @@ Requires: fontpackages-filesystem %package wingdings-fonts Summary: Wine Wingdings font family -Group: User Interface/X BuildArch: noarch Requires: fontpackages-filesystem @@ -571,7 +550,6 @@ wine-wingdings-fonts-system package. %package wingdings-fonts-system Summary: Wine Wingdings font family system integration -Group: User Interface/X BuildArch: noarch Requires: fontpackages-filesystem Requires: wine-wingdings-fonts = %{version}-%{release} @@ -582,7 +560,6 @@ Requires: wine-wingdings-fonts = %{version}-%{release} %package ldap Summary: LDAP support for wine -Group: System Environment/Libraries Requires: wine-core = %{version}-%{release} %description ldap @@ -590,7 +567,6 @@ LDAP support for wine %package cms Summary: Color Management for wine -Group: System Environment/Libraries Requires: wine-core = %{version}-%{release} %description cms @@ -598,7 +574,6 @@ Color Management for wine %package twain Summary: Twain support for wine -Group: System Environment/Libraries Requires: wine-core = %{version}-%{release} %ifarch %{ix86} Requires: sane-backends-libs(x86-32) @@ -615,7 +590,6 @@ Twain support for wine %package capi Summary: ISDN support for wine -Group: System Environment/Libraries Requires: wine-core = %{version}-%{release} %ifarch x86_64 Requires: isdn4k-utils(x86-64) @@ -632,7 +606,6 @@ ISDN support for wine %package devel Summary: Wine development environment -Group: System Environment/Libraries Requires: wine-core = %{version}-%{release} %description devel @@ -641,7 +614,6 @@ with the Wine Windows(TM) emulation libraries. %package pulseaudio Summary: Pulseaudio support for wine -Group: System Environment/Libraries Requires: wine-core = %{version}-%{release} # midi output Requires: wine-alsa%{?_isa} = %{version}-%{release} @@ -651,7 +623,6 @@ This package adds a pulseaudio driver for wine. %package alsa Summary: Alsa support for wine -Group: System Environment/Libraries Requires: wine-core = %{version}-%{release} %description alsa @@ -660,7 +631,6 @@ This package adds an alsa driver for wine. %if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 %package openal Summary: Openal support for wine -Group: System Environment/Libraries Requires: wine-core = %{version}-%{release} %description openal From 5186239c28d778d61ffc3425184b841c445703bc Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sun, 3 Feb 2019 11:45:12 +0000 Subject: [PATCH 488/715] - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- wine.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 90650a3..7f8bf3b 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ Name: wine Version: 4.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -2176,6 +2176,9 @@ fi %endif %changelog +* Sun Feb 03 2019 Fedora Release Engineering - 4.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + * Wed Jan 23 2019 Michael Cronenworth 4.0-1 - version update From ba9ebe5e75c53d04cb9e9441be1d28440d8d918c Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 17 Feb 2019 21:14:32 -0600 Subject: [PATCH 489/715] Update to 4.2 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 14 +++++++------- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index bb7f221..274dd26 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-4.0.tar.xz -/wine-4.0.tar.xz.sign -/wine-staging-4.0.tar.gz +/wine-4.2.tar.xz +/wine-4.2.tar.xz.sign +/wine-staging-4.2.tar.gz diff --git a/sources b/sources index ffaad95..1140cce 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-4.0.tar.xz) = 7607fa7a3d5f7bcd3d8c4c9e7bb6e1987466110bbfc672782ebe57c6d9da348c58e76abf40b0a70c725dfd703163db6e194ee0e3db11a47b6b60e225163308dd -SHA512 (wine-4.0.tar.xz.sign) = 81248a89f6f49edaad9e5cb6fb9d2f8e6e8e3dd5cbb48e266fe72263a1eb79c80e4448827271a033184be976931a446d1fd5bb789e1f2a0b9ec72200caf74228 -SHA512 (wine-staging-4.0.tar.gz) = 4c2277449be17b83235bab7898818a886e84e82c0c5eb8216a5bc42e3d9a0e1dcf09d4522e1165d503fd9237673fa91c2c07d837cde58897f1b6fc8bc6fa5d33 +SHA512 (wine-4.2.tar.xz) = 408a846e92a0222f64ddd3c4d2c2a71b387ce51749e346c1fbca1fd57db910fa18dc6bb4ce0a350bef81e13be77c6b2d74537f7a1c0dcbb0e6d4c19d1ade288c +SHA512 (wine-4.2.tar.xz.sign) = 46dadbe35b9e4798a31069e9e10faf1abd12f3adc3d524b8696abf4d8b0fa5a26e0aec95e8db0283745176bb94c0d0fd80f511f93724f4d132e9bbd09494110a +SHA512 (wine-staging-4.2.tar.gz) = 2fb66bdeab084231983569d3884211a4d269a48bd6b25ba2e7c7e83d2dc98a205bd92dfc67c09528d57192086571d3f4f6c988c522b25aade1d525b74e662f2e diff --git a/wine.spec b/wine.spec index 7f8bf3b..99bdf43 100644 --- a/wine.spec +++ b/wine.spec @@ -20,14 +20,14 @@ %endif Name: wine -Version: 4.0 -Release: 2%{?dist} +Version: 4.2 +Release: 1%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ URL: https://www.winehq.org/ -Source0: https://dl.winehq.org/wine/source/4.0/wine-%{version}.tar.xz -Source10: https://dl.winehq.org/wine/source/4.0/wine-%{version}.tar.xz.sign +Source0: https://dl.winehq.org/wine/source/4.x/wine-%{version}.tar.xz +Source10: https://dl.winehq.org/wine/source/4.x/wine-%{version}.tar.xz.sign Source1: wine.init Source2: wine.systemd @@ -1771,9 +1771,6 @@ fi %{_libdir}/wine/user32.dll.so %{_libdir}/wine/usp10.dll.so %{_libdir}/wine/uxtheme.dll.so -%if 0%{?wine_staging} -%{_libdir}/wine/uxtheme-gtk.dll.so -%endif %{_libdir}/wine/userenv.dll.so %{_libdir}/wine/vbscript.dll.so %{_libdir}/wine/vcomp.dll.so @@ -2176,6 +2173,9 @@ fi %endif %changelog +* Sun Feb 17 2019 Michael Cronenworth 4.2-1 +- version update + * Sun Feb 03 2019 Fedora Release Engineering - 4.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild From c20af73b8d4a019a69cf424fe6edda3fe69e24a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Tue, 19 Feb 2019 13:58:42 +0100 Subject: [PATCH 490/715] Fix version requirement on wine-mono --- wine.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/wine.spec b/wine.spec index 99bdf43..c69986c 100644 --- a/wine.spec +++ b/wine.spec @@ -3,7 +3,7 @@ %global no64bit 0 %global winegecko 2.47 -%global winemono 4.7.3 +%global winemono 4.7.5 #global _default_patch_fuzz 2 # build with wine-staging patches, see: https://github.com/wine-staging/wine-staging @@ -21,7 +21,7 @@ Name: wine Version: 4.2 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -2173,6 +2173,9 @@ fi %endif %changelog +* Tue Feb 19 2019 Björn Esser - 4.2-2 +- Fix version requirement on wine-mono + * Sun Feb 17 2019 Michael Cronenworth 4.2-1 - version update From 250877190fd36c702f00991cc3587094fc196336 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Tue, 19 Feb 2019 16:36:25 +0100 Subject: [PATCH 491/715] Rebuilt against fixed atk (#1626575) --- wine.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index c69986c..32a7401 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ Name: wine Version: 4.2 -Release: 2%{?dist} +Release: 3%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -2173,6 +2173,9 @@ fi %endif %changelog +* Tue Feb 19 2019 Kalev Lember - 4.2-3 +- Rebuilt against fixed atk (#1626575) + * Tue Feb 19 2019 Björn Esser - 4.2-2 - Fix version requirement on wine-mono From 07e42868e87e5532de56dce6f866fe208f406fdb Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 20 Feb 2019 13:09:50 -0600 Subject: [PATCH 492/715] Minor file list update for files no longer in staging. --- wine.spec | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/wine.spec b/wine.spec index 32a7401..a614144 100644 --- a/wine.spec +++ b/wine.spec @@ -1489,15 +1489,13 @@ fi %{_libdir}/wine/ext-ms-win-rtcore-ntuser-sysparams-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-security-credui-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-security-cryptui-l1-1-0.dll.so +%{_libdir}/wine/ext-ms-win-uxtheme-themes-l1-1-0.dll.so %if 0%{?wine_staging} %{_libdir}/wine/ext-ms-win-appmodel-usercontext-l1-1-0.dll.so -%{_libdir}/wine/ext-ms-win-uxtheme-themes-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-xaml-pal-l1-1-0.dll.so %endif %{_libdir}/wine/faultrep.dll.so -%if 0%{?wine_staging} %{_libdir}/wine/feclient.dll.so -%endif %{_libdir}/wine/fltlib.dll.so %{_libdir}/wine/fltmgr.sys.so %{_libdir}/wine/fntcache.dll.so From fd557b3f5bc1b2c6f2181793fe6cda1d61dd741c Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 3 Mar 2019 22:58:29 -0600 Subject: [PATCH 493/715] Update to 4.3 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 24 ++++++++++++++++++++---- 3 files changed, 26 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index 274dd26..573d606 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-4.2.tar.xz -/wine-4.2.tar.xz.sign -/wine-staging-4.2.tar.gz +/wine-4.3.tar.xz +/wine-4.3.tar.xz.sign +/wine-staging-4.3.tar.gz diff --git a/sources b/sources index 1140cce..3f45fa1 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-4.2.tar.xz) = 408a846e92a0222f64ddd3c4d2c2a71b387ce51749e346c1fbca1fd57db910fa18dc6bb4ce0a350bef81e13be77c6b2d74537f7a1c0dcbb0e6d4c19d1ade288c -SHA512 (wine-4.2.tar.xz.sign) = 46dadbe35b9e4798a31069e9e10faf1abd12f3adc3d524b8696abf4d8b0fa5a26e0aec95e8db0283745176bb94c0d0fd80f511f93724f4d132e9bbd09494110a -SHA512 (wine-staging-4.2.tar.gz) = 2fb66bdeab084231983569d3884211a4d269a48bd6b25ba2e7c7e83d2dc98a205bd92dfc67c09528d57192086571d3f4f6c988c522b25aade1d525b74e662f2e +SHA512 (wine-4.3.tar.xz) = 45c0519f8f2873ef65e1761d518a7148f3aa54c0e993a41a60849c01c8df17386d57edd83308cff289300adc6a8e3fc5918fb12513f5b85a88e556b420479e83 +SHA512 (wine-4.3.tar.xz.sign) = 41e40242384c83d6d00d2ce1f4a4195a7b47fa17d46087bf2d971378aa7289e9ac96ae063c4bc72576bd0a46272de63421952b103065dc5ba2ea4790908c16e2 +SHA512 (wine-staging-4.3.tar.gz) = 9fd89c54200cf7c8e8a7f978fb6b34c89ece755976789f5c5c361ffb8d2882f14260c81ab8ac14ad140e41d807adbbaba05381a31b0177492aa222ef2fe04e4d diff --git a/wine.spec b/wine.spec index a614144..91b9c43 100644 --- a/wine.spec +++ b/wine.spec @@ -3,7 +3,7 @@ %global no64bit 0 %global winegecko 2.47 -%global winemono 4.7.5 +%global winemono 4.8.0 #global _default_patch_fuzz 2 # build with wine-staging patches, see: https://github.com/wine-staging/wine-staging @@ -20,8 +20,8 @@ %endif Name: wine -Version: 4.2 -Release: 3%{?dist} +Version: 4.3 +Release: 1%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -147,6 +147,7 @@ BuildRequires: mpg123-devel BuildRequires: SDL2-devel BuildRequires: libvkd3d-devel BuildRequires: vulkan-devel +BuildRequires: libFAudio-devel # Silverlight DRM-stuff needs XATTR enabled. %if 0%{?wine_staging} @@ -199,7 +200,7 @@ Requires: wine-twain(x86-64) = %{version}-%{release} Requires: wine-pulseaudio(x86-64) = %{version}-%{release} %if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 Requires: wine-openal(x86-64) = %{version}-%{release} -%endif +%endif %if 0%{?fedora} Requires: wine-opencl(x86-64) = %{version}-%{release} %endif @@ -1356,6 +1357,7 @@ fi %{_libdir}/wine/atl90.dll.so %{_libdir}/wine/atl100.dll.so %{_libdir}/wine/atl110.dll.so +%{_libdir}/wine/atlthunk.dll.so %{_libdir}/wine/atmlib.dll.so %{_libdir}/wine/authz.dll.so %{_libdir}/wine/avicap32.dll.so @@ -1455,25 +1457,35 @@ fi %{_libdir}/wine/ext-ms-win-domainjoin-netjoin-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-dwmapi-ext-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-gdi-dc-l1-2-0.dll.so +%{_libdir}/wine/ext-ms-win-gdi-dc-create-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-gdi-dc-create-l1-1-1.dll.so %{_libdir}/wine/ext-ms-win-gdi-devcaps-l1-1-0.dll.so +%{_libdir}/wine/ext-ms-win-gdi-draw-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-gdi-draw-l1-1-1.dll.so +%{_libdir}/wine/ext-ms-win-gdi-font-l1-1-0.dll.so +%{_libdir}/wine/ext-ms-win-gdi-font-l1-1-1.dll.so %{_libdir}/wine/ext-ms-win-gdi-render-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-kernel32-package-l1-1-1.dll.so %{_libdir}/wine/ext-ms-win-kernel32-package-current-l1-1-0.dll.so +%{_libdir}/wine/ext-ms-win-ntuser-dialogbox-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-ntuser-draw-l1-1-0.dll.so +%{_libdir}/wine/ext-ms-win-ntuser-gui-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-ntuser-gui-l1-3-0.dll.so %{_libdir}/wine/ext-ms-win-ntuser-keyboard-l1-3-0.dll.so %{_libdir}/wine/ext-ms-win-ntuser-misc-l1-2-0.dll.so %{_libdir}/wine/ext-ms-win-ntuser-misc-l1-5-1.dll.so +%{_libdir}/wine/ext-ms-win-ntuser-message-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-ntuser-message-l1-1-1.dll.so +%{_libdir}/wine/ext-ms-win-ntuser-misc-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-ntuser-mouse-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-ntuser-private-l1-1-1.dll.so %{_libdir}/wine/ext-ms-win-ntuser-private-l1-3-1.dll.so %{_libdir}/wine/ext-ms-win-ntuser-rectangle-ext-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-ntuser-uicontext-ext-l1-1-0.dll.so +%{_libdir}/wine/ext-ms-win-ntuser-window-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-ntuser-window-l1-1-1.dll.so %{_libdir}/wine/ext-ms-win-ntuser-window-l1-1-4.dll.so +%{_libdir}/wine/ext-ms-win-ntuser-windowclass-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-ntuser-windowclass-l1-1-1.dll.so %{_libdir}/wine/ext-ms-win-oleacc-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-ras-rasapi32-l1-1-0.dll.so @@ -1566,6 +1578,7 @@ fi %{_libdir}/wine/mf.dll.so %{_libdir}/wine/mf3216.dll.so %{_libdir}/wine/mfplat.dll.so +%{_libdir}/wine/mfplay.dll.so %{_libdir}/wine/mfreadwrite.dll.so %{_libdir}/wine/mgmtapi.dll.so %{_libdir}/wine/midimap.dll.so @@ -2171,6 +2184,9 @@ fi %endif %changelog +* Sun Mar 03 2019 Michael Cronenworth 4.3-1 +- version update + * Tue Feb 19 2019 Kalev Lember - 4.2-3 - Rebuilt against fixed atk (#1626575) From 3819b3303319ccbd274254fa2bb0e57dc111af67 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 4 Mar 2019 16:20:16 -0600 Subject: [PATCH 494/715] Disable wine-staging xaudio patchsets in favor of FAudio library support --- wine.spec | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 91b9c43..ceb8339 100644 --- a/wine.spec +++ b/wine.spec @@ -655,7 +655,12 @@ This package adds the opencl driver for wine. # setup and apply wine-staging patches gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 -patches/patchinstall.sh DESTDIR="`pwd`" --all +# Disable XAudio patchsets in favor of FAudio +patches/patchinstall.sh DESTDIR="`pwd`" --all \ + -W xaudio2-revert \ + -W xaudio2_CommitChanges \ + -W xaudio2_7-CreateFX-FXEcho \ + -W xaudio2_7-WMA_support # fix parallelized build sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in From 8bb64b386169ade86aec80295a1458494f69994c Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 19 Mar 2019 23:27:37 -0500 Subject: [PATCH 495/715] Update to 4.4 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 6 +++++- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 573d606..c3fb7cf 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-4.3.tar.xz -/wine-4.3.tar.xz.sign -/wine-staging-4.3.tar.gz +/wine-4.4.tar.xz +/wine-4.4.tar.xz.sign +/wine-staging-4.4.tar.gz diff --git a/sources b/sources index 3f45fa1..1a1d4fa 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-4.3.tar.xz) = 45c0519f8f2873ef65e1761d518a7148f3aa54c0e993a41a60849c01c8df17386d57edd83308cff289300adc6a8e3fc5918fb12513f5b85a88e556b420479e83 -SHA512 (wine-4.3.tar.xz.sign) = 41e40242384c83d6d00d2ce1f4a4195a7b47fa17d46087bf2d971378aa7289e9ac96ae063c4bc72576bd0a46272de63421952b103065dc5ba2ea4790908c16e2 -SHA512 (wine-staging-4.3.tar.gz) = 9fd89c54200cf7c8e8a7f978fb6b34c89ece755976789f5c5c361ffb8d2882f14260c81ab8ac14ad140e41d807adbbaba05381a31b0177492aa222ef2fe04e4d +SHA512 (wine-4.4.tar.xz) = 6678c9b0e086bdc9fab9f9fd2517226352b49f846bbae7be6000bb60db2f302aad49622192077b45880d45ad33ba4d82bfe3403fb82a1e65159f1352b40933de +SHA512 (wine-4.4.tar.xz.sign) = 1607bfb21b86d088bb2c1c6475a6768640f40d7f39238267f680f81175afeaf86008a57d9b9bd729989b8b18ce7a57c8fd81f276165d39cf714209c5e0e9e42b +SHA512 (wine-staging-4.4.tar.gz) = 4ddeddac2e2de9afd95ded71edb47f3eac15d1ca94254481e5369d6b69e401471b00ba16747621eb2d0f7d92c0558590f6efe89b3ea15012d9d3d45553d49196 diff --git a/wine.spec b/wine.spec index ceb8339..38da53d 100644 --- a/wine.spec +++ b/wine.spec @@ -20,7 +20,7 @@ %endif Name: wine -Version: 4.3 +Version: 4.4 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1139,6 +1139,7 @@ fi %{_libdir}/wine/adsldpc.dll.so %{_libdir}/wine/advapi32.dll.so %{_libdir}/wine/advpack.dll.so +%{_libdir}/wine/amsi.dll.so %{_libdir}/wine/amstream.dll.so %{_libdir}/wine/api-ms-win-appmodel-identity-l1-1-0.dll.so %{_libdir}/wine/api-ms-win-appmodel-runtime-l1-1-1.dll.so @@ -2189,6 +2190,9 @@ fi %endif %changelog +* Tue Mar 19 2019 Michael Cronenworth 4.4-1 +- version update + * Sun Mar 03 2019 Michael Cronenworth 4.3-1 - version update From 5450f730d86ed32da8d837300b5ec76437f28b95 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 2 Apr 2019 08:33:24 -0500 Subject: [PATCH 496/715] Update to 4.5 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 6 +++++- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index c3fb7cf..e174d19 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-4.4.tar.xz -/wine-4.4.tar.xz.sign -/wine-staging-4.4.tar.gz +/wine-4.5.tar.xz +/wine-4.5.tar.xz.sign +/wine-staging-4.5.tar.gz diff --git a/sources b/sources index 1a1d4fa..5ac7185 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-4.4.tar.xz) = 6678c9b0e086bdc9fab9f9fd2517226352b49f846bbae7be6000bb60db2f302aad49622192077b45880d45ad33ba4d82bfe3403fb82a1e65159f1352b40933de -SHA512 (wine-4.4.tar.xz.sign) = 1607bfb21b86d088bb2c1c6475a6768640f40d7f39238267f680f81175afeaf86008a57d9b9bd729989b8b18ce7a57c8fd81f276165d39cf714209c5e0e9e42b -SHA512 (wine-staging-4.4.tar.gz) = 4ddeddac2e2de9afd95ded71edb47f3eac15d1ca94254481e5369d6b69e401471b00ba16747621eb2d0f7d92c0558590f6efe89b3ea15012d9d3d45553d49196 +SHA512 (wine-4.5.tar.xz) = 261420efdf14595715cff5bb6a61223b0f2090b89dc05dca8c053a8a81abc3018715d41db50769a0f0488c658efc0742ac0f577b578e69eace70be4e463131dd +SHA512 (wine-4.5.tar.xz.sign) = a298565baf55ed69267ef1b23af997621d01ef1f6a97fc8031c156a513662e24f5785253fcf592d51b88ddd166a87d30cb2e01560f0a420689ff6ccff4c4ccff +SHA512 (wine-staging-4.5.tar.gz) = fda32b26de79bd3bbff6b1ab2249d7ff8adc7e8da2753271e8dae4f84bc71764ea6d1a887cc643e0ff70b217bd75fefebd3eb1bd4b6faace9a36399878998029 diff --git a/wine.spec b/wine.spec index 38da53d..133126d 100644 --- a/wine.spec +++ b/wine.spec @@ -20,7 +20,7 @@ %endif Name: wine -Version: 4.4 +Version: 4.5 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1583,6 +1583,7 @@ fi %{_libdir}/wine/mciwave.dll.so %{_libdir}/wine/mf.dll.so %{_libdir}/wine/mf3216.dll.so +%{_libdir}/wine/mferror.dll.so %{_libdir}/wine/mfplat.dll.so %{_libdir}/wine/mfplay.dll.so %{_libdir}/wine/mfreadwrite.dll.so @@ -2190,6 +2191,9 @@ fi %endif %changelog +* Tue Apr 02 2019 Michael Cronenworth 4.5-1 +- version update + * Tue Mar 19 2019 Michael Cronenworth 4.4-1 - version update From 9bd20b3f4b77ff08e0db5fb0381f53a12005d0a6 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 14 Apr 2019 13:22:46 -0500 Subject: [PATCH 497/715] Update to 4.6 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 8 ++++++-- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index e174d19..673ef3d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-4.5.tar.xz -/wine-4.5.tar.xz.sign -/wine-staging-4.5.tar.gz +/wine-4.6.tar.xz +/wine-4.6.tar.xz.sign +/wine-staging-4.6.tar.gz diff --git a/sources b/sources index 5ac7185..ea0ba6c 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-4.5.tar.xz) = 261420efdf14595715cff5bb6a61223b0f2090b89dc05dca8c053a8a81abc3018715d41db50769a0f0488c658efc0742ac0f577b578e69eace70be4e463131dd -SHA512 (wine-4.5.tar.xz.sign) = a298565baf55ed69267ef1b23af997621d01ef1f6a97fc8031c156a513662e24f5785253fcf592d51b88ddd166a87d30cb2e01560f0a420689ff6ccff4c4ccff -SHA512 (wine-staging-4.5.tar.gz) = fda32b26de79bd3bbff6b1ab2249d7ff8adc7e8da2753271e8dae4f84bc71764ea6d1a887cc643e0ff70b217bd75fefebd3eb1bd4b6faace9a36399878998029 +SHA512 (wine-4.6.tar.xz) = b5d8568de0256bdd9f3fcaef725c8daa90d028838fd490f75d7f08a7c538103a957a4fd03857a8fbbdf1de6acb7237b183dad24d6057be50dae12af227cd2c98 +SHA512 (wine-4.6.tar.xz.sign) = 5ad6633820e14447469c268daef6bf0bc4eeedc3cabb2a2bb01440bc3a503fd524eb442c8a86e5b433d744700be4ff07e990a3e9943c422c4ab39c7c5d788b7a +SHA512 (wine-staging-4.6.tar.gz) = 4b44cbdeffc8042c22d485c3d440894287793652734b7a791269a2f45ea10ceb81ce8c8bd302c55f62b04c127344532772ce2078d99835d22afa0088e153a888 diff --git a/wine.spec b/wine.spec index 133126d..efe2610 100644 --- a/wine.spec +++ b/wine.spec @@ -3,7 +3,7 @@ %global no64bit 0 %global winegecko 2.47 -%global winemono 4.8.0 +%global winemono 4.8.1 #global _default_patch_fuzz 2 # build with wine-staging patches, see: https://github.com/wine-staging/wine-staging @@ -20,7 +20,7 @@ %endif Name: wine -Version: 4.5 +Version: 4.6 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1564,6 +1564,7 @@ fi %{_libdir}/wine/kerberos.dll.so %{_libdir}/wine/kernel32.dll.so %{_libdir}/wine/kernelbase.dll.so +%{_libdir}/wine/ksecdd.sys.so %{_libdir}/wine/ksuser.dll.so %{_libdir}/wine/ktmw32.dll.so %if 0%{?fedora} > 24 @@ -2191,6 +2192,9 @@ fi %endif %changelog +* Sun Apr 14 2019 Michael Cronenworth 4.6-1 +- version update + * Tue Apr 02 2019 Michael Cronenworth 4.5-1 - version update From a36f2f2051883b37338b2a8c77f7993b1e6003fb Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 28 Apr 2019 12:51:48 -0500 Subject: [PATCH 498/715] Update to 4.7 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 7 +++++-- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index 673ef3d..f41c4eb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-4.6.tar.xz -/wine-4.6.tar.xz.sign -/wine-staging-4.6.tar.gz +/wine-4.7.tar.xz +/wine-4.7.tar.xz.sign +/wine-staging-4.7.tar.gz diff --git a/sources b/sources index ea0ba6c..4bddd5a 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-4.6.tar.xz) = b5d8568de0256bdd9f3fcaef725c8daa90d028838fd490f75d7f08a7c538103a957a4fd03857a8fbbdf1de6acb7237b183dad24d6057be50dae12af227cd2c98 -SHA512 (wine-4.6.tar.xz.sign) = 5ad6633820e14447469c268daef6bf0bc4eeedc3cabb2a2bb01440bc3a503fd524eb442c8a86e5b433d744700be4ff07e990a3e9943c422c4ab39c7c5d788b7a -SHA512 (wine-staging-4.6.tar.gz) = 4b44cbdeffc8042c22d485c3d440894287793652734b7a791269a2f45ea10ceb81ce8c8bd302c55f62b04c127344532772ce2078d99835d22afa0088e153a888 +SHA512 (wine-4.7.tar.xz) = cb768528db510f81d464b9c1bb48847162baaa86ef00dc7a418afdce38aa51262d150c14b3362fb40c93cc2e3633fc02b2916167f21af8a708eb393da6ba9163 +SHA512 (wine-4.7.tar.xz.sign) = 5ab8ee632d5cddbcc36fe68b7cfa06c5d8f77670af5ac2ed9e6eedbe4390a14d461b5920e199dc35f55b25f184f71d7718a54a250dd10fa30ced65e3c1c0f4a6 +SHA512 (wine-staging-4.7.tar.gz) = 1d9040ea542d18d5d041179cede7e1db40fc638bdb4ffef70a257dc50310e9fd0f93e5aa222d2d90551783b5a5064b3919a19e9072f931a7ae89506c462fb3e6 diff --git a/wine.spec b/wine.spec index efe2610..6de0a16 100644 --- a/wine.spec +++ b/wine.spec @@ -3,7 +3,7 @@ %global no64bit 0 %global winegecko 2.47 -%global winemono 4.8.1 +%global winemono 4.8.3 #global _default_patch_fuzz 2 # build with wine-staging patches, see: https://github.com/wine-staging/wine-staging @@ -20,7 +20,7 @@ %endif Name: wine -Version: 4.6 +Version: 4.7 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -2192,6 +2192,9 @@ fi %endif %changelog +* Sun Apr 28 2019 Michael Cronenworth 4.7-1 +- version update + * Sun Apr 14 2019 Michael Cronenworth 4.6-1 - version update From 3525b7d3a9e510e2346491400df63357ac8d4f79 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 14 May 2019 23:12:39 -0500 Subject: [PATCH 499/715] Update to 4.8 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 5 ++++- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index f41c4eb..705adee 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-4.7.tar.xz -/wine-4.7.tar.xz.sign -/wine-staging-4.7.tar.gz +/wine-4.8.tar.xz +/wine-4.8.tar.xz.sign +/wine-staging-4.8.tar.gz diff --git a/sources b/sources index 4bddd5a..7686136 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-4.7.tar.xz) = cb768528db510f81d464b9c1bb48847162baaa86ef00dc7a418afdce38aa51262d150c14b3362fb40c93cc2e3633fc02b2916167f21af8a708eb393da6ba9163 -SHA512 (wine-4.7.tar.xz.sign) = 5ab8ee632d5cddbcc36fe68b7cfa06c5d8f77670af5ac2ed9e6eedbe4390a14d461b5920e199dc35f55b25f184f71d7718a54a250dd10fa30ced65e3c1c0f4a6 -SHA512 (wine-staging-4.7.tar.gz) = 1d9040ea542d18d5d041179cede7e1db40fc638bdb4ffef70a257dc50310e9fd0f93e5aa222d2d90551783b5a5064b3919a19e9072f931a7ae89506c462fb3e6 +SHA512 (wine-4.8.tar.xz) = ad91c31aad86b9932777a1c5a84760f41c63cfbb5d79f1a8afd132a8948667283f85e081a454cfc0904544394eaabb00fb986eba15efd8a8409db38e793f3dab +SHA512 (wine-4.8.tar.xz.sign) = 6b8a4d0517c70123db8c62b7632b96cf16bee5477bc0d1cc843c1fe46294335e6e15aab0bfc82c783289d20911cc7729f407fccc9bab83ae2fdad332d116add0 +SHA512 (wine-staging-4.8.tar.gz) = f2e7fbe1ed0f77bd307185d0f7aa9e837e64f86ae98828db25e05c998ec07a9dd57dc9f3e6b093310c95ff2a517825d36420d7bd9fc9028d11bc29321ac3559e diff --git a/wine.spec b/wine.spec index 6de0a16..5694500 100644 --- a/wine.spec +++ b/wine.spec @@ -20,7 +20,7 @@ %endif Name: wine -Version: 4.7 +Version: 4.8 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -2192,6 +2192,9 @@ fi %endif %changelog +* Tue May 14 2019 Michael Cronenworth 4.8-1 +- version update + * Sun Apr 28 2019 Michael Cronenworth 4.7-1 - version update From 16dfe8624cccfc5826f6a192b761165b5917b223 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 15 May 2019 18:09:44 -0500 Subject: [PATCH 500/715] Fix default wine svg (RHBZ#1598994) --- wine.spec | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/wine.spec b/wine.spec index 5694500..715dcb1 100644 --- a/wine.spec +++ b/wine.spec @@ -21,7 +21,7 @@ Name: wine Version: 4.8 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -773,11 +773,16 @@ PROGRAM_ICONFIX='s/height="272"/height="256"/;'\ ' x="368"\n'\ ' y="8"\n'\ ' viewBox="368, 8, 256, 256"/;' +MAIN_ICONFIX='s/height="272"/height="256"/;'\ +'s/width="632"/width="256"\n'\ +' x="8"\n'\ +' y="8"\n'\ +' viewBox="8, 8, 256, 256"/;' # This icon file is still in the legacy format install -p -m 644 dlls/user32/resources/oic_winlogo.svg \ %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/wine.svg -sed -i -e '3s/368/64/' %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/wine.svg +sed -i -e "$MAIN_ICONFIX" %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/wine.svg # The rest come from programs/, and contain larger scalable icons # with a new layout that requires the PROGRAM_ICONFIX sed adjustment @@ -2192,6 +2197,9 @@ fi %endif %changelog +* Wed May 15 2019 Michael Cronenworth 4.8-2 +- Fix default wine svg (RHBZ#1598994) + * Tue May 14 2019 Michael Cronenworth 4.8-1 - version update From da062e717378a17baa4152ad80332da20f0a259c Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 26 May 2019 16:20:27 -0500 Subject: [PATCH 501/715] Update to 4.9 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 7 +++++-- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index 705adee..54358a6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-4.8.tar.xz -/wine-4.8.tar.xz.sign -/wine-staging-4.8.tar.gz +/wine-4.9.tar.xz +/wine-4.9.tar.xz.sign +/wine-staging-4.9.tar.gz diff --git a/sources b/sources index 7686136..b55d3c5 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-4.8.tar.xz) = ad91c31aad86b9932777a1c5a84760f41c63cfbb5d79f1a8afd132a8948667283f85e081a454cfc0904544394eaabb00fb986eba15efd8a8409db38e793f3dab -SHA512 (wine-4.8.tar.xz.sign) = 6b8a4d0517c70123db8c62b7632b96cf16bee5477bc0d1cc843c1fe46294335e6e15aab0bfc82c783289d20911cc7729f407fccc9bab83ae2fdad332d116add0 -SHA512 (wine-staging-4.8.tar.gz) = f2e7fbe1ed0f77bd307185d0f7aa9e837e64f86ae98828db25e05c998ec07a9dd57dc9f3e6b093310c95ff2a517825d36420d7bd9fc9028d11bc29321ac3559e +SHA512 (wine-4.9.tar.xz) = bf750af9569b0c564cd9581b9de8c399f6e42227eb6e79338ec6ba70f135fe3388b0792ff013add97341c488ed906227cdf93cc275e362ba232df78afaaab66d +SHA512 (wine-4.9.tar.xz.sign) = 2001fcdeaaca8aa545a95db99f61159f67615a0d0c21869e199677ecceb9838b768cd8990dde04c65caeb1464c1f1555924b486a541376c723d821b519f58664 +SHA512 (wine-staging-4.9.tar.gz) = 9676f54833a424f965af7591c40aa40cd3fb3b36062484de56585a631dafa68a9a545f00153350c067a0d73146f9f169a678041bb141f7562f9df6e31ec4e2d5 diff --git a/wine.spec b/wine.spec index 715dcb1..0260954 100644 --- a/wine.spec +++ b/wine.spec @@ -20,8 +20,8 @@ %endif Name: wine -Version: 4.8 -Release: 2%{?dist} +Version: 4.9 +Release: 1%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -2197,6 +2197,9 @@ fi %endif %changelog +* Sun May 26 2019 Michael Cronenworth 4.9-1 +- version update + * Wed May 15 2019 Michael Cronenworth 4.8-2 - Fix default wine svg (RHBZ#1598994) From cd9bb29e11c67d7c2a1f78ff28e121f0f2639dad Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Thu, 13 Jun 2019 23:59:15 -0500 Subject: [PATCH 502/715] Update to 4.10 and use MinGW --- .gitignore | 6 +- sources | 6 +- wine.spec | 1078 ++++++++++++++++++++++++++-------------------------- 3 files changed, 550 insertions(+), 540 deletions(-) diff --git a/.gitignore b/.gitignore index 54358a6..a5ce089 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-4.9.tar.xz -/wine-4.9.tar.xz.sign -/wine-staging-4.9.tar.gz +/wine-4.10.tar.xz +/wine-4.10.tar.xz.sign +/wine-staging-4.10.tar.gz diff --git a/sources b/sources index b55d3c5..1518c44 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-4.9.tar.xz) = bf750af9569b0c564cd9581b9de8c399f6e42227eb6e79338ec6ba70f135fe3388b0792ff013add97341c488ed906227cdf93cc275e362ba232df78afaaab66d -SHA512 (wine-4.9.tar.xz.sign) = 2001fcdeaaca8aa545a95db99f61159f67615a0d0c21869e199677ecceb9838b768cd8990dde04c65caeb1464c1f1555924b486a541376c723d821b519f58664 -SHA512 (wine-staging-4.9.tar.gz) = 9676f54833a424f965af7591c40aa40cd3fb3b36062484de56585a631dafa68a9a545f00153350c067a0d73146f9f169a678041bb141f7562f9df6e31ec4e2d5 +SHA512 (wine-4.10.tar.xz) = cafc1d268719f723091429d9d8787044719f0936b00d47c6d01cef4d9c141fed7ba5b9776c1c63c68934a0a1071fb74daa0440aa52e77c4e42aca894163d6f54 +SHA512 (wine-4.10.tar.xz.sign) = 04e01276b05faee237ad7e3108d680a040348abad000f7612c43a13fa864425eb5b20173a55d0c13b21460b1518925929eb1087273637cb1dad532dc00b3cb28 +SHA512 (wine-staging-4.10.tar.gz) = f65ed761d9cbfb58aef19ea8a90c049996855a49de747f1858703e765292532dc7bb487ecfe50eb2e7e87c673507a5e287f6f80aa2d50aabe9066314809c1f03 diff --git a/wine.spec b/wine.spec index 0260954..3f79f5d 100644 --- a/wine.spec +++ b/wine.spec @@ -20,7 +20,7 @@ %endif Name: wine -Version: 4.9 +Version: 4.10 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -86,6 +86,8 @@ BuildRequires: clang >= 5.0 %else BuildRequires: gcc %endif +BuildRequires: mingw32-gcc +BuildRequires: mingw64-gcc BuildRequires: autoconf BuildRequires: desktop-file-utils BuildRequires: alsa-lib-devel @@ -1029,24 +1031,24 @@ fi %{_libdir}/wine/runas.exe.so %endif %{_bindir}/winedump -%{_libdir}/wine/explorer.exe.so -%{_libdir}/wine/cabarc.exe.so -%{_libdir}/wine/control.exe.so -%{_libdir}/wine/cmd.exe.so -%{_libdir}/wine/dxdiag.exe.so -%{_libdir}/wine/notepad.exe.so -%{_libdir}/wine/plugplay.exe.so -%{_libdir}/wine/progman.exe.so -%{_libdir}/wine/taskmgr.exe.so +%{_libdir}/wine/explorer.exe +%{_libdir}/wine/cabarc.exe +%{_libdir}/wine/control.exe +%{_libdir}/wine/cmd.exe +%{_libdir}/wine/dxdiag.exe +%{_libdir}/wine/notepad.exe +%{_libdir}/wine/plugplay.exe +%{_libdir}/wine/progman.exe +%{_libdir}/wine/taskmgr.exe %{_libdir}/wine/winedbg.exe.so -%{_libdir}/wine/winefile.exe.so -%{_libdir}/wine/winemine.exe.so -%{_libdir}/wine/winemsibuilder.exe.so +%{_libdir}/wine/winefile.exe +%{_libdir}/wine/winemine.exe +%{_libdir}/wine/winemsibuilder.exe %{_libdir}/wine/winepath.exe.so -%{_libdir}/wine/winmgmt.exe.so +%{_libdir}/wine/winmgmt.exe %{_libdir}/wine/winver.exe.so -%{_libdir}/wine/wordpad.exe.so -%{_libdir}/wine/write.exe.so +%{_libdir}/wine/wordpad.exe +%{_libdir}/wine/write.exe %{_libdir}/wine/wusa.exe.so %ifarch %{ix86} %{arm} @@ -1077,519 +1079,522 @@ fi %dir %{_libdir}/wine/fakedlls %{_libdir}/wine/fakedlls/* -%{_libdir}/wine/attrib.exe.so -%{_libdir}/wine/arp.exe.so -%{_libdir}/wine/aspnet_regiis.exe.so -%{_libdir}/wine/cacls.exe.so -%{_libdir}/wine/conhost.exe.so -%{_libdir}/wine/cscript.exe.so -%{_libdir}/wine/dism.exe.so -%{_libdir}/wine/dpnsvr.exe.so -%{_libdir}/wine/eject.exe.so -%{_libdir}/wine/expand.exe.so -%{_libdir}/wine/extrac32.exe.so -%{_libdir}/wine/fc.exe.so -%{_libdir}/wine/find.exe.so -%{_libdir}/wine/findstr.exe.so +%{_libdir}/wine/attrib.exe +%{_libdir}/wine/arp.exe +%{_libdir}/wine/aspnet_regiis.exe +%{_libdir}/wine/cacls.exe +%{_libdir}/wine/conhost.exe +%{_libdir}/wine/cscript.exe +%{_libdir}/wine/dism.exe +%{_libdir}/wine/dpnsvr.exe +%{_libdir}/wine/eject.exe +%{_libdir}/wine/expand.exe +%{_libdir}/wine/extrac32.exe +%{_libdir}/wine/fc.exe +%{_libdir}/wine/find.exe +%{_libdir}/wine/findstr.exe %{_libdir}/wine/fsutil.exe.so -%{_libdir}/wine/hostname.exe.so -%{_libdir}/wine/ipconfig.exe.so -%{_libdir}/wine/winhlp32.exe.so -%{_libdir}/wine/mshta.exe.so +%{_libdir}/wine/hostname.exe +%{_libdir}/wine/ipconfig.exe +%{_libdir}/wine/winhlp32.exe +%{_libdir}/wine/mshta.exe %if 0%{?wine_staging} -%{_libdir}/wine/msidb.exe.so +%{_libdir}/wine/msidb.exe %endif -%{_libdir}/wine/msiexec.exe.so -%{_libdir}/wine/net.exe.so -%{_libdir}/wine/netstat.exe.so -%{_libdir}/wine/ngen.exe.so +%{_libdir}/wine/msiexec.exe +%{_libdir}/wine/net.exe +%{_libdir}/wine/netstat.exe +%{_libdir}/wine/ngen.exe %{_libdir}/wine/ntoskrnl.exe.so -%{_libdir}/wine/oleview.exe.so -%{_libdir}/wine/ping.exe.so -%{_libdir}/wine/powershell.exe.so -%{_libdir}/wine/reg.exe.so -%{_libdir}/wine/regasm.exe.so -%{_libdir}/wine/regedit.exe.so -%{_libdir}/wine/regsvcs.exe.so -%{_libdir}/wine/regsvr32.exe.so -%{_libdir}/wine/rpcss.exe.so -%{_libdir}/wine/rundll32.exe.so -%{_libdir}/wine/schtasks.exe.so -%{_libdir}/wine/sdbinst.exe.so -%{_libdir}/wine/secedit.exe.so -%{_libdir}/wine/servicemodelreg.exe.so -%{_libdir}/wine/services.exe.so -%{_libdir}/wine/start.exe.so -%{_libdir}/wine/tasklist.exe.so -%{_libdir}/wine/termsv.exe.so -%{_libdir}/wine/view.exe.so -%{_libdir}/wine/wevtutil.exe.so +%{_libdir}/wine/oleview.exe +%{_libdir}/wine/ping.exe +%{_libdir}/wine/powershell.exe +%{_libdir}/wine/reg.exe +%{_libdir}/wine/regasm.exe +%{_libdir}/wine/regedit.exe +%{_libdir}/wine/regsvcs.exe +%{_libdir}/wine/regsvr32.exe +%{_libdir}/wine/rpcss.exe +%{_libdir}/wine/rundll32.exe +%{_libdir}/wine/schtasks.exe +%{_libdir}/wine/sdbinst.exe +%{_libdir}/wine/secedit.exe +%{_libdir}/wine/servicemodelreg.exe +%{_libdir}/wine/services.exe +%{_libdir}/wine/start.exe +%{_libdir}/wine/tasklist.exe +%{_libdir}/wine/termsv.exe +%{_libdir}/wine/view.exe +%{_libdir}/wine/wevtutil.exe %{_libdir}/wine/wineboot.exe.so %{_libdir}/wine/winebrowser.exe.so %{_libdir}/wine/wineconsole.exe.so %{_libdir}/wine/winemenubuilder.exe.so %{_libdir}/wine/winecfg.exe.so -%{_libdir}/wine/winedevice.exe.so -%{_libdir}/wine/wmplayer.exe.so -%{_libdir}/wine/wscript.exe.so -%{_libdir}/wine/uninstaller.exe.so +%{_libdir}/wine/winedevice.exe +%{_libdir}/wine/wmplayer.exe +%{_libdir}/wine/wscript.exe +%{_libdir}/wine/uninstaller.exe %{_libdir}/libwine.so.1* -%{_libdir}/wine/acledit.dll.so -%{_libdir}/wine/aclui.dll.so -%{_libdir}/wine/activeds.dll.so -%{_libdir}/wine/actxprxy.dll.so -%{_libdir}/wine/adsldp.dll.so -%{_libdir}/wine/adsldpc.dll.so +%{_libdir}/wine/acledit.dll +%{_libdir}/wine/aclui.dll +%{_libdir}/wine/activeds.dll +%{_libdir}/wine/actxprxy.dll +%{_libdir}/wine/adsldp.dll +%{_libdir}/wine/adsldpc.dll %{_libdir}/wine/advapi32.dll.so -%{_libdir}/wine/advpack.dll.so -%{_libdir}/wine/amsi.dll.so +%{_libdir}/wine/advpack.dll +%{_libdir}/wine/amsi.dll %{_libdir}/wine/amstream.dll.so -%{_libdir}/wine/api-ms-win-appmodel-identity-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-appmodel-runtime-l1-1-1.dll.so -%{_libdir}/wine/api-ms-win-appmodel-runtime-l1-1-2.dll.so -%{_libdir}/wine/api-ms-win-core-apiquery-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-appcompat-l1-1-1.dll.so -%{_libdir}/wine/api-ms-win-core-appinit-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-atoms-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-bem-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-com-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-com-l1-1-1.dll.so -%{_libdir}/wine/api-ms-win-core-com-private-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-comm-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-console-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-console-l2-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-crt-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-crt-l2-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-datetime-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-datetime-l1-1-1.dll.so -%{_libdir}/wine/api-ms-win-core-debug-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-debug-l1-1-1.dll.so -%{_libdir}/wine/api-ms-win-core-delayload-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-delayload-l1-1-1.dll.so -%{_libdir}/wine/api-ms-win-core-errorhandling-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-errorhandling-l1-1-1.dll.so -%{_libdir}/wine/api-ms-win-core-errorhandling-l1-1-2.dll.so -%{_libdir}/wine/api-ms-win-core-errorhandling-l1-1-3.dll.so -%{_libdir}/wine/api-ms-win-core-fibers-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-fibers-l1-1-1.dll.so -%{_libdir}/wine/api-ms-win-core-file-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-file-l1-2-0.dll.so -%{_libdir}/wine/api-ms-win-core-file-l1-2-1.dll.so -%{_libdir}/wine/api-ms-win-core-file-l1-2-2.dll.so -%{_libdir}/wine/api-ms-win-core-file-l2-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-file-l2-1-1.dll.so -%{_libdir}/wine/api-ms-win-core-file-l2-1-2.dll.so -%{_libdir}/wine/api-ms-win-core-handle-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-heap-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-heap-l1-2-0.dll.so -%{_libdir}/wine/api-ms-win-core-heap-l2-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-heap-obsolete-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-interlocked-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-interlocked-l1-2-0.dll.so -%{_libdir}/wine/api-ms-win-core-io-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-io-l1-1-1.dll.so -%{_libdir}/wine/api-ms-win-core-job-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-job-l2-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-largeinteger-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-kernel32-legacy-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-kernel32-legacy-l1-1-1.dll.so -%{_libdir}/wine/api-ms-win-core-kernel32-private-l1-1-1.dll.so -%{_libdir}/wine/api-ms-win-core-libraryloader-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-libraryloader-l1-1-1.dll.so -%{_libdir}/wine/api-ms-win-core-libraryloader-l1-2-0.dll.so -%{_libdir}/wine/api-ms-win-core-libraryloader-l1-2-1.dll.so -%{_libdir}/wine/api-ms-win-core-libraryloader-l1-2-2.dll.so -%{_libdir}/wine/api-ms-win-core-localization-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-localization-l1-2-0.dll.so -%{_libdir}/wine/api-ms-win-core-localization-l1-2-1.dll.so -%{_libdir}/wine/api-ms-win-core-localization-l2-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-localization-obsolete-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-localization-obsolete-l1-2-0.dll.so -%{_libdir}/wine/api-ms-win-core-localization-obsolete-l1-3-0.dll.so -%{_libdir}/wine/api-ms-win-core-localization-private-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-localregistry-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-memory-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-memory-l1-1-1.dll.so -%{_libdir}/wine/api-ms-win-core-memory-l1-1-2.dll.so -%{_libdir}/wine/api-ms-win-core-misc-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-namedpipe-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-namedpipe-l1-2-0.dll.so -%{_libdir}/wine/api-ms-win-core-namespace-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-normalization-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-path-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-privateprofile-l1-1-1.dll.so -%{_libdir}/wine/api-ms-win-core-processenvironment-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-processenvironment-l1-2-0.dll.so -%{_libdir}/wine/api-ms-win-core-processthreads-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-processthreads-l1-1-1.dll.so -%{_libdir}/wine/api-ms-win-core-processthreads-l1-1-2.dll.so -%{_libdir}/wine/api-ms-win-core-processthreads-l1-1-3.dll.so -%{_libdir}/wine/api-ms-win-core-processtopology-obsolete-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-profile-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-psapi-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-psapi-ansi-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-psapi-obsolete-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-quirks-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-realtime-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-registry-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-registry-l2-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-registryuserspecific-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-rtlsupport-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-rtlsupport-l1-2-0.dll.so -%{_libdir}/wine/api-ms-win-core-shlwapi-legacy-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-shlwapi-obsolete-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-shlwapi-obsolete-l1-2-0.dll.so -%{_libdir}/wine/api-ms-win-core-shutdown-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-sidebyside-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-string-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-string-l2-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-string-obsolete-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-stringansi-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-stringloader-l1-1-1.dll.so -%{_libdir}/wine/api-ms-win-core-synch-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-synch-l1-2-0.dll.so -%{_libdir}/wine/api-ms-win-core-synch-l1-2-1.dll.so -%{_libdir}/wine/api-ms-win-core-synch-ansi-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-sysinfo-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-sysinfo-l1-2-0.dll.so -%{_libdir}/wine/api-ms-win-core-sysinfo-l1-2-1.dll.so -%{_libdir}/wine/api-ms-win-core-threadpool-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-threadpool-l1-2-0.dll.so -%{_libdir}/wine/api-ms-win-core-threadpool-legacy-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-threadpool-private-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-timezone-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-toolhelp-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-url-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-util-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-version-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-version-l1-1-1.dll.so -%{_libdir}/wine/api-ms-win-core-version-private-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-versionansi-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-windowserrorreporting-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-winrt-error-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-winrt-error-l1-1-1.dll.so -%{_libdir}/wine/api-ms-win-core-winrt-errorprivate-l1-1-1.dll.so -%{_libdir}/wine/api-ms-win-core-winrt-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-winrt-registration-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-winrt-string-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-winrt-string-l1-1-1.dll.so -%{_libdir}/wine/api-ms-win-core-wow64-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-wow64-l1-1-1.dll.so -%{_libdir}/wine/api-ms-win-core-xstate-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-core-xstate-l2-1-0.dll.so -%{_libdir}/wine/api-ms-win-crt-conio-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-crt-convert-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-crt-environment-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-crt-filesystem-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-crt-heap-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-crt-locale-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-crt-math-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-crt-multibyte-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-crt-private-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-crt-process-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-crt-runtime-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-crt-stdio-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-crt-string-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-crt-time-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-crt-utility-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-devices-config-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-devices-config-l1-1-1.dll.so -%{_libdir}/wine/api-ms-win-devices-query-l1-1-1.dll.so -%{_libdir}/wine/api-ms-win-downlevel-advapi32-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-downlevel-advapi32-l2-1-0.dll.so -%{_libdir}/wine/api-ms-win-downlevel-normaliz-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-downlevel-ole32-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-downlevel-shell32-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-downlevel-shlwapi-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-downlevel-shlwapi-l2-1-0.dll.so -%{_libdir}/wine/api-ms-win-downlevel-user32-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-downlevel-version-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-dx-d3dkmt-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-eventing-classicprovider-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-eventing-consumer-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-eventing-controller-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-eventing-legacy-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-eventing-provider-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-eventlog-legacy-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-gdi-dpiinfo-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-mm-joystick-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-mm-misc-l1-1-1.dll.so -%{_libdir}/wine/api-ms-win-mm-mme-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-mm-time-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-ntuser-dc-access-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-ntuser-rectangle-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-ntuser-sysparams-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-perf-legacy-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-power-base-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-power-setting-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-rtcore-ntuser-draw-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-rtcore-ntuser-private-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-rtcore-ntuser-private-l1-1-4.dll.so -%{_libdir}/wine/api-ms-win-rtcore-ntuser-window-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-rtcore-ntuser-winevent-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-rtcore-ntuser-wmpointer-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-rtcore-ntuser-wmpointer-l1-1-3.dll.so -%{_libdir}/wine/api-ms-win-security-activedirectoryclient-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-security-audit-l1-1-1.dll.so -%{_libdir}/wine/api-ms-win-security-base-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-security-base-l1-2-0.dll.so -%{_libdir}/wine/api-ms-win-security-base-private-l1-1-1.dll.so -%{_libdir}/wine/api-ms-win-security-credentials-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-security-cryptoapi-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-security-grouppolicy-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-security-lsalookup-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-security-lsalookup-l1-1-1.dll.so -%{_libdir}/wine/api-ms-win-security-lsalookup-l2-1-0.dll.so -%{_libdir}/wine/api-ms-win-security-lsalookup-l2-1-1.dll.so -%{_libdir}/wine/api-ms-win-security-lsapolicy-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-security-provider-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-security-sddl-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-security-systemfunctions-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-service-core-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-service-core-l1-1-1.dll.so -%{_libdir}/wine/api-ms-win-service-management-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-service-management-l2-1-0.dll.so -%{_libdir}/wine/api-ms-win-service-private-l1-1-1.dll.so -%{_libdir}/wine/api-ms-win-service-winsvc-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-service-winsvc-l1-2-0.dll.so -%{_libdir}/wine/api-ms-win-shcore-obsolete-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-shcore-scaling-l1-1-1.dll.so -%{_libdir}/wine/api-ms-win-shcore-stream-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-shcore-thread-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-shell-shellcom-l1-1-0.dll.so -%{_libdir}/wine/api-ms-win-shell-shellfolders-l1-1-0.dll.so -%{_libdir}/wine/apphelp.dll.so +%{_libdir}/wine/api-ms-win-appmodel-identity-l1-1-0.dll +%{_libdir}/wine/api-ms-win-appmodel-runtime-l1-1-1.dll +%{_libdir}/wine/api-ms-win-appmodel-runtime-l1-1-2.dll +%{_libdir}/wine/api-ms-win-core-apiquery-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-appcompat-l1-1-1.dll +%{_libdir}/wine/api-ms-win-core-appinit-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-atoms-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-bem-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-com-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-com-l1-1-1.dll +%{_libdir}/wine/api-ms-win-core-com-private-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-comm-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-console-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-console-l2-1-0.dll +%{_libdir}/wine/api-ms-win-core-crt-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-crt-l2-1-0.dll +%{_libdir}/wine/api-ms-win-core-datetime-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-datetime-l1-1-1.dll +%{_libdir}/wine/api-ms-win-core-debug-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-debug-l1-1-1.dll +%{_libdir}/wine/api-ms-win-core-delayload-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-delayload-l1-1-1.dll +%{_libdir}/wine/api-ms-win-core-errorhandling-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-errorhandling-l1-1-1.dll +%{_libdir}/wine/api-ms-win-core-errorhandling-l1-1-2.dll +%{_libdir}/wine/api-ms-win-core-errorhandling-l1-1-3.dll +%{_libdir}/wine/api-ms-win-core-fibers-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-fibers-l1-1-1.dll +%{_libdir}/wine/api-ms-win-core-file-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-file-l1-2-0.dll +%{_libdir}/wine/api-ms-win-core-file-l1-2-1.dll +%{_libdir}/wine/api-ms-win-core-file-l1-2-2.dll +%{_libdir}/wine/api-ms-win-core-file-l2-1-0.dll +%{_libdir}/wine/api-ms-win-core-file-l2-1-1.dll +%{_libdir}/wine/api-ms-win-core-file-l2-1-2.dll +%{_libdir}/wine/api-ms-win-core-handle-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-heap-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-heap-l1-2-0.dll +%{_libdir}/wine/api-ms-win-core-heap-l2-1-0.dll +%{_libdir}/wine/api-ms-win-core-heap-obsolete-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-interlocked-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-interlocked-l1-2-0.dll +%{_libdir}/wine/api-ms-win-core-io-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-io-l1-1-1.dll +%{_libdir}/wine/api-ms-win-core-job-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-job-l2-1-0.dll +%{_libdir}/wine/api-ms-win-core-largeinteger-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-kernel32-legacy-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-kernel32-legacy-l1-1-1.dll +%{_libdir}/wine/api-ms-win-core-kernel32-private-l1-1-1.dll +%{_libdir}/wine/api-ms-win-core-libraryloader-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-libraryloader-l1-1-1.dll +%{_libdir}/wine/api-ms-win-core-libraryloader-l1-2-0.dll +%{_libdir}/wine/api-ms-win-core-libraryloader-l1-2-1.dll +%{_libdir}/wine/api-ms-win-core-libraryloader-l1-2-2.dll +%{_libdir}/wine/api-ms-win-core-localization-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-localization-l1-2-0.dll +%{_libdir}/wine/api-ms-win-core-localization-l1-2-1.dll +%{_libdir}/wine/api-ms-win-core-localization-l2-1-0.dll +%{_libdir}/wine/api-ms-win-core-localization-obsolete-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-localization-obsolete-l1-2-0.dll +%{_libdir}/wine/api-ms-win-core-localization-obsolete-l1-3-0.dll +%{_libdir}/wine/api-ms-win-core-localization-private-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-localregistry-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-memory-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-memory-l1-1-1.dll +%{_libdir}/wine/api-ms-win-core-memory-l1-1-2.dll +%{_libdir}/wine/api-ms-win-core-misc-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-namedpipe-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-namedpipe-l1-2-0.dll +%{_libdir}/wine/api-ms-win-core-namespace-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-normalization-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-path-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-privateprofile-l1-1-1.dll +%{_libdir}/wine/api-ms-win-core-processenvironment-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-processenvironment-l1-2-0.dll +%{_libdir}/wine/api-ms-win-core-processthreads-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-processthreads-l1-1-1.dll +%{_libdir}/wine/api-ms-win-core-processthreads-l1-1-2.dll +%{_libdir}/wine/api-ms-win-core-processthreads-l1-1-3.dll +%{_libdir}/wine/api-ms-win-core-processtopology-obsolete-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-profile-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-psapi-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-psapi-ansi-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-psapi-obsolete-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-quirks-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-realtime-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-registry-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-registry-l2-1-0.dll +%{_libdir}/wine/api-ms-win-core-registryuserspecific-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-rtlsupport-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-rtlsupport-l1-2-0.dll +%{_libdir}/wine/api-ms-win-core-shlwapi-legacy-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-shlwapi-obsolete-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-shlwapi-obsolete-l1-2-0.dll +%{_libdir}/wine/api-ms-win-core-shutdown-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-sidebyside-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-string-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-string-l2-1-0.dll +%{_libdir}/wine/api-ms-win-core-string-obsolete-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-stringansi-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-stringloader-l1-1-1.dll +%{_libdir}/wine/api-ms-win-core-synch-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-synch-l1-2-0.dll +%{_libdir}/wine/api-ms-win-core-synch-l1-2-1.dll +%{_libdir}/wine/api-ms-win-core-synch-ansi-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-sysinfo-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-sysinfo-l1-2-0.dll +%{_libdir}/wine/api-ms-win-core-sysinfo-l1-2-1.dll +%{_libdir}/wine/api-ms-win-core-threadpool-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-threadpool-l1-2-0.dll +%{_libdir}/wine/api-ms-win-core-threadpool-legacy-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-threadpool-private-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-timezone-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-toolhelp-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-url-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-util-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-version-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-version-l1-1-1.dll +%{_libdir}/wine/api-ms-win-core-version-private-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-versionansi-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-windowserrorreporting-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-winrt-error-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-winrt-error-l1-1-1.dll +%{_libdir}/wine/api-ms-win-core-winrt-errorprivate-l1-1-1.dll +%{_libdir}/wine/api-ms-win-core-winrt-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-winrt-registration-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-winrt-string-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-winrt-string-l1-1-1.dll +%{_libdir}/wine/api-ms-win-core-wow64-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-wow64-l1-1-1.dll +%{_libdir}/wine/api-ms-win-core-xstate-l1-1-0.dll +%{_libdir}/wine/api-ms-win-core-xstate-l2-1-0.dll +%{_libdir}/wine/api-ms-win-crt-conio-l1-1-0.dll +%{_libdir}/wine/api-ms-win-crt-convert-l1-1-0.dll +%{_libdir}/wine/api-ms-win-crt-environment-l1-1-0.dll +%{_libdir}/wine/api-ms-win-crt-filesystem-l1-1-0.dll +%{_libdir}/wine/api-ms-win-crt-heap-l1-1-0.dll +%{_libdir}/wine/api-ms-win-crt-locale-l1-1-0.dll +%{_libdir}/wine/api-ms-win-crt-math-l1-1-0.dll +%{_libdir}/wine/api-ms-win-crt-multibyte-l1-1-0.dll +%{_libdir}/wine/api-ms-win-crt-private-l1-1-0.dll +%{_libdir}/wine/api-ms-win-crt-process-l1-1-0.dll +%{_libdir}/wine/api-ms-win-crt-runtime-l1-1-0.dll +%{_libdir}/wine/api-ms-win-crt-stdio-l1-1-0.dll +%{_libdir}/wine/api-ms-win-crt-string-l1-1-0.dll +%{_libdir}/wine/api-ms-win-crt-time-l1-1-0.dll +%{_libdir}/wine/api-ms-win-crt-utility-l1-1-0.dll +%{_libdir}/wine/api-ms-win-devices-config-l1-1-0.dll +%{_libdir}/wine/api-ms-win-devices-config-l1-1-1.dll +%{_libdir}/wine/api-ms-win-devices-query-l1-1-1.dll +%{_libdir}/wine/api-ms-win-downlevel-advapi32-l1-1-0.dll +%{_libdir}/wine/api-ms-win-downlevel-advapi32-l2-1-0.dll +%{_libdir}/wine/api-ms-win-downlevel-normaliz-l1-1-0.dll +%{_libdir}/wine/api-ms-win-downlevel-ole32-l1-1-0.dll +%{_libdir}/wine/api-ms-win-downlevel-shell32-l1-1-0.dll +%{_libdir}/wine/api-ms-win-downlevel-shlwapi-l1-1-0.dll +%{_libdir}/wine/api-ms-win-downlevel-shlwapi-l2-1-0.dll +%{_libdir}/wine/api-ms-win-downlevel-user32-l1-1-0.dll +%{_libdir}/wine/api-ms-win-downlevel-version-l1-1-0.dll +%{_libdir}/wine/api-ms-win-dx-d3dkmt-l1-1-0.dll +%{_libdir}/wine/api-ms-win-eventing-classicprovider-l1-1-0.dll +%{_libdir}/wine/api-ms-win-eventing-consumer-l1-1-0.dll +%{_libdir}/wine/api-ms-win-eventing-controller-l1-1-0.dll +%{_libdir}/wine/api-ms-win-eventing-legacy-l1-1-0.dll +%{_libdir}/wine/api-ms-win-eventing-provider-l1-1-0.dll +%{_libdir}/wine/api-ms-win-eventlog-legacy-l1-1-0.dll +%{_libdir}/wine/api-ms-win-gdi-dpiinfo-l1-1-0.dll +%{_libdir}/wine/api-ms-win-mm-joystick-l1-1-0.dll +%{_libdir}/wine/api-ms-win-mm-misc-l1-1-1.dll +%{_libdir}/wine/api-ms-win-mm-mme-l1-1-0.dll +%{_libdir}/wine/api-ms-win-mm-time-l1-1-0.dll +%{_libdir}/wine/api-ms-win-ntuser-dc-access-l1-1-0.dll +%{_libdir}/wine/api-ms-win-ntuser-rectangle-l1-1-0.dll +%{_libdir}/wine/api-ms-win-ntuser-sysparams-l1-1-0.dll +%{_libdir}/wine/api-ms-win-perf-legacy-l1-1-0.dll +%{_libdir}/wine/api-ms-win-power-base-l1-1-0.dll +%{_libdir}/wine/api-ms-win-power-setting-l1-1-0.dll +%{_libdir}/wine/api-ms-win-rtcore-ntuser-draw-l1-1-0.dll +%{_libdir}/wine/api-ms-win-rtcore-ntuser-private-l1-1-0.dll +%{_libdir}/wine/api-ms-win-rtcore-ntuser-private-l1-1-4.dll +%{_libdir}/wine/api-ms-win-rtcore-ntuser-window-l1-1-0.dll +%{_libdir}/wine/api-ms-win-rtcore-ntuser-winevent-l1-1-0.dll +%{_libdir}/wine/api-ms-win-rtcore-ntuser-wmpointer-l1-1-0.dll +%{_libdir}/wine/api-ms-win-rtcore-ntuser-wmpointer-l1-1-3.dll +%{_libdir}/wine/api-ms-win-security-activedirectoryclient-l1-1-0.dll +%{_libdir}/wine/api-ms-win-security-audit-l1-1-1.dll +%{_libdir}/wine/api-ms-win-security-base-l1-1-0.dll +%{_libdir}/wine/api-ms-win-security-base-l1-2-0.dll +%{_libdir}/wine/api-ms-win-security-base-private-l1-1-1.dll +%{_libdir}/wine/api-ms-win-security-credentials-l1-1-0.dll +%{_libdir}/wine/api-ms-win-security-cryptoapi-l1-1-0.dll +%{_libdir}/wine/api-ms-win-security-grouppolicy-l1-1-0.dll +%{_libdir}/wine/api-ms-win-security-lsalookup-l1-1-0.dll +%{_libdir}/wine/api-ms-win-security-lsalookup-l1-1-1.dll +%{_libdir}/wine/api-ms-win-security-lsalookup-l2-1-0.dll +%{_libdir}/wine/api-ms-win-security-lsalookup-l2-1-1.dll +%{_libdir}/wine/api-ms-win-security-lsapolicy-l1-1-0.dll +%{_libdir}/wine/api-ms-win-security-provider-l1-1-0.dll +%{_libdir}/wine/api-ms-win-security-sddl-l1-1-0.dll +%{_libdir}/wine/api-ms-win-security-systemfunctions-l1-1-0.dll +%{_libdir}/wine/api-ms-win-service-core-l1-1-0.dll +%{_libdir}/wine/api-ms-win-service-core-l1-1-1.dll +%{_libdir}/wine/api-ms-win-service-management-l1-1-0.dll +%{_libdir}/wine/api-ms-win-service-management-l2-1-0.dll +%{_libdir}/wine/api-ms-win-service-private-l1-1-1.dll +%{_libdir}/wine/api-ms-win-service-winsvc-l1-1-0.dll +%{_libdir}/wine/api-ms-win-service-winsvc-l1-2-0.dll +%{_libdir}/wine/api-ms-win-shcore-obsolete-l1-1-0.dll +%{_libdir}/wine/api-ms-win-shcore-scaling-l1-1-1.dll +%{_libdir}/wine/api-ms-win-shcore-stream-l1-1-0.dll +%{_libdir}/wine/api-ms-win-shcore-thread-l1-1-0.dll +%{_libdir}/wine/api-ms-win-shell-shellcom-l1-1-0.dll +%{_libdir}/wine/api-ms-win-shell-shellfolders-l1-1-0.dll +%{_libdir}/wine/apphelp.dll %{_libdir}/wine/appwiz.cpl.so -%{_libdir}/wine/atl.dll.so -%{_libdir}/wine/atl80.dll.so -%{_libdir}/wine/atl90.dll.so -%{_libdir}/wine/atl100.dll.so -%{_libdir}/wine/atl110.dll.so -%{_libdir}/wine/atlthunk.dll.so -%{_libdir}/wine/atmlib.dll.so -%{_libdir}/wine/authz.dll.so +%{_libdir}/wine/atl.dll +%{_libdir}/wine/atl80.dll +%{_libdir}/wine/atl90.dll +%{_libdir}/wine/atl100.dll +%{_libdir}/wine/atl110.dll +%{_libdir}/wine/atlthunk.dll +%{_libdir}/wine/atmlib.dll +%{_libdir}/wine/authz.dll %{_libdir}/wine/avicap32.dll.so -%{_libdir}/wine/avifil32.dll.so -%{_libdir}/wine/avrt.dll.so +%{_libdir}/wine/avifil32.dll +%{_libdir}/wine/avrt.dll %{_libdir}/wine/bcrypt.dll.so -%{_libdir}/wine/bluetoothapis.dll.so -%{_libdir}/wine/browseui.dll.so -%{_libdir}/wine/bthprops.cpl.so +%{_libdir}/wine/bluetoothapis.dll +%{_libdir}/wine/browseui.dll +%{_libdir}/wine/bthprops.cpl %{_libdir}/wine/cabinet.dll.so -%{_libdir}/wine/cards.dll.so -%{_libdir}/wine/cdosys.dll.so -%{_libdir}/wine/cfgmgr32.dll.so -%{_libdir}/wine/clock.exe.so -%{_libdir}/wine/clusapi.dll.so -%{_libdir}/wine/combase.dll.so -%{_libdir}/wine/comcat.dll.so -%{_libdir}/wine/comctl32.dll.so -%{_libdir}/wine/comdlg32.dll.so -%{_libdir}/wine/compstui.dll.so -%{_libdir}/wine/comsvcs.dll.so -%{_libdir}/wine/concrt140.dll.so -%{_libdir}/wine/connect.dll.so -%{_libdir}/wine/credui.dll.so +%{_libdir}/wine/cards.dll +%{_libdir}/wine/cdosys.dll +%{_libdir}/wine/cfgmgr32.dll +%{_libdir}/wine/clock.exe +%{_libdir}/wine/clusapi.dll +%{_libdir}/wine/combase.dll +%{_libdir}/wine/comcat.dll +%{_libdir}/wine/comctl32.dll +%{_libdir}/wine/comdlg32.dll +%{_libdir}/wine/compstui.dll +%{_libdir}/wine/comsvcs.dll +%{_libdir}/wine/concrt140.dll +%{_libdir}/wine/connect.dll +%{_libdir}/wine/credui.dll %{_libdir}/wine/crtdll.dll.so %{_libdir}/wine/crypt32.dll.so -%{_libdir}/wine/cryptdlg.dll.so -%{_libdir}/wine/cryptdll.dll.so -%{_libdir}/wine/cryptext.dll.so -%{_libdir}/wine/cryptnet.dll.so -%{_libdir}/wine/cryptui.dll.so +%{_libdir}/wine/cryptdlg.dll +%{_libdir}/wine/cryptdll.dll +%{_libdir}/wine/cryptext.dll +%{_libdir}/wine/cryptnet.dll +%{_libdir}/wine/cryptui.dll %{_libdir}/wine/ctapi32.dll.so -%{_libdir}/wine/ctl3d32.dll.so -%{_libdir}/wine/d2d1.dll.so -%{_libdir}/wine/d3d10.dll.so -%{_libdir}/wine/d3d10_1.dll.so -%{_libdir}/wine/d3d10core.dll.so +%{_libdir}/wine/ctl3d32.dll +%{_libdir}/wine/d2d1.dll +%{_libdir}/wine/d3d10.dll +%{_libdir}/wine/d3d10_1.dll +%{_libdir}/wine/d3d10core.dll %{_libdir}/wine/d3d11.dll.so %{_libdir}/wine/d3d12.dll.so %{_libdir}/wine/d3dcompiler_*.dll.so -%{_libdir}/wine/d3dim.dll.so -%{_libdir}/wine/d3drm.dll.so -%{_libdir}/wine/d3dx9_*.dll.so -%{_libdir}/wine/d3dx10_*.dll.so -%{_libdir}/wine/d3dx11_42.dll.so -%{_libdir}/wine/d3dx11_43.dll.so -%{_libdir}/wine/d3dxof.dll.so -%{_libdir}/wine/davclnt.dll.so -%{_libdir}/wine/dbgeng.dll.so +%{_libdir}/wine/d3dim.dll +%{_libdir}/wine/d3drm.dll +%{_libdir}/wine/d3dx9_*.dll +%{_libdir}/wine/d3dx10_*.dll +%{_libdir}/wine/d3dx11_42.dll +%{_libdir}/wine/d3dx11_43.dll +%{_libdir}/wine/d3dxof.dll +%{_libdir}/wine/davclnt.dll +%{_libdir}/wine/dbgeng.dll %{_libdir}/wine/dbghelp.dll.so -%{_libdir}/wine/dciman32.dll.so +%{_libdir}/wine/dciman32.dll %{_libdir}/wine/ddraw.dll.so -%{_libdir}/wine/ddrawex.dll.so -%{_libdir}/wine/devenum.dll.so -%{_libdir}/wine/dhcpcsvc.dll.so -%{_libdir}/wine/dhtmled.ocx.so -%{_libdir}/wine/difxapi.dll.so +%{_libdir}/wine/ddrawex.dll +%{_libdir}/wine/devenum.dll +%{_libdir}/wine/dhcpcsvc.dll +%{_libdir}/wine/dhtmled.ocx +%{_libdir}/wine/difxapi.dll %{_libdir}/wine/dinput.dll.so %{_libdir}/wine/dinput8.dll.so -%{_libdir}/wine/dispex.dll.so -%{_libdir}/wine/dmband.dll.so -%{_libdir}/wine/dmcompos.dll.so -%{_libdir}/wine/dmime.dll.so -%{_libdir}/wine/dmloader.dll.so -%{_libdir}/wine/dmscript.dll.so -%{_libdir}/wine/dmstyle.dll.so -%{_libdir}/wine/dmsynth.dll.so -%{_libdir}/wine/dmusic.dll.so -%{_libdir}/wine/dmusic32.dll.so -%{_libdir}/wine/dplay.dll.so -%{_libdir}/wine/dplayx.dll.so -%{_libdir}/wine/dpnaddr.dll.so -%{_libdir}/wine/dpnet.dll.so -%{_libdir}/wine/dpnhpast.dll.so -%{_libdir}/wine/dpnlobby.dll.so -%{_libdir}/wine/dpvoice.dll.so -%{_libdir}/wine/dpwsockx.dll.so -%{_libdir}/wine/drmclien.dll.so -%{_libdir}/wine/dsound.dll.so -%{_libdir}/wine/dsquery.dll.so -%{_libdir}/wine/dssenh.dll.so -%{_libdir}/wine/dswave.dll.so -%{_libdir}/wine/dwmapi.dll.so +%{_libdir}/wine/dispex.dll +%{_libdir}/wine/dmband.dll +%{_libdir}/wine/dmcompos.dll +%{_libdir}/wine/dmime.dll +%{_libdir}/wine/dmloader.dll +%{_libdir}/wine/dmscript.dll +%{_libdir}/wine/dmstyle.dll +%{_libdir}/wine/dmsynth.dll +%{_libdir}/wine/dmusic.dll +%{_libdir}/wine/dmusic32.dll +%{_libdir}/wine/dplay.dll +%{_libdir}/wine/dplayx.dll +%{_libdir}/wine/dpnaddr.dll +%{_libdir}/wine/dpnet.dll +%{_libdir}/wine/dpnhpast.dll +%{_libdir}/wine/dpnlobby.dll +%{_libdir}/wine/dpvoice.dll +%{_libdir}/wine/dpwsockx.dll +%{_libdir}/wine/drmclien.dll +%{_libdir}/wine/dsound.dll +%{_libdir}/wine/dsquery.dll +%{_libdir}/wine/dssenh.dll +%{_libdir}/wine/dswave.dll +%{_libdir}/wine/dwmapi.dll %{_libdir}/wine/dwrite.dll.so -%{_libdir}/wine/dx8vb.dll.so -%{_libdir}/wine/dxdiagn.dll.so +%{_libdir}/wine/dx8vb.dll +%{_libdir}/wine/dxdiagn.dll %{_libdir}/wine/dxgi.dll.so %if 0%{?wine_staging} %{_libdir}/wine/dxgkrnl.sys.so %{_libdir}/wine/dxgmms1.sys.so %endif %{_libdir}/wine/dxva2.dll.so -%{_libdir}/wine/esent.dll.so +%{_libdir}/wine/esent.dll %{_libdir}/wine/evr.dll.so -%{_libdir}/wine/explorerframe.dll.so -%{_libdir}/wine/ext-ms-win-authz-context-l1-1-0.dll.so -%{_libdir}/wine/ext-ms-win-domainjoin-netjoin-l1-1-0.dll.so -%{_libdir}/wine/ext-ms-win-dwmapi-ext-l1-1-0.dll.so -%{_libdir}/wine/ext-ms-win-gdi-dc-l1-2-0.dll.so -%{_libdir}/wine/ext-ms-win-gdi-dc-create-l1-1-0.dll.so -%{_libdir}/wine/ext-ms-win-gdi-dc-create-l1-1-1.dll.so -%{_libdir}/wine/ext-ms-win-gdi-devcaps-l1-1-0.dll.so -%{_libdir}/wine/ext-ms-win-gdi-draw-l1-1-0.dll.so -%{_libdir}/wine/ext-ms-win-gdi-draw-l1-1-1.dll.so -%{_libdir}/wine/ext-ms-win-gdi-font-l1-1-0.dll.so -%{_libdir}/wine/ext-ms-win-gdi-font-l1-1-1.dll.so -%{_libdir}/wine/ext-ms-win-gdi-render-l1-1-0.dll.so -%{_libdir}/wine/ext-ms-win-kernel32-package-l1-1-1.dll.so -%{_libdir}/wine/ext-ms-win-kernel32-package-current-l1-1-0.dll.so -%{_libdir}/wine/ext-ms-win-ntuser-dialogbox-l1-1-0.dll.so -%{_libdir}/wine/ext-ms-win-ntuser-draw-l1-1-0.dll.so -%{_libdir}/wine/ext-ms-win-ntuser-gui-l1-1-0.dll.so -%{_libdir}/wine/ext-ms-win-ntuser-gui-l1-3-0.dll.so -%{_libdir}/wine/ext-ms-win-ntuser-keyboard-l1-3-0.dll.so -%{_libdir}/wine/ext-ms-win-ntuser-misc-l1-2-0.dll.so -%{_libdir}/wine/ext-ms-win-ntuser-misc-l1-5-1.dll.so -%{_libdir}/wine/ext-ms-win-ntuser-message-l1-1-0.dll.so -%{_libdir}/wine/ext-ms-win-ntuser-message-l1-1-1.dll.so -%{_libdir}/wine/ext-ms-win-ntuser-misc-l1-1-0.dll.so -%{_libdir}/wine/ext-ms-win-ntuser-mouse-l1-1-0.dll.so -%{_libdir}/wine/ext-ms-win-ntuser-private-l1-1-1.dll.so -%{_libdir}/wine/ext-ms-win-ntuser-private-l1-3-1.dll.so -%{_libdir}/wine/ext-ms-win-ntuser-rectangle-ext-l1-1-0.dll.so -%{_libdir}/wine/ext-ms-win-ntuser-uicontext-ext-l1-1-0.dll.so -%{_libdir}/wine/ext-ms-win-ntuser-window-l1-1-0.dll.so -%{_libdir}/wine/ext-ms-win-ntuser-window-l1-1-1.dll.so -%{_libdir}/wine/ext-ms-win-ntuser-window-l1-1-4.dll.so -%{_libdir}/wine/ext-ms-win-ntuser-windowclass-l1-1-0.dll.so -%{_libdir}/wine/ext-ms-win-ntuser-windowclass-l1-1-1.dll.so -%{_libdir}/wine/ext-ms-win-oleacc-l1-1-0.dll.so -%{_libdir}/wine/ext-ms-win-ras-rasapi32-l1-1-0.dll.so -%{_libdir}/wine/ext-ms-win-rtcore-gdi-devcaps-l1-1-0.dll.so -%{_libdir}/wine/ext-ms-win-rtcore-gdi-object-l1-1-0.dll.so -%{_libdir}/wine/ext-ms-win-rtcore-gdi-rgn-l1-1-0.dll.so -%{_libdir}/wine/ext-ms-win-rtcore-ntuser-cursor-l1-1-0.dll.so -%{_libdir}/wine/ext-ms-win-rtcore-ntuser-dc-access-l1-1-0.dll.so -%{_libdir}/wine/ext-ms-win-rtcore-ntuser-dpi-l1-1-0.dll.so -%{_libdir}/wine/ext-ms-win-rtcore-ntuser-dpi-l1-2-0.dll.so -%{_libdir}/wine/ext-ms-win-rtcore-ntuser-rawinput-l1-1-0.dll.so -%{_libdir}/wine/ext-ms-win-rtcore-ntuser-syscolors-l1-1-0.dll.so -%{_libdir}/wine/ext-ms-win-rtcore-ntuser-sysparams-l1-1-0.dll.so -%{_libdir}/wine/ext-ms-win-security-credui-l1-1-0.dll.so -%{_libdir}/wine/ext-ms-win-security-cryptui-l1-1-0.dll.so -%{_libdir}/wine/ext-ms-win-uxtheme-themes-l1-1-0.dll.so +%{_libdir}/wine/explorerframe.dll +%{_libdir}/wine/ext-ms-win-authz-context-l1-1-0.dll +%{_libdir}/wine/ext-ms-win-domainjoin-netjoin-l1-1-0.dll +%{_libdir}/wine/ext-ms-win-dwmapi-ext-l1-1-0.dll +%{_libdir}/wine/ext-ms-win-gdi-dc-l1-2-0.dll +%{_libdir}/wine/ext-ms-win-gdi-dc-create-l1-1-0.dll +%{_libdir}/wine/ext-ms-win-gdi-dc-create-l1-1-1.dll +%{_libdir}/wine/ext-ms-win-gdi-devcaps-l1-1-0.dll +%{_libdir}/wine/ext-ms-win-gdi-draw-l1-1-0.dll +%{_libdir}/wine/ext-ms-win-gdi-draw-l1-1-1.dll +%{_libdir}/wine/ext-ms-win-gdi-font-l1-1-0.dll +%{_libdir}/wine/ext-ms-win-gdi-font-l1-1-1.dll +%{_libdir}/wine/ext-ms-win-gdi-render-l1-1-0.dll +%{_libdir}/wine/ext-ms-win-kernel32-package-l1-1-1.dll +%{_libdir}/wine/ext-ms-win-kernel32-package-current-l1-1-0.dll +%{_libdir}/wine/ext-ms-win-ntuser-dialogbox-l1-1-0.dll +%{_libdir}/wine/ext-ms-win-ntuser-draw-l1-1-0.dll +%{_libdir}/wine/ext-ms-win-ntuser-gui-l1-1-0.dll +%{_libdir}/wine/ext-ms-win-ntuser-gui-l1-3-0.dll +%{_libdir}/wine/ext-ms-win-ntuser-keyboard-l1-3-0.dll +%{_libdir}/wine/ext-ms-win-ntuser-misc-l1-2-0.dll +%{_libdir}/wine/ext-ms-win-ntuser-misc-l1-5-1.dll +%{_libdir}/wine/ext-ms-win-ntuser-message-l1-1-0.dll +%{_libdir}/wine/ext-ms-win-ntuser-message-l1-1-1.dll +%{_libdir}/wine/ext-ms-win-ntuser-misc-l1-1-0.dll +%{_libdir}/wine/ext-ms-win-ntuser-mouse-l1-1-0.dll +%{_libdir}/wine/ext-ms-win-ntuser-private-l1-1-1.dll +%{_libdir}/wine/ext-ms-win-ntuser-private-l1-3-1.dll +%{_libdir}/wine/ext-ms-win-ntuser-rectangle-ext-l1-1-0.dll +%{_libdir}/wine/ext-ms-win-ntuser-uicontext-ext-l1-1-0.dll +%{_libdir}/wine/ext-ms-win-ntuser-window-l1-1-0.dll +%{_libdir}/wine/ext-ms-win-ntuser-window-l1-1-1.dll +%{_libdir}/wine/ext-ms-win-ntuser-window-l1-1-4.dll +%{_libdir}/wine/ext-ms-win-ntuser-windowclass-l1-1-0.dll +%{_libdir}/wine/ext-ms-win-ntuser-windowclass-l1-1-1.dll +%{_libdir}/wine/ext-ms-win-oleacc-l1-1-0.dll +%{_libdir}/wine/ext-ms-win-ras-rasapi32-l1-1-0.dll +%{_libdir}/wine/ext-ms-win-rtcore-gdi-devcaps-l1-1-0.dll +%{_libdir}/wine/ext-ms-win-rtcore-gdi-object-l1-1-0.dll +%{_libdir}/wine/ext-ms-win-rtcore-gdi-rgn-l1-1-0.dll +%{_libdir}/wine/ext-ms-win-rtcore-ntuser-cursor-l1-1-0.dll +%{_libdir}/wine/ext-ms-win-rtcore-ntuser-dc-access-l1-1-0.dll +%{_libdir}/wine/ext-ms-win-rtcore-ntuser-dpi-l1-1-0.dll +%{_libdir}/wine/ext-ms-win-rtcore-ntuser-dpi-l1-2-0.dll +%{_libdir}/wine/ext-ms-win-rtcore-ntuser-rawinput-l1-1-0.dll +%{_libdir}/wine/ext-ms-win-rtcore-ntuser-syscolors-l1-1-0.dll +%{_libdir}/wine/ext-ms-win-rtcore-ntuser-sysparams-l1-1-0.dll +%{_libdir}/wine/ext-ms-win-security-credui-l1-1-0.dll +%{_libdir}/wine/ext-ms-win-security-cryptui-l1-1-0.dll +%{_libdir}/wine/ext-ms-win-shell-comctl32-init-l1-1-0.dll +%{_libdir}/wine/ext-ms-win-shell-comdlg32-l1-1-0.dll +%{_libdir}/wine/ext-ms-win-shell-shell32-l1-2-0.dll +%{_libdir}/wine/ext-ms-win-uxtheme-themes-l1-1-0.dll %if 0%{?wine_staging} %{_libdir}/wine/ext-ms-win-appmodel-usercontext-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-xaml-pal-l1-1-0.dll.so %endif -%{_libdir}/wine/faultrep.dll.so -%{_libdir}/wine/feclient.dll.so -%{_libdir}/wine/fltlib.dll.so -%{_libdir}/wine/fltmgr.sys.so -%{_libdir}/wine/fntcache.dll.so -%{_libdir}/wine/fontsub.dll.so -%{_libdir}/wine/fusion.dll.so -%{_libdir}/wine/fwpuclnt.dll.so -%{_libdir}/wine/gameux.dll.so +%{_libdir}/wine/faultrep.dll +%{_libdir}/wine/feclient.dll +%{_libdir}/wine/fltlib.dll +%{_libdir}/wine/fltmgr.sys +%{_libdir}/wine/fntcache.dll +%{_libdir}/wine/fontsub.dll +%{_libdir}/wine/fusion.dll +%{_libdir}/wine/fwpuclnt.dll +%{_libdir}/wine/gameux.dll %{_libdir}/wine/gdi32.dll.so -%{_libdir}/wine/gdiplus.dll.so +%{_libdir}/wine/gdiplus.dll %{_libdir}/wine/glu32.dll.so %{_libdir}/wine/gphoto2.ds.so -%{_libdir}/wine/gpkcsp.dll.so -%{_libdir}/wine/hal.dll.so -%{_libdir}/wine/hh.exe.so -%{_libdir}/wine/hhctrl.ocx.so -%{_libdir}/wine/hid.dll.so -%{_libdir}/wine/hidclass.sys.so -%{_libdir}/wine/hlink.dll.so -%{_libdir}/wine/hnetcfg.dll.so -%{_libdir}/wine/httpapi.dll.so -%{_libdir}/wine/icacls.exe.so -%{_libdir}/wine/iccvid.dll.so -%{_libdir}/wine/icinfo.exe.so -%{_libdir}/wine/icmp.dll.so -%{_libdir}/wine/ieframe.dll.so +%{_libdir}/wine/gpkcsp.dll +%{_libdir}/wine/hal.dll +%{_libdir}/wine/hh.exe +%{_libdir}/wine/hhctrl.ocx +%{_libdir}/wine/hid.dll +%{_libdir}/wine/hidclass.sys +%{_libdir}/wine/hlink.dll +%{_libdir}/wine/hnetcfg.dll +%{_libdir}/wine/httpapi.dll +%{_libdir}/wine/icacls.exe +%{_libdir}/wine/iccvid.dll +%{_libdir}/wine/icinfo.exe +%{_libdir}/wine/icmp.dll +%{_libdir}/wine/ieframe.dll %if 0%{?wine_staging} %{_libdir}/wine/iertutil.dll.so %endif -%{_libdir}/wine/ieproxy.dll.so -%{_libdir}/wine/imaadp32.acm.so -%{_libdir}/wine/imagehlp.dll.so -%{_libdir}/wine/imm32.dll.so -%{_libdir}/wine/inetcomm.dll.so -%{_libdir}/wine/inetcpl.cpl.so -%{_libdir}/wine/inetmib1.dll.so -%{_libdir}/wine/infosoft.dll.so -%{_libdir}/wine/initpki.dll.so -%{_libdir}/wine/inkobj.dll.so -%{_libdir}/wine/inseng.dll.so +%{_libdir}/wine/ieproxy.dll +%{_libdir}/wine/imaadp32.acm +%{_libdir}/wine/imagehlp.dll +%{_libdir}/wine/imm32.dll +%{_libdir}/wine/inetcomm.dll +%{_libdir}/wine/inetcpl.cpl +%{_libdir}/wine/inetmib1.dll +%{_libdir}/wine/infosoft.dll +%{_libdir}/wine/initpki.dll +%{_libdir}/wine/inkobj.dll +%{_libdir}/wine/inseng.dll %{_libdir}/wine/iphlpapi.dll.so -%{_libdir}/wine/iprop.dll.so -%{_libdir}/wine/irprops.cpl.so -%{_libdir}/wine/itircl.dll.so -%{_libdir}/wine/itss.dll.so -%{_libdir}/wine/joy.cpl.so -%{_libdir}/wine/jscript.dll.so -%{_libdir}/wine/jsproxy.dll.so +%{_libdir}/wine/iprop.dll +%{_libdir}/wine/irprops.cpl +%{_libdir}/wine/itircl.dll +%{_libdir}/wine/itss.dll +%{_libdir}/wine/joy.cpl +%{_libdir}/wine/jscript.dll +%{_libdir}/wine/jsproxy.dll %{_libdir}/wine/kerberos.dll.so %{_libdir}/wine/kernel32.dll.so %{_libdir}/wine/kernelbase.dll.so -%{_libdir}/wine/ksecdd.sys.so -%{_libdir}/wine/ksuser.dll.so -%{_libdir}/wine/ktmw32.dll.so +%{_libdir}/wine/ksecdd.sys +%{_libdir}/wine/ksuser.dll +%{_libdir}/wine/ktmw32.dll %if 0%{?fedora} > 24 %{_libdir}/wine/l3codeca.acm.so %endif -%{_libdir}/wine/loadperf.dll.so -%{_libdir}/wine/localspl.dll.so -%{_libdir}/wine/localui.dll.so -%{_libdir}/wine/lodctr.exe.so -%{_libdir}/wine/lz32.dll.so -%{_libdir}/wine/mapi32.dll.so -%{_libdir}/wine/mapistub.dll.so -%{_libdir}/wine/mciavi32.dll.so -%{_libdir}/wine/mcicda.dll.so -%{_libdir}/wine/mciqtz32.dll.so -%{_libdir}/wine/mciseq.dll.so -%{_libdir}/wine/mciwave.dll.so +%{_libdir}/wine/loadperf.dll +%{_libdir}/wine/localspl.dll +%{_libdir}/wine/localui.dll +%{_libdir}/wine/lodctr.exe +%{_libdir}/wine/lz32.dll +%{_libdir}/wine/mapi32.dll +%{_libdir}/wine/mapistub.dll +%{_libdir}/wine/mciavi32.dll +%{_libdir}/wine/mcicda.dll +%{_libdir}/wine/mciqtz32.dll +%{_libdir}/wine/mciseq.dll +%{_libdir}/wine/mciwave.dll %{_libdir}/wine/mf.dll.so -%{_libdir}/wine/mf3216.dll.so -%{_libdir}/wine/mferror.dll.so +%{_libdir}/wine/mf3216.dll +%{_libdir}/wine/mferror.dll %{_libdir}/wine/mfplat.dll.so %{_libdir}/wine/mfplay.dll.so %{_libdir}/wine/mfreadwrite.dll.so @@ -1598,7 +1603,7 @@ fi %{_libdir}/wine/mlang.dll.so %{_libdir}/wine/mmcndmgr.dll.so %{_libdir}/wine/mmdevapi.dll.so -%{_libdir}/wine/mofcomp.exe.so +%{_libdir}/wine/mofcomp.exe %{_libdir}/wine/mountmgr.sys.so %{_libdir}/wine/mp3dmod.dll.so %{_libdir}/wine/mpr.dll.so @@ -1619,13 +1624,13 @@ fi %{_libdir}/wine/msg711.acm.so %{_libdir}/wine/msgsm32.acm.so %{_libdir}/wine/mshtml.dll.so -%{_libdir}/wine/mshtml.tlb.so +%{_libdir}/wine/mshtml.tlb %{_libdir}/wine/msi.dll.so %{_libdir}/wine/msident.dll.so %{_libdir}/wine/msimtf.dll.so %{_libdir}/wine/msimg32.dll.so -%{_libdir}/wine/msimsg.dll.so -%{_libdir}/wine/msinfo32.exe.so +%{_libdir}/wine/msimsg.dll +%{_libdir}/wine/msinfo32.exe %{_libdir}/wine/msisip.dll.so %{_libdir}/wine/msisys.ocx.so %{_libdir}/wine/msls31.dll.so @@ -1637,19 +1642,19 @@ fi %{_libdir}/wine/mssip32.dll.so %{_libdir}/wine/msrle32.dll.so %{_libdir}/wine/mstask.dll.so -%{_libdir}/wine/msvcirt.dll.so +%{_libdir}/wine/msvcirt.dll %{_libdir}/wine/msvcm80.dll.so %{_libdir}/wine/msvcm90.dll.so -%{_libdir}/wine/msvcp60.dll.so -%{_libdir}/wine/msvcp70.dll.so -%{_libdir}/wine/msvcp71.dll.so -%{_libdir}/wine/msvcp80.dll.so -%{_libdir}/wine/msvcp90.dll.so -%{_libdir}/wine/msvcp100.dll.so -%{_libdir}/wine/msvcp110.dll.so -%{_libdir}/wine/msvcp120.dll.so -%{_libdir}/wine/msvcp120_app.dll.so -%{_libdir}/wine/msvcp140.dll.so +%{_libdir}/wine/msvcp60.dll +%{_libdir}/wine/msvcp70.dll +%{_libdir}/wine/msvcp71.dll +%{_libdir}/wine/msvcp80.dll +%{_libdir}/wine/msvcp90.dll +%{_libdir}/wine/msvcp100.dll +%{_libdir}/wine/msvcp110.dll +%{_libdir}/wine/msvcp120.dll +%{_libdir}/wine/msvcp120_app.dll +%{_libdir}/wine/msvcp140.dll %{_libdir}/wine/msvcr70.dll.so %{_libdir}/wine/msvcr71.dll.so %{_libdir}/wine/msvcr80.dll.so @@ -1657,10 +1662,10 @@ fi %{_libdir}/wine/msvcr100.dll.so %{_libdir}/wine/msvcr110.dll.so %{_libdir}/wine/msvcr120.dll.so -%{_libdir}/wine/msvcr120_app.dll.so +%{_libdir}/wine/msvcr120_app.dll %{_libdir}/wine/msvcrt.dll.so -%{_libdir}/wine/msvcrt20.dll.so -%{_libdir}/wine/msvcrt40.dll.so +%{_libdir}/wine/msvcrt20.dll +%{_libdir}/wine/msvcrt40.dll %{_libdir}/wine/msvcrtd.dll.so %{_libdir}/wine/msvfw32.dll.so %{_libdir}/wine/msvidc32.dll.so @@ -1677,7 +1682,7 @@ fi %{_libdir}/wine/netapi32.dll.so %{_libdir}/wine/netcfgx.dll.so %{_libdir}/wine/netprofm.dll.so -%{_libdir}/wine/netsh.exe.so +%{_libdir}/wine/netsh.exe %{_libdir}/wine/newdev.dll.so %{_libdir}/wine/ninput.dll.so %{_libdir}/wine/normaliz.dll.so @@ -1693,7 +1698,7 @@ fi %{_libdir}/wine/objsel.dll.so %{_libdir}/wine/odbc32.dll.so %{_libdir}/wine/odbccp32.dll.so -%{_libdir}/wine/odbccu32.dll.so +%{_libdir}/wine/odbccu32.dll %{_libdir}/wine/ole32.dll.so %{_libdir}/wine/oleacc.dll.so %{_libdir}/wine/oleaut32.dll.so @@ -1709,11 +1714,11 @@ fi %{_libdir}/wine/photometadatahandler.dll.so %{_libdir}/wine/pidgen.dll.so %{_libdir}/wine/powrprof.dll.so -%{_libdir}/wine/presentationfontcache.exe.so +%{_libdir}/wine/presentationfontcache.exe %{_libdir}/wine/printui.dll.so %{_libdir}/wine/prntvpt.dll.so %{_libdir}/wine/propsys.dll.so -%{_libdir}/wine/psapi.dll.so +%{_libdir}/wine/psapi.dll %{_libdir}/wine/pstorec.dll.so %{_libdir}/wine/qcap.dll.so %{_libdir}/wine/qedit.dll.so @@ -1729,14 +1734,14 @@ fi %{_libdir}/wine/riched20.dll.so %{_libdir}/wine/riched32.dll.so %{_libdir}/wine/rpcrt4.dll.so -%{_libdir}/wine/rsabase.dll.so +%{_libdir}/wine/rsabase.dll %{_libdir}/wine/rsaenh.dll.so %{_libdir}/wine/rstrtmgr.dll.so %{_libdir}/wine/rtutils.dll.so %{_libdir}/wine/samlib.dll.so %{_libdir}/wine/sapi.dll.so %{_libdir}/wine/sas.dll.so -%{_libdir}/wine/sc.exe.so +%{_libdir}/wine/sc.exe %{_libdir}/wine/scarddlg.dll.so %{_libdir}/wine/sccbase.dll.so %{_libdir}/wine/schannel.dll.so @@ -1749,45 +1754,45 @@ fi %{_libdir}/wine/setupapi.dll.so %{_libdir}/wine/sfc_os.dll.so %{_libdir}/wine/shcore.dll.so -%{_libdir}/wine/shdoclc.dll.so +%{_libdir}/wine/shdoclc.dll %{_libdir}/wine/shdocvw.dll.so %{_libdir}/wine/schedsvc.dll.so %{_libdir}/wine/shell32.dll.so -%{_libdir}/wine/shfolder.dll.so +%{_libdir}/wine/shfolder.dll %{_libdir}/wine/shlwapi.dll.so -%{_libdir}/wine/shutdown.exe.so +%{_libdir}/wine/shutdown.exe %{_libdir}/wine/slbcsp.dll.so %{_libdir}/wine/slc.dll.so %{_libdir}/wine/snmpapi.dll.so -%{_libdir}/wine/softpub.dll.so -%{_libdir}/wine/spoolsv.exe.so +%{_libdir}/wine/softpub.dll +%{_libdir}/wine/spoolsv.exe %{_libdir}/wine/srclient.dll.so %{_libdir}/wine/sspicli.dll.so -%{_libdir}/wine/stdole2.tlb.so -%{_libdir}/wine/stdole32.tlb.so +%{_libdir}/wine/stdole2.tlb +%{_libdir}/wine/stdole32.tlb %{_libdir}/wine/sti.dll.so %{_libdir}/wine/strmdll.dll.so -%{_libdir}/wine/subst.exe.so -%{_libdir}/wine/svchost.exe.so +%{_libdir}/wine/subst.exe +%{_libdir}/wine/svchost.exe %{_libdir}/wine/svrapi.dll.so %{_libdir}/wine/sxs.dll.so -%{_libdir}/wine/systeminfo.exe.so +%{_libdir}/wine/systeminfo.exe %{_libdir}/wine/t2embed.dll.so %{_libdir}/wine/tapi32.dll.so -%{_libdir}/wine/taskkill.exe.so +%{_libdir}/wine/taskkill.exe %{_libdir}/wine/taskschd.dll.so %{_libdir}/wine/tdh.dll.so %{_libdir}/wine/tdi.sys.so %{_libdir}/wine/traffic.dll.so -%{_libdir}/wine/tzres.dll.so +%{_libdir}/wine/tzres.dll %{_libdir}/wine/ucrtbase.dll.so %if 0%{?wine_staging} %{_libdir}/wine/uianimation.dll.so %endif %{_libdir}/wine/uiautomationcore.dll.so %{_libdir}/wine/uiribbon.dll.so -%{_libdir}/wine/unicows.dll.so -%{_libdir}/wine/unlodctr.exe.so +%{_libdir}/wine/unicows.dll +%{_libdir}/wine/unlodctr.exe %{_libdir}/wine/updspapi.dll.so %{_libdir}/wine/url.dll.so %{_libdir}/wine/urlmon.dll.so @@ -1798,12 +1803,12 @@ fi %{_libdir}/wine/userenv.dll.so %{_libdir}/wine/vbscript.dll.so %{_libdir}/wine/vcomp.dll.so -%{_libdir}/wine/vcomp90.dll.so -%{_libdir}/wine/vcomp100.dll.so -%{_libdir}/wine/vcomp110.dll.so -%{_libdir}/wine/vcomp120.dll.so -%{_libdir}/wine/vcomp140.dll.so -%{_libdir}/wine/vcruntime140.dll.so +%{_libdir}/wine/vcomp90.dll +%{_libdir}/wine/vcomp100.dll +%{_libdir}/wine/vcomp110.dll +%{_libdir}/wine/vcomp120.dll +%{_libdir}/wine/vcomp140.dll +%{_libdir}/wine/vcruntime140.dll %{_libdir}/wine/vdmdbg.dll.so %{_libdir}/wine/version.dll.so %{_libdir}/wine/virtdisk.dll.so @@ -1824,6 +1829,7 @@ fi %{_libdir}/wine/windowscodecsext.dll.so %{_libdir}/wine/winebus.sys.so %{_libdir}/wine/winegstreamer.dll.so +%{_libdir}/wine/winehid.inf %{_libdir}/wine/winehid.sys.so %{_libdir}/wine/winejoystick.drv.so %{_libdir}/wine/winemapi.dll.so @@ -1837,8 +1843,8 @@ fi %{_libdir}/wine/winspool.drv.so %{_libdir}/wine/winsta.dll.so %{_libdir}/wine/wmasf.dll.so -%{_libdir}/wine/wmi.dll.so -%{_libdir}/wine/wmic.exe.so +%{_libdir}/wine/wmi.dll +%{_libdir}/wine/wmic.exe %{_libdir}/wine/wmiutils.dll.so %{_libdir}/wine/wmp.dll.so %{_libdir}/wine/wmvcore.dll.so @@ -1846,7 +1852,7 @@ fi %{_libdir}/wine/winscard.dll.so %{_libdir}/wine/wintab32.dll.so %{_libdir}/wine/wintrust.dll.so -%{_libdir}/wine/winusb.dll.so +%{_libdir}/wine/winusb.dll %{_libdir}/wine/wlanapi.dll.so %{_libdir}/wine/wmphoto.dll.so %{_libdir}/wine/wnaspi32.dll.so @@ -1866,7 +1872,7 @@ fi %if 0%{?wine_staging} %{_libdir}/wine/wuauserv.exe.so %endif -%{_libdir}/wine/security.dll.so +%{_libdir}/wine/security.dll %{_libdir}/wine/sfc.dll.so %{_libdir}/wine/wineps.drv.so %{_libdir}/wine/d3d8.dll.so @@ -1874,7 +1880,7 @@ fi %{_libdir}/wine/opengl32.dll.so %{_libdir}/wine/wined3d.dll.so %{_libdir}/wine/dnsapi.dll.so -%{_libdir}/wine/iexplore.exe.so +%{_libdir}/wine/iexplore.exe %{_libdir}/wine/x3daudio1_0.dll.so %{_libdir}/wine/x3daudio1_1.dll.so %{_libdir}/wine/x3daudio1_2.dll.so @@ -1898,7 +1904,7 @@ fi %{_libdir}/wine/xaudio2_7.dll.so %{_libdir}/wine/xaudio2_8.dll.so %{_libdir}/wine/xaudio2_9.dll.so -%{_libdir}/wine/xcopy.exe.so +%{_libdir}/wine/xcopy.exe %{_libdir}/wine/xinput1_1.dll.so %{_libdir}/wine/xinput1_2.dll.so %{_libdir}/wine/xinput1_3.dll.so @@ -1925,7 +1931,7 @@ fi %{_libdir}/wine/ifsmgr.vxd.so %{_libdir}/wine/mmdevldr.vxd.so %{_libdir}/wine/monodebg.vxd.so -%{_libdir}/wine/rundll.exe16.so +%{_libdir}/wine/rundll.exe16 %{_libdir}/wine/vdhcp.vxd.so %{_libdir}/wine/user.exe16.so %{_libdir}/wine/vmm.vxd.so @@ -1935,7 +1941,7 @@ fi %{_libdir}/wine/vwin32.vxd.so %{_libdir}/wine/w32skrnl.dll.so %{_libdir}/wine/avifile.dll16.so -%{_libdir}/wine/comm.drv16.so +%{_libdir}/wine/comm.drv16 %{_libdir}/wine/commdlg.dll16.so %{_libdir}/wine/compobj.dll16.so %{_libdir}/wine/ctl3d.dll16.so @@ -1944,7 +1950,7 @@ fi %{_libdir}/wine/dispdib.dll16.so %{_libdir}/wine/display.drv16.so %{_libdir}/wine/gdi.exe16.so -%{_libdir}/wine/imm.dll16.so +%{_libdir}/wine/imm.dll16 %{_libdir}/wine/krnl386.exe16.so %{_libdir}/wine/keyboard.drv16.so %{_libdir}/wine/lzexpand.dll16.so @@ -1953,14 +1959,14 @@ fi %{_libdir}/wine/msacm.dll16.so %{_libdir}/wine/msvideo.dll16.so %{_libdir}/wine/ole2.dll16.so -%{_libdir}/wine/ole2conv.dll16.so +%{_libdir}/wine/ole2conv.dll16 %{_libdir}/wine/ole2disp.dll16.so %{_libdir}/wine/ole2nls.dll16.so -%{_libdir}/wine/ole2prox.dll16.so -%{_libdir}/wine/ole2thk.dll16.so +%{_libdir}/wine/ole2prox.dll16 +%{_libdir}/wine/ole2thk.dll16 %{_libdir}/wine/olecli.dll16.so %{_libdir}/wine/olesvr.dll16.so -%{_libdir}/wine/rasapi16.dll16.so +%{_libdir}/wine/rasapi16.dll16 %{_libdir}/wine/setupx.dll16.so %{_libdir}/wine/shell.dll16.so %{_libdir}/wine/sound.drv16.so @@ -1978,9 +1984,9 @@ fi %{_libdir}/wine/windebug.dll16.so %{_libdir}/wine/wineps16.drv16.so %{_libdir}/wine/wing.dll16.so -%{_libdir}/wine/winhelp.exe16.so +%{_libdir}/wine/winhelp.exe16 %{_libdir}/wine/winnls.dll16.so -%{_libdir}/wine/winoldap.mod16.so +%{_libdir}/wine/winoldap.mod16 %{_libdir}/wine/winsock.dll16.so %{_libdir}/wine/wintab.dll16.so %{_libdir}/wine/wow32.dll.so @@ -2197,6 +2203,10 @@ fi %endif %changelog +* Thu Jun 13 2019 Michael Cronenworth 4.10-1 +- version update +- compile with MinGW support + * Sun May 26 2019 Michael Cronenworth 4.9-1 - version update From 785891a779cd2b7fba9f7254ec71860295553b8f Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Fri, 14 Jun 2019 00:23:55 -0500 Subject: [PATCH 503/715] Fix winehid file location --- wine.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 3f79f5d..1660fef 100644 --- a/wine.spec +++ b/wine.spec @@ -1829,7 +1829,6 @@ fi %{_libdir}/wine/windowscodecsext.dll.so %{_libdir}/wine/winebus.sys.so %{_libdir}/wine/winegstreamer.dll.so -%{_libdir}/wine/winehid.inf %{_libdir}/wine/winehid.sys.so %{_libdir}/wine/winejoystick.drv.so %{_libdir}/wine/winemapi.dll.so @@ -1999,6 +1998,7 @@ fi %dir %{_datadir}/wine/mono %dir %{_datadir}/wine/fonts %{_datadir}/wine/wine.inf +%{_datadir}/wine/winehid.inf %{_datadir}/wine/l_intl.nls %files common From 87058b043e7fa932d7d9f71f2d1edae88bd975d4 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Fri, 14 Jun 2019 09:46:34 -0500 Subject: [PATCH 504/715] Handle file extensions between architectures Only x86 arches use MinGW. --- wine.spec | 1089 +++++++++++++++++++++++++++-------------------------- 1 file changed, 553 insertions(+), 536 deletions(-) diff --git a/wine.spec b/wine.spec index 1660fef..06a8d0d 100644 --- a/wine.spec +++ b/wine.spec @@ -5,6 +5,23 @@ %global winegecko 2.47 %global winemono 4.8.3 #global _default_patch_fuzz 2 +%ifarch %{ix86} x86_64 +%global wineacm acm +%global winecpl cpl +%global winedll dll +%global wineexe exe +%global wineocx ocx +%global winesys sys +%global winetlb tlb +%else +%global wineacm acm.so +%global winecpl cpl.so +%global winedll dll.so +%global wineexe exe.so +%global wineocx ocx.so +%global winesys sys.so +%global winesys tlb.so +%endif # build with wine-staging patches, see: https://github.com/wine-staging/wine-staging %if 0%{?fedora} @@ -1031,24 +1048,24 @@ fi %{_libdir}/wine/runas.exe.so %endif %{_bindir}/winedump -%{_libdir}/wine/explorer.exe -%{_libdir}/wine/cabarc.exe -%{_libdir}/wine/control.exe -%{_libdir}/wine/cmd.exe -%{_libdir}/wine/dxdiag.exe -%{_libdir}/wine/notepad.exe -%{_libdir}/wine/plugplay.exe -%{_libdir}/wine/progman.exe -%{_libdir}/wine/taskmgr.exe +%{_libdir}/wine/explorer.%{wineexe} +%{_libdir}/wine/cabarc.%{wineexe} +%{_libdir}/wine/control.%{wineexe} +%{_libdir}/wine/cmd.%{wineexe} +%{_libdir}/wine/dxdiag.%{wineexe} +%{_libdir}/wine/notepad.%{wineexe} +%{_libdir}/wine/plugplay.%{wineexe} +%{_libdir}/wine/progman.%{wineexe} +%{_libdir}/wine/taskmgr.%{wineexe} %{_libdir}/wine/winedbg.exe.so -%{_libdir}/wine/winefile.exe -%{_libdir}/wine/winemine.exe -%{_libdir}/wine/winemsibuilder.exe +%{_libdir}/wine/winefile.%{wineexe} +%{_libdir}/wine/winemine.%{wineexe} +%{_libdir}/wine/winemsibuilder.%{wineexe} %{_libdir}/wine/winepath.exe.so -%{_libdir}/wine/winmgmt.exe +%{_libdir}/wine/winmgmt.%{wineexe} %{_libdir}/wine/winver.exe.so -%{_libdir}/wine/wordpad.exe -%{_libdir}/wine/write.exe +%{_libdir}/wine/wordpad.%{wineexe} +%{_libdir}/wine/write.%{wineexe} %{_libdir}/wine/wusa.exe.so %ifarch %{ix86} %{arm} @@ -1079,522 +1096,522 @@ fi %dir %{_libdir}/wine/fakedlls %{_libdir}/wine/fakedlls/* -%{_libdir}/wine/attrib.exe -%{_libdir}/wine/arp.exe -%{_libdir}/wine/aspnet_regiis.exe -%{_libdir}/wine/cacls.exe -%{_libdir}/wine/conhost.exe -%{_libdir}/wine/cscript.exe -%{_libdir}/wine/dism.exe -%{_libdir}/wine/dpnsvr.exe -%{_libdir}/wine/eject.exe -%{_libdir}/wine/expand.exe -%{_libdir}/wine/extrac32.exe -%{_libdir}/wine/fc.exe -%{_libdir}/wine/find.exe -%{_libdir}/wine/findstr.exe +%{_libdir}/wine/attrib.%{wineexe} +%{_libdir}/wine/arp.%{wineexe} +%{_libdir}/wine/aspnet_regiis.%{wineexe} +%{_libdir}/wine/cacls.%{wineexe} +%{_libdir}/wine/conhost.%{wineexe} +%{_libdir}/wine/cscript.%{wineexe} +%{_libdir}/wine/dism.%{wineexe} +%{_libdir}/wine/dpnsvr.%{wineexe} +%{_libdir}/wine/eject.%{wineexe} +%{_libdir}/wine/expand.%{wineexe} +%{_libdir}/wine/extrac32.%{wineexe} +%{_libdir}/wine/fc.%{wineexe} +%{_libdir}/wine/find.%{wineexe} +%{_libdir}/wine/findstr.%{wineexe} %{_libdir}/wine/fsutil.exe.so -%{_libdir}/wine/hostname.exe -%{_libdir}/wine/ipconfig.exe -%{_libdir}/wine/winhlp32.exe -%{_libdir}/wine/mshta.exe +%{_libdir}/wine/hostname.%{wineexe} +%{_libdir}/wine/ipconfig.%{wineexe} +%{_libdir}/wine/winhlp32.%{wineexe} +%{_libdir}/wine/mshta.%{wineexe} %if 0%{?wine_staging} -%{_libdir}/wine/msidb.exe +%{_libdir}/wine/msidb.%{wineexe} %endif -%{_libdir}/wine/msiexec.exe -%{_libdir}/wine/net.exe -%{_libdir}/wine/netstat.exe -%{_libdir}/wine/ngen.exe +%{_libdir}/wine/msiexec.%{wineexe} +%{_libdir}/wine/net.%{wineexe} +%{_libdir}/wine/netstat.%{wineexe} +%{_libdir}/wine/ngen.%{wineexe} %{_libdir}/wine/ntoskrnl.exe.so -%{_libdir}/wine/oleview.exe -%{_libdir}/wine/ping.exe -%{_libdir}/wine/powershell.exe -%{_libdir}/wine/reg.exe -%{_libdir}/wine/regasm.exe -%{_libdir}/wine/regedit.exe -%{_libdir}/wine/regsvcs.exe -%{_libdir}/wine/regsvr32.exe -%{_libdir}/wine/rpcss.exe -%{_libdir}/wine/rundll32.exe -%{_libdir}/wine/schtasks.exe -%{_libdir}/wine/sdbinst.exe -%{_libdir}/wine/secedit.exe -%{_libdir}/wine/servicemodelreg.exe -%{_libdir}/wine/services.exe -%{_libdir}/wine/start.exe -%{_libdir}/wine/tasklist.exe -%{_libdir}/wine/termsv.exe -%{_libdir}/wine/view.exe -%{_libdir}/wine/wevtutil.exe +%{_libdir}/wine/oleview.%{wineexe} +%{_libdir}/wine/ping.%{wineexe} +%{_libdir}/wine/powershell.%{wineexe} +%{_libdir}/wine/reg.%{wineexe} +%{_libdir}/wine/regasm.%{wineexe} +%{_libdir}/wine/regedit.%{wineexe} +%{_libdir}/wine/regsvcs.%{wineexe} +%{_libdir}/wine/regsvr32.%{wineexe} +%{_libdir}/wine/rpcss.%{wineexe} +%{_libdir}/wine/rundll32.%{wineexe} +%{_libdir}/wine/schtasks.%{wineexe} +%{_libdir}/wine/sdbinst.%{wineexe} +%{_libdir}/wine/secedit.%{wineexe} +%{_libdir}/wine/servicemodelreg.%{wineexe} +%{_libdir}/wine/services.%{wineexe} +%{_libdir}/wine/start.%{wineexe} +%{_libdir}/wine/tasklist.%{wineexe} +%{_libdir}/wine/termsv.%{wineexe} +%{_libdir}/wine/view.%{wineexe} +%{_libdir}/wine/wevtutil.%{wineexe} %{_libdir}/wine/wineboot.exe.so %{_libdir}/wine/winebrowser.exe.so %{_libdir}/wine/wineconsole.exe.so %{_libdir}/wine/winemenubuilder.exe.so %{_libdir}/wine/winecfg.exe.so -%{_libdir}/wine/winedevice.exe -%{_libdir}/wine/wmplayer.exe -%{_libdir}/wine/wscript.exe -%{_libdir}/wine/uninstaller.exe +%{_libdir}/wine/winedevice.%{wineexe} +%{_libdir}/wine/wmplayer.%{wineexe} +%{_libdir}/wine/wscript.%{wineexe} +%{_libdir}/wine/uninstaller.%{wineexe} %{_libdir}/libwine.so.1* -%{_libdir}/wine/acledit.dll -%{_libdir}/wine/aclui.dll -%{_libdir}/wine/activeds.dll -%{_libdir}/wine/actxprxy.dll -%{_libdir}/wine/adsldp.dll -%{_libdir}/wine/adsldpc.dll +%{_libdir}/wine/acledit.%{winedll} +%{_libdir}/wine/aclui.%{winedll} +%{_libdir}/wine/activeds.%{winedll} +%{_libdir}/wine/actxprxy.%{winedll} +%{_libdir}/wine/adsldp.%{winedll} +%{_libdir}/wine/adsldpc.%{winedll} %{_libdir}/wine/advapi32.dll.so -%{_libdir}/wine/advpack.dll -%{_libdir}/wine/amsi.dll +%{_libdir}/wine/advpack.%{winedll} +%{_libdir}/wine/amsi.%{winedll} %{_libdir}/wine/amstream.dll.so -%{_libdir}/wine/api-ms-win-appmodel-identity-l1-1-0.dll -%{_libdir}/wine/api-ms-win-appmodel-runtime-l1-1-1.dll -%{_libdir}/wine/api-ms-win-appmodel-runtime-l1-1-2.dll -%{_libdir}/wine/api-ms-win-core-apiquery-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-appcompat-l1-1-1.dll -%{_libdir}/wine/api-ms-win-core-appinit-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-atoms-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-bem-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-com-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-com-l1-1-1.dll -%{_libdir}/wine/api-ms-win-core-com-private-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-comm-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-console-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-console-l2-1-0.dll -%{_libdir}/wine/api-ms-win-core-crt-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-crt-l2-1-0.dll -%{_libdir}/wine/api-ms-win-core-datetime-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-datetime-l1-1-1.dll -%{_libdir}/wine/api-ms-win-core-debug-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-debug-l1-1-1.dll -%{_libdir}/wine/api-ms-win-core-delayload-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-delayload-l1-1-1.dll -%{_libdir}/wine/api-ms-win-core-errorhandling-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-errorhandling-l1-1-1.dll -%{_libdir}/wine/api-ms-win-core-errorhandling-l1-1-2.dll -%{_libdir}/wine/api-ms-win-core-errorhandling-l1-1-3.dll -%{_libdir}/wine/api-ms-win-core-fibers-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-fibers-l1-1-1.dll -%{_libdir}/wine/api-ms-win-core-file-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-file-l1-2-0.dll -%{_libdir}/wine/api-ms-win-core-file-l1-2-1.dll -%{_libdir}/wine/api-ms-win-core-file-l1-2-2.dll -%{_libdir}/wine/api-ms-win-core-file-l2-1-0.dll -%{_libdir}/wine/api-ms-win-core-file-l2-1-1.dll -%{_libdir}/wine/api-ms-win-core-file-l2-1-2.dll -%{_libdir}/wine/api-ms-win-core-handle-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-heap-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-heap-l1-2-0.dll -%{_libdir}/wine/api-ms-win-core-heap-l2-1-0.dll -%{_libdir}/wine/api-ms-win-core-heap-obsolete-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-interlocked-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-interlocked-l1-2-0.dll -%{_libdir}/wine/api-ms-win-core-io-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-io-l1-1-1.dll -%{_libdir}/wine/api-ms-win-core-job-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-job-l2-1-0.dll -%{_libdir}/wine/api-ms-win-core-largeinteger-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-kernel32-legacy-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-kernel32-legacy-l1-1-1.dll -%{_libdir}/wine/api-ms-win-core-kernel32-private-l1-1-1.dll -%{_libdir}/wine/api-ms-win-core-libraryloader-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-libraryloader-l1-1-1.dll -%{_libdir}/wine/api-ms-win-core-libraryloader-l1-2-0.dll -%{_libdir}/wine/api-ms-win-core-libraryloader-l1-2-1.dll -%{_libdir}/wine/api-ms-win-core-libraryloader-l1-2-2.dll -%{_libdir}/wine/api-ms-win-core-localization-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-localization-l1-2-0.dll -%{_libdir}/wine/api-ms-win-core-localization-l1-2-1.dll -%{_libdir}/wine/api-ms-win-core-localization-l2-1-0.dll -%{_libdir}/wine/api-ms-win-core-localization-obsolete-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-localization-obsolete-l1-2-0.dll -%{_libdir}/wine/api-ms-win-core-localization-obsolete-l1-3-0.dll -%{_libdir}/wine/api-ms-win-core-localization-private-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-localregistry-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-memory-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-memory-l1-1-1.dll -%{_libdir}/wine/api-ms-win-core-memory-l1-1-2.dll -%{_libdir}/wine/api-ms-win-core-misc-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-namedpipe-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-namedpipe-l1-2-0.dll -%{_libdir}/wine/api-ms-win-core-namespace-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-normalization-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-path-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-privateprofile-l1-1-1.dll -%{_libdir}/wine/api-ms-win-core-processenvironment-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-processenvironment-l1-2-0.dll -%{_libdir}/wine/api-ms-win-core-processthreads-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-processthreads-l1-1-1.dll -%{_libdir}/wine/api-ms-win-core-processthreads-l1-1-2.dll -%{_libdir}/wine/api-ms-win-core-processthreads-l1-1-3.dll -%{_libdir}/wine/api-ms-win-core-processtopology-obsolete-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-profile-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-psapi-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-psapi-ansi-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-psapi-obsolete-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-quirks-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-realtime-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-registry-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-registry-l2-1-0.dll -%{_libdir}/wine/api-ms-win-core-registryuserspecific-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-rtlsupport-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-rtlsupport-l1-2-0.dll -%{_libdir}/wine/api-ms-win-core-shlwapi-legacy-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-shlwapi-obsolete-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-shlwapi-obsolete-l1-2-0.dll -%{_libdir}/wine/api-ms-win-core-shutdown-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-sidebyside-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-string-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-string-l2-1-0.dll -%{_libdir}/wine/api-ms-win-core-string-obsolete-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-stringansi-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-stringloader-l1-1-1.dll -%{_libdir}/wine/api-ms-win-core-synch-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-synch-l1-2-0.dll -%{_libdir}/wine/api-ms-win-core-synch-l1-2-1.dll -%{_libdir}/wine/api-ms-win-core-synch-ansi-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-sysinfo-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-sysinfo-l1-2-0.dll -%{_libdir}/wine/api-ms-win-core-sysinfo-l1-2-1.dll -%{_libdir}/wine/api-ms-win-core-threadpool-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-threadpool-l1-2-0.dll -%{_libdir}/wine/api-ms-win-core-threadpool-legacy-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-threadpool-private-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-timezone-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-toolhelp-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-url-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-util-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-version-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-version-l1-1-1.dll -%{_libdir}/wine/api-ms-win-core-version-private-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-versionansi-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-windowserrorreporting-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-winrt-error-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-winrt-error-l1-1-1.dll -%{_libdir}/wine/api-ms-win-core-winrt-errorprivate-l1-1-1.dll -%{_libdir}/wine/api-ms-win-core-winrt-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-winrt-registration-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-winrt-string-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-winrt-string-l1-1-1.dll -%{_libdir}/wine/api-ms-win-core-wow64-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-wow64-l1-1-1.dll -%{_libdir}/wine/api-ms-win-core-xstate-l1-1-0.dll -%{_libdir}/wine/api-ms-win-core-xstate-l2-1-0.dll -%{_libdir}/wine/api-ms-win-crt-conio-l1-1-0.dll -%{_libdir}/wine/api-ms-win-crt-convert-l1-1-0.dll -%{_libdir}/wine/api-ms-win-crt-environment-l1-1-0.dll -%{_libdir}/wine/api-ms-win-crt-filesystem-l1-1-0.dll -%{_libdir}/wine/api-ms-win-crt-heap-l1-1-0.dll -%{_libdir}/wine/api-ms-win-crt-locale-l1-1-0.dll -%{_libdir}/wine/api-ms-win-crt-math-l1-1-0.dll -%{_libdir}/wine/api-ms-win-crt-multibyte-l1-1-0.dll -%{_libdir}/wine/api-ms-win-crt-private-l1-1-0.dll -%{_libdir}/wine/api-ms-win-crt-process-l1-1-0.dll -%{_libdir}/wine/api-ms-win-crt-runtime-l1-1-0.dll -%{_libdir}/wine/api-ms-win-crt-stdio-l1-1-0.dll -%{_libdir}/wine/api-ms-win-crt-string-l1-1-0.dll -%{_libdir}/wine/api-ms-win-crt-time-l1-1-0.dll -%{_libdir}/wine/api-ms-win-crt-utility-l1-1-0.dll -%{_libdir}/wine/api-ms-win-devices-config-l1-1-0.dll -%{_libdir}/wine/api-ms-win-devices-config-l1-1-1.dll -%{_libdir}/wine/api-ms-win-devices-query-l1-1-1.dll -%{_libdir}/wine/api-ms-win-downlevel-advapi32-l1-1-0.dll -%{_libdir}/wine/api-ms-win-downlevel-advapi32-l2-1-0.dll -%{_libdir}/wine/api-ms-win-downlevel-normaliz-l1-1-0.dll -%{_libdir}/wine/api-ms-win-downlevel-ole32-l1-1-0.dll -%{_libdir}/wine/api-ms-win-downlevel-shell32-l1-1-0.dll -%{_libdir}/wine/api-ms-win-downlevel-shlwapi-l1-1-0.dll -%{_libdir}/wine/api-ms-win-downlevel-shlwapi-l2-1-0.dll -%{_libdir}/wine/api-ms-win-downlevel-user32-l1-1-0.dll -%{_libdir}/wine/api-ms-win-downlevel-version-l1-1-0.dll -%{_libdir}/wine/api-ms-win-dx-d3dkmt-l1-1-0.dll -%{_libdir}/wine/api-ms-win-eventing-classicprovider-l1-1-0.dll -%{_libdir}/wine/api-ms-win-eventing-consumer-l1-1-0.dll -%{_libdir}/wine/api-ms-win-eventing-controller-l1-1-0.dll -%{_libdir}/wine/api-ms-win-eventing-legacy-l1-1-0.dll -%{_libdir}/wine/api-ms-win-eventing-provider-l1-1-0.dll -%{_libdir}/wine/api-ms-win-eventlog-legacy-l1-1-0.dll -%{_libdir}/wine/api-ms-win-gdi-dpiinfo-l1-1-0.dll -%{_libdir}/wine/api-ms-win-mm-joystick-l1-1-0.dll -%{_libdir}/wine/api-ms-win-mm-misc-l1-1-1.dll -%{_libdir}/wine/api-ms-win-mm-mme-l1-1-0.dll -%{_libdir}/wine/api-ms-win-mm-time-l1-1-0.dll -%{_libdir}/wine/api-ms-win-ntuser-dc-access-l1-1-0.dll -%{_libdir}/wine/api-ms-win-ntuser-rectangle-l1-1-0.dll -%{_libdir}/wine/api-ms-win-ntuser-sysparams-l1-1-0.dll -%{_libdir}/wine/api-ms-win-perf-legacy-l1-1-0.dll -%{_libdir}/wine/api-ms-win-power-base-l1-1-0.dll -%{_libdir}/wine/api-ms-win-power-setting-l1-1-0.dll -%{_libdir}/wine/api-ms-win-rtcore-ntuser-draw-l1-1-0.dll -%{_libdir}/wine/api-ms-win-rtcore-ntuser-private-l1-1-0.dll -%{_libdir}/wine/api-ms-win-rtcore-ntuser-private-l1-1-4.dll -%{_libdir}/wine/api-ms-win-rtcore-ntuser-window-l1-1-0.dll -%{_libdir}/wine/api-ms-win-rtcore-ntuser-winevent-l1-1-0.dll -%{_libdir}/wine/api-ms-win-rtcore-ntuser-wmpointer-l1-1-0.dll -%{_libdir}/wine/api-ms-win-rtcore-ntuser-wmpointer-l1-1-3.dll -%{_libdir}/wine/api-ms-win-security-activedirectoryclient-l1-1-0.dll -%{_libdir}/wine/api-ms-win-security-audit-l1-1-1.dll -%{_libdir}/wine/api-ms-win-security-base-l1-1-0.dll -%{_libdir}/wine/api-ms-win-security-base-l1-2-0.dll -%{_libdir}/wine/api-ms-win-security-base-private-l1-1-1.dll -%{_libdir}/wine/api-ms-win-security-credentials-l1-1-0.dll -%{_libdir}/wine/api-ms-win-security-cryptoapi-l1-1-0.dll -%{_libdir}/wine/api-ms-win-security-grouppolicy-l1-1-0.dll -%{_libdir}/wine/api-ms-win-security-lsalookup-l1-1-0.dll -%{_libdir}/wine/api-ms-win-security-lsalookup-l1-1-1.dll -%{_libdir}/wine/api-ms-win-security-lsalookup-l2-1-0.dll -%{_libdir}/wine/api-ms-win-security-lsalookup-l2-1-1.dll -%{_libdir}/wine/api-ms-win-security-lsapolicy-l1-1-0.dll -%{_libdir}/wine/api-ms-win-security-provider-l1-1-0.dll -%{_libdir}/wine/api-ms-win-security-sddl-l1-1-0.dll -%{_libdir}/wine/api-ms-win-security-systemfunctions-l1-1-0.dll -%{_libdir}/wine/api-ms-win-service-core-l1-1-0.dll -%{_libdir}/wine/api-ms-win-service-core-l1-1-1.dll -%{_libdir}/wine/api-ms-win-service-management-l1-1-0.dll -%{_libdir}/wine/api-ms-win-service-management-l2-1-0.dll -%{_libdir}/wine/api-ms-win-service-private-l1-1-1.dll -%{_libdir}/wine/api-ms-win-service-winsvc-l1-1-0.dll -%{_libdir}/wine/api-ms-win-service-winsvc-l1-2-0.dll -%{_libdir}/wine/api-ms-win-shcore-obsolete-l1-1-0.dll -%{_libdir}/wine/api-ms-win-shcore-scaling-l1-1-1.dll -%{_libdir}/wine/api-ms-win-shcore-stream-l1-1-0.dll -%{_libdir}/wine/api-ms-win-shcore-thread-l1-1-0.dll -%{_libdir}/wine/api-ms-win-shell-shellcom-l1-1-0.dll -%{_libdir}/wine/api-ms-win-shell-shellfolders-l1-1-0.dll -%{_libdir}/wine/apphelp.dll +%{_libdir}/wine/api-ms-win-appmodel-identity-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-appmodel-runtime-l1-1-1.%{winedll} +%{_libdir}/wine/api-ms-win-appmodel-runtime-l1-1-2.%{winedll} +%{_libdir}/wine/api-ms-win-core-apiquery-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-appcompat-l1-1-1.%{winedll} +%{_libdir}/wine/api-ms-win-core-appinit-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-atoms-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-bem-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-com-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-com-l1-1-1.%{winedll} +%{_libdir}/wine/api-ms-win-core-com-private-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-comm-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-console-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-console-l2-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-crt-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-crt-l2-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-datetime-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-datetime-l1-1-1.%{winedll} +%{_libdir}/wine/api-ms-win-core-debug-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-debug-l1-1-1.%{winedll} +%{_libdir}/wine/api-ms-win-core-delayload-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-delayload-l1-1-1.%{winedll} +%{_libdir}/wine/api-ms-win-core-errorhandling-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-errorhandling-l1-1-1.%{winedll} +%{_libdir}/wine/api-ms-win-core-errorhandling-l1-1-2.%{winedll} +%{_libdir}/wine/api-ms-win-core-errorhandling-l1-1-3.%{winedll} +%{_libdir}/wine/api-ms-win-core-fibers-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-fibers-l1-1-1.%{winedll} +%{_libdir}/wine/api-ms-win-core-file-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-file-l1-2-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-file-l1-2-1.%{winedll} +%{_libdir}/wine/api-ms-win-core-file-l1-2-2.%{winedll} +%{_libdir}/wine/api-ms-win-core-file-l2-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-file-l2-1-1.%{winedll} +%{_libdir}/wine/api-ms-win-core-file-l2-1-2.%{winedll} +%{_libdir}/wine/api-ms-win-core-handle-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-heap-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-heap-l1-2-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-heap-l2-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-heap-obsolete-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-interlocked-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-interlocked-l1-2-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-io-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-io-l1-1-1.%{winedll} +%{_libdir}/wine/api-ms-win-core-job-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-job-l2-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-largeinteger-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-kernel32-legacy-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-kernel32-legacy-l1-1-1.%{winedll} +%{_libdir}/wine/api-ms-win-core-kernel32-private-l1-1-1.%{winedll} +%{_libdir}/wine/api-ms-win-core-libraryloader-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-libraryloader-l1-1-1.%{winedll} +%{_libdir}/wine/api-ms-win-core-libraryloader-l1-2-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-libraryloader-l1-2-1.%{winedll} +%{_libdir}/wine/api-ms-win-core-libraryloader-l1-2-2.%{winedll} +%{_libdir}/wine/api-ms-win-core-localization-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-localization-l1-2-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-localization-l1-2-1.%{winedll} +%{_libdir}/wine/api-ms-win-core-localization-l2-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-localization-obsolete-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-localization-obsolete-l1-2-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-localization-obsolete-l1-3-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-localization-private-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-localregistry-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-memory-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-memory-l1-1-1.%{winedll} +%{_libdir}/wine/api-ms-win-core-memory-l1-1-2.%{winedll} +%{_libdir}/wine/api-ms-win-core-misc-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-namedpipe-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-namedpipe-l1-2-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-namespace-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-normalization-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-path-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-privateprofile-l1-1-1.%{winedll} +%{_libdir}/wine/api-ms-win-core-processenvironment-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-processenvironment-l1-2-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-processthreads-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-processthreads-l1-1-1.%{winedll} +%{_libdir}/wine/api-ms-win-core-processthreads-l1-1-2.%{winedll} +%{_libdir}/wine/api-ms-win-core-processthreads-l1-1-3.%{winedll} +%{_libdir}/wine/api-ms-win-core-processtopology-obsolete-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-profile-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-psapi-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-psapi-ansi-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-psapi-obsolete-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-quirks-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-realtime-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-registry-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-registry-l2-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-registryuserspecific-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-rtlsupport-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-rtlsupport-l1-2-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-shlwapi-legacy-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-shlwapi-obsolete-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-shlwapi-obsolete-l1-2-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-shutdown-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-sidebyside-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-string-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-string-l2-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-string-obsolete-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-stringansi-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-stringloader-l1-1-1.%{winedll} +%{_libdir}/wine/api-ms-win-core-synch-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-synch-l1-2-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-synch-l1-2-1.%{winedll} +%{_libdir}/wine/api-ms-win-core-synch-ansi-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-sysinfo-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-sysinfo-l1-2-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-sysinfo-l1-2-1.%{winedll} +%{_libdir}/wine/api-ms-win-core-threadpool-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-threadpool-l1-2-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-threadpool-legacy-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-threadpool-private-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-timezone-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-toolhelp-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-url-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-util-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-version-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-version-l1-1-1.%{winedll} +%{_libdir}/wine/api-ms-win-core-version-private-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-versionansi-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-windowserrorreporting-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-winrt-error-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-winrt-error-l1-1-1.%{winedll} +%{_libdir}/wine/api-ms-win-core-winrt-errorprivate-l1-1-1.%{winedll} +%{_libdir}/wine/api-ms-win-core-winrt-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-winrt-registration-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-winrt-roparameterizediid-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-winrt-string-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-winrt-string-l1-1-1.%{winedll} +%{_libdir}/wine/api-ms-win-core-wow64-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-wow64-l1-1-1.%{winedll} +%{_libdir}/wine/api-ms-win-core-xstate-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-xstate-l2-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-crt-conio-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-crt-convert-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-crt-environment-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-crt-filesystem-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-crt-heap-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-crt-locale-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-crt-math-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-crt-multibyte-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-crt-private-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-crt-process-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-crt-runtime-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-crt-stdio-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-crt-string-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-crt-time-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-crt-utility-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-devices-config-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-devices-config-l1-1-1.%{winedll} +%{_libdir}/wine/api-ms-win-devices-query-l1-1-1.%{winedll} +%{_libdir}/wine/api-ms-win-downlevel-advapi32-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-downlevel-advapi32-l2-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-downlevel-normaliz-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-downlevel-ole32-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-downlevel-shell32-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-downlevel-shlwapi-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-downlevel-shlwapi-l2-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-downlevel-user32-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-downlevel-version-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-dx-d3dkmt-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-eventing-classicprovider-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-eventing-consumer-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-eventing-controller-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-eventing-legacy-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-eventing-provider-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-eventlog-legacy-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-gdi-dpiinfo-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-mm-joystick-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-mm-misc-l1-1-1.%{winedll} +%{_libdir}/wine/api-ms-win-mm-mme-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-mm-time-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-ntuser-dc-access-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-ntuser-rectangle-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-ntuser-sysparams-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-perf-legacy-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-power-base-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-power-setting-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-rtcore-ntuser-draw-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-rtcore-ntuser-private-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-rtcore-ntuser-private-l1-1-4.%{winedll} +%{_libdir}/wine/api-ms-win-rtcore-ntuser-window-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-rtcore-ntuser-winevent-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-rtcore-ntuser-wmpointer-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-rtcore-ntuser-wmpointer-l1-1-3.%{winedll} +%{_libdir}/wine/api-ms-win-security-activedirectoryclient-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-security-audit-l1-1-1.%{winedll} +%{_libdir}/wine/api-ms-win-security-base-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-security-base-l1-2-0.%{winedll} +%{_libdir}/wine/api-ms-win-security-base-private-l1-1-1.%{winedll} +%{_libdir}/wine/api-ms-win-security-credentials-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-security-cryptoapi-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-security-grouppolicy-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-security-lsalookup-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-security-lsalookup-l1-1-1.%{winedll} +%{_libdir}/wine/api-ms-win-security-lsalookup-l2-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-security-lsalookup-l2-1-1.%{winedll} +%{_libdir}/wine/api-ms-win-security-lsapolicy-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-security-provider-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-security-sddl-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-security-systemfunctions-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-service-core-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-service-core-l1-1-1.%{winedll} +%{_libdir}/wine/api-ms-win-service-management-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-service-management-l2-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-service-private-l1-1-1.%{winedll} +%{_libdir}/wine/api-ms-win-service-winsvc-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-service-winsvc-l1-2-0.%{winedll} +%{_libdir}/wine/api-ms-win-shcore-obsolete-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-shcore-scaling-l1-1-1.%{winedll} +%{_libdir}/wine/api-ms-win-shcore-stream-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-shcore-thread-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-shell-shellcom-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-shell-shellfolders-l1-1-0.%{winedll} +%{_libdir}/wine/apphelp.%{winedll} %{_libdir}/wine/appwiz.cpl.so -%{_libdir}/wine/atl.dll -%{_libdir}/wine/atl80.dll -%{_libdir}/wine/atl90.dll -%{_libdir}/wine/atl100.dll -%{_libdir}/wine/atl110.dll -%{_libdir}/wine/atlthunk.dll -%{_libdir}/wine/atmlib.dll -%{_libdir}/wine/authz.dll +%{_libdir}/wine/atl.%{winedll} +%{_libdir}/wine/atl80.%{winedll} +%{_libdir}/wine/atl90.%{winedll} +%{_libdir}/wine/atl100.%{winedll} +%{_libdir}/wine/atl110.%{winedll} +%{_libdir}/wine/atlthunk.%{winedll} +%{_libdir}/wine/atmlib.%{winedll} +%{_libdir}/wine/authz.%{winedll} %{_libdir}/wine/avicap32.dll.so -%{_libdir}/wine/avifil32.dll -%{_libdir}/wine/avrt.dll +%{_libdir}/wine/avifil32.%{winedll} +%{_libdir}/wine/avrt.%{winedll} %{_libdir}/wine/bcrypt.dll.so -%{_libdir}/wine/bluetoothapis.dll -%{_libdir}/wine/browseui.dll -%{_libdir}/wine/bthprops.cpl +%{_libdir}/wine/bluetoothapis.%{winedll} +%{_libdir}/wine/browseui.%{winedll} +%{_libdir}/wine/bthprops.%{winecpl} %{_libdir}/wine/cabinet.dll.so -%{_libdir}/wine/cards.dll -%{_libdir}/wine/cdosys.dll -%{_libdir}/wine/cfgmgr32.dll -%{_libdir}/wine/clock.exe -%{_libdir}/wine/clusapi.dll -%{_libdir}/wine/combase.dll -%{_libdir}/wine/comcat.dll -%{_libdir}/wine/comctl32.dll -%{_libdir}/wine/comdlg32.dll -%{_libdir}/wine/compstui.dll -%{_libdir}/wine/comsvcs.dll -%{_libdir}/wine/concrt140.dll -%{_libdir}/wine/connect.dll -%{_libdir}/wine/credui.dll +%{_libdir}/wine/cards.%{winedll} +%{_libdir}/wine/cdosys.%{winedll} +%{_libdir}/wine/cfgmgr32.%{winedll} +%{_libdir}/wine/clock.%{wineexe} +%{_libdir}/wine/clusapi.%{winedll} +%{_libdir}/wine/combase.%{winedll} +%{_libdir}/wine/comcat.%{winedll} +%{_libdir}/wine/comctl32.%{winedll} +%{_libdir}/wine/comdlg32.%{winedll} +%{_libdir}/wine/compstui.%{winedll} +%{_libdir}/wine/comsvcs.%{winedll} +%{_libdir}/wine/concrt140.%{winedll} +%{_libdir}/wine/connect.%{winedll} +%{_libdir}/wine/credui.%{winedll} %{_libdir}/wine/crtdll.dll.so %{_libdir}/wine/crypt32.dll.so -%{_libdir}/wine/cryptdlg.dll -%{_libdir}/wine/cryptdll.dll -%{_libdir}/wine/cryptext.dll -%{_libdir}/wine/cryptnet.dll -%{_libdir}/wine/cryptui.dll +%{_libdir}/wine/cryptdlg.%{winedll} +%{_libdir}/wine/cryptdll.%{winedll} +%{_libdir}/wine/cryptext.%{winedll} +%{_libdir}/wine/cryptnet.%{winedll} +%{_libdir}/wine/cryptui.%{winedll} %{_libdir}/wine/ctapi32.dll.so -%{_libdir}/wine/ctl3d32.dll -%{_libdir}/wine/d2d1.dll -%{_libdir}/wine/d3d10.dll -%{_libdir}/wine/d3d10_1.dll -%{_libdir}/wine/d3d10core.dll +%{_libdir}/wine/ctl3d32.%{winedll} +%{_libdir}/wine/d2d1.%{winedll} +%{_libdir}/wine/d3d10.%{winedll} +%{_libdir}/wine/d3d10_1.%{winedll} +%{_libdir}/wine/d3d10core.%{winedll} %{_libdir}/wine/d3d11.dll.so %{_libdir}/wine/d3d12.dll.so %{_libdir}/wine/d3dcompiler_*.dll.so -%{_libdir}/wine/d3dim.dll -%{_libdir}/wine/d3drm.dll -%{_libdir}/wine/d3dx9_*.dll -%{_libdir}/wine/d3dx10_*.dll -%{_libdir}/wine/d3dx11_42.dll -%{_libdir}/wine/d3dx11_43.dll -%{_libdir}/wine/d3dxof.dll -%{_libdir}/wine/davclnt.dll -%{_libdir}/wine/dbgeng.dll +%{_libdir}/wine/d3dim.%{winedll} +%{_libdir}/wine/d3drm.%{winedll} +%{_libdir}/wine/d3dx9_*.%{winedll} +%{_libdir}/wine/d3dx10_*.%{winedll} +%{_libdir}/wine/d3dx11_42.%{winedll} +%{_libdir}/wine/d3dx11_43.%{winedll} +%{_libdir}/wine/d3dxof.%{winedll} +%{_libdir}/wine/davclnt.%{winedll} +%{_libdir}/wine/dbgeng.%{winedll} %{_libdir}/wine/dbghelp.dll.so -%{_libdir}/wine/dciman32.dll +%{_libdir}/wine/dciman32.%{winedll} %{_libdir}/wine/ddraw.dll.so -%{_libdir}/wine/ddrawex.dll -%{_libdir}/wine/devenum.dll -%{_libdir}/wine/dhcpcsvc.dll -%{_libdir}/wine/dhtmled.ocx -%{_libdir}/wine/difxapi.dll +%{_libdir}/wine/ddrawex.%{winedll} +%{_libdir}/wine/devenum.%{winedll} +%{_libdir}/wine/dhcpcsvc.%{winedll} +%{_libdir}/wine/dhtmled.%{wineocx} +%{_libdir}/wine/difxapi.%{winedll} %{_libdir}/wine/dinput.dll.so %{_libdir}/wine/dinput8.dll.so -%{_libdir}/wine/dispex.dll -%{_libdir}/wine/dmband.dll -%{_libdir}/wine/dmcompos.dll -%{_libdir}/wine/dmime.dll -%{_libdir}/wine/dmloader.dll -%{_libdir}/wine/dmscript.dll -%{_libdir}/wine/dmstyle.dll -%{_libdir}/wine/dmsynth.dll -%{_libdir}/wine/dmusic.dll -%{_libdir}/wine/dmusic32.dll -%{_libdir}/wine/dplay.dll -%{_libdir}/wine/dplayx.dll -%{_libdir}/wine/dpnaddr.dll -%{_libdir}/wine/dpnet.dll -%{_libdir}/wine/dpnhpast.dll -%{_libdir}/wine/dpnlobby.dll -%{_libdir}/wine/dpvoice.dll -%{_libdir}/wine/dpwsockx.dll -%{_libdir}/wine/drmclien.dll -%{_libdir}/wine/dsound.dll -%{_libdir}/wine/dsquery.dll -%{_libdir}/wine/dssenh.dll -%{_libdir}/wine/dswave.dll -%{_libdir}/wine/dwmapi.dll +%{_libdir}/wine/dispex.%{winedll} +%{_libdir}/wine/dmband.%{winedll} +%{_libdir}/wine/dmcompos.%{winedll} +%{_libdir}/wine/dmime.%{winedll} +%{_libdir}/wine/dmloader.%{winedll} +%{_libdir}/wine/dmscript.%{winedll} +%{_libdir}/wine/dmstyle.%{winedll} +%{_libdir}/wine/dmsynth.%{winedll} +%{_libdir}/wine/dmusic.%{winedll} +%{_libdir}/wine/dmusic32.%{winedll} +%{_libdir}/wine/dplay.%{winedll} +%{_libdir}/wine/dplayx.%{winedll} +%{_libdir}/wine/dpnaddr.%{winedll} +%{_libdir}/wine/dpnet.%{winedll} +%{_libdir}/wine/dpnhpast.%{winedll} +%{_libdir}/wine/dpnlobby.%{winedll} +%{_libdir}/wine/dpvoice.%{winedll} +%{_libdir}/wine/dpwsockx.%{winedll} +%{_libdir}/wine/drmclien.%{winedll} +%{_libdir}/wine/dsound.%{winedll} +%{_libdir}/wine/dsquery.%{winedll} +%{_libdir}/wine/dssenh.%{winedll} +%{_libdir}/wine/dswave.%{winedll} +%{_libdir}/wine/dwmapi.%{winedll} %{_libdir}/wine/dwrite.dll.so -%{_libdir}/wine/dx8vb.dll -%{_libdir}/wine/dxdiagn.dll +%{_libdir}/wine/dx8vb.%{winedll} +%{_libdir}/wine/dxdiagn.%{winedll} %{_libdir}/wine/dxgi.dll.so %if 0%{?wine_staging} %{_libdir}/wine/dxgkrnl.sys.so %{_libdir}/wine/dxgmms1.sys.so %endif %{_libdir}/wine/dxva2.dll.so -%{_libdir}/wine/esent.dll +%{_libdir}/wine/esent.%{winedll} %{_libdir}/wine/evr.dll.so -%{_libdir}/wine/explorerframe.dll -%{_libdir}/wine/ext-ms-win-authz-context-l1-1-0.dll -%{_libdir}/wine/ext-ms-win-domainjoin-netjoin-l1-1-0.dll -%{_libdir}/wine/ext-ms-win-dwmapi-ext-l1-1-0.dll -%{_libdir}/wine/ext-ms-win-gdi-dc-l1-2-0.dll -%{_libdir}/wine/ext-ms-win-gdi-dc-create-l1-1-0.dll -%{_libdir}/wine/ext-ms-win-gdi-dc-create-l1-1-1.dll -%{_libdir}/wine/ext-ms-win-gdi-devcaps-l1-1-0.dll -%{_libdir}/wine/ext-ms-win-gdi-draw-l1-1-0.dll -%{_libdir}/wine/ext-ms-win-gdi-draw-l1-1-1.dll -%{_libdir}/wine/ext-ms-win-gdi-font-l1-1-0.dll -%{_libdir}/wine/ext-ms-win-gdi-font-l1-1-1.dll -%{_libdir}/wine/ext-ms-win-gdi-render-l1-1-0.dll -%{_libdir}/wine/ext-ms-win-kernel32-package-l1-1-1.dll -%{_libdir}/wine/ext-ms-win-kernel32-package-current-l1-1-0.dll -%{_libdir}/wine/ext-ms-win-ntuser-dialogbox-l1-1-0.dll -%{_libdir}/wine/ext-ms-win-ntuser-draw-l1-1-0.dll -%{_libdir}/wine/ext-ms-win-ntuser-gui-l1-1-0.dll -%{_libdir}/wine/ext-ms-win-ntuser-gui-l1-3-0.dll -%{_libdir}/wine/ext-ms-win-ntuser-keyboard-l1-3-0.dll -%{_libdir}/wine/ext-ms-win-ntuser-misc-l1-2-0.dll -%{_libdir}/wine/ext-ms-win-ntuser-misc-l1-5-1.dll -%{_libdir}/wine/ext-ms-win-ntuser-message-l1-1-0.dll -%{_libdir}/wine/ext-ms-win-ntuser-message-l1-1-1.dll -%{_libdir}/wine/ext-ms-win-ntuser-misc-l1-1-0.dll -%{_libdir}/wine/ext-ms-win-ntuser-mouse-l1-1-0.dll -%{_libdir}/wine/ext-ms-win-ntuser-private-l1-1-1.dll -%{_libdir}/wine/ext-ms-win-ntuser-private-l1-3-1.dll -%{_libdir}/wine/ext-ms-win-ntuser-rectangle-ext-l1-1-0.dll -%{_libdir}/wine/ext-ms-win-ntuser-uicontext-ext-l1-1-0.dll -%{_libdir}/wine/ext-ms-win-ntuser-window-l1-1-0.dll -%{_libdir}/wine/ext-ms-win-ntuser-window-l1-1-1.dll -%{_libdir}/wine/ext-ms-win-ntuser-window-l1-1-4.dll -%{_libdir}/wine/ext-ms-win-ntuser-windowclass-l1-1-0.dll -%{_libdir}/wine/ext-ms-win-ntuser-windowclass-l1-1-1.dll -%{_libdir}/wine/ext-ms-win-oleacc-l1-1-0.dll -%{_libdir}/wine/ext-ms-win-ras-rasapi32-l1-1-0.dll -%{_libdir}/wine/ext-ms-win-rtcore-gdi-devcaps-l1-1-0.dll -%{_libdir}/wine/ext-ms-win-rtcore-gdi-object-l1-1-0.dll -%{_libdir}/wine/ext-ms-win-rtcore-gdi-rgn-l1-1-0.dll -%{_libdir}/wine/ext-ms-win-rtcore-ntuser-cursor-l1-1-0.dll -%{_libdir}/wine/ext-ms-win-rtcore-ntuser-dc-access-l1-1-0.dll -%{_libdir}/wine/ext-ms-win-rtcore-ntuser-dpi-l1-1-0.dll -%{_libdir}/wine/ext-ms-win-rtcore-ntuser-dpi-l1-2-0.dll -%{_libdir}/wine/ext-ms-win-rtcore-ntuser-rawinput-l1-1-0.dll -%{_libdir}/wine/ext-ms-win-rtcore-ntuser-syscolors-l1-1-0.dll -%{_libdir}/wine/ext-ms-win-rtcore-ntuser-sysparams-l1-1-0.dll -%{_libdir}/wine/ext-ms-win-security-credui-l1-1-0.dll -%{_libdir}/wine/ext-ms-win-security-cryptui-l1-1-0.dll -%{_libdir}/wine/ext-ms-win-shell-comctl32-init-l1-1-0.dll -%{_libdir}/wine/ext-ms-win-shell-comdlg32-l1-1-0.dll -%{_libdir}/wine/ext-ms-win-shell-shell32-l1-2-0.dll -%{_libdir}/wine/ext-ms-win-uxtheme-themes-l1-1-0.dll +%{_libdir}/wine/explorerframe.%{winedll} +%{_libdir}/wine/ext-ms-win-authz-context-l1-1-0.%{winedll} +%{_libdir}/wine/ext-ms-win-domainjoin-netjoin-l1-1-0.%{winedll} +%{_libdir}/wine/ext-ms-win-dwmapi-ext-l1-1-0.%{winedll} +%{_libdir}/wine/ext-ms-win-gdi-dc-l1-2-0.%{winedll} +%{_libdir}/wine/ext-ms-win-gdi-dc-create-l1-1-0.%{winedll} +%{_libdir}/wine/ext-ms-win-gdi-dc-create-l1-1-1.%{winedll} +%{_libdir}/wine/ext-ms-win-gdi-devcaps-l1-1-0.%{winedll} +%{_libdir}/wine/ext-ms-win-gdi-draw-l1-1-0.%{winedll} +%{_libdir}/wine/ext-ms-win-gdi-draw-l1-1-1.%{winedll} +%{_libdir}/wine/ext-ms-win-gdi-font-l1-1-0.%{winedll} +%{_libdir}/wine/ext-ms-win-gdi-font-l1-1-1.%{winedll} +%{_libdir}/wine/ext-ms-win-gdi-render-l1-1-0.%{winedll} +%{_libdir}/wine/ext-ms-win-kernel32-package-l1-1-1.%{winedll} +%{_libdir}/wine/ext-ms-win-kernel32-package-current-l1-1-0.%{winedll} +%{_libdir}/wine/ext-ms-win-ntuser-dialogbox-l1-1-0.%{winedll} +%{_libdir}/wine/ext-ms-win-ntuser-draw-l1-1-0.%{winedll} +%{_libdir}/wine/ext-ms-win-ntuser-gui-l1-1-0.%{winedll} +%{_libdir}/wine/ext-ms-win-ntuser-gui-l1-3-0.%{winedll} +%{_libdir}/wine/ext-ms-win-ntuser-keyboard-l1-3-0.%{winedll} +%{_libdir}/wine/ext-ms-win-ntuser-misc-l1-2-0.%{winedll} +%{_libdir}/wine/ext-ms-win-ntuser-misc-l1-5-1.%{winedll} +%{_libdir}/wine/ext-ms-win-ntuser-message-l1-1-0.%{winedll} +%{_libdir}/wine/ext-ms-win-ntuser-message-l1-1-1.%{winedll} +%{_libdir}/wine/ext-ms-win-ntuser-misc-l1-1-0.%{winedll} +%{_libdir}/wine/ext-ms-win-ntuser-mouse-l1-1-0.%{winedll} +%{_libdir}/wine/ext-ms-win-ntuser-private-l1-1-1.%{winedll} +%{_libdir}/wine/ext-ms-win-ntuser-private-l1-3-1.%{winedll} +%{_libdir}/wine/ext-ms-win-ntuser-rectangle-ext-l1-1-0.%{winedll} +%{_libdir}/wine/ext-ms-win-ntuser-uicontext-ext-l1-1-0.%{winedll} +%{_libdir}/wine/ext-ms-win-ntuser-window-l1-1-0.%{winedll} +%{_libdir}/wine/ext-ms-win-ntuser-window-l1-1-1.%{winedll} +%{_libdir}/wine/ext-ms-win-ntuser-window-l1-1-4.%{winedll} +%{_libdir}/wine/ext-ms-win-ntuser-windowclass-l1-1-0.%{winedll} +%{_libdir}/wine/ext-ms-win-ntuser-windowclass-l1-1-1.%{winedll} +%{_libdir}/wine/ext-ms-win-oleacc-l1-1-0.%{winedll} +%{_libdir}/wine/ext-ms-win-ras-rasapi32-l1-1-0.%{winedll} +%{_libdir}/wine/ext-ms-win-rtcore-gdi-devcaps-l1-1-0.%{winedll} +%{_libdir}/wine/ext-ms-win-rtcore-gdi-object-l1-1-0.%{winedll} +%{_libdir}/wine/ext-ms-win-rtcore-gdi-rgn-l1-1-0.%{winedll} +%{_libdir}/wine/ext-ms-win-rtcore-ntuser-cursor-l1-1-0.%{winedll} +%{_libdir}/wine/ext-ms-win-rtcore-ntuser-dc-access-l1-1-0.%{winedll} +%{_libdir}/wine/ext-ms-win-rtcore-ntuser-dpi-l1-1-0.%{winedll} +%{_libdir}/wine/ext-ms-win-rtcore-ntuser-dpi-l1-2-0.%{winedll} +%{_libdir}/wine/ext-ms-win-rtcore-ntuser-rawinput-l1-1-0.%{winedll} +%{_libdir}/wine/ext-ms-win-rtcore-ntuser-syscolors-l1-1-0.%{winedll} +%{_libdir}/wine/ext-ms-win-rtcore-ntuser-sysparams-l1-1-0.%{winedll} +%{_libdir}/wine/ext-ms-win-security-credui-l1-1-0.%{winedll} +%{_libdir}/wine/ext-ms-win-security-cryptui-l1-1-0.%{winedll} +%{_libdir}/wine/ext-ms-win-shell-comctl32-init-l1-1-0.%{winedll} +%{_libdir}/wine/ext-ms-win-shell-comdlg32-l1-1-0.%{winedll} +%{_libdir}/wine/ext-ms-win-shell-shell32-l1-2-0.%{winedll} +%{_libdir}/wine/ext-ms-win-uxtheme-themes-l1-1-0.%{winedll} %if 0%{?wine_staging} %{_libdir}/wine/ext-ms-win-appmodel-usercontext-l1-1-0.dll.so %{_libdir}/wine/ext-ms-win-xaml-pal-l1-1-0.dll.so %endif -%{_libdir}/wine/faultrep.dll -%{_libdir}/wine/feclient.dll -%{_libdir}/wine/fltlib.dll -%{_libdir}/wine/fltmgr.sys -%{_libdir}/wine/fntcache.dll -%{_libdir}/wine/fontsub.dll -%{_libdir}/wine/fusion.dll -%{_libdir}/wine/fwpuclnt.dll -%{_libdir}/wine/gameux.dll +%{_libdir}/wine/faultrep.%{winedll} +%{_libdir}/wine/feclient.%{winedll} +%{_libdir}/wine/fltlib.%{winedll} +%{_libdir}/wine/fltmgr.%{winesys} +%{_libdir}/wine/fntcache.%{winedll} +%{_libdir}/wine/fontsub.%{winedll} +%{_libdir}/wine/fusion.%{winedll} +%{_libdir}/wine/fwpuclnt.%{winedll} +%{_libdir}/wine/gameux.%{winedll} %{_libdir}/wine/gdi32.dll.so -%{_libdir}/wine/gdiplus.dll +%{_libdir}/wine/gdiplus.%{winedll} %{_libdir}/wine/glu32.dll.so %{_libdir}/wine/gphoto2.ds.so -%{_libdir}/wine/gpkcsp.dll -%{_libdir}/wine/hal.dll -%{_libdir}/wine/hh.exe -%{_libdir}/wine/hhctrl.ocx -%{_libdir}/wine/hid.dll -%{_libdir}/wine/hidclass.sys -%{_libdir}/wine/hlink.dll -%{_libdir}/wine/hnetcfg.dll -%{_libdir}/wine/httpapi.dll -%{_libdir}/wine/icacls.exe -%{_libdir}/wine/iccvid.dll -%{_libdir}/wine/icinfo.exe -%{_libdir}/wine/icmp.dll -%{_libdir}/wine/ieframe.dll +%{_libdir}/wine/gpkcsp.%{winedll} +%{_libdir}/wine/hal.%{winedll} +%{_libdir}/wine/hh.%{wineexe} +%{_libdir}/wine/hhctrl.%{wineocx} +%{_libdir}/wine/hid.%{winedll} +%{_libdir}/wine/hidclass.%{winesys} +%{_libdir}/wine/hlink.%{winedll} +%{_libdir}/wine/hnetcfg.%{winedll} +%{_libdir}/wine/httpapi.%{winedll} +%{_libdir}/wine/icacls.%{wineexe} +%{_libdir}/wine/iccvid.%{winedll} +%{_libdir}/wine/icinfo.%{wineexe} +%{_libdir}/wine/icmp.%{winedll} +%{_libdir}/wine/ieframe.%{winedll} %if 0%{?wine_staging} %{_libdir}/wine/iertutil.dll.so %endif -%{_libdir}/wine/ieproxy.dll -%{_libdir}/wine/imaadp32.acm -%{_libdir}/wine/imagehlp.dll -%{_libdir}/wine/imm32.dll -%{_libdir}/wine/inetcomm.dll -%{_libdir}/wine/inetcpl.cpl -%{_libdir}/wine/inetmib1.dll -%{_libdir}/wine/infosoft.dll -%{_libdir}/wine/initpki.dll -%{_libdir}/wine/inkobj.dll -%{_libdir}/wine/inseng.dll +%{_libdir}/wine/ieproxy.%{winedll} +%{_libdir}/wine/imaadp32.%{wineacm} +%{_libdir}/wine/imagehlp.%{winedll} +%{_libdir}/wine/imm32.%{winedll} +%{_libdir}/wine/inetcomm.%{winedll} +%{_libdir}/wine/inetcpl.%{winecpl} +%{_libdir}/wine/inetmib1.%{winedll} +%{_libdir}/wine/infosoft.%{winedll} +%{_libdir}/wine/initpki.%{winedll} +%{_libdir}/wine/inkobj.%{winedll} +%{_libdir}/wine/inseng.%{winedll} %{_libdir}/wine/iphlpapi.dll.so -%{_libdir}/wine/iprop.dll -%{_libdir}/wine/irprops.cpl -%{_libdir}/wine/itircl.dll -%{_libdir}/wine/itss.dll -%{_libdir}/wine/joy.cpl -%{_libdir}/wine/jscript.dll -%{_libdir}/wine/jsproxy.dll +%{_libdir}/wine/iprop.%{winedll} +%{_libdir}/wine/irprops.%{winecpl} +%{_libdir}/wine/itircl.%{winedll} +%{_libdir}/wine/itss.%{winedll} +%{_libdir}/wine/joy.%{winecpl} +%{_libdir}/wine/jscript.%{winedll} +%{_libdir}/wine/jsproxy.%{winedll} %{_libdir}/wine/kerberos.dll.so %{_libdir}/wine/kernel32.dll.so %{_libdir}/wine/kernelbase.dll.so -%{_libdir}/wine/ksecdd.sys -%{_libdir}/wine/ksuser.dll -%{_libdir}/wine/ktmw32.dll +%{_libdir}/wine/ksecdd.%{winesys} +%{_libdir}/wine/ksuser.%{winedll} +%{_libdir}/wine/ktmw32.%{winedll} %if 0%{?fedora} > 24 %{_libdir}/wine/l3codeca.acm.so %endif -%{_libdir}/wine/loadperf.dll -%{_libdir}/wine/localspl.dll -%{_libdir}/wine/localui.dll -%{_libdir}/wine/lodctr.exe -%{_libdir}/wine/lz32.dll -%{_libdir}/wine/mapi32.dll -%{_libdir}/wine/mapistub.dll -%{_libdir}/wine/mciavi32.dll -%{_libdir}/wine/mcicda.dll -%{_libdir}/wine/mciqtz32.dll -%{_libdir}/wine/mciseq.dll -%{_libdir}/wine/mciwave.dll +%{_libdir}/wine/loadperf.%{winedll} +%{_libdir}/wine/localspl.%{winedll} +%{_libdir}/wine/localui.%{winedll} +%{_libdir}/wine/lodctr.%{wineexe} +%{_libdir}/wine/lz32.%{winedll} +%{_libdir}/wine/mapi32.%{winedll} +%{_libdir}/wine/mapistub.%{winedll} +%{_libdir}/wine/mciavi32.%{winedll} +%{_libdir}/wine/mcicda.%{winedll} +%{_libdir}/wine/mciqtz32.%{winedll} +%{_libdir}/wine/mciseq.%{winedll} +%{_libdir}/wine/mciwave.%{winedll} %{_libdir}/wine/mf.dll.so -%{_libdir}/wine/mf3216.dll -%{_libdir}/wine/mferror.dll +%{_libdir}/wine/mf3216.%{winedll} +%{_libdir}/wine/mferror.%{winedll} %{_libdir}/wine/mfplat.dll.so %{_libdir}/wine/mfplay.dll.so %{_libdir}/wine/mfreadwrite.dll.so @@ -1603,7 +1620,7 @@ fi %{_libdir}/wine/mlang.dll.so %{_libdir}/wine/mmcndmgr.dll.so %{_libdir}/wine/mmdevapi.dll.so -%{_libdir}/wine/mofcomp.exe +%{_libdir}/wine/mofcomp.%{wineexe} %{_libdir}/wine/mountmgr.sys.so %{_libdir}/wine/mp3dmod.dll.so %{_libdir}/wine/mpr.dll.so @@ -1630,7 +1647,7 @@ fi %{_libdir}/wine/msimtf.dll.so %{_libdir}/wine/msimg32.dll.so %{_libdir}/wine/msimsg.dll -%{_libdir}/wine/msinfo32.exe +%{_libdir}/wine/msinfo32.%{wineexe} %{_libdir}/wine/msisip.dll.so %{_libdir}/wine/msisys.ocx.so %{_libdir}/wine/msls31.dll.so @@ -1642,19 +1659,19 @@ fi %{_libdir}/wine/mssip32.dll.so %{_libdir}/wine/msrle32.dll.so %{_libdir}/wine/mstask.dll.so -%{_libdir}/wine/msvcirt.dll +%{_libdir}/wine/msvcirt.%{winedll} %{_libdir}/wine/msvcm80.dll.so %{_libdir}/wine/msvcm90.dll.so -%{_libdir}/wine/msvcp60.dll -%{_libdir}/wine/msvcp70.dll -%{_libdir}/wine/msvcp71.dll -%{_libdir}/wine/msvcp80.dll -%{_libdir}/wine/msvcp90.dll -%{_libdir}/wine/msvcp100.dll -%{_libdir}/wine/msvcp110.dll -%{_libdir}/wine/msvcp120.dll -%{_libdir}/wine/msvcp120_app.dll -%{_libdir}/wine/msvcp140.dll +%{_libdir}/wine/msvcp60.%{winedll} +%{_libdir}/wine/msvcp70.%{winedll} +%{_libdir}/wine/msvcp71.%{winedll} +%{_libdir}/wine/msvcp80.%{winedll} +%{_libdir}/wine/msvcp90.%{winedll} +%{_libdir}/wine/msvcp100.%{winedll} +%{_libdir}/wine/msvcp110.%{winedll} +%{_libdir}/wine/msvcp120.%{winedll} +%{_libdir}/wine/msvcp120_app.%{winedll} +%{_libdir}/wine/msvcp140.%{winedll} %{_libdir}/wine/msvcr70.dll.so %{_libdir}/wine/msvcr71.dll.so %{_libdir}/wine/msvcr80.dll.so @@ -1662,10 +1679,10 @@ fi %{_libdir}/wine/msvcr100.dll.so %{_libdir}/wine/msvcr110.dll.so %{_libdir}/wine/msvcr120.dll.so -%{_libdir}/wine/msvcr120_app.dll +%{_libdir}/wine/msvcr120_app.%{winedll} %{_libdir}/wine/msvcrt.dll.so -%{_libdir}/wine/msvcrt20.dll -%{_libdir}/wine/msvcrt40.dll +%{_libdir}/wine/msvcrt20.%{winedll} +%{_libdir}/wine/msvcrt40.%{winedll} %{_libdir}/wine/msvcrtd.dll.so %{_libdir}/wine/msvfw32.dll.so %{_libdir}/wine/msvidc32.dll.so @@ -1682,7 +1699,7 @@ fi %{_libdir}/wine/netapi32.dll.so %{_libdir}/wine/netcfgx.dll.so %{_libdir}/wine/netprofm.dll.so -%{_libdir}/wine/netsh.exe +%{_libdir}/wine/netsh.%{wineexe} %{_libdir}/wine/newdev.dll.so %{_libdir}/wine/ninput.dll.so %{_libdir}/wine/normaliz.dll.so @@ -1714,11 +1731,11 @@ fi %{_libdir}/wine/photometadatahandler.dll.so %{_libdir}/wine/pidgen.dll.so %{_libdir}/wine/powrprof.dll.so -%{_libdir}/wine/presentationfontcache.exe +%{_libdir}/wine/presentationfontcache.%{wineexe} %{_libdir}/wine/printui.dll.so %{_libdir}/wine/prntvpt.dll.so %{_libdir}/wine/propsys.dll.so -%{_libdir}/wine/psapi.dll +%{_libdir}/wine/psapi.%{winedll} %{_libdir}/wine/pstorec.dll.so %{_libdir}/wine/qcap.dll.so %{_libdir}/wine/qedit.dll.so @@ -1734,14 +1751,14 @@ fi %{_libdir}/wine/riched20.dll.so %{_libdir}/wine/riched32.dll.so %{_libdir}/wine/rpcrt4.dll.so -%{_libdir}/wine/rsabase.dll +%{_libdir}/wine/rsabase.%{winedll} %{_libdir}/wine/rsaenh.dll.so %{_libdir}/wine/rstrtmgr.dll.so %{_libdir}/wine/rtutils.dll.so %{_libdir}/wine/samlib.dll.so %{_libdir}/wine/sapi.dll.so %{_libdir}/wine/sas.dll.so -%{_libdir}/wine/sc.exe +%{_libdir}/wine/sc.%{wineexe} %{_libdir}/wine/scarddlg.dll.so %{_libdir}/wine/sccbase.dll.so %{_libdir}/wine/schannel.dll.so @@ -1754,45 +1771,45 @@ fi %{_libdir}/wine/setupapi.dll.so %{_libdir}/wine/sfc_os.dll.so %{_libdir}/wine/shcore.dll.so -%{_libdir}/wine/shdoclc.dll +%{_libdir}/wine/shdoclc.%{winedll} %{_libdir}/wine/shdocvw.dll.so %{_libdir}/wine/schedsvc.dll.so %{_libdir}/wine/shell32.dll.so -%{_libdir}/wine/shfolder.dll +%{_libdir}/wine/shfolder.%{winedll} %{_libdir}/wine/shlwapi.dll.so -%{_libdir}/wine/shutdown.exe +%{_libdir}/wine/shutdown.%{wineexe} %{_libdir}/wine/slbcsp.dll.so %{_libdir}/wine/slc.dll.so %{_libdir}/wine/snmpapi.dll.so -%{_libdir}/wine/softpub.dll -%{_libdir}/wine/spoolsv.exe +%{_libdir}/wine/softpub.%{winedll} +%{_libdir}/wine/spoolsv.%{wineexe} %{_libdir}/wine/srclient.dll.so %{_libdir}/wine/sspicli.dll.so -%{_libdir}/wine/stdole2.tlb -%{_libdir}/wine/stdole32.tlb +%{_libdir}/wine/stdole2.%{winetlb} +%{_libdir}/wine/stdole32.%{winetlb} %{_libdir}/wine/sti.dll.so %{_libdir}/wine/strmdll.dll.so -%{_libdir}/wine/subst.exe -%{_libdir}/wine/svchost.exe +%{_libdir}/wine/subst.%{wineexe} +%{_libdir}/wine/svchost.%{wineexe} %{_libdir}/wine/svrapi.dll.so %{_libdir}/wine/sxs.dll.so -%{_libdir}/wine/systeminfo.exe +%{_libdir}/wine/systeminfo.%{wineexe} %{_libdir}/wine/t2embed.dll.so %{_libdir}/wine/tapi32.dll.so -%{_libdir}/wine/taskkill.exe +%{_libdir}/wine/taskkill.%{wineexe} %{_libdir}/wine/taskschd.dll.so %{_libdir}/wine/tdh.dll.so %{_libdir}/wine/tdi.sys.so %{_libdir}/wine/traffic.dll.so -%{_libdir}/wine/tzres.dll +%{_libdir}/wine/tzres.%{winedll} %{_libdir}/wine/ucrtbase.dll.so %if 0%{?wine_staging} %{_libdir}/wine/uianimation.dll.so %endif %{_libdir}/wine/uiautomationcore.dll.so %{_libdir}/wine/uiribbon.dll.so -%{_libdir}/wine/unicows.dll -%{_libdir}/wine/unlodctr.exe +%{_libdir}/wine/unicows.%{winedll} +%{_libdir}/wine/unlodctr.%{wineexe} %{_libdir}/wine/updspapi.dll.so %{_libdir}/wine/url.dll.so %{_libdir}/wine/urlmon.dll.so @@ -1803,12 +1820,12 @@ fi %{_libdir}/wine/userenv.dll.so %{_libdir}/wine/vbscript.dll.so %{_libdir}/wine/vcomp.dll.so -%{_libdir}/wine/vcomp90.dll -%{_libdir}/wine/vcomp100.dll -%{_libdir}/wine/vcomp110.dll -%{_libdir}/wine/vcomp120.dll -%{_libdir}/wine/vcomp140.dll -%{_libdir}/wine/vcruntime140.dll +%{_libdir}/wine/vcomp90.%{winedll} +%{_libdir}/wine/vcomp100.%{winedll} +%{_libdir}/wine/vcomp110.%{winedll} +%{_libdir}/wine/vcomp120.%{winedll} +%{_libdir}/wine/vcomp140.%{winedll} +%{_libdir}/wine/vcruntime140.%{winedll} %{_libdir}/wine/vdmdbg.dll.so %{_libdir}/wine/version.dll.so %{_libdir}/wine/virtdisk.dll.so @@ -1842,8 +1859,8 @@ fi %{_libdir}/wine/winspool.drv.so %{_libdir}/wine/winsta.dll.so %{_libdir}/wine/wmasf.dll.so -%{_libdir}/wine/wmi.dll -%{_libdir}/wine/wmic.exe +%{_libdir}/wine/wmi.%{winedll} +%{_libdir}/wine/wmic.%{wineexe} %{_libdir}/wine/wmiutils.dll.so %{_libdir}/wine/wmp.dll.so %{_libdir}/wine/wmvcore.dll.so @@ -1851,7 +1868,7 @@ fi %{_libdir}/wine/winscard.dll.so %{_libdir}/wine/wintab32.dll.so %{_libdir}/wine/wintrust.dll.so -%{_libdir}/wine/winusb.dll +%{_libdir}/wine/winusb.%{winedll} %{_libdir}/wine/wlanapi.dll.so %{_libdir}/wine/wmphoto.dll.so %{_libdir}/wine/wnaspi32.dll.so @@ -1871,7 +1888,7 @@ fi %if 0%{?wine_staging} %{_libdir}/wine/wuauserv.exe.so %endif -%{_libdir}/wine/security.dll +%{_libdir}/wine/security.%{winedll} %{_libdir}/wine/sfc.dll.so %{_libdir}/wine/wineps.drv.so %{_libdir}/wine/d3d8.dll.so @@ -1879,7 +1896,7 @@ fi %{_libdir}/wine/opengl32.dll.so %{_libdir}/wine/wined3d.dll.so %{_libdir}/wine/dnsapi.dll.so -%{_libdir}/wine/iexplore.exe +%{_libdir}/wine/iexplore.%{wineexe} %{_libdir}/wine/x3daudio1_0.dll.so %{_libdir}/wine/x3daudio1_1.dll.so %{_libdir}/wine/x3daudio1_2.dll.so @@ -1903,7 +1920,7 @@ fi %{_libdir}/wine/xaudio2_7.dll.so %{_libdir}/wine/xaudio2_8.dll.so %{_libdir}/wine/xaudio2_9.dll.so -%{_libdir}/wine/xcopy.exe +%{_libdir}/wine/xcopy.%{wineexe} %{_libdir}/wine/xinput1_1.dll.so %{_libdir}/wine/xinput1_2.dll.so %{_libdir}/wine/xinput1_3.dll.so @@ -1927,10 +1944,10 @@ fi # 16 bit and other non 64bit stuff %ifnarch x86_64 %{arm} aarch64 %{_libdir}/wine/winevdm.exe.so -%{_libdir}/wine/ifsmgr.vxd.so +%{_libdir}/wine/ifsmgr.vxd %{_libdir}/wine/mmdevldr.vxd.so %{_libdir}/wine/monodebg.vxd.so -%{_libdir}/wine/rundll.exe16 +%{_libdir}/wine/rundll.exe1 %{_libdir}/wine/vdhcp.vxd.so %{_libdir}/wine/user.exe16.so %{_libdir}/wine/vmm.vxd.so @@ -1939,20 +1956,20 @@ fi %{_libdir}/wine/vtdapi.vxd.so %{_libdir}/wine/vwin32.vxd.so %{_libdir}/wine/w32skrnl.dll.so -%{_libdir}/wine/avifile.dll16.so +%{_libdir}/wine/avifile.dll16 %{_libdir}/wine/comm.drv16 -%{_libdir}/wine/commdlg.dll16.so -%{_libdir}/wine/compobj.dll16.so -%{_libdir}/wine/ctl3d.dll16.so -%{_libdir}/wine/ctl3dv2.dll16.so -%{_libdir}/wine/ddeml.dll16.so -%{_libdir}/wine/dispdib.dll16.so -%{_libdir}/wine/display.drv16.so +%{_libdir}/wine/commdlg.dll16 +%{_libdir}/wine/compobj.dll16 +%{_libdir}/wine/ctl3d.dll16 +%{_libdir}/wine/ctl3dv2.dll16 +%{_libdir}/wine/ddeml.dll16 +%{_libdir}/wine/dispdib.dll16 +%{_libdir}/wine/display.drv16 %{_libdir}/wine/gdi.exe16.so %{_libdir}/wine/imm.dll16 %{_libdir}/wine/krnl386.exe16.so -%{_libdir}/wine/keyboard.drv16.so -%{_libdir}/wine/lzexpand.dll16.so +%{_libdir}/wine/keyboard.drv16 +%{_libdir}/wine/lzexpand.dll16 %{_libdir}/wine/mmsystem.dll16.so %{_libdir}/wine/mouse.drv16.so %{_libdir}/wine/msacm.dll16.so From 9b42c9ffcd181d520cb10f0fa214a48e6c54c8b3 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Fri, 14 Jun 2019 10:45:03 -0500 Subject: [PATCH 505/715] Fix misc issues with extension macro --- wine.spec | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/wine.spec b/wine.spec index 06a8d0d..755a7f4 100644 --- a/wine.spec +++ b/wine.spec @@ -20,7 +20,7 @@ %global wineexe exe.so %global wineocx ocx.so %global winesys sys.so -%global winesys tlb.so +%global winetlb tlb.so %endif # build with wine-staging patches, see: https://github.com/wine-staging/wine-staging @@ -1641,12 +1641,12 @@ fi %{_libdir}/wine/msg711.acm.so %{_libdir}/wine/msgsm32.acm.so %{_libdir}/wine/mshtml.dll.so -%{_libdir}/wine/mshtml.tlb +%{_libdir}/wine/mshtml.%{winetlb} %{_libdir}/wine/msi.dll.so %{_libdir}/wine/msident.dll.so %{_libdir}/wine/msimtf.dll.so %{_libdir}/wine/msimg32.dll.so -%{_libdir}/wine/msimsg.dll +%{_libdir}/wine/msimsg.%{winedll} %{_libdir}/wine/msinfo32.%{wineexe} %{_libdir}/wine/msisip.dll.so %{_libdir}/wine/msisys.ocx.so @@ -1715,7 +1715,7 @@ fi %{_libdir}/wine/objsel.dll.so %{_libdir}/wine/odbc32.dll.so %{_libdir}/wine/odbccp32.dll.so -%{_libdir}/wine/odbccu32.dll +%{_libdir}/wine/odbccu32.%{winedll} %{_libdir}/wine/ole32.dll.so %{_libdir}/wine/oleacc.dll.so %{_libdir}/wine/oleaut32.dll.so @@ -1947,7 +1947,7 @@ fi %{_libdir}/wine/ifsmgr.vxd %{_libdir}/wine/mmdevldr.vxd.so %{_libdir}/wine/monodebg.vxd.so -%{_libdir}/wine/rundll.exe1 +%{_libdir}/wine/rundll.exe16 %{_libdir}/wine/vdhcp.vxd.so %{_libdir}/wine/user.exe16.so %{_libdir}/wine/vmm.vxd.so From e4adbae250e7bc6c289e2eecff4afb4584bf70f4 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 23 Jun 2019 14:55:07 -0500 Subject: [PATCH 506/715] Update to 4.11 --- .gitignore | 6 +- sources | 6 +- wine.spec | 259 +++++++++++++++++++++++++++-------------------------- 3 files changed, 138 insertions(+), 133 deletions(-) diff --git a/.gitignore b/.gitignore index a5ce089..62b2106 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-4.10.tar.xz -/wine-4.10.tar.xz.sign -/wine-staging-4.10.tar.gz +/wine-4.11.tar.xz +/wine-4.11.tar.xz.sign +/wine-staging-4.11.tar.gz diff --git a/sources b/sources index 1518c44..d7b8947 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-4.10.tar.xz) = cafc1d268719f723091429d9d8787044719f0936b00d47c6d01cef4d9c141fed7ba5b9776c1c63c68934a0a1071fb74daa0440aa52e77c4e42aca894163d6f54 -SHA512 (wine-4.10.tar.xz.sign) = 04e01276b05faee237ad7e3108d680a040348abad000f7612c43a13fa864425eb5b20173a55d0c13b21460b1518925929eb1087273637cb1dad532dc00b3cb28 -SHA512 (wine-staging-4.10.tar.gz) = f65ed761d9cbfb58aef19ea8a90c049996855a49de747f1858703e765292532dc7bb487ecfe50eb2e7e87c673507a5e287f6f80aa2d50aabe9066314809c1f03 +SHA512 (wine-4.11.tar.xz) = df4e636959f6044f92aca16dce9cb392fd6c513ccc5a19585d3de8cd7fe0a9d21b05fcfa538172f94721d0356d9ec1470b7da810fcfa70d3aae9054a48d4700b +SHA512 (wine-4.11.tar.xz.sign) = 4bb2a1fcc5ea88f24b3c6c17ffe280b9aaf6d7b0707b4f040db791e8ce1564ef1524fae9dbf51bc8800d5fab77cf8e3164d3258a4a7eb9ffd4c6ad8000a48f2b +SHA512 (wine-staging-4.11.tar.gz) = 384866aa5b2636804825ceb36b999bc1d5dd4d4693cef1b3004d9c8252dea393a02c65227d9e7b665021f19fd087025349ad720f4bbf0f061887ba5abcb74b24 diff --git a/wine.spec b/wine.spec index 755a7f4..aab3929 100644 --- a/wine.spec +++ b/wine.spec @@ -3,12 +3,13 @@ %global no64bit 0 %global winegecko 2.47 -%global winemono 4.8.3 +%global winemono 4.9.0 #global _default_patch_fuzz 2 %ifarch %{ix86} x86_64 %global wineacm acm %global winecpl cpl %global winedll dll +%global winedrv drv %global wineexe exe %global wineocx ocx %global winesys sys @@ -17,6 +18,7 @@ %global wineacm acm.so %global winecpl cpl.so %global winedll dll.so +%global winedrv drv.so %global wineexe exe.so %global wineocx ocx.so %global winesys sys.so @@ -37,7 +39,7 @@ %endif Name: wine -Version: 4.10 +Version: 4.11 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1122,7 +1124,7 @@ fi %{_libdir}/wine/net.%{wineexe} %{_libdir}/wine/netstat.%{wineexe} %{_libdir}/wine/ngen.%{wineexe} -%{_libdir}/wine/ntoskrnl.exe.so +%{_libdir}/wine/ntoskrnl.%{wineexe} %{_libdir}/wine/oleview.%{wineexe} %{_libdir}/wine/ping.%{wineexe} %{_libdir}/wine/powershell.%{wineexe} @@ -1590,7 +1592,7 @@ fi %{_libdir}/wine/jsproxy.%{winedll} %{_libdir}/wine/kerberos.dll.so %{_libdir}/wine/kernel32.dll.so -%{_libdir}/wine/kernelbase.dll.so +%{_libdir}/wine/kernelbase.%{winedll} %{_libdir}/wine/ksecdd.%{winesys} %{_libdir}/wine/ksuser.%{winedll} %{_libdir}/wine/ktmw32.%{winedll} @@ -1609,59 +1611,59 @@ fi %{_libdir}/wine/mciqtz32.%{winedll} %{_libdir}/wine/mciseq.%{winedll} %{_libdir}/wine/mciwave.%{winedll} -%{_libdir}/wine/mf.dll.so +%{_libdir}/wine/mf.%{winedll} %{_libdir}/wine/mf3216.%{winedll} %{_libdir}/wine/mferror.%{winedll} -%{_libdir}/wine/mfplat.dll.so -%{_libdir}/wine/mfplay.dll.so -%{_libdir}/wine/mfreadwrite.dll.so -%{_libdir}/wine/mgmtapi.dll.so -%{_libdir}/wine/midimap.dll.so -%{_libdir}/wine/mlang.dll.so -%{_libdir}/wine/mmcndmgr.dll.so -%{_libdir}/wine/mmdevapi.dll.so +%{_libdir}/wine/mfplat.%{winedll} +%{_libdir}/wine/mfplay.%{winedll} +%{_libdir}/wine/mfreadwrite.%{winedll} +%{_libdir}/wine/mgmtapi.%{winedll} +%{_libdir}/wine/midimap.%{winedll} +%{_libdir}/wine/mlang.%{winedll} +%{_libdir}/wine/mmcndmgr.%{winedll} +%{_libdir}/wine/mmdevapi.%{winedll} %{_libdir}/wine/mofcomp.%{wineexe} %{_libdir}/wine/mountmgr.sys.so %{_libdir}/wine/mp3dmod.dll.so -%{_libdir}/wine/mpr.dll.so -%{_libdir}/wine/mprapi.dll.so -%{_libdir}/wine/msacm32.dll.so -%{_libdir}/wine/msacm32.drv.so -%{_libdir}/wine/msadp32.acm.so -%{_libdir}/wine/msasn1.dll.so -%{_libdir}/wine/mscat32.dll.so +%{_libdir}/wine/mpr.%{winedll} +%{_libdir}/wine/mprapi.%{winedll} +%{_libdir}/wine/msacm32.%{winedll} +%{_libdir}/wine/msacm32.%{winedrv} +%{_libdir}/wine/msadp32.%{wineacm} +%{_libdir}/wine/msasn1.%{winedll} +%{_libdir}/wine/mscat32.%{winedll} %{_libdir}/wine/mscoree.dll.so -%{_libdir}/wine/msctf.dll.so -%{_libdir}/wine/msctfp.dll.so -%{_libdir}/wine/msdaps.dll.so -%{_libdir}/wine/msdelta.dll.so -%{_libdir}/wine/msdmo.dll.so -%{_libdir}/wine/msdrm.dll.so -%{_libdir}/wine/msftedit.dll.so -%{_libdir}/wine/msg711.acm.so +%{_libdir}/wine/msctf.%{winedll} +%{_libdir}/wine/msctfp.%{winedll} +%{_libdir}/wine/msdaps.%{winedll} +%{_libdir}/wine/msdelta.%{winedll} +%{_libdir}/wine/msdmo.%{winedll} +%{_libdir}/wine/msdrm.%{winedll} +%{_libdir}/wine/msftedit.%{winedll} +%{_libdir}/wine/msg711.%{wineacm} %{_libdir}/wine/msgsm32.acm.so -%{_libdir}/wine/mshtml.dll.so +%{_libdir}/wine/mshtml.%{winedll} %{_libdir}/wine/mshtml.%{winetlb} -%{_libdir}/wine/msi.dll.so -%{_libdir}/wine/msident.dll.so -%{_libdir}/wine/msimtf.dll.so -%{_libdir}/wine/msimg32.dll.so +%{_libdir}/wine/msi.%{winedll} +%{_libdir}/wine/msident.%{winedll} +%{_libdir}/wine/msimtf.%{winedll} +%{_libdir}/wine/msimg32.%{winedll} %{_libdir}/wine/msimsg.%{winedll} %{_libdir}/wine/msinfo32.%{wineexe} -%{_libdir}/wine/msisip.dll.so -%{_libdir}/wine/msisys.ocx.so -%{_libdir}/wine/msls31.dll.so -%{_libdir}/wine/msnet32.dll.so -%{_libdir}/wine/mspatcha.dll.so -%{_libdir}/wine/msports.dll.so -%{_libdir}/wine/msscript.ocx.so -%{_libdir}/wine/mssign32.dll.so -%{_libdir}/wine/mssip32.dll.so -%{_libdir}/wine/msrle32.dll.so -%{_libdir}/wine/mstask.dll.so +%{_libdir}/wine/msisip.%{winedll} +%{_libdir}/wine/msisys.%{wineocx} +%{_libdir}/wine/msls31.%{winedll} +%{_libdir}/wine/msnet32.%{winedll} +%{_libdir}/wine/mspatcha.%{winedll} +%{_libdir}/wine/msports.%{winedll} +%{_libdir}/wine/msscript.%{wineocx} +%{_libdir}/wine/mssign32.%{winedll} +%{_libdir}/wine/mssip32.%{winedll} +%{_libdir}/wine/msrle32.%{winedll} +%{_libdir}/wine/mstask.%{winedll} %{_libdir}/wine/msvcirt.%{winedll} -%{_libdir}/wine/msvcm80.dll.so -%{_libdir}/wine/msvcm90.dll.so +%{_libdir}/wine/msvcm80.%{winedll} +%{_libdir}/wine/msvcm90.%{winedll} %{_libdir}/wine/msvcp60.%{winedll} %{_libdir}/wine/msvcp70.%{winedll} %{_libdir}/wine/msvcp71.%{winedll} @@ -1684,115 +1686,115 @@ fi %{_libdir}/wine/msvcrt20.%{winedll} %{_libdir}/wine/msvcrt40.%{winedll} %{_libdir}/wine/msvcrtd.dll.so -%{_libdir}/wine/msvfw32.dll.so -%{_libdir}/wine/msvidc32.dll.so -%{_libdir}/wine/mswsock.dll.so -%{_libdir}/wine/msxml.dll.so -%{_libdir}/wine/msxml2.dll.so +%{_libdir}/wine/msvfw32.%{winedll} +%{_libdir}/wine/msvidc32.%{winedll} +%{_libdir}/wine/mswsock.%{winedll} +%{_libdir}/wine/msxml.%{winedll} +%{_libdir}/wine/msxml2.%{winedll} %{_libdir}/wine/msxml3.dll.so -%{_libdir}/wine/msxml4.dll.so -%{_libdir}/wine/msxml6.dll.so -%{_libdir}/wine/mtxdm.dll.so -%{_libdir}/wine/nddeapi.dll.so -%{_libdir}/wine/ncrypt.dll.so -%{_libdir}/wine/ndis.sys.so +%{_libdir}/wine/msxml4.%{winedll} +%{_libdir}/wine/msxml6.%{winedll} +%{_libdir}/wine/mtxdm.%{winedll} +%{_libdir}/wine/nddeapi.%{winedll} +%{_libdir}/wine/ncrypt.%{winedll} +%{_libdir}/wine/ndis.%{winesys} %{_libdir}/wine/netapi32.dll.so -%{_libdir}/wine/netcfgx.dll.so -%{_libdir}/wine/netprofm.dll.so +%{_libdir}/wine/netcfgx.%{winedll} +%{_libdir}/wine/netprofm.%{winedll} %{_libdir}/wine/netsh.%{wineexe} -%{_libdir}/wine/newdev.dll.so -%{_libdir}/wine/ninput.dll.so -%{_libdir}/wine/normaliz.dll.so -%{_libdir}/wine/npmshtml.dll.so -%{_libdir}/wine/npptools.dll.so +%{_libdir}/wine/newdev.%{winedll} +%{_libdir}/wine/ninput.%{winedll} +%{_libdir}/wine/normaliz.%{winedll} +%{_libdir}/wine/npmshtml.%{winedll} +%{_libdir}/wine/npptools.%{winedll} %{_libdir}/wine/ntdll.dll.so -%{_libdir}/wine/ntdsapi.dll.so -%{_libdir}/wine/ntprint.dll.so +%{_libdir}/wine/ntdsapi.%{winedll} +%{_libdir}/wine/ntprint.%{winedll} %if 0%{?wine_staging} %{_libdir}/wine/nvcuda.dll.so %{_libdir}/wine/nvcuvid.dll.so %endif -%{_libdir}/wine/objsel.dll.so +%{_libdir}/wine/objsel.%{winedll} %{_libdir}/wine/odbc32.dll.so -%{_libdir}/wine/odbccp32.dll.so +%{_libdir}/wine/odbccp32.%{winedll} %{_libdir}/wine/odbccu32.%{winedll} -%{_libdir}/wine/ole32.dll.so -%{_libdir}/wine/oleacc.dll.so -%{_libdir}/wine/oleaut32.dll.so -%{_libdir}/wine/olecli32.dll.so -%{_libdir}/wine/oledb32.dll.so -%{_libdir}/wine/oledlg.dll.so -%{_libdir}/wine/olepro32.dll.so -%{_libdir}/wine/olesvr32.dll.so -%{_libdir}/wine/olethk32.dll.so +%{_libdir}/wine/ole32.%{winedll} +%{_libdir}/wine/oleacc.%{winedll} +%{_libdir}/wine/oleaut32.%{winedll} +%{_libdir}/wine/olecli32.%{winedll} +%{_libdir}/wine/oledb32.%{winedll} +%{_libdir}/wine/oledlg.%{winedll} +%{_libdir}/wine/olepro32.%{winedll} +%{_libdir}/wine/olesvr32.%{winedll} +%{_libdir}/wine/olethk32.%{winedll} %{_libdir}/wine/opcservices.dll.so -%{_libdir}/wine/packager.dll.so -%{_libdir}/wine/pdh.dll.so -%{_libdir}/wine/photometadatahandler.dll.so -%{_libdir}/wine/pidgen.dll.so -%{_libdir}/wine/powrprof.dll.so +%{_libdir}/wine/packager.%{winedll} +%{_libdir}/wine/pdh.%{winedll} +%{_libdir}/wine/photometadatahandler.%{winedll} +%{_libdir}/wine/pidgen.%{winedll} +%{_libdir}/wine/powrprof.%{winedll} %{_libdir}/wine/presentationfontcache.%{wineexe} -%{_libdir}/wine/printui.dll.so -%{_libdir}/wine/prntvpt.dll.so -%{_libdir}/wine/propsys.dll.so +%{_libdir}/wine/printui.%{winedll} +%{_libdir}/wine/prntvpt.%{winedll} +%{_libdir}/wine/propsys.%{winedll} %{_libdir}/wine/psapi.%{winedll} -%{_libdir}/wine/pstorec.dll.so +%{_libdir}/wine/pstorec.%{winedll} %{_libdir}/wine/qcap.dll.so %{_libdir}/wine/qedit.dll.so -%{_libdir}/wine/qmgr.dll.so -%{_libdir}/wine/qmgrprxy.dll.so +%{_libdir}/wine/qmgr.%{winedll} +%{_libdir}/wine/qmgrprxy.%{winedll} %{_libdir}/wine/quartz.dll.so -%{_libdir}/wine/query.dll.so -%{_libdir}/wine/qwave.dll.so -%{_libdir}/wine/rasapi32.dll.so -%{_libdir}/wine/rasdlg.dll.so -%{_libdir}/wine/regapi.dll.so -%{_libdir}/wine/resutils.dll.so -%{_libdir}/wine/riched20.dll.so -%{_libdir}/wine/riched32.dll.so -%{_libdir}/wine/rpcrt4.dll.so +%{_libdir}/wine/query.%{winedll} +%{_libdir}/wine/qwave.%{winedll} +%{_libdir}/wine/rasapi32.%{winedll} +%{_libdir}/wine/rasdlg.%{winedll} +%{_libdir}/wine/regapi.%{winedll} +%{_libdir}/wine/resutils.%{winedll} +%{_libdir}/wine/riched20.%{winedll} +%{_libdir}/wine/riched32.%{winedll} +%{_libdir}/wine/rpcrt4.%{winedll} %{_libdir}/wine/rsabase.%{winedll} -%{_libdir}/wine/rsaenh.dll.so -%{_libdir}/wine/rstrtmgr.dll.so -%{_libdir}/wine/rtutils.dll.so -%{_libdir}/wine/samlib.dll.so -%{_libdir}/wine/sapi.dll.so -%{_libdir}/wine/sas.dll.so +%{_libdir}/wine/rsaenh.%{winedll} +%{_libdir}/wine/rstrtmgr.%{winedll} +%{_libdir}/wine/rtutils.%{winedll} +%{_libdir}/wine/samlib.%{winedll} +%{_libdir}/wine/sapi.%{winedll} +%{_libdir}/wine/sas.%{winedll} %{_libdir}/wine/sc.%{wineexe} -%{_libdir}/wine/scarddlg.dll.so -%{_libdir}/wine/sccbase.dll.so -%{_libdir}/wine/schannel.dll.so -%{_libdir}/wine/scrobj.dll.so -%{_libdir}/wine/scrrun.dll.so -%{_libdir}/wine/scsiport.sys.so +%{_libdir}/wine/scarddlg.%{winedll} +%{_libdir}/wine/sccbase.%{winedll} +%{_libdir}/wine/schannel.%{winedll} +%{_libdir}/wine/scrobj.%{winedll} +%{_libdir}/wine/scrrun.%{winedll} +%{_libdir}/wine/scsiport.%{winesys} %{_libdir}/wine/secur32.dll.so -%{_libdir}/wine/sensapi.dll.so -%{_libdir}/wine/serialui.dll.so +%{_libdir}/wine/sensapi.%{winedll} +%{_libdir}/wine/serialui.%{winedll} %{_libdir}/wine/setupapi.dll.so -%{_libdir}/wine/sfc_os.dll.so -%{_libdir}/wine/shcore.dll.so +%{_libdir}/wine/sfc_os.%{winedll} +%{_libdir}/wine/shcore.%{winedll} %{_libdir}/wine/shdoclc.%{winedll} -%{_libdir}/wine/shdocvw.dll.so -%{_libdir}/wine/schedsvc.dll.so +%{_libdir}/wine/shdocvw.%{winedll} +%{_libdir}/wine/schedsvc.%{winedll} %{_libdir}/wine/shell32.dll.so %{_libdir}/wine/shfolder.%{winedll} -%{_libdir}/wine/shlwapi.dll.so +%{_libdir}/wine/shlwapi.%{winedll} %{_libdir}/wine/shutdown.%{wineexe} -%{_libdir}/wine/slbcsp.dll.so -%{_libdir}/wine/slc.dll.so -%{_libdir}/wine/snmpapi.dll.so +%{_libdir}/wine/slbcsp.%{winedll} +%{_libdir}/wine/slc.%{winedll} +%{_libdir}/wine/snmpapi.%{winedll} %{_libdir}/wine/softpub.%{winedll} %{_libdir}/wine/spoolsv.%{wineexe} -%{_libdir}/wine/srclient.dll.so -%{_libdir}/wine/sspicli.dll.so +%{_libdir}/wine/srclient.%{winedll} +%{_libdir}/wine/sspicli.%{winedll} %{_libdir}/wine/stdole2.%{winetlb} %{_libdir}/wine/stdole32.%{winetlb} -%{_libdir}/wine/sti.dll.so -%{_libdir}/wine/strmdll.dll.so +%{_libdir}/wine/sti.%{winedll} +%{_libdir}/wine/strmdll.%{winedll} %{_libdir}/wine/subst.%{wineexe} %{_libdir}/wine/svchost.%{wineexe} -%{_libdir}/wine/svrapi.dll.so -%{_libdir}/wine/sxs.dll.so +%{_libdir}/wine/svrapi.%{winedll} +%{_libdir}/wine/sxs.%{winedll} %{_libdir}/wine/systeminfo.%{wineexe} %{_libdir}/wine/t2embed.dll.so %{_libdir}/wine/tapi32.dll.so @@ -1864,7 +1866,7 @@ fi %{_libdir}/wine/wmiutils.dll.so %{_libdir}/wine/wmp.dll.so %{_libdir}/wine/wmvcore.dll.so -%{_libdir}/wine/spoolss.dll.so +%{_libdir}/wine/spoolss.%{winedll} %{_libdir}/wine/winscard.dll.so %{_libdir}/wine/wintab32.dll.so %{_libdir}/wine/wintrust.dll.so @@ -1889,7 +1891,7 @@ fi %{_libdir}/wine/wuauserv.exe.so %endif %{_libdir}/wine/security.%{winedll} -%{_libdir}/wine/sfc.dll.so +%{_libdir}/wine/sfc.%{winedll} %{_libdir}/wine/wineps.drv.so %{_libdir}/wine/d3d8.dll.so %{_libdir}/wine/d3d9.dll.so @@ -2220,6 +2222,9 @@ fi %endif %changelog +* Sun Jun 23 2019 Michael Cronenworth 4.11-1 +- version update + * Thu Jun 13 2019 Michael Cronenworth 4.10-1 - version update - compile with MinGW support From 278cdd7321b5d6703ed4204b847fc516d92095b9 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 23 Jun 2019 15:26:54 -0500 Subject: [PATCH 507/715] Update for 4.11 16-bit filename changes --- wine.spec | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/wine.spec b/wine.spec index aab3929..5d46998 100644 --- a/wine.spec +++ b/wine.spec @@ -1947,8 +1947,8 @@ fi %ifnarch x86_64 %{arm} aarch64 %{_libdir}/wine/winevdm.exe.so %{_libdir}/wine/ifsmgr.vxd -%{_libdir}/wine/mmdevldr.vxd.so -%{_libdir}/wine/monodebg.vxd.so +%{_libdir}/wine/mmdevldr.vxd +%{_libdir}/wine/monodebg.vxd %{_libdir}/wine/rundll.exe16 %{_libdir}/wine/vdhcp.vxd.so %{_libdir}/wine/user.exe16.so @@ -1972,25 +1972,25 @@ fi %{_libdir}/wine/krnl386.exe16.so %{_libdir}/wine/keyboard.drv16 %{_libdir}/wine/lzexpand.dll16 -%{_libdir}/wine/mmsystem.dll16.so -%{_libdir}/wine/mouse.drv16.so -%{_libdir}/wine/msacm.dll16.so -%{_libdir}/wine/msvideo.dll16.so -%{_libdir}/wine/ole2.dll16.so +%{_libdir}/wine/mmsystem.dll16 +%{_libdir}/wine/mouse.drv16 +%{_libdir}/wine/msacm.dll16 +%{_libdir}/wine/msvideo.dll16 +%{_libdir}/wine/ole2.dll16 %{_libdir}/wine/ole2conv.dll16 -%{_libdir}/wine/ole2disp.dll16.so -%{_libdir}/wine/ole2nls.dll16.so +%{_libdir}/wine/ole2disp.dll16 +%{_libdir}/wine/ole2nls.dll16 %{_libdir}/wine/ole2prox.dll16 %{_libdir}/wine/ole2thk.dll16 -%{_libdir}/wine/olecli.dll16.so -%{_libdir}/wine/olesvr.dll16.so +%{_libdir}/wine/olecli.dll16 +%{_libdir}/wine/olesvr.dll16 %{_libdir}/wine/rasapi16.dll16 -%{_libdir}/wine/setupx.dll16.so -%{_libdir}/wine/shell.dll16.so -%{_libdir}/wine/sound.drv16.so -%{_libdir}/wine/storage.dll16.so -%{_libdir}/wine/stress.dll16.so -%{_libdir}/wine/system.drv16.so +%{_libdir}/wine/setupx.dll16 +%{_libdir}/wine/shell.dll16 +%{_libdir}/wine/sound.drv16 +%{_libdir}/wine/storage.dll16 +%{_libdir}/wine/stress.dll16 +%{_libdir}/wine/system.drv16 %{_libdir}/wine/toolhelp.dll16.so %{_libdir}/wine/twain.dll16.so %{_libdir}/wine/typelib.dll16.so From 1c81e64eba243fa433e647a63f991821ecdde536 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 6 Jul 2019 16:36:28 -0500 Subject: [PATCH 508/715] Update to 4.12 --- .gitignore | 6 +- sources | 6 +- wine.spec | 197 +++++++++++++++++++++++++++-------------------------- 3 files changed, 106 insertions(+), 103 deletions(-) diff --git a/.gitignore b/.gitignore index 62b2106..9f9e6a2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-4.11.tar.xz -/wine-4.11.tar.xz.sign -/wine-staging-4.11.tar.gz +/wine-4.12.tar.xz +/wine-4.12.tar.xz.sign +/wine-staging-4.12.tar.gz diff --git a/sources b/sources index d7b8947..8ebe217 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-4.11.tar.xz) = df4e636959f6044f92aca16dce9cb392fd6c513ccc5a19585d3de8cd7fe0a9d21b05fcfa538172f94721d0356d9ec1470b7da810fcfa70d3aae9054a48d4700b -SHA512 (wine-4.11.tar.xz.sign) = 4bb2a1fcc5ea88f24b3c6c17ffe280b9aaf6d7b0707b4f040db791e8ce1564ef1524fae9dbf51bc8800d5fab77cf8e3164d3258a4a7eb9ffd4c6ad8000a48f2b -SHA512 (wine-staging-4.11.tar.gz) = 384866aa5b2636804825ceb36b999bc1d5dd4d4693cef1b3004d9c8252dea393a02c65227d9e7b665021f19fd087025349ad720f4bbf0f061887ba5abcb74b24 +SHA512 (wine-4.12.tar.xz) = 01f330b3bb795a4bfdd440c4bb349b94db8456bd88c828e92f73752feaca86adce0c9e47e989195d65d3a97b822805df2274d4a790b5cb86e3bc2819ce987f4d +SHA512 (wine-4.12.tar.xz.sign) = cc3b0f2933b7771312e1bcc681f0d59796d22265a1a7547f7b4ac53d54b7e5bebc2061293c6dabef39168ab0ea435c506697946c203422b2c3a8e593968530c0 +SHA512 (wine-staging-4.12.tar.gz) = 6401169158204bbd82576000f9eca55b551f829c475243fd6169865892b676e8f0c9b96d4399ab06259271616ba241442b345412f2bf6ad08df9e81d3e0f53c7 diff --git a/wine.spec b/wine.spec index 5d46998..d0d89a3 100644 --- a/wine.spec +++ b/wine.spec @@ -39,7 +39,7 @@ %endif Name: wine -Version: 4.11 +Version: 4.12 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1145,7 +1145,7 @@ fi %{_libdir}/wine/termsv.%{wineexe} %{_libdir}/wine/view.%{wineexe} %{_libdir}/wine/wevtutil.%{wineexe} -%{_libdir}/wine/wineboot.exe.so +%{_libdir}/wine/wineboot.%{wineexe} %{_libdir}/wine/winebrowser.exe.so %{_libdir}/wine/wineconsole.exe.so %{_libdir}/wine/winemenubuilder.exe.so @@ -1383,7 +1383,7 @@ fi %{_libdir}/wine/api-ms-win-shell-shellcom-l1-1-0.%{winedll} %{_libdir}/wine/api-ms-win-shell-shellfolders-l1-1-0.%{winedll} %{_libdir}/wine/apphelp.%{winedll} -%{_libdir}/wine/appwiz.cpl.so +%{_libdir}/wine/appwiz.%{winecpl} %{_libdir}/wine/atl.%{winedll} %{_libdir}/wine/atl80.%{winedll} %{_libdir}/wine/atl90.%{winedll} @@ -1427,9 +1427,9 @@ fi %{_libdir}/wine/d3d10.%{winedll} %{_libdir}/wine/d3d10_1.%{winedll} %{_libdir}/wine/d3d10core.%{winedll} -%{_libdir}/wine/d3d11.dll.so +%{_libdir}/wine/d3d11.%{winedll} %{_libdir}/wine/d3d12.dll.so -%{_libdir}/wine/d3dcompiler_*.dll.so +%{_libdir}/wine/d3dcompiler_*.%{winedll} %{_libdir}/wine/d3dim.%{winedll} %{_libdir}/wine/d3drm.%{winedll} %{_libdir}/wine/d3dx9_*.%{winedll} @@ -1441,7 +1441,7 @@ fi %{_libdir}/wine/dbgeng.%{winedll} %{_libdir}/wine/dbghelp.dll.so %{_libdir}/wine/dciman32.%{winedll} -%{_libdir}/wine/ddraw.dll.so +%{_libdir}/wine/ddraw.%{winedll} %{_libdir}/wine/ddrawex.%{winedll} %{_libdir}/wine/devenum.%{winedll} %{_libdir}/wine/dhcpcsvc.%{winedll} @@ -1632,7 +1632,7 @@ fi %{_libdir}/wine/msadp32.%{wineacm} %{_libdir}/wine/msasn1.%{winedll} %{_libdir}/wine/mscat32.%{winedll} -%{_libdir}/wine/mscoree.dll.so +%{_libdir}/wine/mscoree.%{winedll} %{_libdir}/wine/msctf.%{winedll} %{_libdir}/wine/msctfp.%{winedll} %{_libdir}/wine/msdaps.%{winedll} @@ -1770,7 +1770,7 @@ fi %{_libdir}/wine/secur32.dll.so %{_libdir}/wine/sensapi.%{winedll} %{_libdir}/wine/serialui.%{winedll} -%{_libdir}/wine/setupapi.dll.so +%{_libdir}/wine/setupapi.%{winedll} %{_libdir}/wine/sfc_os.%{winedll} %{_libdir}/wine/shcore.%{winedll} %{_libdir}/wine/shdoclc.%{winedll} @@ -1796,105 +1796,105 @@ fi %{_libdir}/wine/svrapi.%{winedll} %{_libdir}/wine/sxs.%{winedll} %{_libdir}/wine/systeminfo.%{wineexe} -%{_libdir}/wine/t2embed.dll.so -%{_libdir}/wine/tapi32.dll.so +%{_libdir}/wine/t2embed.%{winedll} +%{_libdir}/wine/tapi32.%{winedll} %{_libdir}/wine/taskkill.%{wineexe} -%{_libdir}/wine/taskschd.dll.so -%{_libdir}/wine/tdh.dll.so -%{_libdir}/wine/tdi.sys.so -%{_libdir}/wine/traffic.dll.so +%{_libdir}/wine/taskschd.%{winedll} +%{_libdir}/wine/tdh.%{winedll} +%{_libdir}/wine/tdi.%{winesys} +%{_libdir}/wine/traffic.%{winedll} %{_libdir}/wine/tzres.%{winedll} %{_libdir}/wine/ucrtbase.dll.so %if 0%{?wine_staging} -%{_libdir}/wine/uianimation.dll.so +%{_libdir}/wine/uianimation.%{winedll} %endif -%{_libdir}/wine/uiautomationcore.dll.so -%{_libdir}/wine/uiribbon.dll.so +%{_libdir}/wine/uiautomationcore.%{winedll} +%{_libdir}/wine/uiribbon.%{winedll} %{_libdir}/wine/unicows.%{winedll} %{_libdir}/wine/unlodctr.%{wineexe} -%{_libdir}/wine/updspapi.dll.so -%{_libdir}/wine/url.dll.so -%{_libdir}/wine/urlmon.dll.so -%{_libdir}/wine/usbd.sys.so +%{_libdir}/wine/updspapi.%{winedll} +%{_libdir}/wine/url.%{winedll} +%{_libdir}/wine/urlmon.%{winedll} +%{_libdir}/wine/usbd.%{winesys} %{_libdir}/wine/user32.dll.so -%{_libdir}/wine/usp10.dll.so +%{_libdir}/wine/usp10.%{winedll} %{_libdir}/wine/uxtheme.dll.so -%{_libdir}/wine/userenv.dll.so -%{_libdir}/wine/vbscript.dll.so -%{_libdir}/wine/vcomp.dll.so +%{_libdir}/wine/userenv.%{winedll} +%{_libdir}/wine/vbscript.%{winedll} +%{_libdir}/wine/vcomp.%{winedll} %{_libdir}/wine/vcomp90.%{winedll} %{_libdir}/wine/vcomp100.%{winedll} %{_libdir}/wine/vcomp110.%{winedll} %{_libdir}/wine/vcomp120.%{winedll} %{_libdir}/wine/vcomp140.%{winedll} %{_libdir}/wine/vcruntime140.%{winedll} -%{_libdir}/wine/vdmdbg.dll.so -%{_libdir}/wine/version.dll.so -%{_libdir}/wine/virtdisk.dll.so -%{_libdir}/wine/vssapi.dll.so -%{_libdir}/wine/vulkan-1.dll.so -%{_libdir}/wine/wbemdisp.dll.so -%{_libdir}/wine/wbemprox.dll.so -%{_libdir}/wine/wdscore.dll.so -%{_libdir}/wine/webservices.dll.so -%{_libdir}/wine/wer.dll.so -%{_libdir}/wine/wevtapi.dll.so -%{_libdir}/wine/wiaservc.dll.so -%{_libdir}/wine/wimgapi.dll.so +%{_libdir}/wine/vdmdbg.%{winedll} +%{_libdir}/wine/version.%{winedll} +%{_libdir}/wine/virtdisk.%{winedll} +%{_libdir}/wine/vssapi.%{winedll} +%{_libdir}/wine/vulkan-1.%{winedll} +%{_libdir}/wine/wbemdisp.%{winedll} +%{_libdir}/wine/wbemprox.%{winedll} +%{_libdir}/wine/wdscore.%{winedll} +%{_libdir}/wine/webservices.%{winedll} +%{_libdir}/wine/wer.%{winedll} +%{_libdir}/wine/wevtapi.%{winedll} +%{_libdir}/wine/wiaservc.%{winedll} +%{_libdir}/wine/wimgapi.%{winedll} %if 0%{?wine_staging} %{_libdir}/wine/win32k.sys.so %endif %{_libdir}/wine/windowscodecs.dll.so -%{_libdir}/wine/windowscodecsext.dll.so +%{_libdir}/wine/windowscodecsext.%{winedll} %{_libdir}/wine/winebus.sys.so %{_libdir}/wine/winegstreamer.dll.so -%{_libdir}/wine/winehid.sys.so +%{_libdir}/wine/winehid.%{winesys} %{_libdir}/wine/winejoystick.drv.so -%{_libdir}/wine/winemapi.dll.so +%{_libdir}/wine/winemapi.%{winedll} %{_libdir}/wine/winevulkan.dll.so %{_libdir}/wine/winex11.drv.so -%{_libdir}/wine/wing32.dll.so +%{_libdir}/wine/wing32.%{winedll} %{_libdir}/wine/winhttp.dll.so %{_libdir}/wine/wininet.dll.so -%{_libdir}/wine/winmm.dll.so -%{_libdir}/wine/winnls32.dll.so +%{_libdir}/wine/winmm.%{winedll} +%{_libdir}/wine/winnls32.%{winedll} %{_libdir}/wine/winspool.drv.so -%{_libdir}/wine/winsta.dll.so -%{_libdir}/wine/wmasf.dll.so +%{_libdir}/wine/winsta.%{winedll} +%{_libdir}/wine/wmasf.%{winedll} %{_libdir}/wine/wmi.%{winedll} %{_libdir}/wine/wmic.%{wineexe} -%{_libdir}/wine/wmiutils.dll.so -%{_libdir}/wine/wmp.dll.so -%{_libdir}/wine/wmvcore.dll.so +%{_libdir}/wine/wmiutils.%{winedll} +%{_libdir}/wine/wmp.%{winedll} +%{_libdir}/wine/wmvcore.%{winedll} %{_libdir}/wine/spoolss.%{winedll} -%{_libdir}/wine/winscard.dll.so -%{_libdir}/wine/wintab32.dll.so -%{_libdir}/wine/wintrust.dll.so +%{_libdir}/wine/winscard.%{winedll} +%{_libdir}/wine/wintab32.%{winedll} +%{_libdir}/wine/wintrust.%{winedll} %{_libdir}/wine/winusb.%{winedll} -%{_libdir}/wine/wlanapi.dll.so -%{_libdir}/wine/wmphoto.dll.so +%{_libdir}/wine/wlanapi.%{winedll} +%{_libdir}/wine/wmphoto.%{winedll} %{_libdir}/wine/wnaspi32.dll.so %if 0%{?wine_staging} %{_libdir}/wine/wow64cpu.dll.so %endif -%{_libdir}/wine/wpc.dll.so +%{_libdir}/wine/wpc.%{winedll} %{_libdir}/wine/wpcap.dll.so %{_libdir}/wine/ws2_32.dll.so -%{_libdir}/wine/wsdapi.dll.so -%{_libdir}/wine/wshom.ocx.so -%{_libdir}/wine/wsnmp32.dll.so -%{_libdir}/wine/wsock32.dll.so -%{_libdir}/wine/wtsapi32.dll.so -%{_libdir}/wine/wuapi.dll.so -%{_libdir}/wine/wuaueng.dll.so +%{_libdir}/wine/wsdapi.%{winedll} +%{_libdir}/wine/wshom.%{wineocx} +%{_libdir}/wine/wsnmp32.%{winedll} +%{_libdir}/wine/wsock32.%{winedll} +%{_libdir}/wine/wtsapi32.%{winedll} +%{_libdir}/wine/wuapi.%{winedll} +%{_libdir}/wine/wuaueng.%{winedll} %if 0%{?wine_staging} %{_libdir}/wine/wuauserv.exe.so %endif %{_libdir}/wine/security.%{winedll} %{_libdir}/wine/sfc.%{winedll} -%{_libdir}/wine/wineps.drv.so -%{_libdir}/wine/d3d8.dll.so -%{_libdir}/wine/d3d9.dll.so +%{_libdir}/wine/wineps.%{winedrv} +%{_libdir}/wine/d3d8.%{winedll} +%{_libdir}/wine/d3d9.%{winedll} %{_libdir}/wine/opengl32.dll.so %{_libdir}/wine/wined3d.dll.so %{_libdir}/wine/dnsapi.dll.so @@ -1923,15 +1923,15 @@ fi %{_libdir}/wine/xaudio2_8.dll.so %{_libdir}/wine/xaudio2_9.dll.so %{_libdir}/wine/xcopy.%{wineexe} -%{_libdir}/wine/xinput1_1.dll.so -%{_libdir}/wine/xinput1_2.dll.so -%{_libdir}/wine/xinput1_3.dll.so -%{_libdir}/wine/xinput1_4.dll.so -%{_libdir}/wine/xinput9_1_0.dll.so -%{_libdir}/wine/xmllite.dll.so -%{_libdir}/wine/xolehlp.dll.so -%{_libdir}/wine/xpsprint.dll.so -%{_libdir}/wine/xpssvcs.dll.so +%{_libdir}/wine/xinput1_1.%{winedll} +%{_libdir}/wine/xinput1_2.%{winedll} +%{_libdir}/wine/xinput1_3.%{winedll} +%{_libdir}/wine/xinput1_4.%{winedll} +%{_libdir}/wine/xinput9_1_0.%{winedll} +%{_libdir}/wine/xmllite.%{winedll} +%{_libdir}/wine/xolehlp.%{winedll} +%{_libdir}/wine/xpsprint.%{winedll} +%{_libdir}/wine/xpssvcs.%{winedll} %if 0%{?wine_staging} %ifarch x86_64 aarch64 @@ -1950,14 +1950,14 @@ fi %{_libdir}/wine/mmdevldr.vxd %{_libdir}/wine/monodebg.vxd %{_libdir}/wine/rundll.exe16 -%{_libdir}/wine/vdhcp.vxd.so -%{_libdir}/wine/user.exe16.so -%{_libdir}/wine/vmm.vxd.so -%{_libdir}/wine/vnbt.vxd.so -%{_libdir}/wine/vnetbios.vxd.so -%{_libdir}/wine/vtdapi.vxd.so -%{_libdir}/wine/vwin32.vxd.so -%{_libdir}/wine/w32skrnl.dll.so +%{_libdir}/wine/vdhcp.vxd +%{_libdir}/wine/user.exe16 +%{_libdir}/wine/vmm.vxd +%{_libdir}/wine/vnbt.vxd +%{_libdir}/wine/vnetbios.vxd +%{_libdir}/wine/vtdapi.vxd +%{_libdir}/wine/vwin32.vxd +%{_libdir}/wine/w32skrnl.dll %{_libdir}/wine/avifile.dll16 %{_libdir}/wine/comm.drv16 %{_libdir}/wine/commdlg.dll16 @@ -1991,23 +1991,23 @@ fi %{_libdir}/wine/storage.dll16 %{_libdir}/wine/stress.dll16 %{_libdir}/wine/system.drv16 -%{_libdir}/wine/toolhelp.dll16.so -%{_libdir}/wine/twain.dll16.so -%{_libdir}/wine/typelib.dll16.so -%{_libdir}/wine/ver.dll16.so -%{_libdir}/wine/w32sys.dll16.so -%{_libdir}/wine/win32s16.dll16.so -%{_libdir}/wine/win87em.dll16.so +%{_libdir}/wine/toolhelp.dll16 +%{_libdir}/wine/twain.dll16 +%{_libdir}/wine/typelib.dll16 +%{_libdir}/wine/ver.dll16 +%{_libdir}/wine/w32sys.dll16 +%{_libdir}/wine/win32s16.dll16 +%{_libdir}/wine/win87em.dll16 %{_libdir}/wine/winaspi.dll16.so -%{_libdir}/wine/windebug.dll16.so -%{_libdir}/wine/wineps16.drv16.so -%{_libdir}/wine/wing.dll16.so +%{_libdir}/wine/windebug.dll16 +%{_libdir}/wine/wineps16.drv16 +%{_libdir}/wine/wing.dll16 %{_libdir}/wine/winhelp.exe16 -%{_libdir}/wine/winnls.dll16.so +%{_libdir}/wine/winnls.dll16 %{_libdir}/wine/winoldap.mod16 -%{_libdir}/wine/winsock.dll16.so -%{_libdir}/wine/wintab.dll16.so -%{_libdir}/wine/wow32.dll.so +%{_libdir}/wine/winsock.dll16 +%{_libdir}/wine/wintab.dll16 +%{_libdir}/wine/wow32.dll %endif %files filesystem @@ -2169,7 +2169,7 @@ fi # twain subpackage %files twain -%{_libdir}/wine/twain_32.dll.so +%{_libdir}/wine/twain_32.%{winedll} %{_libdir}/wine/sane.ds.so # capi subpackage @@ -2222,6 +2222,9 @@ fi %endif %changelog +* Sat Jul 06 2019 Michael Cronenworth 4.12-1 +- version update + * Sun Jun 23 2019 Michael Cronenworth 4.11-1 - version update From f8028d1e0e3d615eae716b1f737c08a11d1c59c3 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 10 Jul 2019 22:11:18 -0500 Subject: [PATCH 509/715] Update to 4.12.1 Never released 4.12 as it would not compile --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index 9f9e6a2..d1b2aa3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-4.12.tar.xz -/wine-4.12.tar.xz.sign -/wine-staging-4.12.tar.gz +/wine-4.12.1.tar.xz +/wine-4.12.1.tar.xz.sign +/wine-staging-4.12.1.tar.gz diff --git a/sources b/sources index 8ebe217..00a3033 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-4.12.tar.xz) = 01f330b3bb795a4bfdd440c4bb349b94db8456bd88c828e92f73752feaca86adce0c9e47e989195d65d3a97b822805df2274d4a790b5cb86e3bc2819ce987f4d -SHA512 (wine-4.12.tar.xz.sign) = cc3b0f2933b7771312e1bcc681f0d59796d22265a1a7547f7b4ac53d54b7e5bebc2061293c6dabef39168ab0ea435c506697946c203422b2c3a8e593968530c0 -SHA512 (wine-staging-4.12.tar.gz) = 6401169158204bbd82576000f9eca55b551f829c475243fd6169865892b676e8f0c9b96d4399ab06259271616ba241442b345412f2bf6ad08df9e81d3e0f53c7 +SHA512 (wine-4.12.1.tar.xz) = 5d226aa4f24c59949c88d377d8f3d38839179e473b7e5bbf029af8142dfa23fd046ca919b63c8c8fc7e1a46077a860d3dab9d2e040f0367c85c8d386707222c1 +SHA512 (wine-4.12.1.tar.xz.sign) = 28e6f64531b7f0e566424ce50f61c4115f3923c1182c726ba252ae890c1f038d94551fdddb93d7ba791c28b064e858b1c24e84417b66f6175d98581284eb0535 +SHA512 (wine-staging-4.12.1.tar.gz) = 804e99567632326f5ea55fd86c4ed236da3b3636b0aaf5dbf4427694b0786326bd048fbb119b37fc66d4072dacec9ac354b804ad372cad69cbf086360eaedc38 diff --git a/wine.spec b/wine.spec index d0d89a3..3e7248c 100644 --- a/wine.spec +++ b/wine.spec @@ -39,7 +39,7 @@ %endif Name: wine -Version: 4.12 +Version: 4.12.1 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -2222,7 +2222,7 @@ fi %endif %changelog -* Sat Jul 06 2019 Michael Cronenworth 4.12-1 +* Wed Jul 10 2019 Michael Cronenworth 4.12.1-1 - version update * Sun Jun 23 2019 Michael Cronenworth 4.11-1 From 69e3ff2cdef8ad79f5d1cae971ba6ee3e312f8bc Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 27 Jul 2019 03:30:32 +0000 Subject: [PATCH 510/715] - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- wine.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 3e7248c..4b918bd 100644 --- a/wine.spec +++ b/wine.spec @@ -40,7 +40,7 @@ Name: wine Version: 4.12.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -2222,6 +2222,9 @@ fi %endif %changelog +* Sat Jul 27 2019 Fedora Release Engineering - 4.12.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + * Wed Jul 10 2019 Michael Cronenworth 4.12.1-1 - version update From deb96a25db1b4990068051db0f9d73641db758bf Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 4 Aug 2019 03:02:16 -0500 Subject: [PATCH 511/715] Update to 4.13 and add alternatives support for some d3d dlls --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 61 ++++++++++++++++++++++++++++++++++++++++++------------ 3 files changed, 54 insertions(+), 19 deletions(-) diff --git a/.gitignore b/.gitignore index d1b2aa3..58dcbce 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-4.12.1.tar.xz -/wine-4.12.1.tar.xz.sign -/wine-staging-4.12.1.tar.gz +/wine-4.13.tar.xz +/wine-4.13.tar.xz.sign +/wine-staging-4.13.tar.gz diff --git a/sources b/sources index 00a3033..60a21ae 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-4.12.1.tar.xz) = 5d226aa4f24c59949c88d377d8f3d38839179e473b7e5bbf029af8142dfa23fd046ca919b63c8c8fc7e1a46077a860d3dab9d2e040f0367c85c8d386707222c1 -SHA512 (wine-4.12.1.tar.xz.sign) = 28e6f64531b7f0e566424ce50f61c4115f3923c1182c726ba252ae890c1f038d94551fdddb93d7ba791c28b064e858b1c24e84417b66f6175d98581284eb0535 -SHA512 (wine-staging-4.12.1.tar.gz) = 804e99567632326f5ea55fd86c4ed236da3b3636b0aaf5dbf4427694b0786326bd048fbb119b37fc66d4072dacec9ac354b804ad372cad69cbf086360eaedc38 +SHA512 (wine-4.13.tar.xz) = b359db3c99d10b489f7f72172b624e7b2e2b826c206e842a524d781ab5947e2b03623a115c2345fc71df22eb508936c2f7667d4c420a2fb6cdc34e3d2ba5e75b +SHA512 (wine-4.13.tar.xz.sign) = 7a51a13f39acb5f4a4ffc1dc1c821890b39f66a5a427933841015bd2f92c3b92ac5e50eb4c7c501cf2fd8b7738179407c1c70b5b58b7ab6ad4860c1bb4f60130 +SHA512 (wine-staging-4.13.tar.gz) = a5240b3999b1ba605d16148022e57a4574c0e9288763a5c4a259ea06c3a7152af8b136b0e2b8a74b1a40fb6adaf5ce012695160afdd5364fa1b4c7a903fd82b1 diff --git a/wine.spec b/wine.spec index 4b918bd..1fe45bc 100644 --- a/wine.spec +++ b/wine.spec @@ -39,8 +39,8 @@ %endif Name: wine -Version: 4.12.1 -Release: 2%{?dist} +Version: 4.13 +Release: 1%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -677,11 +677,7 @@ This package adds the opencl driver for wine. gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 # Disable XAudio patchsets in favor of FAudio -patches/patchinstall.sh DESTDIR="`pwd`" --all \ - -W xaudio2-revert \ - -W xaudio2_CommitChanges \ - -W xaudio2_7-CreateFX-FXEcho \ - -W xaudio2_7-WMA_support +patches/patchinstall.sh DESTDIR="`pwd`" --all # fix parallelized build sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in @@ -745,6 +741,18 @@ touch %{buildroot}%{_bindir}/wine touch %{buildroot}%{_bindir}/wine-preloader %endif touch %{buildroot}%{_bindir}/wineserver +mv %{buildroot}%{_libdir}/wine/dxgi.dll.so %{buildroot}%{_libdir}/wine/wine-dxgi.dll.so +mv %{buildroot}%{_libdir}/wine/d3d9.%{winedll} %{buildroot}%{_libdir}/wine/wine-d3d9.%{winedll} +mv %{buildroot}%{_libdir}/wine/d3d10.%{winedll} %{buildroot}%{_libdir}/wine/wine-d3d10.%{winedll} +mv %{buildroot}%{_libdir}/wine/d3d10_1.%{winedll} %{buildroot}%{_libdir}/wine/wine-d3d10_1.%{winedll} +mv %{buildroot}%{_libdir}/wine/d3d10core.%{winedll} %{buildroot}%{_libdir}/wine/wine-d3d10core.%{winedll} +mv %{buildroot}%{_libdir}/wine/d3d11.%{winedll} %{buildroot}%{_libdir}/wine/wine-d3d11.%{winedll} +touch %{buildroot}%{_libdir}/wine/dxgi.dll.so +touch %{buildroot}%{_libdir}/wine/d3d9.%{winedll} +touch %{buildroot}%{_libdir}/wine/d3d10.%{winedll} +touch %{buildroot}%{_libdir}/wine/d3d10_1.%{winedll} +touch %{buildroot}%{_libdir}/wine/d3d10core.%{winedll} +touch %{buildroot}%{_libdir}/wine/d3d11.%{winedll} # remove rpath chrpath --delete %{buildroot}%{_bindir}/wmc @@ -1004,6 +1012,16 @@ fi wineserver %{_bindir}/wineserver32 10 %endif %endif +%{_sbindir}/alternatives --install %{_libdir}/wine/dxgi.dll.so \ + wine-dxgi %{_libdir}/wine/wine-dxgi.dll.so 10 +%{_sbindir}/alternatives --install %{_libdir}/wine/d3d9.%{winedll} \ + wine-d3d9 %{_libdir}/wine/wine-d3d9.%{winedll} 10 +%{_sbindir}/alternatives --install %{_libdir}/wine/d3d10.%{winedll} \ + wine-d3d10 %{_libdir}/wine/wine-d3d10.%{winedll} 10 \ + --slave %{_libdir}/wine/d3d10_1.%{winedll} wine-d3d10_1 %{_libdir}/wine/wine-d3d10_1.%{winedll} \ + --slave %{_libdir}/wine/d3d10core.%{winedll} wine-d3d10core %{_libdir}/wine/wine-d3d10core.%{winedll} +%{_sbindir}/alternatives --install %{_libdir}/wine/d3d11.%{winedll} \ + wine-d3d11 %{_libdir}/wine/wine-d3d11.%{winedll} 10 %postun core %{?ldconfig} @@ -1015,6 +1033,10 @@ if [ $1 -eq 0 ] ; then %{_sbindir}/alternatives --remove wine %{_bindir}/wine32 %{_sbindir}/alternatives --remove wineserver %{_bindir}/wineserver32 %endif + %{_sbindir}/alternatives --remove wine-dxgi %{_libdir}/wine/wine-dxgi.dll.so + %{_sbindir}/alternatives --remove wine-d3d9 %{_libdir}/wine/wine-d3d9.%{winedll} + %{_sbindir}/alternatives --remove wine-d3d10 %{_libdir}/wine/wine-d3d10.%{winedll} + %{_sbindir}/alternatives --remove wine-d3d11 %{_libdir}/wine/wine-d3d11.%{winedll} fi %ldconfig_scriptlets ldap @@ -1427,7 +1449,11 @@ fi %{_libdir}/wine/d3d10.%{winedll} %{_libdir}/wine/d3d10_1.%{winedll} %{_libdir}/wine/d3d10core.%{winedll} +%{_libdir}/wine/wine-d3d10.%{winedll} +%{_libdir}/wine/wine-d3d10_1.%{winedll} +%{_libdir}/wine/wine-d3d10core.%{winedll} %{_libdir}/wine/d3d11.%{winedll} +%{_libdir}/wine/wine-d3d11.%{winedll} %{_libdir}/wine/d3d12.dll.so %{_libdir}/wine/d3dcompiler_*.%{winedll} %{_libdir}/wine/d3dim.%{winedll} @@ -1449,6 +1475,7 @@ fi %{_libdir}/wine/difxapi.%{winedll} %{_libdir}/wine/dinput.dll.so %{_libdir}/wine/dinput8.dll.so +%{_libdir}/wine/directmanipulation.%{winedll} %{_libdir}/wine/dispex.%{winedll} %{_libdir}/wine/dmband.%{winedll} %{_libdir}/wine/dmcompos.%{winedll} @@ -1477,13 +1504,14 @@ fi %{_libdir}/wine/dx8vb.%{winedll} %{_libdir}/wine/dxdiagn.%{winedll} %{_libdir}/wine/dxgi.dll.so +%{_libdir}/wine/wine-dxgi.dll.so %if 0%{?wine_staging} -%{_libdir}/wine/dxgkrnl.sys.so -%{_libdir}/wine/dxgmms1.sys.so +%{_libdir}/wine/dxgkrnl.%{winesys} +%{_libdir}/wine/dxgmms1.%{winesys} %endif %{_libdir}/wine/dxva2.dll.so %{_libdir}/wine/esent.%{winedll} -%{_libdir}/wine/evr.dll.so +%{_libdir}/wine/evr.%{winedll} %{_libdir}/wine/explorerframe.%{winedll} %{_libdir}/wine/ext-ms-win-authz-context-l1-1-0.%{winedll} %{_libdir}/wine/ext-ms-win-domainjoin-netjoin-l1-1-0.%{winedll} @@ -1633,6 +1661,7 @@ fi %{_libdir}/wine/msasn1.%{winedll} %{_libdir}/wine/mscat32.%{winedll} %{_libdir}/wine/mscoree.%{winedll} +%{_libdir}/wine/mscorwks.%{winedll} %{_libdir}/wine/msctf.%{winedll} %{_libdir}/wine/msctfp.%{winedll} %{_libdir}/wine/msdaps.%{winedll} @@ -1740,7 +1769,7 @@ fi %{_libdir}/wine/psapi.%{winedll} %{_libdir}/wine/pstorec.%{winedll} %{_libdir}/wine/qcap.dll.so -%{_libdir}/wine/qedit.dll.so +%{_libdir}/wine/qedit.%{winedll} %{_libdir}/wine/qmgr.%{winedll} %{_libdir}/wine/qmgrprxy.%{winedll} %{_libdir}/wine/quartz.dll.so @@ -1842,7 +1871,7 @@ fi %{_libdir}/wine/wiaservc.%{winedll} %{_libdir}/wine/wimgapi.%{winedll} %if 0%{?wine_staging} -%{_libdir}/wine/win32k.sys.so +%{_libdir}/wine/win32k.%{winesys} %endif %{_libdir}/wine/windowscodecs.dll.so %{_libdir}/wine/windowscodecsext.%{winedll} @@ -1888,13 +1917,14 @@ fi %{_libdir}/wine/wuapi.%{winedll} %{_libdir}/wine/wuaueng.%{winedll} %if 0%{?wine_staging} -%{_libdir}/wine/wuauserv.exe.so +%{_libdir}/wine/wuauserv.%{wineexe} %endif %{_libdir}/wine/security.%{winedll} %{_libdir}/wine/sfc.%{winedll} %{_libdir}/wine/wineps.%{winedrv} %{_libdir}/wine/d3d8.%{winedll} %{_libdir}/wine/d3d9.%{winedll} +%{_libdir}/wine/wine-d3d9.%{winedll} %{_libdir}/wine/opengl32.dll.so %{_libdir}/wine/wined3d.dll.so %{_libdir}/wine/dnsapi.dll.so @@ -2017,6 +2047,7 @@ fi %dir %{_datadir}/wine/mono %dir %{_datadir}/wine/fonts %{_datadir}/wine/wine.inf +%{_datadir}/wine/winebus.inf %{_datadir}/wine/winehid.inf %{_datadir}/wine/l_intl.nls @@ -2222,6 +2253,10 @@ fi %endif %changelog +* Sun Aug 04 2019 Michael Cronenworth 4.13-1 +- version update +- add alternatives for d3d dlls to play with dxvk + * Sat Jul 27 2019 Fedora Release Engineering - 4.12.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild From daf35ac1738216765b7d99504d1ede17a1bfe1fd Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 5 Aug 2019 22:51:49 -0500 Subject: [PATCH 512/715] Fix alternatives for d3d dlls --- wine.spec | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/wine.spec b/wine.spec index 1fe45bc..7ec2bd2 100644 --- a/wine.spec +++ b/wine.spec @@ -40,7 +40,7 @@ Name: wine Version: 4.13 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -1446,13 +1446,13 @@ fi %{_libdir}/wine/ctapi32.dll.so %{_libdir}/wine/ctl3d32.%{winedll} %{_libdir}/wine/d2d1.%{winedll} -%{_libdir}/wine/d3d10.%{winedll} -%{_libdir}/wine/d3d10_1.%{winedll} -%{_libdir}/wine/d3d10core.%{winedll} +%ghost %{_libdir}/wine/d3d10.%{winedll} +%ghost %{_libdir}/wine/d3d10_1.%{winedll} +%ghost %{_libdir}/wine/d3d10core.%{winedll} %{_libdir}/wine/wine-d3d10.%{winedll} %{_libdir}/wine/wine-d3d10_1.%{winedll} %{_libdir}/wine/wine-d3d10core.%{winedll} -%{_libdir}/wine/d3d11.%{winedll} +%ghost %{_libdir}/wine/d3d11.%{winedll} %{_libdir}/wine/wine-d3d11.%{winedll} %{_libdir}/wine/d3d12.dll.so %{_libdir}/wine/d3dcompiler_*.%{winedll} @@ -1503,7 +1503,7 @@ fi %{_libdir}/wine/dwrite.dll.so %{_libdir}/wine/dx8vb.%{winedll} %{_libdir}/wine/dxdiagn.%{winedll} -%{_libdir}/wine/dxgi.dll.so +%ghost %{_libdir}/wine/dxgi.dll.so %{_libdir}/wine/wine-dxgi.dll.so %if 0%{?wine_staging} %{_libdir}/wine/dxgkrnl.%{winesys} @@ -1923,7 +1923,7 @@ fi %{_libdir}/wine/sfc.%{winedll} %{_libdir}/wine/wineps.%{winedrv} %{_libdir}/wine/d3d8.%{winedll} -%{_libdir}/wine/d3d9.%{winedll} +%ghost %{_libdir}/wine/d3d9.%{winedll} %{_libdir}/wine/wine-d3d9.%{winedll} %{_libdir}/wine/opengl32.dll.so %{_libdir}/wine/wined3d.dll.so @@ -2253,6 +2253,9 @@ fi %endif %changelog +* Mon Aug 05 2019 Michael Cronenworth 4.13-2 +- fix alternatives for d3d dlls + * Sun Aug 04 2019 Michael Cronenworth 4.13-1 - version update - add alternatives for d3d dlls to play with dxvk From 3409cbbef06c7d28403da0b525dda09108fb0547 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 5 Aug 2019 22:59:02 -0500 Subject: [PATCH 513/715] Include CPU arch in alternatives names on d3d dlls --- wine.spec | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/wine.spec b/wine.spec index 7ec2bd2..47f000d 100644 --- a/wine.spec +++ b/wine.spec @@ -1013,15 +1013,15 @@ fi %endif %endif %{_sbindir}/alternatives --install %{_libdir}/wine/dxgi.dll.so \ - wine-dxgi %{_libdir}/wine/wine-dxgi.dll.so 10 + wine-dxgi%{?_isa} %{_libdir}/wine/wine-dxgi.dll.so 10 %{_sbindir}/alternatives --install %{_libdir}/wine/d3d9.%{winedll} \ - wine-d3d9 %{_libdir}/wine/wine-d3d9.%{winedll} 10 + wine-d3d9%{?_isa} %{_libdir}/wine/wine-d3d9.%{winedll} 10 %{_sbindir}/alternatives --install %{_libdir}/wine/d3d10.%{winedll} \ - wine-d3d10 %{_libdir}/wine/wine-d3d10.%{winedll} 10 \ + wine-d3d10%{?_isa} %{_libdir}/wine/wine-d3d10.%{winedll} 10 \ --slave %{_libdir}/wine/d3d10_1.%{winedll} wine-d3d10_1 %{_libdir}/wine/wine-d3d10_1.%{winedll} \ --slave %{_libdir}/wine/d3d10core.%{winedll} wine-d3d10core %{_libdir}/wine/wine-d3d10core.%{winedll} %{_sbindir}/alternatives --install %{_libdir}/wine/d3d11.%{winedll} \ - wine-d3d11 %{_libdir}/wine/wine-d3d11.%{winedll} 10 + wine-d3d11%{?_isa} %{_libdir}/wine/wine-d3d11.%{winedll} 10 %postun core %{?ldconfig} @@ -1033,10 +1033,10 @@ if [ $1 -eq 0 ] ; then %{_sbindir}/alternatives --remove wine %{_bindir}/wine32 %{_sbindir}/alternatives --remove wineserver %{_bindir}/wineserver32 %endif - %{_sbindir}/alternatives --remove wine-dxgi %{_libdir}/wine/wine-dxgi.dll.so - %{_sbindir}/alternatives --remove wine-d3d9 %{_libdir}/wine/wine-d3d9.%{winedll} - %{_sbindir}/alternatives --remove wine-d3d10 %{_libdir}/wine/wine-d3d10.%{winedll} - %{_sbindir}/alternatives --remove wine-d3d11 %{_libdir}/wine/wine-d3d11.%{winedll} + %{_sbindir}/alternatives --remove wine-dxgi%{?_isa} %{_libdir}/wine/wine-dxgi.dll.so + %{_sbindir}/alternatives --remove wine-d3d9%{?_isa} %{_libdir}/wine/wine-d3d9.%{winedll} + %{_sbindir}/alternatives --remove wine-d3d10%{?_isa} %{_libdir}/wine/wine-d3d10.%{winedll} + %{_sbindir}/alternatives --remove wine-d3d11%{?_isa} %{_libdir}/wine/wine-d3d11.%{winedll} fi %ldconfig_scriptlets ldap From 008c3a0733ea4c4f4800005b1b2e7ff072093919 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 5 Aug 2019 23:33:17 -0500 Subject: [PATCH 514/715] Quote the arch just in case --- wine.spec | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/wine.spec b/wine.spec index 47f000d..ac43688 100644 --- a/wine.spec +++ b/wine.spec @@ -1013,15 +1013,15 @@ fi %endif %endif %{_sbindir}/alternatives --install %{_libdir}/wine/dxgi.dll.so \ - wine-dxgi%{?_isa} %{_libdir}/wine/wine-dxgi.dll.so 10 + 'wine-dxgi%{?_isa}' %{_libdir}/wine/wine-dxgi.dll.so 10 %{_sbindir}/alternatives --install %{_libdir}/wine/d3d9.%{winedll} \ - wine-d3d9%{?_isa} %{_libdir}/wine/wine-d3d9.%{winedll} 10 + 'wine-d3d9%{?_isa}' %{_libdir}/wine/wine-d3d9.%{winedll} 10 %{_sbindir}/alternatives --install %{_libdir}/wine/d3d10.%{winedll} \ - wine-d3d10%{?_isa} %{_libdir}/wine/wine-d3d10.%{winedll} 10 \ + 'wine-d3d10%{?_isa}' %{_libdir}/wine/wine-d3d10.%{winedll} 10 \ --slave %{_libdir}/wine/d3d10_1.%{winedll} wine-d3d10_1 %{_libdir}/wine/wine-d3d10_1.%{winedll} \ --slave %{_libdir}/wine/d3d10core.%{winedll} wine-d3d10core %{_libdir}/wine/wine-d3d10core.%{winedll} %{_sbindir}/alternatives --install %{_libdir}/wine/d3d11.%{winedll} \ - wine-d3d11%{?_isa} %{_libdir}/wine/wine-d3d11.%{winedll} 10 + 'wine-d3d11%{?_isa}' %{_libdir}/wine/wine-d3d11.%{winedll} 10 %postun core %{?ldconfig} @@ -1033,10 +1033,10 @@ if [ $1 -eq 0 ] ; then %{_sbindir}/alternatives --remove wine %{_bindir}/wine32 %{_sbindir}/alternatives --remove wineserver %{_bindir}/wineserver32 %endif - %{_sbindir}/alternatives --remove wine-dxgi%{?_isa} %{_libdir}/wine/wine-dxgi.dll.so - %{_sbindir}/alternatives --remove wine-d3d9%{?_isa} %{_libdir}/wine/wine-d3d9.%{winedll} - %{_sbindir}/alternatives --remove wine-d3d10%{?_isa} %{_libdir}/wine/wine-d3d10.%{winedll} - %{_sbindir}/alternatives --remove wine-d3d11%{?_isa} %{_libdir}/wine/wine-d3d11.%{winedll} + %{_sbindir}/alternatives --remove 'wine-dxgi%{?_isa}' %{_libdir}/wine/wine-dxgi.dll.so + %{_sbindir}/alternatives --remove 'wine-d3d9%{?_isa}' %{_libdir}/wine/wine-d3d9.%{winedll} + %{_sbindir}/alternatives --remove 'wine-d3d10%{?_isa}' %{_libdir}/wine/wine-d3d10.%{winedll} + %{_sbindir}/alternatives --remove 'wine-d3d11%{?_isa}' %{_libdir}/wine/wine-d3d11.%{winedll} fi %ldconfig_scriptlets ldap From 245b91ab9960cb6230ce3319c894670b8009bfdc Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 7 Aug 2019 08:40:07 -0500 Subject: [PATCH 515/715] One more fix for alternatives --- wine.spec | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/wine.spec b/wine.spec index ac43688..f4b321d 100644 --- a/wine.spec +++ b/wine.spec @@ -40,7 +40,7 @@ Name: wine Version: 4.13 -Release: 2%{?dist} +Release: 3%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -1018,8 +1018,8 @@ fi 'wine-d3d9%{?_isa}' %{_libdir}/wine/wine-d3d9.%{winedll} 10 %{_sbindir}/alternatives --install %{_libdir}/wine/d3d10.%{winedll} \ 'wine-d3d10%{?_isa}' %{_libdir}/wine/wine-d3d10.%{winedll} 10 \ - --slave %{_libdir}/wine/d3d10_1.%{winedll} wine-d3d10_1 %{_libdir}/wine/wine-d3d10_1.%{winedll} \ - --slave %{_libdir}/wine/d3d10core.%{winedll} wine-d3d10core %{_libdir}/wine/wine-d3d10core.%{winedll} + --slave %{_libdir}/wine/d3d10_1.%{winedll} 'wine-d3d10_1%{?_isa}' %{_libdir}/wine/wine-d3d10_1.%{winedll} \ + --slave %{_libdir}/wine/d3d10core.%{winedll} 'wine-d3d10core%{?_isa}' %{_libdir}/wine/wine-d3d10core.%{winedll} %{_sbindir}/alternatives --install %{_libdir}/wine/d3d11.%{winedll} \ 'wine-d3d11%{?_isa}' %{_libdir}/wine/wine-d3d11.%{winedll} 10 @@ -2253,6 +2253,9 @@ fi %endif %changelog +* Wed Aug 07 2019 Michael Cronenworth 4.13-3 +- fix slave alternatives for d3d dlls + * Mon Aug 05 2019 Michael Cronenworth 4.13-2 - fix alternatives for d3d dlls From edd9a0070fb5a0456104a594fa3e550d15680de5 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Thu, 8 Aug 2019 00:18:23 -0500 Subject: [PATCH 516/715] Support upgrades with new altnernatives for a few update cycles --- wine.spec | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index f4b321d..c269fb2 100644 --- a/wine.spec +++ b/wine.spec @@ -40,7 +40,7 @@ Name: wine Version: 4.13 -Release: 3%{?dist} +Release: 4%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -992,6 +992,13 @@ fi %ldconfig_post core %posttrans core +# handle upgrades for a few package updates +rm -f %{_libdir}/wine/wine-dxgi.dll.so +rm -f %{_libdir}/wine/wine-d3d9.%{winedll} +rm -f %{_libdir}/wine/wine-d3d10.%{winedll} +rm -f %{_libdir}/wine/wine-d3d10_1.%{winedll} +rm -f %{_libdir}/wine/wine-d3d10core.%{winedll} +rm -f %{_libdir}/wine/wine-d3d11.%{winedll} %ifarch x86_64 aarch64 %{_sbindir}/alternatives --install %{_bindir}/wine \ wine %{_bindir}/wine64 10 \ @@ -2253,6 +2260,9 @@ fi %endif %changelog +* Thu Aug 08 2019 Michael Cronenworth 4.13-4 +- support upgrades in new alternatives + * Wed Aug 07 2019 Michael Cronenworth 4.13-3 - fix slave alternatives for d3d dlls From f612586425225a84fd2eea803bed13ecfb2c8551 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 11 Aug 2019 01:23:28 -0500 Subject: [PATCH 517/715] Remove correct DLLs on upgrade --- wine.spec | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/wine.spec b/wine.spec index c269fb2..cb42648 100644 --- a/wine.spec +++ b/wine.spec @@ -40,7 +40,7 @@ Name: wine Version: 4.13 -Release: 4%{?dist} +Release: 5%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -993,12 +993,12 @@ fi %posttrans core # handle upgrades for a few package updates -rm -f %{_libdir}/wine/wine-dxgi.dll.so -rm -f %{_libdir}/wine/wine-d3d9.%{winedll} -rm -f %{_libdir}/wine/wine-d3d10.%{winedll} -rm -f %{_libdir}/wine/wine-d3d10_1.%{winedll} -rm -f %{_libdir}/wine/wine-d3d10core.%{winedll} -rm -f %{_libdir}/wine/wine-d3d11.%{winedll} +rm -f %{_libdir}/wine/dxgi.dll.so +rm -f %{_libdir}/wine/d3d9.%{winedll} +rm -f %{_libdir}/wine/d3d10.%{winedll} +rm -f %{_libdir}/wine/d3d10_1.%{winedll} +rm -f %{_libdir}/wine/d3d10core.%{winedll} +rm -f %{_libdir}/wine/d3d11.%{winedll} %ifarch x86_64 aarch64 %{_sbindir}/alternatives --install %{_bindir}/wine \ wine %{_bindir}/wine64 10 \ @@ -2260,6 +2260,9 @@ fi %endif %changelog +* Sun Aug 11 2019 Michael Cronenworth 4.13-5 +- remove correct dlls on upgrade + * Thu Aug 08 2019 Michael Cronenworth 4.13-4 - support upgrades in new alternatives From 075de5a13cf558c4d0a0a22cb24b5c21b6d5c248 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 19 Aug 2019 11:31:55 -0500 Subject: [PATCH 518/715] Update to 4.14 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 19 ++++++++++++------- 3 files changed, 18 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index 58dcbce..a8a9177 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-4.13.tar.xz -/wine-4.13.tar.xz.sign -/wine-staging-4.13.tar.gz +/wine-4.14.tar.xz +/wine-4.14.tar.xz.sign +/wine-staging-4.14.tar.gz diff --git a/sources b/sources index 60a21ae..3a2cf96 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-4.13.tar.xz) = b359db3c99d10b489f7f72172b624e7b2e2b826c206e842a524d781ab5947e2b03623a115c2345fc71df22eb508936c2f7667d4c420a2fb6cdc34e3d2ba5e75b -SHA512 (wine-4.13.tar.xz.sign) = 7a51a13f39acb5f4a4ffc1dc1c821890b39f66a5a427933841015bd2f92c3b92ac5e50eb4c7c501cf2fd8b7738179407c1c70b5b58b7ab6ad4860c1bb4f60130 -SHA512 (wine-staging-4.13.tar.gz) = a5240b3999b1ba605d16148022e57a4574c0e9288763a5c4a259ea06c3a7152af8b136b0e2b8a74b1a40fb6adaf5ce012695160afdd5364fa1b4c7a903fd82b1 +SHA512 (wine-4.14.tar.xz) = cfbcad1685abf3a3810c5f29c50e47f1340aab2276e54d8d22b9b764df5099ff7ad399a6cca200c7a622be0470992d3aee1c0c64c2e6ea90221fee6d391d911c +SHA512 (wine-4.14.tar.xz.sign) = f797ab610be99a2732e8483d6bbd52cbc61174d7bd3f7a08f408a0836f4e297f4762b057f48a3c59852f67dc0c4d1c7e4cf821ef3758ad86ccf59e40b9d89c82 +SHA512 (wine-staging-4.14.tar.gz) = 481a50f4ba3f1c445bd5b9754d7b27bdcd0bc386930e3597051a0962778288f8d4649e9f4e8bc188738c6896821a198f3af15b47e9db719f52d0b3db16a407f0 diff --git a/wine.spec b/wine.spec index cb42648..e72ba74 100644 --- a/wine.spec +++ b/wine.spec @@ -39,8 +39,8 @@ %endif Name: wine -Version: 4.13 -Release: 5%{?dist} +Version: 4.14 +Release: 1%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -1076,7 +1076,7 @@ fi %doc documentation/README.* %if 0%{?wine_staging} %{_bindir}/msidb -%{_libdir}/wine/runas.exe.so +%{_libdir}/wine/runas.%{wineexe} %endif %{_bindir}/winedump %{_libdir}/wine/explorer.%{wineexe} @@ -1097,7 +1097,7 @@ fi %{_libdir}/wine/winver.exe.so %{_libdir}/wine/wordpad.%{wineexe} %{_libdir}/wine/write.%{wineexe} -%{_libdir}/wine/wusa.exe.so +%{_libdir}/wine/wusa.%{wineexe} %ifarch %{ix86} %{arm} %{_bindir}/wine32 @@ -1141,7 +1141,7 @@ fi %{_libdir}/wine/fc.%{wineexe} %{_libdir}/wine/find.%{wineexe} %{_libdir}/wine/findstr.%{wineexe} -%{_libdir}/wine/fsutil.exe.so +%{_libdir}/wine/fsutil.%{wineexe} %{_libdir}/wine/hostname.%{wineexe} %{_libdir}/wine/ipconfig.%{wineexe} %{_libdir}/wine/winhlp32.%{wineexe} @@ -1195,7 +1195,7 @@ fi %{_libdir}/wine/advapi32.dll.so %{_libdir}/wine/advpack.%{winedll} %{_libdir}/wine/amsi.%{winedll} -%{_libdir}/wine/amstream.dll.so +%{_libdir}/wine/amstream.%{winedll} %{_libdir}/wine/api-ms-win-appmodel-identity-l1-1-0.%{winedll} %{_libdir}/wine/api-ms-win-appmodel-runtime-l1-1-1.%{winedll} %{_libdir}/wine/api-ms-win-appmodel-runtime-l1-1-2.%{winedll} @@ -1779,7 +1779,7 @@ fi %{_libdir}/wine/qedit.%{winedll} %{_libdir}/wine/qmgr.%{winedll} %{_libdir}/wine/qmgrprxy.%{winedll} -%{_libdir}/wine/quartz.dll.so +%{_libdir}/wine/quartz.%{winedll} %{_libdir}/wine/query.%{winedll} %{_libdir}/wine/qwave.%{winedll} %{_libdir}/wine/rasapi32.%{winedll} @@ -1854,6 +1854,7 @@ fi %{_libdir}/wine/usbd.%{winesys} %{_libdir}/wine/user32.dll.so %{_libdir}/wine/usp10.%{winedll} +%{_libdir}/wine/utildll.%{winedll} %{_libdir}/wine/uxtheme.dll.so %{_libdir}/wine/userenv.%{winedll} %{_libdir}/wine/vbscript.%{winedll} @@ -1908,6 +1909,7 @@ fi %{_libdir}/wine/wintrust.%{winedll} %{_libdir}/wine/winusb.%{winedll} %{_libdir}/wine/wlanapi.%{winedll} +%{_libdir}/wine/wlanui.%{winedll} %{_libdir}/wine/wmphoto.%{winedll} %{_libdir}/wine/wnaspi32.dll.so %if 0%{?wine_staging} @@ -2260,6 +2262,9 @@ fi %endif %changelog +* Mon Aug 19 2019 Michael Cronenworth 4.14-1 +- version update + * Sun Aug 11 2019 Michael Cronenworth 4.13-5 - remove correct dlls on upgrade From 835431c9254503c5448a664da84e6863569cd8ba Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 19 Aug 2019 14:20:58 -0500 Subject: [PATCH 519/715] Sync wine-mono version --- wine.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/wine.spec b/wine.spec index e72ba74..5e920ca 100644 --- a/wine.spec +++ b/wine.spec @@ -3,7 +3,7 @@ %global no64bit 0 %global winegecko 2.47 -%global winemono 4.9.0 +%global winemono 4.9.2 #global _default_patch_fuzz 2 %ifarch %{ix86} x86_64 %global wineacm acm @@ -40,7 +40,7 @@ Name: wine Version: 4.14 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -2262,6 +2262,9 @@ fi %endif %changelog +* Mon Aug 19 2019 Michael Cronenworth 4.14-2 +- sync wine-mono version + * Mon Aug 19 2019 Michael Cronenworth 4.14-1 - version update From e62020c5be482b8c7bd4de6e40120eb2fdafc378 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 1 Sep 2019 19:13:47 -0500 Subject: [PATCH 520/715] Update to 4.15 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 10 ++++++++-- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index a8a9177..8b618b2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-4.14.tar.xz -/wine-4.14.tar.xz.sign -/wine-staging-4.14.tar.gz +/wine-4.15.tar.xz +/wine-4.15.tar.xz.sign +/wine-staging-4.15.tar.gz diff --git a/sources b/sources index 3a2cf96..13d939e 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-4.14.tar.xz) = cfbcad1685abf3a3810c5f29c50e47f1340aab2276e54d8d22b9b764df5099ff7ad399a6cca200c7a622be0470992d3aee1c0c64c2e6ea90221fee6d391d911c -SHA512 (wine-4.14.tar.xz.sign) = f797ab610be99a2732e8483d6bbd52cbc61174d7bd3f7a08f408a0836f4e297f4762b057f48a3c59852f67dc0c4d1c7e4cf821ef3758ad86ccf59e40b9d89c82 -SHA512 (wine-staging-4.14.tar.gz) = 481a50f4ba3f1c445bd5b9754d7b27bdcd0bc386930e3597051a0962778288f8d4649e9f4e8bc188738c6896821a198f3af15b47e9db719f52d0b3db16a407f0 +SHA512 (wine-4.15.tar.xz) = f8290bbfd3779cb967c1cf689106fa48d1a1daeac2bd42fb91a2d4beed48e0c398ed9239437756bdbe3cd826cef59f5cd660381f637e184c47a865ff3ace91aa +SHA512 (wine-4.15.tar.xz.sign) = 202f1410f5081feb7d6758d3af11d51e36d6a36113914c26d27456efeafad11d071014ba88553c3645e8db14af4f41a54f8a21fa61f40a4db654c8da1d7dbc3f +SHA512 (wine-staging-4.15.tar.gz) = 0c34695c1d39773fb34a58f0cdb91d427945615e7b76b8a7222bc84fda8df08125832297b75aca55e69511b6b3686df70dade84bcc7cc9324f30c042146761b0 diff --git a/wine.spec b/wine.spec index 5e920ca..e735abe 100644 --- a/wine.spec +++ b/wine.spec @@ -39,8 +39,8 @@ %endif Name: wine -Version: 4.14 -Release: 2%{?dist} +Version: 4.15 +Release: 1%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -1597,6 +1597,7 @@ fi %{_libdir}/wine/hidclass.%{winesys} %{_libdir}/wine/hlink.%{winedll} %{_libdir}/wine/hnetcfg.%{winedll} +%{_libdir}/wine/http.%{winesys} %{_libdir}/wine/httpapi.%{winedll} %{_libdir}/wine/icacls.%{wineexe} %{_libdir}/wine/iccvid.%{winedll} @@ -1649,6 +1650,7 @@ fi %{_libdir}/wine/mf.%{winedll} %{_libdir}/wine/mf3216.%{winedll} %{_libdir}/wine/mferror.%{winedll} +%{_libdir}/wine/mfmediaengine.%{winedll} %{_libdir}/wine/mfplat.%{winedll} %{_libdir}/wine/mfplay.%{winedll} %{_libdir}/wine/mfreadwrite.%{winedll} @@ -1785,6 +1787,7 @@ fi %{_libdir}/wine/rasapi32.%{winedll} %{_libdir}/wine/rasdlg.%{winedll} %{_libdir}/wine/regapi.%{winedll} +%{_libdir}/wine/regini.%{wineexe} %{_libdir}/wine/resutils.%{winedll} %{_libdir}/wine/riched20.%{winedll} %{_libdir}/wine/riched32.%{winedll} @@ -2262,6 +2265,9 @@ fi %endif %changelog +* Sun Sep 01 2019 Michael Cronenworth 4.15-1 +- version update + * Mon Aug 19 2019 Michael Cronenworth 4.14-2 - sync wine-mono version From 68dc5f714a18ceedde9bfbeeea951b275a0bab9b Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 14 Sep 2019 09:30:30 -0500 Subject: [PATCH 521/715] Update to 4.16 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 5 ++++- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 8b618b2..f62dcd3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-4.15.tar.xz -/wine-4.15.tar.xz.sign -/wine-staging-4.15.tar.gz +/wine-4.16.tar.xz +/wine-4.16.tar.xz.sign +/wine-staging-4.16.tar.gz diff --git a/sources b/sources index 13d939e..c8a868c 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-4.15.tar.xz) = f8290bbfd3779cb967c1cf689106fa48d1a1daeac2bd42fb91a2d4beed48e0c398ed9239437756bdbe3cd826cef59f5cd660381f637e184c47a865ff3ace91aa -SHA512 (wine-4.15.tar.xz.sign) = 202f1410f5081feb7d6758d3af11d51e36d6a36113914c26d27456efeafad11d071014ba88553c3645e8db14af4f41a54f8a21fa61f40a4db654c8da1d7dbc3f -SHA512 (wine-staging-4.15.tar.gz) = 0c34695c1d39773fb34a58f0cdb91d427945615e7b76b8a7222bc84fda8df08125832297b75aca55e69511b6b3686df70dade84bcc7cc9324f30c042146761b0 +SHA512 (wine-4.16.tar.xz) = f3097b06e490356e68484239b7a2ac1cfa968818565c79386ba6c0e70a318c092af5549da8218935cbe891876fa519d361a3775d0ab5d4adc192555ae0e45d86 +SHA512 (wine-4.16.tar.xz.sign) = f9a96cedfbeb3b80397e6369fff65b2eec37fbd117fb5575ad7f4d396fa520b54aab293edd15cc60273981e37e5c7307e24deedb73946c139477e3f96c4d5a9f +SHA512 (wine-staging-4.16.tar.gz) = 8782e4aecb34443404b1ac02c6b1ba91887ad12f07c7960601f879b034937d5ee6f1c1493437e765804beed6e68fa20383f7c02a09534526cc5f4bb857048faf diff --git a/wine.spec b/wine.spec index e735abe..a267db4 100644 --- a/wine.spec +++ b/wine.spec @@ -39,7 +39,7 @@ %endif Name: wine -Version: 4.15 +Version: 4.16 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -2265,6 +2265,9 @@ fi %endif %changelog +* Sat Sep 14 2019 Michael Cronenworth 4.16-1 +- version update + * Sun Sep 01 2019 Michael Cronenworth 4.15-1 - version update From 54095694f6524b3754e55782e63a21dd94e37536 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Thu, 26 Sep 2019 15:22:15 -0500 Subject: [PATCH 522/715] Retire capi package as isdn4k-utils has been retired (RHBZ#1756118) --- wine.spec | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index a267db4..e9ed979 100644 --- a/wine.spec +++ b/wine.spec @@ -40,7 +40,7 @@ Name: wine Version: 4.16 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -135,7 +135,9 @@ BuildRequires: systemd-devel BuildRequires: zlib-devel BuildRequires: fontforge freetype-devel BuildRequires: libgphoto2-devel +%if 0%{?fedora} <= 30 BuildRequires: isdn4k-utils-devel +%endif BuildRequires: libpcap-devel # modular x BuildRequires: libX11-devel @@ -190,7 +192,9 @@ Requires: wine-fonts = %{version}-%{release} %ifarch %{ix86} x86_64 %if 0%{?fedora} || 0%{?rhel} <= 6 Requires: wine-core(x86-32) = %{version}-%{release} +%if 0%{?fedora} <= 30 Requires: wine-capi(x86-32) = %{version}-%{release} +%endif Requires: wine-cms(x86-32) = %{version}-%{release} Requires: wine-ldap(x86-32) = %{version}-%{release} Requires: wine-twain(x86-32) = %{version}-%{release} @@ -214,7 +218,9 @@ Requires: mesa-dri-drivers(x86-32) # x86-64 parts %ifarch x86_64 Requires: wine-core(x86-64) = %{version}-%{release} +%if 0%{?fedora} <= 30 Requires: wine-capi(x86-64) = %{version}-%{release} +%endif Requires: wine-cms(x86-64) = %{version}-%{release} Requires: wine-ldap(x86-64) = %{version}-%{release} Requires: wine-twain(x86-64) = %{version}-%{release} @@ -235,7 +241,9 @@ Requires: mesa-dri-drivers(x86-64) # ARM parts %ifarch %{arm} aarch64 Requires: wine-core = %{version}-%{release} +%if 0%{?fedora} <= 30 Requires: wine-capi = %{version}-%{release} +%endif Requires: wine-cms = %{version}-%{release} Requires: wine-ldap = %{version}-%{release} Requires: wine-twain = %{version}-%{release} @@ -251,7 +259,9 @@ Requires: samba-winbind-clients # aarch64 parts %ifarch aarch64 Requires: wine-core(aarch-64) = %{version}-%{release} +%if 0%{?fedora} <= 30 Requires: wine-capi(aarch-64) = %{version}-%{release} +%endif Requires: wine-cms(aarch-64) = %{version}-%{release} Requires: wine-ldap(aarch-64) = %{version}-%{release} Requires: wine-twain(aarch-64) = %{version}-%{release} @@ -354,6 +364,12 @@ Requires: libva Obsoletes: wine-wow < 1.7.35 Provides: wine-wow = %{version}-%{release} +%if 0%{?fedora} >= 31 +# isdn4k-utils has been retired in F31+ +Obsoletes: wine-capi +Provides: wine-capi = %{version}-%{release} +%endif + %description core Wine core package includes the basic wine stuff needed by all other packages. @@ -610,6 +626,7 @@ Requires: sane-backends-libs %description twain Twain support for wine +%if 0%{?fedora} <= 30 %package capi Summary: ISDN support for wine Requires: wine-core = %{version}-%{release} @@ -625,6 +642,7 @@ Requires: isdn4k-utils %description capi ISDN support for wine +%endif %package devel Summary: Wine development environment @@ -1052,7 +1070,9 @@ fi %ldconfig_scriptlets twain +%if 0%{?fedora} <= 30 %ldconfig_scriptlets capi +%endif %ldconfig_scriptlets alsa @@ -2215,9 +2235,11 @@ fi %{_libdir}/wine/twain_32.%{winedll} %{_libdir}/wine/sane.ds.so +%if 0%{?fedora} <= 30 # capi subpackage %files capi %{_libdir}/wine/capi2032.dll.so +%endif %files devel %{_bindir}/function_grep.pl @@ -2265,6 +2287,9 @@ fi %endif %changelog +* Thu Sep 26 2019 Michael Cronenworth 4.16-2 +- Retire capi package as isdn4k-utils has been retired (RHBZ#1756118) + * Sat Sep 14 2019 Michael Cronenworth 4.16-1 - version update From f7f70d5d0c8afa46d3b2e45f01bf35dc26cd6a7f Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Thu, 26 Sep 2019 15:44:31 -0500 Subject: [PATCH 523/715] capi package still gets built even if isdn4k-utils is not present --- wine.spec | 24 +++--------------------- 1 file changed, 3 insertions(+), 21 deletions(-) diff --git a/wine.spec b/wine.spec index e9ed979..d071538 100644 --- a/wine.spec +++ b/wine.spec @@ -192,9 +192,7 @@ Requires: wine-fonts = %{version}-%{release} %ifarch %{ix86} x86_64 %if 0%{?fedora} || 0%{?rhel} <= 6 Requires: wine-core(x86-32) = %{version}-%{release} -%if 0%{?fedora} <= 30 Requires: wine-capi(x86-32) = %{version}-%{release} -%endif Requires: wine-cms(x86-32) = %{version}-%{release} Requires: wine-ldap(x86-32) = %{version}-%{release} Requires: wine-twain(x86-32) = %{version}-%{release} @@ -218,9 +216,7 @@ Requires: mesa-dri-drivers(x86-32) # x86-64 parts %ifarch x86_64 Requires: wine-core(x86-64) = %{version}-%{release} -%if 0%{?fedora} <= 30 Requires: wine-capi(x86-64) = %{version}-%{release} -%endif Requires: wine-cms(x86-64) = %{version}-%{release} Requires: wine-ldap(x86-64) = %{version}-%{release} Requires: wine-twain(x86-64) = %{version}-%{release} @@ -241,9 +237,7 @@ Requires: mesa-dri-drivers(x86-64) # ARM parts %ifarch %{arm} aarch64 Requires: wine-core = %{version}-%{release} -%if 0%{?fedora} <= 30 Requires: wine-capi = %{version}-%{release} -%endif Requires: wine-cms = %{version}-%{release} Requires: wine-ldap = %{version}-%{release} Requires: wine-twain = %{version}-%{release} @@ -259,9 +253,7 @@ Requires: samba-winbind-clients # aarch64 parts %ifarch aarch64 Requires: wine-core(aarch-64) = %{version}-%{release} -%if 0%{?fedora} <= 30 Requires: wine-capi(aarch-64) = %{version}-%{release} -%endif Requires: wine-cms(aarch-64) = %{version}-%{release} Requires: wine-ldap(aarch-64) = %{version}-%{release} Requires: wine-twain(aarch-64) = %{version}-%{release} @@ -364,12 +356,6 @@ Requires: libva Obsoletes: wine-wow < 1.7.35 Provides: wine-wow = %{version}-%{release} -%if 0%{?fedora} >= 31 -# isdn4k-utils has been retired in F31+ -Obsoletes: wine-capi -Provides: wine-capi = %{version}-%{release} -%endif - %description core Wine core package includes the basic wine stuff needed by all other packages. @@ -626,10 +612,10 @@ Requires: sane-backends-libs %description twain Twain support for wine -%if 0%{?fedora} <= 30 %package capi Summary: ISDN support for wine Requires: wine-core = %{version}-%{release} +%if 0%{?fedora} <= 30 %ifarch x86_64 Requires: isdn4k-utils(x86-64) %endif @@ -639,10 +625,10 @@ Requires: isdn4k-utils(x86-32) %ifarch %{arm} aarch64 Requires: isdn4k-utils %endif +%endif %description capi ISDN support for wine -%endif %package devel Summary: Wine development environment @@ -1070,9 +1056,7 @@ fi %ldconfig_scriptlets twain -%if 0%{?fedora} <= 30 %ldconfig_scriptlets capi -%endif %ldconfig_scriptlets alsa @@ -2235,11 +2219,9 @@ fi %{_libdir}/wine/twain_32.%{winedll} %{_libdir}/wine/sane.ds.so -%if 0%{?fedora} <= 30 # capi subpackage %files capi %{_libdir}/wine/capi2032.dll.so -%endif %files devel %{_bindir}/function_grep.pl @@ -2288,7 +2270,7 @@ fi %changelog * Thu Sep 26 2019 Michael Cronenworth 4.16-2 -- Retire capi package as isdn4k-utils has been retired (RHBZ#1756118) +- Drop isdn4k-utils BR (RHBZ#1756118) * Sat Sep 14 2019 Michael Cronenworth 4.16-1 - version update From b9c2864b79dbc15ba2c6df06aa81326344f64d47 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 28 Sep 2019 16:33:10 -0500 Subject: [PATCH 524/715] Update to 4.17 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 8 ++++++-- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index f62dcd3..acf1d1f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-4.16.tar.xz -/wine-4.16.tar.xz.sign -/wine-staging-4.16.tar.gz +/wine-4.17.tar.xz +/wine-4.17.tar.xz.sign +/wine-staging-4.17.tar.gz diff --git a/sources b/sources index c8a868c..e7c756a 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-4.16.tar.xz) = f3097b06e490356e68484239b7a2ac1cfa968818565c79386ba6c0e70a318c092af5549da8218935cbe891876fa519d361a3775d0ab5d4adc192555ae0e45d86 -SHA512 (wine-4.16.tar.xz.sign) = f9a96cedfbeb3b80397e6369fff65b2eec37fbd117fb5575ad7f4d396fa520b54aab293edd15cc60273981e37e5c7307e24deedb73946c139477e3f96c4d5a9f -SHA512 (wine-staging-4.16.tar.gz) = 8782e4aecb34443404b1ac02c6b1ba91887ad12f07c7960601f879b034937d5ee6f1c1493437e765804beed6e68fa20383f7c02a09534526cc5f4bb857048faf +SHA512 (wine-4.17.tar.xz) = f762aab2596a4b5cf73d3282be561d25a2fe69e5d4a5ec2e29db47b3eda7496ca9eb7e57ff7765853d258422898bfa775bf9b458e61eef837b213e422bd748b8 +SHA512 (wine-4.17.tar.xz.sign) = 172805baae8a0d3e284cfa6ea9c692b76a540a506e29eaf1a76fb16553f55a4c8f4472f5a118afaf4252598be3a193437d5c39440a16c93ffaf4a215e8d774cd +SHA512 (wine-staging-4.17.tar.gz) = 1f27511c8ff6619f4138eb3b2cd0cc1cdf42c0cd4206c68bdf792ae17c339611016e32babad121f0decf20331f7ce4400033be03c4db26cb6a4dc601c9c4b14d diff --git a/wine.spec b/wine.spec index d071538..343c5ab 100644 --- a/wine.spec +++ b/wine.spec @@ -39,8 +39,8 @@ %endif Name: wine -Version: 4.16 -Release: 2%{?dist} +Version: 4.17 +Release: 1%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -1507,6 +1507,7 @@ fi %{_libdir}/wine/dpwsockx.%{winedll} %{_libdir}/wine/drmclien.%{winedll} %{_libdir}/wine/dsound.%{winedll} +%{_libdir}/wine/dsdmo.%{winedll} %{_libdir}/wine/dsquery.%{winedll} %{_libdir}/wine/dssenh.%{winedll} %{_libdir}/wine/dswave.%{winedll} @@ -2269,6 +2270,9 @@ fi %endif %changelog +* Sat Sep 28 2019 Michael Cronenworth 4.17-1 +- version update + * Thu Sep 26 2019 Michael Cronenworth 4.16-2 - Drop isdn4k-utils BR (RHBZ#1756118) From 5364aa431af0a326edfaf3ffb8b2480608b6ea39 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 29 Sep 2019 11:09:46 -0500 Subject: [PATCH 525/715] Sync wine-mono version --- wine.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/wine.spec b/wine.spec index 343c5ab..734d9bc 100644 --- a/wine.spec +++ b/wine.spec @@ -3,7 +3,7 @@ %global no64bit 0 %global winegecko 2.47 -%global winemono 4.9.2 +%global winemono 4.9.3 #global _default_patch_fuzz 2 %ifarch %{ix86} x86_64 %global wineacm acm @@ -40,7 +40,7 @@ Name: wine Version: 4.17 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -2270,6 +2270,9 @@ fi %endif %changelog +* Sun Sep 29 2019 Michael Cronenworth 4.17-2 +- sync wine-mono version + * Sat Sep 28 2019 Michael Cronenworth 4.17-1 - version update From c263bcc9a0910395fef6c02a0a6791ca8dd88123 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 21 Oct 2019 22:02:29 -0500 Subject: [PATCH 526/715] Update to 4.18 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 7 +++++-- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index acf1d1f..d3d3256 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-4.17.tar.xz -/wine-4.17.tar.xz.sign -/wine-staging-4.17.tar.gz +/wine-4.18.tar.xz +/wine-4.18.tar.xz.sign +/wine-staging-4.18.tar.gz diff --git a/sources b/sources index e7c756a..fee6471 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-4.17.tar.xz) = f762aab2596a4b5cf73d3282be561d25a2fe69e5d4a5ec2e29db47b3eda7496ca9eb7e57ff7765853d258422898bfa775bf9b458e61eef837b213e422bd748b8 -SHA512 (wine-4.17.tar.xz.sign) = 172805baae8a0d3e284cfa6ea9c692b76a540a506e29eaf1a76fb16553f55a4c8f4472f5a118afaf4252598be3a193437d5c39440a16c93ffaf4a215e8d774cd -SHA512 (wine-staging-4.17.tar.gz) = 1f27511c8ff6619f4138eb3b2cd0cc1cdf42c0cd4206c68bdf792ae17c339611016e32babad121f0decf20331f7ce4400033be03c4db26cb6a4dc601c9c4b14d +SHA512 (wine-4.18.tar.xz) = 794802289fa021092a86c939a3618563ad1523689cdafb6fd58aed06c6a5c867fc5ef0d3dbb2435a65c3eb0d3b982b37e983257a7a7d20c3b6d71df9bf5bf1f1 +SHA512 (wine-4.18.tar.xz.sign) = 160a284c09ef6f2bc89759c83625c0806c46fd37bea0b78b6dd966720d5c886480e57eb1407729854339f892fe0d2f980472f2545f17c53a646b0751202616d6 +SHA512 (wine-staging-4.18.tar.gz) = e5ddb7ac09322b5f2c8e8facff9639699a6a3e72a96f4028e88e23e81f73c766bde1479e54a9a80bd7f33c7747a8220e2699f4dcfe55117b9832ff4cdba60a04 diff --git a/wine.spec b/wine.spec index 734d9bc..8b44d2e 100644 --- a/wine.spec +++ b/wine.spec @@ -39,8 +39,8 @@ %endif Name: wine -Version: 4.17 -Release: 2%{?dist} +Version: 4.18 +Release: 1%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -2270,6 +2270,9 @@ fi %endif %changelog +* Mon Oct 21 2019 Michael Cronenworth 4.18-1 +- version update + * Sun Sep 29 2019 Michael Cronenworth 4.17-2 - sync wine-mono version From 5af45519ca9fbb74529c8381484b907122e82b07 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 2 Nov 2019 02:08:00 -0500 Subject: [PATCH 527/715] Update to 4.19 and initial AppData file --- .gitignore | 6 +++--- sources | 6 +++--- wine.appdata.xml | 25 +++++++++++++++++++++++++ wine.spec | 15 ++++++++++++++- 4 files changed, 45 insertions(+), 7 deletions(-) create mode 100644 wine.appdata.xml diff --git a/.gitignore b/.gitignore index d3d3256..656b67b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-4.18.tar.xz -/wine-4.18.tar.xz.sign -/wine-staging-4.18.tar.gz +/wine-4.19.tar.xz +/wine-4.19.tar.xz.sign +/wine-staging-4.19.tar.gz diff --git a/sources b/sources index fee6471..ccf46d9 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-4.18.tar.xz) = 794802289fa021092a86c939a3618563ad1523689cdafb6fd58aed06c6a5c867fc5ef0d3dbb2435a65c3eb0d3b982b37e983257a7a7d20c3b6d71df9bf5bf1f1 -SHA512 (wine-4.18.tar.xz.sign) = 160a284c09ef6f2bc89759c83625c0806c46fd37bea0b78b6dd966720d5c886480e57eb1407729854339f892fe0d2f980472f2545f17c53a646b0751202616d6 -SHA512 (wine-staging-4.18.tar.gz) = e5ddb7ac09322b5f2c8e8facff9639699a6a3e72a96f4028e88e23e81f73c766bde1479e54a9a80bd7f33c7747a8220e2699f4dcfe55117b9832ff4cdba60a04 +SHA512 (wine-4.19.tar.xz) = a86bd7ccfb1878445ea946e4ca72769c10b4d966bcc893536a8c3eaa29484ba687dc3a44755ec92a2ad6073e736985b814c0c682bf4f90b5ffe2bca0ebbf4b25 +SHA512 (wine-4.19.tar.xz.sign) = 831ba26b3052787bbe12d9e66196064a9d6f66d3be72fe295f90822b4a44a2b4f73b815d1c6487baa546dd187b93c081f8a0440b065dcdd08c9be4704295634f +SHA512 (wine-staging-4.19.tar.gz) = a47ae16dd39797b54011f942fe7e722897af7ddc0bed2bf2e39c46aecf60a02769f7287609c63b4c0c3f1c8e40172e0cdf3bdb53562a07d7a2b7ac53e570dbdc diff --git a/wine.appdata.xml b/wine.appdata.xml new file mode 100644 index 0000000..15c33b6 --- /dev/null +++ b/wine.appdata.xml @@ -0,0 +1,25 @@ + + + wine.desktop + CC0-1.0 + LGPLv2+ + Wine + A compatibility layer for Windows applications + +

+ Wine (originally an acronym for "Wine Is Not an Emulator") is a compatibility + layer capable of running Windows applications on several POSIX-compliant operating + systems, such as Linux, macOS, & BSD. Instead of simulating internal Windows + logic like a virtual machine or emulator, Wine translates Windows API calls into + POSIX calls on-the-fly, eliminating the performance and memory penalties of other + methods and allowing you to cleanly integrate Windows applications into your desktop. +

+
+ https://www.winehq.org/ + https://bugs.winehq.org/ + https://wiki.winehq.org/FAQ + https://wiki.winehq.org/ + https://www.winehq.org/donate + https://wiki.winehq.org/Translating +
+ diff --git a/wine.spec b/wine.spec index 8b44d2e..4fc4d46 100644 --- a/wine.spec +++ b/wine.spec @@ -39,7 +39,7 @@ %endif Name: wine -Version: 4.18 +Version: 4.19 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -66,6 +66,9 @@ Source107: wine-wineboot.desktop Source108: wine-wordpad.desktop Source109: wine-oleview.desktop +# AppData files +Source150: wine.appdata.xml + # build fixes # wine bugs @@ -171,6 +174,7 @@ BuildRequires: SDL2-devel BuildRequires: libvkd3d-devel BuildRequires: vulkan-devel BuildRequires: libFAudio-devel +BuildRequires: libappstream-glib # Silverlight DRM-stuff needs XATTR enabled. %if 0%{?wine_staging} @@ -967,6 +971,11 @@ install -p -m 0644 loader/wine.fr.UTF-8.man %{buildroot}%{_mandir}/fr.UTF-8/man1 mkdir -p %{buildroot}%{_mandir}/pl.UTF-8/man1 install -p -m 0644 loader/wine.pl.UTF-8.man %{buildroot}%{_mandir}/pl.UTF-8/man1/wine.1 +# install and validate AppData file +mkdir -p %{buildroot}/%{_metainfodir}/ +install -p -m 0644 %{SOURCE150} %{buildroot}/%{_metainfodir}/%{name}.appdata.xml +appstream-util validate-relax --nonet %{buildroot}/%{_metainfodir}/%{name}.appdata.xml + %if 0%{?rhel} == 6 %post sysvinit @@ -2193,6 +2202,7 @@ fi %{_datadir}/applications/wine-oleview.desktop %{_datadir}/desktop-directories/Wine.directory %config %{_sysconfdir}/xdg/menus/applications-merged/wine.menu +%{_metainfodir}/%{name}.appdata.xml %if 0%{?fedora} >= 10 %{_datadir}/icons/hicolor/scalable/apps/*svg %endif @@ -2270,6 +2280,9 @@ fi %endif %changelog +* Sat Nov 02 2019 Michael Cronenworth 4.19-1 +- version update + * Mon Oct 21 2019 Michael Cronenworth 4.18-1 - version update From f78d73938c93f47c2919e21e243b1f95e74390ee Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 16 Nov 2019 10:51:39 -0600 Subject: [PATCH 528/715] Update to 4.20 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 7 +++++-- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index 656b67b..0d0234f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-4.19.tar.xz -/wine-4.19.tar.xz.sign -/wine-staging-4.19.tar.gz +/wine-4.20.tar.xz +/wine-4.20.tar.xz.sign +/wine-staging-4.20.tar.gz diff --git a/sources b/sources index ccf46d9..922c220 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-4.19.tar.xz) = a86bd7ccfb1878445ea946e4ca72769c10b4d966bcc893536a8c3eaa29484ba687dc3a44755ec92a2ad6073e736985b814c0c682bf4f90b5ffe2bca0ebbf4b25 -SHA512 (wine-4.19.tar.xz.sign) = 831ba26b3052787bbe12d9e66196064a9d6f66d3be72fe295f90822b4a44a2b4f73b815d1c6487baa546dd187b93c081f8a0440b065dcdd08c9be4704295634f -SHA512 (wine-staging-4.19.tar.gz) = a47ae16dd39797b54011f942fe7e722897af7ddc0bed2bf2e39c46aecf60a02769f7287609c63b4c0c3f1c8e40172e0cdf3bdb53562a07d7a2b7ac53e570dbdc +SHA512 (wine-4.20.tar.xz) = c01af88106b8a808fbceb6ace45882c300656a47913142ba7052283b358d6d5b4379895804e15a2ca1870a4e955ea3ca857ec042a8070ea4ffaefa0c7a84e701 +SHA512 (wine-4.20.tar.xz.sign) = 51c961233ec9ad286a0ad1803ae075bc791c7d812a278e5a1129ff5e790f352c185854dc7deb15d33bbafcdcbef2dfc0e08dd796a55004cae70999112995878e +SHA512 (wine-staging-4.20.tar.gz) = 2ce4f6fa83fc275c83bc7f7bbd4b1a4ca65f7e55e16af40958635b8b2efc2b174baa79ed576ed09c4c13b572756fb6262f19281e5b72797c7e0f1f6c4dd1a4ee diff --git a/wine.spec b/wine.spec index 4fc4d46..a3659b5 100644 --- a/wine.spec +++ b/wine.spec @@ -3,7 +3,7 @@ %global no64bit 0 %global winegecko 2.47 -%global winemono 4.9.3 +%global winemono 4.9.4 #global _default_patch_fuzz 2 %ifarch %{ix86} x86_64 %global wineacm acm @@ -39,7 +39,7 @@ %endif Name: wine -Version: 4.19 +Version: 4.20 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -2280,6 +2280,9 @@ fi %endif %changelog +* Sat Nov 16 2019 Michael Cronenworth 4.20-1 +- version and wine-mono update + * Sat Nov 02 2019 Michael Cronenworth 4.19-1 - version update From 2e8c2ac026c55cd2099df46dc7e09ec23348b7b4 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 30 Nov 2019 15:25:28 -0600 Subject: [PATCH 529/715] Update to 4.21 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 13 ++++++++----- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 0d0234f..8f2ddd7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-4.20.tar.xz -/wine-4.20.tar.xz.sign -/wine-staging-4.20.tar.gz +/wine-4.21.tar.xz +/wine-4.21.tar.xz.sign +/wine-staging-4.21.tar.gz diff --git a/sources b/sources index 922c220..eb4a540 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-4.20.tar.xz) = c01af88106b8a808fbceb6ace45882c300656a47913142ba7052283b358d6d5b4379895804e15a2ca1870a4e955ea3ca857ec042a8070ea4ffaefa0c7a84e701 -SHA512 (wine-4.20.tar.xz.sign) = 51c961233ec9ad286a0ad1803ae075bc791c7d812a278e5a1129ff5e790f352c185854dc7deb15d33bbafcdcbef2dfc0e08dd796a55004cae70999112995878e -SHA512 (wine-staging-4.20.tar.gz) = 2ce4f6fa83fc275c83bc7f7bbd4b1a4ca65f7e55e16af40958635b8b2efc2b174baa79ed576ed09c4c13b572756fb6262f19281e5b72797c7e0f1f6c4dd1a4ee +SHA512 (wine-4.21.tar.xz) = f962e47577db2de4e74022b8d51e81e30a004f98b37d8eee5889334271f013123e3ff53e5ac1416c2dd93ec90bee8a2d300b3842c20124df99ef067ac5c72f53 +SHA512 (wine-4.21.tar.xz.sign) = 0cee3e00f70e5438de89a273d5b7148a19a976f038125f555c037eedd30a6063b60a90ad08b356a5ef7f4c20edadc2546e64fa5b1bbd19555034ee013f120971 +SHA512 (wine-staging-4.21.tar.gz) = 0c6c32f86d252f827ebb8d5df2b046c4f0a49aa7c0ca47939b33844786e561d5f676db1e199ec3cd9969757985f66b865099061f5e77234c3aabd4fd29d3a063 diff --git a/wine.spec b/wine.spec index a3659b5..3a98d55 100644 --- a/wine.spec +++ b/wine.spec @@ -39,7 +39,7 @@ %endif Name: wine -Version: 4.20 +Version: 4.21 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1441,7 +1441,7 @@ fi %{_libdir}/wine/bluetoothapis.%{winedll} %{_libdir}/wine/browseui.%{winedll} %{_libdir}/wine/bthprops.%{winecpl} -%{_libdir}/wine/cabinet.dll.so +%{_libdir}/wine/cabinet.dll.%{winedll} %{_libdir}/wine/cards.%{winedll} %{_libdir}/wine/cdosys.%{winedll} %{_libdir}/wine/cfgmgr32.%{winedll} @@ -1779,7 +1779,7 @@ fi %{_libdir}/wine/olepro32.%{winedll} %{_libdir}/wine/olesvr32.%{winedll} %{_libdir}/wine/olethk32.%{winedll} -%{_libdir}/wine/opcservices.dll.so +%{_libdir}/wine/opcservices.%{winedll} %{_libdir}/wine/packager.%{winedll} %{_libdir}/wine/pdh.%{winedll} %{_libdir}/wine/photometadatahandler.%{winedll} @@ -1908,8 +1908,8 @@ fi %{_libdir}/wine/winevulkan.dll.so %{_libdir}/wine/winex11.drv.so %{_libdir}/wine/wing32.%{winedll} -%{_libdir}/wine/winhttp.dll.so -%{_libdir}/wine/wininet.dll.so +%{_libdir}/wine/winhttp.%{winedll} +%{_libdir}/wine/wininet.%{winedll} %{_libdir}/wine/winmm.%{winedll} %{_libdir}/wine/winnls32.%{winedll} %{_libdir}/wine/winspool.drv.so @@ -2280,6 +2280,9 @@ fi %endif %changelog +* Sat Nov 30 2019 Michael Cronenworth 4.21-1 +- version update + * Sat Nov 16 2019 Michael Cronenworth 4.20-1 - version and wine-mono update From 267f3b5f624d89d9ececdda44837196313996505 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 30 Nov 2019 16:08:58 -0600 Subject: [PATCH 530/715] Fix typo in file list --- wine.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 3a98d55..ace11a0 100644 --- a/wine.spec +++ b/wine.spec @@ -1441,7 +1441,7 @@ fi %{_libdir}/wine/bluetoothapis.%{winedll} %{_libdir}/wine/browseui.%{winedll} %{_libdir}/wine/bthprops.%{winecpl} -%{_libdir}/wine/cabinet.dll.%{winedll} +%{_libdir}/wine/cabinet.%{winedll} %{_libdir}/wine/cards.%{winedll} %{_libdir}/wine/cdosys.%{winedll} %{_libdir}/wine/cfgmgr32.%{winedll} From 54330d548f72775d4c30823ce3e62e01429d2506 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 30 Dec 2019 23:23:47 -0600 Subject: [PATCH 531/715] Update to 5.0-rc3 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 20 +++++++++++++------- 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index 8f2ddd7..d364772 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-4.21.tar.xz -/wine-4.21.tar.xz.sign -/wine-staging-4.21.tar.gz +/wine-5.0-rc3.tar.xz +/wine-5.0-rc3.tar.xz.sign +/wine-staging-5.0-rc3.tar.gz diff --git a/sources b/sources index eb4a540..8cac3db 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-4.21.tar.xz) = f962e47577db2de4e74022b8d51e81e30a004f98b37d8eee5889334271f013123e3ff53e5ac1416c2dd93ec90bee8a2d300b3842c20124df99ef067ac5c72f53 -SHA512 (wine-4.21.tar.xz.sign) = 0cee3e00f70e5438de89a273d5b7148a19a976f038125f555c037eedd30a6063b60a90ad08b356a5ef7f4c20edadc2546e64fa5b1bbd19555034ee013f120971 -SHA512 (wine-staging-4.21.tar.gz) = 0c6c32f86d252f827ebb8d5df2b046c4f0a49aa7c0ca47939b33844786e561d5f676db1e199ec3cd9969757985f66b865099061f5e77234c3aabd4fd29d3a063 +SHA512 (wine-5.0-rc3.tar.xz) = 25987c107855fc944e803e75faa1712e8aca1cf90fd321797fa25b713629804fa11be030d53a4769859a2fd55cbbcf0a2e1ab19eff006bcea57aab2e4235349d +SHA512 (wine-5.0-rc3.tar.xz.sign) = d15e831c7501095865f2e4b49685c42f3d7caa57cf3f76b0b90a3f79263fca7546c8004690ac4e0810dfd649422c0f3d28916319d0110ad5abba8ad260073eee +SHA512 (wine-staging-5.0-rc3.tar.gz) = 46cab8a768889d2448365282c7810d88050ae64e651f666abd0039b2a34f76efeb0946184b046e5a66c71a75dce748931c5bbc4e8529857765a0a0f35e45a0b6 diff --git a/wine.spec b/wine.spec index ace11a0..7a26c8b 100644 --- a/wine.spec +++ b/wine.spec @@ -2,7 +2,7 @@ %undefine _hardened_build %global no64bit 0 -%global winegecko 2.47 +%global winegecko 2.47.1 %global winemono 4.9.4 #global _default_patch_fuzz 2 %ifarch %{ix86} x86_64 @@ -39,14 +39,14 @@ %endif Name: wine -Version: 4.21 -Release: 1%{?dist} +Version: 5.0 +Release: 0.rc3.0%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ URL: https://www.winehq.org/ -Source0: https://dl.winehq.org/wine/source/4.x/wine-%{version}.tar.xz -Source10: https://dl.winehq.org/wine/source/4.x/wine-%{version}.tar.xz.sign +Source0: https://dl.winehq.org/wine/source/5.0/wine-%{version}-rc3.tar.xz +Source10: https://dl.winehq.org/wine/source/5.0/wine-%{version}-rc3.tar.xz.sign Source1: wine.init Source2: wine.systemd @@ -92,7 +92,7 @@ Patch511: wine-cjk.patch %if 0%{?wine_staging} # wine-staging patches # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar.gz#/wine-staging-%{version}.tar.gz +Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}-rc3.tar.gz#/wine-staging-%{version}-rc3.tar.gz %endif %if !%{?no64bit} @@ -677,7 +677,7 @@ This package adds the opencl driver for wine. %endif %prep -%setup -q -n wine-%{version} +%setup -q -n wine-%{version}-rc3 %patch511 -p1 -b.cjk %if 0%{?wine_staging} @@ -1445,6 +1445,7 @@ fi %{_libdir}/wine/cards.%{winedll} %{_libdir}/wine/cdosys.%{winedll} %{_libdir}/wine/cfgmgr32.%{winedll} +%{_libdir}/wine/chcp.com %{_libdir}/wine/clock.%{wineexe} %{_libdir}/wine/clusapi.%{winedll} %{_libdir}/wine/combase.%{winedll} @@ -1680,6 +1681,7 @@ fi %{_libdir}/wine/mprapi.%{winedll} %{_libdir}/wine/msacm32.%{winedll} %{_libdir}/wine/msacm32.%{winedrv} +%{_libdir}/wine/msado15.%{winedll} %{_libdir}/wine/msadp32.%{wineacm} %{_libdir}/wine/msasn1.%{winedll} %{_libdir}/wine/mscat32.%{winedll} @@ -1768,6 +1770,7 @@ fi %endif %{_libdir}/wine/objsel.%{winedll} %{_libdir}/wine/odbc32.dll.so +%{_libdir}/wine/odbcbcp.%{winedll} %{_libdir}/wine/odbccp32.%{winedll} %{_libdir}/wine/odbccu32.%{winedll} %{_libdir}/wine/ole32.%{winedll} @@ -2280,6 +2283,9 @@ fi %endif %changelog +* Mon Dec 30 2019 Michael Cronenworth 5.0-0.rc3.0 +- version update + * Sat Nov 30 2019 Michael Cronenworth 4.21-1 - version update From 30a972ca26940fb016f024a606ceeccd5c2c7980 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 31 Dec 2019 00:34:14 -0600 Subject: [PATCH 532/715] Fix extension on brand new com binary --- wine.spec | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 7a26c8b..cdaf78c 100644 --- a/wine.spec +++ b/wine.spec @@ -7,6 +7,7 @@ #global _default_patch_fuzz 2 %ifarch %{ix86} x86_64 %global wineacm acm +%global winecom com %global winecpl cpl %global winedll dll %global winedrv drv @@ -16,6 +17,7 @@ %global winetlb tlb %else %global wineacm acm.so +%global winecom com.so %global winecpl cpl.so %global winedll dll.so %global winedrv drv.so @@ -1445,7 +1447,7 @@ fi %{_libdir}/wine/cards.%{winedll} %{_libdir}/wine/cdosys.%{winedll} %{_libdir}/wine/cfgmgr32.%{winedll} -%{_libdir}/wine/chcp.com +%{_libdir}/wine/chcp.%{winecom} %{_libdir}/wine/clock.%{wineexe} %{_libdir}/wine/clusapi.%{winedll} %{_libdir}/wine/combase.%{winedll} From 34b09235e4f372098ff0b4dc188af5f10e87e168 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 6 Jan 2020 10:05:59 -0600 Subject: [PATCH 533/715] Update to 5.0-rc4 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 13 ++++++++----- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index d364772..763d02b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-5.0-rc3.tar.xz -/wine-5.0-rc3.tar.xz.sign -/wine-staging-5.0-rc3.tar.gz +/wine-5.0-rc4.tar.xz +/wine-5.0-rc4.tar.xz.sign +/wine-staging-5.0-rc4.tar.gz diff --git a/sources b/sources index 8cac3db..4112a52 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-5.0-rc3.tar.xz) = 25987c107855fc944e803e75faa1712e8aca1cf90fd321797fa25b713629804fa11be030d53a4769859a2fd55cbbcf0a2e1ab19eff006bcea57aab2e4235349d -SHA512 (wine-5.0-rc3.tar.xz.sign) = d15e831c7501095865f2e4b49685c42f3d7caa57cf3f76b0b90a3f79263fca7546c8004690ac4e0810dfd649422c0f3d28916319d0110ad5abba8ad260073eee -SHA512 (wine-staging-5.0-rc3.tar.gz) = 46cab8a768889d2448365282c7810d88050ae64e651f666abd0039b2a34f76efeb0946184b046e5a66c71a75dce748931c5bbc4e8529857765a0a0f35e45a0b6 +SHA512 (wine-5.0-rc4.tar.xz) = 04971bca86137924d59b63ecb75aea5fd77d37f52d063d61a72a2d13ed3cb2b7f3bf867dc644c855073cacff98e14c536bf375e49441198c6943376a3de4f382 +SHA512 (wine-5.0-rc4.tar.xz.sign) = dad937657bc770724aa59462a45368ab7ed744efcac75360f5f6ae6277ab7378ffb8d64ec1c7c6d9ed3f2f8fbb960356e8498bca6e64c427f5bd00b97060bb50 +SHA512 (wine-staging-5.0-rc4.tar.gz) = e17b1969b6dbc6493dcf51a0732883d16b5c8b1dd7ec0ab3b165617e566f3f9dc8b4ebcd8e626e5e9ec0bc9fb0d7e85744b51a1ee5389e1a58089b4c3f37f7fe diff --git a/wine.spec b/wine.spec index cdaf78c..72fe8ae 100644 --- a/wine.spec +++ b/wine.spec @@ -42,13 +42,13 @@ Name: wine Version: 5.0 -Release: 0.rc3.0%{?dist} +Release: 0.rc4.0%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ URL: https://www.winehq.org/ -Source0: https://dl.winehq.org/wine/source/5.0/wine-%{version}-rc3.tar.xz -Source10: https://dl.winehq.org/wine/source/5.0/wine-%{version}-rc3.tar.xz.sign +Source0: https://dl.winehq.org/wine/source/5.0/wine-%{version}-rc4.tar.xz +Source10: https://dl.winehq.org/wine/source/5.0/wine-%{version}-rc4.tar.xz.sign Source1: wine.init Source2: wine.systemd @@ -94,7 +94,7 @@ Patch511: wine-cjk.patch %if 0%{?wine_staging} # wine-staging patches # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}-rc3.tar.gz#/wine-staging-%{version}-rc3.tar.gz +Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}-rc4.tar.gz#/wine-staging-%{version}-rc4.tar.gz %endif %if !%{?no64bit} @@ -679,7 +679,7 @@ This package adds the opencl driver for wine. %endif %prep -%setup -q -n wine-%{version}-rc3 +%setup -q -n wine-%{version}-rc4 %patch511 -p1 -b.cjk %if 0%{?wine_staging} @@ -2285,6 +2285,9 @@ fi %endif %changelog +* Mon Jan 06 2020 Michael Cronenworth 5.0-0.rc4.0 +- version update + * Mon Dec 30 2019 Michael Cronenworth 5.0-0.rc3.0 - version update From e57df7db260b9cdb49f2b1559ee5ec6e586119a4 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 13 Jan 2020 13:56:19 -0600 Subject: [PATCH 534/715] Update to 5.0-rc5 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 13 ++++++++----- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 763d02b..90e961a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-5.0-rc4.tar.xz -/wine-5.0-rc4.tar.xz.sign -/wine-staging-5.0-rc4.tar.gz +/wine-5.0-rc5.tar.xz +/wine-5.0-rc5.tar.xz.sign +/wine-staging-5.0-rc5.tar.gz diff --git a/sources b/sources index 4112a52..c6be9d8 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-5.0-rc4.tar.xz) = 04971bca86137924d59b63ecb75aea5fd77d37f52d063d61a72a2d13ed3cb2b7f3bf867dc644c855073cacff98e14c536bf375e49441198c6943376a3de4f382 -SHA512 (wine-5.0-rc4.tar.xz.sign) = dad937657bc770724aa59462a45368ab7ed744efcac75360f5f6ae6277ab7378ffb8d64ec1c7c6d9ed3f2f8fbb960356e8498bca6e64c427f5bd00b97060bb50 -SHA512 (wine-staging-5.0-rc4.tar.gz) = e17b1969b6dbc6493dcf51a0732883d16b5c8b1dd7ec0ab3b165617e566f3f9dc8b4ebcd8e626e5e9ec0bc9fb0d7e85744b51a1ee5389e1a58089b4c3f37f7fe +SHA512 (wine-5.0-rc5.tar.xz) = 42abe3c8e2ed63b8e3b77be7862afac2ef86af6e63dfac28f61f0749a4382ed622f7b1679f10c4221852049d6305de4685a99f5a888079132c85c95b40ae0ae0 +SHA512 (wine-5.0-rc5.tar.xz.sign) = 796ea27f8e56fc9d227d3a25db740f721a5941e64ccd772816eb3451db64bf869347c99dc70a413dbf77cc51129f8a203bd7c3bc7c3be0501165819d97140cbd +SHA512 (wine-staging-5.0-rc5.tar.gz) = 5f60b11dfe9868b3c3cbc08891066c481af99c788cb7b591c795a16378f50ac8305b27c5bd7e3ab76d22fafcffe2db679f560effdbf2a6e51f5b143f65b2894f diff --git a/wine.spec b/wine.spec index 72fe8ae..5de0bb3 100644 --- a/wine.spec +++ b/wine.spec @@ -42,13 +42,13 @@ Name: wine Version: 5.0 -Release: 0.rc4.0%{?dist} +Release: 0.rc5.0%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ URL: https://www.winehq.org/ -Source0: https://dl.winehq.org/wine/source/5.0/wine-%{version}-rc4.tar.xz -Source10: https://dl.winehq.org/wine/source/5.0/wine-%{version}-rc4.tar.xz.sign +Source0: https://dl.winehq.org/wine/source/5.0/wine-%{version}-rc5.tar.xz +Source10: https://dl.winehq.org/wine/source/5.0/wine-%{version}-rc5.tar.xz.sign Source1: wine.init Source2: wine.systemd @@ -94,7 +94,7 @@ Patch511: wine-cjk.patch %if 0%{?wine_staging} # wine-staging patches # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}-rc4.tar.gz#/wine-staging-%{version}-rc4.tar.gz +Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}-rc5.tar.gz#/wine-staging-%{version}-rc5.tar.gz %endif %if !%{?no64bit} @@ -679,7 +679,7 @@ This package adds the opencl driver for wine. %endif %prep -%setup -q -n wine-%{version}-rc4 +%setup -q -n wine-%{version}-rc5 %patch511 -p1 -b.cjk %if 0%{?wine_staging} @@ -2285,6 +2285,9 @@ fi %endif %changelog +* Mon Jan 13 2020 Michael Cronenworth 5.0-0.rc5.0 +- version update + * Mon Jan 06 2020 Michael Cronenworth 5.0-0.rc4.0 - version update From 2013e2b6bb1b7e7f406391c36817306e388a5c8f Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 22 Jan 2020 07:52:35 -0600 Subject: [PATCH 535/715] Update to 5.0, trim changelog --- .gitignore | 6 +- sources | 6 +- wine.spec | 2095 +--------------------------------------------------- 3 files changed, 14 insertions(+), 2093 deletions(-) diff --git a/.gitignore b/.gitignore index 90e961a..ae1e10c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-5.0-rc5.tar.xz -/wine-5.0-rc5.tar.xz.sign -/wine-staging-5.0-rc5.tar.gz +/wine-5.0.tar.xz +/wine-5.0.tar.xz.sign +/wine-staging-5.0.tar.gz diff --git a/sources b/sources index c6be9d8..ef2c2fd 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-5.0-rc5.tar.xz) = 42abe3c8e2ed63b8e3b77be7862afac2ef86af6e63dfac28f61f0749a4382ed622f7b1679f10c4221852049d6305de4685a99f5a888079132c85c95b40ae0ae0 -SHA512 (wine-5.0-rc5.tar.xz.sign) = 796ea27f8e56fc9d227d3a25db740f721a5941e64ccd772816eb3451db64bf869347c99dc70a413dbf77cc51129f8a203bd7c3bc7c3be0501165819d97140cbd -SHA512 (wine-staging-5.0-rc5.tar.gz) = 5f60b11dfe9868b3c3cbc08891066c481af99c788cb7b591c795a16378f50ac8305b27c5bd7e3ab76d22fafcffe2db679f560effdbf2a6e51f5b143f65b2894f +SHA512 (wine-5.0.tar.xz) = 681de951804c3dd3ae8c677a0ea52d172b04cac58594698b191cd972b25899cd2030d01a25fc2ad2eb6b99976a30319d2bd5ba8b7ff98b1a8b43832fa6514b83 +SHA512 (wine-5.0.tar.xz.sign) = fad666dc0a0906ff1724e8fe9c7cfecd9f654d83c00ebd0b745b2086d1452f08394dec8ea3bbacb5378b6c0b84caa306cb3e037bd83012ff27b9374a11487932 +SHA512 (wine-staging-5.0.tar.gz) = 36849fc2c848db9949982619c4544b56468012a1f086cc92eb3e2027377c58c3c24daf508149e0e34a70e6b283edfd80833dc2f346c75f0be69f1fb2c5999cd6 diff --git a/wine.spec b/wine.spec index 5de0bb3..4ccf48f 100644 --- a/wine.spec +++ b/wine.spec @@ -42,13 +42,13 @@ Name: wine Version: 5.0 -Release: 0.rc5.0%{?dist} +Release: 1%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ URL: https://www.winehq.org/ -Source0: https://dl.winehq.org/wine/source/5.0/wine-%{version}-rc5.tar.xz -Source10: https://dl.winehq.org/wine/source/5.0/wine-%{version}-rc5.tar.xz.sign +Source0: https://dl.winehq.org/wine/source/5.0/wine-%{version}.tar.xz +Source10: https://dl.winehq.org/wine/source/5.0/wine-%{version}.tar.xz.sign Source1: wine.init Source2: wine.systemd @@ -94,7 +94,7 @@ Patch511: wine-cjk.patch %if 0%{?wine_staging} # wine-staging patches # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}-rc5.tar.gz#/wine-staging-%{version}-rc5.tar.gz +Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar.gz#/wine-staging-%{version}.tar.gz %endif %if !%{?no64bit} @@ -679,7 +679,7 @@ This package adds the opencl driver for wine. %endif %prep -%setup -q -n wine-%{version}-rc5 +%setup -q -n wine-%{version} %patch511 -p1 -b.cjk %if 0%{?wine_staging} @@ -2285,6 +2285,9 @@ fi %endif %changelog +* Wed Jan 22 2020 Michael Cronenworth 5.0-1 +- version update + * Mon Jan 13 2020 Michael Cronenworth 5.0-0.rc5.0 - version update @@ -2395,2085 +2398,3 @@ fi * Wed Jan 23 2019 Michael Cronenworth 4.0-1 - version update -* Thu Jan 17 2019 Michael Cronenworth 4.0-0.5.rc6 -- version update -- Include path fix (RHBZ#1664292) - -* Thu Jan 03 2019 Michael Cronenworth 4.0-0.4.rc4 -- version update - -* Sun Dec 16 2018 Michael Cronenworth 4.0-0.3.rc2 -- version update - -* Sat Dec 15 2018 Björn Esser - 4.0-0.2.rc1 -- fix typos and wording in readme-files - -* Mon Dec 10 2018 Michael Cronenworth 4.0-0.1.rc1 -- version update - -* Wed Nov 28 2018 Michael Cronenworth 3.21-1 -- version update - -* Mon Nov 12 2018 Michael Cronenworth 3.20-1 -- version update - -* Mon Oct 29 2018 Michael Cronenworth 3.19-1 -- version update - -* Wed Oct 17 2018 Michael Cronenworth 3.18-1 -- version update - -* Sun Sep 30 2018 Michael Cronenworth 3.17-1 -- version update - -* Mon Sep 17 2018 Michael Cronenworth 3.16-1 -- version update - -* Mon Sep 03 2018 Michael Cronenworth 3.15-1 -- version update - -* Mon Aug 20 2018 Michael Cronenworth 3.14-1 -- version update - -* Tue Jul 31 2018 Florian Weimer - 3.13-5 -- Rebuild with fixed binutils - -* Fri Jul 27 2018 Igor Gnatenko - 3.13-4 -- Rebuild for new binutils - -* Thu Jul 26 2018 Michael Cronenworth 3.13-3 -- Fix application of patch - -* Tue Jul 24 2018 Michael Cronenworth 3.13-2 -- Add patch to fix audio with staging - -* Sat Jul 21 2018 Michael Cronenworth 3.13-1 -- version update - -* Sat Jul 14 2018 Fedora Release Engineering - 3.12-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Tue Jul 10 2018 Michael Cronenworth 3.12-1 -- version update - -* Sun Jun 24 2018 Michael Cronenworth 3.11-1 -- version update - -* Tue Jun 12 2018 Michael Cronenworth 3.10-1 -- version update - -* Wed May 30 2018 Michael Cronenworth 3.9-1 -- version update - -* Sat May 12 2018 Michael Cronenworth 3.8-1 -- version update - -* Sat Apr 14 2018 Michael Cronenworth 3.6-1 -- version update -- enable wine-staging - -* Tue Apr 03 2018 Michael Cronenworth 3.5-1 -- version update - -* Fri Mar 16 2018 Michael Cronenworth 3.4-1 -- version update - -* Fri Mar 02 2018 Michael Cronenworth 3.3-2 -- enable SDL2 and vulkan support - -* Fri Mar 02 2018 Michael Cronenworth 3.3-1 -- version update - -* Tue Feb 20 2018 Michael Cronenworth 3.2-2 -- fix another upgrade path from wine-staging (RHBZ#1547137) - -* Mon Feb 19 2018 Michael Cronenworth 3.2-1 -- version update - -* Wed Feb 14 2018 Michael Cronenworth 3.1-2 -- fix upgrade path from wine-staging - -* Fri Feb 09 2018 Michael Cronenworth 3.1-1 -- version update -- disable wine-staging - -* Sat Nov 25 2017 Michael Cronenworth 2.21-1 -- version update - -* Mon Nov 06 2017 Michael Cronenworth 2.20-1 -- version update - -* Sun Oct 22 2017 Michael Cronenworth 2.19-1 -- version update - -* Wed Oct 11 2017 Michael Cronenworth 2.18-1 -- version update - -* Thu Sep 21 2017 Michael Cronenworth 2.17-1 -- version update - -* Thu Sep 07 2017 Michael Cronenworth 2.16-1 -- version update -- drop BR on ImageMagick - -* Wed Aug 23 2017 Michael Cronenworth 2.15-1 -- version update - -* Tue Aug 08 2017 Michael Cronenworth 2.14-1 -- version update - -* Thu Aug 03 2017 Fedora Release Engineering - 2.13-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Tue Jul 25 2017 Michael Cronenworth 2.13-1 -- version update - -* Wed Jul 12 2017 Michael Cronenworth 2.12-1 -- version update - -* Tue Jun 27 2017 Michael Cronenworth 2.11-1 -- version update - -* Tue Jun 13 2017 Michael Cronenworth 2.10-1 -- version update - -* Mon May 29 2017 Michael Cronenworth 2.9-1 -- version update - -* Tue May 16 2017 Michael Cronenworth 2.8-1 -- version update - -* Tue May 02 2017 Michael Cronenworth 2.7-1 -- version update - -* Wed Apr 19 2017 Michael Cronenworth 2.6-1 -- version update - -* Mon Apr 10 2017 Michael Cronenworth 2.5-1 -- version update - -* Thu Mar 23 2017 Michael Cronenworth 2.4-2 -- update wine-mono requirement - -* Thu Mar 23 2017 Michael Cronenworth 2.4-1 -- version update - -* Mon Mar 06 2017 Michael Cronenworth 2.3-1 -- version update - -* Mon Feb 20 2017 Michael Cronenworth 2.2-1 -- version update - -* Thu Feb 09 2017 Michael Cronenworth 2.1-1 -- version update - -* Wed Jan 25 2017 Michael Cronenworth 2.0-1 -- version update - -* Mon Jan 23 2017 Michael Cronenworth 2.0-0.1.rc6 -- version update - -* Mon Jan 16 2017 Michael Cronenworth 2.0-0.1.rc5 -- version update - -* Mon Jan 09 2017 Michael Cronenworth 2.0-0.1.rc4 -- version update - -* Tue Dec 27 2016 Michael Cronenworth 2.0-0.1.rc3 -- version update - -* Wed Dec 21 2016 Michael Cronenworth 2.0-0.1.rc2 -- version update - -* Thu Dec 15 2016 Michael Cronenworth 2.0-0.1.rc1 -- version update - -* Wed Nov 23 2016 Michael Cronenworth 1.9.23-2 -- drop sysvinit on Fedora, again - -* Wed Nov 16 2016 Michael Cronenworth 1.9.23-1 -- version update -- remove old cruft in spec -- add hard cups-libs dependency (rhbz#1367537) -- include mp3 support (rhbz#1395711) - -* Thu Nov 03 2016 Michael Cronenworth 1.9.22-1 -- version update - -* Mon Oct 17 2016 Michael Cronenworth 1.9.21-1 -- version update - -* Sun Oct 02 2016 Michael Cronenworth 1.9.20-1 -- version update - -* Mon Sep 19 2016 Michael Cronenworth 1.9.19-1 -- version update - -* Thu Sep 15 2016 Peter Robinson 1.9.18-2 -- fix aarch64 definition - -* Wed Sep 07 2016 Michael Cronenworth 1.9.18-1 -- version update - -* Sun Aug 28 2016 Michael Cronenworth 1.9.17-1 -- version update - -* Sat Aug 20 2016 Peter Robinson 1.9.16-2 -- build on aarch64 - -* Tue Aug 09 2016 Michael Cronenworth 1.9.16-1 -- version update - -* Fri Jul 29 2016 Michael Cronenworth 1.9.15-1 -- version update - -* Mon Jul 11 2016 Michael Cronenworth 1.9.14-1 -- version update - -* Fri Jul 01 2016 Michael Cronenworth 1.9.13-1 -- version update - -* Wed Jun 15 2016 Michael Cronenworth 1.9.12-1 -- version update - -* Tue Jun 07 2016 Michael Cronenworth 1.9.11-1 -- version update - -* Tue May 24 2016 Michael Cronenworth 1.9.10-2 -- gecko update - -* Tue May 17 2016 Michael Cronenworth 1.9.10-1 -- version upgrade - -* Sun May 01 2016 Michael Cronenworth 1.9.9-1 -- version upgrade - -* Sun Apr 17 2016 Michael Cronenworth 1.9.8-1 -- version upgrade - -* Sun Apr 03 2016 Michael Cronenworth 1.9.7-1 -- version upgrade - -* Mon Mar 21 2016 Michael Cronenworth 1.9.6-1 -- version upgrade - -* Tue Mar 08 2016 Michael Cronenworth 1.9.5-2 -- update mono requirement - -* Tue Mar 08 2016 Michael Cronenworth 1.9.5-1 -- version upgrade - -* Mon Feb 22 2016 Michael Cronenworth 1.9.4-1 -- version upgrade - -* Mon Feb 08 2016 Michael Cronenworth 1.9.3-1 -- version upgrade - -* Fri Feb 05 2016 Fedora Release Engineering - 1.9.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Sun Jan 24 2016 Michael Cronenworth 1.9.2-1 -- version upgrade -- enable gstreamer support - -* Sun Jan 10 2016 Michael Cronenworth 1.9.1-1 -- version upgrade - -* Mon Dec 28 2015 Michael Cronenworth 1.9.0-1 -- version upgrade - -* Wed Dec 23 2015 Michael Cronenworth 1.8-1 -- version upgrade - -* Tue Dec 15 2015 Michael Cronenworth 1.8-0.2 -- version upgrade, 1.8-rc4 -- enabling compiler optimizations again (-O2), thanks to gcc 5.3 - -* Sun Dec 06 2015 Michael Cronenworth 1.8-0.1 -- version upgrade, 1.8-rc3 - -* Sun Nov 15 2015 Michael Cronenworth 1.7.55-1 -- version upgrade - -* Wed Nov 04 2015 Michael Cronenworth 1.7.54-1 -- version upgrade - -* Wed Oct 21 2015 Michael Cronenworth 1.7.53-1 -- version upgrade - -* Sat Oct 03 2015 Michael Cronenworth 1.7.52-1 -- version upgrade - -* Tue Sep 08 2015 Michael Cronenworth 1.7.51-1 -- version upgrade - -* Mon Aug 24 2015 Michael Cronenworth 1.7.50-1 -- version upgrade - -* Fri Aug 14 2015 Michael Cronenworth 1.7.49-2 -- backport gecko 2.40 patch - -* Fri Aug 14 2015 Michael Cronenworth 1.7.49-1 -- version upgrade - -* Mon Aug 10 2015 Björn Esser - 1.7.48-2 -- rebuilt for mingw-wine-gecko-2.40 - -* Fri Jul 31 2015 Michael Cronenworth 1.7.48-1 -- version upgrade - -* Sun Jul 12 2015 Michael Cronenworth 1.7.47-1 -- version upgrade - -* Mon Jun 29 2015 Michael Cronenworth 1.7.46-1 -- version upgrade - -* Fri Jun 19 2015 Fedora Release Engineering - 1.7.45-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Sun Jun 14 2015 Michael Cronenworth 1.7.45-1 -- version upgrade - -* Sun May 31 2015 Michael Cronenworth 1.7.44-1 -- version upgrade - -* Mon May 18 2015 Michael Cronenworth 1.7.43-1 -- version upgrade - -* Mon May 04 2015 Michael Cronenworth 1.7.42-1 -- version upgrade - -* Sat Apr 18 2015 Michael Cronenworth 1.7.41-1 -- version upgrade -- Disable gstreamer support (rhbz#1204185) - -* Mon Apr 06 2015 Michael Cronenworth 1.7.40-1 -- version upgrade - -* Sun Mar 22 2015 Michael Cronenworth 1.7.39-1 -- version upgrade -- Enable some optimizations and workarounds for GCC5 regressions - -* Tue Mar 10 2015 Adam Jackson 1.7.38-3 -- Drop sysvinit subpackage on F23+ - -* Sat Mar 07 2015 Michael Cronenworth - 1.7.38-2 -- Fix wine-gecko and wine-mono versions - -* Sat Mar 07 2015 Michael Cronenworth - 1.7.38-1 -- version upgrade - -* Sun Feb 22 2015 Andreas Bierfert -- 1.7.37-1 -- version upgrade - -* Mon Feb 16 2015 Michael Cronenworth - 1.7.36-2 -- Patch for RtlUnwindEx fix (staging bz #68) -- Use new systemd macros for binfmt handling - -* Sun Feb 08 2015 Michael Cronenworth - 1.7.36-1 -- version upgrade - -* Wed Feb 04 2015 Orion Poplawski - 1.7.35-3 -- Add patch to fix stack smashing (bug #1110419) - -* Mon Jan 26 2015 Michael Cronenworth - 1.7.35-2 -- Rebuild (libgphoto2) - -* Sun Jan 25 2015 Michael Cronenworth - 1.7.35-1 -- version upgrade -- use alternatives system, remove wow sub-package - -* Tue Jan 20 2015 Peter Robinson 1.7.34-2 -- Rebuild (libgphoto2) - -* Sat Jan 10 2015 Michael Cronenworth -- 1.7.34-1 -- version upgrade -- enable OpenCL support (rhbz#1176605) - -* Sun Dec 14 2014 Michael Cronenworth -- 1.7.33-1 -- version upgrade - -* Sun Nov 30 2014 Michael Cronenworth -- 1.7.32-1 -- version upgrade -- wine-mono upgrade - -* Fri Nov 14 2014 Andreas Bierfert -- 1.7.31-1 -- version upgrade -- wine-gecko upgrade -- add some missing arch requires - -* Sun Nov 02 2014 Andreas Bierfert -- 1.7.30-1 -- version upgrade (rhbz#1159548) -- use winepulse patch from compholio patchset when build w/o - compholio (rhbz#1151862) - -* Fri Oct 24 2014 Michael Cronenworth -- 1.7.29-1 -- version upgrade - -* Sun Oct 05 2014 Michael Cronenworth -- 1.7.28-1 -- version upgrade -- New sub-package for wingdings font system integration - -* Wed Sep 24 2014 Michael Cronenworth -- 1.7.27-1 -- version upgrade - -* Mon Sep 08 2014 Michael Cronenworth -- 1.7.26-1 -- version upgrade - -* Sun Aug 24 2014 Michael Cronenworth -- 1.7.25-1 -- version upgrade - -* Mon Aug 18 2014 Fedora Release Engineering - 1.7.24-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild - -* Fri Aug 15 2014 Michael Cronenworth -- 1.7.24-1 -- version upgrade -- No longer install Wine fonts into system directory (rhbz#1039763) - -* Thu Jul 17 2014 Björn Esser - 1.7.22-4 -- prevent accidential build with compholio-patchset on EPEL -- rebuild for pulseaudio (bug #1117683) - -* Mon Jul 14 2014 Björn Esser - 1.7.22-3 -- dropped virtual Provides: %%{name}(compholio) - -* Sat Jul 12 2014 Björn Esser - 1.7.22-2 -- added conditionalized option to build with compholio-patchset for pipelight - Source900 -- compholio-patchset, wine-arial-fonts sub-package, - BR: libattr-devel and configure --with-xattr for Silverlight DRM-stuff - -* Fri Jul 11 2014 Michael Cronenworth -- 1.7.22-1 -- version upgrade - -* Wed Jul 09 2014 Michael Cronenworth -- 1.7.21-2 -- Fixes for EPEL7 (rhbz#1117422) - -* Tue Jul 01 2014 Andreas Bierfert -- 1.7.21-1 -- version upgrade - -* Thu Jun 19 2014 Andreas Bierfert -- 1.7.20-1 -- version upgrade - -* Sun Jun 08 2014 Fedora Release Engineering - 1.7.19-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Sun May 18 2014 Andreas Bierfert -- 1.7.19-1 -- version upgrade - -* Sat May 10 2014 Michael Cronenworth -- 1.7.18-1 -- version upgrade - -* Fri Apr 25 2014 Andreas Bierfert -- 1.7.17-2 -- fix systemd binfmt location (rhbz#1090170) - -* Tue Apr 22 2014 Andreas Bierfert -- 1.7.17-1 -- version upgrade - -* Mon Apr 07 2014 Andreas Bierfert -- 1.7.16-2 -- explicitly require libpng (fixes rhbz#1085075) - -* Mon Apr 07 2014 Andreas Bierfert -- 1.7.16-1 -- version upgrade - -* Mon Mar 24 2014 Andreas Bierfert -- 1.7.15-1 -- version upgrade - -* Sat Mar 08 2014 Andreas Bierfert -- 1.7.14-1 -- version upgrade - -* Sun Feb 23 2014 Andreas Bierfert -- 1.7.13-1 -- version upgrade -- upgraded winepulse - -* Sat Feb 08 2014 Andreas Bierfert -- 1.7.12-1 -- version upgrade - -* Sun Jan 26 2014 Andreas Bierfert -- 1.7.11-1 -- version upgrade - -* Thu Jan 09 2014 Andreas Bierfert -- 1.7.10-1 -- version upgrade -- upgraded winepulse - -* Sun Dec 08 2013 Andreas Bierfert -- 1.7.8-1 -- version upgrade -- wine mono 4.5.2 -- upgraded winepulse - -* Sat Nov 23 2013 Andreas Bierfert -- 1.7.7-1 -- version upgrade - -* Mon Oct 28 2013 Andreas Bierfert -- 1.7.5-1 -- version upgrade (rhbz#1023716) -- upgraded winepulse - -* Sat Oct 12 2013 Andreas Bierfert -- 1.7.4-1 -- version upgrade (rhbz#1018601) - -* Sat Sep 28 2013 Andreas Bierfert -- 1.7.3-1 -- version upgrade (rhbz#1008441) -- upgraded winepulse -- wine gecko 2.24 -- fix systemd subpackage scriplet (rhbz#1010742) - -* Sun Sep 15 2013 Andreas Bierfert -- 1.7.2-1 -- version upgrade -- workaround for rhbz#968860 -- upgraded winepulse - -* Sat Aug 31 2013 Andreas Bierfert -- 1.7.1-2 -- fix icons with patch provided by Frank Dana (rhbz#997543) -- pull in mesa-dri-drivers in meta package to make direct rendering work out - of the box (rhbz#827776) -- restart systemd binfmt handler on post/postun (rhbz#912354) -- add arabic translation to fedora desktop files provided by Mosaab Alzoubi - (rhbz#979770) - -* Sat Aug 31 2013 Andreas Bierfert -- 1.7.1-1 -- version upgrade -- build with lcms2 - -* Sat Aug 17 2013 Andreas Bierfert -- 1.7.0-1 -- version upgrade -- wine pulse update - -* Sun Aug 04 2013 Fedora Release Engineering - 1.6-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild - -* Tue Jul 23 2013 Dennis Gilmore - 1.6-2 -- wine-desktop has architecture specific Requires so can not be noarch - -* Sat Jul 20 2013 Andreas Bierfert -- 1.6-1 -- 1.6 release - -* Thu Jul 18 2013 Petr Pisar - 1.6-0.5.rc5 -- Perl 5.18 rebuild - -* Fri Jul 12 2013 Andreas Bierfert -- 1.6-0.4.rc5 -- 1.6 rc5 - -* Sat Jun 29 2013 Andreas Bierfert -- 1.6-0.3.rc4 -- 1.6 rc4 - -* Thu Jun 27 2013 Andreas Bierfert -- 1.6-0.2.rc3 -- 1.6 rc3 - -* Sun Jun 16 2013 Andreas Bierfert -- 1.6-0.1.rc2 -- 1.6 rc2 - -* Thu May 30 2013 Andreas Bierfert -- 1.5.31-1 -- version upgrade -- upgraded winepulse -- wine gecko 2.21 -- wine meta: require samba-winbind-clients for ntlm - -* Tue May 14 2013 Andreas Bierfert -- 1.5.30-1 -- version upgrade - -* Thu May 09 2013 Andreas Bierfert -- 1.5.29-1 -- version upgrade - -* Sat Mar 30 2013 Andreas Bierfert -- 1.5.27-1 -- version upgrade - -* Sun Mar 17 2013 Andreas Bierfert -- 1.5.26-1 -- version upgrade - -* Tue Mar 05 2013 Andreas Bierfert -- 1.5.25-1 -- version upgrade -- now font package for wingdings family - -* Mon Feb 18 2013 Andreas Bierfert -- 1.5.24-1 -- version upgrade - -* Sun Feb 10 2013 Andreas Bierfert -- 1.5.23-1 -- version upgrade - -* Sun Feb 10 2013 Parag Nemade - 1.5.22-2 -- Remove vendor tag from desktop file as per https://fedorahosted.org/fesco/ticket/1077 -- Cleanup spec as per recently changed packaging guidelines -- fix bogus date changelog - -* Sat Jan 19 2013 Andreas Bierfert -- 1.5.22-1 -- version upgrade -- upgraded winepulse -- wine gecko 1.9 - -* Sun Jan 06 2013 Andreas Bierfert -- 1.5.21-1 -- version upgrade - -* Fri Dec 28 2012 Andreas Bierfert -- 1.5.20-1 -- version upgrade -- upgraded winepulse - -* Sun Dec 09 2012 Andreas Bierfert -- 1.5.19-1 -- version upgrade -- upgraded winepulse - -* Fri Nov 23 2012 Andreas Bierfert -- 1.5.18-1 -- version upgrade - -* Mon Nov 12 2012 Andreas Bierfert -- 1.5.17-1 -- version upgrade -- upgraded winepulse - -* Sun Oct 28 2012 Andreas Bierfert -- 1.5.16-1 -- version upgrade (rhbz#870611) -- wine mono 0.8 -- update pulse patch -- fix midi in winepulse (rhbz#863129) -- fix dependencies for openssl (rhbz#868576) -- move wineboot.exe.so to -core instead of -wow (rhbz#842820) - -* Mon Oct 15 2012 Andreas Bierfert -- 1.5.15-1 -- version upgrade -- wine gecko 1.8 - -* Sat Sep 29 2012 Andreas Bierfert -- 1.5.14-1 -- version upgrade - -* Sat Sep 15 2012 Andreas Bierfert -- 1.5.13-1 -- version upgrade - -* Fri Aug 31 2012 Andreas Bierfert -- 1.5.12-1 -- version upgrade - -* Thu Aug 30 2012 Andreas Bierfert -- 1.5.11-2 -- rebuild on rawhide for fixed libOSMesa - -* Sat Aug 18 2012 Andreas Bierfert -- 1.5.11-1 -- version upgrade -- use changed libOSMesa check from gentoo (>f18 still fails see rhbz#849405) - -* Tue Jul 31 2012 Andreas Bierfert -- 1.5.10-1 -- version upgrade -- wine gecko 1.7 - -* Sat Jul 21 2012 Peter Robinson - 1.5.9-2 -- isdn4linux now builds on ARM - -* Wed Jul 18 2012 Andreas Bierfert -- 1.5.9-1 -- version upgrade -- clean up cjk patch to comply with default fonts where possible -- update fedora readme to point out required font packages per cjk locale - -* Thu Jul 12 2012 Andreas Bierfert -- 1.5.8-2 -- bump for libgphoto2 2.5.0 - -* Wed Jul 04 2012 Andreas Bierfert -- 1.5.8-1 -- version upgrade (rhbz#834762) -- change {mingw-,}wine-mono require - -* Sun Jun 24 2012 Andreas Bierfert -- 1.5.7-1 -- version upgrade (rhbz#834762) -- require new wine-gecko version - -* Sat Jun 09 2012 Andreas Bierfert -- 1.5.6-1 -- version upgrade (rhbz#830424) -- split tahoma font package and add -system subpackage (rhbz#693180) - -* Thu May 31 2012 Andreas Bierfert -- 1.5.5-2 -- fix description - -* Mon May 28 2012 Andreas Bierfert -- 1.5.5-1 -- version upgrade (rhbz#817257) -- split out -filesystem and clean up -common/-core requires -- re-add winepulse driver (rhbz#821207, rhbz#783699) -- add font replacements for CJK to wine.inf and add information for cjk users - to fedora readme (rhbz#815125, rhbz#820096) -- add support for and require wine-mono - -* Mon May 14 2012 Andreas Bierfert -- 1.5.4-1 -- version upgrade - -* Mon Apr 30 2012 Andreas Bierfert -- 1.5.3-1 -- version upgrade - -* Sat Apr 21 2012 Andreas Bierfert -- 1.5.2-2 -- reenable xinput2 (rhbz#801436) - -* Sat Apr 14 2012 Andreas Bierfert -- 1.5.2-1 -- version upgrade - -* Sat Mar 31 2012 Andreas Bierfert -- 1.5.1-1 -- version upgrade - -* Tue Mar 20 2012 Andreas Bierfert -- 1.5.0-2 -- require wine gecko from fedora mingw - -* Mon Mar 19 2012 Andreas Bierfert -- 1.5.0-1 -- version upgrade - -* Wed Mar 07 2012 Andreas Bierfert -- 1.4-1 -- version upgrade - -* Tue Mar 06 2012 Andreas Bierfert -- 1.4-0.8.rc6 -- version upgrade - -* Sat Feb 25 2012 Andreas Bierfert -- 1.4-0.7.rc5 -- version upgrade - -* Tue Feb 21 2012 Andreas Bierfert -- 1.4-0.6.rc4 -- fix dependency issue (#795295) - -* Sun Feb 19 2012 Andreas Bierfert -- 1.4-0.5.rc4 -- version upgrade - -* Fri Feb 17 2012 Andreas Bierfert -- 1.4-0.4.rc3 -- version upgrade -- cleanup arm dependency fixes - -* Fri Feb 17 2012 Peter Robinson - 1.4-0.3.rc2 -- Fix architecture dependencies on ARM so it installs - -* Thu Feb 02 2012 Andreas Bierfert -- 1.4-0.2.rc2 -- version upgrade - -* Sat Jan 28 2012 Andreas Bierfert -- 1.4-0.1.rc1 -- version upgrade - -* Wed Jan 25 2012 Peter Robinson - 1.3.37-2 -- Add initial support for wine on ARM - -* Fri Jan 13 2012 Andreas Bierfert -- 1.3.37-1 -- version upgrade -- drop obsoleted patches - -* Sat Dec 31 2011 Andreas Bierfert -- 1.3.36-1 -- version upgrade - -* Mon Dec 19 2011 Andreas Bierfert -- 1.3.35-1 -- version upgrade - -* Thu Dec 08 2011 Andreas Bierfert -- 1.3.34-1 -- version upgrade - -* Sun Nov 20 2011 Andreas Bierfert -- 1.3.33-1 -- version upgrade(rhbz#755192) - -* Sat Nov 05 2011 Andreas Bierfert -- 1.3.32-1 -- version upgrade (rhbz#745434) - -* Fri Nov 04 2011 Andreas Bierfert -- 1.3.31-2 -- pull in correct wine-alsa arch in the pa meta package (rhbz#737431) - -* Sun Oct 23 2011 Andreas Bierfert -- 1.3.31-1 -- version upgrade - -* Mon Oct 10 2011 Andreas Bierfert -- 1.3.30-1 -- version upgrade - -* Sat Sep 24 2011 Andreas Bierfert -- 1.3.29-1 -- version upgrade - -* Sun Sep 11 2011 Andreas Bierfert -- 1.3.28-1 -- version upgrade -- require -alsa from -pulseaudio package for new sound api - -* Mon Aug 29 2011 Andreas Bierfert -- 1.3.27-1 -- version upgrade -- fix epel build (rhbz#733802) - -* Tue Aug 23 2011 Andreas Bierfert -- 1.3.26-3 -- drop pulse configure option -- fix f16 build (dbus/hal configure options) - -* Mon Aug 22 2011 Andreas Bierfert -- 1.3.26-2 -- drop pulse patches -- make pulseaudio package meta and require alsa pa plugin -- update udisks patch - -* Sun Aug 07 2011 Andreas Bierfert -- 1.3.26-1 -- version upgrade - -* Fri Jul 22 2011 Andreas Bierfert -- 1.3.25-1 -- version upgrade -- remove -jack and -esd (retired upstream) -- rebase to Maarten Lankhorst's winepulse -- drop obsolete winepulse readme -- add udisks support from pending patches (winehq#21713, rhbz#712755) -- disable xinput2 (broken) - -* Sun Jul 10 2011 Andreas Bierfert -- 1.3.24-1 -- version upgrade -- add sign as source10 -- drop mshtml patch (upstream) - -* Sun Jun 26 2011 Andreas Bierfert -- 1.3.23-1 -- version upgrade -- winepulse upgrade (0.40) -- fix gcc optimization problem (rhbz#710352, winehq#27375) - -* Tue Jun 21 2011 Andreas Bierfert -- 1.3.22-2 -- workaround gcc optimization problem (rhbz#710352) - -* Sun Jun 12 2011 Andreas Bierfert -- 1.3.22-1 -- version upgrade - -* Sat May 28 2011 Andreas Bierfert -- 1.3.21-1 -- version upgrade - -* Sun May 15 2011 Andreas Bierfert -- 1.3.20-1 -- version upgrade - -* Sat Apr 30 2011 Andreas Bierfert -- 1.3.19-1 -- version upgrade (#701003) -- remove wine-oss -- disable hal (>=f16) - -* Sat Apr 16 2011 Andreas Bierfert -- 1.3.18-1 -- version upgrade - -* Thu Apr 07 2011 Andreas Bierfert -- 1.3.17-3 -- add fix for office installation (upstream #26650) - -* Tue Apr 05 2011 Andreas Bierfert -- 1.3.17-2 -- cleanup spec file -- remove rpath via chrpath -- convert README files to utf8 -- move SysV init script so sysvinit subpackage (>=f15) -- add some missing lsb keywords to init file -- create systemd subpackage and require it in the wine-desktop package (>=f15) -- disable embedded bitmaps in tahoma (#693180) -- provide readme how to disable wine-tahoma in fontconfig (#693180) - -* Sat Apr 02 2011 Andreas Bierfert -- 1.3.17-1 -- version upgrade - -* Fri Mar 18 2011 Andreas Bierfert -- 1.3.16-1 -- version upgrade -- cleanup unneeded patches -- drop some patches -- reenable smp build - -* Thu Mar 17 2011 Andreas Bierfert -- 1.3.15-3 -- reenable fonts - -* Sun Mar 13 2011 Andreas Bierfert -- 1.3.15-2 -- use svg files for icons (#684277) - -* Tue Mar 08 2011 Andreas Bierfert -- 1.3.15-1 -- version upgrade - -* Tue Mar 01 2011 Andreas Bierfert -- 1.3.14-2 -- prepare for wine-gecko - -* Sat Feb 19 2011 Andreas Bierfert -- 1.3.14-1 -- version upgrade - -* Mon Feb 07 2011 Fedora Release Engineering - 1.3.13-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - -* Sun Feb 06 2011 Andreas Bierfert -- 1.3.13-1 -- version upgrade -- update desktop files - -* Mon Jan 24 2011 Andreas Bierfert -- 1.3.12-1 -- version upgrade - -* Sun Jan 09 2011 Andreas Bierfert -- 1.3.11-1 -- version upgrade - -* Tue Dec 28 2010 Andreas Bierfert -- 1.3.10-1 -- version upgrade - -* Sat Dec 11 2010 Andreas Bierfert -- 1.3.9-1 -- version upgrade - -* Sat Nov 27 2010 Andreas Bierfert -- 1.3.8-1 -- version upgrade -- require libXcursor (#655255) -- require wine-openal in wine meta package (#657144) - -* Tue Nov 16 2010 Andreas Bierfert -- 1.3.7-2 -- cleanup cflags a bit - -* Sat Nov 13 2010 Andreas Bierfert -- 1.3.7-1 -- version upgrade -- fix package description (#652718) -- compile with D_FORTIFY_SOURCE=0 for now to avoid breaking wine (#650875) - -* Fri Oct 29 2010 Andreas Bierfert -- 1.3.6-1 -- version upgrade -- rebase winepulse configure patch -- add gstreamer BR for new gstreamer support -- add libtiff BR for new tiff support - -* Mon Oct 18 2010 Andreas Bierfert -- 1.3.5-1 -- version upgrade - -* Sun Oct 03 2010 Andreas Bierfert -- 1.3.4-1 -- version upgrade - -* Wed Sep 29 2010 Andreas Bierfert -- 1.3.3-2 -- winepulse upgrade (0.39) - -* Mon Sep 20 2010 Andreas Bierfert -- 1.3.3-1 -- version upgrade - -* Wed Sep 08 2010 Andreas Bierfert -- 1.3.2-1 -- version upgrade - -* Sat Aug 21 2010 Andreas Bierfert -- 1.3.1-1 -- version ugprade - -* Sat Jul 31 2010 Andreas Bierfert -- 1.3.0-1 -- version upgrade - -* Wed Jul 28 2010 Andreas Bierfert -- 1.2.0-2 -- fix segfault (#617968) -- enable openal-soft on el6 - -* Fri Jul 16 2010 Andreas Bierfert -- 1.2-1 -- final release - -* Fri Jul 16 2010 Andreas Bierfert -- 1.2-0.8.rc7 -- improve font patch - -* Sun Jul 11 2010 Andreas Bierfert -- 1.2-0.7.rc7 -- version upgrade -- make sure font packages include the license file in case they are installed - standalone - -* Sun Jul 04 2010 Andreas Bierfert -- 1.2-0.6.rc6 -- version upgrade -- use new winelogo from user32 -- winepulse upgrade - -* Sun Jun 27 2010 Andreas Bierfert -- 1.2-0.5.rc5 -- version upgrade -- require liberation-narrow-fonts - -* Fri Jun 18 2010 Andreas Bierfert -- 1.2-0.4.rc4 -- version upgrade -- fixes winecfg on 64bit (#541986) -- require wine-common from -core to ensure man pages and wine.inf are present - (#528335) - -* Sun Jun 13 2010 Andreas Bierfert -- 1.2-0.3.rc3 -- version upgrade - -* Mon May 31 2010 Andreas Bierfert -- 1.2-0.2.rc2 -- version upgrade - -* Mon May 24 2010 Andreas Bierfert -- 1.2-0.1.rc1 -- upgrade to rc1 -- add BR for ImageMagick and icoutils -- spec cleanup -- install available icon files (#594950) -- desktop package requires wine x86-32 because of wine/wine64 rename -- put system/small fonts in right place - -* Wed May 19 2010 Andreas Bierfert -- 1.1.44-5 -- fix font issues - -* Thu May 13 2010 Andreas Bierfert -- 1.1.44-4 -- fix install of 32bit only wine on x86_64 via install wine.i686 - -* Wed May 12 2010 Andreas Bierfert -- 1.1.44-3 -- move wine symlink to -wow for 32bit (#591690) - -* Tue May 11 2010 Andreas Bierfert -- 1.1.44-2 -- fix manpage conflict between -common and -devel - -* Sun May 09 2010 Andreas Bierfert -- 1.1.44-1 -- version upgrade (#580024) - -* Sun Apr 18 2010 Andreas Bierfert -- 1.1.43-1 -- version upgrade - -* Sun Apr 11 2010 Andreas Bierfert -- 1.1.42-1 -- version upgrade -- rework for wow64 - -* Mon Mar 29 2010 Andreas Bierfert -- 1.1.41-3 -- add support for mingw32-wine-gecko - -* Sun Mar 28 2010 Andreas Bierfert -- 1.1.41-2 -- convert to font package guidelines -- add libv4l-devel BR - -* Sun Mar 28 2010 Andreas Bierfert -- 1.1.41-1 -- version upgrade (#577587, #576607) -- winepulse upgrade (0.36) - -* Sat Mar 06 2010 Andreas Bierfert -- 1.1.40-1 -- version upgrade - -* Sun Feb 21 2010 Andreas Bierfert -- 1.1.39-1 -- version upgrade - -* Tue Feb 09 2010 Andreas Bierfert -- 1.1.38-1 -- version upgrade -- winepulse upgrade (0.35) - -* Mon Jan 18 2010 Andreas Bierfert -- 1.1.36-1 -- version upgrade (#554102) -- require -common in -desktop (#549190) - -* Sat Dec 19 2009 Andreas Bierfert -- 1.1.35-1 -- version upgrade - -* Fri Dec 18 2009 Andreas Bierfert -- 1.1.34-1 -- version upgrade (#546749) - -* Mon Nov 16 2009 Andreas Bierfert -- 1.1.33-1 -- version upgrade -- winepulse update (.33) -- require gnutls (#538694) -- use separate WINEPREFIX on x86_64 per default (workaround for #533806) -- drop explicit xmessage require (#537610) - -* Tue Oct 27 2009 Andreas Bierfert -- 1.1.32-1 -- version upgrade (#531358) -- update winepulse - -* Mon Sep 28 2009 Andreas Bierfert -- 1.1.30-1 -- version upgrade -- openal support -- drop steam regression patch - -* Sun Sep 13 2009 Andreas Bierfert -- 1.1.29-3 -- patch for steam regression (upstream #19916) -- update winepulse winecfg patch - -* Thu Sep 10 2009 Andreas Bierfert -- 1.1.29-2 -- rebuild for new gcc (#505862) - -* Wed Sep 02 2009 Andreas Bierfert -- 1.1.29-1 -- version upgrade - -* Mon Aug 24 2009 Andreas Bierfert -- 1.1.28-1 -- version upgrade -- make 32bit and 64bit version parallel installable - -* Sun Aug 09 2009 Andreas Bierfert -- 1.1.27-1 -- version upgrade -- WinePulse 0.30 - -* Thu Aug 06 2009 Andreas Bierfert -- 1.1.26-2 -- build 32bit wine on x86_64 and prepare for 64bit parallel build (#487651) -- fix subpackage problems (#485410,#508766,#508944,#514967) -- fix nss dependencies on x86_64 (#508412) - -* Sat Jul 18 2009 Andreas Bierfert -- 1.1.26-1 -- version upgrade -- WinePulse 0.29 -- require Xrender isa for x86_64 (#510947) - -* Thu Jul 09 2009 Andreas Bierfert -- 1.1.25-1 -- version upgrade (#509648) - -* Mon Jun 29 2009 Andreas Bierfert -- 1.1.24-3 -- pull in nss correctly on x86_64 - -* Sun Jun 21 2009 Andreas Bierfert -- 1.1.24-2 -- adjust wine-menu to follow wine behavior (wine-wine instead of Wine) - (fixes #479649, #495953) -- fix wine help desktop entry (#495953, #507154) -- add some more wine application desktop entries (#495953) -- split alsa/oss support into wine-alsa/wine-oss -- drop nas require from wine meta package -- fix dns resolution (#492700) - -* Fri Jun 19 2009 Andreas Bierfert -- 1.1.24-1 -- version upgrade -- WinePulse 0.28 -- drop meta package requires for jack and esd (#492983) - -* Wed Jun 10 2009 Andreas Bierfert -- 1.1.23-1 -- version upgrade (#491321) -- rediff pulseaudio patch (Michael Cronenworth) - -* Wed May 13 2009 Andreas Bierfert -- 1.1.21-2 -- fix uninstaller (#500479) - -* Tue May 12 2009 Andreas Bierfert -- 1.1.21-1 -- version upgrade - -* Mon Apr 27 2009 Andreas Bierfert -- 1.1.20-1 -- version upgrade - -* Mon Mar 30 2009 Andreas Bierfert -- 1.1.18-1 -- version upgrade (#490672, #491321) -- winepulse update - -* Sun Mar 15 2009 Nicolas Mailhot - 1.1.15-3 -— Make sure F11 font packages have been built with F11 fontforge - -* Tue Feb 24 2009 Andreas Bierfert -- 1.1.15-2 -- switch from i386 to ix86 - -* Sun Feb 15 2009 Andreas Bierfert -- 1.1.15-1 -- version upgrade -- new pulse patches - -* Sat Jan 31 2009 Andreas Bierfert -- 1.1.14-1 -- version upgrade - -* Sat Jan 17 2009 Andreas Bierfert -- 1.1.13-1 -- version upgrade -- fix gcc compile problems (#440139, #461720) - -* Mon Jan 05 2009 Andreas Bierfert -- 1.1.12-1 -- version upgrade - -* Sat Dec 06 2008 Andreas Bierfert -- 1.1.10-1 -- version upgrade -- add native pulseaudio driver from winehq bugzilla (#10495) - fixes #474435, #344281 - -* Mon Nov 24 2008 Andreas Bierfert -- 1.1.9-2 -- fix #469907 - -* Sun Nov 23 2008 Andreas Bierfert -- 1.1.9-1 -- version upgrade - -* Sun Oct 26 2008 Andreas Bierfert -- 1.1.7-1 -- version upgrade - -* Thu Oct 23 2008 Andreas Bierfert -- 1.1.6-1 -- version upgrade -- fix multiarch problems (#466892,#467480) - -* Sat Sep 20 2008 Andreas Bierfert -- 1.1.5-1 -- version upgrade - -* Fri Sep 05 2008 Andreas Bierfert -- 1.1.4-1 -- version upgrade -- drop wine-prefixfonts.patch (#460745) - -* Fri Aug 29 2008 Andreas Bierfert -- 1.1.3-1 -- version upgrade - -* Sun Jul 27 2008 Andreas Bierfert -- 1.1.2-1 -- version upgrade (#455960, #456831) -- require freetype (#452417) -- disable wineprefixcreate patch for now - -* Fri Jul 11 2008 Andreas Bierfert -- 1.1.1-1 -- version upgrade - -* Tue Jun 17 2008 Andreas Bierfert -- 1.0-1 -- version upgrade (#446311,#417161) -- fix wine.desktop mime types (#448338) -- add desktop package including desktop files and binary handler (#441310) -- pull in some wine alsa/pulseaudio patches (#344281) - -* Mon Jun 16 2008 Andreas Bierfert -- 1.0-0.5.rc5 -- version upgrade - -* Fri Jun 06 2008 Andreas Bierfert -- 1.0-0.4.rc4 -- version upgrade - -* Sun Jun 01 2008 Andreas Bierfert -- 1.0-0.3.rc3 -- version upgrade - -* Fri May 23 2008 Andreas Bierfert -- 1.0-0.2.rc2 -- version upgrade -- add compile workaround for fedora 9/rawhide (#440139) - -* Sat May 10 2008 Andreas Bierfert -- 1.0-0.1.rc1 -- version upgrade to rc1 - -* Mon May 05 2008 Andreas Bierfert -- 0.9.61-1 -- version upgrade - -* Fri Apr 18 2008 Andreas Bierfert -- 0.9.60-1 -- version upgrade - -* Sat Apr 05 2008 Andreas Bierfert -- 0.9.59-1 -- version upgrade - -* Sat Mar 22 2008 Andreas Bierfert -- 0.9.58-1 -- version upgrade - -* Tue Mar 11 2008 Andreas Bierfert -- 0.9.57-1 -- version upgrade - -* Sat Feb 23 2008 Andreas Bierfert -- 0.9.56-1 -- version upgrade - -* Sun Feb 10 2008 Andreas Bierfert -- 0.9.55-1 -- version upgrade - -* Fri Jan 25 2008 Andreas Bierfert -- 0.9.54-1 -- version upgrade -- remove default pulseaudio workaround (#429420,#428745) -- improve pulseaudio readme - -* Sun Jan 13 2008 Andreas Bierfert -- 0.9.53-2 -- add some missing BR - -* Sat Jan 12 2008 Andreas Bierfert -- 0.9.53-1 -- version upgrade - -* Sat Dec 29 2007 Andreas Bierfert -- 0.9.52-2 -- fix menu bug (#393641) - -* Fri Dec 28 2007 Andreas Bierfert -- 0.9.52-1 -- version upgrade - -* Fri Dec 28 2007 Andreas Bierfert -- 0.9.51-3 -- add -n Wine to pulseaudio workaround -- try to fix menu bug #393641 - -* Fri Dec 28 2007 Andreas Bierfert -- 0.9.51-2 -- add fix for #344281 pulseaudio workaround -- fix #253474: wine-jack should require jack-audio-connection-kit - -* Sun Dec 16 2007 Andreas Bierfert -- 0.9.51-1 -- version upgrade - -* Sat Dec 01 2007 Andreas Bierfert -- 0.9.50-1 -- version upgrade - -* Tue Nov 13 2007 Andreas Bierfert -- 0.9.49-1 -- version upgrade - -* Fri Oct 26 2007 Andreas Bierfert -- 0.9.48-1 -- version upgrade - -* Sat Oct 13 2007 Andreas Bierfert -- 0.9.47-1 -- version upgrade - -* Sun Oct 07 2007 Andreas Bierfert -- 0.9.46-1 -- version upgrade - -* Sun Sep 16 2007 Andreas Bierfert -- 0.9.45-1 -- version upgrade - -* Sat Aug 25 2007 Andreas Bierfert -- 0.9.44-1 -- version upgrade - -* Sat Aug 18 2007 Andreas Bierfert -- 0.9.43-2 -- fix license -- fix #248999 - -* Sat Aug 11 2007 Andreas Bierfert -- 0.9.43-1 -- version upgrade -- fix init-script output (#252144) -- add lsb stuff (#247096) - -* Sat Jul 28 2007 Andreas Bierfert -- 0.9.42-1 -- version upgrade - -* Mon Jul 16 2007 Andreas Bierfert -- 0.9.41-1 -- version upgrade - -* Tue Jul 03 2007 Andreas Bierfert -- 0.9.40-1 -- version upgrade - -* Mon Jun 18 2007 Andreas Bierfert -- 0.9.39-2 -- fix desktop entries - -* Sun Jun 17 2007 Andreas Bierfert -- 0.9.39-1 -- version upgrade -- convert to utf8 (#244046) -- fix mime entry (#243511) - -* Wed Jun 06 2007 Andreas Bierfert -0.9.38-3 -- fix description - -* Sun Jun 03 2007 Andreas Bierfert -0.9.38-2 -- allow full opt flags again -- set ExclusiveArch to i386 for koji to only build i386 - -* Sat Jun 02 2007 Andreas Bierfert -0.9.38-1 -- version upgrade (#242087) -- fix menu problem (#220723) -- fix BR -- clean up desktop file section - -* Wed May 23 2007 Andreas Bierfert -0.9.37-1 -- version upgrade -- add BR for xcursor (#240648) -- add desktop entry for wineboot (#240683) -- add mime handler for msi files (#240682) -- minor cleanups - -* Wed May 02 2007 Andreas Bierfert -0.9.36-2 -- fix BR (#238774) -- fix some typos - -* Sat Apr 28 2007 Andreas Bierfert -0.9.36-1 -- version upgrade - -* Mon Apr 16 2007 Andreas Bierfert -0.9.35-1 -- version upgrade (#234766) -- sources file comments (#235232) -- smpflags work again (mentioned by Marcin Zajączkowski) -- drop arts sound driver package, as it is no longer part of wine - -* Sun Apr 01 2007 Andreas Bierfert -0.9.34-1 -- version upgrade - -* Sat Mar 17 2007 Andreas Bierfert -0.9.33-1 -- version upgrade - -* Sun Mar 04 2007 Andreas Bierfert -0.9.32-1 -- version upgrade - -* Sat Feb 17 2007 Andreas Bierfert -0.9.31-1 -- version upgrade - -* Wed Feb 07 2007 Andreas Bierfert -0.9.30-1 -- version upgrade - -* Thu Jan 11 2007 Andreas Bierfert -0.9.29-1 -- version upgrade - -* Mon Dec 18 2006 Andreas Bierfert -0.9.27-1 -- version upgrade (#220130) -- fix submenus (#216076) -- fix BR (#217338) - -* Thu Nov 16 2006 Andreas Bierfert -0.9.25-1 -- version upgrade -- fix init script (#213230) -- fix twain subpackage content (#213396) -- create wine submenu (#205024) - -* Sat Oct 28 2006 Andreas Bierfert -0.9.24-1 -- version upgrade - -* Tue Oct 17 2006 Andreas Bierfert -0.9.23-1 -- version upgrade - -* Sat Sep 30 2006 Andreas Bierfert -0.9.22-1 -- version upgrade - -* Sun Sep 17 2006 Andreas Bierfert -0.9.21-1 -- version upgrade -- own datadir/wine (#206403) -- do not include huge changelogs (#204302) - -* Mon Aug 28 2006 Andreas Bierfert -0.9.20-1 -- version upgrade - -* Mon Aug 21 2006 Andreas Bierfert -0.9.19-1 -- version upgrade - -* Thu Aug 03 2006 Andreas Bierfert -0.9.18-1 -- version upgrade - -* Mon Jul 10 2006 Andreas Bierfert -0.9.17-1 -- version upgrade - -* Thu Jun 29 2006 Andreas Bierfert -0.9.16-1 -- version upgrade -- rename wine to wine-core -- add meta package wine - -* Fri Jun 09 2006 Andreas Bierfert -0.9.15-1 -- version upgrade - -* Tue May 30 2006 Andreas Bierfert -0.9.14-1 -- version upgrade - -* Fri May 19 2006 Andreas Bierfert -0.9.13-2 -- enable dbus/hal support - -* Mon May 15 2006 Andreas Bierfert -0.9.13-1 -- version upgrade - -* Sat Apr 15 2006 Andreas Bierfert -0.9.12-1 -- fix rpath issues (#187429,#188905) -- version upgrade - -* Mon Apr 03 2006 Andreas Bierfert -0.9.11-1 -- version upgrade -- fix #187546 - -* Mon Mar 20 2006 Andreas Bierfert -0.9.10-2 -- bump for x86_64 tree inclusion \o/ - -* Thu Mar 16 2006 Andreas Bierfert -0.9.10-1 -- version upgrade -- drop ancient extra fonts - -* Fri Mar 03 2006 Andreas Bierfert -0.9.9-1 -- version upgrade - -* Thu Feb 16 2006 Andreas Bierfert -0.9.8-1 -- version upgrade - -* Thu Feb 09 2006 Andreas Bierfert -0.9.7-3 -- fix up tarball - -* Wed Feb 08 2006 Andreas Bierfert -0.9.7-2 -- fix up post/preun scriplets (#178954) - -* Thu Feb 02 2006 Andreas Bierfert -0.9.7-1 -- version upgrade - -* Thu Jan 19 2006 Andreas Bierfert -0.9.6-1 -- version upgrade -- drop wmf exploit patch (part of current version) - -* Sun Jan 08 2006 Andreas Bierfert -0.9.5-2 -- fix for CVE-2005-4560 - -* Fri Jan 06 2006 Andreas Bierfert -0.9.5-1 -- version upgrade -- fix #177089 (winemine desktop entry should be in Game not in System) -- fix cflags for compile -- test new BR - -* Wed Jan 04 2006 Andreas Bierfert -0.9.4-5 -- fix #176834 - -* Mon Jan 02 2006 Andreas Bierfert -0.9.4-4 -- add dist - -* Sun Jan 01 2006 Andreas Bierfert -0.9.4-3 -- use ExclusiveArch instead of ExcludeArch - -* Sun Jan 01 2006 Andreas Bierfert -0.9.4-2 -- own font directory -- fix devel summary -- add ExcludeArch x86_64 for now - -* Sat Dec 31 2005 Andreas Bierfert -0.9.4-1 -- version upgrade -- changed wine.init perissions to 0644 -- added autoconf BR - -* Mon Dec 12 2005 Andreas Bierfert -0.9.3-1 -- version upgrade - -* Thu Nov 24 2005 Andreas Bierfert -0.9.2-1 -- version upgrade - -* Thu Nov 17 2005 Andreas Bierfert -0.9.1-2 -- add fontforge BR and include generated fonts... - -* Sat Nov 12 2005 Andreas Bierfert -0.9.1-1 -- version upgrade -- move uninstaller and winecfg into wine main package... -- drop wine suite - -* Sat Oct 29 2005 Andreas Bierfert -0.9-3 -- s/libwine/wine/ - -* Thu Oct 27 2005 Andreas Bierfert -0.9-2 -- remerge some subpackages which should be defaults - -* Tue Oct 25 2005 Andreas Bierfert -0.9-1 -- upgrade to new version -- start splitting - -* Mon Oct 24 2005 Andreas Bierfert -0.0-1.20050930 -- add fedora readme -- switch to new (old) versioning sheme - -* Sat Oct 22 2005 Andreas Bierfert -20050930-3 -- add desktop files -- revisit summary and description -- consistant use of %%{buildroot} - -* Sat Oct 22 2005 Andreas Bierfert -20050930-2 -- some more spec tuneups... - -* Sat Oct 01 2005 Andreas Bierfert -20050930-1 -- version upgrade - -* Sun Sep 25 2005 Andreas Bierfert -20050925-1 -- upgrade to current cvs - -* Mon Sep 19 2005 Andreas Bierfert -20050830-1 -- version upgrade - -* Mon Sep 19 2005 Andreas Bierfert -20050524-2 -- fedorarized version - -* Mon May 30 2005 Vincent Béron 20050524-1fc3 -- Update to 20050524 -- Remove pdf documentation build as it's no more included in the main archive -- Workaround for generic.ppd installation - -* Tue Apr 19 2005 Vincent Béron 20050419-1fc3 -- Update to 20050419 - -* Thu Mar 10 2005 Vincent Béron 20050310-1fc3 -- Update to 20050310 - -* Sat Feb 12 2005 Vincent Béron 20050211-1fc3 -- Update to 20050211 - -* Tue Jan 11 2005 Vincent Béron 20050111-1fc3 -- Update to 20050111 - -* Wed Dec 1 2004 Vincent Béron 20041201-1fc3 -- Recompile for FC3 -- Update to 20041201 -- Small reorganization: - - use the generic ICU static libs name; - - no more wine group; - - use Wine's generated stdole32.tlb file; - - use Wine's generated fonts. - -* Wed Oct 20 2004 Vincent Béron 20041019-1fc2 -- Update to 20041019 - -* Wed Sep 15 2004 Vincent Béron 20040914-1fc2 -- Update to 20040914 - -* Sat Aug 14 2004 Vincent Béron 20040813-1fc2 -- Update to 20040813 - -* Sat Jul 17 2004 Vincent Béron 20040716-1fc2 -- Update to 20040716 - -* Fri Jun 25 2004 Vincent Béron 20040615-1fc2 -- Recompile for FC2 -- Backport from current CVS some fixes to the preloader to prevent - a segfault on startup -- Include a currently uncommitted patch from Alexandre Julliard regarding - further issues with the preloader - -* Sun Jun 20 2004 Vincent Béron 20040615-1fc1 -- Update to 20040615 -- Use of wineprefixcreate instead of old RedHat patches - -* Wed May 5 2004 Vincent Béron 20040505-1fc1 -- Update to 20040505 - -* Fri Apr 9 2004 Vincent Béron 20040408-1fc1 -- Update to 20040408 -- Change the handling of paths to DOS drives in the installation process - -* Wed Mar 17 2004 Vincent Béron 20040309-1fc1 -- Update to 20040309 -- Replaced winedefault.reg by wine.inf - -* Wed Feb 18 2004 Vincent Béron 20040213-1fc1 -- Update to 20040213 -- Moved Wine dlls back to %%{_libdir}/wine rather than %%{_libdir}/wine/wine - -* Sun Jan 25 2004 Vincent Béron 20040121-fc1 -- Update to 20040121 - -* Sat Dec 13 2003 Vincent Béron 20031212-fc1 -- Update to 20031212 - -* Tue Nov 18 2003 Vincent Béron 20031118-fc1 -- Update to 20031118 - -* Thu Oct 16 2003 Vincent Béron 20031016-1rh9 -- Update to 20031016 - -* Thu Sep 11 2003 Vincent Béron 20030911-1rh9 -- Fix of include location -- Better separation of run-time and development files -- Update to 20030911 - -* Wed Aug 13 2003 Vincent Béron 20030813-1rh9 -- Update to 20030813 - -* Wed Jul 09 2003 Vincent Béron 20030709-1rh9 -- Update to 20030709 - -* Wed Jun 18 2003 Vincent Béron 20030618-1rh9 -- Change the default C drive to ~/.wine/c, copied from /usr/share/wine - if non-existant (Thanks to Rudolf Kastl) -- Updated to 20030618 - -* Tue May 20 2003 Vincent Béron 20030508-1rh9 -- Adapted for RH9 - -* Thu May 08 2003 Vincent Béron 20030508-1 -- Add libraries definition files to devel package -- Update to 20030508 - -* Tue Apr 08 2003 Vincent Béron 20030408-1 -- Update to 20030408 - -* Tue Mar 18 2003 Vincent Béron 20030318-1 -- Update to 20030318 - -* Tue Mar 11 2003 Vincent Béron 20030219-2 -- Fix the symlinks in wine-c. - -* Wed Feb 19 2003 Vincent Béron 20030219-1 -- Update to 20030129 -- Various fixes in RPM build process - -* Fri Jan 17 2003 Vincent Béron 20030115-1 -- Update to 20030115 -- fix to build problem - -* Thu Nov 7 2002 Vincent Béron 20021031-1 -- Update to 20021031 -- Tweaks here and there - -* Wed Sep 4 2002 Bill Nottingham 20020605-2 -- fix docs (#72923) - -* Wed Jul 10 2002 Karsten Hopp 20020605-1 -- update -- remove obsolete part of redhat patch -- redo destdir patch -- redo kde patch -- redo defaultversion patch -- fix 'my_perl unknown' error -- work around name conflict with textutils 'expand' - -* Fri Jun 21 2002 Tim Powers -- automated rebuild - -* Thu May 23 2002 Tim Powers -- automated rebuild - -* Wed Mar 27 2002 Bernhard Rosenkraenzer 20020327-1 -- Fix wineshelllink (#61761) -- Fix up initscript (#53625) -- Clean up spec file -- Default to emulating Windoze ME rather than 3.1, nobody uses 3.1 - applications anymore -- Auto-generate default config if none exists (#61920) - -* Mon Mar 04 2002 Bernhard Rosenkraenzer 20020304-1 -- Assign gid 66 (closest to 666 [Microsoft number] we can get for a - system account ;) ) -- Don't use glibc private functions (__libc_fork) -- Update - -* Tue Feb 26 2002 Bernhard Rosenkraenzer 20020226-1 -- Fix bug #60250 -- Update - -* Thu Feb 21 2002 Bernhard Rosenkraenzer 20020221-1 -- Update -- Don't try to launch winesetup in winelauncher, we aren't shipping it - (#59621) - -* Sun Jan 27 2002 Bernhard Rosenkraenzer 20020127-1 -- Update -- Fix build in current environment - -* Wed Aug 22 2001 Bernhard Rosenkraenzer 20010822-1 -- Make sure the package can be cleanly uninstalled (#52007) -- Add build dependencies - -* Thu Jul 26 2001 Bernhard Rosenkraenzer 20010726-1 -- Fix -devel package group (#49989) -- remove internal CVS files -- chkconfig deletion should be in %%preun, not %%postun -- rename initscript ("Starting windows:" at startup does look off) - -* Thu May 03 2001 Bernhard Rosenkraenzer 20010503-1 -- Update -- generate HTML documentation rather than shipping plain docbook text - (#38453) - -* Sat Apr 14 2001 Bernhard Rosenkraenzer -- Update -- Update registry to mount "/" as drive "Z:", fixes winedbg (needs to be - accessible from 'doze drives) -- Don't create KDE 1.x style desktop entries in wineshelllink -- Be more tolerant on failing stuff in %%post - -* Thu Mar 1 2001 Bernhard Rosenkraenzer -- Update - -* Thu Feb 15 2001 Tim Powers -- fixed time.h build problems - -* Wed Jan 31 2001 Bernhard Rosenkraenzer -- Add a patch to handle .exe and .com file permissions the way we want them - -* Thu Jan 18 2001 Bernhard Rosenkraenzer -- Update -- Restore wine's ability to use a global config file, it was removed - in CVS for whatever reason -- Move libraries to %%{_libdir}/wine to prevent conflicts with libuser - (Bug #24202) -- Move include files to /usr/include/wine to prevent it from messing with - some autoconf scripts (some broken scripts assume they're running on windoze - if /usr/include/windows.h exists...) - -* Tue Dec 19 2000 Bernhard Rosenkraenzer -- Fix %%pre and %%postun scripts -- --enable-opengl, glibc 2.2 should be safe -- Update CVS - -* Mon Nov 20 2000 Bernhard Rosenkraenzer -- Update CVS -- Add a new (user) group wine that can write to the "C: drive" - %%{_datadir}/wine-c -- Fix up winedbg installation (registry entries) -- Add "Program Files/Common Files" subdirectory to the "C: drive", it's - referenced in the registry - -* Wed Oct 11 2000 Bernhard Rosenkraenzer -- update - -* Mon Aug 7 2000 Tim Powers -- rebuilt with new DGA - -* Tue Jul 25 2000 Bernhard Rosenkraenzer -- new snapshot -- fix compilation with gcc 2.96 - -* Fri Jul 21 2000 Bernhard Rosenkraenzer -- Move init script back -- new version -- move man pages to FHS locations - -* Thu Jul 13 2000 Bernhard Rosenkraenzer -- move initscript -- new snapshot - -* Fri Jun 23 2000 Bernhard Rosenkraenzer -- Start the initscript on startup - -* Tue May 9 2000 Bernhard Rosenkraenzer -- New version -- new feature: You can now launch wine by just running a windows .exe file - (./some.exe or just click on it in kfm, gmc and the likes) -- some spec file modifications - -* Sun Feb 13 2000 Bernhard Rosenkraenzer -- newer version -- Improve the system.ini file - all multimedia stuff should work now. - -* Wed Feb 2 2000 Bernhard Rosenkraenzer -- enable and fix up the urlmon/wininet patch -- add: autoexec.bat, config.sys, windows/win.ini windows/system.ini - windows/Profiles/Administrator -- allow i[456]86 arches -- add some system.ini configuration - -* Wed Feb 2 2000 Bernhard Rosenkraenzer -- update current -- add urlmon and wininet patches from Corel (don't apply them for now though) -- create empty shell*dll and winsock*dll files (as mentioned in the HOWTO) - -* Mon Jan 17 2000 Bernhard Rosenkraenzer -- update to current (lots of important fixes) -- Fix up the default wine.conf file (We really don't want it to look - for CD-ROMs in /cdrom!) -- create a "root filesystem" with everything required to run wine without - windows in %%{_datadir}/wine-c (drive c:) -- add RedHat file in /usr/doc/wine-%%{version} explaining the new directory - layout -- wine-devel requires wine - -* Tue Dec 14 1999 Preston Brown -- updated source for Powertools 6.2 -- better files list - -* Fri Jul 23 1999 Tim Powers -- updated source -- built for 6.1 - -* Tue Apr 13 1999 Michael Maher -- built package for 6.0 -- updated package and spec file - -* Mon Oct 26 1998 Preston Brown -- updated to 10/25/98 version. There is really no point in keeping the -- older one, it is full of bugs and the newer one has fewer. -- commented out building of texinfo manual, it is horrendously broken. - -* Mon Oct 12 1998 Michael Maher -- built package for 5.2 -- pressured by QA, not updating. - -* Fri May 22 1998 Cristian Gafton -- repackaged for PowerTools From 8ff4e61e3d00e917ffd284050289c3cf11a41aea Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 22 Jan 2020 09:11:47 -0600 Subject: [PATCH 536/715] Add patch for GCC 10 changes --- wine-5.0-gcc10.patch | 11 +++++++++++ wine.spec | 2 ++ 2 files changed, 13 insertions(+) create mode 100644 wine-5.0-gcc10.patch diff --git a/wine-5.0-gcc10.patch b/wine-5.0-gcc10.patch new file mode 100644 index 0000000..953ebbf --- /dev/null +++ b/wine-5.0-gcc10.patch @@ -0,0 +1,11 @@ +--- a/dlls/crypt32/crypt32_private.h 2020-01-21 11:03:21.000000000 -0600 ++++ b/dlls/crypt32/crypt32_private.h 2020-01-22 09:09:42.545954092 -0600 +@@ -152,7 +152,7 @@ + */ + HCRYPTPROV WINAPI I_CryptGetDefaultCryptProv(ALG_ID); + +-HINSTANCE hInstance DECLSPEC_HIDDEN; ++extern HINSTANCE hInstance DECLSPEC_HIDDEN; + + void crypt_oid_init(void) DECLSPEC_HIDDEN; + void crypt_oid_free(void) DECLSPEC_HIDDEN; diff --git a/wine.spec b/wine.spec index 4ccf48f..53e2a8c 100644 --- a/wine.spec +++ b/wine.spec @@ -72,6 +72,7 @@ Source109: wine-oleview.desktop Source150: wine.appdata.xml # build fixes +Patch100: wine-5.0-gcc10.patch # wine bugs @@ -680,6 +681,7 @@ This package adds the opencl driver for wine. %prep %setup -q -n wine-%{version} +%patch100 -p1 -b.gcc10 %patch511 -p1 -b.cjk %if 0%{?wine_staging} From d4d715970e76b299e928c521e1b4f9a5616f01eb Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 22 Jan 2020 09:34:53 -0600 Subject: [PATCH 537/715] GCC 10 fix for wine-staging --- wine.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 53e2a8c..527e80e 100644 --- a/wine.spec +++ b/wine.spec @@ -688,12 +688,15 @@ This package adds the opencl driver for wine. # setup and apply wine-staging patches gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 -# Disable XAudio patchsets in favor of FAudio patches/patchinstall.sh DESTDIR="`pwd`" --all # fix parallelized build sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in +# GCC 10 fix +sed -i 's/BOOL config_vaapi_drm DECLSPEC_HIDDEN;/extern BOOL config_vaapi_drm DECLSPEC_HIDDEN;/' dlls/dxva2/dxva2_private.h +sed -i 's/char config_vaapi_drm_path[MAX_PATH] DECLSPEC_HIDDEN;/extern char config_vaapi_drm_path[MAX_PATH] DECLSPEC_HIDDEN;/' dlls/dxva2/dxva2_private.h + %endif # 0%{?wine_staging} %build From 1d0afea9bfc2df6584f52e9a302c4bf31b0d442a Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 22 Jan 2020 09:59:54 -0600 Subject: [PATCH 538/715] Escape sed string --- wine.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 527e80e..5f41272 100644 --- a/wine.spec +++ b/wine.spec @@ -695,7 +695,7 @@ sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in # GCC 10 fix sed -i 's/BOOL config_vaapi_drm DECLSPEC_HIDDEN;/extern BOOL config_vaapi_drm DECLSPEC_HIDDEN;/' dlls/dxva2/dxva2_private.h -sed -i 's/char config_vaapi_drm_path[MAX_PATH] DECLSPEC_HIDDEN;/extern char config_vaapi_drm_path[MAX_PATH] DECLSPEC_HIDDEN;/' dlls/dxva2/dxva2_private.h +sed -i 's/char config_vaapi_drm_path\[MAX_PATH\] DECLSPEC_HIDDEN;/extern char config_vaapi_drm_path\[MAX_PATH\] DECLSPEC_HIDDEN;/' dlls/dxva2/dxva2_private.h %endif # 0%{?wine_staging} From 1e64e8f7983fab4ea0962935fb4782473ca007cb Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 22 Jan 2020 10:09:00 -0600 Subject: [PATCH 539/715] More GCC 10 fixes --- wine-5.0-gcc10.patch | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/wine-5.0-gcc10.patch b/wine-5.0-gcc10.patch index 953ebbf..861b8e2 100644 --- a/wine-5.0-gcc10.patch +++ b/wine-5.0-gcc10.patch @@ -9,3 +9,14 @@ void crypt_oid_init(void) DECLSPEC_HIDDEN; void crypt_oid_free(void) DECLSPEC_HIDDEN; +--- a/dlls/gphoto2.ds/gphoto2_i.h 2020-01-21 11:03:21.000000000 -0600 ++++ b/dlls/gphoto2.ds/gphoto2_i.h 2020-01-22 10:07:59.403974843 -0600 +@@ -100,7 +100,7 @@ + struct jpeg_decompress_struct jd; + struct jpeg_error_mgr jerr; + #endif +-} activeDS DECLSPEC_HIDDEN; ++} extern activeDS DECLSPEC_HIDDEN; + + /* Helper functions */ + extern TW_UINT16 GPHOTO2_SaneCapability (pTW_CAPABILITY pCapability, TW_UINT16 action) DECLSPEC_HIDDEN; From 4d635170ada7ad4a24001b55ac9bc04e3f7ea089 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 22 Jan 2020 10:23:59 -0600 Subject: [PATCH 540/715] More GCC 10 fixes --- wine-5.0-gcc10.patch | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/wine-5.0-gcc10.patch b/wine-5.0-gcc10.patch index 861b8e2..b885c67 100644 --- a/wine-5.0-gcc10.patch +++ b/wine-5.0-gcc10.patch @@ -20,3 +20,14 @@ /* Helper functions */ extern TW_UINT16 GPHOTO2_SaneCapability (pTW_CAPABILITY pCapability, TW_UINT16 action) DECLSPEC_HIDDEN; +--- a/dlls/gphoto2.ds/gphoto2_main.c 2020-01-22 10:22:39.110786117 -0600 ++++ b/dlls/gphoto2.ds/gphoto2_main.c 2020-01-22 10:22:51.743818190 -0600 +@@ -33,6 +33,8 @@ + + WINE_DEFAULT_DEBUG_CHANNEL(twain); + ++struct tagActiveDS activeDS; ++ + DSMENTRYPROC GPHOTO2_dsmentry; + + #ifdef HAVE_GPHOTO2 From 0524d423d0efd495531538ce5675931a15f0f43a Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 22 Jan 2020 10:32:26 -0600 Subject: [PATCH 541/715] Yet more GCC 10 fixes --- wine-5.0-gcc10.patch | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/wine-5.0-gcc10.patch b/wine-5.0-gcc10.patch index b885c67..4210821 100644 --- a/wine-5.0-gcc10.patch +++ b/wine-5.0-gcc10.patch @@ -31,3 +31,16 @@ DSMENTRYPROC GPHOTO2_dsmentry; #ifdef HAVE_GPHOTO2 +--- a/dlls/secur32/secur32_priv.h 2020-01-21 11:03:21.000000000 -0600 ++++ b/dlls/secur32/secur32_priv.h 2020-01-22 10:31:24.606451345 -0600 +@@ -190,8 +190,8 @@ + #define NTLMSSP_NEGOTIATE_56 0x80000000 + + +-SecPkgInfoW *ntlm_package_infoW DECLSPEC_HIDDEN; +-SecPkgInfoA *ntlm_package_infoA DECLSPEC_HIDDEN; ++extern SecPkgInfoW *ntlm_package_infoW DECLSPEC_HIDDEN; ++extern SecPkgInfoA *ntlm_package_infoA DECLSPEC_HIDDEN; + + /* schannel internal interface */ + typedef struct schan_imp_session_opaque *schan_imp_session; From e355090980e1cd56cad81f847c6c36e15361989a Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 22 Jan 2020 10:47:40 -0600 Subject: [PATCH 542/715] More GCC 10 fixes --- wine-5.0-gcc10.patch | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/wine-5.0-gcc10.patch b/wine-5.0-gcc10.patch index 4210821..081ca42 100644 --- a/wine-5.0-gcc10.patch +++ b/wine-5.0-gcc10.patch @@ -44,3 +44,33 @@ /* schannel internal interface */ typedef struct schan_imp_session_opaque *schan_imp_session; +--- a/dlls/sane.ds/sane_i.h 2020-01-21 11:03:21.000000000 -0600 ++++ b/dlls/sane.ds/sane_i.h 2020-01-22 10:44:01.675004730 -0600 +@@ -36,7 +36,7 @@ + #include "twain.h" + + #ifdef SONAME_LIBSANE +-#define MAKE_FUNCPTR(f) typeof(f) * p##f DECLSPEC_HIDDEN; ++#define MAKE_FUNCPTR(f) typeof(f) extern * p##f DECLSPEC_HIDDEN; + MAKE_FUNCPTR(sane_init) + MAKE_FUNCPTR(sane_exit) + MAKE_FUNCPTR(sane_get_devices) +@@ -84,7 +84,7 @@ + TW_FIX32 defaultXResolution; + BOOL YResolutionSet; + TW_FIX32 defaultYResolution; +-} activeDS DECLSPEC_HIDDEN; ++} extern activeDS DECLSPEC_HIDDEN; + + /* Helper functions */ + extern TW_UINT16 SANE_SaneCapability (pTW_CAPABILITY pCapability, TW_UINT16 action) DECLSPEC_HIDDEN; +--- a/dlls/sane.ds/sane_main.c 2020-01-22 10:45:52.264351469 -0600 ++++ b/dlls/sane.ds/sane_main.c 2020-01-22 10:46:12.131414210 -0600 +@@ -35,6 +35,7 @@ + #ifdef SONAME_LIBSANE + + HINSTANCE SANE_instance; ++struct tagActiveDS activeDS; + + static void *libsane_handle; + From bc11fbd831a83fa0ad9163922fc422c85c191829 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 22 Jan 2020 11:00:22 -0600 Subject: [PATCH 543/715] Fix GCC 10 fix --- wine-5.0-gcc10.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wine-5.0-gcc10.patch b/wine-5.0-gcc10.patch index 081ca42..4bb5412 100644 --- a/wine-5.0-gcc10.patch +++ b/wine-5.0-gcc10.patch @@ -51,7 +51,7 @@ #ifdef SONAME_LIBSANE -#define MAKE_FUNCPTR(f) typeof(f) * p##f DECLSPEC_HIDDEN; -+#define MAKE_FUNCPTR(f) typeof(f) extern * p##f DECLSPEC_HIDDEN; ++#define MAKE_FUNCPTR(f) extern typeof(f) * p##f DECLSPEC_HIDDEN; MAKE_FUNCPTR(sane_init) MAKE_FUNCPTR(sane_exit) MAKE_FUNCPTR(sane_get_devices) From 27df6b9768527430fd0d7890ba1ddf1beb943c3c Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 22 Jan 2020 12:05:20 -0600 Subject: [PATCH 544/715] Fix the GCC10 fix again --- wine-5.0-gcc10.patch | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/wine-5.0-gcc10.patch b/wine-5.0-gcc10.patch index 4bb5412..f97580c 100644 --- a/wine-5.0-gcc10.patch +++ b/wine-5.0-gcc10.patch @@ -66,8 +66,26 @@ extern TW_UINT16 SANE_SaneCapability (pTW_CAPABILITY pCapability, TW_UINT16 action) DECLSPEC_HIDDEN; --- a/dlls/sane.ds/sane_main.c 2020-01-22 10:45:52.264351469 -0600 +++ b/dlls/sane.ds/sane_main.c 2020-01-22 10:46:12.131414210 -0600 -@@ -35,6 +35,7 @@ +@@ -33,8 +33,25 @@ + DSMENTRYPROC SANE_dsmentry; + #ifdef SONAME_LIBSANE ++#define MAKE_FUNCPTR(f) typeof(f) * p##f; ++MAKE_FUNCPTR(sane_init) ++MAKE_FUNCPTR(sane_exit) ++MAKE_FUNCPTR(sane_get_devices) ++MAKE_FUNCPTR(sane_open) ++MAKE_FUNCPTR(sane_close) ++MAKE_FUNCPTR(sane_get_option_descriptor) ++MAKE_FUNCPTR(sane_control_option) ++MAKE_FUNCPTR(sane_get_parameters) ++MAKE_FUNCPTR(sane_start) ++MAKE_FUNCPTR(sane_read) ++MAKE_FUNCPTR(sane_cancel) ++MAKE_FUNCPTR(sane_set_io_mode) ++MAKE_FUNCPTR(sane_get_select_fd) ++MAKE_FUNCPTR(sane_strstatus) ++#undef MAKE_FUNCPTR HINSTANCE SANE_instance; +struct tagActiveDS activeDS; From 470df098aa51d96cb9c9107e7ef0be3eb189287c Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 22 Jan 2020 13:37:02 -0600 Subject: [PATCH 545/715] Additional GCC 10 fix --- wine-5.0-gcc10.patch | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/wine-5.0-gcc10.patch b/wine-5.0-gcc10.patch index f97580c..01c6006 100644 --- a/wine-5.0-gcc10.patch +++ b/wine-5.0-gcc10.patch @@ -92,3 +92,13 @@ static void *libsane_handle; +--- a/dlls/winebus.sys/bus.h 2020-01-21 11:03:21.000000000 -0600 ++++ b/dlls/winebus.sys/bus.h 2020-01-22 13:35:57.841283330 -0600 +@@ -54,5 +54,5 @@ + DWORD check_bus_option(const UNICODE_STRING *option, DWORD default_value) DECLSPEC_HIDDEN; + BOOL is_xbox_gamepad(WORD vid, WORD pid) DECLSPEC_HIDDEN; + +-HANDLE driver_key DECLSPEC_HIDDEN; +-DEVICE_OBJECT *bus_pdo DECLSPEC_HIDDEN; ++extern HANDLE driver_key DECLSPEC_HIDDEN; ++extern DEVICE_OBJECT *bus_pdo DECLSPEC_HIDDEN; From a79c6804fa3e37d4d6c000476a7934ba599630e1 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 22 Jan 2020 13:58:00 -0600 Subject: [PATCH 546/715] Hopefully the final GCC 10 fix --- wine-5.0-gcc10.patch | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/wine-5.0-gcc10.patch b/wine-5.0-gcc10.patch index 01c6006..ba37ffe 100644 --- a/wine-5.0-gcc10.patch +++ b/wine-5.0-gcc10.patch @@ -102,3 +102,18 @@ -DEVICE_OBJECT *bus_pdo DECLSPEC_HIDDEN; +extern HANDLE driver_key DECLSPEC_HIDDEN; +extern DEVICE_OBJECT *bus_pdo DECLSPEC_HIDDEN; +--- a/dlls/dsound/dsound_private.h 2020-01-21 11:03:21.000000000 -0600 ++++ b/dlls/dsound/dsound_private.h 2020-01-22 13:56:10.367702536 -0600 +@@ -188,9 +188,9 @@ + IDirectSoundBufferImpl **ppdsb, + IDirectSoundBufferImpl *pdsb) DECLSPEC_HIDDEN; + void secondarybuffer_destroy(IDirectSoundBufferImpl *This) DECLSPEC_HIDDEN; +-const IDirectSound3DListenerVtbl ds3dlvt DECLSPEC_HIDDEN; +-const IDirectSound3DBufferVtbl ds3dbvt DECLSPEC_HIDDEN; +-const IKsPropertySetVtbl iksbvt DECLSPEC_HIDDEN; ++extern const IDirectSound3DListenerVtbl ds3dlvt DECLSPEC_HIDDEN; ++extern const IDirectSound3DBufferVtbl ds3dbvt DECLSPEC_HIDDEN; ++extern const IKsPropertySetVtbl iksbvt DECLSPEC_HIDDEN; + + HRESULT IKsPrivatePropertySetImpl_Create(REFIID riid, void **ppv) DECLSPEC_HIDDEN; + From 0ecd341c2127f42c221126b9f6d81705b557a793 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 22 Jan 2020 13:58:26 -0600 Subject: [PATCH 547/715] Update make_install macro while I'm at it --- wine.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 5f41272..fcf46d2 100644 --- a/wine.spec +++ b/wine.spec @@ -733,7 +733,7 @@ make %{?_smp_mflags} TARGETFLAGS="" %install -%makeinstall \ +%make_install \ includedir=%{buildroot}%{_includedir} \ sysconfdir=%{buildroot}%{_sysconfdir}/wine \ dlldir=%{buildroot}%{_libdir}/wine \ From 8998932ce70700496e9bed376df623ad7e447d37 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 22 Jan 2020 14:16:12 -0600 Subject: [PATCH 548/715] There is a behavior change in make_install that I will figure out later --- wine.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index fcf46d2..5f41272 100644 --- a/wine.spec +++ b/wine.spec @@ -733,7 +733,7 @@ make %{?_smp_mflags} TARGETFLAGS="" %install -%make_install \ +%makeinstall \ includedir=%{buildroot}%{_includedir} \ sysconfdir=%{buildroot}%{_sysconfdir}/wine \ dlldir=%{buildroot}%{_libdir}/wine \ From ba123ffd3e6faa5dc1d4d6c13575a84f0c49302f Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 22 Jan 2020 14:45:42 -0600 Subject: [PATCH 549/715] More GCC10 fixes specific to armv7hl --- wine-5.0-gcc10.patch | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/wine-5.0-gcc10.patch b/wine-5.0-gcc10.patch index ba37ffe..5c688a2 100644 --- a/wine-5.0-gcc10.patch +++ b/wine-5.0-gcc10.patch @@ -117,3 +117,35 @@ HRESULT IKsPrivatePropertySetImpl_Create(REFIID riid, void **ppv) DECLSPEC_HIDDEN; +--- a/dlls/mshtml/mshtml_private.h 2020-01-21 11:03:21.000000000 -0600 ++++ b/dlls/mshtml/mshtml_private.h 2020-01-22 14:44:00.789960837 -0600 +@@ -355,12 +355,12 @@ + + DEFINE_GUID(IID_nsXPCOMCycleCollectionParticipant, 0x9674489b,0x1f6f,0x4550,0xa7,0x30, 0xcc,0xae,0xdd,0x10,0x4c,0xf9); + +-nsrefcnt (__cdecl *ccref_incr)(nsCycleCollectingAutoRefCnt*,nsISupports*) DECLSPEC_HIDDEN; +-nsrefcnt (__cdecl *ccref_decr)(nsCycleCollectingAutoRefCnt*,nsISupports*,ExternalCycleCollectionParticipant*) DECLSPEC_HIDDEN; +-void (__cdecl *ccref_init)(nsCycleCollectingAutoRefCnt*,nsrefcnt) DECLSPEC_HIDDEN; +-void (__cdecl *ccp_init)(ExternalCycleCollectionParticipant*,const CCObjCallback*) DECLSPEC_HIDDEN; +-void (__cdecl *describe_cc_node)(nsCycleCollectingAutoRefCnt*,const char*,nsCycleCollectionTraversalCallback*) DECLSPEC_HIDDEN; +-void (__cdecl *note_cc_edge)(nsISupports*,const char*,nsCycleCollectionTraversalCallback*) DECLSPEC_HIDDEN; ++extern nsrefcnt (__cdecl *ccref_incr)(nsCycleCollectingAutoRefCnt*,nsISupports*) DECLSPEC_HIDDEN; ++extern nsrefcnt (__cdecl *ccref_decr)(nsCycleCollectingAutoRefCnt*,nsISupports*,ExternalCycleCollectionParticipant*) DECLSPEC_HIDDEN; ++extern void (__cdecl *ccref_init)(nsCycleCollectingAutoRefCnt*,nsrefcnt) DECLSPEC_HIDDEN; ++extern void (__cdecl *ccp_init)(ExternalCycleCollectionParticipant*,const CCObjCallback*) DECLSPEC_HIDDEN; ++extern void (__cdecl *describe_cc_node)(nsCycleCollectingAutoRefCnt*,const char*,nsCycleCollectionTraversalCallback*) DECLSPEC_HIDDEN; ++extern void (__cdecl *note_cc_edge)(nsISupports*,const char*,nsCycleCollectionTraversalCallback*) DECLSPEC_HIDDEN; + + void init_dispex_with_compat_mode(DispatchEx*,IUnknown*,dispex_static_data_t*,compat_mode_t) DECLSPEC_HIDDEN; + void release_dispex(DispatchEx*) DECLSPEC_HIDDEN; +--- a/dlls/mshtml/htmlstyle.h 2020-01-22 14:45:04.824112648 -0600 ++++ b/dlls/mshtml/htmlstyle.h 2020-01-21 11:03:21.000000000 -0600 +@@ -142,7 +142,7 @@ + dispex_static_data_t*,compat_mode_t) DECLSPEC_HIDDEN; + + void CSSStyle_init_dispex_info(dispex_data_t *info, compat_mode_t mode) DECLSPEC_HIDDEN; +-extern const dispex_static_data_vtbl_t CSSStyle_dispex_vtbl DECLSPEC_HIDDEN; ++const dispex_static_data_vtbl_t CSSStyle_dispex_vtbl DECLSPEC_HIDDEN; + + HRESULT get_style_property(CSSStyle*,styleid_t,BSTR*) DECLSPEC_HIDDEN; + HRESULT get_style_property_var(CSSStyle*,styleid_t,VARIANT*) DECLSPEC_HIDDEN; From 7a6e984668f40f1a6638f4f53255cced37b6a0f2 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 22 Jan 2020 14:51:26 -0600 Subject: [PATCH 550/715] Fix GCC10 patch --- wine-5.0-gcc10.patch | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wine-5.0-gcc10.patch b/wine-5.0-gcc10.patch index 5c688a2..65931bb 100644 --- a/wine-5.0-gcc10.patch +++ b/wine-5.0-gcc10.patch @@ -144,8 +144,8 @@ dispex_static_data_t*,compat_mode_t) DECLSPEC_HIDDEN; void CSSStyle_init_dispex_info(dispex_data_t *info, compat_mode_t mode) DECLSPEC_HIDDEN; --extern const dispex_static_data_vtbl_t CSSStyle_dispex_vtbl DECLSPEC_HIDDEN; -+const dispex_static_data_vtbl_t CSSStyle_dispex_vtbl DECLSPEC_HIDDEN; +-const dispex_static_data_vtbl_t CSSStyle_dispex_vtbl DECLSPEC_HIDDEN; ++extern const dispex_static_data_vtbl_t CSSStyle_dispex_vtbl DECLSPEC_HIDDEN; HRESULT get_style_property(CSSStyle*,styleid_t,BSTR*) DECLSPEC_HIDDEN; HRESULT get_style_property_var(CSSStyle*,styleid_t,VARIANT*) DECLSPEC_HIDDEN; From 40fea800aee14e0771b081a2e2faa2e19a2a4eef Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 22 Jan 2020 15:14:15 -0600 Subject: [PATCH 551/715] Another GCC10 fix --- wine-5.0-gcc10.patch | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/wine-5.0-gcc10.patch b/wine-5.0-gcc10.patch index 65931bb..d940940 100644 --- a/wine-5.0-gcc10.patch +++ b/wine-5.0-gcc10.patch @@ -149,3 +149,18 @@ HRESULT get_style_property(CSSStyle*,styleid_t,BSTR*) DECLSPEC_HIDDEN; HRESULT get_style_property_var(CSSStyle*,styleid_t,VARIANT*) DECLSPEC_HIDDEN; +--- a/dlls/mshtml/main.c 2020-01-22 15:13:00.207929201 -0600 ++++ b/dlls/mshtml/main.c 2020-01-22 15:13:10.037943213 -0600 +@@ -51,6 +51,12 @@ + HINSTANCE hInst; + DWORD mshtml_tls = TLS_OUT_OF_INDEXES; + ++void (__cdecl *ccp_init)(ExternalCycleCollectionParticipant*,const CCObjCallback*); ++nsrefcnt (__cdecl *ccref_decr)(nsCycleCollectingAutoRefCnt*,nsISupports*,ExternalCycleCollectionParticipant*); ++nsrefcnt (__cdecl *ccref_incr)(nsCycleCollectingAutoRefCnt*,nsISupports*); ++void (__cdecl *describe_cc_node)(nsCycleCollectingAutoRefCnt*,const char*,nsCycleCollectionTraversalCallback*); ++void (__cdecl *note_cc_edge)(nsISupports*,const char*,nsCycleCollectionTraversalCallback*); ++ + static HINSTANCE shdoclc = NULL; + static WCHAR *status_strings[IDS_STATUS_LAST-IDS_STATUS_FIRST+1]; + static IMultiLanguage2 *mlang; From 11294204c968d68ce1aae91f57387789760235f8 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 22 Jan 2020 15:21:32 -0600 Subject: [PATCH 552/715] Missed one function --- wine-5.0-gcc10.patch | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/wine-5.0-gcc10.patch b/wine-5.0-gcc10.patch index d940940..490d9d1 100644 --- a/wine-5.0-gcc10.patch +++ b/wine-5.0-gcc10.patch @@ -151,13 +151,14 @@ HRESULT get_style_property_var(CSSStyle*,styleid_t,VARIANT*) DECLSPEC_HIDDEN; --- a/dlls/mshtml/main.c 2020-01-22 15:13:00.207929201 -0600 +++ b/dlls/mshtml/main.c 2020-01-22 15:13:10.037943213 -0600 -@@ -51,6 +51,12 @@ +@@ -51,6 +51,13 @@ HINSTANCE hInst; DWORD mshtml_tls = TLS_OUT_OF_INDEXES; +void (__cdecl *ccp_init)(ExternalCycleCollectionParticipant*,const CCObjCallback*); +nsrefcnt (__cdecl *ccref_decr)(nsCycleCollectingAutoRefCnt*,nsISupports*,ExternalCycleCollectionParticipant*); +nsrefcnt (__cdecl *ccref_incr)(nsCycleCollectingAutoRefCnt*,nsISupports*); ++void (__cdecl *ccref_init)(nsCycleCollectingAutoRefCnt*,nsrefcnt); +void (__cdecl *describe_cc_node)(nsCycleCollectingAutoRefCnt*,const char*,nsCycleCollectionTraversalCallback*); +void (__cdecl *note_cc_edge)(nsISupports*,const char*,nsCycleCollectionTraversalCallback*); + From 0cdca5f89df48def9a1a7a27c6b8b6c4f05591f1 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 22 Jan 2020 15:42:53 -0600 Subject: [PATCH 553/715] More armv7hl gcc 10 fixes --- wine-5.0-gcc10.patch | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/wine-5.0-gcc10.patch b/wine-5.0-gcc10.patch index 490d9d1..d8012e0 100644 --- a/wine-5.0-gcc10.patch +++ b/wine-5.0-gcc10.patch @@ -165,3 +165,14 @@ static HINSTANCE shdoclc = NULL; static WCHAR *status_strings[IDS_STATUS_LAST-IDS_STATUS_FIRST+1]; static IMultiLanguage2 *mlang; +--- a/dlls/msi/msi.c 2020-01-21 11:03:21.000000000 -0600 ++++ b/dlls/msi/msi.c 2020-01-22 15:42:12.934090382 -0600 +@@ -51,6 +51,8 @@ + + WINE_DEFAULT_DEBUG_CHANNEL(msi); + ++BOOL is_wow64; ++ + static const WCHAR installerW[] = {'\\','I','n','s','t','a','l','l','e','r',0}; + + UINT msi_locate_product(LPCWSTR szProduct, MSIINSTALLCONTEXT *context) From 112955dc9e1215b03fffbb1f03c612679f6722b5 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 22 Jan 2020 16:03:26 -0600 Subject: [PATCH 554/715] Missing change in gcc10 patch --- wine-5.0-gcc10.patch | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/wine-5.0-gcc10.patch b/wine-5.0-gcc10.patch index d8012e0..5a0f801 100644 --- a/wine-5.0-gcc10.patch +++ b/wine-5.0-gcc10.patch @@ -165,6 +165,17 @@ static HINSTANCE shdoclc = NULL; static WCHAR *status_strings[IDS_STATUS_LAST-IDS_STATUS_FIRST+1]; static IMultiLanguage2 *mlang; +--- a/dlls/msi/msipriv.h 2020-01-21 11:03:21.000000000 -0600 ++++ b/dlls/msi/msipriv.h 2020-01-22 15:40:15.362792925 -0600 +@@ -42,7 +42,7 @@ + #include "winemsi.h" + + static const BOOL is_64bit = sizeof(void *) > sizeof(int); +-BOOL is_wow64 DECLSPEC_HIDDEN; ++extern BOOL is_wow64 DECLSPEC_HIDDEN; + + #define MSI_DATASIZEMASK 0x00ff + #define MSITYPE_VALID 0x0100 --- a/dlls/msi/msi.c 2020-01-21 11:03:21.000000000 -0600 +++ b/dlls/msi/msi.c 2020-01-22 15:42:12.934090382 -0600 @@ -51,6 +51,8 @@ From 787b6f0fbfe782e7d59ccf8a6d1b344f225aa7a7 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 22 Jan 2020 16:32:29 -0600 Subject: [PATCH 555/715] More armv7hl gcc10 fixes --- wine-5.0-gcc10.patch | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/wine-5.0-gcc10.patch b/wine-5.0-gcc10.patch index 5a0f801..915f0e0 100644 --- a/wine-5.0-gcc10.patch +++ b/wine-5.0-gcc10.patch @@ -187,3 +187,33 @@ static const WCHAR installerW[] = {'\\','I','n','s','t','a','l','l','e','r',0}; UINT msi_locate_product(LPCWSTR szProduct, MSIINSTALLCONTEXT *context) +--- a/dlls/twain_32/twain_i.h 2020-01-21 11:03:21.000000000 -0600 ++++ b/dlls/twain_32/twain_i.h 2020-01-22 16:29:07.623205272 -0600 +@@ -45,11 +45,11 @@ + HWND event_window; + } activeDS; + +-TW_UINT16 DSM_twCC DECLSPEC_HIDDEN; /* current condition code of Source Manager */ ++extern TW_UINT16 DSM_twCC DECLSPEC_HIDDEN; /* current condition code of Source Manager */ + +-activeDS *activeSources DECLSPEC_HIDDEN; /* list of active data sources */ ++extern activeDS *activeSources DECLSPEC_HIDDEN; /* list of active data sources */ + +-HINSTANCE DSM_hinstance DECLSPEC_HIDDEN; ++extern HINSTANCE DSM_hinstance DECLSPEC_HIDDEN; + + /* Implementation of operation triplets (From Application to Source Manager) */ + extern TW_UINT16 TWAIN_CloseDS +--- a/dlls/twain_32/twain32_main.c 2020-01-22 16:31:43.494607403 -0600 ++++ b/dlls/twain_32/twain32_main.c 2020-01-22 16:31:02.012503703 -0600 +@@ -29,6 +29,10 @@ + + WINE_DEFAULT_DEBUG_CHANNEL(twain); + ++TW_UINT16 DSM_twCC; ++activeDS *activeSources; ++HINSTANCE DSM_hinstance; ++ + BOOL WINAPI DllMain (HINSTANCE hinstance, DWORD reason, LPVOID reserved) + { + TRACE("%p,%x,%p\n", hinstance, reason, reserved); From 7e1e29789305cf6cbfe67d87ade7c57d162e67b5 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 22 Jan 2020 16:37:25 -0600 Subject: [PATCH 556/715] Fix broken patch --- wine-5.0-gcc10.patch | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/wine-5.0-gcc10.patch b/wine-5.0-gcc10.patch index 915f0e0..88c8477 100644 --- a/wine-5.0-gcc10.patch +++ b/wine-5.0-gcc10.patch @@ -206,14 +206,14 @@ extern TW_UINT16 TWAIN_CloseDS --- a/dlls/twain_32/twain32_main.c 2020-01-22 16:31:43.494607403 -0600 +++ b/dlls/twain_32/twain32_main.c 2020-01-22 16:31:02.012503703 -0600 -@@ -29,6 +29,10 @@ +@@ -29,7 +29,9 @@ WINE_DEFAULT_DEBUG_CHANNEL(twain); +-extern HINSTANCE DSM_hinstance; +TW_UINT16 DSM_twCC; +activeDS *activeSources; +HINSTANCE DSM_hinstance; -+ + BOOL WINAPI DllMain (HINSTANCE hinstance, DWORD reason, LPVOID reserved) { - TRACE("%p,%x,%p\n", hinstance, reason, reserved); From f21c40d4844f280ed6bbb240ca60740777629280 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 22 Jan 2020 17:23:27 -0600 Subject: [PATCH 557/715] Another gcc10 fix for armv7hl --- wine-5.0-gcc10.patch | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/wine-5.0-gcc10.patch b/wine-5.0-gcc10.patch index 88c8477..2938c46 100644 --- a/wine-5.0-gcc10.patch +++ b/wine-5.0-gcc10.patch @@ -217,3 +217,27 @@ BOOL WINAPI DllMain (HINSTANCE hinstance, DWORD reason, LPVOID reserved) { +--- a/dlls/wbemprox/wbemprox_private.h 2020-01-21 11:03:21.000000000 -0600 ++++ b/dlls/wbemprox/wbemprox_private.h 2020-01-22 17:19:26.786296263 -0600 +@@ -20,8 +20,8 @@ + #include "wine/heap.h" + #include "wine/list.h" + +-IClientSecurity client_security DECLSPEC_HIDDEN; +-struct list *table_list DECLSPEC_HIDDEN; ++extern IClientSecurity client_security DECLSPEC_HIDDEN; ++extern struct list *table_list DECLSPEC_HIDDEN; + + enum param_direction + { +--- a/dlls/wbemprox/main.c 2020-01-21 11:03:21.000000000 -0600 ++++ b/dlls/wbemprox/main.c 2020-01-22 17:21:03.556806147 -0600 +@@ -35,6 +35,8 @@ + + static HINSTANCE instance; + ++struct list *table_list; ++ + typedef HRESULT (*fnCreateInstance)( LPVOID *ppObj ); + + typedef struct From acd02f2ea786bd779b7e61a55b0697f55dc93624 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 22 Jan 2020 17:50:25 -0600 Subject: [PATCH 558/715] Yet another armv7hl gcc10 fix --- wine-5.0-gcc10.patch | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/wine-5.0-gcc10.patch b/wine-5.0-gcc10.patch index 2938c46..fea9e3f 100644 --- a/wine-5.0-gcc10.patch +++ b/wine-5.0-gcc10.patch @@ -241,3 +241,25 @@ typedef HRESULT (*fnCreateInstance)( LPVOID *ppObj ); typedef struct +--- a/dlls/webservices/webservices_private.h 2020-01-21 11:03:21.000000000 -0600 ++++ b/dlls/webservices/webservices_private.h 2020-01-22 17:49:07.121885897 -0600 +@@ -18,7 +18,7 @@ + + #include "winhttp.h" + +-_locale_t c_locale DECLSPEC_HIDDEN; ++extern _locale_t c_locale DECLSPEC_HIDDEN; + + #define STREAM_BUFSIZE 4096 + +@@ -50,8 +50,8 @@ + ULONG current_sequence; + ULONG *sequence; + }; +-struct dictionary dict_builtin DECLSPEC_HIDDEN; +-const struct dictionary dict_builtin_static DECLSPEC_HIDDEN; ++extern struct dictionary dict_builtin DECLSPEC_HIDDEN; ++extern const struct dictionary dict_builtin_static DECLSPEC_HIDDEN; + + int find_string( const struct dictionary *, const unsigned char *, ULONG, ULONG * ) DECLSPEC_HIDDEN; + HRESULT insert_string( struct dictionary *, unsigned char *, ULONG, int, ULONG * ) DECLSPEC_HIDDEN; From 82fc381d6b3d30265a4fc59c51d49482e148fc36 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 22 Jan 2020 20:41:18 -0600 Subject: [PATCH 559/715] Another armv7hl fix --- wine-5.0-gcc10.patch | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/wine-5.0-gcc10.patch b/wine-5.0-gcc10.patch index fea9e3f..a4a01e5 100644 --- a/wine-5.0-gcc10.patch +++ b/wine-5.0-gcc10.patch @@ -263,3 +263,16 @@ int find_string( const struct dictionary *, const unsigned char *, ULONG, ULONG * ) DECLSPEC_HIDDEN; HRESULT insert_string( struct dictionary *, unsigned char *, ULONG, int, ULONG * ) DECLSPEC_HIDDEN; +--- a/dlls/xinput1_3/xinput_private.h 2020-01-21 11:03:21.000000000 -0600 ++++ b/dlls/xinput1_3/xinput_private.h 2020-01-22 20:39:40.632230103 -0600 +@@ -26,8 +26,8 @@ + XINPUT_VIBRATION vibration; + } xinput_controller; + +-CRITICAL_SECTION xinput_crit; +-xinput_controller controllers[XUSER_MAX_COUNT]; ++extern CRITICAL_SECTION xinput_crit; ++extern xinput_controller controllers[XUSER_MAX_COUNT]; + + void HID_find_gamepads(xinput_controller *devices) DECLSPEC_HIDDEN; + void HID_destroy_gamepads(xinput_controller *devices) DECLSPEC_HIDDEN; From 3738e412ca4efc0ecb6147ca24c1032c031fc464 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 31 Jan 2020 03:44:02 +0000 Subject: [PATCH 560/715] - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- wine.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 5f41272..e3fce61 100644 --- a/wine.spec +++ b/wine.spec @@ -42,7 +42,7 @@ Name: wine Version: 5.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -2290,6 +2290,9 @@ fi %endif %changelog +* Fri Jan 31 2020 Fedora Release Engineering - 5.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + * Wed Jan 22 2020 Michael Cronenworth 5.0-1 - version update From d4c2036994d18c8977e0c10989ca0f3b8af26819 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 3 Feb 2020 13:43:53 -0600 Subject: [PATCH 561/715] Update to 5.1 --- .gitignore | 6 +- sources | 6 +- wine-5.0-gcc10.patch | 278 ------------------------------------------- wine.spec | 20 ++-- 4 files changed, 14 insertions(+), 296 deletions(-) delete mode 100644 wine-5.0-gcc10.patch diff --git a/.gitignore b/.gitignore index ae1e10c..ff3f354 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-5.0.tar.xz -/wine-5.0.tar.xz.sign -/wine-staging-5.0.tar.gz +/wine-5.1.tar.xz +/wine-5.1.tar.xz.sign +/wine-staging-5.1.tar.gz diff --git a/sources b/sources index ef2c2fd..9e0e8a9 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-5.0.tar.xz) = 681de951804c3dd3ae8c677a0ea52d172b04cac58594698b191cd972b25899cd2030d01a25fc2ad2eb6b99976a30319d2bd5ba8b7ff98b1a8b43832fa6514b83 -SHA512 (wine-5.0.tar.xz.sign) = fad666dc0a0906ff1724e8fe9c7cfecd9f654d83c00ebd0b745b2086d1452f08394dec8ea3bbacb5378b6c0b84caa306cb3e037bd83012ff27b9374a11487932 -SHA512 (wine-staging-5.0.tar.gz) = 36849fc2c848db9949982619c4544b56468012a1f086cc92eb3e2027377c58c3c24daf508149e0e34a70e6b283edfd80833dc2f346c75f0be69f1fb2c5999cd6 +SHA512 (wine-5.1.tar.xz) = b842b533884f15a8fb71373258671d74aee997d9ed9ee0fb36f945cd2006b494f6cc6c91a8ca47e0ea5b0b39b108f2c4f155918823a7ddf3cd44b4e26ede9171 +SHA512 (wine-5.1.tar.xz.sign) = e53308ac307b7c5f058d2a96ab8d075f6c8dc923f56a9322244b36a29ec691a9a0108979192491ab7150b5386c53228292cd4465dd4a49db265fbf7f0f9c1927 +SHA512 (wine-staging-5.1.tar.gz) = ebb9bf0a0a3c7f108fff8b32ca79124d1da410fbfb320ad3298f3d92fabeb9ca81de6a4fefac344948a70c49771ffa3f0dc30de2ee6d6f61d158ed87a206a14e diff --git a/wine-5.0-gcc10.patch b/wine-5.0-gcc10.patch deleted file mode 100644 index a4a01e5..0000000 --- a/wine-5.0-gcc10.patch +++ /dev/null @@ -1,278 +0,0 @@ ---- a/dlls/crypt32/crypt32_private.h 2020-01-21 11:03:21.000000000 -0600 -+++ b/dlls/crypt32/crypt32_private.h 2020-01-22 09:09:42.545954092 -0600 -@@ -152,7 +152,7 @@ - */ - HCRYPTPROV WINAPI I_CryptGetDefaultCryptProv(ALG_ID); - --HINSTANCE hInstance DECLSPEC_HIDDEN; -+extern HINSTANCE hInstance DECLSPEC_HIDDEN; - - void crypt_oid_init(void) DECLSPEC_HIDDEN; - void crypt_oid_free(void) DECLSPEC_HIDDEN; ---- a/dlls/gphoto2.ds/gphoto2_i.h 2020-01-21 11:03:21.000000000 -0600 -+++ b/dlls/gphoto2.ds/gphoto2_i.h 2020-01-22 10:07:59.403974843 -0600 -@@ -100,7 +100,7 @@ - struct jpeg_decompress_struct jd; - struct jpeg_error_mgr jerr; - #endif --} activeDS DECLSPEC_HIDDEN; -+} extern activeDS DECLSPEC_HIDDEN; - - /* Helper functions */ - extern TW_UINT16 GPHOTO2_SaneCapability (pTW_CAPABILITY pCapability, TW_UINT16 action) DECLSPEC_HIDDEN; ---- a/dlls/gphoto2.ds/gphoto2_main.c 2020-01-22 10:22:39.110786117 -0600 -+++ b/dlls/gphoto2.ds/gphoto2_main.c 2020-01-22 10:22:51.743818190 -0600 -@@ -33,6 +33,8 @@ - - WINE_DEFAULT_DEBUG_CHANNEL(twain); - -+struct tagActiveDS activeDS; -+ - DSMENTRYPROC GPHOTO2_dsmentry; - - #ifdef HAVE_GPHOTO2 ---- a/dlls/secur32/secur32_priv.h 2020-01-21 11:03:21.000000000 -0600 -+++ b/dlls/secur32/secur32_priv.h 2020-01-22 10:31:24.606451345 -0600 -@@ -190,8 +190,8 @@ - #define NTLMSSP_NEGOTIATE_56 0x80000000 - - --SecPkgInfoW *ntlm_package_infoW DECLSPEC_HIDDEN; --SecPkgInfoA *ntlm_package_infoA DECLSPEC_HIDDEN; -+extern SecPkgInfoW *ntlm_package_infoW DECLSPEC_HIDDEN; -+extern SecPkgInfoA *ntlm_package_infoA DECLSPEC_HIDDEN; - - /* schannel internal interface */ - typedef struct schan_imp_session_opaque *schan_imp_session; ---- a/dlls/sane.ds/sane_i.h 2020-01-21 11:03:21.000000000 -0600 -+++ b/dlls/sane.ds/sane_i.h 2020-01-22 10:44:01.675004730 -0600 -@@ -36,7 +36,7 @@ - #include "twain.h" - - #ifdef SONAME_LIBSANE --#define MAKE_FUNCPTR(f) typeof(f) * p##f DECLSPEC_HIDDEN; -+#define MAKE_FUNCPTR(f) extern typeof(f) * p##f DECLSPEC_HIDDEN; - MAKE_FUNCPTR(sane_init) - MAKE_FUNCPTR(sane_exit) - MAKE_FUNCPTR(sane_get_devices) -@@ -84,7 +84,7 @@ - TW_FIX32 defaultXResolution; - BOOL YResolutionSet; - TW_FIX32 defaultYResolution; --} activeDS DECLSPEC_HIDDEN; -+} extern activeDS DECLSPEC_HIDDEN; - - /* Helper functions */ - extern TW_UINT16 SANE_SaneCapability (pTW_CAPABILITY pCapability, TW_UINT16 action) DECLSPEC_HIDDEN; ---- a/dlls/sane.ds/sane_main.c 2020-01-22 10:45:52.264351469 -0600 -+++ b/dlls/sane.ds/sane_main.c 2020-01-22 10:46:12.131414210 -0600 -@@ -33,8 +33,25 @@ - DSMENTRYPROC SANE_dsmentry; - - #ifdef SONAME_LIBSANE -+#define MAKE_FUNCPTR(f) typeof(f) * p##f; -+MAKE_FUNCPTR(sane_init) -+MAKE_FUNCPTR(sane_exit) -+MAKE_FUNCPTR(sane_get_devices) -+MAKE_FUNCPTR(sane_open) -+MAKE_FUNCPTR(sane_close) -+MAKE_FUNCPTR(sane_get_option_descriptor) -+MAKE_FUNCPTR(sane_control_option) -+MAKE_FUNCPTR(sane_get_parameters) -+MAKE_FUNCPTR(sane_start) -+MAKE_FUNCPTR(sane_read) -+MAKE_FUNCPTR(sane_cancel) -+MAKE_FUNCPTR(sane_set_io_mode) -+MAKE_FUNCPTR(sane_get_select_fd) -+MAKE_FUNCPTR(sane_strstatus) -+#undef MAKE_FUNCPTR - - HINSTANCE SANE_instance; -+struct tagActiveDS activeDS; - - static void *libsane_handle; - ---- a/dlls/winebus.sys/bus.h 2020-01-21 11:03:21.000000000 -0600 -+++ b/dlls/winebus.sys/bus.h 2020-01-22 13:35:57.841283330 -0600 -@@ -54,5 +54,5 @@ - DWORD check_bus_option(const UNICODE_STRING *option, DWORD default_value) DECLSPEC_HIDDEN; - BOOL is_xbox_gamepad(WORD vid, WORD pid) DECLSPEC_HIDDEN; - --HANDLE driver_key DECLSPEC_HIDDEN; --DEVICE_OBJECT *bus_pdo DECLSPEC_HIDDEN; -+extern HANDLE driver_key DECLSPEC_HIDDEN; -+extern DEVICE_OBJECT *bus_pdo DECLSPEC_HIDDEN; ---- a/dlls/dsound/dsound_private.h 2020-01-21 11:03:21.000000000 -0600 -+++ b/dlls/dsound/dsound_private.h 2020-01-22 13:56:10.367702536 -0600 -@@ -188,9 +188,9 @@ - IDirectSoundBufferImpl **ppdsb, - IDirectSoundBufferImpl *pdsb) DECLSPEC_HIDDEN; - void secondarybuffer_destroy(IDirectSoundBufferImpl *This) DECLSPEC_HIDDEN; --const IDirectSound3DListenerVtbl ds3dlvt DECLSPEC_HIDDEN; --const IDirectSound3DBufferVtbl ds3dbvt DECLSPEC_HIDDEN; --const IKsPropertySetVtbl iksbvt DECLSPEC_HIDDEN; -+extern const IDirectSound3DListenerVtbl ds3dlvt DECLSPEC_HIDDEN; -+extern const IDirectSound3DBufferVtbl ds3dbvt DECLSPEC_HIDDEN; -+extern const IKsPropertySetVtbl iksbvt DECLSPEC_HIDDEN; - - HRESULT IKsPrivatePropertySetImpl_Create(REFIID riid, void **ppv) DECLSPEC_HIDDEN; - ---- a/dlls/mshtml/mshtml_private.h 2020-01-21 11:03:21.000000000 -0600 -+++ b/dlls/mshtml/mshtml_private.h 2020-01-22 14:44:00.789960837 -0600 -@@ -355,12 +355,12 @@ - - DEFINE_GUID(IID_nsXPCOMCycleCollectionParticipant, 0x9674489b,0x1f6f,0x4550,0xa7,0x30, 0xcc,0xae,0xdd,0x10,0x4c,0xf9); - --nsrefcnt (__cdecl *ccref_incr)(nsCycleCollectingAutoRefCnt*,nsISupports*) DECLSPEC_HIDDEN; --nsrefcnt (__cdecl *ccref_decr)(nsCycleCollectingAutoRefCnt*,nsISupports*,ExternalCycleCollectionParticipant*) DECLSPEC_HIDDEN; --void (__cdecl *ccref_init)(nsCycleCollectingAutoRefCnt*,nsrefcnt) DECLSPEC_HIDDEN; --void (__cdecl *ccp_init)(ExternalCycleCollectionParticipant*,const CCObjCallback*) DECLSPEC_HIDDEN; --void (__cdecl *describe_cc_node)(nsCycleCollectingAutoRefCnt*,const char*,nsCycleCollectionTraversalCallback*) DECLSPEC_HIDDEN; --void (__cdecl *note_cc_edge)(nsISupports*,const char*,nsCycleCollectionTraversalCallback*) DECLSPEC_HIDDEN; -+extern nsrefcnt (__cdecl *ccref_incr)(nsCycleCollectingAutoRefCnt*,nsISupports*) DECLSPEC_HIDDEN; -+extern nsrefcnt (__cdecl *ccref_decr)(nsCycleCollectingAutoRefCnt*,nsISupports*,ExternalCycleCollectionParticipant*) DECLSPEC_HIDDEN; -+extern void (__cdecl *ccref_init)(nsCycleCollectingAutoRefCnt*,nsrefcnt) DECLSPEC_HIDDEN; -+extern void (__cdecl *ccp_init)(ExternalCycleCollectionParticipant*,const CCObjCallback*) DECLSPEC_HIDDEN; -+extern void (__cdecl *describe_cc_node)(nsCycleCollectingAutoRefCnt*,const char*,nsCycleCollectionTraversalCallback*) DECLSPEC_HIDDEN; -+extern void (__cdecl *note_cc_edge)(nsISupports*,const char*,nsCycleCollectionTraversalCallback*) DECLSPEC_HIDDEN; - - void init_dispex_with_compat_mode(DispatchEx*,IUnknown*,dispex_static_data_t*,compat_mode_t) DECLSPEC_HIDDEN; - void release_dispex(DispatchEx*) DECLSPEC_HIDDEN; ---- a/dlls/mshtml/htmlstyle.h 2020-01-22 14:45:04.824112648 -0600 -+++ b/dlls/mshtml/htmlstyle.h 2020-01-21 11:03:21.000000000 -0600 -@@ -142,7 +142,7 @@ - dispex_static_data_t*,compat_mode_t) DECLSPEC_HIDDEN; - - void CSSStyle_init_dispex_info(dispex_data_t *info, compat_mode_t mode) DECLSPEC_HIDDEN; --const dispex_static_data_vtbl_t CSSStyle_dispex_vtbl DECLSPEC_HIDDEN; -+extern const dispex_static_data_vtbl_t CSSStyle_dispex_vtbl DECLSPEC_HIDDEN; - - HRESULT get_style_property(CSSStyle*,styleid_t,BSTR*) DECLSPEC_HIDDEN; - HRESULT get_style_property_var(CSSStyle*,styleid_t,VARIANT*) DECLSPEC_HIDDEN; ---- a/dlls/mshtml/main.c 2020-01-22 15:13:00.207929201 -0600 -+++ b/dlls/mshtml/main.c 2020-01-22 15:13:10.037943213 -0600 -@@ -51,6 +51,13 @@ - HINSTANCE hInst; - DWORD mshtml_tls = TLS_OUT_OF_INDEXES; - -+void (__cdecl *ccp_init)(ExternalCycleCollectionParticipant*,const CCObjCallback*); -+nsrefcnt (__cdecl *ccref_decr)(nsCycleCollectingAutoRefCnt*,nsISupports*,ExternalCycleCollectionParticipant*); -+nsrefcnt (__cdecl *ccref_incr)(nsCycleCollectingAutoRefCnt*,nsISupports*); -+void (__cdecl *ccref_init)(nsCycleCollectingAutoRefCnt*,nsrefcnt); -+void (__cdecl *describe_cc_node)(nsCycleCollectingAutoRefCnt*,const char*,nsCycleCollectionTraversalCallback*); -+void (__cdecl *note_cc_edge)(nsISupports*,const char*,nsCycleCollectionTraversalCallback*); -+ - static HINSTANCE shdoclc = NULL; - static WCHAR *status_strings[IDS_STATUS_LAST-IDS_STATUS_FIRST+1]; - static IMultiLanguage2 *mlang; ---- a/dlls/msi/msipriv.h 2020-01-21 11:03:21.000000000 -0600 -+++ b/dlls/msi/msipriv.h 2020-01-22 15:40:15.362792925 -0600 -@@ -42,7 +42,7 @@ - #include "winemsi.h" - - static const BOOL is_64bit = sizeof(void *) > sizeof(int); --BOOL is_wow64 DECLSPEC_HIDDEN; -+extern BOOL is_wow64 DECLSPEC_HIDDEN; - - #define MSI_DATASIZEMASK 0x00ff - #define MSITYPE_VALID 0x0100 ---- a/dlls/msi/msi.c 2020-01-21 11:03:21.000000000 -0600 -+++ b/dlls/msi/msi.c 2020-01-22 15:42:12.934090382 -0600 -@@ -51,6 +51,8 @@ - - WINE_DEFAULT_DEBUG_CHANNEL(msi); - -+BOOL is_wow64; -+ - static const WCHAR installerW[] = {'\\','I','n','s','t','a','l','l','e','r',0}; - - UINT msi_locate_product(LPCWSTR szProduct, MSIINSTALLCONTEXT *context) ---- a/dlls/twain_32/twain_i.h 2020-01-21 11:03:21.000000000 -0600 -+++ b/dlls/twain_32/twain_i.h 2020-01-22 16:29:07.623205272 -0600 -@@ -45,11 +45,11 @@ - HWND event_window; - } activeDS; - --TW_UINT16 DSM_twCC DECLSPEC_HIDDEN; /* current condition code of Source Manager */ -+extern TW_UINT16 DSM_twCC DECLSPEC_HIDDEN; /* current condition code of Source Manager */ - --activeDS *activeSources DECLSPEC_HIDDEN; /* list of active data sources */ -+extern activeDS *activeSources DECLSPEC_HIDDEN; /* list of active data sources */ - --HINSTANCE DSM_hinstance DECLSPEC_HIDDEN; -+extern HINSTANCE DSM_hinstance DECLSPEC_HIDDEN; - - /* Implementation of operation triplets (From Application to Source Manager) */ - extern TW_UINT16 TWAIN_CloseDS ---- a/dlls/twain_32/twain32_main.c 2020-01-22 16:31:43.494607403 -0600 -+++ b/dlls/twain_32/twain32_main.c 2020-01-22 16:31:02.012503703 -0600 -@@ -29,7 +29,9 @@ - - WINE_DEFAULT_DEBUG_CHANNEL(twain); - --extern HINSTANCE DSM_hinstance; -+TW_UINT16 DSM_twCC; -+activeDS *activeSources; -+HINSTANCE DSM_hinstance; - - BOOL WINAPI DllMain (HINSTANCE hinstance, DWORD reason, LPVOID reserved) - { ---- a/dlls/wbemprox/wbemprox_private.h 2020-01-21 11:03:21.000000000 -0600 -+++ b/dlls/wbemprox/wbemprox_private.h 2020-01-22 17:19:26.786296263 -0600 -@@ -20,8 +20,8 @@ - #include "wine/heap.h" - #include "wine/list.h" - --IClientSecurity client_security DECLSPEC_HIDDEN; --struct list *table_list DECLSPEC_HIDDEN; -+extern IClientSecurity client_security DECLSPEC_HIDDEN; -+extern struct list *table_list DECLSPEC_HIDDEN; - - enum param_direction - { ---- a/dlls/wbemprox/main.c 2020-01-21 11:03:21.000000000 -0600 -+++ b/dlls/wbemprox/main.c 2020-01-22 17:21:03.556806147 -0600 -@@ -35,6 +35,8 @@ - - static HINSTANCE instance; - -+struct list *table_list; -+ - typedef HRESULT (*fnCreateInstance)( LPVOID *ppObj ); - - typedef struct ---- a/dlls/webservices/webservices_private.h 2020-01-21 11:03:21.000000000 -0600 -+++ b/dlls/webservices/webservices_private.h 2020-01-22 17:49:07.121885897 -0600 -@@ -18,7 +18,7 @@ - - #include "winhttp.h" - --_locale_t c_locale DECLSPEC_HIDDEN; -+extern _locale_t c_locale DECLSPEC_HIDDEN; - - #define STREAM_BUFSIZE 4096 - -@@ -50,8 +50,8 @@ - ULONG current_sequence; - ULONG *sequence; - }; --struct dictionary dict_builtin DECLSPEC_HIDDEN; --const struct dictionary dict_builtin_static DECLSPEC_HIDDEN; -+extern struct dictionary dict_builtin DECLSPEC_HIDDEN; -+extern const struct dictionary dict_builtin_static DECLSPEC_HIDDEN; - - int find_string( const struct dictionary *, const unsigned char *, ULONG, ULONG * ) DECLSPEC_HIDDEN; - HRESULT insert_string( struct dictionary *, unsigned char *, ULONG, int, ULONG * ) DECLSPEC_HIDDEN; ---- a/dlls/xinput1_3/xinput_private.h 2020-01-21 11:03:21.000000000 -0600 -+++ b/dlls/xinput1_3/xinput_private.h 2020-01-22 20:39:40.632230103 -0600 -@@ -26,8 +26,8 @@ - XINPUT_VIBRATION vibration; - } xinput_controller; - --CRITICAL_SECTION xinput_crit; --xinput_controller controllers[XUSER_MAX_COUNT]; -+extern CRITICAL_SECTION xinput_crit; -+extern xinput_controller controllers[XUSER_MAX_COUNT]; - - void HID_find_gamepads(xinput_controller *devices) DECLSPEC_HIDDEN; - void HID_destroy_gamepads(xinput_controller *devices) DECLSPEC_HIDDEN; diff --git a/wine.spec b/wine.spec index e3fce61..1baaf98 100644 --- a/wine.spec +++ b/wine.spec @@ -41,14 +41,14 @@ %endif Name: wine -Version: 5.0 -Release: 2%{?dist} +Version: 5.1 +Release: 1%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ URL: https://www.winehq.org/ -Source0: https://dl.winehq.org/wine/source/5.0/wine-%{version}.tar.xz -Source10: https://dl.winehq.org/wine/source/5.0/wine-%{version}.tar.xz.sign +Source0: https://dl.winehq.org/wine/source/5.x/wine-%{version}.tar.xz +Source10: https://dl.winehq.org/wine/source/5.x/wine-%{version}.tar.xz.sign Source1: wine.init Source2: wine.systemd @@ -71,9 +71,6 @@ Source109: wine-oleview.desktop # AppData files Source150: wine.appdata.xml -# build fixes -Patch100: wine-5.0-gcc10.patch - # wine bugs # desktop dir @@ -681,7 +678,6 @@ This package adds the opencl driver for wine. %prep %setup -q -n wine-%{version} -%patch100 -p1 -b.gcc10 %patch511 -p1 -b.cjk %if 0%{?wine_staging} @@ -693,10 +689,6 @@ patches/patchinstall.sh DESTDIR="`pwd`" --all # fix parallelized build sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in -# GCC 10 fix -sed -i 's/BOOL config_vaapi_drm DECLSPEC_HIDDEN;/extern BOOL config_vaapi_drm DECLSPEC_HIDDEN;/' dlls/dxva2/dxva2_private.h -sed -i 's/char config_vaapi_drm_path\[MAX_PATH\] DECLSPEC_HIDDEN;/extern char config_vaapi_drm_path\[MAX_PATH\] DECLSPEC_HIDDEN;/' dlls/dxva2/dxva2_private.h - %endif # 0%{?wine_staging} %build @@ -1892,6 +1884,7 @@ fi %{_libdir}/wine/vcomp120.%{winedll} %{_libdir}/wine/vcomp140.%{winedll} %{_libdir}/wine/vcruntime140.%{winedll} +%{_libdir}/wine/vcruntime140_1.%{winedll} %{_libdir}/wine/vdmdbg.%{winedll} %{_libdir}/wine/version.%{winedll} %{_libdir}/wine/virtdisk.%{winedll} @@ -2290,6 +2283,9 @@ fi %endif %changelog +* Mon Feb 03 2020 Michael Cronenworth 5.1-1 +- version update + * Fri Jan 31 2020 Fedora Release Engineering - 5.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild From 0d1b593b1cf40a7a2ba669872e1f16cbf7eb4f30 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 18 Feb 2020 13:33:47 -0600 Subject: [PATCH 562/715] Update to 5.2 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 9 +++++++-- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index ff3f354..16ce3a0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-5.1.tar.xz -/wine-5.1.tar.xz.sign -/wine-staging-5.1.tar.gz +/wine-5.2.tar.xz +/wine-5.2.tar.xz.sign +/wine-staging-5.2.tar.gz diff --git a/sources b/sources index 9e0e8a9..44e73d9 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-5.1.tar.xz) = b842b533884f15a8fb71373258671d74aee997d9ed9ee0fb36f945cd2006b494f6cc6c91a8ca47e0ea5b0b39b108f2c4f155918823a7ddf3cd44b4e26ede9171 -SHA512 (wine-5.1.tar.xz.sign) = e53308ac307b7c5f058d2a96ab8d075f6c8dc923f56a9322244b36a29ec691a9a0108979192491ab7150b5386c53228292cd4465dd4a49db265fbf7f0f9c1927 -SHA512 (wine-staging-5.1.tar.gz) = ebb9bf0a0a3c7f108fff8b32ca79124d1da410fbfb320ad3298f3d92fabeb9ca81de6a4fefac344948a70c49771ffa3f0dc30de2ee6d6f61d158ed87a206a14e +SHA512 (wine-5.2.tar.xz) = 57fa66885c3b5f43e51324e24b8524f663ad67ff15b464ac7d58096d5921f523a59ef5f1dc1ea7aa65fa10d64b7cd832f421c1b773c72bc312d8544a61c33f8f +SHA512 (wine-5.2.tar.xz.sign) = 310d27ef2aa2ca166a65ee9638a666c3a3d70152eefcf4d36567492455b35829eab35b9059ef08af4bdabefa4d167e7f0ae3ae1c6509b4072c85109dbad1012f +SHA512 (wine-staging-5.2.tar.gz) = dd2066db1eb4d424579bdf8d25f476eae0b86a6bea7b1f7ff2a21d7bf0209b4ef00d9c0ed29a7cab50c5dea4684acb5d342ebf02554b16fd0938a03e607f6270 diff --git a/wine.spec b/wine.spec index 1baaf98..c9f74c4 100644 --- a/wine.spec +++ b/wine.spec @@ -41,7 +41,7 @@ %endif Name: wine -Version: 5.1 +Version: 5.2 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1812,6 +1812,7 @@ fi %{_libdir}/wine/rsaenh.%{winedll} %{_libdir}/wine/rstrtmgr.%{winedll} %{_libdir}/wine/rtutils.%{winedll} +%{_libdir}/wine/rtworkq.%{winedll} %{_libdir}/wine/samlib.%{winedll} %{_libdir}/wine/sapi.%{winedll} %{_libdir}/wine/sas.%{winedll} @@ -1887,6 +1888,7 @@ fi %{_libdir}/wine/vcruntime140_1.%{winedll} %{_libdir}/wine/vdmdbg.%{winedll} %{_libdir}/wine/version.%{winedll} +%{_libdir}/wine/vga.%{winedll} %{_libdir}/wine/virtdisk.%{winedll} %{_libdir}/wine/vssapi.%{winedll} %{_libdir}/wine/vulkan-1.%{winedll} @@ -2078,7 +2080,7 @@ fi %{_datadir}/wine/wine.inf %{_datadir}/wine/winebus.inf %{_datadir}/wine/winehid.inf -%{_datadir}/wine/l_intl.nls +%{_datadir}/wine/nls/ %files common %{_bindir}/notepad @@ -2283,6 +2285,9 @@ fi %endif %changelog +* Tue Feb 18 2020 Michael Cronenworth 5.2-1 +- version update + * Mon Feb 03 2020 Michael Cronenworth 5.1-1 - version update From 958adb640ff976b5785dcd5ec00b7220244c8b50 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 2 Mar 2020 22:29:41 -0600 Subject: [PATCH 563/715] Update to 5.3 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 7 ++++++- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 16ce3a0..5016ea2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-5.2.tar.xz -/wine-5.2.tar.xz.sign -/wine-staging-5.2.tar.gz +/wine-5.3.tar.xz +/wine-5.3.tar.xz.sign +/wine-staging-5.3.tar.gz diff --git a/sources b/sources index 44e73d9..f0064f0 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-5.2.tar.xz) = 57fa66885c3b5f43e51324e24b8524f663ad67ff15b464ac7d58096d5921f523a59ef5f1dc1ea7aa65fa10d64b7cd832f421c1b773c72bc312d8544a61c33f8f -SHA512 (wine-5.2.tar.xz.sign) = 310d27ef2aa2ca166a65ee9638a666c3a3d70152eefcf4d36567492455b35829eab35b9059ef08af4bdabefa4d167e7f0ae3ae1c6509b4072c85109dbad1012f -SHA512 (wine-staging-5.2.tar.gz) = dd2066db1eb4d424579bdf8d25f476eae0b86a6bea7b1f7ff2a21d7bf0209b4ef00d9c0ed29a7cab50c5dea4684acb5d342ebf02554b16fd0938a03e607f6270 +SHA512 (wine-5.3.tar.xz) = 40528f46ad10c11758308e3bf21ba73c7af133d4dda386d542acec3a5cb31e01be0eb102b94f9d82a2358e45597bf49bd1e82c463e3a26aff8c0827b5a0894b6 +SHA512 (wine-5.3.tar.xz.sign) = b1f30a8a72b6efcfb2f7a492de85ab8613b1191d4eb0aff45ff81ab9736e7f877f971ddd040157c88a6bc7ad068d2e6e28bdba5bee6a8010cb098dc53022fec0 +SHA512 (wine-staging-5.3.tar.gz) = df14a61c04b134a72dc8662ee331fd234e2c82bf82824cb01443ae6516aba0bdcb579e2dbedc1ada47de0f3a1265c5fe9ef5f8183094d74451845b78d0a81702 diff --git a/wine.spec b/wine.spec index c9f74c4..a6fac00 100644 --- a/wine.spec +++ b/wine.spec @@ -41,7 +41,7 @@ %endif Name: wine -Version: 5.2 +Version: 5.3 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1201,6 +1201,7 @@ fi %{_libdir}/wine/acledit.%{winedll} %{_libdir}/wine/aclui.%{winedll} %{_libdir}/wine/activeds.%{winedll} +%{_libdir}/wine/activeds.tlb %{_libdir}/wine/actxprxy.%{winedll} %{_libdir}/wine/adsldp.%{winedll} %{_libdir}/wine/adsldpc.%{winedll} @@ -1793,6 +1794,7 @@ fi %{_libdir}/wine/propsys.%{winedll} %{_libdir}/wine/psapi.%{winedll} %{_libdir}/wine/pstorec.%{winedll} +%{_libdir}/wine/qasf.%{winedll} %{_libdir}/wine/qcap.dll.so %{_libdir}/wine/qedit.%{winedll} %{_libdir}/wine/qmgr.%{winedll} @@ -2285,6 +2287,9 @@ fi %endif %changelog +* Mon Mar 02 2020 Michael Cronenworth 5.3-1 +- version update + * Tue Feb 18 2020 Michael Cronenworth 5.2-1 - version update From c1f860d9509a452321307444de4880813b733daf Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 3 Mar 2020 11:00:00 -0600 Subject: [PATCH 564/715] Apply patch for arm --- wine-5.3-msvcrt-arm.patch | 41 +++++++++++++++++++++++++++++++++++++++ wine.spec | 3 +++ 2 files changed, 44 insertions(+) create mode 100644 wine-5.3-msvcrt-arm.patch diff --git a/wine-5.3-msvcrt-arm.patch b/wine-5.3-msvcrt-arm.patch new file mode 100644 index 0000000..67948c7 --- /dev/null +++ b/wine-5.3-msvcrt-arm.patch @@ -0,0 +1,41 @@ +From: Jacek Caban +Subject: [PATCH] stdio.h: Fix calling convention of variadic inline functions. +Message-Id: +Date: Tue, 3 Mar 2020 14:37:00 +0100 + + +Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48697 +Signed-off-by: Jacek Caban +--- + include/msvcrt/corecrt_wstdio.h | 2 +- + include/msvcrt/stdio.h | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/include/msvcrt/corecrt_wstdio.h b/include/msvcrt/corecrt_wstdio.h +index 3951a1c829..c1779fb81a 100644 +--- a/include/msvcrt/corecrt_wstdio.h ++++ b/include/msvcrt/corecrt_wstdio.h +@@ -115,7 +115,7 @@ static inline int __cdecl _vsnwprintf_s(wchar_t *buffer, size_t size, size_t cou + return ret < 0 ? -1 : ret; + } + +-static inline int __cdecl _snwprintf_s(wchar_t *buffer, size_t size, size_t count, const wchar_t *format, ...) ++static inline int WINAPIV _snwprintf_s(wchar_t *buffer, size_t size, size_t count, const wchar_t *format, ...) + { + int ret; + __ms_va_list args; +diff --git a/include/msvcrt/stdio.h b/include/msvcrt/stdio.h +index e184704eb9..f2aef46e6f 100644 +--- a/include/msvcrt/stdio.h ++++ b/include/msvcrt/stdio.h +@@ -174,7 +174,7 @@ static inline int __cdecl _vsnprintf_s(char *buffer, size_t size, size_t count, + return ret < 0 ? -1 : ret; + } + +-static inline int __cdecl _snprintf_s(char *buffer, size_t size, size_t count, const char *format, ...) ++static inline int WINAPIV _snprintf_s(char *buffer, size_t size, size_t count, const char *format, ...) + { + int ret; + __ms_va_list args; + + diff --git a/wine.spec b/wine.spec index a6fac00..ed7832c 100644 --- a/wine.spec +++ b/wine.spec @@ -72,6 +72,8 @@ Source109: wine-oleview.desktop Source150: wine.appdata.xml # wine bugs +# https://bugs.winehq.org/show_bug.cgi?id=48697 +Patch100: wine-5.3-msvcrt-arm.patch # desktop dir Source200: wine.menu @@ -678,6 +680,7 @@ This package adds the opencl driver for wine. %prep %setup -q -n wine-%{version} +%patch100 -p1 -b.mscvrt %patch511 -p1 -b.cjk %if 0%{?wine_staging} From 85f25c8c1cfbda0aaaeb726f347a51e44865f017 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 3 Mar 2020 12:32:30 -0600 Subject: [PATCH 565/715] Don't ship activeds.tlb on ARM arches --- wine.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index ed7832c..a1fd9b0 100644 --- a/wine.spec +++ b/wine.spec @@ -1204,7 +1204,6 @@ fi %{_libdir}/wine/acledit.%{winedll} %{_libdir}/wine/aclui.%{winedll} %{_libdir}/wine/activeds.%{winedll} -%{_libdir}/wine/activeds.tlb %{_libdir}/wine/actxprxy.%{winedll} %{_libdir}/wine/adsldp.%{winedll} %{_libdir}/wine/adsldpc.%{winedll} @@ -2009,6 +2008,10 @@ fi %endif %endif +%ifnarch %{arm} aarch64 +%{_libdir}/wine/activeds.tlb +%endif + # 16 bit and other non 64bit stuff %ifnarch x86_64 %{arm} aarch64 %{_libdir}/wine/winevdm.exe.so From 84981987dcd43781fe5aea0f38a363318d394fe5 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 3 Mar 2020 14:11:25 -0600 Subject: [PATCH 566/715] Set activeds.tlb extension as this is not an arch problem --- wine.spec | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/wine.spec b/wine.spec index a1fd9b0..b8f5dcb 100644 --- a/wine.spec +++ b/wine.spec @@ -1204,6 +1204,7 @@ fi %{_libdir}/wine/acledit.%{winedll} %{_libdir}/wine/aclui.%{winedll} %{_libdir}/wine/activeds.%{winedll} +%{_libdir}/wine/activeds.%{winetlb} %{_libdir}/wine/actxprxy.%{winedll} %{_libdir}/wine/adsldp.%{winedll} %{_libdir}/wine/adsldpc.%{winedll} @@ -2008,10 +2009,6 @@ fi %endif %endif -%ifnarch %{arm} aarch64 -%{_libdir}/wine/activeds.tlb -%endif - # 16 bit and other non 64bit stuff %ifnarch x86_64 %{arm} aarch64 %{_libdir}/wine/winevdm.exe.so From d30b40805c8428c8f748ac0f4a296d1e9a5b07eb Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 16 Mar 2020 19:28:00 -0500 Subject: [PATCH 567/715] Update to 5.4 --- .gitignore | 6 +++--- sources | 6 +++--- wine-5.3-msvcrt-arm.patch | 41 --------------------------------------- wine.spec | 17 ++++++++++++---- 4 files changed, 19 insertions(+), 51 deletions(-) delete mode 100644 wine-5.3-msvcrt-arm.patch diff --git a/.gitignore b/.gitignore index 5016ea2..2198b46 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-5.3.tar.xz -/wine-5.3.tar.xz.sign -/wine-staging-5.3.tar.gz +/wine-5.4.tar.xz +/wine-5.4.tar.xz.sign +/wine-staging-5.4.tar.gz diff --git a/sources b/sources index f0064f0..0970a92 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-5.3.tar.xz) = 40528f46ad10c11758308e3bf21ba73c7af133d4dda386d542acec3a5cb31e01be0eb102b94f9d82a2358e45597bf49bd1e82c463e3a26aff8c0827b5a0894b6 -SHA512 (wine-5.3.tar.xz.sign) = b1f30a8a72b6efcfb2f7a492de85ab8613b1191d4eb0aff45ff81ab9736e7f877f971ddd040157c88a6bc7ad068d2e6e28bdba5bee6a8010cb098dc53022fec0 -SHA512 (wine-staging-5.3.tar.gz) = df14a61c04b134a72dc8662ee331fd234e2c82bf82824cb01443ae6516aba0bdcb579e2dbedc1ada47de0f3a1265c5fe9ef5f8183094d74451845b78d0a81702 +SHA512 (wine-5.4.tar.xz) = 892e8b875484ada01eaddab4ea50992f95cf3ced6730f8e2ca1f0765770d7fa53a21080c526772b9b3ac83b3559d3d68e83ad3af3afbe9d6f931d833afde7e98 +SHA512 (wine-5.4.tar.xz.sign) = f22d83532184b414925bd96b4014fe3eceda6616eaec01109625d410eb4995932da2b1380c893c4ae81ec5b9450c9af6f54fe241ed14d035c475eb15224c91cb +SHA512 (wine-staging-5.4.tar.gz) = d4958e73cea34a4a722f516487116d9f77a22099cb80b9c79f2468fbe28855acec131dacecfd255a9934fb88bcf34809bfb2e2e518d89ac23bcae125b6d6c86b diff --git a/wine-5.3-msvcrt-arm.patch b/wine-5.3-msvcrt-arm.patch deleted file mode 100644 index 67948c7..0000000 --- a/wine-5.3-msvcrt-arm.patch +++ /dev/null @@ -1,41 +0,0 @@ -From: Jacek Caban -Subject: [PATCH] stdio.h: Fix calling convention of variadic inline functions. -Message-Id: -Date: Tue, 3 Mar 2020 14:37:00 +0100 - - -Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48697 -Signed-off-by: Jacek Caban ---- - include/msvcrt/corecrt_wstdio.h | 2 +- - include/msvcrt/stdio.h | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/include/msvcrt/corecrt_wstdio.h b/include/msvcrt/corecrt_wstdio.h -index 3951a1c829..c1779fb81a 100644 ---- a/include/msvcrt/corecrt_wstdio.h -+++ b/include/msvcrt/corecrt_wstdio.h -@@ -115,7 +115,7 @@ static inline int __cdecl _vsnwprintf_s(wchar_t *buffer, size_t size, size_t cou - return ret < 0 ? -1 : ret; - } - --static inline int __cdecl _snwprintf_s(wchar_t *buffer, size_t size, size_t count, const wchar_t *format, ...) -+static inline int WINAPIV _snwprintf_s(wchar_t *buffer, size_t size, size_t count, const wchar_t *format, ...) - { - int ret; - __ms_va_list args; -diff --git a/include/msvcrt/stdio.h b/include/msvcrt/stdio.h -index e184704eb9..f2aef46e6f 100644 ---- a/include/msvcrt/stdio.h -+++ b/include/msvcrt/stdio.h -@@ -174,7 +174,7 @@ static inline int __cdecl _vsnprintf_s(char *buffer, size_t size, size_t count, - return ret < 0 ? -1 : ret; - } - --static inline int __cdecl _snprintf_s(char *buffer, size_t size, size_t count, const char *format, ...) -+static inline int WINAPIV _snprintf_s(char *buffer, size_t size, size_t count, const char *format, ...) - { - int ret; - __ms_va_list args; - - diff --git a/wine.spec b/wine.spec index b8f5dcb..1805f28 100644 --- a/wine.spec +++ b/wine.spec @@ -41,7 +41,7 @@ %endif Name: wine -Version: 5.3 +Version: 5.4 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -72,8 +72,6 @@ Source109: wine-oleview.desktop Source150: wine.appdata.xml # wine bugs -# https://bugs.winehq.org/show_bug.cgi?id=48697 -Patch100: wine-5.3-msvcrt-arm.patch # desktop dir Source200: wine.menu @@ -680,7 +678,6 @@ This package adds the opencl driver for wine. %prep %setup -q -n wine-%{version} -%patch100 -p1 -b.mscvrt %patch511 -p1 -b.cjk %if 0%{?wine_staging} @@ -1189,6 +1186,7 @@ fi %{_libdir}/wine/termsv.%{wineexe} %{_libdir}/wine/view.%{wineexe} %{_libdir}/wine/wevtutil.%{wineexe} +%{_libdir}/wine/whoami.%{wineexe} %{_libdir}/wine/wineboot.%{wineexe} %{_libdir}/wine/winebrowser.exe.so %{_libdir}/wine/wineconsole.exe.so @@ -1973,6 +1971,14 @@ fi %{_libdir}/wine/x3daudio1_5.dll.so %{_libdir}/wine/x3daudio1_6.dll.so %{_libdir}/wine/x3daudio1_7.dll.so +%{_libdir}/wine/xactengine3_0.dll.so +%{_libdir}/wine/xactengine3_1.dll.so +%{_libdir}/wine/xactengine3_2.dll.so +%{_libdir}/wine/xactengine3_3.dll.so +%{_libdir}/wine/xactengine3_4.dll.so +%{_libdir}/wine/xactengine3_5.dll.so +%{_libdir}/wine/xactengine3_6.dll.so +%{_libdir}/wine/xactengine3_7.dll.so %{_libdir}/wine/xapofx1_1.dll.so %{_libdir}/wine/xapofx1_2.dll.so %{_libdir}/wine/xapofx1_3.dll.so @@ -2290,6 +2296,9 @@ fi %endif %changelog +* Mon Mar 16 2020 Michael Cronenworth 5.4-1 +- version update + * Mon Mar 02 2020 Michael Cronenworth 5.3-1 - version update From aafd1d9d235b1c082f9f494946c09b39c43c1871 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 16 Mar 2020 19:56:32 -0500 Subject: [PATCH 568/715] Remove deprecated DLLs in 32-bit files list --- wine.spec | 2 -- 1 file changed, 2 deletions(-) diff --git a/wine.spec b/wine.spec index 1805f28..9e727d6 100644 --- a/wine.spec +++ b/wine.spec @@ -2039,7 +2039,6 @@ fi %{_libdir}/wine/ddeml.dll16 %{_libdir}/wine/dispdib.dll16 %{_libdir}/wine/display.drv16 -%{_libdir}/wine/gdi.exe16.so %{_libdir}/wine/imm.dll16 %{_libdir}/wine/krnl386.exe16.so %{_libdir}/wine/keyboard.drv16 @@ -2070,7 +2069,6 @@ fi %{_libdir}/wine/w32sys.dll16 %{_libdir}/wine/win32s16.dll16 %{_libdir}/wine/win87em.dll16 -%{_libdir}/wine/winaspi.dll16.so %{_libdir}/wine/windebug.dll16 %{_libdir}/wine/wineps16.drv16 %{_libdir}/wine/wing.dll16 From f83582e8bcf2cbd1eaf693356cfc24731ab85e3f Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 16 Mar 2020 20:29:14 -0500 Subject: [PATCH 569/715] The DLLs were not deprecated, only made PE --- wine.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/wine.spec b/wine.spec index 9e727d6..8731acb 100644 --- a/wine.spec +++ b/wine.spec @@ -2039,6 +2039,7 @@ fi %{_libdir}/wine/ddeml.dll16 %{_libdir}/wine/dispdib.dll16 %{_libdir}/wine/display.drv16 +%{_libdir}/wine/gdi.exe16 %{_libdir}/wine/imm.dll16 %{_libdir}/wine/krnl386.exe16.so %{_libdir}/wine/keyboard.drv16 @@ -2069,6 +2070,7 @@ fi %{_libdir}/wine/w32sys.dll16 %{_libdir}/wine/win32s16.dll16 %{_libdir}/wine/win87em.dll16 +%{_libdir}/wine/winaspi.dll16 %{_libdir}/wine/windebug.dll16 %{_libdir}/wine/wineps16.drv16 %{_libdir}/wine/wing.dll16 From 8cb41cf69742fcfd5d0dcbed8d920e0bfd98c052 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 29 Mar 2020 11:31:05 -0500 Subject: [PATCH 570/715] Update to 5.5 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 6 +++++- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 2198b46..5da5ae3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-5.4.tar.xz -/wine-5.4.tar.xz.sign -/wine-staging-5.4.tar.gz +/wine-5.5.tar.xz +/wine-5.5.tar.xz.sign +/wine-staging-5.5.tar.gz diff --git a/sources b/sources index 0970a92..6abbc25 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-5.4.tar.xz) = 892e8b875484ada01eaddab4ea50992f95cf3ced6730f8e2ca1f0765770d7fa53a21080c526772b9b3ac83b3559d3d68e83ad3af3afbe9d6f931d833afde7e98 -SHA512 (wine-5.4.tar.xz.sign) = f22d83532184b414925bd96b4014fe3eceda6616eaec01109625d410eb4995932da2b1380c893c4ae81ec5b9450c9af6f54fe241ed14d035c475eb15224c91cb -SHA512 (wine-staging-5.4.tar.gz) = d4958e73cea34a4a722f516487116d9f77a22099cb80b9c79f2468fbe28855acec131dacecfd255a9934fb88bcf34809bfb2e2e518d89ac23bcae125b6d6c86b +SHA512 (wine-5.5.tar.xz) = 9c7870dd829effe5fd1be342f85a85e2d1f791bfd871279253dd91becd97dea41c6c4f7a9faec0153e58e360d4e3b4d659daf0d21f07a142d06534e0c229aacd +SHA512 (wine-5.5.tar.xz.sign) = 12cc8fc0ae10838e667485edb37c3459efd50f8802db78318ac951b0d1b3d23ad9ff8d5be17d4c2620e7dd7efd67c29247d4ef588fa4c4ea8417f85e44619f78 +SHA512 (wine-staging-5.5.tar.gz) = 8e926d73f275ed36b1c1e55235831c171b427501265a0e859accc7ca6b5077513bc2b3d37d973842b76b57a56798d11c101a387c626c96ed422d8a06cd908221 diff --git a/wine.spec b/wine.spec index 8731acb..70cd4cf 100644 --- a/wine.spec +++ b/wine.spec @@ -41,7 +41,7 @@ %endif Name: wine -Version: 5.4 +Version: 5.5 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1299,6 +1299,7 @@ fi %{_libdir}/wine/api-ms-win-core-realtime-l1-1-0.%{winedll} %{_libdir}/wine/api-ms-win-core-registry-l1-1-0.%{winedll} %{_libdir}/wine/api-ms-win-core-registry-l2-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-registry-l2-2-0.%{winedll} %{_libdir}/wine/api-ms-win-core-registryuserspecific-l1-1-0.%{winedll} %{_libdir}/wine/api-ms-win-core-rtlsupport-l1-1-0.%{winedll} %{_libdir}/wine/api-ms-win-core-rtlsupport-l1-2-0.%{winedll} @@ -2296,6 +2297,9 @@ fi %endif %changelog +* Sun Mar 29 2020 Michael Cronenworth 5.5-1 +- version update + * Mon Mar 16 2020 Michael Cronenworth 5.4-1 - version update From 71f2d7836cc3e317f987331c6098401bc52b7ec3 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 11 Apr 2020 13:25:58 -0500 Subject: [PATCH 571/715] Update to 5.6 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 11 +++++++---- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index 5da5ae3..3ebb7b3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-5.5.tar.xz -/wine-5.5.tar.xz.sign -/wine-staging-5.5.tar.gz +/wine-5.6.tar.xz +/wine-5.6.tar.xz.sign +/wine-staging-5.6.tar.gz diff --git a/sources b/sources index 6abbc25..1d2ddcc 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-5.5.tar.xz) = 9c7870dd829effe5fd1be342f85a85e2d1f791bfd871279253dd91becd97dea41c6c4f7a9faec0153e58e360d4e3b4d659daf0d21f07a142d06534e0c229aacd -SHA512 (wine-5.5.tar.xz.sign) = 12cc8fc0ae10838e667485edb37c3459efd50f8802db78318ac951b0d1b3d23ad9ff8d5be17d4c2620e7dd7efd67c29247d4ef588fa4c4ea8417f85e44619f78 -SHA512 (wine-staging-5.5.tar.gz) = 8e926d73f275ed36b1c1e55235831c171b427501265a0e859accc7ca6b5077513bc2b3d37d973842b76b57a56798d11c101a387c626c96ed422d8a06cd908221 +SHA512 (wine-5.6.tar.xz) = b12b0eff228ecd783fec8bf91f97e4387125226b172046d800e1fbffa303ceca32f1f647b9e8ceb24d303c23eb57188be14ddd8ba5fc04ba781a69186fbe6be4 +SHA512 (wine-5.6.tar.xz.sign) = 5663f9869c972ed764f7bfa1c9178461c514c460ab26e306561ab1c6c9abb450a533ad7180baa3d99eff05b16bfef4ab2252d54f483ffbeac45f5de532a99835 +SHA512 (wine-staging-5.6.tar.gz) = 7ddf5699834a6e04b094a7cae008175c874415d22554bac38176f3121b9533071ef610f8b5a0dd3ce3e4adf8a9d4ac214aa1cee7634959c5150b66fbb74710b7 diff --git a/wine.spec b/wine.spec index 70cd4cf..2bd84b5 100644 --- a/wine.spec +++ b/wine.spec @@ -41,7 +41,7 @@ %endif Name: wine -Version: 5.5 +Version: 5.6 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1104,9 +1104,9 @@ fi %{_libdir}/wine/winefile.%{wineexe} %{_libdir}/wine/winemine.%{wineexe} %{_libdir}/wine/winemsibuilder.%{wineexe} -%{_libdir}/wine/winepath.exe.so +%{_libdir}/wine/winepath.%{wineexe} %{_libdir}/wine/winmgmt.%{wineexe} -%{_libdir}/wine/winver.exe.so +%{_libdir}/wine/winver.%{wineexe} %{_libdir}/wine/wordpad.%{wineexe} %{_libdir}/wine/write.%{wineexe} %{_libdir}/wine/wusa.%{wineexe} @@ -1488,7 +1488,7 @@ fi %{_libdir}/wine/d3dxof.%{winedll} %{_libdir}/wine/davclnt.%{winedll} %{_libdir}/wine/dbgeng.%{winedll} -%{_libdir}/wine/dbghelp.dll.so +%{_libdir}/wine/dbghelp.%{winedll} %{_libdir}/wine/dciman32.%{winedll} %{_libdir}/wine/ddraw.%{winedll} %{_libdir}/wine/ddrawex.%{winedll} @@ -2297,6 +2297,9 @@ fi %endif %changelog +* Sat Apr 11 2020 Michael Cronenworth 5.6-1 +- version update + * Sun Mar 29 2020 Michael Cronenworth 5.5-1 - version update From 5b835b6f728f30ef6cbc63847e1fae81febad60e Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 11 Apr 2020 13:52:59 -0500 Subject: [PATCH 572/715] Update files list for two missed files --- wine.spec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 2bd84b5..c2373a2 100644 --- a/wine.spec +++ b/wine.spec @@ -1522,6 +1522,7 @@ fi %{_libdir}/wine/dsdmo.%{winedll} %{_libdir}/wine/dsquery.%{winedll} %{_libdir}/wine/dssenh.%{winedll} +%{_libdir}/wine/dsuiext.%{winedll} %{_libdir}/wine/dswave.%{winedll} %{_libdir}/wine/dwmapi.%{winedll} %{_libdir}/wine/dwrite.dll.so @@ -2042,7 +2043,7 @@ fi %{_libdir}/wine/display.drv16 %{_libdir}/wine/gdi.exe16 %{_libdir}/wine/imm.dll16 -%{_libdir}/wine/krnl386.exe16.so +%{_libdir}/wine/krnl386.exe16 %{_libdir}/wine/keyboard.drv16 %{_libdir}/wine/lzexpand.dll16 %{_libdir}/wine/mmsystem.dll16 From 92d752595cca2c790ace4580608bdc9c32290541 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 27 Apr 2020 11:50:11 -0500 Subject: [PATCH 573/715] Update to 5.7 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 10 ++++++++-- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index 3ebb7b3..b1d3f99 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-5.6.tar.xz -/wine-5.6.tar.xz.sign -/wine-staging-5.6.tar.gz +/wine-5.7.tar.xz +/wine-5.7.tar.xz.sign +/wine-staging-5.7.tar.gz diff --git a/sources b/sources index 1d2ddcc..e64a3be 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-5.6.tar.xz) = b12b0eff228ecd783fec8bf91f97e4387125226b172046d800e1fbffa303ceca32f1f647b9e8ceb24d303c23eb57188be14ddd8ba5fc04ba781a69186fbe6be4 -SHA512 (wine-5.6.tar.xz.sign) = 5663f9869c972ed764f7bfa1c9178461c514c460ab26e306561ab1c6c9abb450a533ad7180baa3d99eff05b16bfef4ab2252d54f483ffbeac45f5de532a99835 -SHA512 (wine-staging-5.6.tar.gz) = 7ddf5699834a6e04b094a7cae008175c874415d22554bac38176f3121b9533071ef610f8b5a0dd3ce3e4adf8a9d4ac214aa1cee7634959c5150b66fbb74710b7 +SHA512 (wine-5.7.tar.xz) = 46a8050cb21edf1116c93fd73fdc3bbbc1a19e18d77c38bc192f13e55954d3e503122c780ca9c1a50005b0bca6f3b0c640f3de05267f25289e08660321e27407 +SHA512 (wine-5.7.tar.xz.sign) = 7c4361415db5d73e9ab8a041c0c0d2718ba954b13fefab24cc774256fb8c0c153dbe0a5ab000ae140e79f3b799402e494126c1d53893a6dfb3f9ed0a787b06cc +SHA512 (wine-staging-5.7.tar.gz) = 042bcf7b90769c9d88d5cd844009301fb768568ee10ebf7aed9c3397ca35f6d6b512db2010917695f32bed9edf174d95f80a141d5af75a43871444b1830f2922 diff --git a/wine.spec b/wine.spec index c2373a2..6c3b39b 100644 --- a/wine.spec +++ b/wine.spec @@ -3,7 +3,7 @@ %global no64bit 0 %global winegecko 2.47.1 -%global winemono 4.9.4 +%global winemono 5.0.0 #global _default_patch_fuzz 2 %ifarch %{ix86} x86_64 %global wineacm acm @@ -41,7 +41,7 @@ %endif Name: wine -Version: 5.6 +Version: 5.7 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1799,6 +1799,7 @@ fi %{_libdir}/wine/pstorec.%{winedll} %{_libdir}/wine/qasf.%{winedll} %{_libdir}/wine/qcap.dll.so +%{_libdir}/wine/qdvd.%{winedll} %{_libdir}/wine/qedit.%{winedll} %{_libdir}/wine/qmgr.%{winedll} %{_libdir}/wine/qmgrprxy.%{winedll} @@ -1915,6 +1916,7 @@ fi %{_libdir}/wine/winehid.%{winesys} %{_libdir}/wine/winejoystick.drv.so %{_libdir}/wine/winemapi.%{winedll} +%{_libdir}/wine/wineusb.sys.so %{_libdir}/wine/winevulkan.dll.so %{_libdir}/wine/winex11.drv.so %{_libdir}/wine/wing32.%{winedll} @@ -2093,6 +2095,7 @@ fi %{_datadir}/wine/wine.inf %{_datadir}/wine/winebus.inf %{_datadir}/wine/winehid.inf +%{_datadir}/wine/wineusb.inf %{_datadir}/wine/nls/ %files common @@ -2298,6 +2301,9 @@ fi %endif %changelog +* Sun Apr 26 2020 Michael Cronenworth 5.7-1 +- version update + * Sat Apr 11 2020 Michael Cronenworth 5.6-1 - version update From d8d128907aa596510e42585269bee138d7470971 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 2 May 2020 11:58:28 -0500 Subject: [PATCH 574/715] fix crash in wineserver affecting many apps and games (RHBZ#1829956) --- wine-5.7-thread-context.patch | 62 +++++++++++++++++++++++++++++++++++ wine.spec | 8 ++++- 2 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 wine-5.7-thread-context.patch diff --git a/wine-5.7-thread-context.patch b/wine-5.7-thread-context.patch new file mode 100644 index 0000000..894e35b --- /dev/null +++ b/wine-5.7-thread-context.patch @@ -0,0 +1,62 @@ +From c3fac6e36caab168974dd04a60ae1bbb1a0fd919 Mon Sep 17 00:00:00 2001 +From: Jacek Caban +Date: Sat, 25 Apr 2020 21:13:33 +0200 +Subject: [PATCH] server: Fix setting context flags in get_thread_context. + +Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49011 +Signed-off-by: Jacek Caban +Signed-off-by: Alexandre Julliard +--- + dlls/kernel32/tests/thread.c | 15 +++++++++++++++ + server/thread.c | 2 +- + 2 files changed, 16 insertions(+), 1 deletion(-) + +diff --git a/dlls/kernel32/tests/thread.c b/dlls/kernel32/tests/thread.c +index b6a65a4207..e068797ff5 100644 +--- a/dlls/kernel32/tests/thread.c ++++ b/dlls/kernel32/tests/thread.c +@@ -1175,6 +1175,20 @@ static void test_SetThreadContext(void) + CloseHandle( thread ); + } + ++static void test_GetThreadContext(void) ++{ ++ CONTEXT ctx; ++ BOOL ret; ++ ++ memset(&ctx, 0xcc, sizeof(ctx)); ++ ctx.ContextFlags = CONTEXT_DEBUG_REGISTERS; ++ ret = GetThreadContext(GetCurrentThread(), &ctx); ++ ok(ret, "GetThreadContext failed: %u\n", GetLastError()); ++ ok(ctx.ContextFlags == CONTEXT_DEBUG_REGISTERS, "ContextFlags = %x\n", ctx.ContextFlags); ++ ok(!ctx.Dr0, "Dr0 = %x\n", ctx.Dr0); ++ ok(!ctx.Dr1, "Dr0 = %x\n", ctx.Dr0); ++} ++ + static void test_GetThreadSelectorEntry(void) + { + LDT_ENTRY entry; +@@ -2452,6 +2466,7 @@ + #ifdef __i386__ + test_SetThreadContext(); + test_GetThreadSelectorEntry(); ++ test_GetThreadContext(); + test_NtSetLdtEntries(); + #endif + test_QueueUserWorkItem(); +diff --git a/server/thread.c b/server/thread.c +index cfdf42c756..7c1c1108eb 100644 +--- a/server/thread.c ++++ b/server/thread.c +@@ -1848,7 +1848,7 @@ DECL_HANDLER(get_thread_context) + { + assert( reply->self ); + memset( context, 0, sizeof(context_t) ); +- context->cpu = thread_context->regs.cpu; ++ context->cpu = thread->process->cpu; + if (req->flags & system_flags) + { + get_thread_context( thread, context, req->flags & system_flags ); +-- +2.20.1 + diff --git a/wine.spec b/wine.spec index 6c3b39b..0f3c530 100644 --- a/wine.spec +++ b/wine.spec @@ -42,7 +42,7 @@ Name: wine Version: 5.7 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -72,6 +72,8 @@ Source109: wine-oleview.desktop Source150: wine.appdata.xml # wine bugs +# https://bugs.winehq.org/show_bug.cgi?id=49011 +Patch100: wine-5.7-thread-context.patch # desktop dir Source200: wine.menu @@ -690,6 +692,7 @@ patches/patchinstall.sh DESTDIR="`pwd`" --all sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in %endif # 0%{?wine_staging} +%patch100 -p1 -b.thread-context %build @@ -2301,6 +2304,9 @@ fi %endif %changelog +* Sat May 02 2020 Michael Cronenworth 5.7-2 +- fix crash in wineserver affecting many apps and games (RHBZ#1829956) + * Sun Apr 26 2020 Michael Cronenworth 5.7-1 - version update From e7370efe930a30559bfa1d271f8c509529a699ae Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Fri, 29 May 2020 16:48:54 -0500 Subject: [PATCH 575/715] Update to 5.9 --- .gitignore | 6 ++-- sources | 6 ++-- wine-5.7-thread-context.patch | 62 ----------------------------------- wine.spec | 15 ++++++--- 4 files changed, 16 insertions(+), 73 deletions(-) delete mode 100644 wine-5.7-thread-context.patch diff --git a/.gitignore b/.gitignore index b1d3f99..967baf9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-5.7.tar.xz -/wine-5.7.tar.xz.sign -/wine-staging-5.7.tar.gz +/wine-5.9.tar.xz +/wine-5.9.tar.xz.sign +/wine-staging-5.9.tar.gz diff --git a/sources b/sources index e64a3be..7f5d1eb 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-5.7.tar.xz) = 46a8050cb21edf1116c93fd73fdc3bbbc1a19e18d77c38bc192f13e55954d3e503122c780ca9c1a50005b0bca6f3b0c640f3de05267f25289e08660321e27407 -SHA512 (wine-5.7.tar.xz.sign) = 7c4361415db5d73e9ab8a041c0c0d2718ba954b13fefab24cc774256fb8c0c153dbe0a5ab000ae140e79f3b799402e494126c1d53893a6dfb3f9ed0a787b06cc -SHA512 (wine-staging-5.7.tar.gz) = 042bcf7b90769c9d88d5cd844009301fb768568ee10ebf7aed9c3397ca35f6d6b512db2010917695f32bed9edf174d95f80a141d5af75a43871444b1830f2922 +SHA512 (wine-5.9.tar.xz) = edc6d55a275cf37430a62dc6d6d86bff6d5a434e708dbd99d245018db7f6a0abe39581a1d91eb947f204a45ac94cc5c931745169a3b63a2aecf8db277553b74b +SHA512 (wine-5.9.tar.xz.sign) = 1a048d9e4229eb6391a8a48027af8c2511b5c921c70fb1c6a398570d5656c0747746d34d7d3458a7be68220d00130676ad97ddeaaee94023a63f9afeba833357 +SHA512 (wine-staging-5.9.tar.gz) = 8fcf448be21edc0ccf8afef75013298c8f1634b51cd4d927ee5a1d039552d7c29609f65f283519b6561d09eb6eeae91fa6db70b9e78e4fd8bb5318408b39fb33 diff --git a/wine-5.7-thread-context.patch b/wine-5.7-thread-context.patch deleted file mode 100644 index 894e35b..0000000 --- a/wine-5.7-thread-context.patch +++ /dev/null @@ -1,62 +0,0 @@ -From c3fac6e36caab168974dd04a60ae1bbb1a0fd919 Mon Sep 17 00:00:00 2001 -From: Jacek Caban -Date: Sat, 25 Apr 2020 21:13:33 +0200 -Subject: [PATCH] server: Fix setting context flags in get_thread_context. - -Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49011 -Signed-off-by: Jacek Caban -Signed-off-by: Alexandre Julliard ---- - dlls/kernel32/tests/thread.c | 15 +++++++++++++++ - server/thread.c | 2 +- - 2 files changed, 16 insertions(+), 1 deletion(-) - -diff --git a/dlls/kernel32/tests/thread.c b/dlls/kernel32/tests/thread.c -index b6a65a4207..e068797ff5 100644 ---- a/dlls/kernel32/tests/thread.c -+++ b/dlls/kernel32/tests/thread.c -@@ -1175,6 +1175,20 @@ static void test_SetThreadContext(void) - CloseHandle( thread ); - } - -+static void test_GetThreadContext(void) -+{ -+ CONTEXT ctx; -+ BOOL ret; -+ -+ memset(&ctx, 0xcc, sizeof(ctx)); -+ ctx.ContextFlags = CONTEXT_DEBUG_REGISTERS; -+ ret = GetThreadContext(GetCurrentThread(), &ctx); -+ ok(ret, "GetThreadContext failed: %u\n", GetLastError()); -+ ok(ctx.ContextFlags == CONTEXT_DEBUG_REGISTERS, "ContextFlags = %x\n", ctx.ContextFlags); -+ ok(!ctx.Dr0, "Dr0 = %x\n", ctx.Dr0); -+ ok(!ctx.Dr1, "Dr0 = %x\n", ctx.Dr0); -+} -+ - static void test_GetThreadSelectorEntry(void) - { - LDT_ENTRY entry; -@@ -2452,6 +2466,7 @@ - #ifdef __i386__ - test_SetThreadContext(); - test_GetThreadSelectorEntry(); -+ test_GetThreadContext(); - test_NtSetLdtEntries(); - #endif - test_QueueUserWorkItem(); -diff --git a/server/thread.c b/server/thread.c -index cfdf42c756..7c1c1108eb 100644 ---- a/server/thread.c -+++ b/server/thread.c -@@ -1848,7 +1848,7 @@ DECL_HANDLER(get_thread_context) - { - assert( reply->self ); - memset( context, 0, sizeof(context_t) ); -- context->cpu = thread_context->regs.cpu; -+ context->cpu = thread->process->cpu; - if (req->flags & system_flags) - { - get_thread_context( thread, context, req->flags & system_flags ); --- -2.20.1 - diff --git a/wine.spec b/wine.spec index 0f3c530..70e7fa7 100644 --- a/wine.spec +++ b/wine.spec @@ -7,6 +7,7 @@ #global _default_patch_fuzz 2 %ifarch %{ix86} x86_64 %global wineacm acm +%global wineax ax %global winecom com %global winecpl cpl %global winedll dll @@ -17,6 +18,7 @@ %global winetlb tlb %else %global wineacm acm.so +%global wineax ax.so %global winecom com.so %global winecpl cpl.so %global winedll dll.so @@ -41,8 +43,8 @@ %endif Name: wine -Version: 5.7 -Release: 2%{?dist} +Version: 5.9 +Release: 1%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -72,8 +74,6 @@ Source109: wine-oleview.desktop Source150: wine.appdata.xml # wine bugs -# https://bugs.winehq.org/show_bug.cgi?id=49011 -Patch100: wine-5.7-thread-context.patch # desktop dir Source200: wine.menu @@ -692,7 +692,6 @@ patches/patchinstall.sh DESTDIR="`pwd`" --all sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in %endif # 0%{?wine_staging} -%patch100 -p1 -b.thread-context %build @@ -1651,6 +1650,7 @@ fi %{_libdir}/wine/kernel32.dll.so %{_libdir}/wine/kernelbase.%{winedll} %{_libdir}/wine/ksecdd.%{winesys} +%{_libdir}/wine/ksproxy.%{wineax} %{_libdir}/wine/ksuser.%{winedll} %{_libdir}/wine/ktmw32.%{winedll} %if 0%{?fedora} > 24 @@ -1767,6 +1767,7 @@ fi %{_libdir}/wine/normaliz.%{winedll} %{_libdir}/wine/npmshtml.%{winedll} %{_libdir}/wine/npptools.%{winedll} +%{_libdir}/wine/ntdll.so %{_libdir}/wine/ntdll.dll.so %{_libdir}/wine/ntdsapi.%{winedll} %{_libdir}/wine/ntprint.%{winedll} @@ -1832,6 +1833,7 @@ fi %{_libdir}/wine/scrobj.%{winedll} %{_libdir}/wine/scrrun.%{winedll} %{_libdir}/wine/scsiport.%{winesys} +%{_libdir}/wine/sechost.%{winedll} %{_libdir}/wine/secur32.dll.so %{_libdir}/wine/sensapi.%{winedll} %{_libdir}/wine/serialui.%{winedll} @@ -2304,6 +2306,9 @@ fi %endif %changelog +* Fri May 29 2020 Michael Cronenworth 5.9-1 +- version update + * Sat May 02 2020 Michael Cronenworth 5.7-2 - fix crash in wineserver affecting many apps and games (RHBZ#1829956) From 6e604e3d79fec7f547528a87f7a3a473757e332d Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 2 Jun 2020 15:14:30 -0500 Subject: [PATCH 576/715] Drop typelibs from 32-bit devel package --- wine.spec | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 70e7fa7..aa38d07 100644 --- a/wine.spec +++ b/wine.spec @@ -44,7 +44,7 @@ Name: wine Version: 5.9 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -741,6 +741,9 @@ mv %{buildroot}%{_bindir}/wineserver %{buildroot}%{_bindir}/wineserver64 %ifarch %{ix86} %{arm} mv %{buildroot}%{_bindir}/wine %{buildroot}%{_bindir}/wine32 mv %{buildroot}%{_bindir}/wineserver %{buildroot}%{_bindir}/wineserver32 +# do not ship typelibs in 32-bit packages +# https://www.winehq.org/pipermail/wine-devel/2020-June/167283.html +rm %{buildroot}%{_includedir}/wine/windows/*.tlb %endif %ifnarch %{arm} aarch64 x86_64 mv %{buildroot}%{_bindir}/wine-preloader %{buildroot}%{_bindir}/wine32-preloader @@ -2306,6 +2309,9 @@ fi %endif %changelog +* Fri May 29 2020 Michael Cronenworth 5.9-2 +- drop typelibs from 32-bit devel package + * Fri May 29 2020 Michael Cronenworth 5.9-1 - version update From 98bf76900f52805f2dbb1db70c807fe22a0913f1 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 2 Jun 2020 15:15:12 -0500 Subject: [PATCH 577/715] Fix changelog date --- wine.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index aa38d07..26a3f7a 100644 --- a/wine.spec +++ b/wine.spec @@ -2309,7 +2309,7 @@ fi %endif %changelog -* Fri May 29 2020 Michael Cronenworth 5.9-2 +* Tue Jun 02 2020 Michael Cronenworth 5.9-2 - drop typelibs from 32-bit devel package * Fri May 29 2020 Michael Cronenworth 5.9-1 From e621da3a7aab954f293ce83e59e907433c0ec4d0 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 2 Jun 2020 15:52:14 -0500 Subject: [PATCH 578/715] Add patch for WineHQ bug 49208 --- wine-5.8-kernel32.patch | 27 +++++++++++++++++++++++++++ wine.spec | 4 ++++ 2 files changed, 31 insertions(+) create mode 100644 wine-5.8-kernel32.patch diff --git a/wine-5.8-kernel32.patch b/wine-5.8-kernel32.patch new file mode 100644 index 0000000..4345b38 --- /dev/null +++ b/wine-5.8-kernel32.patch @@ -0,0 +1,27 @@ +From 613389059006270fc89abdfb984c43e6fa742a9a Mon Sep 17 00:00:00 2001 +From: Alexandre Julliard +Date: Tue, 26 May 2020 12:26:31 +0200 +Subject: [PATCH] kernel32: Leave some more space for kernelbase. + +Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49208 +Signed-off-by: Alexandre Julliard +--- + dlls/kernel32/Makefile.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/dlls/kernel32/Makefile.in b/dlls/kernel32/Makefile.in +index b3877fe13b..d9b1ca575c 100644 +--- a/dlls/kernel32/Makefile.in ++++ b/dlls/kernel32/Makefile.in +@@ -3,7 +3,7 @@ MODULE = kernel32.dll + IMPORTLIB = kernel32 + IMPORTS = winecrt0 kernelbase ntdll + EXTRALIBS = $(COREFOUNDATION_LIBS) $(POLL_LIBS) $(RT_LIBS) +-EXTRADLLFLAGS = -nodefaultlibs -Wb,-F,KERNEL32.dll -Wl,--image-base,0x7b400000 ++EXTRADLLFLAGS = -nodefaultlibs -Wb,-F,KERNEL32.dll -Wl,--image-base,0x7b600000 + + C_SRCS = \ + actctx.c \ +-- +2.20.1 + diff --git a/wine.spec b/wine.spec index 26a3f7a..ffb9fc9 100644 --- a/wine.spec +++ b/wine.spec @@ -74,6 +74,8 @@ Source109: wine-oleview.desktop Source150: wine.appdata.xml # wine bugs +# https://source.winehq.org/git/wine.git/commit/613389059006270fc89abdfb984c43e6fa742a9a +Patch100: wine-5.8-kernel32.patch # desktop dir Source200: wine.menu @@ -681,6 +683,7 @@ This package adds the opencl driver for wine. %prep %setup -q -n wine-%{version} %patch511 -p1 -b.cjk +%patch100 -p1 -b.kernel32 %if 0%{?wine_staging} # setup and apply wine-staging patches @@ -2311,6 +2314,7 @@ fi %changelog * Tue Jun 02 2020 Michael Cronenworth 5.9-2 - drop typelibs from 32-bit devel package +- add patch for wine bug 49208 * Fri May 29 2020 Michael Cronenworth 5.9-1 - version update From 4a5b3c288356f8f5c567ddd533aa2aac7f7a6c26 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 7 Jun 2020 15:39:15 -0500 Subject: [PATCH 579/715] Update to 5.10 --- .gitignore | 6 +++--- sources | 6 +++--- wine-5.8-kernel32.patch | 27 -------------------------- wine.spec | 42 +++++++++++++++++++++++++++-------------- 4 files changed, 34 insertions(+), 47 deletions(-) delete mode 100644 wine-5.8-kernel32.patch diff --git a/.gitignore b/.gitignore index 967baf9..1b3c9bc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-5.9.tar.xz -/wine-5.9.tar.xz.sign -/wine-staging-5.9.tar.gz +/wine-5.10.tar.xz +/wine-5.10.tar.xz.sign +/wine-staging-5.10.tar.gz diff --git a/sources b/sources index 7f5d1eb..71a95ad 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-5.9.tar.xz) = edc6d55a275cf37430a62dc6d6d86bff6d5a434e708dbd99d245018db7f6a0abe39581a1d91eb947f204a45ac94cc5c931745169a3b63a2aecf8db277553b74b -SHA512 (wine-5.9.tar.xz.sign) = 1a048d9e4229eb6391a8a48027af8c2511b5c921c70fb1c6a398570d5656c0747746d34d7d3458a7be68220d00130676ad97ddeaaee94023a63f9afeba833357 -SHA512 (wine-staging-5.9.tar.gz) = 8fcf448be21edc0ccf8afef75013298c8f1634b51cd4d927ee5a1d039552d7c29609f65f283519b6561d09eb6eeae91fa6db70b9e78e4fd8bb5318408b39fb33 +SHA512 (wine-5.10.tar.xz) = 669d6861525cd4ab000113e8d9c5e10822b62b293914542ee34a826696df66e1d2f09b09f576f714e4117e79e25d1fd0b2a06c57d29da0efa0bdfcb9fee59c60 +SHA512 (wine-5.10.tar.xz.sign) = 809c9d4d37440bc6beac0b6da9c69e81c055f3ea606261c21dd2e1ce02e71976f3fc3433e0bd87cc8431b5cd49cab9db01d4bf62bd23fe294ca7a5180adab7ee +SHA512 (wine-staging-5.10.tar.gz) = fca5ddb648ac45c242b9bd7ccb0980161bff1e3539aa1a116f1cceece9d3b4a3188c82bd93624f561653dda793ad16dc00a87c7ed0c38f19a93b538519ef806c diff --git a/wine-5.8-kernel32.patch b/wine-5.8-kernel32.patch deleted file mode 100644 index 4345b38..0000000 --- a/wine-5.8-kernel32.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 613389059006270fc89abdfb984c43e6fa742a9a Mon Sep 17 00:00:00 2001 -From: Alexandre Julliard -Date: Tue, 26 May 2020 12:26:31 +0200 -Subject: [PATCH] kernel32: Leave some more space for kernelbase. - -Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49208 -Signed-off-by: Alexandre Julliard ---- - dlls/kernel32/Makefile.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/dlls/kernel32/Makefile.in b/dlls/kernel32/Makefile.in -index b3877fe13b..d9b1ca575c 100644 ---- a/dlls/kernel32/Makefile.in -+++ b/dlls/kernel32/Makefile.in -@@ -3,7 +3,7 @@ MODULE = kernel32.dll - IMPORTLIB = kernel32 - IMPORTS = winecrt0 kernelbase ntdll - EXTRALIBS = $(COREFOUNDATION_LIBS) $(POLL_LIBS) $(RT_LIBS) --EXTRADLLFLAGS = -nodefaultlibs -Wb,-F,KERNEL32.dll -Wl,--image-base,0x7b400000 -+EXTRADLLFLAGS = -nodefaultlibs -Wb,-F,KERNEL32.dll -Wl,--image-base,0x7b600000 - - C_SRCS = \ - actctx.c \ --- -2.20.1 - diff --git a/wine.spec b/wine.spec index ffb9fc9..bb89e53 100644 --- a/wine.spec +++ b/wine.spec @@ -32,7 +32,8 @@ # build with wine-staging patches, see: https://github.com/wine-staging/wine-staging %if 0%{?fedora} %global wine_staging 1 -%endif # 0%{?fedora} +%endif +# 0%%{?fedora} # binfmt macros for RHEL %if 0%{?rhel} == 7 @@ -43,8 +44,8 @@ %endif Name: wine -Version: 5.9 -Release: 2%{?dist} +Version: 5.10 +Release: 1%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -74,8 +75,6 @@ Source109: wine-oleview.desktop Source150: wine.appdata.xml # wine bugs -# https://source.winehq.org/git/wine.git/commit/613389059006270fc89abdfb984c43e6fa742a9a -Patch100: wine-5.8-kernel32.patch # desktop dir Source200: wine.menu @@ -185,7 +184,8 @@ BuildRequires: libappstream-glib BuildRequires: gtk3-devel BuildRequires: libattr-devel BuildRequires: libva-devel -%endif # 0%{?wine_staging} +%endif +# 0%%{?wine_staging} %if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 BuildRequires: openal-soft-devel @@ -432,9 +432,11 @@ BuildArch: noarch # arial-fonts are available with wine-staging patchset, only. %if 0%{?wine_staging} Requires: wine-arial-fonts = %{version}-%{release} -%else # 0%{?wine_staging} +%else +# 0%%{?wine_staging} Obsoletes: wine-arial-fonts <= %{version}-%{release} -%endif # 0%{?wine_staging} +%endif +# 0%%{?wine_staging} Requires: wine-courier-fonts = %{version}-%{release} Requires: wine-fixedsys-fonts = %{version}-%{release} Requires: wine-small-fonts = %{version}-%{release} @@ -445,10 +447,12 @@ Requires: wine-tahoma-fonts = %{version}-%{release} # times-new-roman-fonts are available with wine_staging-patchset, only. %if 0%{?wine_staging} Requires: wine-times-new-roman-fonts = %{version}-%{release} -%else # 0%{?wine_staging} +%else +# 0%%{?wine_staging} Obsoletes: wine-times-new-roman-fonts <= %{version}-%{release} Obsoletes: wine-times-new-roman-fonts-system <= %{version}-%{release} -%endif # 0%{?wine_staging} +%endif +# 0%%{?wine_staging} Requires: wine-symbol-fonts = %{version}-%{release} Requires: wine-wingdings-fonts = %{version}-%{release} # intermediate fix for #593140 @@ -468,7 +472,8 @@ Requires: fontpackages-filesystem %description arial-fonts %{summary} -%endif # 0%{?wine_staging} +%endif +# 0%%{?wine_staging} %package courier-fonts Summary: Wine Courier font family @@ -683,7 +688,6 @@ This package adds the opencl driver for wine. %prep %setup -q -n wine-%{version} %patch511 -p1 -b.cjk -%patch100 -p1 -b.kernel32 %if 0%{?wine_staging} # setup and apply wine-staging patches @@ -694,7 +698,8 @@ patches/patchinstall.sh DESTDIR="`pwd`" --all # fix parallelized build sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in -%endif # 0%{?wine_staging} +%endif +# 0%%{?wine_staging} %build @@ -1273,9 +1278,11 @@ fi %{_libdir}/wine/api-ms-win-core-libraryloader-l1-2-0.%{winedll} %{_libdir}/wine/api-ms-win-core-libraryloader-l1-2-1.%{winedll} %{_libdir}/wine/api-ms-win-core-libraryloader-l1-2-2.%{winedll} +%{_libdir}/wine/api-ms-win-core-libraryloader-l2-1-0.%{winedll} %{_libdir}/wine/api-ms-win-core-localization-l1-1-0.%{winedll} %{_libdir}/wine/api-ms-win-core-localization-l1-2-0.%{winedll} %{_libdir}/wine/api-ms-win-core-localization-l1-2-1.%{winedll} +%{_libdir}/wine/api-ms-win-core-localization-l1-2-2.%{winedll} %{_libdir}/wine/api-ms-win-core-localization-l2-1-0.%{winedll} %{_libdir}/wine/api-ms-win-core-localization-obsolete-l1-1-0.%{winedll} %{_libdir}/wine/api-ms-win-core-localization-obsolete-l1-2-0.%{winedll} @@ -1285,6 +1292,7 @@ fi %{_libdir}/wine/api-ms-win-core-memory-l1-1-0.%{winedll} %{_libdir}/wine/api-ms-win-core-memory-l1-1-1.%{winedll} %{_libdir}/wine/api-ms-win-core-memory-l1-1-2.%{winedll} +%{_libdir}/wine/api-ms-win-core-memory-l1-1-4.%{winedll} %{_libdir}/wine/api-ms-win-core-misc-l1-1-0.%{winedll} %{_libdir}/wine/api-ms-win-core-namedpipe-l1-1-0.%{winedll} %{_libdir}/wine/api-ms-win-core-namedpipe-l1-2-0.%{winedll} @@ -1373,6 +1381,7 @@ fi %{_libdir}/wine/api-ms-win-devices-query-l1-1-1.%{winedll} %{_libdir}/wine/api-ms-win-downlevel-advapi32-l1-1-0.%{winedll} %{_libdir}/wine/api-ms-win-downlevel-advapi32-l2-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-downlevel-kernel32-l2-1-0.%{winedll} %{_libdir}/wine/api-ms-win-downlevel-normaliz-l1-1-0.%{winedll} %{_libdir}/wine/api-ms-win-downlevel-ole32-l1-1-0.%{winedll} %{_libdir}/wine/api-ms-win-downlevel-shell32-l1-1-0.%{winedll} @@ -1766,6 +1775,7 @@ fi %{_libdir}/wine/ndis.%{winesys} %{_libdir}/wine/netapi32.dll.so %{_libdir}/wine/netcfgx.%{winedll} +%{_libdir}/wine/netio.%{winesys} %{_libdir}/wine/netprofm.%{winedll} %{_libdir}/wine/netsh.%{wineexe} %{_libdir}/wine/newdev.%{winedll} @@ -2147,7 +2157,8 @@ fi %files arial-fonts %doc COPYING.LIB %{_datadir}/wine/fonts/arial* -%endif #0%{?wine_staging} +%endif +#0%%{?wine_staging} %files courier-fonts %doc COPYING.LIB @@ -2312,6 +2323,9 @@ fi %endif %changelog +* Sun Jun 07 2020 Michael Cronenworth 5.10-1 +- version update + * Tue Jun 02 2020 Michael Cronenworth 5.9-2 - drop typelibs from 32-bit devel package - add patch for wine bug 49208 From 41fb9606e6f1c66e8ee0bab57dcadd9251b8a4a6 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 10 Jun 2020 16:20:00 -0500 Subject: [PATCH 580/715] Add new macro for toolchain based on comments from RHBZ#1844893 --- wine.spec | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/wine.spec b/wine.spec index bb89e53..b8c8f1b 100644 --- a/wine.spec +++ b/wine.spec @@ -702,6 +702,11 @@ sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in # 0%%{?wine_staging} %build +%if 0%{?fedora} >= 33 +%ifarch aarch64 +%global toolchain clang +%endif +%endif # disable fortify as it breaks wine # http://bugs.winehq.org/show_bug.cgi?id=24606 From 6a3375aed7da5016389cab93d28717377e09d9f0 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 10 Jun 2020 16:27:36 -0500 Subject: [PATCH 581/715] Re order macro to work with older aarch64 rules --- wine.spec | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/wine.spec b/wine.spec index b8c8f1b..9464feb 100644 --- a/wine.spec +++ b/wine.spec @@ -702,11 +702,6 @@ sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in # 0%%{?wine_staging} %build -%if 0%{?fedora} >= 33 -%ifarch aarch64 -%global toolchain clang -%endif -%endif # disable fortify as it breaks wine # http://bugs.winehq.org/show_bug.cgi?id=24606 @@ -714,6 +709,9 @@ sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno-error" %ifarch aarch64 +%if 0%{?fedora} >= 33 +%global toolchain clang +%else # ARM64 now requires clang # https://source.winehq.org/git/wine.git/commit/8fb8cc03c3edb599dd98f369e14a08f899cbff95 export CC="/usr/bin/clang" From 72dcd1b7ad63b94a947ae3d1d341ef752cf59dbf Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 10 Jun 2020 16:29:09 -0500 Subject: [PATCH 582/715] Fix broken macro --- wine.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/wine.spec b/wine.spec index 9464feb..5d030b2 100644 --- a/wine.spec +++ b/wine.spec @@ -719,6 +719,7 @@ export CC="/usr/bin/clang" # https://bugzilla.redhat.com/show_bug.cgi?id=1658311 export CFLAGS="`echo $CFLAGS | sed -e 's/-fstack-clash-protection//'`" %endif +%endif %configure \ --sysconfdir=%{_sysconfdir}/wine \ From ed2472170e1a0d58cf40488140572c6a8b013023 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Thu, 11 Jun 2020 08:30:55 -0500 Subject: [PATCH 583/715] Apply wine-staging patch and disable a few patchsets on arm due to compile issues --- wine-staging-5.10-ntdll.patch | 497 ++++++++++++++++++++++++++++++++++ wine.spec | 9 + 2 files changed, 506 insertions(+) create mode 100644 wine-staging-5.10-ntdll.patch diff --git a/wine-staging-5.10-ntdll.patch b/wine-staging-5.10-ntdll.patch new file mode 100644 index 0000000..0ac49d8 --- /dev/null +++ b/wine-staging-5.10-ntdll.patch @@ -0,0 +1,497 @@ +From 044cb930662d61f401a5d1bdd7b8e75d59cea5ea Mon Sep 17 00:00:00 2001 +From: Paul Gofman +Date: Mon, 8 Jun 2020 15:33:10 +0300 +Subject: [PATCH] Updated ntdll-ForceBottomUpAlloc patchset. + +Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49326 +--- + ...h-on-mmap-error-in-try_map_free_area.patch | 9 +- + ...XED_NOREPLACE-flag-in-try_map_free_a.patch | 10 +- + ...om-up-allocation-order-for-64-bit-ar.patch | 12 +- + ...tep-after-failed-map-attempt-in-try_.patch | 8 +- + ...rea-list-for-virtual-memory-allocati.patch | 163 +++++++++++------- + ...y-exclude-natively-mapped-areas-from.patch | 14 +- + 6 files changed, 126 insertions(+), 90 deletions(-) + +diff --git a/patches/ntdll-ForceBottomUpAlloc/0001-ntdll-Stop-search-on-mmap-error-in-try_map_free_area.patch b/patches/ntdll-ForceBottomUpAlloc/0001-ntdll-Stop-search-on-mmap-error-in-try_map_free_area.patch +index 7aa2337e8..ecf750c59 100644 +--- a/patches/ntdll-ForceBottomUpAlloc/0001-ntdll-Stop-search-on-mmap-error-in-try_map_free_area.patch ++++ b/patches/ntdll-ForceBottomUpAlloc/0001-ntdll-Stop-search-on-mmap-error-in-try_map_free_area.patch +@@ -1,7 +1,8 @@ +-From ca116113c19ee17d2e8283abe4edf27f76df2148 Mon Sep 17 00:00:00 2001 ++From c0a24a86c70b3cf2bfe118cff4d9ab03efaa9689 Mon Sep 17 00:00:00 2001 + From: Paul Gofman + Date: Thu, 9 Jan 2020 15:05:09 +0300 +-Subject: [PATCH] ntdll: Stop search on mmap() error in try_map_free_area(). ++Subject: [PATCH 1/6] ntdll: Stop search on mmap() error in ++ try_map_free_area(). + + The anon mmap errors do not depend on start address hint. Ignoring them + makes the search take incredible time until it fails. +@@ -10,10 +11,10 @@ makes the search take incredible time until it fails. + 1 file changed, 8 insertions(+), 2 deletions(-) + + diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c +-index 0346d0d9753..c29f695d694 100644 ++index b2725e3ae9a..5c2ecfab398 100644 + --- a/dlls/ntdll/unix/virtual.c + +++ b/dlls/ntdll/unix/virtual.c +-@@ -1016,8 +1016,14 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step, ++@@ -1063,8 +1063,14 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step, + return start; + TRACE( "Found free area is already mapped, start %p.\n", start ); + +diff --git a/patches/ntdll-ForceBottomUpAlloc/0002-ntdll-Use-MAP_FIXED_NOREPLACE-flag-in-try_map_free_a.patch b/patches/ntdll-ForceBottomUpAlloc/0002-ntdll-Use-MAP_FIXED_NOREPLACE-flag-in-try_map_free_a.patch +index 6672d646f..81bdde5a0 100644 +--- a/patches/ntdll-ForceBottomUpAlloc/0002-ntdll-Use-MAP_FIXED_NOREPLACE-flag-in-try_map_free_a.patch ++++ b/patches/ntdll-ForceBottomUpAlloc/0002-ntdll-Use-MAP_FIXED_NOREPLACE-flag-in-try_map_free_a.patch +@@ -1,8 +1,8 @@ +-From b2c9894cd6a81eaa9f7dd4bce3f9cbfbec17d021 Mon Sep 17 00:00:00 2001 ++From 68e035e381f5d53980a8bcd7c0798dfd4b4fbe95 Mon Sep 17 00:00:00 2001 + From: Paul Gofman + Date: Thu, 16 Jan 2020 16:09:24 +0300 +-Subject: [PATCH] ntdll: Use MAP_FIXED_NOREPLACE flag in try_map_free_area() if +- available. ++Subject: [PATCH 2/6] ntdll: Use MAP_FIXED_NOREPLACE flag in ++ try_map_free_area() if available. + + Avoids actual mapping followed by unmapping back if the memory range is + already mapped. +@@ -11,10 +11,10 @@ already mapped. + 1 file changed, 9 insertions(+), 3 deletions(-) + + diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c +-index c29f695d694..8d3e25481ec 100644 ++index 5c2ecfab398..93b5d99dadd 100644 + --- a/dlls/ntdll/unix/virtual.c + +++ b/dlls/ntdll/unix/virtual.c +-@@ -1008,22 +1008,28 @@ static struct wine_rb_entry *find_view_inside_range( void **base_ptr, void **end ++@@ -1055,22 +1055,28 @@ static struct wine_rb_entry *find_view_inside_range( void **base_ptr, void **end + static void* try_map_free_area( void *base, void *end, ptrdiff_t step, + void *start, size_t size, int unix_prot ) + { +diff --git a/patches/ntdll-ForceBottomUpAlloc/0003-ntdll-Force-bottom-up-allocation-order-for-64-bit-ar.patch b/patches/ntdll-ForceBottomUpAlloc/0003-ntdll-Force-bottom-up-allocation-order-for-64-bit-ar.patch +index 44980f11a..279c8e3c2 100644 +--- a/patches/ntdll-ForceBottomUpAlloc/0003-ntdll-Force-bottom-up-allocation-order-for-64-bit-ar.patch ++++ b/patches/ntdll-ForceBottomUpAlloc/0003-ntdll-Force-bottom-up-allocation-order-for-64-bit-ar.patch +@@ -1,7 +1,7 @@ +-From 9f7320fe58c85f1b53301c2c9a2a80fa8d4ed228 Mon Sep 17 00:00:00 2001 ++From 25be7201abeb509db4b28b81914036bc0c00c2f9 Mon Sep 17 00:00:00 2001 + From: Paul Gofman + Date: Mon, 25 Nov 2019 12:19:20 +0300 +-Subject: [PATCH] ntdll: Force bottom up allocation order for 64 bit arch ++Subject: [PATCH 3/6] ntdll: Force bottom up allocation order for 64 bit arch + unless top down is requested. + + Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48175 +@@ -11,10 +11,10 @@ Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46568 + 1 file changed, 10 insertions(+), 2 deletions(-) + + diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c +-index 8d3e25481ec..dc20e827141 100644 ++index 93b5d99dadd..87b33016b72 100644 + --- a/dlls/ntdll/unix/virtual.c + +++ b/dlls/ntdll/unix/virtual.c +-@@ -1715,13 +1715,19 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size, ++@@ -1775,13 +1775,19 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size, + } + else + { +@@ -35,7 +35,7 @@ index 8d3e25481ec..dc20e827141 100644 + if (mmap_enum_reserved_areas( alloc_reserved_area_callback, &alloc, top_down )) + { + ptr = alloc.result; +-@@ -1731,7 +1737,7 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size, ++@@ -1791,7 +1797,7 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size, + goto done; + } + +@@ -44,7 +44,7 @@ index 8d3e25481ec..dc20e827141 100644 + { + if (!(ptr = map_free_area( address_space_start, alloc.limit, size, + top_down, get_unix_prot(vprot) ))) +-@@ -1740,6 +1746,8 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size, ++@@ -1800,6 +1806,8 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size, + goto done; + } + +diff --git a/patches/ntdll-ForceBottomUpAlloc/0004-ntdll-Increase-step-after-failed-map-attempt-in-try_.patch b/patches/ntdll-ForceBottomUpAlloc/0004-ntdll-Increase-step-after-failed-map-attempt-in-try_.patch +index 9361f0938..0b5c7618a 100644 +--- a/patches/ntdll-ForceBottomUpAlloc/0004-ntdll-Increase-step-after-failed-map-attempt-in-try_.patch ++++ b/patches/ntdll-ForceBottomUpAlloc/0004-ntdll-Increase-step-after-failed-map-attempt-in-try_.patch +@@ -1,7 +1,7 @@ +-From e521333684d1286fff7b6625515d13ad6f3fcba3 Mon Sep 17 00:00:00 2001 ++From d74a5c586c00a879fa1182af72c15c154e5dd096 Mon Sep 17 00:00:00 2001 + From: Paul Gofman + Date: Tue, 14 Jan 2020 21:39:23 +0300 +-Subject: [PATCH] ntdll: Increase step after failed map attempt in ++Subject: [PATCH 4/6] ntdll: Increase step after failed map attempt in + try_map_free_area(). + + --- +@@ -9,10 +9,10 @@ Subject: [PATCH] ntdll: Increase step after failed map attempt in + 1 file changed, 1 insertion(+) + + diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c +-index dc20e827141..720d45ecb9f 100644 ++index 87b33016b72..5e79faaf6fc 100644 + --- a/dlls/ntdll/unix/virtual.c + +++ b/dlls/ntdll/unix/virtual.c +-@@ -1036,6 +1036,7 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step, ++@@ -1083,6 +1083,7 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step, + step == 0) + break; + start = (char *)start + step; +diff --git a/patches/ntdll-ForceBottomUpAlloc/0005-ntdll-Use-free-area-list-for-virtual-memory-allocati.patch b/patches/ntdll-ForceBottomUpAlloc/0005-ntdll-Use-free-area-list-for-virtual-memory-allocati.patch +index 569bf3e62..1f712ba10 100644 +--- a/patches/ntdll-ForceBottomUpAlloc/0005-ntdll-Use-free-area-list-for-virtual-memory-allocati.patch ++++ b/patches/ntdll-ForceBottomUpAlloc/0005-ntdll-Use-free-area-list-for-virtual-memory-allocati.patch +@@ -1,17 +1,17 @@ +-From df7b650d5e17afa411024b88d1920d0910947a6b Mon Sep 17 00:00:00 2001 ++From f14407ee5755b6482714a6232a4313bcd1531781 Mon Sep 17 00:00:00 2001 + From: Paul Gofman + Date: Tue, 14 Jan 2020 21:42:21 +0300 +-Subject: [PATCH] ntdll: Use free area list for virtual memory allocation. ++Subject: [PATCH 5/6] ntdll: Use free area list for virtual memory allocation. + + --- +- dlls/ntdll/unix/virtual.c | 318 ++++++++++++++++++++++++-------------- +- 1 file changed, 204 insertions(+), 114 deletions(-) ++ dlls/ntdll/unix/virtual.c | 348 +++++++++++++++++++++++++------------- ++ 1 file changed, 234 insertions(+), 114 deletions(-) + + diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c +-index 720d45ecb9f..e323f4290bf 100644 ++index 5e79faaf6fc..7f194effcaa 100644 + --- a/dlls/ntdll/unix/virtual.c + +++ b/dlls/ntdll/unix/virtual.c +-@@ -192,7 +192,11 @@ static BYTE *pages_vprot; ++@@ -195,7 +195,11 @@ static BYTE *pages_vprot; + #endif + + static struct file_view *view_block_start, *view_block_end, *next_free_view; +@@ -23,7 +23,7 @@ index 720d45ecb9f..e323f4290bf 100644 + static void *preload_reserve_start; + static void *preload_reserve_end; + static BOOL use_locks; +-@@ -528,13 +532,13 @@ static struct range_entry *free_ranges_lower_bound( void *addr ) ++@@ -546,13 +550,13 @@ static struct range_entry *free_ranges_lower_bound( void *addr ) + * + * Updates the free_ranges after a new view has been created. + */ +@@ -40,7 +40,7 @@ index 720d45ecb9f..e323f4290bf 100644 + /* free_ranges initial value is such that the view is either inside range or before another one. */ + assert( range != free_ranges_end ); + assert( range->end > view_base || next != free_ranges_end ); +-@@ -545,7 +549,7 @@ static void free_ranges_insert_view( struct file_view *view ) ++@@ -563,7 +567,7 @@ static void free_ranges_insert_view( struct file_view *view ) + (range->end == view_base && next->base >= view_end)) + { + /* on Win64, assert that it's correctly aligned so we're not going to be in trouble later */ +@@ -49,7 +49,7 @@ index 720d45ecb9f..e323f4290bf 100644 + WARN( "range %p - %p is already mapped\n", view_base, view_end ); + return; + } +-@@ -585,6 +589,12 @@ static void free_ranges_insert_view( struct file_view *view ) ++@@ -603,6 +607,12 @@ static void free_ranges_insert_view( struct file_view *view ) + } + } + +@@ -62,7 +62,7 @@ index 720d45ecb9f..e323f4290bf 100644 + + /*********************************************************************** + * free_ranges_remove_view +-@@ -615,6 +625,7 @@ static void free_ranges_remove_view( struct file_view *view ) ++@@ -633,6 +643,7 @@ static void free_ranges_remove_view( struct file_view *view ) + return; + } + #endif +@@ -70,7 +70,7 @@ index 720d45ecb9f..e323f4290bf 100644 + + /* free_ranges initial value is such that the view is either inside range or before another one. */ + assert( range != free_ranges_end ); +-@@ -961,44 +972,6 @@ static struct file_view *find_view_range( const void *addr, size_t size ) ++@@ -1008,44 +1019,6 @@ static struct file_view *find_view_range( const void *addr, size_t size ) + } + + +@@ -115,7 +115,7 @@ index 720d45ecb9f..e323f4290bf 100644 + /*********************************************************************** + * try_map_free_area + * +-@@ -1042,65 +1015,11 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step, ++@@ -1089,65 +1062,11 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step, + return NULL; + } + +@@ -181,7 +181,7 @@ index 720d45ecb9f..e323f4290bf 100644 + */ + static void *find_reserved_free_area( void *base, void *end, size_t size, int top_down ) + { +-@@ -1314,8 +1233,7 @@ static void delete_view( struct file_view *view ) /* [in] View */ ++@@ -1361,8 +1280,7 @@ static void delete_view( struct file_view *view ) /* [in] View */ + { + if (!(view->protect & VPROT_SYSTEM)) unmap_area( view->base, view->size ); + set_page_vprot( view->base, view->size, 0 ); +@@ -191,7 +191,7 @@ index 720d45ecb9f..e323f4290bf 100644 + wine_rb_remove( &views_tree, &view->entry ); + *(struct file_view **)view = next_free_view; + next_free_view = view; +-@@ -1363,8 +1281,7 @@ static NTSTATUS create_view( struct file_view **view_ret, void *base, size_t siz ++@@ -1410,8 +1328,7 @@ static NTSTATUS create_view( struct file_view **view_ret, void *base, size_t siz + set_page_vprot( base, size, vprot ); + + wine_rb_put( &views_tree, view->base, &view->entry ); +@@ -201,7 +201,7 @@ index 720d45ecb9f..e323f4290bf 100644 + + *view_ret = view; + +-@@ -1596,6 +1513,7 @@ struct alloc_area ++@@ -1656,6 +1573,7 @@ struct alloc_area + int top_down; + void *limit; + void *result; +@@ -209,7 +209,7 @@ index 720d45ecb9f..e323f4290bf 100644 + }; + + /*********************************************************************** +-@@ -1637,6 +1555,179 @@ static int CDECL alloc_reserved_area_callback( void *start, SIZE_T size, void *a ++@@ -1697,6 +1615,212 @@ static int CDECL alloc_reserved_area_callback( void *start, SIZE_T size, void *a + return 0; + } + +@@ -303,11 +303,62 @@ index 720d45ecb9f..e323f4290bf 100644 + + return 0; + +} + + +++static void *alloc_free_area_in_range(struct area_alloc_reserved *area, char *base, char *end, +++ size_t size, int top_down, int unix_prot) +++{ +++ char *start; +++ +++ TRACE("range %p-%p.\n", base, end); +++ +++ if (base >= end) return NULL; +++ +++ area->map_area_start = base; +++ area->map_area_end = end; +++ +++ if (top_down) +++ { +++ start = ROUND_ADDR( end - size, granularity_mask ); +++ if (start >= end || start < base) +++ return NULL; +++ } +++ else +++ { +++ start = ROUND_ADDR( base + granularity_mask, granularity_mask ); +++ if (!start || start >= end || (char *)end - (char *)start < size) +++ return NULL; +++ } +++ +++ mmap_enum_reserved_areas( alloc_area_in_reserved_or_between_callback, area, top_down ); +++ if (area->result) +++ return area->result; +++ +++ if (top_down) +++ { +++ start = ROUND_ADDR( area->map_area_end - size, granularity_mask ); +++ if (start >= area->map_area_end || start < area->map_area_start) +++ return NULL; +++ +++ return try_map_free_area( area->map_area_start, start + size, area->step, +++ start, size, unix_prot ); +++ } +++ else +++ { +++ start = ROUND_ADDR( area->map_area_start + granularity_mask, granularity_mask ); +++ if (!start || start >= area->map_area_end +++ || area->map_area_end - start < size) +++ return NULL; +++ +++ return try_map_free_area( start, area->map_area_end, area->step, +++ start, size, unix_prot ); +++ } +++} +++ + +static void *alloc_free_area(void *limit, size_t size, BOOL top_down, int unix_prot) + +{ + + struct range_entry *range, *ranges_start, *ranges_end; +++ char *reserve_start, *reserve_end; + + struct area_alloc_reserved area; +-+ char *start, *base, *end; +++ char *base, *end; + + int ranges_inc; + + + + TRACE("limit %p, size %p, top_down %#x.\n", limit, (void *)size, top_down); +@@ -331,6 +382,9 @@ index 720d45ecb9f..e323f4290bf 100644 + + area.top_down = top_down; + + area.unix_prot = unix_prot; + + +++ reserve_start = ROUND_ADDR((char *)preload_reserve_start, granularity_mask); +++ reserve_end = ROUND_ADDR((char *)preload_reserve_end + granularity_mask, granularity_mask); +++ + + for (range = ranges_start; range != ranges_end; range += ranges_inc) + + { + + base = range->base; +@@ -340,48 +394,27 @@ index 720d45ecb9f..e323f4290bf 100644 + + + + if (base < (char *)address_space_start) base = (char *)address_space_start; + + if (end > (char *)limit + granularity_mask + 1) end = (char *)limit + granularity_mask + 1; +-+ if (base >= end) continue; + + +-+ area.map_area_start = base; +-+ area.map_area_end = end; +-+ +-+ if (top_down) +-+ { +-+ start = ROUND_ADDR( (char *)end - size, granularity_mask ); +-+ if (start >= end || start < base) +-+ continue; +-+ } +-+ else +++ if (reserve_end >= base) + + { +-+ start = ROUND_ADDR( (char *)base + granularity_mask, granularity_mask ); +-+ if (!start || start >= end || (char *)end - (char *)start < size) +-+ continue; +++ if (reserve_end >= end) +++ { +++ if (reserve_start <= base) continue; /* no space in that area */ +++ if (reserve_start < end) end = reserve_start; +++ } +++ else if (reserve_start <= base) base = reserve_end; +++ else +++ { +++ /* range is split in two by the preloader reservation, try first part */ +++ if ((area.result = alloc_free_area_in_range(&area, base, reserve_start, size, top_down, unix_prot))) +++ return area.result; +++ /* then fall through to try second part */ +++ base = reserve_end; +++ } + + } +-+ mmap_enum_reserved_areas( alloc_area_in_reserved_or_between_callback, &area, top_down ); +-+ if (area.result) +-+ return area.result; + + +-+ if (top_down) +-+ { +-+ start = ROUND_ADDR( area.map_area_end - size, granularity_mask ); +-+ if (start >= area.map_area_end || start < area.map_area_start) +-+ continue; +-+ +-+ if ((area.result = try_map_free_area( area.map_area_start, start + size, area.step, +-+ start, size, unix_prot ))) +-+ return area.result; +-+ } +-+ else +-+ { +-+ start = ROUND_ADDR( area.map_area_start + granularity_mask, granularity_mask ); +-+ if (!start || start >= area.map_area_end +-+ || area.map_area_end - start < size) +-+ continue; +-+ +-+ if ((area.result = try_map_free_area( start, area.map_area_end, area.step, +-+ start, size, unix_prot ))) +-+ return area.result; +-+ } +++ if ((area.result = alloc_free_area_in_range(&area, base, end, size, top_down, unix_prot))) +++ return area.result; + + } + + return NULL; + +} +@@ -389,7 +422,7 @@ index 720d45ecb9f..e323f4290bf 100644 + /*********************************************************************** + * map_fixed_area + * +-@@ -1722,11 +1813,15 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size, ++@@ -1782,11 +1906,15 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size, + alloc.size = size; + alloc.top_down = top_down; + alloc.limit = (void*)(get_zero_bits_64_mask( zero_bits_64 ) & (UINT_PTR)user_space_limit); +@@ -408,7 +441,7 @@ index 720d45ecb9f..e323f4290bf 100644 + } + + if (mmap_enum_reserved_areas( alloc_reserved_area_callback, &alloc, top_down )) +-@@ -1738,15 +1833,6 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size, ++@@ -1798,15 +1926,6 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size, + goto done; + } + +@@ -424,7 +457,15 @@ index 720d45ecb9f..e323f4290bf 100644 + view_size = size + granularity_mask + 1; + + for (;;) +-@@ -2466,10 +2552,14 @@ void virtual_init(void) ++@@ -2500,6 +2619,7 @@ void virtual_init(void) ++ if (preload_reserve_start) ++ address_space_start = min( address_space_start, preload_reserve_start ); ++ } +++ TRACE("preload reserve %p-%p.\n", preload_reserve_start, preload_reserve_end); ++ } ++ ++ size = ROUND_SIZE( 0, sizeof(TEB) ) + max( MINSIGSTKSZ, 8192 ); ++@@ -2528,8 +2648,8 @@ void virtual_init(void) + pages_vprot = (void *)((char *)alloc_views.base + 2 * view_block_size); + wine_rb_init( &views_tree, compare_view ); + +@@ -434,13 +475,7 @@ index 720d45ecb9f..e323f4290bf 100644 + + free_ranges[0].end = address_space_limit; + free_ranges_end = free_ranges + 1; + +-+ free_ranges_remove_range(ROUND_ADDR(preload_reserve_start, granularity_mask), +-+ ROUND_ADDR((char *)preload_reserve_end + granularity_mask, +-+ granularity_mask), preload_reserve_start); +-+ + /* make the DOS area accessible (except the low 64K) to hide bugs in broken apps like Excel 2003 */ +- size = (char *)address_space_start - (char *)0x10000; +- if (size && mmap_is_in_reserved_area( (void*)0x10000, size ) == 1) + -- + 2.26.2 + +diff --git a/patches/ntdll-ForceBottomUpAlloc/0006-ntdll-Permanently-exclude-natively-mapped-areas-from.patch b/patches/ntdll-ForceBottomUpAlloc/0006-ntdll-Permanently-exclude-natively-mapped-areas-from.patch +index 8cf896f8a..9bb16bdfc 100644 +--- a/patches/ntdll-ForceBottomUpAlloc/0006-ntdll-Permanently-exclude-natively-mapped-areas-from.patch ++++ b/patches/ntdll-ForceBottomUpAlloc/0006-ntdll-Permanently-exclude-natively-mapped-areas-from.patch +@@ -1,18 +1,18 @@ +-From 81a8c626f834f3b2195980e84e2f5fc0a5b1e0e6 Mon Sep 17 00:00:00 2001 ++From ac8fd6b34fa269ce840566055cc1c0b6c023516e Mon Sep 17 00:00:00 2001 + From: Paul Gofman + Date: Tue, 2 Jun 2020 21:06:33 +0300 +-Subject: [PATCH] ntdll: Permanently exclude natively mapped areas from free +- areas list. ++Subject: [PATCH 6/6] ntdll: Permanently exclude natively mapped areas from ++ free areas list. + + --- + dlls/ntdll/unix/virtual.c | 25 +++++++++++++++++++++++++ + 1 file changed, 25 insertions(+) + + diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c +-index e323f4290bf..778f5d8c3b8 100644 ++index 7f194effcaa..0e2e20396f3 100644 + --- a/dlls/ntdll/unix/virtual.c + +++ b/dlls/ntdll/unix/virtual.c +-@@ -123,6 +123,9 @@ static const BYTE VIRTUAL_Win32Flags[16] = ++@@ -124,6 +124,9 @@ static const BYTE VIRTUAL_Win32Flags[16] = + + static struct wine_rb_tree views_tree; + +@@ -22,7 +22,7 @@ index e323f4290bf..778f5d8c3b8 100644 + static RTL_CRITICAL_SECTION csVirtual; + static RTL_CRITICAL_SECTION_DEBUG critsect_debug = + { +-@@ -1004,6 +1007,13 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step, ++@@ -1051,6 +1054,13 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step, + if (ptr != (void *)-1) + munmap( ptr, size ); + +@@ -36,7 +36,7 @@ index e323f4290bf..778f5d8c3b8 100644 + if ((step > 0 && (char *)end - (char *)start < step) || + (step < 0 && (char *)start - (char *)base < -step) || + step == 0) +-@@ -1817,9 +1827,24 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size, ++@@ -1910,9 +1920,24 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size, + + if (is_win64 || zero_bits_64) + { diff --git a/wine.spec b/wine.spec index 5d030b2..cd74653 100644 --- a/wine.spec +++ b/wine.spec @@ -75,6 +75,7 @@ Source109: wine-oleview.desktop Source150: wine.appdata.xml # wine bugs +Patch100: wine-staging-5.10-ntdll.patch # desktop dir Source200: wine.menu @@ -692,8 +693,16 @@ This package adds the opencl driver for wine. %if 0%{?wine_staging} # setup and apply wine-staging patches gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 +%patch100 -p1 -b.ntdll +%ifarch %{arm} aarch64 +patches/patchinstall.sh DESTDIR="`pwd`" --all \ + -W ntdll-NtContinue \ + -W ntdll-Syscall_Emulation \ + -W winebuild-Fake_Dlls +%else patches/patchinstall.sh DESTDIR="`pwd`" --all +%endif # fix parallelized build sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in From b6dc9f8efeed3ea5f12a5c992c7c2f08e1e2d9c2 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Thu, 11 Jun 2020 08:47:39 -0500 Subject: [PATCH 584/715] Wine-staging just fixed the ARM build failure so lets add the fix --- wine-staging-5.10-ntdll-arm.patch | 950 ++++++++++++++++++++++++++++++ wine.spec | 9 +- 2 files changed, 952 insertions(+), 7 deletions(-) create mode 100644 wine-staging-5.10-ntdll-arm.patch diff --git a/wine-staging-5.10-ntdll-arm.patch b/wine-staging-5.10-ntdll-arm.patch new file mode 100644 index 0000000..56a6f4f --- /dev/null +++ b/wine-staging-5.10-ntdll-arm.patch @@ -0,0 +1,950 @@ +From 5306e1df11e772fe8125fcd5857e52cf1f83430b Mon Sep 17 00:00:00 2001 +From: Paul Gofman +Date: Thu, 11 Jun 2020 15:23:12 +0300 +Subject: [PATCH] Updated winebuild-Fake_Dlls patchset. + +Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49357 +--- + ...-tests-Add-basic-tests-for-fake-dlls.patch | 8 +-- + ...-not-abuse-WOW32Reserved-field-for-1.patch | 36 ++++++------- + ...ate-syscall-thunks-for-ntdll-exports.patch | 53 +++++++++++-------- + ...ltipass-label-system-to-generate-fak.patch | 10 ++-- + ...uild-Add-stub-functions-in-fake-dlls.patch | 36 ++++++------- + ...uild-Add-syscall-thunks-in-fake-dlls.patch | 8 +-- + ...ze-of-relocation-information-in-fake.patch | 4 +- + ...-make-sure-RVA-matches-between-fake-.patch | 10 ++-- + ...me-file-alignment-for-fake-and-built.patch | 8 +-- + ...ebuild-Add-syscall-thunks-for-64-bit.patch | 39 ++++++-------- + ...all-NtOpenFile-through-syscall-thunk.patch | 32 +++++------ + 11 files changed, 123 insertions(+), 121 deletions(-) + +diff --git a/patches/winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch b/patches/winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch +index ef056cfcf..21d69fd59 100644 +--- a/patches/winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch ++++ b/patches/winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch +@@ -1,4 +1,4 @@ +-From de68d5c0e6bd728788bbec09100ea59802b8ff13 Mon Sep 17 00:00:00 2001 ++From 8b88aa45856684e63786425f72886f2ac57b3630 Mon Sep 17 00:00:00 2001 + From: =?UTF-8?q?Michael=20M=C3=BCller?= + Date: Thu, 25 May 2017 07:02:46 +0200 + Subject: [PATCH] kernel32/tests: Add basic tests for fake dlls. +@@ -8,10 +8,10 @@ Subject: [PATCH] kernel32/tests: Add basic tests for fake dlls. + 1 file changed, 91 insertions(+) + + diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c +-index 5474d543248..4e7a15970cb 100644 ++index ef8c47c04f1a..efd5a25a432d 100644 + --- a/dlls/kernel32/tests/loader.c + +++ b/dlls/kernel32/tests/loader.c +-@@ -1535,6 +1535,96 @@ static void test_filenames(void) ++@@ -1572,6 +1572,96 @@ static void test_filenames(void) + DeleteFileA( long_path ); + } + +@@ -108,7 +108,7 @@ index 5474d543248..4e7a15970cb 100644 + /* Verify linking style of import descriptors */ + static void test_ImportDescriptors(void) + { +-@@ -3997,6 +4087,7 @@ START_TEST(loader) ++@@ -4094,6 +4184,7 @@ START_TEST(loader) + return; + } + +diff --git a/patches/winebuild-Fake_Dlls/0002-krnl386.exe16-Do-not-abuse-WOW32Reserved-field-for-1.patch b/patches/winebuild-Fake_Dlls/0002-krnl386.exe16-Do-not-abuse-WOW32Reserved-field-for-1.patch +index 15aaa85df..ae98c2798 100644 +--- a/patches/winebuild-Fake_Dlls/0002-krnl386.exe16-Do-not-abuse-WOW32Reserved-field-for-1.patch ++++ b/patches/winebuild-Fake_Dlls/0002-krnl386.exe16-Do-not-abuse-WOW32Reserved-field-for-1.patch +@@ -1,4 +1,4 @@ +-From 25d08438aba3dee16c79ce3168a4f76f39816fad Mon Sep 17 00:00:00 2001 ++From 7af81866f286e60f601d1c3f9bfe8592a794d21d Mon Sep 17 00:00:00 2001 + From: Sebastian Lackner + Date: Tue, 16 May 2017 04:37:52 +0200 + Subject: [PATCH] krnl386.exe16: Do not abuse WOW32Reserved field for 16-bit +@@ -24,7 +24,7 @@ Subject: [PATCH] krnl386.exe16: Do not abuse WOW32Reserved field for 16-bit + 16 files changed, 78 insertions(+), 77 deletions(-) + + diff --git a/dlls/dbghelp/cpu_i386.c b/dlls/dbghelp/cpu_i386.c +-index fd808a0d324..7d6723977a2 100644 ++index fd808a0d3248..7d6723977a29 100644 + --- a/dlls/dbghelp/cpu_i386.c + +++ b/dlls/dbghelp/cpu_i386.c + @@ -213,16 +213,16 @@ static BOOL i386_stack_walk(struct cpu_stack_walk *csw, STACKFRAME64 *frame, +@@ -48,7 +48,7 @@ index fd808a0d324..7d6723977a2 100644 + } + next_switch = p; + diff --git a/dlls/krnl386.exe16/kernel.c b/dlls/krnl386.exe16/kernel.c +-index 07a57d0d937..89ea5c042e7 100644 ++index 07a57d0d9372..89ea5c042e71 100644 + --- a/dlls/krnl386.exe16/kernel.c + +++ b/dlls/krnl386.exe16/kernel.c + @@ -47,8 +47,8 @@ static void thread_attach(void) +@@ -72,7 +72,7 @@ index 07a57d0d937..89ea5c042e7 100644 + } + + diff --git a/dlls/krnl386.exe16/kernel16_private.h b/dlls/krnl386.exe16/kernel16_private.h +-index f15934daa0e..9f939a9d5ba 100644 ++index f15934daa0e4..9f939a9d5bac 100644 + --- a/dlls/krnl386.exe16/kernel16_private.h + +++ b/dlls/krnl386.exe16/kernel16_private.h + @@ -169,7 +169,7 @@ extern THHOOK *pThhook DECLSPEC_HIDDEN; +@@ -119,7 +119,7 @@ index f15934daa0e..9f939a9d5ba 100644 + + static inline struct kernel_thread_data *kernel_get_thread_data(void) + diff --git a/dlls/krnl386.exe16/ne_module.c b/dlls/krnl386.exe16/ne_module.c +-index f1e1a14dd67..c951a18f869 100644 ++index f1e1a14dd679..c951a18f8699 100644 + --- a/dlls/krnl386.exe16/ne_module.c + +++ b/dlls/krnl386.exe16/ne_module.c + @@ -1208,7 +1208,7 @@ DWORD NE_StartTask(void) +@@ -143,7 +143,7 @@ index f1e1a14dd67..c951a18f869 100644 + WOWCallback16Ex( 0, WCB16_REGS, 0, NULL, (DWORD *)&context ); + ExitThread( LOWORD(context.Eax) ); + diff --git a/dlls/krnl386.exe16/ne_segment.c b/dlls/krnl386.exe16/ne_segment.c +-index aa886148029..70eb3360914 100644 ++index aa8861480298..70eb33609144 100644 + --- a/dlls/krnl386.exe16/ne_segment.c + +++ b/dlls/krnl386.exe16/ne_segment.c + @@ -370,9 +370,9 @@ BOOL NE_LoadSegment( NE_MODULE *pModule, WORD segnum ) +@@ -209,7 +209,7 @@ index aa886148029..70eb3360914 100644 + args[7] = HIWORD(dwReason); + args[6] = LOWORD(dwReason); + diff --git a/dlls/krnl386.exe16/task.c b/dlls/krnl386.exe16/task.c +-index 39a60cb97a9..21de62c5a01 100644 ++index 39a60cb97a94..21de62c5a015 100644 + --- a/dlls/krnl386.exe16/task.c + +++ b/dlls/krnl386.exe16/task.c + @@ -624,7 +624,7 @@ void WINAPI InitTask16( CONTEXT *context ) +@@ -267,7 +267,7 @@ index 39a60cb97a9..21de62c5a01 100644 + context->Esp = OFFSETOF(pData->old_ss_sp) - sizeof(DWORD); /*ret addr*/ + pData->old_ss_sp = 0; + diff --git a/dlls/krnl386.exe16/thunk.c b/dlls/krnl386.exe16/thunk.c +-index e913a08f88c..ecc94371488 100644 ++index e913a08f88cc..ecc94371488f 100644 + --- a/dlls/krnl386.exe16/thunk.c + +++ b/dlls/krnl386.exe16/thunk.c + @@ -429,7 +429,7 @@ void WINAPI __regs_QT_Thunk( CONTEXT *context ) +@@ -413,7 +413,7 @@ index e913a08f88c..ecc94371488 100644 + if (OFFSETOF(frame32->frame16) > lpbuf[2]) + { + diff --git a/dlls/krnl386.exe16/wowthunk.c b/dlls/krnl386.exe16/wowthunk.c +-index 2dddbf93289..3a4b104a673 100644 ++index 2dddbf932898..3a4b104a673f 100644 + --- a/dlls/krnl386.exe16/wowthunk.c + +++ b/dlls/krnl386.exe16/wowthunk.c + @@ -127,7 +127,7 @@ static DWORD call16_handler( EXCEPTION_RECORD *record, EXCEPTION_REGISTRATION_RE +@@ -473,7 +473,7 @@ index 2dddbf93289..3a4b104a673 100644 + } + } + diff --git a/dlls/ntdll/unix/signal_i386.c b/dlls/ntdll/unix/signal_i386.c +-index 2928f314358..138f56b94eb 100644 ++index ac34f86a5883..55f1e2ce4b23 100644 + --- a/dlls/ntdll/unix/signal_i386.c + +++ b/dlls/ntdll/unix/signal_i386.c + @@ -645,7 +645,7 @@ static inline void *init_handler( const ucontext_t *sigcontext ) +@@ -486,7 +486,7 @@ index 2928f314358..138f56b94eb 100644 + return (void *)(ESP_sig(sigcontext) & ~3); + } + diff --git a/dlls/system.drv16/system.c b/dlls/system.drv16/system.c +-index b6fd51c05f0..695ad7b6003 100644 ++index b6fd51c05f01..695ad7b60039 100644 + --- a/dlls/system.drv16/system.c + +++ b/dlls/system.drv16/system.c + @@ -70,7 +70,7 @@ static void CALLBACK SYSTEM_TimerTick( LPVOID arg, DWORD low, DWORD high ) +@@ -499,7 +499,7 @@ index b6fd51c05f0..695ad7b6003 100644 + + WOWCallback16Ex( 0, WCB16_REGS, 0, NULL, (DWORD *)&context ); + diff --git a/dlls/toolhelp.dll16/toolhelp.c b/dlls/toolhelp.dll16/toolhelp.c +-index 578d1ae7fab..1077f0b0367 100644 ++index 578d1ae7faba..1077f0b03672 100644 + --- a/dlls/toolhelp.dll16/toolhelp.c + +++ b/dlls/toolhelp.dll16/toolhelp.c + @@ -491,8 +491,8 @@ BOOL16 WINAPI TaskNext16( TASKENTRY *lpte ) +@@ -523,7 +523,7 @@ index 578d1ae7fab..1077f0b0367 100644 + WORD user = LoadLibrary16( "USER.EXE" ); + WORD gdi = LoadLibrary16( "GDI.EXE" ); + diff --git a/dlls/user.exe16/message.c b/dlls/user.exe16/message.c +-index e3ca3fd779d..fa9388ceaa1 100644 ++index e3ca3fd779d3..fa9388ceaa11 100644 + --- a/dlls/user.exe16/message.c + +++ b/dlls/user.exe16/message.c + @@ -240,11 +240,11 @@ static LRESULT call_window_proc16( HWND16 hwnd, UINT16 msg, WPARAM16 wParam, LPA +@@ -595,7 +595,7 @@ index e3ca3fd779d..fa9388ceaa1 100644 + + stack16->ds = GetWindowLongPtrW( hwnd, GWLP_HINSTANCE ); + diff --git a/dlls/user.exe16/user.c b/dlls/user.exe16/user.c +-index 27b92793836..deec596f766 100644 ++index 27b92793836a..deec596f7660 100644 + --- a/dlls/user.exe16/user.c + +++ b/dlls/user.exe16/user.c + @@ -1394,7 +1394,7 @@ DWORD WINAPI GetTabbedTextExtent16( HDC16 hdc, LPCSTR lpstr, INT16 count, +@@ -617,7 +617,7 @@ index 27b92793836..deec596f766 100644 + int userPercent, gdiPercent; + + diff --git a/dlls/user.exe16/window.c b/dlls/user.exe16/window.c +-index bf86719325b..1f53bdc9540 100644 ++index bf86719325b8..1f53bdc95402 100644 + --- a/dlls/user.exe16/window.c + +++ b/dlls/user.exe16/window.c + @@ -456,7 +456,7 @@ HWND16 WINAPI GetParent16( HWND16 hwnd ) +@@ -630,10 +630,10 @@ index bf86719325b..1f53bdc9540 100644 + /* don't use WIN_Handle32 here, we don't care about the full handle */ + return IsWindow( HWND_32(hwnd) ); + diff --git a/include/winternl.h b/include/winternl.h +-index acbce20c212..68c1ae3fd82 100644 ++index 87eb0d32926b..2d9f54b89d8c 100644 + --- a/include/winternl.h + +++ b/include/winternl.h +-@@ -362,7 +362,7 @@ typedef struct _TEB ++@@ -363,7 +363,7 @@ typedef struct _TEB + PVOID WOW32Reserved; /* 0c0/0100 */ + ULONG CurrentLocale; /* 0c4/0108 */ + ULONG FpSoftwareStatusRegister; /* 0c8/010c */ +@@ -643,7 +643,7 @@ index acbce20c212..68c1ae3fd82 100644 + ACTIVATION_CONTEXT_STACK ActivationContextStack; /* 1a8/02c8 */ + BYTE SpareBytes1[24]; /* 1bc/02e8 */ + diff --git a/tools/winebuild/relay.c b/tools/winebuild/relay.c +-index 29d0a74c833..01bb97e02b4 100644 ++index 29d0a74c833c..01bb97e02b4c 100644 + --- a/tools/winebuild/relay.c + +++ b/tools/winebuild/relay.c + @@ -31,7 +31,7 @@ +diff --git a/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch b/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch +index 547e27f8f..a0487f91b 100644 +--- a/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch ++++ b/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch +@@ -1,4 +1,4 @@ +-From 0c4d2573b123f2198f74292133b7a6eefa472620 Mon Sep 17 00:00:00 2001 ++From d8ff827f7a94aee2bed89c620120af0a148ca81c Mon Sep 17 00:00:00 2001 + From: =?UTF-8?q?Michael=20M=C3=BCller?= + Date: Thu, 11 May 2017 05:32:55 +0200 + Subject: [PATCH] winebuild: Generate syscall thunks for ntdll exports. +@@ -8,7 +8,7 @@ Based on a patch by Erich E. Hoover. + dlls/ntdll/loader.c | 3 + + dlls/ntdll/signal_i386.c | 4 +- + dlls/ntdll/tests/exception.c | 2 + +- dlls/ntdll/thread.c | 3 +- ++ dlls/ntdll/thread.c | 10 +++- + dlls/ntdll/unix/thread.c | 3 +- + dlls/ntdll/unix/unix_private.h | 2 +- + dlls/ntdll/unixlib.h | 4 +- +@@ -19,13 +19,13 @@ Based on a patch by Erich E. Hoover. + tools/winebuild/spec16.c | 22 +------ + tools/winebuild/spec32.c | 104 +++++++++++++++++++++++++++++++++ + tools/winebuild/utils.c | 21 +++++++ +- 14 files changed, 214 insertions(+), 32 deletions(-) ++ 14 files changed, 221 insertions(+), 32 deletions(-) + + diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c +-index 0c8f05285c4..26c540050dc 100644 ++index 2553b0b9d397..cac6aae2f3dd 100644 + --- a/dlls/ntdll/loader.c + +++ b/dlls/ntdll/loader.c +-@@ -3810,6 +3810,7 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule) ++@@ -4021,6 +4021,7 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule) + return ret; + } + +@@ -33,7 +33,7 @@ index 0c8f05285c4..26c540050dc 100644 + + /****************************************************************** + * LdrInitializeThunk (NTDLL.@) +-@@ -3826,6 +3827,8 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow ++@@ -4038,6 +4039,8 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow + WINE_MODREF *wm; + LPCWSTR load_path = NtCurrentTeb()->Peb->ProcessParameters->DllPath.Buffer; + +@@ -43,7 +43,7 @@ index 0c8f05285c4..26c540050dc 100644 + + RtlEnterCriticalSection( &loader_section ); + diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c +-index 21cc1b3ead4..18be5693a7d 100644 ++index 21cc1b3ead40..18be5693a7d2 100644 + --- a/dlls/ntdll/signal_i386.c + +++ b/dlls/ntdll/signal_i386.c + @@ -346,6 +346,8 @@ __ASM_STDCALL_FUNC( RtlCaptureContext, 4, +@@ -65,7 +65,7 @@ index 21cc1b3ead4..18be5693a7d 100644 + } + return unix_funcs->NtGetContextThread( handle, context ); + diff --git a/dlls/ntdll/tests/exception.c b/dlls/ntdll/tests/exception.c +-index a5e6faa461a..51938bf84cc 100644 ++index 1389a542cdee..54796476e25b 100644 + --- a/dlls/ntdll/tests/exception.c + +++ b/dlls/ntdll/tests/exception.c + @@ -1643,6 +1643,8 @@ static void test_thread_context(void) +@@ -78,18 +78,25 @@ index a5e6faa461a..51938bf84cc 100644 + ok( context.SegCs == LOWORD(expect.SegCs), "wrong SegCs %08x/%08x\n", context.SegCs, expect.SegCs ); + ok( context.SegDs == LOWORD(expect.SegDs), "wrong SegDs %08x/%08x\n", context.SegDs, expect.SegDs ); + diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c +-index 5a6809638ae..fa10cdf1062 100644 ++index ff5fe9d6226a..e93498b27ea0 100644 + --- a/dlls/ntdll/thread.c + +++ b/dlls/ntdll/thread.c +-@@ -170,6 +170,7 @@ int __cdecl __wine_dbg_output( const char *str ) ++@@ -220,6 +220,14 @@ int __cdecl __wine_dbg_output( const char *str ) + return unix_funcs->dbg_output( str ); + } + +++#if defined(__i386__) || defined(__x86_64__) + +extern void DECLSPEC_NORETURN __wine_syscall_dispatcher( void ); +++#else +++void __wine_syscall_dispatcher( void ) +++{ +++ FIXME("Syscall dispatcher is not available for this architecture.\n"); +++} +++#endif + + /*********************************************************************** + * thread_init +-@@ -181,7 +182,7 @@ int __cdecl __wine_dbg_output( const char *str ) ++@@ -231,7 +239,7 @@ int __cdecl __wine_dbg_output( const char *str ) + TEB *thread_init( SIZE_T *info_size, BOOL *suspend ) + { + TEB *teb = unix_funcs->init_threading( &nb_threads, &__wine_ldt_copy, info_size, suspend, &server_cpus, +@@ -99,7 +106,7 @@ index 5a6809638ae..fa10cdf1062 100644 + peb = teb->Peb; + peb->FastPebLock = &peb_lock; + diff --git a/dlls/ntdll/unix/thread.c b/dlls/ntdll/unix/thread.c +-index 97b191e1a5b..2dbaa43e731 100644 ++index 97b191e1a5b3..2dbaa43e731a 100644 + --- a/dlls/ntdll/unix/thread.c + +++ b/dlls/ntdll/unix/thread.c + @@ -85,7 +85,7 @@ static void pthread_exit_wrapper( int status ) +@@ -120,10 +127,10 @@ index 97b191e1a5b..2dbaa43e731 100644 + thread_data->request_fd = -1; + thread_data->reply_fd = -1; + diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h +-index 19dd216fc35..a1c48a52606 100644 ++index 92a58417827b..33a551e947c2 100644 + --- a/dlls/ntdll/unix/unix_private.h + +++ b/dlls/ntdll/unix/unix_private.h +-@@ -107,7 +107,7 @@ extern void CDECL server_release_fd( HANDLE handle, int unix_fd ) DECLSPEC_HIDDE ++@@ -108,7 +108,7 @@ extern void CDECL server_release_fd( HANDLE handle, int unix_fd ) DECLSPEC_HIDDE + extern void CDECL server_init_process_done( void *relay ) DECLSPEC_HIDDEN; + extern TEB * CDECL init_threading( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZE_T *size, + BOOL *suspend, unsigned int *cpus, BOOL *wow64, +@@ -133,7 +140,7 @@ index 19dd216fc35..a1c48a52606 100644 + extern void CDECL DECLSPEC_NORETURN exit_process( int status ) DECLSPEC_HIDDEN; + extern NTSTATUS CDECL get_thread_ldt_entry( HANDLE handle, void *data, ULONG len, ULONG *ret_len ) DECLSPEC_HIDDEN; + diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h +-index 4c580c49d13..4f0080db03d 100644 ++index 4c580c49d139..4f0080db03d9 100644 + --- a/dlls/ntdll/unixlib.h + +++ b/dlls/ntdll/unixlib.h + @@ -28,7 +28,7 @@ struct ldt_copy; +@@ -155,10 +162,10 @@ index 4c580c49d13..4f0080db03d 100644 + void (CDECL *exit_process)( int status ); + NTSTATUS (CDECL *get_thread_ldt_entry)( HANDLE handle, void *data, ULONG len, ULONG *ret_len ); + diff --git a/include/winternl.h b/include/winternl.h +-index 68c1ae3fd82..f2da9157aab 100644 ++index 2d9f54b89d8c..0c15a0ee6c34 100644 + --- a/include/winternl.h + +++ b/include/winternl.h +-@@ -359,7 +359,7 @@ typedef struct _TEB ++@@ -360,7 +360,7 @@ typedef struct _TEB + PVOID CsrClientThread; /* 03c/0070 */ + PVOID Win32ThreadInfo; /* 040/0078 */ + ULONG Win32ClientInfo[31]; /* 044/0080 used for user32 private data in Wine */ +@@ -168,7 +175,7 @@ index 68c1ae3fd82..f2da9157aab 100644 + ULONG FpSoftwareStatusRegister; /* 0c8/010c */ + PVOID SystemReserved1[54]; /* 0cc/0110 used for krnl386.exe16 private data in Wine */ + diff --git a/tools/winebuild/build.h b/tools/winebuild/build.h +-index c162888a035..55d5b0b9dc2 100644 ++index c162888a0356..55d5b0b9dc28 100644 + --- a/tools/winebuild/build.h + +++ b/tools/winebuild/build.h + @@ -105,6 +105,7 @@ typedef struct +@@ -216,7 +223,7 @@ index c162888a035..55d5b0b9dc2 100644 + + extern int byte_swapped; + diff --git a/tools/winebuild/import.c b/tools/winebuild/import.c +-index 04ab433dd65..0c6bafed8e5 100644 ++index 04ab433dd65a..0c6bafed8e54 100644 + --- a/tools/winebuild/import.c + +++ b/tools/winebuild/import.c + @@ -531,6 +531,7 @@ static void check_undefined_forwards( DLLSPEC *spec ) +@@ -256,7 +263,7 @@ index 04ab433dd65..0c6bafed8e5 100644 + } + } + diff --git a/tools/winebuild/parser.c b/tools/winebuild/parser.c +-index 0f2b9c1e10a..74216f8bb6e 100644 ++index 0f2b9c1e10ad..74216f8bb6e7 100644 + --- a/tools/winebuild/parser.c + +++ b/tools/winebuild/parser.c + @@ -543,6 +543,24 @@ static const char *parse_spec_flags( DLLSPEC *spec, ORDDEF *odp ) +@@ -347,7 +354,7 @@ index 0f2b9c1e10a..74216f8bb6e 100644 + } + + diff --git a/tools/winebuild/spec16.c b/tools/winebuild/spec16.c +-index a52c03aaa6a..15ef9a3f893 100644 ++index a52c03aaa6a7..15ef9a3f8930 100644 + --- a/tools/winebuild/spec16.c + +++ b/tools/winebuild/spec16.c + @@ -495,27 +495,6 @@ static int relay_type_compare( const void *e1, const void *e2 ) +@@ -387,7 +394,7 @@ index a52c03aaa6a..15ef9a3f893 100644 + entry_point->u.func.nb_args = 0; + assert( !spec->ordinals[0] ); + diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c +-index b1e20e0484d..22dd399cb2b 100644 ++index b1e20e0484dc..22dd399cb2b4 100644 + --- a/tools/winebuild/spec32.c + +++ b/tools/winebuild/spec32.c + @@ -374,6 +374,109 @@ static void output_relay_debug( DLLSPEC *spec ) +@@ -509,7 +516,7 @@ index b1e20e0484d..22dd399cb2b 100644 + output_exports( spec ); + output_imports( spec ); + diff --git a/tools/winebuild/utils.c b/tools/winebuild/utils.c +-index 2a1fc960926..07a579004ad 100644 ++index 2a1fc960926b..07a579004adc 100644 + --- a/tools/winebuild/utils.c + +++ b/tools/winebuild/utils.c + @@ -860,6 +860,7 @@ void free_dll_spec( DLLSPEC *spec ) +diff --git a/patches/winebuild-Fake_Dlls/0004-winebuild-Use-multipass-label-system-to-generate-fak.patch b/patches/winebuild-Fake_Dlls/0004-winebuild-Use-multipass-label-system-to-generate-fak.patch +index 6c3984f8b..d4813799e 100644 +--- a/patches/winebuild-Fake_Dlls/0004-winebuild-Use-multipass-label-system-to-generate-fak.patch ++++ b/patches/winebuild-Fake_Dlls/0004-winebuild-Use-multipass-label-system-to-generate-fak.patch +@@ -1,4 +1,4 @@ +-From 15182deeb13e26abdb3067a77353354726ac82aa Mon Sep 17 00:00:00 2001 ++From 344eb39bdfee74d4d826fa2f61a95736f0ee9823 Mon Sep 17 00:00:00 2001 + From: =?UTF-8?q?Michael=20M=C3=BCller?= + Date: Mon, 15 May 2017 02:05:49 +0200 + Subject: [PATCH] winebuild: Use multipass label system to generate fake dlls. +@@ -11,7 +11,7 @@ Subject: [PATCH] winebuild: Use multipass label system to generate fake dlls. + 4 files changed, 181 insertions(+), 63 deletions(-) + + diff --git a/tools/winebuild/build.h b/tools/winebuild/build.h +-index 6ee847f908c..210324406a9 100644 ++index 55d5b0b9dc28..8930df408d3b 100644 + --- a/tools/winebuild/build.h + +++ b/tools/winebuild/build.h + @@ -343,6 +343,7 @@ extern size_t input_buffer_pos; +@@ -35,7 +35,7 @@ index 6ee847f908c..210324406a9 100644 + /* global variables */ + + diff --git a/tools/winebuild/res32.c b/tools/winebuild/res32.c +-index bd55bb2fa5c..d9329019f8a 100644 ++index bd55bb2fa5c4..d9329019f8a3 100644 + --- a/tools/winebuild/res32.c + +++ b/tools/winebuild/res32.c + @@ -539,7 +539,6 @@ void output_bin_resources( DLLSPEC *spec, unsigned int start_rva ) +@@ -47,7 +47,7 @@ index bd55bb2fa5c..d9329019f8a 100644 + /* output the resource directories */ + + diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c +-index 22dd399cb2b..c38f1fe663c 100644 ++index 22dd399cb2b4..c38f1fe663c7 100644 + --- a/tools/winebuild/spec32.c + +++ b/tools/winebuild/spec32.c + @@ -844,11 +844,11 @@ void output_spec32_file( DLLSPEC *spec ) +@@ -279,7 +279,7 @@ index 22dd399cb2b..c38f1fe663c 100644 + } + + diff --git a/tools/winebuild/utils.c b/tools/winebuild/utils.c +-index 7dc61a708db..64e1fa51455 100644 ++index 07a579004adc..80dec6db29ea 100644 + --- a/tools/winebuild/utils.c + +++ b/tools/winebuild/utils.c + @@ -34,6 +34,7 @@ +diff --git a/patches/winebuild-Fake_Dlls/0005-winebuild-Add-stub-functions-in-fake-dlls.patch b/patches/winebuild-Fake_Dlls/0005-winebuild-Add-stub-functions-in-fake-dlls.patch +index f96d51aee..4ac05a314 100644 +--- a/patches/winebuild-Fake_Dlls/0005-winebuild-Add-stub-functions-in-fake-dlls.patch ++++ b/patches/winebuild-Fake_Dlls/0005-winebuild-Add-stub-functions-in-fake-dlls.patch +@@ -1,4 +1,4 @@ +-From 167ad04157dd746ee9395afa9505fe00cc866f9b Mon Sep 17 00:00:00 2001 ++From e5fc6ee60be5dd3b80af96dcbd81adb742ba7a5d Mon Sep 17 00:00:00 2001 + From: =?UTF-8?q?Michael=20M=C3=BCller?= + Date: Mon, 15 May 2017 16:27:56 +0200 + Subject: [PATCH] winebuild: Add stub functions in fake dlls. +@@ -14,10 +14,10 @@ Subject: [PATCH] winebuild: Add stub functions in fake dlls. + 7 files changed, 251 insertions(+), 15 deletions(-) + + diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c +-index 926fa913866..902907329c0 100644 ++index efd5a25a432d..182b61b731a2 100644 + --- a/dlls/kernel32/tests/loader.c + +++ b/dlls/kernel32/tests/loader.c +-@@ -1596,9 +1596,7 @@ static void test_FakeDLL(void) ++@@ -1597,9 +1597,7 @@ static void test_FakeDLL(void) + ok(ptr != NULL, "MapViewOfFile failed with error %u\n", GetLastError()); + + dir = RtlImageDirectoryEntryToData(ptr, TRUE, IMAGE_DIRECTORY_ENTRY_EXPORT, &size); +@@ -27,7 +27,7 @@ index 926fa913866..902907329c0 100644 + + names = RVAToAddr(dir->AddressOfNames, ptr); + ordinals = RVAToAddr(dir->AddressOfNameOrdinals, ptr); +-@@ -1627,17 +1625,20 @@ todo_wine ++@@ -1628,17 +1626,20 @@ todo_wine + /* check position in memory */ + dll_rva = (DWORD_PTR)dll_func - (DWORD_PTR)module; + map_rva = funcs[ordinals[i]]; +@@ -48,7 +48,7 @@ index 926fa913866..902907329c0 100644 + ok(!memcmp(map_func, dll_func, 0x20), "%s: Function content does not match!\n", func_name); + + if (!strcmp(func_name, "NtSetEvent")) +-@@ -1651,10 +1652,11 @@ todo_wine ++@@ -1652,10 +1653,11 @@ todo_wine + ok(event != NULL, "CreateEvent failed with error %u\n", GetLastError()); + pNtSetEvent(event, 0); + ok(WaitForSingleObject(event, 0) == WAIT_OBJECT_0, "Event was not signaled\n"); +@@ -62,10 +62,10 @@ index 926fa913866..902907329c0 100644 + CloseHandle(map); + CloseHandle(file); + diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c +-index 26c540050dc..09d3870c31a 100644 ++index cac6aae2f3dd..51d989f30b45 100644 + --- a/dlls/ntdll/loader.c + +++ b/dlls/ntdll/loader.c +-@@ -3811,6 +3811,7 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule) ++@@ -4022,6 +4022,7 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule) + } + + extern void DECLSPEC_NORETURN __wine_syscall_dispatcher( void ); +@@ -73,7 +73,7 @@ index 26c540050dc..09d3870c31a 100644 + + /****************************************************************** + * LdrInitializeThunk (NTDLL.@) +-@@ -3828,6 +3829,7 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow ++@@ -4040,6 +4041,7 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow + LPCWSTR load_path = NtCurrentTeb()->Peb->ProcessParameters->DllPath.Buffer; + + NtCurrentTeb()->WOW32Reserved = __wine_syscall_dispatcher; +@@ -82,12 +82,12 @@ index 26c540050dc..09d3870c31a 100644 + if (process_detaching) return; + + diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c +-index fa10cdf1062..4840f527e59 100644 ++index e93498b27ea0..a14e3a12ae0c 100644 + --- a/dlls/ntdll/thread.c + +++ b/dlls/ntdll/thread.c +-@@ -172,6 +172,39 @@ int __cdecl __wine_dbg_output( const char *str ) +- +- extern void DECLSPEC_NORETURN __wine_syscall_dispatcher( void ); ++@@ -229,6 +229,39 @@ void __wine_syscall_dispatcher( void ) ++ } ++ #endif + + +void *WINAPI __wine_fakedll_dispatcher( const char *module, ULONG ord ) + +{ +@@ -125,7 +125,7 @@ index fa10cdf1062..4840f527e59 100644 + /*********************************************************************** + * thread_init + * +-@@ -183,6 +216,7 @@ TEB *thread_init( SIZE_T *info_size, BOOL *suspend ) ++@@ -240,6 +273,7 @@ TEB *thread_init( SIZE_T *info_size, BOOL *suspend ) + { + TEB *teb = unix_funcs->init_threading( &nb_threads, &__wine_ldt_copy, info_size, suspend, &server_cpus, + &is_wow64, &server_start_time, __wine_syscall_dispatcher ); +@@ -134,10 +134,10 @@ index fa10cdf1062..4840f527e59 100644 + peb = teb->Peb; + peb->FastPebLock = &peb_lock; + diff --git a/include/winternl.h b/include/winternl.h +-index f2da9157aab..ce8021af503 100644 ++index 0c15a0ee6c34..6da672e979e5 100644 + --- a/include/winternl.h + +++ b/include/winternl.h +-@@ -398,7 +398,7 @@ typedef struct _TEB ++@@ -399,7 +399,7 @@ typedef struct _TEB + PVOID Instrumentation[16]; /* f2c/16b8 */ + PVOID WinSockData; /* f6c/1738 */ + ULONG GdiBatchCount; /* f70/1740 */ +@@ -147,7 +147,7 @@ index f2da9157aab..ce8021af503 100644 + PVOID ReservedForPerf; /* f7c/1750 */ + PVOID ReservedForOle; /* f80/1758 */ + diff --git a/tools/winebuild/build.h b/tools/winebuild/build.h +-index 8930df408d3..44113bad28a 100644 ++index 8930df408d3b..44113bad28af 100644 + --- a/tools/winebuild/build.h + +++ b/tools/winebuild/build.h + @@ -358,6 +358,7 @@ extern void put_word( unsigned short val ); +@@ -159,7 +159,7 @@ index 8930df408d3..44113bad28a 100644 + extern void align_output_rva( unsigned int file_align, unsigned int rva_align ); + extern size_t label_pos( const char *name ); + diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c +-index c38f1fe663c..bf82ca497c0 100644 ++index c38f1fe663c7..bf82ca497c0d 100644 + --- a/tools/winebuild/spec32.c + +++ b/tools/winebuild/spec32.c + @@ -843,6 +843,163 @@ void output_spec32_file( DLLSPEC *spec ) +@@ -415,7 +415,7 @@ index c38f1fe663c..bf82ca497c0 100644 + /* .reloc contents */ + align_output_rva( file_align, section_align ); + diff --git a/tools/winebuild/utils.c b/tools/winebuild/utils.c +-index 80dec6db29e..d394a1382c6 100644 ++index 80dec6db29ea..d394a1382c68 100644 + --- a/tools/winebuild/utils.c + +++ b/tools/winebuild/utils.c + @@ -549,7 +549,7 @@ size_t output_buffer_size; +diff --git a/patches/winebuild-Fake_Dlls/0006-winebuild-Add-syscall-thunks-in-fake-dlls.patch b/patches/winebuild-Fake_Dlls/0006-winebuild-Add-syscall-thunks-in-fake-dlls.patch +index 5ae2b3deb..13f46d6b0 100644 +--- a/patches/winebuild-Fake_Dlls/0006-winebuild-Add-syscall-thunks-in-fake-dlls.patch ++++ b/patches/winebuild-Fake_Dlls/0006-winebuild-Add-syscall-thunks-in-fake-dlls.patch +@@ -1,4 +1,4 @@ +-From 84a9f7b8192d7735108da2d7e81cf63faef97c13 Mon Sep 17 00:00:00 2001 ++From fd72d405abba827ab5e2603551d48200aedad3ce Mon Sep 17 00:00:00 2001 + From: =?UTF-8?q?Michael=20M=C3=BCller?= + Date: Mon, 15 May 2017 17:56:48 +0200 + Subject: [PATCH] winebuild: Add syscall thunks in fake dlls. +@@ -9,10 +9,10 @@ Subject: [PATCH] winebuild: Add syscall thunks in fake dlls. + 2 files changed, 25 insertions(+), 3 deletions(-) + + diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c +-index ec173c94a8e..a3bed8b310b 100644 ++index 182b61b731a2..98369c7d508c 100644 + --- a/dlls/kernel32/tests/loader.c + +++ b/dlls/kernel32/tests/loader.c +-@@ -1602,7 +1602,6 @@ static void test_FakeDLL(void) ++@@ -1639,7 +1639,6 @@ static void test_FakeDLL(void) + + /* check function content */ + map_func = RVAToAddr(map_rva, ptr); +@@ -21,7 +21,7 @@ index ec173c94a8e..a3bed8b310b 100644 + + if (!strcmp(func_name, "NtSetEvent")) + diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c +-index bf82ca497c0..6968e41260f 100644 ++index bf82ca497c0d..6968e41260f1 100644 + --- a/tools/winebuild/spec32.c + +++ b/tools/winebuild/spec32.c + @@ -860,13 +860,36 @@ static void create_stub_exports_text( DLLSPEC *spec ) +diff --git a/patches/winebuild-Fake_Dlls/0007-winebuild-Fix-size-of-relocation-information-in-fake.patch b/patches/winebuild-Fake_Dlls/0007-winebuild-Fix-size-of-relocation-information-in-fake.patch +index 92a7161de..3b3745ed6 100644 +--- a/patches/winebuild-Fake_Dlls/0007-winebuild-Fix-size-of-relocation-information-in-fake.patch ++++ b/patches/winebuild-Fake_Dlls/0007-winebuild-Fix-size-of-relocation-information-in-fake.patch +@@ -1,4 +1,4 @@ +-From d77c31b1567bfbde1ce4ceb526ad596d0be3e788 Mon Sep 17 00:00:00 2001 ++From f92fc0572be02ce2eee2a9cbf60724372678a5af Mon Sep 17 00:00:00 2001 + From: =?UTF-8?q?Michael=20M=C3=BCller?= + Date: Thu, 25 May 2017 03:22:25 +0200 + Subject: [PATCH] winebuild: Fix size of relocation information in fake dlls. +@@ -8,7 +8,7 @@ Subject: [PATCH] winebuild: Fix size of relocation information in fake dlls. + 1 file changed, 2 insertions(+), 2 deletions(-) + + diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c +-index 6968e41260f..f95b45b9a0d 100644 ++index 6968e41260f1..f95b45b9a0d5 100644 + --- a/tools/winebuild/spec32.c + +++ b/tools/winebuild/spec32.c + @@ -1238,8 +1238,8 @@ static void output_fake_module_pass( DLLSPEC *spec ) +diff --git a/patches/winebuild-Fake_Dlls/0008-winebuild-Try-to-make-sure-RVA-matches-between-fake-.patch b/patches/winebuild-Fake_Dlls/0008-winebuild-Try-to-make-sure-RVA-matches-between-fake-.patch +index c4f1fb004..2cb4b7cf1 100644 +--- a/patches/winebuild-Fake_Dlls/0008-winebuild-Try-to-make-sure-RVA-matches-between-fake-.patch ++++ b/patches/winebuild-Fake_Dlls/0008-winebuild-Try-to-make-sure-RVA-matches-between-fake-.patch +@@ -1,4 +1,4 @@ +-From afa59bbabca36f306e9db4c1b080a250c4a919ea Mon Sep 17 00:00:00 2001 ++From 59efee63a7442dfee4d9e76b11f651a11a4b523e Mon Sep 17 00:00:00 2001 + From: =?UTF-8?q?Michael=20M=C3=BCller?= + Date: Thu, 25 May 2017 21:46:27 +0200 + Subject: [PATCH] winebuild: Try to make sure RVA matches between fake and +@@ -11,10 +11,10 @@ Subject: [PATCH] winebuild: Try to make sure RVA matches between fake and + 3 files changed, 26 insertions(+), 5 deletions(-) + + diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c +-index a3bed8b310b..8b5a345b086 100644 ++index 98369c7d508c..77e73b3ca37b 100644 + --- a/dlls/kernel32/tests/loader.c + +++ b/dlls/kernel32/tests/loader.c +-@@ -1589,7 +1589,6 @@ static void test_FakeDLL(void) ++@@ -1626,7 +1626,6 @@ static void test_FakeDLL(void) + /* check position in memory */ + dll_rva = (DWORD_PTR)dll_func - (DWORD_PTR)module; + map_rva = funcs[ordinals[i]]; +@@ -23,7 +23,7 @@ index a3bed8b310b..8b5a345b086 100644 + func_name, dll_rva, map_rva); + + diff --git a/libs/wine/loader.c b/libs/wine/loader.c +-index c3b59d90224..b6847ca77b3 100644 ++index c3b59d902243..b6847ca77b31 100644 + --- a/libs/wine/loader.c + +++ b/libs/wine/loader.c + @@ -335,8 +335,12 @@ static void *map_dll( const IMAGE_NT_HEADERS *nt_descr ) +@@ -54,7 +54,7 @@ index c3b59d90224..b6847ca77b3 100644 + + memcpy( sec->Name, ".text", sizeof(".text") ); + diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c +-index f95b45b9a0d..07d6eed05fc 100644 ++index f95b45b9a0d5..07d6eed05fcc 100644 + --- a/tools/winebuild/spec32.c + +++ b/tools/winebuild/spec32.c + @@ -381,14 +381,25 @@ static void output_relay_debug( DLLSPEC *spec ) +diff --git a/patches/winebuild-Fake_Dlls/0009-libs-wine-Use-same-file-alignment-for-fake-and-built.patch b/patches/winebuild-Fake_Dlls/0009-libs-wine-Use-same-file-alignment-for-fake-and-built.patch +index e0ae33a59..9113beb5f 100644 +--- a/patches/winebuild-Fake_Dlls/0009-libs-wine-Use-same-file-alignment-for-fake-and-built.patch ++++ b/patches/winebuild-Fake_Dlls/0009-libs-wine-Use-same-file-alignment-for-fake-and-built.patch +@@ -1,4 +1,4 @@ +-From 29478273c4db90d209ac5afbdc1dd80add3d2c7e Mon Sep 17 00:00:00 2001 ++From 370eccb19c65a8b02abfa31a76651ae533dda22f Mon Sep 17 00:00:00 2001 + From: =?UTF-8?q?Michael=20M=C3=BCller?= + Date: Thu, 25 May 2017 21:56:06 +0200 + Subject: [PATCH] libs/wine: Use same file alignment for fake and builtin DLLs. +@@ -9,10 +9,10 @@ Subject: [PATCH] libs/wine: Use same file alignment for fake and builtin DLLs. + 2 files changed, 1 insertion(+), 2 deletions(-) + + diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c +-index 8b5a345b086..5373dc4efe1 100644 ++index 77e73b3ca37b..1f525194ce73 100644 + --- a/dlls/kernel32/tests/loader.c + +++ b/dlls/kernel32/tests/loader.c +-@@ -1595,7 +1595,6 @@ static void test_FakeDLL(void) ++@@ -1632,7 +1632,6 @@ static void test_FakeDLL(void) + /* check position in file */ + map_offset = (DWORD_PTR)RtlImageRvaToVa(RtlImageNtHeader(ptr), ptr, map_rva, NULL) - (DWORD_PTR)ptr; + dll_offset = (DWORD_PTR)RtlImageRvaToVa(RtlImageNtHeader(module), module, dll_rva, NULL) - (DWORD_PTR)module; +@@ -21,7 +21,7 @@ index 8b5a345b086..5373dc4efe1 100644 + func_name, map_offset, dll_offset); + + diff --git a/libs/wine/loader.c b/libs/wine/loader.c +-index b6847ca77b3..4597a6cb324 100644 ++index b6847ca77b31..4597a6cb3243 100644 + --- a/libs/wine/loader.c + +++ b/libs/wine/loader.c + @@ -398,7 +398,7 @@ static void *map_dll( const IMAGE_NT_HEADERS *nt_descr ) +diff --git a/patches/winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch b/patches/winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch +index 6024e5a2f..e40a80148 100644 +--- a/patches/winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch ++++ b/patches/winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch +@@ -1,4 +1,4 @@ +-From a5b4feebd008daab008f72567fe0001da619030e Mon Sep 17 00:00:00 2001 ++From 6f1973aa2aee35139ae041e59d37a45ff22dc5bf Mon Sep 17 00:00:00 2001 + From: =?UTF-8?q?Michael=20M=C3=BCller?= + Date: Thu, 7 Sep 2017 00:38:09 +0200 + Subject: [PATCH] tools/winebuild: Add syscall thunks for 64 bit. +@@ -7,18 +7,18 @@ Subject: [PATCH] tools/winebuild: Add syscall thunks for 64 bit. + dlls/kernel32/tests/loader.c | 7 +- + dlls/ntdll/unix/thread.c | 2 +- + dlls/ntdll/unix/unix_private.h | 2 +- +- dlls/ntdll/unix/virtual.c | 12 +- ++ dlls/ntdll/unix/virtual.c | 11 +- + libs/wine/loader.c | 4 + + server/mapping.c | 6 +- + tools/winebuild/parser.c | 2 +- + tools/winebuild/spec32.c | 285 ++++++++++++++++++++++++++++++++- +- 8 files changed, 306 insertions(+), 14 deletions(-) ++ 8 files changed, 305 insertions(+), 14 deletions(-) + + diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c +-index 95939ba6bde..ae5462f6e55 100644 ++index 1f525194ce73..21af7b4ce7a4 100644 + --- a/dlls/kernel32/tests/loader.c + +++ b/dlls/kernel32/tests/loader.c +-@@ -1573,7 +1573,7 @@ static void test_filenames(void) ++@@ -1574,7 +1574,7 @@ static void test_filenames(void) + + static void test_FakeDLL(void) + { +@@ -27,7 +27,7 @@ index 95939ba6bde..ae5462f6e55 100644 + NTSTATUS (WINAPI *pNtSetEvent)(HANDLE, ULONG *) = NULL; + IMAGE_EXPORT_DIRECTORY *dir; + HMODULE module = GetModuleHandleA("ntdll.dll"); +-@@ -1615,8 +1615,13 @@ static void test_FakeDLL(void) ++@@ -1616,8 +1616,13 @@ static void test_FakeDLL(void) + + dll_func = (BYTE *)GetProcAddress(module, func_name); + ok(dll_func != NULL, "%s: GetProcAddress returned NULL\n", func_name); +@@ -42,7 +42,7 @@ index 95939ba6bde..ae5462f6e55 100644 + todo_wine ok(0, "%s: Export is a stub-function, skipping\n", func_name); + continue; + diff --git a/dlls/ntdll/unix/thread.c b/dlls/ntdll/unix/thread.c +-index 2dbaa43e731..e1da90222d3 100644 ++index 2dbaa43e731a..e1da90222d38 100644 + --- a/dlls/ntdll/unix/thread.c + +++ b/dlls/ntdll/unix/thread.c + @@ -110,7 +110,7 @@ TEB * CDECL init_threading( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZ +@@ -55,10 +55,10 @@ index 2dbaa43e731..e1da90222d3 100644 + + if (size) *size = info_size; + diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h +-index a1c48a52606..9c9e5b80b0c 100644 ++index 33a551e947c2..d06f366d3c6d 100644 + --- a/dlls/ntdll/unix/unix_private.h + +++ b/dlls/ntdll/unix/unix_private.h +-@@ -152,7 +152,7 @@ extern void virtual_init(void) DECLSPEC_HIDDEN; ++@@ -153,7 +153,7 @@ extern void virtual_init(void) DECLSPEC_HIDDEN; + extern TEB *virtual_alloc_first_teb(void) DECLSPEC_HIDDEN; + extern NTSTATUS virtual_alloc_teb( TEB **ret_teb ) DECLSPEC_HIDDEN; + extern void virtual_free_teb( TEB *teb ) DECLSPEC_HIDDEN; +@@ -68,10 +68,10 @@ index a1c48a52606..9c9e5b80b0c 100644 + extern BOOL virtual_is_valid_code_address( const void *addr, SIZE_T size ) DECLSPEC_HIDDEN; + extern int virtual_handle_stack_fault( void *addr ) DECLSPEC_HIDDEN; + diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c +-index 660323d4dcc..a5e5cb8422d 100644 ++index 9fb2ecd38ca3..ad11485d1cea 100644 + --- a/dlls/ntdll/unix/virtual.c + +++ b/dlls/ntdll/unix/virtual.c +-@@ -2588,14 +2588,14 @@ TEB *virtual_alloc_first_teb(void) ++@@ -2772,14 +2772,14 @@ TEB *virtual_alloc_first_teb(void) + TEB *teb; + PEB *peb; + NTSTATUS status; +@@ -88,12 +88,7 @@ index 660323d4dcc..a5e5cb8422d 100644 + if (status) + { + ERR( "wine: failed to map the shared user data: %08x\n", status ); +-@@ -2787,11 +2787,12 @@ void virtual_clear_thread_stack( void *stack_end ) +- if (force_exec_prot) mprotect( stack, size, PROT_READ | PROT_WRITE | PROT_EXEC ); +- } +- +-+extern void DECLSPEC_NORETURN __wine_syscall_dispatcher( void ); +- ++@@ -2977,7 +2977,7 @@ void virtual_clear_thread_stack( void *stack_end ) + /*********************************************************************** + * virtual_map_user_shared_data + */ +@@ -102,7 +97,7 @@ index 660323d4dcc..a5e5cb8422d 100644 + { + static const WCHAR wine_usdW[] = {'\\','K','e','r','n','e','l','O','b','j','e','c','t','s', + '\\','_','_','w','i','n','e','_','u','s','e','r','_','s','h','a','r','e','d','_','d','a','t','a',0}; +-@@ -2814,6 +2815,11 @@ void virtual_map_user_shared_data(void) ++@@ -3000,6 +3000,11 @@ void virtual_map_user_shared_data(void) + ERR( "failed to remap the process USD: %d\n", res ); + exit(1); + } +@@ -115,7 +110,7 @@ index 660323d4dcc..a5e5cb8422d 100644 + NtClose( section ); + } + diff --git a/libs/wine/loader.c b/libs/wine/loader.c +-index 4597a6cb324..3d0d75e9c6d 100644 ++index 4597a6cb3243..3d0d75e9c6d3 100644 + --- a/libs/wine/loader.c + +++ b/libs/wine/loader.c + @@ -398,7 +398,11 @@ static void *map_dll( const IMAGE_NT_HEADERS *nt_descr ) +@@ -131,7 +126,7 @@ index 4597a6cb324..3d0d75e9c6d 100644 + sec++; + + diff --git a/server/mapping.c b/server/mapping.c +-index 0941dd87c05..002f3215af2 100644 ++index 0941dd87c05d..002f3215af2e 100644 + --- a/server/mapping.c + +++ b/server/mapping.c + @@ -964,7 +964,11 @@ struct object *create_user_data_mapping( struct object *root, const struct unico +@@ -148,7 +143,7 @@ index 0941dd87c05..002f3215af2 100644 + } + + diff --git a/tools/winebuild/parser.c b/tools/winebuild/parser.c +-index 74216f8bb6e..820516329a4 100644 ++index 74216f8bb6e7..820516329a47 100644 + --- a/tools/winebuild/parser.c + +++ b/tools/winebuild/parser.c + @@ -545,7 +545,7 @@ static const char *parse_spec_flags( DLLSPEC *spec, ORDDEF *odp ) +@@ -161,7 +156,7 @@ index 74216f8bb6e..820516329a4 100644 + if (odp->flags & (FLAG_FORWARD | FLAG_REGISTER)) + return 0; + diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c +-index 07d6eed05fc..9cc4698d0d7 100644 ++index 07d6eed05fcc..9cc4698d0d7d 100644 + --- a/tools/winebuild/spec32.c + +++ b/tools/winebuild/spec32.c + @@ -375,11 +375,11 @@ static void output_relay_debug( DLLSPEC *spec ) +diff --git a/patches/winebuild-Fake_Dlls/0011-ntdll-Call-NtOpenFile-through-syscall-thunk.patch b/patches/winebuild-Fake_Dlls/0011-ntdll-Call-NtOpenFile-through-syscall-thunk.patch +index 69ee26be8..c3e065b26 100644 +--- a/patches/winebuild-Fake_Dlls/0011-ntdll-Call-NtOpenFile-through-syscall-thunk.patch ++++ b/patches/winebuild-Fake_Dlls/0011-ntdll-Call-NtOpenFile-through-syscall-thunk.patch +@@ -1,4 +1,4 @@ +-From 659e192979eecfb59d1c1b26e8cea78c42300de5 Mon Sep 17 00:00:00 2001 ++From feb53ed39179603391eff600ea59edc41407b238 Mon Sep 17 00:00:00 2001 + From: Paul Gofman + Date: Fri, 3 Jan 2020 17:39:08 +0300 + Subject: [PATCH] ntdll: Call NtOpenFile through syscall thunk. +@@ -15,10 +15,10 @@ Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48410 + 7 files changed, 16 insertions(+), 8 deletions(-) + + diff --git a/dlls/ntdll/actctx.c b/dlls/ntdll/actctx.c +-index 1ca794ae3e5..b3c13042adc 100644 ++index a25cefa555ac..34ba0dc813c6 100644 + --- a/dlls/ntdll/actctx.c + +++ b/dlls/ntdll/actctx.c +-@@ -2892,7 +2892,7 @@ static NTSTATUS open_nt_file( HANDLE *handle, UNICODE_STRING *name ) ++@@ -2894,7 +2894,7 @@ static NTSTATUS open_nt_file( HANDLE *handle, UNICODE_STRING *name ) + attr.ObjectName = name; + attr.SecurityDescriptor = NULL; + attr.SecurityQualityOfService = NULL; +@@ -27,7 +27,7 @@ index 1ca794ae3e5..b3c13042adc 100644 + } + + static NTSTATUS get_manifest_in_module( struct actctx_loader* acl, struct assembly_identity* ai, +-@@ -3209,7 +3209,7 @@ static NTSTATUS lookup_winsxs(struct actctx_loader* acl, struct assembly_identit ++@@ -3211,7 +3211,7 @@ static NTSTATUS lookup_winsxs(struct actctx_loader* acl, struct assembly_identit + attr.SecurityDescriptor = NULL; + attr.SecurityQualityOfService = NULL; + +@@ -37,10 +37,10 @@ index 1ca794ae3e5..b3c13042adc 100644 + { + sxs_ai = *ai; + diff --git a/dlls/ntdll/directory.c b/dlls/ntdll/directory.c +-index d18df38f626..69607a4fed9 100644 ++index 18428658a5b5..7a9de26ccb0c 100644 + --- a/dlls/ntdll/directory.c + +++ b/dlls/ntdll/directory.c +-@@ -2943,7 +2943,7 @@ NTSTATUS DIR_get_unix_cwd( char **cwd ) ++@@ -3071,7 +3071,7 @@ NTSTATUS DIR_get_unix_cwd( char **cwd ) + attr.SecurityDescriptor = NULL; + attr.SecurityQualityOfService = NULL; + +@@ -50,10 +50,10 @@ index d18df38f626..69607a4fed9 100644 + RtlFreeUnicodeString( &dirW ); + if (status != STATUS_SUCCESS) goto done; + diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c +-index 0b8c28a0651..e48cd84cffd 100644 ++index 51d989f30b45..8f1653b0d626 100644 + --- a/dlls/ntdll/loader.c + +++ b/dlls/ntdll/loader.c +-@@ -2469,7 +2469,7 @@ static NTSTATUS open_dll_file( UNICODE_STRING *nt_name, WINE_MODREF **pwm, ++@@ -2521,7 +2521,7 @@ static NTSTATUS open_dll_file( UNICODE_STRING *nt_name, WINE_MODREF **pwm, + attr.ObjectName = nt_name; + attr.SecurityDescriptor = NULL; + attr.SecurityQualityOfService = NULL; +@@ -63,10 +63,10 @@ index 0b8c28a0651..e48cd84cffd 100644 + FILE_SYNCHRONOUS_IO_NONALERT | FILE_NON_DIRECTORY_FILE ))) + { + diff --git a/dlls/ntdll/locale.c b/dlls/ntdll/locale.c +-index 0d0c1194d23..a1bf219ed0a 100644 ++index 15ccdeb2e637..928edcb04e2c 100644 + --- a/dlls/ntdll/locale.c + +++ b/dlls/ntdll/locale.c +-@@ -661,7 +661,7 @@ static NTSTATUS open_nls_data_file( ULONG type, ULONG id, HANDLE *file ) ++@@ -660,7 +660,7 @@ static NTSTATUS open_nls_data_file( ULONG type, ULONG id, HANDLE *file ) + return STATUS_NO_MEMORY; + valueW.Length = NTDLL_swprintf( valueW.Buffer, pathfmtW, dir, name ) * sizeof(WCHAR); + InitializeObjectAttributes( &attr, &valueW, 0, 0, NULL ); +@@ -75,7 +75,7 @@ index 0d0c1194d23..a1bf219ed0a 100644 + if (!status) TRACE( "found %s\n", debugstr_w( valueW.Buffer )); + RtlFreeUnicodeString( &valueW ); + if (status != STATUS_OBJECT_NAME_NOT_FOUND && status != STATUS_OBJECT_PATH_NOT_FOUND) return status; +-@@ -685,7 +685,7 @@ static NTSTATUS open_nls_data_file( ULONG type, ULONG id, HANDLE *file ) ++@@ -684,7 +684,7 @@ static NTSTATUS open_nls_data_file( ULONG type, ULONG id, HANDLE *file ) + wcscat( valueW.Buffer, name ); + valueW.Length = wcslen(valueW.Buffer) * sizeof(WCHAR); + InitializeObjectAttributes( &attr, &valueW, 0, 0, NULL ); +@@ -85,10 +85,10 @@ index 0d0c1194d23..a1bf219ed0a 100644 + } + RtlFreeUnicodeString( &valueW ); + diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h +-index 2e791b92f73..f8170793185 100644 ++index 9091d1ae8c77..f8e81ae49eaf 100644 + --- a/dlls/ntdll/ntdll_misc.h + +++ b/dlls/ntdll/ntdll_misc.h +-@@ -350,4 +350,12 @@ static inline void ascii_to_unicode( WCHAR *dst, const char *src, size_t len ) ++@@ -329,4 +329,12 @@ static inline void ascii_to_unicode( WCHAR *dst, const char *src, size_t len ) + while (len--) *dst++ = (unsigned char)*src++; + } + +@@ -102,7 +102,7 @@ index 2e791b92f73..f8170793185 100644 + + + #endif + diff --git a/dlls/ntdll/path.c b/dlls/ntdll/path.c +-index 32e1f951af5..71ae44dd498 100644 ++index 32e1f951af5c..71ae44dd4988 100644 + --- a/dlls/ntdll/path.c + +++ b/dlls/ntdll/path.c + @@ -1020,7 +1020,7 @@ NTSTATUS WINAPI RtlSetCurrentDirectory_U(const UNICODE_STRING* dir) +@@ -115,10 +115,10 @@ index 32e1f951af5..71ae44dd498 100644 + if (nts != STATUS_SUCCESS) goto out; + + diff --git a/dlls/ntdll/process.c b/dlls/ntdll/process.c +-index 60ee39765bf..70dfe6f768a 100644 ++index 884141da060c..32a1f5107f06 100644 + --- a/dlls/ntdll/process.c + +++ b/dlls/ntdll/process.c +-@@ -1281,7 +1281,7 @@ static NTSTATUS get_pe_file_info( UNICODE_STRING *path, ULONG attributes, ++@@ -1357,7 +1357,7 @@ static NTSTATUS get_pe_file_info( UNICODE_STRING *path, ULONG attributes, + + memset( info, 0, sizeof(*info) ); + InitializeObjectAttributes( &attr, path, attributes, 0, 0 ); diff --git a/wine.spec b/wine.spec index cd74653..a2d6c1f 100644 --- a/wine.spec +++ b/wine.spec @@ -76,6 +76,7 @@ Source150: wine.appdata.xml # wine bugs Patch100: wine-staging-5.10-ntdll.patch +Patch101: wine-staging-5.10-ntdll-arm.patch # desktop dir Source200: wine.menu @@ -694,15 +695,9 @@ This package adds the opencl driver for wine. # setup and apply wine-staging patches gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 %patch100 -p1 -b.ntdll +%patch101 -p1 -b.ntdll-arm -%ifarch %{arm} aarch64 -patches/patchinstall.sh DESTDIR="`pwd`" --all \ - -W ntdll-NtContinue \ - -W ntdll-Syscall_Emulation \ - -W winebuild-Fake_Dlls -%else patches/patchinstall.sh DESTDIR="`pwd`" --all -%endif # fix parallelized build sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in From e1141d482fdb1aaa711f637ee76b6ad58c996543 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Thu, 11 Jun 2020 08:55:00 -0500 Subject: [PATCH 585/715] ARM patchset requires a previous patch I may back out this patchset if this fails again --- wine-staging-5.10-ntdll-arm0.patch | 964 ++++++++++++++++++ ...atch => wine-staging-5.10-ntdll-arm1.patch | 0 wine.spec | 6 +- 3 files changed, 968 insertions(+), 2 deletions(-) create mode 100644 wine-staging-5.10-ntdll-arm0.patch rename wine-staging-5.10-ntdll-arm.patch => wine-staging-5.10-ntdll-arm1.patch (100%) diff --git a/wine-staging-5.10-ntdll-arm0.patch b/wine-staging-5.10-ntdll-arm0.patch new file mode 100644 index 0000000..74f1f00 --- /dev/null +++ b/wine-staging-5.10-ntdll-arm0.patch @@ -0,0 +1,964 @@ +From 9a4c8c5631101f8571dbdce726ae864060e446c9 Mon Sep 17 00:00:00 2001 +From: Zebediah Figura +Date: Mon, 8 Jun 2020 15:59:31 -0500 +Subject: [PATCH] Rebase against 17529582402ebe27ef975fc7dcb8353f4f95e629. + +--- + ...ase-Maintain-FLS-storage-list-in-PEB.patch | 44 ++-- + .../0001-ntdll-Add-stub-for-NtContinue.patch | 63 ------ + ...o-continue-execution-after-exception.patch | 82 -------- + patches/ntdll-NtContinue/definition | 3 - + ...dll-Support-x86_64-syscall-emulation.patch | 14 +- + ...mporary-signal-handler-during-proces.patch | 32 +-- + patches/patchinstall.sh | 198 ++++++++---------- + ...ate-syscall-thunks-for-ntdll-exports.patch | 34 +-- + ...e-client-side-file-descriptor-cache-.patch | 20 +- + staging/upstream-commit | 2 +- + 10 files changed, 156 insertions(+), 336 deletions(-) + delete mode 100644 patches/ntdll-NtContinue/0001-ntdll-Add-stub-for-NtContinue.patch + delete mode 100644 patches/ntdll-NtContinue/0002-Use-NtContinue-to-continue-execution-after-exception.patch + delete mode 100644 patches/ntdll-NtContinue/definition + +diff --git a/patches/ntdll-FLS_Callbacks/0001-kernelbase-Maintain-FLS-storage-list-in-PEB.patch b/patches/ntdll-FLS_Callbacks/0001-kernelbase-Maintain-FLS-storage-list-in-PEB.patch +index 1d5434bf6..40f2a0b86 100644 +--- a/patches/ntdll-FLS_Callbacks/0001-kernelbase-Maintain-FLS-storage-list-in-PEB.patch ++++ b/patches/ntdll-FLS_Callbacks/0001-kernelbase-Maintain-FLS-storage-list-in-PEB.patch +@@ -1,4 +1,4 @@ +-From 5c370d9f0be803d89302da7471ef0b93b45a0d75 Mon Sep 17 00:00:00 2001 ++From 3fe24d6e3b216c21b6a7b68766414213fdd2ff2d Mon Sep 17 00:00:00 2001 + From: Paul Gofman + Date: Thu, 23 Apr 2020 14:32:23 +0300 + Subject: [PATCH] kernelbase: Maintain FLS storage list in PEB. +@@ -73,10 +73,10 @@ index 7501165dc87..2bcc3ee60c4 100644 + * FlsFree should fail + * FlsGetValue and FlsSetValue should succeed + diff --git a/dlls/kernel32/tests/thread.c b/dlls/kernel32/tests/thread.c +-index a454bf118cc..dac30959734 100644 ++index a9869863b44..b24f9e98bc7 100644 + --- a/dlls/kernel32/tests/thread.c + +++ b/dlls/kernel32/tests/thread.c +-@@ -2435,7 +2435,6 @@ START_TEST(thread) ++@@ -2377,7 +2377,6 @@ START_TEST(thread) + } + return; + } +@@ -84,7 +84,7 @@ index a454bf118cc..dac30959734 100644 + test_thread_info(); + test_reserved_tls(); + test_CreateRemoteThread(); +-@@ -2463,6 +2462,5 @@ START_TEST(thread) ++@@ -2405,6 +2404,5 @@ START_TEST(thread) + test_thread_fpu_cw(); + test_thread_actctx(); + test_thread_description(); +@@ -92,7 +92,7 @@ index a454bf118cc..dac30959734 100644 + test_threadpool(); + } + diff --git a/dlls/kernelbase/thread.c b/dlls/kernelbase/thread.c +-index 03b16da95bb..4409f120491 100644 ++index f20d460d07d..3c77b6a42f4 100644 + --- a/dlls/kernelbase/thread.c + +++ b/dlls/kernelbase/thread.c + @@ -38,6 +38,10 @@ +@@ -106,7 +106,7 @@ index 03b16da95bb..4409f120491 100644 + + /*********************************************************************** + * Threads +-@@ -916,6 +920,19 @@ static void init_fiber_context( struct fiber_data *fiber ) ++@@ -915,6 +919,19 @@ static void init_fiber_context( struct fiber_data *fiber ) + #endif + } + +@@ -126,7 +126,7 @@ index 03b16da95bb..4409f120491 100644 + + /*********************************************************************** + * CreateFiber (kernelbase.@) +-@@ -1023,7 +1040,16 @@ void WINAPI DECLSPEC_HOTPATCH DeleteFiber( LPVOID fiber_ptr ) ++@@ -1022,7 +1039,16 @@ void WINAPI DECLSPEC_HOTPATCH DeleteFiber( LPVOID fiber_ptr ) + RtlExitUserThread( 1 ); + } + RtlFreeUserStack( fiber->stack_allocation ); +@@ -144,7 +144,7 @@ index 03b16da95bb..4409f120491 100644 + HeapFree( GetProcessHeap(), 0, fiber ); + } + +-@@ -1045,6 +1071,19 @@ void WINAPI DECLSPEC_HOTPATCH SwitchToFiber( LPVOID fiber ) ++@@ -1044,6 +1070,19 @@ void WINAPI DECLSPEC_HOTPATCH SwitchToFiber( LPVOID fiber ) + struct fiber_data *new_fiber = fiber; + struct fiber_data *current_fiber = NtCurrentTeb()->Tib.u.FiberData; + +@@ -164,7 +164,7 @@ index 03b16da95bb..4409f120491 100644 + current_fiber->except = NtCurrentTeb()->Tib.ExceptionList; + current_fiber->stack_limit = NtCurrentTeb()->Tib.StackLimit; + current_fiber->fls_slots = NtCurrentTeb()->FlsSlots; +-@@ -1070,9 +1109,7 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback ) ++@@ -1069,9 +1108,7 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback ) + PEB * const peb = NtCurrentTeb()->Peb; + + RtlAcquirePebLock(); +@@ -175,7 +175,7 @@ index 03b16da95bb..4409f120491 100644 + { + SetLastError( ERROR_NOT_ENOUGH_MEMORY ); + index = FLS_OUT_OF_INDEXES; +-@@ -1082,9 +1119,7 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback ) ++@@ -1081,9 +1118,7 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback ) + index = RtlFindClearBitsAndSet( peb->FlsBitmap, 1, 1 ); + if (index != ~0U) + { +@@ -186,7 +186,7 @@ index 03b16da95bb..4409f120491 100644 + { + RtlClearBits( peb->FlsBitmap, index, 1 ); + index = FLS_OUT_OF_INDEXES; +-@@ -1092,8 +1127,8 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback ) ++@@ -1091,8 +1126,8 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback ) + } + else + { +@@ -197,7 +197,7 @@ index 03b16da95bb..4409f120491 100644 + } + } + else SetLastError( ERROR_NO_MORE_ITEMS ); +-@@ -1117,7 +1152,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH FlsFree( DWORD index ) ++@@ -1116,7 +1151,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH FlsFree( DWORD index ) + { + /* FIXME: call Fls callback */ + /* FIXME: add equivalent of ThreadZeroTlsCell here */ +@@ -206,7 +206,7 @@ index 03b16da95bb..4409f120491 100644 + } + else SetLastError( ERROR_INVALID_PARAMETER ); + RtlReleasePebLock(); +-@@ -1136,7 +1171,7 @@ PVOID WINAPI DECLSPEC_HOTPATCH FlsGetValue( DWORD index ) ++@@ -1135,7 +1170,7 @@ PVOID WINAPI DECLSPEC_HOTPATCH FlsGetValue( DWORD index ) + return NULL; + } + SetLastError( ERROR_SUCCESS ); +@@ -215,7 +215,7 @@ index 03b16da95bb..4409f120491 100644 + } + + +-@@ -1150,14 +1185,12 @@ BOOL WINAPI DECLSPEC_HOTPATCH FlsSetValue( DWORD index, PVOID data ) ++@@ -1149,14 +1184,12 @@ BOOL WINAPI DECLSPEC_HOTPATCH FlsSetValue( DWORD index, PVOID data ) + SetLastError( ERROR_INVALID_PARAMETER ); + return FALSE; + } +@@ -233,10 +233,10 @@ index 03b16da95bb..4409f120491 100644 + } + + diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c +-index 5e8de8821dd..71ef1cfea0a 100644 ++index ffbc9fabb23..be53d98e5b8 100644 + --- a/dlls/ntdll/loader.c + +++ b/dlls/ntdll/loader.c +-@@ -179,6 +179,15 @@ static CRITICAL_SECTION_DEBUG dlldir_critsect_debug = ++@@ -169,6 +169,15 @@ static CRITICAL_SECTION_DEBUG dlldir_critsect_debug = + }; + static CRITICAL_SECTION dlldir_section = { &dlldir_critsect_debug, -1, 0, 0, 0, 0 }; + +@@ -252,7 +252,7 @@ index 5e8de8821dd..71ef1cfea0a 100644 + static WINE_MODREF *cached_modref; + static WINE_MODREF *current_modref; + static WINE_MODREF *last_failed_modref; +-@@ -219,6 +228,16 @@ static RTL_UNLOAD_EVENT_TRACE unload_traces[RTL_UNLOAD_EVENT_TRACE_NUMBER]; ++@@ -209,6 +218,16 @@ static RTL_UNLOAD_EVENT_TRACE unload_traces[RTL_UNLOAD_EVENT_TRACE_NUMBER]; + static RTL_UNLOAD_EVENT_TRACE *unload_trace_ptr; + static unsigned int unload_trace_seq; + +@@ -269,7 +269,7 @@ index 5e8de8821dd..71ef1cfea0a 100644 + static void module_push_unload_trace( const LDR_DATA_TABLE_ENTRY *ldr ) + { + RTL_UNLOAD_EVENT_TRACE *ptr = &unload_traces[unload_trace_seq]; +-@@ -3913,6 +3932,13 @@ void WINAPI LdrShutdownThread(void) ++@@ -3610,6 +3629,13 @@ void WINAPI LdrShutdownThread(void) + /* don't do any detach calls if process is exiting */ + if (process_detaching) return; + +@@ -283,15 +283,15 @@ index 5e8de8821dd..71ef1cfea0a 100644 + RtlEnterCriticalSection( &loader_section ); + + mark = &NtCurrentTeb()->Peb->LdrData->InInitializationOrderModuleList; +-@@ -4153,6 +4179,7 @@ static void user_shared_data_init(void) ++@@ -3819,6 +3845,7 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule) + */ + void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknown3, ULONG_PTR unknown4 ) + { + + static const unsigned int fls_slot_count = 8 * sizeof(NtCurrentTeb()->Peb->FlsBitmapBits); +- static const LARGE_INTEGER zero; + static int attach_done; + int i; +-@@ -4191,6 +4218,25 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow ++ NTSTATUS status; ++@@ -3856,6 +3883,25 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow + InsertHeadList( &tls_links, &NtCurrentTeb()->TlsLinks ); + RtlReleasePebLock(); + +@@ -318,5 +318,5 @@ index 5e8de8821dd..71ef1cfea0a 100644 + { + attach_done = 1; + -- +-2.25.3 ++2.26.2 + +diff --git a/patches/ntdll-NtContinue/0001-ntdll-Add-stub-for-NtContinue.patch b/patches/ntdll-NtContinue/0001-ntdll-Add-stub-for-NtContinue.patch +deleted file mode 100644 +index 7145857bd..000000000 +--- a/patches/ntdll-NtContinue/0001-ntdll-Add-stub-for-NtContinue.patch ++++ /dev/null +@@ -1,63 +0,0 @@ +-From 9ea4f081689959bd393eab2caaa0ed8237846117 Mon Sep 17 00:00:00 2001 +-From: =?UTF-8?q?Michael=20M=C3=BCller?= +-Date: Thu, 25 May 2017 05:04:26 +0200 +-Subject: [PATCH] ntdll: Add stub for NtContinue. +- +---- +- dlls/ntdll/exception.c | 10 +++++++++- +- dlls/ntdll/ntdll.spec | 4 ++-- +- 2 files changed, 11 insertions(+), 3 deletions(-) +- +-diff --git a/dlls/ntdll/exception.c b/dlls/ntdll/exception.c +-index c35312fd1d1..3b85f1efa04 100644 +---- a/dlls/ntdll/exception.c +-+++ b/dlls/ntdll/exception.c +-@@ -328,7 +328,6 @@ LONG WINAPI call_unhandled_exception_filter( PEXCEPTION_POINTERS eptr ) +- return unhandled_exception_filter( eptr ); +- } +- +-- +- #if defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) +- +- struct dynamic_unwind_entry +-@@ -667,6 +666,15 @@ PRUNTIME_FUNCTION WINAPI RtlLookupFunctionEntry( ULONG_PTR pc, ULONG_PTR *base, +- +- #endif /* __x86_64__ || __arm__ || __aarch64__ */ +- +-+/********************************************************************* +-+ * NtContinue (NTDLL.@) +-+ */ +-+NTSTATUS WINAPI NtContinue( CONTEXT *context, BOOLEAN alert ) +-+{ +-+ FIXME( "(%p, %d) stub!\n", context, alert ); +-+ return STATUS_NOT_IMPLEMENTED; +-+} +-+ +- /************************************************************* +- * __wine_spec_unimplemented_stub +- * +-diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec +-index 81faf7fc280..d21a6f08ac2 100644 +---- a/dlls/ntdll/ntdll.spec +-+++ b/dlls/ntdll/ntdll.spec +-@@ -150,7 +150,7 @@ +- @ stdcall NtCompleteConnectPort(ptr) +- # @ stub NtCompressKey +- @ stdcall NtConnectPort(ptr ptr ptr ptr ptr ptr ptr ptr) +--@ stub NtContinue +-+@ stdcall NtContinue(ptr long) +- # @ stub NtCreateDebugObject +- @ stdcall NtCreateDirectoryObject(ptr long ptr) +- @ stdcall NtCreateEvent(ptr long ptr long long) +-@@ -1105,7 +1105,7 @@ +- @ stdcall -private ZwCompleteConnectPort(ptr) NtCompleteConnectPort +- # @ stub ZwCompressKey +- @ stdcall -private ZwConnectPort(ptr ptr ptr ptr ptr ptr ptr ptr) NtConnectPort +--@ stub ZwContinue +-+@ stdcall -private ZwContinue(ptr long) NtContinue +- # @ stub ZwCreateDebugObject +- @ stdcall -private ZwCreateDirectoryObject(ptr long ptr) NtCreateDirectoryObject +- @ stdcall -private ZwCreateEvent(ptr long ptr long long) NtCreateEvent +--- +-2.17.1 +- +diff --git a/patches/ntdll-NtContinue/0002-Use-NtContinue-to-continue-execution-after-exception.patch b/patches/ntdll-NtContinue/0002-Use-NtContinue-to-continue-execution-after-exception.patch +deleted file mode 100644 +index 902940977..000000000 +--- a/patches/ntdll-NtContinue/0002-Use-NtContinue-to-continue-execution-after-exception.patch ++++ /dev/null +@@ -1,82 +0,0 @@ +-From 812de54c6fc8f93e8fda01f0802397b183adab59 Mon Sep 17 00:00:00 2001 +-From: Andrew Wesie +-Date: Fri, 27 Jul 2018 01:26:56 -0500 +-Subject: [PATCH] ntdll: Use NtContinue to continue execution after exceptions. +- +-NtContinue is exported by ntdll and some programs expect it to be used to +-restore the thread context after an exception handler returns +-EXCEPTION_CONTINUE_EXECUTION. It must take a context as its first argument +-and restore that context. +- +-Current implementation is a simple wrapper around NtSetContextThread. It is +-unlikely that it has the correct behavior if called by an external caller. +- +-The __syscall_NtContinue wrapper is used so that it can be hooked by a +-third-party. +---- +- dlls/ntdll/exception.c | 5 +++-- +- dlls/ntdll/signal_i386.c | 3 ++- +- dlls/ntdll/signal_x86_64.c | 3 ++- +- 3 files changed, 7 insertions(+), 4 deletions(-) +- +-diff --git a/dlls/ntdll/exception.c b/dlls/ntdll/exception.c +-index 3b85f1efa..bc972254f 100644 +---- a/dlls/ntdll/exception.c +-+++ b/dlls/ntdll/exception.c +-@@ -671,8 +671,9 @@ PRUNTIME_FUNCTION WINAPI RtlLookupFunctionEntry( ULONG_PTR pc, ULONG_PTR *base, +- */ +- NTSTATUS WINAPI NtContinue( CONTEXT *context, BOOLEAN alert ) +- { +-- FIXME( "(%p, %d) stub!\n", context, alert ); +-- return STATUS_NOT_IMPLEMENTED; +-+ TRACE( "(%p, %d) stub!\n", context, alert ); +-+ +-+ return NtSetContextThread( GetCurrentThread(), context ); +- } +- +- /************************************************************* +-diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c +-index e55164630..8fc885ed4 100644 +---- a/dlls/ntdll/signal_i386.c +-+++ b/dlls/ntdll/signal_i386.c +-@@ -730,6 +730,7 @@ static NTSTATUS call_stack_handlers( EXCEPTION_RECORD *rec, CONTEXT *context ) +- return STATUS_UNHANDLED_EXCEPTION; +- } +- +-+NTSTATUS WINAPI __syscall_NtContinue( CONTEXT *context, BOOLEAN alert ); +- +- /******************************************************************* +- * raise_exception +-@@ -794,7 +795,7 @@ static NTSTATUS raise_exception( EXCEPTION_RECORD *rec, CONTEXT *context, BOOL f +- NtTerminateProcess( NtCurrentProcess(), rec->ExceptionCode ); +- } +- done: +-- return NtSetContextThread( GetCurrentThread(), context ); +-+ return __syscall_NtContinue( context, FALSE ); +- } +- +- +-diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c +-index e48529d73..0e74fda43 100644 +---- a/dlls/ntdll/signal_x86_64.c +-+++ b/dlls/ntdll/signal_x86_64.c +-@@ -2520,6 +2520,7 @@ static NTSTATUS call_stack_handlers( EXCEPTION_RECORD *rec, CONTEXT *orig_contex +- return STATUS_UNHANDLED_EXCEPTION; +- } +- +-+NTSTATUS WINAPI __syscall_NtContinue( CONTEXT *context, BOOLEAN alert ); +- +- static NTSTATUS raise_exception( EXCEPTION_RECORD *rec, CONTEXT *context, BOOL first_chance ) +- { +-@@ -2582,7 +2583,7 @@ static NTSTATUS raise_exception( EXCEPTION_RECORD *rec, CONTEXT *context, BOOL f +- } +- +- done: +-- return NtSetContextThread( GetCurrentThread(), context ); +-+ return __syscall_NtContinue( context, FALSE ); +- } +- +- +--- +-2.23.0 +- +diff --git a/patches/ntdll-NtContinue/definition b/patches/ntdll-NtContinue/definition +deleted file mode 100644 +index 06c2ebf9e..000000000 +--- a/patches/ntdll-NtContinue/definition ++++ /dev/null +@@ -1,3 +0,0 @@ +-Fixes: [31910] Add stub for NtContinue +-Fixes: [45572] League of Legends 8.12+ fails to start a game (anticheat engine, hooking of NtContinue) +-Depends: winebuild-Fake_Dlls +\ No newline at end of file +diff --git a/patches/ntdll-Syscall_Emulation/0001-ntdll-Support-x86_64-syscall-emulation.patch b/patches/ntdll-Syscall_Emulation/0001-ntdll-Support-x86_64-syscall-emulation.patch +index 4ae5fcdfa..0a39d4355 100644 +--- a/patches/ntdll-Syscall_Emulation/0001-ntdll-Support-x86_64-syscall-emulation.patch ++++ b/patches/ntdll-Syscall_Emulation/0001-ntdll-Support-x86_64-syscall-emulation.patch +@@ -1,4 +1,4 @@ +-From 20298be5a42af52be27c56f88ad6a8a0304b55b6 Mon Sep 17 00:00:00 2001 ++From cd04d1910294b035bb3858b3ef1bb295aec3a732 Mon Sep 17 00:00:00 2001 + From: Paul Gofman + Date: Mon, 30 Dec 2019 13:27:53 +0300 + Subject: [PATCH] ntdll: Support x86_64 syscall emulation. +@@ -15,7 +15,7 @@ is used for trapping syscalls. + 3 files changed, 119 insertions(+), 2 deletions(-) + + diff --git a/configure.ac b/configure.ac +-index e3d63ed7501..2fbec4129df 100644 ++index e61a98455c3..4adeb52d225 100644 + --- a/configure.ac + +++ b/configure.ac + @@ -464,6 +464,7 @@ AC_CHECK_HEADERS(\ +@@ -27,7 +27,7 @@ index e3d63ed7501..2fbec4129df 100644 + linux/types.h \ + linux/ucdrom.h \ + diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c +-index 0ccc7cbceb6..149ad1bf5e7 100644 ++index dd8b45fa907..a5612abf2b1 100644 + --- a/dlls/ntdll/signal_x86_64.c + +++ b/dlls/ntdll/signal_x86_64.c + @@ -24,6 +24,7 @@ +@@ -61,8 +61,8 @@ index 0ccc7cbceb6..149ad1bf5e7 100644 + typedef struct _SCOPE_TABLE + { + ULONG Count; +-@@ -2797,6 +2807,104 @@ static void usr1_handler( int signal, siginfo_t *siginfo, void *ucontext ) +- restore_context( &context, ucontext ); ++@@ -2480,6 +2490,104 @@ static inline DWORD is_privileged_instr( CONTEXT *context ) ++ return 0; + } + + +extern unsigned int __wine_nb_syscalls; +@@ -165,8 +165,8 @@ index 0ccc7cbceb6..149ad1bf5e7 100644 + +} + + /*********************************************************************** +- * __wine_set_signal_handler (NTDLL.@) +-@@ -2842,6 +2950,9 @@ void signal_init_process(void) ++ * handle_interrupt ++@@ -2793,6 +2901,9 @@ void signal_init_process(void) + sig_act.sa_sigaction = trap_handler; + if (sigaction( SIGTRAP, &sig_act, NULL ) == -1) goto error; + #endif +diff --git a/patches/ntdll-WRITECOPY/0003-ntdll-Setup-a-temporary-signal-handler-during-proces.patch b/patches/ntdll-WRITECOPY/0003-ntdll-Setup-a-temporary-signal-handler-during-proces.patch +index d6e9a6824..db0631234 100644 +--- a/patches/ntdll-WRITECOPY/0003-ntdll-Setup-a-temporary-signal-handler-during-proces.patch ++++ b/patches/ntdll-WRITECOPY/0003-ntdll-Setup-a-temporary-signal-handler-during-proces.patch +@@ -1,4 +1,4 @@ +-From 46968c583a30476a86463530d0047699e64529b5 Mon Sep 17 00:00:00 2001 ++From bd60a4308f3ec1df20328887335b4c95f9be215d Mon Sep 17 00:00:00 2001 + From: =?UTF-8?q?Michael=20M=C3=BCller?= + Date: Sat, 4 Oct 2014 02:53:22 +0200 + Subject: [PATCH] ntdll: Setup a temporary signal handler during process +@@ -27,10 +27,10 @@ index 65c65cc02d8..63a4b597872 100644 + extern void debug_init(void) DECLSPEC_HIDDEN; + extern TEB *thread_init( SIZE_T *info_size, BOOL *suspend ) DECLSPEC_HIDDEN; + diff --git a/dlls/ntdll/signal_arm.c b/dlls/ntdll/signal_arm.c +-index 8ff9f66d3f0..44e3d2df523 100644 ++index a09848449a6..c6f7231fec6 100644 + --- a/dlls/ntdll/signal_arm.c + +++ b/dlls/ntdll/signal_arm.c +-@@ -773,6 +773,12 @@ void signal_init_process(void) ++@@ -792,6 +792,12 @@ void signal_init_process(void) + exit(1); + } + +@@ -44,11 +44,11 @@ index 8ff9f66d3f0..44e3d2df523 100644 + /*********************************************************************** + * RtlUnwind (NTDLL.@) + diff --git a/dlls/ntdll/signal_arm64.c b/dlls/ntdll/signal_arm64.c +-index 104ffbf6df9..e7c6abd0046 100644 ++index a9a58a2e7ad..a9c6614794e 100644 + --- a/dlls/ntdll/signal_arm64.c + +++ b/dlls/ntdll/signal_arm64.c +-@@ -1100,6 +1100,12 @@ int CDECL __wine_set_signal_handler(unsigned int sig, wine_signal_handler wsh) +- return 0; ++@@ -1047,6 +1047,12 @@ static void usr2_handler( int signal, siginfo_t *siginfo, void *sigcontext ) ++ restore_context( context, sigcontext ); + } + + +/********************************************************************** +@@ -61,10 +61,10 @@ index 104ffbf6df9..e7c6abd0046 100644 + /********************************************************************** + * signal_init_process + diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c +-index 1b0b9352a87..0fe9f7a3c84 100644 ++index 83868f25121..b048b2bc688 100644 + --- a/dlls/ntdll/signal_i386.c + +++ b/dlls/ntdll/signal_i386.c +-@@ -1621,6 +1621,31 @@ static BOOL handle_interrupt( unsigned int interrupt, ucontext_t *sigcontext, st ++@@ -1575,6 +1575,31 @@ static BOOL handle_interrupt( unsigned int interrupt, ucontext_t *sigcontext, st + } + + +@@ -96,7 +96,7 @@ index 1b0b9352a87..0fe9f7a3c84 100644 + /********************************************************************** + * segv_handler + * +-@@ -1948,6 +1973,34 @@ void signal_init_process(void) ++@@ -1883,6 +1908,34 @@ void signal_init_process(void) + exit(1); + } + +@@ -132,11 +132,11 @@ index 1b0b9352a87..0fe9f7a3c84 100644 + /******************************************************************* + * RtlUnwind (NTDLL.@) + diff --git a/dlls/ntdll/signal_powerpc.c b/dlls/ntdll/signal_powerpc.c +-index 7e73322cbeb..07f0b89f30a 100644 ++index 879b2b58c49..f17d6267102 100644 + --- a/dlls/ntdll/signal_powerpc.c + +++ b/dlls/ntdll/signal_powerpc.c +-@@ -637,6 +637,12 @@ int CDECL __wine_set_signal_handler(unsigned int sig, wine_signal_handler wsh) +- return 0; ++@@ -634,6 +634,12 @@ static void quit_handler( int signal, siginfo_t *siginfo, void *sigcontext ) ++ unix_funcs->abort_thread(0); + } + + +/********************************************************************** +@@ -147,12 +147,12 @@ index 7e73322cbeb..07f0b89f30a 100644 + +} + + /********************************************************************** +- * signal_init_process ++ * usr1_handler + diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c +-index 0ccc7cbceb6..dc8a1a987c5 100644 ++index c6b0fbf618d..bb481ba1b81 100644 + --- a/dlls/ntdll/signal_x86_64.c + +++ b/dlls/ntdll/signal_x86_64.c +-@@ -2849,6 +2849,12 @@ void signal_init_process(void) ++@@ -2777,6 +2777,12 @@ void signal_init_process(void) + exit(1); + } + +@@ -166,7 +166,7 @@ index 0ccc7cbceb6..dc8a1a987c5 100644 + static ULONG64 get_int_reg( CONTEXT *context, int reg ) + { + diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c +-index 8918b39a9c5..a2f5df1b1c2 100644 ++index d045466f6d2..49daa33ca58 100644 + --- a/dlls/ntdll/thread.c + +++ b/dlls/ntdll/thread.c + @@ -186,6 +186,7 @@ TEB *thread_init( SIZE_T *info_size, BOOL *suspend ) +diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh +index c5ff8c0b3..9c2ce4ce0 100755 +--- a/patches/patchinstall.sh ++++ b/patches/patchinstall.sh +@@ -52,7 +52,7 @@ usage() + # Get the upstream commit sha + upstream_commit() + { +- echo "3cc3b445752902e07231900befc296f74ad6576e" ++ echo "17529582402ebe27ef975fc7dcb8353f4f95e629" + } + + # Show version information +@@ -183,7 +183,6 @@ patch_enable_all () + enable_ntdll_Junction_Points="$1" + enable_ntdll_Manifest_Range="$1" + enable_ntdll_NtAccessCheck="$1" +- enable_ntdll_NtContinue="$1" + enable_ntdll_NtDevicePath="$1" + enable_ntdll_NtQueryEaFile="$1" + enable_ntdll_NtQuerySection="$1" +@@ -648,9 +647,6 @@ patch_enable () + ntdll-NtAccessCheck) + enable_ntdll_NtAccessCheck="$2" + ;; +- ntdll-NtContinue) +- enable_ntdll_NtContinue="$2" +- ;; + ntdll-NtDevicePath) + enable_ntdll_NtDevicePath="$2" + ;; +@@ -1672,6 +1668,17 @@ if test "$enable_ntdll_Syscall_Emulation" -eq 1; then + enable_winebuild_Fake_Dlls=1 + fi + ++if test "$enable_winebuild_Fake_Dlls" -eq 1; then ++ if test "$enable_ntdll_WRITECOPY" -gt 1; then ++ abort "Patchset ntdll-WRITECOPY disabled, but winebuild-Fake_Dlls depends on that." ++ fi ++ if test "$enable_ws2_32_WSACleanup" -gt 1; then ++ abort "Patchset ws2_32-WSACleanup disabled, but winebuild-Fake_Dlls depends on that." ++ fi ++ enable_ntdll_WRITECOPY=1 ++ enable_ws2_32_WSACleanup=1 ++fi ++ + if test "$enable_ntdll_NtQueryEaFile" -eq 1; then + if test "$enable_ntdll_Junction_Points" -gt 1; then + abort "Patchset ntdll-Junction_Points disabled, but ntdll-NtQueryEaFile depends on that." +@@ -1686,24 +1693,6 @@ if test "$enable_ntdll_NtDevicePath" -eq 1; then + enable_ntdll_Pipe_SpecialCharacters=1 + fi + +-if test "$enable_ntdll_NtContinue" -eq 1; then +- if test "$enable_winebuild_Fake_Dlls" -gt 1; then +- abort "Patchset winebuild-Fake_Dlls disabled, but ntdll-NtContinue depends on that." +- fi +- enable_winebuild_Fake_Dlls=1 +-fi +- +-if test "$enable_winebuild_Fake_Dlls" -eq 1; then +- if test "$enable_ntdll_WRITECOPY" -gt 1; then +- abort "Patchset ntdll-WRITECOPY disabled, but winebuild-Fake_Dlls depends on that." +- fi +- if test "$enable_ws2_32_WSACleanup" -gt 1; then +- abort "Patchset ws2_32-WSACleanup disabled, but winebuild-Fake_Dlls depends on that." +- fi +- enable_ntdll_WRITECOPY=1 +- enable_ws2_32_WSACleanup=1 +-fi +- + if test "$enable_ntdll_Hide_Wine_Exports" -eq 1; then + if test "$enable_advapi32_Token_Integrity_Level" -gt 1; then + abort "Patchset advapi32-Token_Integrity_Level disabled, but ntdll-Hide_Wine_Exports depends on that." +@@ -3977,98 +3966,6 @@ if test "$enable_ntdll_NtAccessCheck" -eq 1; then + ) >> "$patchlist" + fi + +-# Patchset ws2_32-WSACleanup +-# | +-# | This patchset fixes the following Wine bugs: +-# | * [#18670] Properly close sockets when WSACleanup is called +-# | +-# | Modified files: +-# | * dlls/ntdll/ntdll.spec, dlls/ntdll/server.c, dlls/ntdll/unix/loader.c, dlls/ntdll/unix/server.c, +-# | dlls/ntdll/unix/unix_private.h, dlls/ntdll/unixlib.h, dlls/ws2_32/socket.c, dlls/ws2_32/tests/sock.c, +-# | include/wine/server.h, server/protocol.def, server/sock.c +-# | +-if test "$enable_ws2_32_WSACleanup" -eq 1; then +- patch_apply ws2_32-WSACleanup/0001-ws2_32-Proper-WSACleanup-implementation-using-winese.patch +- patch_apply ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch +- ( +- printf '%s\n' '+ { "Matt Durgavich", "ws2_32: Proper WSACleanup implementation using wineserver function.", 2 },'; +- printf '%s\n' '+ { "Sebastian Lackner", "ws2_32: Invalidate client-side file descriptor cache in WSACleanup.", 1 },'; +- ) >> "$patchlist" +-fi +- +-# Patchset winebuild-Fake_Dlls +-# | +-# | This patchset has the following (direct or indirect) dependencies: +-# | * ntdll-WRITECOPY, ws2_32-WSACleanup +-# | +-# | This patchset fixes the following Wine bugs: +-# | * [#21232] Chromium-based browser engines (Chrome, Opera, Comodo Dragon, SRWare Iron) crash on startup unless '--no- +-# | sandbox' is used (native API sandboxing/hooking scheme incompatible with Wine) +-# | * [#42741] StarCraft I: 1.18 PTR fails to initialize ClientSdk.dll +-# | * [#45349] Multiple applications and games crash due to missing support for 64-bit syscall thunks (StreetFighter V) +-# | * [#45573] League of Legends 8.12+ fails to start a game (anticheat engine, hooking of syscall return instructions) +-# | * [#45650] chromium 32-bit sandbox expects different syscall thunks depending on Windows version +-# | +-# | Modified files: +-# | * dlls/dbghelp/cpu_i386.c, dlls/kernel32/tests/loader.c, dlls/krnl386.exe16/kernel.c, +-# | dlls/krnl386.exe16/kernel16_private.h, dlls/krnl386.exe16/ne_module.c, dlls/krnl386.exe16/ne_segment.c, +-# | dlls/krnl386.exe16/task.c, dlls/krnl386.exe16/thunk.c, dlls/krnl386.exe16/wowthunk.c, dlls/ntdll/actctx.c, +-# | dlls/ntdll/directory.c, dlls/ntdll/loader.c, dlls/ntdll/locale.c, dlls/ntdll/ntdll_misc.h, dlls/ntdll/path.c, +-# | dlls/ntdll/process.c, dlls/ntdll/signal_i386.c, dlls/ntdll/tests/exception.c, dlls/ntdll/thread.c, +-# | dlls/ntdll/unix/thread.c, dlls/ntdll/unix/unix_private.h, dlls/ntdll/unix/virtual.c, dlls/ntdll/unixlib.h, +-# | dlls/system.drv16/system.c, dlls/toolhelp.dll16/toolhelp.c, dlls/user.exe16/message.c, dlls/user.exe16/user.c, +-# | dlls/user.exe16/window.c, include/winternl.h, libs/wine/loader.c, server/mapping.c, tools/winebuild/build.h, +-# | tools/winebuild/import.c, tools/winebuild/parser.c, tools/winebuild/relay.c, tools/winebuild/res32.c, +-# | tools/winebuild/spec16.c, tools/winebuild/spec32.c, tools/winebuild/utils.c +-# | +-if test "$enable_winebuild_Fake_Dlls" -eq 1; then +- patch_apply winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch +- patch_apply winebuild-Fake_Dlls/0002-krnl386.exe16-Do-not-abuse-WOW32Reserved-field-for-1.patch +- patch_apply winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch +- patch_apply winebuild-Fake_Dlls/0004-winebuild-Use-multipass-label-system-to-generate-fak.patch +- patch_apply winebuild-Fake_Dlls/0005-winebuild-Add-stub-functions-in-fake-dlls.patch +- patch_apply winebuild-Fake_Dlls/0006-winebuild-Add-syscall-thunks-in-fake-dlls.patch +- patch_apply winebuild-Fake_Dlls/0007-winebuild-Fix-size-of-relocation-information-in-fake.patch +- patch_apply winebuild-Fake_Dlls/0008-winebuild-Try-to-make-sure-RVA-matches-between-fake-.patch +- patch_apply winebuild-Fake_Dlls/0009-libs-wine-Use-same-file-alignment-for-fake-and-built.patch +- patch_apply winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch +- patch_apply winebuild-Fake_Dlls/0011-ntdll-Call-NtOpenFile-through-syscall-thunk.patch +- ( +- printf '%s\n' '+ { "Michael Müller", "kernel32/tests: Add basic tests for fake dlls.", 1 },'; +- printf '%s\n' '+ { "Sebastian Lackner", "krnl386.exe16: Do not abuse WOW32Reserved field for 16-bit stack address.", 1 },'; +- printf '%s\n' '+ { "Michael Müller", "winebuild: Generate syscall thunks for ntdll exports.", 1 },'; +- printf '%s\n' '+ { "Michael Müller", "winebuild: Use multipass label system to generate fake dlls.", 1 },'; +- printf '%s\n' '+ { "Michael Müller", "winebuild: Add stub functions in fake dlls.", 1 },'; +- printf '%s\n' '+ { "Michael Müller", "winebuild: Add syscall thunks in fake dlls.", 1 },'; +- printf '%s\n' '+ { "Michael Müller", "winebuild: Fix size of relocation information in fake dlls.", 1 },'; +- printf '%s\n' '+ { "Michael Müller", "winebuild: Try to make sure RVA matches between fake and builtin DLLs.", 1 },'; +- printf '%s\n' '+ { "Michael Müller", "libs/wine: Use same file alignment for fake and builtin DLLs.", 1 },'; +- printf '%s\n' '+ { "Michael Müller", "tools/winebuild: Add syscall thunks for 64 bit.", 1 },'; +- printf '%s\n' '+ { "Paul Gofman", "ntdll: Call NtOpenFile through syscall thunk.", 1 },'; +- ) >> "$patchlist" +-fi +- +-# Patchset ntdll-NtContinue +-# | +-# | This patchset has the following (direct or indirect) dependencies: +-# | * ntdll-WRITECOPY, ws2_32-WSACleanup, winebuild-Fake_Dlls +-# | +-# | This patchset fixes the following Wine bugs: +-# | * [#31910] Add stub for NtContinue +-# | * [#45572] League of Legends 8.12+ fails to start a game (anticheat engine, hooking of NtContinue) +-# | +-# | Modified files: +-# | * dlls/ntdll/exception.c, dlls/ntdll/ntdll.spec, dlls/ntdll/signal_i386.c, dlls/ntdll/signal_x86_64.c +-# | +-if test "$enable_ntdll_NtContinue" -eq 1; then +- patch_apply ntdll-NtContinue/0001-ntdll-Add-stub-for-NtContinue.patch +- patch_apply ntdll-NtContinue/0002-Use-NtContinue-to-continue-execution-after-exception.patch +- ( +- printf '%s\n' '+ { "Michael Müller", "ntdll: Add stub for NtContinue.", 1 },'; +- printf '%s\n' '+ { "Andrew Wesie", "ntdll: Use NtContinue to continue execution after exceptions.", 1 },'; +- ) >> "$patchlist" +-fi +- + # Patchset ntdll-Pipe_SpecialCharacters + # | + # | This patchset fixes the following Wine bugs: +@@ -4213,6 +4110,77 @@ if test "$enable_ntdll_Status_Mapping" -eq 1; then + ) >> "$patchlist" + fi + ++# Patchset ws2_32-WSACleanup ++# | ++# | This patchset fixes the following Wine bugs: ++# | * [#18670] Properly close sockets when WSACleanup is called ++# | ++# | Modified files: ++# | * dlls/ntdll/ntdll.spec, dlls/ntdll/server.c, dlls/ntdll/unix/loader.c, dlls/ntdll/unix/server.c, ++# | dlls/ntdll/unix/unix_private.h, dlls/ntdll/unixlib.h, dlls/ws2_32/socket.c, dlls/ws2_32/tests/sock.c, ++# | include/wine/server.h, server/protocol.def, server/sock.c ++# | ++if test "$enable_ws2_32_WSACleanup" -eq 1; then ++ patch_apply ws2_32-WSACleanup/0001-ws2_32-Proper-WSACleanup-implementation-using-winese.patch ++ patch_apply ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch ++ ( ++ printf '%s\n' '+ { "Matt Durgavich", "ws2_32: Proper WSACleanup implementation using wineserver function.", 2 },'; ++ printf '%s\n' '+ { "Sebastian Lackner", "ws2_32: Invalidate client-side file descriptor cache in WSACleanup.", 1 },'; ++ ) >> "$patchlist" ++fi ++ ++# Patchset winebuild-Fake_Dlls ++# | ++# | This patchset has the following (direct or indirect) dependencies: ++# | * ntdll-WRITECOPY, ws2_32-WSACleanup ++# | ++# | This patchset fixes the following Wine bugs: ++# | * [#21232] Chromium-based browser engines (Chrome, Opera, Comodo Dragon, SRWare Iron) crash on startup unless '--no- ++# | sandbox' is used (native API sandboxing/hooking scheme incompatible with Wine) ++# | * [#42741] StarCraft I: 1.18 PTR fails to initialize ClientSdk.dll ++# | * [#45349] Multiple applications and games crash due to missing support for 64-bit syscall thunks (StreetFighter V) ++# | * [#45573] League of Legends 8.12+ fails to start a game (anticheat engine, hooking of syscall return instructions) ++# | * [#45650] chromium 32-bit sandbox expects different syscall thunks depending on Windows version ++# | ++# | Modified files: ++# | * dlls/dbghelp/cpu_i386.c, dlls/kernel32/tests/loader.c, dlls/krnl386.exe16/kernel.c, ++# | dlls/krnl386.exe16/kernel16_private.h, dlls/krnl386.exe16/ne_module.c, dlls/krnl386.exe16/ne_segment.c, ++# | dlls/krnl386.exe16/task.c, dlls/krnl386.exe16/thunk.c, dlls/krnl386.exe16/wowthunk.c, dlls/ntdll/actctx.c, ++# | dlls/ntdll/directory.c, dlls/ntdll/loader.c, dlls/ntdll/locale.c, dlls/ntdll/ntdll_misc.h, dlls/ntdll/path.c, ++# | dlls/ntdll/process.c, dlls/ntdll/signal_i386.c, dlls/ntdll/tests/exception.c, dlls/ntdll/thread.c, ++# | dlls/ntdll/unix/thread.c, dlls/ntdll/unix/unix_private.h, dlls/ntdll/unix/virtual.c, dlls/ntdll/unixlib.h, ++# | dlls/system.drv16/system.c, dlls/toolhelp.dll16/toolhelp.c, dlls/user.exe16/message.c, dlls/user.exe16/user.c, ++# | dlls/user.exe16/window.c, include/winternl.h, libs/wine/loader.c, server/mapping.c, tools/winebuild/build.h, ++# | tools/winebuild/import.c, tools/winebuild/parser.c, tools/winebuild/relay.c, tools/winebuild/res32.c, ++# | tools/winebuild/spec16.c, tools/winebuild/spec32.c, tools/winebuild/utils.c ++# | ++if test "$enable_winebuild_Fake_Dlls" -eq 1; then ++ patch_apply winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch ++ patch_apply winebuild-Fake_Dlls/0002-krnl386.exe16-Do-not-abuse-WOW32Reserved-field-for-1.patch ++ patch_apply winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch ++ patch_apply winebuild-Fake_Dlls/0004-winebuild-Use-multipass-label-system-to-generate-fak.patch ++ patch_apply winebuild-Fake_Dlls/0005-winebuild-Add-stub-functions-in-fake-dlls.patch ++ patch_apply winebuild-Fake_Dlls/0006-winebuild-Add-syscall-thunks-in-fake-dlls.patch ++ patch_apply winebuild-Fake_Dlls/0007-winebuild-Fix-size-of-relocation-information-in-fake.patch ++ patch_apply winebuild-Fake_Dlls/0008-winebuild-Try-to-make-sure-RVA-matches-between-fake-.patch ++ patch_apply winebuild-Fake_Dlls/0009-libs-wine-Use-same-file-alignment-for-fake-and-built.patch ++ patch_apply winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch ++ patch_apply winebuild-Fake_Dlls/0011-ntdll-Call-NtOpenFile-through-syscall-thunk.patch ++ ( ++ printf '%s\n' '+ { "Michael Müller", "kernel32/tests: Add basic tests for fake dlls.", 1 },'; ++ printf '%s\n' '+ { "Sebastian Lackner", "krnl386.exe16: Do not abuse WOW32Reserved field for 16-bit stack address.", 1 },'; ++ printf '%s\n' '+ { "Michael Müller", "winebuild: Generate syscall thunks for ntdll exports.", 1 },'; ++ printf '%s\n' '+ { "Michael Müller", "winebuild: Use multipass label system to generate fake dlls.", 1 },'; ++ printf '%s\n' '+ { "Michael Müller", "winebuild: Add stub functions in fake dlls.", 1 },'; ++ printf '%s\n' '+ { "Michael Müller", "winebuild: Add syscall thunks in fake dlls.", 1 },'; ++ printf '%s\n' '+ { "Michael Müller", "winebuild: Fix size of relocation information in fake dlls.", 1 },'; ++ printf '%s\n' '+ { "Michael Müller", "winebuild: Try to make sure RVA matches between fake and builtin DLLs.", 1 },'; ++ printf '%s\n' '+ { "Michael Müller", "libs/wine: Use same file alignment for fake and builtin DLLs.", 1 },'; ++ printf '%s\n' '+ { "Michael Müller", "tools/winebuild: Add syscall thunks for 64 bit.", 1 },'; ++ printf '%s\n' '+ { "Paul Gofman", "ntdll: Call NtOpenFile through syscall thunk.", 1 },'; ++ ) >> "$patchlist" ++fi ++ + # Patchset ntdll-Syscall_Emulation + # | + # | This patchset has the following (direct or indirect) dependencies: +diff --git a/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch b/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch +index 751b497da..684c28e16 100644 +--- a/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch ++++ b/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch +@@ -1,4 +1,4 @@ +-From 1fec139d96f32869fc0c8d15219fff493d9951d8 Mon Sep 17 00:00:00 2001 ++From e60eb454ecfb4c043a585c1ecd2970c92be1c664 Mon Sep 17 00:00:00 2001 + From: =?UTF-8?q?Michael=20M=C3=BCller?= + Date: Thu, 11 May 2017 05:32:55 +0200 + Subject: [PATCH] winebuild: Generate syscall thunks for ntdll exports. +@@ -22,7 +22,7 @@ Based on a patch by Erich E. Hoover. + 14 files changed, 214 insertions(+), 32 deletions(-) + + diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c +-index 45d32399adf..b42cff8bcd4 100644 ++index ffbc9fabb23..a633099877d 100644 + --- a/dlls/ntdll/loader.c + +++ b/dlls/ntdll/loader.c + @@ -3810,6 +3810,7 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule) +@@ -33,7 +33,7 @@ index 45d32399adf..b42cff8bcd4 100644 + + /****************************************************************** + * LdrInitializeThunk (NTDLL.@) +-@@ -3827,6 +3828,8 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow ++@@ -3826,6 +3827,8 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow + WINE_MODREF *wm; + LPCWSTR load_path = NtCurrentTeb()->Peb->ProcessParameters->DllPath.Buffer; + +@@ -43,19 +43,19 @@ index 45d32399adf..b42cff8bcd4 100644 + + if (process_detaching) return; + diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c +-index be88d9bf3c7..84ab7991886 100644 ++index 3be6342a945..85329be4f42 100644 + --- a/dlls/ntdll/signal_i386.c + +++ b/dlls/ntdll/signal_i386.c +-@@ -448,6 +448,8 @@ static ULONG first_ldt_entry = 32; ++@@ -444,6 +444,8 @@ struct stack_layout + +- static wine_signal_handler handlers[256]; ++ static ULONG first_ldt_entry = 32; + + +extern NTSTATUS WINAPI __syscall_NtGetContextThread( HANDLE handle, CONTEXT *context ); + + + enum i386_trap_code + { + TRAP_x86_UNKNOWN = -1, /* Unknown fault (TRAP_sig not defined) */ +-@@ -1159,7 +1161,7 @@ NTSTATUS CDECL DECLSPEC_HIDDEN __regs_NtGetContextThread( DWORD edi, DWORD esi, ++@@ -1127,7 +1129,7 @@ NTSTATUS CDECL DECLSPEC_HIDDEN __regs_NtGetContextThread( DWORD edi, DWORD esi, + { + context->Ebp = ebp; + context->Esp = (DWORD)&retaddr; +@@ -78,7 +78,7 @@ index a5e6faa461a..51938bf84cc 100644 + ok( context.SegCs == LOWORD(expect.SegCs), "wrong SegCs %08x/%08x\n", context.SegCs, expect.SegCs ); + ok( context.SegDs == LOWORD(expect.SegDs), "wrong SegDs %08x/%08x\n", context.SegDs, expect.SegDs ); + diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c +-index 79d13a01a86..94eb6d1252d 100644 ++index 49daa33ca58..17b5d40215a 100644 + --- a/dlls/ntdll/thread.c + +++ b/dlls/ntdll/thread.c + @@ -173,6 +173,7 @@ int __cdecl __wine_dbg_output( const char *str ) +@@ -99,10 +99,10 @@ index 79d13a01a86..94eb6d1252d 100644 + peb = teb->Peb; + peb->FastPebLock = &peb_lock; + diff --git a/dlls/ntdll/unix/thread.c b/dlls/ntdll/unix/thread.c +-index b6458da61ad..a158ec20a6a 100644 ++index d4b7a51a627..bdc87e4b9cf 100644 + --- a/dlls/ntdll/unix/thread.c + +++ b/dlls/ntdll/unix/thread.c +-@@ -83,7 +83,7 @@ static void pthread_exit_wrapper( int status ) ++@@ -85,7 +85,7 @@ static void pthread_exit_wrapper( int status ) + * init_threading + */ + TEB * CDECL init_threading( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZE_T *size, BOOL *suspend, +@@ -111,7 +111,7 @@ index b6458da61ad..a158ec20a6a 100644 + { + TEB *teb; + SIZE_T info_size; +-@@ -95,6 +95,7 @@ TEB * CDECL init_threading( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZ ++@@ -97,6 +97,7 @@ TEB * CDECL init_threading( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZ + nb_threads = nb_threads_ptr; + + teb = virtual_alloc_first_teb(); +@@ -120,10 +120,10 @@ index b6458da61ad..a158ec20a6a 100644 + thread_data->request_fd = -1; + thread_data->reply_fd = -1; + diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h +-index 880e3aacf33..6c7b961e95a 100644 ++index 19104f0f5cc..bdf8bc99e3f 100644 + --- a/dlls/ntdll/unix/unix_private.h + +++ b/dlls/ntdll/unix/unix_private.h +-@@ -96,7 +96,7 @@ extern void CDECL server_release_fd( HANDLE handle, int unix_fd ) DECLSPEC_HIDDE ++@@ -101,7 +101,7 @@ extern void CDECL server_release_fd( HANDLE handle, int unix_fd ) DECLSPEC_HIDDE + extern void CDECL server_init_process_done(void) DECLSPEC_HIDDEN; + extern TEB * CDECL init_threading( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZE_T *size, + BOOL *suspend, unsigned int *cpus, BOOL *wow64, +@@ -133,19 +133,19 @@ index 880e3aacf33..6c7b961e95a 100644 + extern void CDECL DECLSPEC_NORETURN abort_thread( int status ) DECLSPEC_HIDDEN; + extern void CDECL DECLSPEC_NORETURN exit_thread( int status ) DECLSPEC_HIDDEN; + diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h +-index 83c9f3a163b..63728b1c071 100644 ++index 6a751993421..4e39ed53786 100644 + --- a/dlls/ntdll/unixlib.h + +++ b/dlls/ntdll/unixlib.h + @@ -28,7 +28,7 @@ struct ldt_copy; + struct msghdr; + + /* increment this when you change the function table */ +--#define NTDLL_UNIXLIB_VERSION 31 +-+#define NTDLL_UNIXLIB_VERSION 32 ++-#define NTDLL_UNIXLIB_VERSION 33 +++#define NTDLL_UNIXLIB_VERSION 34 + + struct unix_funcs + { +-@@ -172,7 +172,7 @@ struct unix_funcs ++@@ -174,7 +174,7 @@ struct unix_funcs + + /* thread/process functions */ + TEB * (CDECL *init_threading)( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZE_T *size, +diff --git a/patches/ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch b/patches/ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch +index 25c315648..0861f99c0 100644 +--- a/patches/ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch ++++ b/patches/ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch +@@ -1,4 +1,4 @@ +-From 1bb20ff5903d8d5e81e8a2b7b22bf67b189b16ec Mon Sep 17 00:00:00 2001 ++From 20661308a50202350a3a2887cbd558b1e931aad1 Mon Sep 17 00:00:00 2001 + From: Sebastian Lackner + Date: Sun, 6 Sep 2015 12:41:17 +0200 + Subject: [PATCH] ws2_32: Invalidate client-side file descriptor cache in +@@ -17,7 +17,7 @@ Subject: [PATCH] ws2_32: Invalidate client-side file descriptor cache in + 9 files changed, 36 insertions(+), 5 deletions(-) + + diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec +-index c4d78128758..3d6c8850086 100644 ++index ce5c580bd54..279845ae830 100644 + --- a/dlls/ntdll/ntdll.spec + +++ b/dlls/ntdll/ntdll.spec + @@ -1576,6 +1576,7 @@ +@@ -48,10 +48,10 @@ index 6fb86a68d6f..2f95e190963 100644 + /*********************************************************************** + * server_init_process + diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c +-index b5ee692024c..d8827b147df 100644 ++index 618e3d6adb3..bdda739897b 100644 + --- a/dlls/ntdll/unix/loader.c + +++ b/dlls/ntdll/unix/loader.c +-@@ -1074,6 +1074,7 @@ static struct unix_funcs unix_funcs = ++@@ -1076,6 +1076,7 @@ static struct unix_funcs unix_funcs = + server_select, + server_wait, + server_send_fd, +@@ -91,10 +91,10 @@ index fb3f98dd579..0754928cfe8 100644 + /*********************************************************************** + * server_get_unix_fd + diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h +-index a422fd825ed..880e3aacf33 100644 ++index 03b92f9e912..19104f0f5cc 100644 + --- a/dlls/ntdll/unix/unix_private.h + +++ b/dlls/ntdll/unix/unix_private.h +-@@ -84,6 +84,7 @@ extern unsigned int CDECL server_select( const select_op_t *select_op, data_size ++@@ -89,6 +89,7 @@ extern unsigned int CDECL server_select( const select_op_t *select_op, data_size + extern unsigned int CDECL server_wait( const select_op_t *select_op, data_size_t size, UINT flags, + const LARGE_INTEGER *timeout ) DECLSPEC_HIDDEN; + extern void CDECL server_send_fd( int fd ) DECLSPEC_HIDDEN; +@@ -103,19 +103,19 @@ index a422fd825ed..880e3aacf33 100644 + int *needs_close, enum server_fd_type *type, + unsigned int *options ) DECLSPEC_HIDDEN; + diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h +-index 58bdad19397..83c9f3a163b 100644 ++index 017a0a71b3f..6a751993421 100644 + --- a/dlls/ntdll/unixlib.h + +++ b/dlls/ntdll/unixlib.h + @@ -28,7 +28,7 @@ struct ldt_copy; + struct msghdr; + + /* increment this when you change the function table */ +--#define NTDLL_UNIXLIB_VERSION 30 +-+#define NTDLL_UNIXLIB_VERSION 31 ++-#define NTDLL_UNIXLIB_VERSION 32 +++#define NTDLL_UNIXLIB_VERSION 33 + + struct unix_funcs + { +-@@ -187,6 +187,7 @@ struct unix_funcs ++@@ -189,6 +189,7 @@ struct unix_funcs + unsigned int (CDECL *server_wait)( const select_op_t *select_op, data_size_t size, UINT flags, + const LARGE_INTEGER *timeout ); + void (CDECL *server_send_fd)( int fd ); +diff --git a/staging/upstream-commit b/staging/upstream-commit +index f51939b28..8b37e5310 100644 +--- a/staging/upstream-commit ++++ b/staging/upstream-commit +@@ -1 +1 @@ +-3cc3b445752902e07231900befc296f74ad6576e ++17529582402ebe27ef975fc7dcb8353f4f95e629 diff --git a/wine-staging-5.10-ntdll-arm.patch b/wine-staging-5.10-ntdll-arm1.patch similarity index 100% rename from wine-staging-5.10-ntdll-arm.patch rename to wine-staging-5.10-ntdll-arm1.patch diff --git a/wine.spec b/wine.spec index a2d6c1f..4308871 100644 --- a/wine.spec +++ b/wine.spec @@ -76,7 +76,8 @@ Source150: wine.appdata.xml # wine bugs Patch100: wine-staging-5.10-ntdll.patch -Patch101: wine-staging-5.10-ntdll-arm.patch +Patch101: wine-staging-5.10-ntdll-arm0.patch +Patch102: wine-staging-5.10-ntdll-arm1.patch # desktop dir Source200: wine.menu @@ -695,7 +696,8 @@ This package adds the opencl driver for wine. # setup and apply wine-staging patches gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 %patch100 -p1 -b.ntdll -%patch101 -p1 -b.ntdll-arm +%patch101 -p1 -b.ntdll-arm0 +%patch102 -p1 -b.ntdll-arm1 patches/patchinstall.sh DESTDIR="`pwd`" --all From faadc28cc066527eeae214364effc049183878d9 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Thu, 11 Jun 2020 08:59:39 -0500 Subject: [PATCH 586/715] Backout arm patches due to code rebase by upstream, this will be included in 5.11 --- wine-staging-5.10-ntdll-arm0.patch | 964 ----------------------------- wine-staging-5.10-ntdll-arm1.patch | 950 ---------------------------- wine.spec | 11 +- 3 files changed, 7 insertions(+), 1918 deletions(-) delete mode 100644 wine-staging-5.10-ntdll-arm0.patch delete mode 100644 wine-staging-5.10-ntdll-arm1.patch diff --git a/wine-staging-5.10-ntdll-arm0.patch b/wine-staging-5.10-ntdll-arm0.patch deleted file mode 100644 index 74f1f00..0000000 --- a/wine-staging-5.10-ntdll-arm0.patch +++ /dev/null @@ -1,964 +0,0 @@ -From 9a4c8c5631101f8571dbdce726ae864060e446c9 Mon Sep 17 00:00:00 2001 -From: Zebediah Figura -Date: Mon, 8 Jun 2020 15:59:31 -0500 -Subject: [PATCH] Rebase against 17529582402ebe27ef975fc7dcb8353f4f95e629. - ---- - ...ase-Maintain-FLS-storage-list-in-PEB.patch | 44 ++-- - .../0001-ntdll-Add-stub-for-NtContinue.patch | 63 ------ - ...o-continue-execution-after-exception.patch | 82 -------- - patches/ntdll-NtContinue/definition | 3 - - ...dll-Support-x86_64-syscall-emulation.patch | 14 +- - ...mporary-signal-handler-during-proces.patch | 32 +-- - patches/patchinstall.sh | 198 ++++++++---------- - ...ate-syscall-thunks-for-ntdll-exports.patch | 34 +-- - ...e-client-side-file-descriptor-cache-.patch | 20 +- - staging/upstream-commit | 2 +- - 10 files changed, 156 insertions(+), 336 deletions(-) - delete mode 100644 patches/ntdll-NtContinue/0001-ntdll-Add-stub-for-NtContinue.patch - delete mode 100644 patches/ntdll-NtContinue/0002-Use-NtContinue-to-continue-execution-after-exception.patch - delete mode 100644 patches/ntdll-NtContinue/definition - -diff --git a/patches/ntdll-FLS_Callbacks/0001-kernelbase-Maintain-FLS-storage-list-in-PEB.patch b/patches/ntdll-FLS_Callbacks/0001-kernelbase-Maintain-FLS-storage-list-in-PEB.patch -index 1d5434bf6..40f2a0b86 100644 ---- a/patches/ntdll-FLS_Callbacks/0001-kernelbase-Maintain-FLS-storage-list-in-PEB.patch -+++ b/patches/ntdll-FLS_Callbacks/0001-kernelbase-Maintain-FLS-storage-list-in-PEB.patch -@@ -1,4 +1,4 @@ --From 5c370d9f0be803d89302da7471ef0b93b45a0d75 Mon Sep 17 00:00:00 2001 -+From 3fe24d6e3b216c21b6a7b68766414213fdd2ff2d Mon Sep 17 00:00:00 2001 - From: Paul Gofman - Date: Thu, 23 Apr 2020 14:32:23 +0300 - Subject: [PATCH] kernelbase: Maintain FLS storage list in PEB. -@@ -73,10 +73,10 @@ index 7501165dc87..2bcc3ee60c4 100644 - * FlsFree should fail - * FlsGetValue and FlsSetValue should succeed - diff --git a/dlls/kernel32/tests/thread.c b/dlls/kernel32/tests/thread.c --index a454bf118cc..dac30959734 100644 -+index a9869863b44..b24f9e98bc7 100644 - --- a/dlls/kernel32/tests/thread.c - +++ b/dlls/kernel32/tests/thread.c --@@ -2435,7 +2435,6 @@ START_TEST(thread) -+@@ -2377,7 +2377,6 @@ START_TEST(thread) - } - return; - } -@@ -84,7 +84,7 @@ index a454bf118cc..dac30959734 100644 - test_thread_info(); - test_reserved_tls(); - test_CreateRemoteThread(); --@@ -2463,6 +2462,5 @@ START_TEST(thread) -+@@ -2405,6 +2404,5 @@ START_TEST(thread) - test_thread_fpu_cw(); - test_thread_actctx(); - test_thread_description(); -@@ -92,7 +92,7 @@ index a454bf118cc..dac30959734 100644 - test_threadpool(); - } - diff --git a/dlls/kernelbase/thread.c b/dlls/kernelbase/thread.c --index 03b16da95bb..4409f120491 100644 -+index f20d460d07d..3c77b6a42f4 100644 - --- a/dlls/kernelbase/thread.c - +++ b/dlls/kernelbase/thread.c - @@ -38,6 +38,10 @@ -@@ -106,7 +106,7 @@ index 03b16da95bb..4409f120491 100644 - - /*********************************************************************** - * Threads --@@ -916,6 +920,19 @@ static void init_fiber_context( struct fiber_data *fiber ) -+@@ -915,6 +919,19 @@ static void init_fiber_context( struct fiber_data *fiber ) - #endif - } - -@@ -126,7 +126,7 @@ index 03b16da95bb..4409f120491 100644 - - /*********************************************************************** - * CreateFiber (kernelbase.@) --@@ -1023,7 +1040,16 @@ void WINAPI DECLSPEC_HOTPATCH DeleteFiber( LPVOID fiber_ptr ) -+@@ -1022,7 +1039,16 @@ void WINAPI DECLSPEC_HOTPATCH DeleteFiber( LPVOID fiber_ptr ) - RtlExitUserThread( 1 ); - } - RtlFreeUserStack( fiber->stack_allocation ); -@@ -144,7 +144,7 @@ index 03b16da95bb..4409f120491 100644 - HeapFree( GetProcessHeap(), 0, fiber ); - } - --@@ -1045,6 +1071,19 @@ void WINAPI DECLSPEC_HOTPATCH SwitchToFiber( LPVOID fiber ) -+@@ -1044,6 +1070,19 @@ void WINAPI DECLSPEC_HOTPATCH SwitchToFiber( LPVOID fiber ) - struct fiber_data *new_fiber = fiber; - struct fiber_data *current_fiber = NtCurrentTeb()->Tib.u.FiberData; - -@@ -164,7 +164,7 @@ index 03b16da95bb..4409f120491 100644 - current_fiber->except = NtCurrentTeb()->Tib.ExceptionList; - current_fiber->stack_limit = NtCurrentTeb()->Tib.StackLimit; - current_fiber->fls_slots = NtCurrentTeb()->FlsSlots; --@@ -1070,9 +1109,7 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback ) -+@@ -1069,9 +1108,7 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback ) - PEB * const peb = NtCurrentTeb()->Peb; - - RtlAcquirePebLock(); -@@ -175,7 +175,7 @@ index 03b16da95bb..4409f120491 100644 - { - SetLastError( ERROR_NOT_ENOUGH_MEMORY ); - index = FLS_OUT_OF_INDEXES; --@@ -1082,9 +1119,7 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback ) -+@@ -1081,9 +1118,7 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback ) - index = RtlFindClearBitsAndSet( peb->FlsBitmap, 1, 1 ); - if (index != ~0U) - { -@@ -186,7 +186,7 @@ index 03b16da95bb..4409f120491 100644 - { - RtlClearBits( peb->FlsBitmap, index, 1 ); - index = FLS_OUT_OF_INDEXES; --@@ -1092,8 +1127,8 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback ) -+@@ -1091,8 +1126,8 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback ) - } - else - { -@@ -197,7 +197,7 @@ index 03b16da95bb..4409f120491 100644 - } - } - else SetLastError( ERROR_NO_MORE_ITEMS ); --@@ -1117,7 +1152,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH FlsFree( DWORD index ) -+@@ -1116,7 +1151,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH FlsFree( DWORD index ) - { - /* FIXME: call Fls callback */ - /* FIXME: add equivalent of ThreadZeroTlsCell here */ -@@ -206,7 +206,7 @@ index 03b16da95bb..4409f120491 100644 - } - else SetLastError( ERROR_INVALID_PARAMETER ); - RtlReleasePebLock(); --@@ -1136,7 +1171,7 @@ PVOID WINAPI DECLSPEC_HOTPATCH FlsGetValue( DWORD index ) -+@@ -1135,7 +1170,7 @@ PVOID WINAPI DECLSPEC_HOTPATCH FlsGetValue( DWORD index ) - return NULL; - } - SetLastError( ERROR_SUCCESS ); -@@ -215,7 +215,7 @@ index 03b16da95bb..4409f120491 100644 - } - - --@@ -1150,14 +1185,12 @@ BOOL WINAPI DECLSPEC_HOTPATCH FlsSetValue( DWORD index, PVOID data ) -+@@ -1149,14 +1184,12 @@ BOOL WINAPI DECLSPEC_HOTPATCH FlsSetValue( DWORD index, PVOID data ) - SetLastError( ERROR_INVALID_PARAMETER ); - return FALSE; - } -@@ -233,10 +233,10 @@ index 03b16da95bb..4409f120491 100644 - } - - diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c --index 5e8de8821dd..71ef1cfea0a 100644 -+index ffbc9fabb23..be53d98e5b8 100644 - --- a/dlls/ntdll/loader.c - +++ b/dlls/ntdll/loader.c --@@ -179,6 +179,15 @@ static CRITICAL_SECTION_DEBUG dlldir_critsect_debug = -+@@ -169,6 +169,15 @@ static CRITICAL_SECTION_DEBUG dlldir_critsect_debug = - }; - static CRITICAL_SECTION dlldir_section = { &dlldir_critsect_debug, -1, 0, 0, 0, 0 }; - -@@ -252,7 +252,7 @@ index 5e8de8821dd..71ef1cfea0a 100644 - static WINE_MODREF *cached_modref; - static WINE_MODREF *current_modref; - static WINE_MODREF *last_failed_modref; --@@ -219,6 +228,16 @@ static RTL_UNLOAD_EVENT_TRACE unload_traces[RTL_UNLOAD_EVENT_TRACE_NUMBER]; -+@@ -209,6 +218,16 @@ static RTL_UNLOAD_EVENT_TRACE unload_traces[RTL_UNLOAD_EVENT_TRACE_NUMBER]; - static RTL_UNLOAD_EVENT_TRACE *unload_trace_ptr; - static unsigned int unload_trace_seq; - -@@ -269,7 +269,7 @@ index 5e8de8821dd..71ef1cfea0a 100644 - static void module_push_unload_trace( const LDR_DATA_TABLE_ENTRY *ldr ) - { - RTL_UNLOAD_EVENT_TRACE *ptr = &unload_traces[unload_trace_seq]; --@@ -3913,6 +3932,13 @@ void WINAPI LdrShutdownThread(void) -+@@ -3610,6 +3629,13 @@ void WINAPI LdrShutdownThread(void) - /* don't do any detach calls if process is exiting */ - if (process_detaching) return; - -@@ -283,15 +283,15 @@ index 5e8de8821dd..71ef1cfea0a 100644 - RtlEnterCriticalSection( &loader_section ); - - mark = &NtCurrentTeb()->Peb->LdrData->InInitializationOrderModuleList; --@@ -4153,6 +4179,7 @@ static void user_shared_data_init(void) -+@@ -3819,6 +3845,7 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule) - */ - void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknown3, ULONG_PTR unknown4 ) - { - + static const unsigned int fls_slot_count = 8 * sizeof(NtCurrentTeb()->Peb->FlsBitmapBits); -- static const LARGE_INTEGER zero; - static int attach_done; - int i; --@@ -4191,6 +4218,25 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow -+ NTSTATUS status; -+@@ -3856,6 +3883,25 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow - InsertHeadList( &tls_links, &NtCurrentTeb()->TlsLinks ); - RtlReleasePebLock(); - -@@ -318,5 +318,5 @@ index 5e8de8821dd..71ef1cfea0a 100644 - { - attach_done = 1; - -- --2.25.3 -+2.26.2 - -diff --git a/patches/ntdll-NtContinue/0001-ntdll-Add-stub-for-NtContinue.patch b/patches/ntdll-NtContinue/0001-ntdll-Add-stub-for-NtContinue.patch -deleted file mode 100644 -index 7145857bd..000000000 ---- a/patches/ntdll-NtContinue/0001-ntdll-Add-stub-for-NtContinue.patch -+++ /dev/null -@@ -1,63 +0,0 @@ --From 9ea4f081689959bd393eab2caaa0ed8237846117 Mon Sep 17 00:00:00 2001 --From: =?UTF-8?q?Michael=20M=C3=BCller?= --Date: Thu, 25 May 2017 05:04:26 +0200 --Subject: [PATCH] ntdll: Add stub for NtContinue. -- ----- -- dlls/ntdll/exception.c | 10 +++++++++- -- dlls/ntdll/ntdll.spec | 4 ++-- -- 2 files changed, 11 insertions(+), 3 deletions(-) -- --diff --git a/dlls/ntdll/exception.c b/dlls/ntdll/exception.c --index c35312fd1d1..3b85f1efa04 100644 ----- a/dlls/ntdll/exception.c --+++ b/dlls/ntdll/exception.c --@@ -328,7 +328,6 @@ LONG WINAPI call_unhandled_exception_filter( PEXCEPTION_POINTERS eptr ) -- return unhandled_exception_filter( eptr ); -- } -- --- -- #if defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) -- -- struct dynamic_unwind_entry --@@ -667,6 +666,15 @@ PRUNTIME_FUNCTION WINAPI RtlLookupFunctionEntry( ULONG_PTR pc, ULONG_PTR *base, -- -- #endif /* __x86_64__ || __arm__ || __aarch64__ */ -- --+/********************************************************************* --+ * NtContinue (NTDLL.@) --+ */ --+NTSTATUS WINAPI NtContinue( CONTEXT *context, BOOLEAN alert ) --+{ --+ FIXME( "(%p, %d) stub!\n", context, alert ); --+ return STATUS_NOT_IMPLEMENTED; --+} --+ -- /************************************************************* -- * __wine_spec_unimplemented_stub -- * --diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec --index 81faf7fc280..d21a6f08ac2 100644 ----- a/dlls/ntdll/ntdll.spec --+++ b/dlls/ntdll/ntdll.spec --@@ -150,7 +150,7 @@ -- @ stdcall NtCompleteConnectPort(ptr) -- # @ stub NtCompressKey -- @ stdcall NtConnectPort(ptr ptr ptr ptr ptr ptr ptr ptr) ---@ stub NtContinue --+@ stdcall NtContinue(ptr long) -- # @ stub NtCreateDebugObject -- @ stdcall NtCreateDirectoryObject(ptr long ptr) -- @ stdcall NtCreateEvent(ptr long ptr long long) --@@ -1105,7 +1105,7 @@ -- @ stdcall -private ZwCompleteConnectPort(ptr) NtCompleteConnectPort -- # @ stub ZwCompressKey -- @ stdcall -private ZwConnectPort(ptr ptr ptr ptr ptr ptr ptr ptr) NtConnectPort ---@ stub ZwContinue --+@ stdcall -private ZwContinue(ptr long) NtContinue -- # @ stub ZwCreateDebugObject -- @ stdcall -private ZwCreateDirectoryObject(ptr long ptr) NtCreateDirectoryObject -- @ stdcall -private ZwCreateEvent(ptr long ptr long long) NtCreateEvent ---- --2.17.1 -- -diff --git a/patches/ntdll-NtContinue/0002-Use-NtContinue-to-continue-execution-after-exception.patch b/patches/ntdll-NtContinue/0002-Use-NtContinue-to-continue-execution-after-exception.patch -deleted file mode 100644 -index 902940977..000000000 ---- a/patches/ntdll-NtContinue/0002-Use-NtContinue-to-continue-execution-after-exception.patch -+++ /dev/null -@@ -1,82 +0,0 @@ --From 812de54c6fc8f93e8fda01f0802397b183adab59 Mon Sep 17 00:00:00 2001 --From: Andrew Wesie --Date: Fri, 27 Jul 2018 01:26:56 -0500 --Subject: [PATCH] ntdll: Use NtContinue to continue execution after exceptions. -- --NtContinue is exported by ntdll and some programs expect it to be used to --restore the thread context after an exception handler returns --EXCEPTION_CONTINUE_EXECUTION. It must take a context as its first argument --and restore that context. -- --Current implementation is a simple wrapper around NtSetContextThread. It is --unlikely that it has the correct behavior if called by an external caller. -- --The __syscall_NtContinue wrapper is used so that it can be hooked by a --third-party. ----- -- dlls/ntdll/exception.c | 5 +++-- -- dlls/ntdll/signal_i386.c | 3 ++- -- dlls/ntdll/signal_x86_64.c | 3 ++- -- 3 files changed, 7 insertions(+), 4 deletions(-) -- --diff --git a/dlls/ntdll/exception.c b/dlls/ntdll/exception.c --index 3b85f1efa..bc972254f 100644 ----- a/dlls/ntdll/exception.c --+++ b/dlls/ntdll/exception.c --@@ -671,8 +671,9 @@ PRUNTIME_FUNCTION WINAPI RtlLookupFunctionEntry( ULONG_PTR pc, ULONG_PTR *base, -- */ -- NTSTATUS WINAPI NtContinue( CONTEXT *context, BOOLEAN alert ) -- { --- FIXME( "(%p, %d) stub!\n", context, alert ); --- return STATUS_NOT_IMPLEMENTED; --+ TRACE( "(%p, %d) stub!\n", context, alert ); --+ --+ return NtSetContextThread( GetCurrentThread(), context ); -- } -- -- /************************************************************* --diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c --index e55164630..8fc885ed4 100644 ----- a/dlls/ntdll/signal_i386.c --+++ b/dlls/ntdll/signal_i386.c --@@ -730,6 +730,7 @@ static NTSTATUS call_stack_handlers( EXCEPTION_RECORD *rec, CONTEXT *context ) -- return STATUS_UNHANDLED_EXCEPTION; -- } -- --+NTSTATUS WINAPI __syscall_NtContinue( CONTEXT *context, BOOLEAN alert ); -- -- /******************************************************************* -- * raise_exception --@@ -794,7 +795,7 @@ static NTSTATUS raise_exception( EXCEPTION_RECORD *rec, CONTEXT *context, BOOL f -- NtTerminateProcess( NtCurrentProcess(), rec->ExceptionCode ); -- } -- done: --- return NtSetContextThread( GetCurrentThread(), context ); --+ return __syscall_NtContinue( context, FALSE ); -- } -- -- --diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c --index e48529d73..0e74fda43 100644 ----- a/dlls/ntdll/signal_x86_64.c --+++ b/dlls/ntdll/signal_x86_64.c --@@ -2520,6 +2520,7 @@ static NTSTATUS call_stack_handlers( EXCEPTION_RECORD *rec, CONTEXT *orig_contex -- return STATUS_UNHANDLED_EXCEPTION; -- } -- --+NTSTATUS WINAPI __syscall_NtContinue( CONTEXT *context, BOOLEAN alert ); -- -- static NTSTATUS raise_exception( EXCEPTION_RECORD *rec, CONTEXT *context, BOOL first_chance ) -- { --@@ -2582,7 +2583,7 @@ static NTSTATUS raise_exception( EXCEPTION_RECORD *rec, CONTEXT *context, BOOL f -- } -- -- done: --- return NtSetContextThread( GetCurrentThread(), context ); --+ return __syscall_NtContinue( context, FALSE ); -- } -- -- ---- --2.23.0 -- -diff --git a/patches/ntdll-NtContinue/definition b/patches/ntdll-NtContinue/definition -deleted file mode 100644 -index 06c2ebf9e..000000000 ---- a/patches/ntdll-NtContinue/definition -+++ /dev/null -@@ -1,3 +0,0 @@ --Fixes: [31910] Add stub for NtContinue --Fixes: [45572] League of Legends 8.12+ fails to start a game (anticheat engine, hooking of NtContinue) --Depends: winebuild-Fake_Dlls -\ No newline at end of file -diff --git a/patches/ntdll-Syscall_Emulation/0001-ntdll-Support-x86_64-syscall-emulation.patch b/patches/ntdll-Syscall_Emulation/0001-ntdll-Support-x86_64-syscall-emulation.patch -index 4ae5fcdfa..0a39d4355 100644 ---- a/patches/ntdll-Syscall_Emulation/0001-ntdll-Support-x86_64-syscall-emulation.patch -+++ b/patches/ntdll-Syscall_Emulation/0001-ntdll-Support-x86_64-syscall-emulation.patch -@@ -1,4 +1,4 @@ --From 20298be5a42af52be27c56f88ad6a8a0304b55b6 Mon Sep 17 00:00:00 2001 -+From cd04d1910294b035bb3858b3ef1bb295aec3a732 Mon Sep 17 00:00:00 2001 - From: Paul Gofman - Date: Mon, 30 Dec 2019 13:27:53 +0300 - Subject: [PATCH] ntdll: Support x86_64 syscall emulation. -@@ -15,7 +15,7 @@ is used for trapping syscalls. - 3 files changed, 119 insertions(+), 2 deletions(-) - - diff --git a/configure.ac b/configure.ac --index e3d63ed7501..2fbec4129df 100644 -+index e61a98455c3..4adeb52d225 100644 - --- a/configure.ac - +++ b/configure.ac - @@ -464,6 +464,7 @@ AC_CHECK_HEADERS(\ -@@ -27,7 +27,7 @@ index e3d63ed7501..2fbec4129df 100644 - linux/types.h \ - linux/ucdrom.h \ - diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c --index 0ccc7cbceb6..149ad1bf5e7 100644 -+index dd8b45fa907..a5612abf2b1 100644 - --- a/dlls/ntdll/signal_x86_64.c - +++ b/dlls/ntdll/signal_x86_64.c - @@ -24,6 +24,7 @@ -@@ -61,8 +61,8 @@ index 0ccc7cbceb6..149ad1bf5e7 100644 - typedef struct _SCOPE_TABLE - { - ULONG Count; --@@ -2797,6 +2807,104 @@ static void usr1_handler( int signal, siginfo_t *siginfo, void *ucontext ) -- restore_context( &context, ucontext ); -+@@ -2480,6 +2490,104 @@ static inline DWORD is_privileged_instr( CONTEXT *context ) -+ return 0; - } - - +extern unsigned int __wine_nb_syscalls; -@@ -165,8 +165,8 @@ index 0ccc7cbceb6..149ad1bf5e7 100644 - +} - - /*********************************************************************** -- * __wine_set_signal_handler (NTDLL.@) --@@ -2842,6 +2950,9 @@ void signal_init_process(void) -+ * handle_interrupt -+@@ -2793,6 +2901,9 @@ void signal_init_process(void) - sig_act.sa_sigaction = trap_handler; - if (sigaction( SIGTRAP, &sig_act, NULL ) == -1) goto error; - #endif -diff --git a/patches/ntdll-WRITECOPY/0003-ntdll-Setup-a-temporary-signal-handler-during-proces.patch b/patches/ntdll-WRITECOPY/0003-ntdll-Setup-a-temporary-signal-handler-during-proces.patch -index d6e9a6824..db0631234 100644 ---- a/patches/ntdll-WRITECOPY/0003-ntdll-Setup-a-temporary-signal-handler-during-proces.patch -+++ b/patches/ntdll-WRITECOPY/0003-ntdll-Setup-a-temporary-signal-handler-during-proces.patch -@@ -1,4 +1,4 @@ --From 46968c583a30476a86463530d0047699e64529b5 Mon Sep 17 00:00:00 2001 -+From bd60a4308f3ec1df20328887335b4c95f9be215d Mon Sep 17 00:00:00 2001 - From: =?UTF-8?q?Michael=20M=C3=BCller?= - Date: Sat, 4 Oct 2014 02:53:22 +0200 - Subject: [PATCH] ntdll: Setup a temporary signal handler during process -@@ -27,10 +27,10 @@ index 65c65cc02d8..63a4b597872 100644 - extern void debug_init(void) DECLSPEC_HIDDEN; - extern TEB *thread_init( SIZE_T *info_size, BOOL *suspend ) DECLSPEC_HIDDEN; - diff --git a/dlls/ntdll/signal_arm.c b/dlls/ntdll/signal_arm.c --index 8ff9f66d3f0..44e3d2df523 100644 -+index a09848449a6..c6f7231fec6 100644 - --- a/dlls/ntdll/signal_arm.c - +++ b/dlls/ntdll/signal_arm.c --@@ -773,6 +773,12 @@ void signal_init_process(void) -+@@ -792,6 +792,12 @@ void signal_init_process(void) - exit(1); - } - -@@ -44,11 +44,11 @@ index 8ff9f66d3f0..44e3d2df523 100644 - /*********************************************************************** - * RtlUnwind (NTDLL.@) - diff --git a/dlls/ntdll/signal_arm64.c b/dlls/ntdll/signal_arm64.c --index 104ffbf6df9..e7c6abd0046 100644 -+index a9a58a2e7ad..a9c6614794e 100644 - --- a/dlls/ntdll/signal_arm64.c - +++ b/dlls/ntdll/signal_arm64.c --@@ -1100,6 +1100,12 @@ int CDECL __wine_set_signal_handler(unsigned int sig, wine_signal_handler wsh) -- return 0; -+@@ -1047,6 +1047,12 @@ static void usr2_handler( int signal, siginfo_t *siginfo, void *sigcontext ) -+ restore_context( context, sigcontext ); - } - - +/********************************************************************** -@@ -61,10 +61,10 @@ index 104ffbf6df9..e7c6abd0046 100644 - /********************************************************************** - * signal_init_process - diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c --index 1b0b9352a87..0fe9f7a3c84 100644 -+index 83868f25121..b048b2bc688 100644 - --- a/dlls/ntdll/signal_i386.c - +++ b/dlls/ntdll/signal_i386.c --@@ -1621,6 +1621,31 @@ static BOOL handle_interrupt( unsigned int interrupt, ucontext_t *sigcontext, st -+@@ -1575,6 +1575,31 @@ static BOOL handle_interrupt( unsigned int interrupt, ucontext_t *sigcontext, st - } - - -@@ -96,7 +96,7 @@ index 1b0b9352a87..0fe9f7a3c84 100644 - /********************************************************************** - * segv_handler - * --@@ -1948,6 +1973,34 @@ void signal_init_process(void) -+@@ -1883,6 +1908,34 @@ void signal_init_process(void) - exit(1); - } - -@@ -132,11 +132,11 @@ index 1b0b9352a87..0fe9f7a3c84 100644 - /******************************************************************* - * RtlUnwind (NTDLL.@) - diff --git a/dlls/ntdll/signal_powerpc.c b/dlls/ntdll/signal_powerpc.c --index 7e73322cbeb..07f0b89f30a 100644 -+index 879b2b58c49..f17d6267102 100644 - --- a/dlls/ntdll/signal_powerpc.c - +++ b/dlls/ntdll/signal_powerpc.c --@@ -637,6 +637,12 @@ int CDECL __wine_set_signal_handler(unsigned int sig, wine_signal_handler wsh) -- return 0; -+@@ -634,6 +634,12 @@ static void quit_handler( int signal, siginfo_t *siginfo, void *sigcontext ) -+ unix_funcs->abort_thread(0); - } - - +/********************************************************************** -@@ -147,12 +147,12 @@ index 7e73322cbeb..07f0b89f30a 100644 - +} - - /********************************************************************** -- * signal_init_process -+ * usr1_handler - diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c --index 0ccc7cbceb6..dc8a1a987c5 100644 -+index c6b0fbf618d..bb481ba1b81 100644 - --- a/dlls/ntdll/signal_x86_64.c - +++ b/dlls/ntdll/signal_x86_64.c --@@ -2849,6 +2849,12 @@ void signal_init_process(void) -+@@ -2777,6 +2777,12 @@ void signal_init_process(void) - exit(1); - } - -@@ -166,7 +166,7 @@ index 0ccc7cbceb6..dc8a1a987c5 100644 - static ULONG64 get_int_reg( CONTEXT *context, int reg ) - { - diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c --index 8918b39a9c5..a2f5df1b1c2 100644 -+index d045466f6d2..49daa33ca58 100644 - --- a/dlls/ntdll/thread.c - +++ b/dlls/ntdll/thread.c - @@ -186,6 +186,7 @@ TEB *thread_init( SIZE_T *info_size, BOOL *suspend ) -diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh -index c5ff8c0b3..9c2ce4ce0 100755 ---- a/patches/patchinstall.sh -+++ b/patches/patchinstall.sh -@@ -52,7 +52,7 @@ usage() - # Get the upstream commit sha - upstream_commit() - { -- echo "3cc3b445752902e07231900befc296f74ad6576e" -+ echo "17529582402ebe27ef975fc7dcb8353f4f95e629" - } - - # Show version information -@@ -183,7 +183,6 @@ patch_enable_all () - enable_ntdll_Junction_Points="$1" - enable_ntdll_Manifest_Range="$1" - enable_ntdll_NtAccessCheck="$1" -- enable_ntdll_NtContinue="$1" - enable_ntdll_NtDevicePath="$1" - enable_ntdll_NtQueryEaFile="$1" - enable_ntdll_NtQuerySection="$1" -@@ -648,9 +647,6 @@ patch_enable () - ntdll-NtAccessCheck) - enable_ntdll_NtAccessCheck="$2" - ;; -- ntdll-NtContinue) -- enable_ntdll_NtContinue="$2" -- ;; - ntdll-NtDevicePath) - enable_ntdll_NtDevicePath="$2" - ;; -@@ -1672,6 +1668,17 @@ if test "$enable_ntdll_Syscall_Emulation" -eq 1; then - enable_winebuild_Fake_Dlls=1 - fi - -+if test "$enable_winebuild_Fake_Dlls" -eq 1; then -+ if test "$enable_ntdll_WRITECOPY" -gt 1; then -+ abort "Patchset ntdll-WRITECOPY disabled, but winebuild-Fake_Dlls depends on that." -+ fi -+ if test "$enable_ws2_32_WSACleanup" -gt 1; then -+ abort "Patchset ws2_32-WSACleanup disabled, but winebuild-Fake_Dlls depends on that." -+ fi -+ enable_ntdll_WRITECOPY=1 -+ enable_ws2_32_WSACleanup=1 -+fi -+ - if test "$enable_ntdll_NtQueryEaFile" -eq 1; then - if test "$enable_ntdll_Junction_Points" -gt 1; then - abort "Patchset ntdll-Junction_Points disabled, but ntdll-NtQueryEaFile depends on that." -@@ -1686,24 +1693,6 @@ if test "$enable_ntdll_NtDevicePath" -eq 1; then - enable_ntdll_Pipe_SpecialCharacters=1 - fi - --if test "$enable_ntdll_NtContinue" -eq 1; then -- if test "$enable_winebuild_Fake_Dlls" -gt 1; then -- abort "Patchset winebuild-Fake_Dlls disabled, but ntdll-NtContinue depends on that." -- fi -- enable_winebuild_Fake_Dlls=1 --fi -- --if test "$enable_winebuild_Fake_Dlls" -eq 1; then -- if test "$enable_ntdll_WRITECOPY" -gt 1; then -- abort "Patchset ntdll-WRITECOPY disabled, but winebuild-Fake_Dlls depends on that." -- fi -- if test "$enable_ws2_32_WSACleanup" -gt 1; then -- abort "Patchset ws2_32-WSACleanup disabled, but winebuild-Fake_Dlls depends on that." -- fi -- enable_ntdll_WRITECOPY=1 -- enable_ws2_32_WSACleanup=1 --fi -- - if test "$enable_ntdll_Hide_Wine_Exports" -eq 1; then - if test "$enable_advapi32_Token_Integrity_Level" -gt 1; then - abort "Patchset advapi32-Token_Integrity_Level disabled, but ntdll-Hide_Wine_Exports depends on that." -@@ -3977,98 +3966,6 @@ if test "$enable_ntdll_NtAccessCheck" -eq 1; then - ) >> "$patchlist" - fi - --# Patchset ws2_32-WSACleanup --# | --# | This patchset fixes the following Wine bugs: --# | * [#18670] Properly close sockets when WSACleanup is called --# | --# | Modified files: --# | * dlls/ntdll/ntdll.spec, dlls/ntdll/server.c, dlls/ntdll/unix/loader.c, dlls/ntdll/unix/server.c, --# | dlls/ntdll/unix/unix_private.h, dlls/ntdll/unixlib.h, dlls/ws2_32/socket.c, dlls/ws2_32/tests/sock.c, --# | include/wine/server.h, server/protocol.def, server/sock.c --# | --if test "$enable_ws2_32_WSACleanup" -eq 1; then -- patch_apply ws2_32-WSACleanup/0001-ws2_32-Proper-WSACleanup-implementation-using-winese.patch -- patch_apply ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch -- ( -- printf '%s\n' '+ { "Matt Durgavich", "ws2_32: Proper WSACleanup implementation using wineserver function.", 2 },'; -- printf '%s\n' '+ { "Sebastian Lackner", "ws2_32: Invalidate client-side file descriptor cache in WSACleanup.", 1 },'; -- ) >> "$patchlist" --fi -- --# Patchset winebuild-Fake_Dlls --# | --# | This patchset has the following (direct or indirect) dependencies: --# | * ntdll-WRITECOPY, ws2_32-WSACleanup --# | --# | This patchset fixes the following Wine bugs: --# | * [#21232] Chromium-based browser engines (Chrome, Opera, Comodo Dragon, SRWare Iron) crash on startup unless '--no- --# | sandbox' is used (native API sandboxing/hooking scheme incompatible with Wine) --# | * [#42741] StarCraft I: 1.18 PTR fails to initialize ClientSdk.dll --# | * [#45349] Multiple applications and games crash due to missing support for 64-bit syscall thunks (StreetFighter V) --# | * [#45573] League of Legends 8.12+ fails to start a game (anticheat engine, hooking of syscall return instructions) --# | * [#45650] chromium 32-bit sandbox expects different syscall thunks depending on Windows version --# | --# | Modified files: --# | * dlls/dbghelp/cpu_i386.c, dlls/kernel32/tests/loader.c, dlls/krnl386.exe16/kernel.c, --# | dlls/krnl386.exe16/kernel16_private.h, dlls/krnl386.exe16/ne_module.c, dlls/krnl386.exe16/ne_segment.c, --# | dlls/krnl386.exe16/task.c, dlls/krnl386.exe16/thunk.c, dlls/krnl386.exe16/wowthunk.c, dlls/ntdll/actctx.c, --# | dlls/ntdll/directory.c, dlls/ntdll/loader.c, dlls/ntdll/locale.c, dlls/ntdll/ntdll_misc.h, dlls/ntdll/path.c, --# | dlls/ntdll/process.c, dlls/ntdll/signal_i386.c, dlls/ntdll/tests/exception.c, dlls/ntdll/thread.c, --# | dlls/ntdll/unix/thread.c, dlls/ntdll/unix/unix_private.h, dlls/ntdll/unix/virtual.c, dlls/ntdll/unixlib.h, --# | dlls/system.drv16/system.c, dlls/toolhelp.dll16/toolhelp.c, dlls/user.exe16/message.c, dlls/user.exe16/user.c, --# | dlls/user.exe16/window.c, include/winternl.h, libs/wine/loader.c, server/mapping.c, tools/winebuild/build.h, --# | tools/winebuild/import.c, tools/winebuild/parser.c, tools/winebuild/relay.c, tools/winebuild/res32.c, --# | tools/winebuild/spec16.c, tools/winebuild/spec32.c, tools/winebuild/utils.c --# | --if test "$enable_winebuild_Fake_Dlls" -eq 1; then -- patch_apply winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch -- patch_apply winebuild-Fake_Dlls/0002-krnl386.exe16-Do-not-abuse-WOW32Reserved-field-for-1.patch -- patch_apply winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch -- patch_apply winebuild-Fake_Dlls/0004-winebuild-Use-multipass-label-system-to-generate-fak.patch -- patch_apply winebuild-Fake_Dlls/0005-winebuild-Add-stub-functions-in-fake-dlls.patch -- patch_apply winebuild-Fake_Dlls/0006-winebuild-Add-syscall-thunks-in-fake-dlls.patch -- patch_apply winebuild-Fake_Dlls/0007-winebuild-Fix-size-of-relocation-information-in-fake.patch -- patch_apply winebuild-Fake_Dlls/0008-winebuild-Try-to-make-sure-RVA-matches-between-fake-.patch -- patch_apply winebuild-Fake_Dlls/0009-libs-wine-Use-same-file-alignment-for-fake-and-built.patch -- patch_apply winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch -- patch_apply winebuild-Fake_Dlls/0011-ntdll-Call-NtOpenFile-through-syscall-thunk.patch -- ( -- printf '%s\n' '+ { "Michael Müller", "kernel32/tests: Add basic tests for fake dlls.", 1 },'; -- printf '%s\n' '+ { "Sebastian Lackner", "krnl386.exe16: Do not abuse WOW32Reserved field for 16-bit stack address.", 1 },'; -- printf '%s\n' '+ { "Michael Müller", "winebuild: Generate syscall thunks for ntdll exports.", 1 },'; -- printf '%s\n' '+ { "Michael Müller", "winebuild: Use multipass label system to generate fake dlls.", 1 },'; -- printf '%s\n' '+ { "Michael Müller", "winebuild: Add stub functions in fake dlls.", 1 },'; -- printf '%s\n' '+ { "Michael Müller", "winebuild: Add syscall thunks in fake dlls.", 1 },'; -- printf '%s\n' '+ { "Michael Müller", "winebuild: Fix size of relocation information in fake dlls.", 1 },'; -- printf '%s\n' '+ { "Michael Müller", "winebuild: Try to make sure RVA matches between fake and builtin DLLs.", 1 },'; -- printf '%s\n' '+ { "Michael Müller", "libs/wine: Use same file alignment for fake and builtin DLLs.", 1 },'; -- printf '%s\n' '+ { "Michael Müller", "tools/winebuild: Add syscall thunks for 64 bit.", 1 },'; -- printf '%s\n' '+ { "Paul Gofman", "ntdll: Call NtOpenFile through syscall thunk.", 1 },'; -- ) >> "$patchlist" --fi -- --# Patchset ntdll-NtContinue --# | --# | This patchset has the following (direct or indirect) dependencies: --# | * ntdll-WRITECOPY, ws2_32-WSACleanup, winebuild-Fake_Dlls --# | --# | This patchset fixes the following Wine bugs: --# | * [#31910] Add stub for NtContinue --# | * [#45572] League of Legends 8.12+ fails to start a game (anticheat engine, hooking of NtContinue) --# | --# | Modified files: --# | * dlls/ntdll/exception.c, dlls/ntdll/ntdll.spec, dlls/ntdll/signal_i386.c, dlls/ntdll/signal_x86_64.c --# | --if test "$enable_ntdll_NtContinue" -eq 1; then -- patch_apply ntdll-NtContinue/0001-ntdll-Add-stub-for-NtContinue.patch -- patch_apply ntdll-NtContinue/0002-Use-NtContinue-to-continue-execution-after-exception.patch -- ( -- printf '%s\n' '+ { "Michael Müller", "ntdll: Add stub for NtContinue.", 1 },'; -- printf '%s\n' '+ { "Andrew Wesie", "ntdll: Use NtContinue to continue execution after exceptions.", 1 },'; -- ) >> "$patchlist" --fi -- - # Patchset ntdll-Pipe_SpecialCharacters - # | - # | This patchset fixes the following Wine bugs: -@@ -4213,6 +4110,77 @@ if test "$enable_ntdll_Status_Mapping" -eq 1; then - ) >> "$patchlist" - fi - -+# Patchset ws2_32-WSACleanup -+# | -+# | This patchset fixes the following Wine bugs: -+# | * [#18670] Properly close sockets when WSACleanup is called -+# | -+# | Modified files: -+# | * dlls/ntdll/ntdll.spec, dlls/ntdll/server.c, dlls/ntdll/unix/loader.c, dlls/ntdll/unix/server.c, -+# | dlls/ntdll/unix/unix_private.h, dlls/ntdll/unixlib.h, dlls/ws2_32/socket.c, dlls/ws2_32/tests/sock.c, -+# | include/wine/server.h, server/protocol.def, server/sock.c -+# | -+if test "$enable_ws2_32_WSACleanup" -eq 1; then -+ patch_apply ws2_32-WSACleanup/0001-ws2_32-Proper-WSACleanup-implementation-using-winese.patch -+ patch_apply ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch -+ ( -+ printf '%s\n' '+ { "Matt Durgavich", "ws2_32: Proper WSACleanup implementation using wineserver function.", 2 },'; -+ printf '%s\n' '+ { "Sebastian Lackner", "ws2_32: Invalidate client-side file descriptor cache in WSACleanup.", 1 },'; -+ ) >> "$patchlist" -+fi -+ -+# Patchset winebuild-Fake_Dlls -+# | -+# | This patchset has the following (direct or indirect) dependencies: -+# | * ntdll-WRITECOPY, ws2_32-WSACleanup -+# | -+# | This patchset fixes the following Wine bugs: -+# | * [#21232] Chromium-based browser engines (Chrome, Opera, Comodo Dragon, SRWare Iron) crash on startup unless '--no- -+# | sandbox' is used (native API sandboxing/hooking scheme incompatible with Wine) -+# | * [#42741] StarCraft I: 1.18 PTR fails to initialize ClientSdk.dll -+# | * [#45349] Multiple applications and games crash due to missing support for 64-bit syscall thunks (StreetFighter V) -+# | * [#45573] League of Legends 8.12+ fails to start a game (anticheat engine, hooking of syscall return instructions) -+# | * [#45650] chromium 32-bit sandbox expects different syscall thunks depending on Windows version -+# | -+# | Modified files: -+# | * dlls/dbghelp/cpu_i386.c, dlls/kernel32/tests/loader.c, dlls/krnl386.exe16/kernel.c, -+# | dlls/krnl386.exe16/kernel16_private.h, dlls/krnl386.exe16/ne_module.c, dlls/krnl386.exe16/ne_segment.c, -+# | dlls/krnl386.exe16/task.c, dlls/krnl386.exe16/thunk.c, dlls/krnl386.exe16/wowthunk.c, dlls/ntdll/actctx.c, -+# | dlls/ntdll/directory.c, dlls/ntdll/loader.c, dlls/ntdll/locale.c, dlls/ntdll/ntdll_misc.h, dlls/ntdll/path.c, -+# | dlls/ntdll/process.c, dlls/ntdll/signal_i386.c, dlls/ntdll/tests/exception.c, dlls/ntdll/thread.c, -+# | dlls/ntdll/unix/thread.c, dlls/ntdll/unix/unix_private.h, dlls/ntdll/unix/virtual.c, dlls/ntdll/unixlib.h, -+# | dlls/system.drv16/system.c, dlls/toolhelp.dll16/toolhelp.c, dlls/user.exe16/message.c, dlls/user.exe16/user.c, -+# | dlls/user.exe16/window.c, include/winternl.h, libs/wine/loader.c, server/mapping.c, tools/winebuild/build.h, -+# | tools/winebuild/import.c, tools/winebuild/parser.c, tools/winebuild/relay.c, tools/winebuild/res32.c, -+# | tools/winebuild/spec16.c, tools/winebuild/spec32.c, tools/winebuild/utils.c -+# | -+if test "$enable_winebuild_Fake_Dlls" -eq 1; then -+ patch_apply winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch -+ patch_apply winebuild-Fake_Dlls/0002-krnl386.exe16-Do-not-abuse-WOW32Reserved-field-for-1.patch -+ patch_apply winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch -+ patch_apply winebuild-Fake_Dlls/0004-winebuild-Use-multipass-label-system-to-generate-fak.patch -+ patch_apply winebuild-Fake_Dlls/0005-winebuild-Add-stub-functions-in-fake-dlls.patch -+ patch_apply winebuild-Fake_Dlls/0006-winebuild-Add-syscall-thunks-in-fake-dlls.patch -+ patch_apply winebuild-Fake_Dlls/0007-winebuild-Fix-size-of-relocation-information-in-fake.patch -+ patch_apply winebuild-Fake_Dlls/0008-winebuild-Try-to-make-sure-RVA-matches-between-fake-.patch -+ patch_apply winebuild-Fake_Dlls/0009-libs-wine-Use-same-file-alignment-for-fake-and-built.patch -+ patch_apply winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch -+ patch_apply winebuild-Fake_Dlls/0011-ntdll-Call-NtOpenFile-through-syscall-thunk.patch -+ ( -+ printf '%s\n' '+ { "Michael Müller", "kernel32/tests: Add basic tests for fake dlls.", 1 },'; -+ printf '%s\n' '+ { "Sebastian Lackner", "krnl386.exe16: Do not abuse WOW32Reserved field for 16-bit stack address.", 1 },'; -+ printf '%s\n' '+ { "Michael Müller", "winebuild: Generate syscall thunks for ntdll exports.", 1 },'; -+ printf '%s\n' '+ { "Michael Müller", "winebuild: Use multipass label system to generate fake dlls.", 1 },'; -+ printf '%s\n' '+ { "Michael Müller", "winebuild: Add stub functions in fake dlls.", 1 },'; -+ printf '%s\n' '+ { "Michael Müller", "winebuild: Add syscall thunks in fake dlls.", 1 },'; -+ printf '%s\n' '+ { "Michael Müller", "winebuild: Fix size of relocation information in fake dlls.", 1 },'; -+ printf '%s\n' '+ { "Michael Müller", "winebuild: Try to make sure RVA matches between fake and builtin DLLs.", 1 },'; -+ printf '%s\n' '+ { "Michael Müller", "libs/wine: Use same file alignment for fake and builtin DLLs.", 1 },'; -+ printf '%s\n' '+ { "Michael Müller", "tools/winebuild: Add syscall thunks for 64 bit.", 1 },'; -+ printf '%s\n' '+ { "Paul Gofman", "ntdll: Call NtOpenFile through syscall thunk.", 1 },'; -+ ) >> "$patchlist" -+fi -+ - # Patchset ntdll-Syscall_Emulation - # | - # | This patchset has the following (direct or indirect) dependencies: -diff --git a/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch b/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch -index 751b497da..684c28e16 100644 ---- a/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch -+++ b/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch -@@ -1,4 +1,4 @@ --From 1fec139d96f32869fc0c8d15219fff493d9951d8 Mon Sep 17 00:00:00 2001 -+From e60eb454ecfb4c043a585c1ecd2970c92be1c664 Mon Sep 17 00:00:00 2001 - From: =?UTF-8?q?Michael=20M=C3=BCller?= - Date: Thu, 11 May 2017 05:32:55 +0200 - Subject: [PATCH] winebuild: Generate syscall thunks for ntdll exports. -@@ -22,7 +22,7 @@ Based on a patch by Erich E. Hoover. - 14 files changed, 214 insertions(+), 32 deletions(-) - - diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c --index 45d32399adf..b42cff8bcd4 100644 -+index ffbc9fabb23..a633099877d 100644 - --- a/dlls/ntdll/loader.c - +++ b/dlls/ntdll/loader.c - @@ -3810,6 +3810,7 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule) -@@ -33,7 +33,7 @@ index 45d32399adf..b42cff8bcd4 100644 - - /****************************************************************** - * LdrInitializeThunk (NTDLL.@) --@@ -3827,6 +3828,8 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow -+@@ -3826,6 +3827,8 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow - WINE_MODREF *wm; - LPCWSTR load_path = NtCurrentTeb()->Peb->ProcessParameters->DllPath.Buffer; - -@@ -43,19 +43,19 @@ index 45d32399adf..b42cff8bcd4 100644 - - if (process_detaching) return; - diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c --index be88d9bf3c7..84ab7991886 100644 -+index 3be6342a945..85329be4f42 100644 - --- a/dlls/ntdll/signal_i386.c - +++ b/dlls/ntdll/signal_i386.c --@@ -448,6 +448,8 @@ static ULONG first_ldt_entry = 32; -+@@ -444,6 +444,8 @@ struct stack_layout - -- static wine_signal_handler handlers[256]; -+ static ULONG first_ldt_entry = 32; - - +extern NTSTATUS WINAPI __syscall_NtGetContextThread( HANDLE handle, CONTEXT *context ); - + - enum i386_trap_code - { - TRAP_x86_UNKNOWN = -1, /* Unknown fault (TRAP_sig not defined) */ --@@ -1159,7 +1161,7 @@ NTSTATUS CDECL DECLSPEC_HIDDEN __regs_NtGetContextThread( DWORD edi, DWORD esi, -+@@ -1127,7 +1129,7 @@ NTSTATUS CDECL DECLSPEC_HIDDEN __regs_NtGetContextThread( DWORD edi, DWORD esi, - { - context->Ebp = ebp; - context->Esp = (DWORD)&retaddr; -@@ -78,7 +78,7 @@ index a5e6faa461a..51938bf84cc 100644 - ok( context.SegCs == LOWORD(expect.SegCs), "wrong SegCs %08x/%08x\n", context.SegCs, expect.SegCs ); - ok( context.SegDs == LOWORD(expect.SegDs), "wrong SegDs %08x/%08x\n", context.SegDs, expect.SegDs ); - diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c --index 79d13a01a86..94eb6d1252d 100644 -+index 49daa33ca58..17b5d40215a 100644 - --- a/dlls/ntdll/thread.c - +++ b/dlls/ntdll/thread.c - @@ -173,6 +173,7 @@ int __cdecl __wine_dbg_output( const char *str ) -@@ -99,10 +99,10 @@ index 79d13a01a86..94eb6d1252d 100644 - peb = teb->Peb; - peb->FastPebLock = &peb_lock; - diff --git a/dlls/ntdll/unix/thread.c b/dlls/ntdll/unix/thread.c --index b6458da61ad..a158ec20a6a 100644 -+index d4b7a51a627..bdc87e4b9cf 100644 - --- a/dlls/ntdll/unix/thread.c - +++ b/dlls/ntdll/unix/thread.c --@@ -83,7 +83,7 @@ static void pthread_exit_wrapper( int status ) -+@@ -85,7 +85,7 @@ static void pthread_exit_wrapper( int status ) - * init_threading - */ - TEB * CDECL init_threading( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZE_T *size, BOOL *suspend, -@@ -111,7 +111,7 @@ index b6458da61ad..a158ec20a6a 100644 - { - TEB *teb; - SIZE_T info_size; --@@ -95,6 +95,7 @@ TEB * CDECL init_threading( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZ -+@@ -97,6 +97,7 @@ TEB * CDECL init_threading( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZ - nb_threads = nb_threads_ptr; - - teb = virtual_alloc_first_teb(); -@@ -120,10 +120,10 @@ index b6458da61ad..a158ec20a6a 100644 - thread_data->request_fd = -1; - thread_data->reply_fd = -1; - diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h --index 880e3aacf33..6c7b961e95a 100644 -+index 19104f0f5cc..bdf8bc99e3f 100644 - --- a/dlls/ntdll/unix/unix_private.h - +++ b/dlls/ntdll/unix/unix_private.h --@@ -96,7 +96,7 @@ extern void CDECL server_release_fd( HANDLE handle, int unix_fd ) DECLSPEC_HIDDE -+@@ -101,7 +101,7 @@ extern void CDECL server_release_fd( HANDLE handle, int unix_fd ) DECLSPEC_HIDDE - extern void CDECL server_init_process_done(void) DECLSPEC_HIDDEN; - extern TEB * CDECL init_threading( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZE_T *size, - BOOL *suspend, unsigned int *cpus, BOOL *wow64, -@@ -133,19 +133,19 @@ index 880e3aacf33..6c7b961e95a 100644 - extern void CDECL DECLSPEC_NORETURN abort_thread( int status ) DECLSPEC_HIDDEN; - extern void CDECL DECLSPEC_NORETURN exit_thread( int status ) DECLSPEC_HIDDEN; - diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h --index 83c9f3a163b..63728b1c071 100644 -+index 6a751993421..4e39ed53786 100644 - --- a/dlls/ntdll/unixlib.h - +++ b/dlls/ntdll/unixlib.h - @@ -28,7 +28,7 @@ struct ldt_copy; - struct msghdr; - - /* increment this when you change the function table */ ---#define NTDLL_UNIXLIB_VERSION 31 --+#define NTDLL_UNIXLIB_VERSION 32 -+-#define NTDLL_UNIXLIB_VERSION 33 -++#define NTDLL_UNIXLIB_VERSION 34 - - struct unix_funcs - { --@@ -172,7 +172,7 @@ struct unix_funcs -+@@ -174,7 +174,7 @@ struct unix_funcs - - /* thread/process functions */ - TEB * (CDECL *init_threading)( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZE_T *size, -diff --git a/patches/ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch b/patches/ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch -index 25c315648..0861f99c0 100644 ---- a/patches/ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch -+++ b/patches/ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch -@@ -1,4 +1,4 @@ --From 1bb20ff5903d8d5e81e8a2b7b22bf67b189b16ec Mon Sep 17 00:00:00 2001 -+From 20661308a50202350a3a2887cbd558b1e931aad1 Mon Sep 17 00:00:00 2001 - From: Sebastian Lackner - Date: Sun, 6 Sep 2015 12:41:17 +0200 - Subject: [PATCH] ws2_32: Invalidate client-side file descriptor cache in -@@ -17,7 +17,7 @@ Subject: [PATCH] ws2_32: Invalidate client-side file descriptor cache in - 9 files changed, 36 insertions(+), 5 deletions(-) - - diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec --index c4d78128758..3d6c8850086 100644 -+index ce5c580bd54..279845ae830 100644 - --- a/dlls/ntdll/ntdll.spec - +++ b/dlls/ntdll/ntdll.spec - @@ -1576,6 +1576,7 @@ -@@ -48,10 +48,10 @@ index 6fb86a68d6f..2f95e190963 100644 - /*********************************************************************** - * server_init_process - diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c --index b5ee692024c..d8827b147df 100644 -+index 618e3d6adb3..bdda739897b 100644 - --- a/dlls/ntdll/unix/loader.c - +++ b/dlls/ntdll/unix/loader.c --@@ -1074,6 +1074,7 @@ static struct unix_funcs unix_funcs = -+@@ -1076,6 +1076,7 @@ static struct unix_funcs unix_funcs = - server_select, - server_wait, - server_send_fd, -@@ -91,10 +91,10 @@ index fb3f98dd579..0754928cfe8 100644 - /*********************************************************************** - * server_get_unix_fd - diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h --index a422fd825ed..880e3aacf33 100644 -+index 03b92f9e912..19104f0f5cc 100644 - --- a/dlls/ntdll/unix/unix_private.h - +++ b/dlls/ntdll/unix/unix_private.h --@@ -84,6 +84,7 @@ extern unsigned int CDECL server_select( const select_op_t *select_op, data_size -+@@ -89,6 +89,7 @@ extern unsigned int CDECL server_select( const select_op_t *select_op, data_size - extern unsigned int CDECL server_wait( const select_op_t *select_op, data_size_t size, UINT flags, - const LARGE_INTEGER *timeout ) DECLSPEC_HIDDEN; - extern void CDECL server_send_fd( int fd ) DECLSPEC_HIDDEN; -@@ -103,19 +103,19 @@ index a422fd825ed..880e3aacf33 100644 - int *needs_close, enum server_fd_type *type, - unsigned int *options ) DECLSPEC_HIDDEN; - diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h --index 58bdad19397..83c9f3a163b 100644 -+index 017a0a71b3f..6a751993421 100644 - --- a/dlls/ntdll/unixlib.h - +++ b/dlls/ntdll/unixlib.h - @@ -28,7 +28,7 @@ struct ldt_copy; - struct msghdr; - - /* increment this when you change the function table */ ---#define NTDLL_UNIXLIB_VERSION 30 --+#define NTDLL_UNIXLIB_VERSION 31 -+-#define NTDLL_UNIXLIB_VERSION 32 -++#define NTDLL_UNIXLIB_VERSION 33 - - struct unix_funcs - { --@@ -187,6 +187,7 @@ struct unix_funcs -+@@ -189,6 +189,7 @@ struct unix_funcs - unsigned int (CDECL *server_wait)( const select_op_t *select_op, data_size_t size, UINT flags, - const LARGE_INTEGER *timeout ); - void (CDECL *server_send_fd)( int fd ); -diff --git a/staging/upstream-commit b/staging/upstream-commit -index f51939b28..8b37e5310 100644 ---- a/staging/upstream-commit -+++ b/staging/upstream-commit -@@ -1 +1 @@ --3cc3b445752902e07231900befc296f74ad6576e -+17529582402ebe27ef975fc7dcb8353f4f95e629 diff --git a/wine-staging-5.10-ntdll-arm1.patch b/wine-staging-5.10-ntdll-arm1.patch deleted file mode 100644 index 56a6f4f..0000000 --- a/wine-staging-5.10-ntdll-arm1.patch +++ /dev/null @@ -1,950 +0,0 @@ -From 5306e1df11e772fe8125fcd5857e52cf1f83430b Mon Sep 17 00:00:00 2001 -From: Paul Gofman -Date: Thu, 11 Jun 2020 15:23:12 +0300 -Subject: [PATCH] Updated winebuild-Fake_Dlls patchset. - -Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49357 ---- - ...-tests-Add-basic-tests-for-fake-dlls.patch | 8 +-- - ...-not-abuse-WOW32Reserved-field-for-1.patch | 36 ++++++------- - ...ate-syscall-thunks-for-ntdll-exports.patch | 53 +++++++++++-------- - ...ltipass-label-system-to-generate-fak.patch | 10 ++-- - ...uild-Add-stub-functions-in-fake-dlls.patch | 36 ++++++------- - ...uild-Add-syscall-thunks-in-fake-dlls.patch | 8 +-- - ...ze-of-relocation-information-in-fake.patch | 4 +- - ...-make-sure-RVA-matches-between-fake-.patch | 10 ++-- - ...me-file-alignment-for-fake-and-built.patch | 8 +-- - ...ebuild-Add-syscall-thunks-for-64-bit.patch | 39 ++++++-------- - ...all-NtOpenFile-through-syscall-thunk.patch | 32 +++++------ - 11 files changed, 123 insertions(+), 121 deletions(-) - -diff --git a/patches/winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch b/patches/winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch -index ef056cfcf..21d69fd59 100644 ---- a/patches/winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch -+++ b/patches/winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch -@@ -1,4 +1,4 @@ --From de68d5c0e6bd728788bbec09100ea59802b8ff13 Mon Sep 17 00:00:00 2001 -+From 8b88aa45856684e63786425f72886f2ac57b3630 Mon Sep 17 00:00:00 2001 - From: =?UTF-8?q?Michael=20M=C3=BCller?= - Date: Thu, 25 May 2017 07:02:46 +0200 - Subject: [PATCH] kernel32/tests: Add basic tests for fake dlls. -@@ -8,10 +8,10 @@ Subject: [PATCH] kernel32/tests: Add basic tests for fake dlls. - 1 file changed, 91 insertions(+) - - diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c --index 5474d543248..4e7a15970cb 100644 -+index ef8c47c04f1a..efd5a25a432d 100644 - --- a/dlls/kernel32/tests/loader.c - +++ b/dlls/kernel32/tests/loader.c --@@ -1535,6 +1535,96 @@ static void test_filenames(void) -+@@ -1572,6 +1572,96 @@ static void test_filenames(void) - DeleteFileA( long_path ); - } - -@@ -108,7 +108,7 @@ index 5474d543248..4e7a15970cb 100644 - /* Verify linking style of import descriptors */ - static void test_ImportDescriptors(void) - { --@@ -3997,6 +4087,7 @@ START_TEST(loader) -+@@ -4094,6 +4184,7 @@ START_TEST(loader) - return; - } - -diff --git a/patches/winebuild-Fake_Dlls/0002-krnl386.exe16-Do-not-abuse-WOW32Reserved-field-for-1.patch b/patches/winebuild-Fake_Dlls/0002-krnl386.exe16-Do-not-abuse-WOW32Reserved-field-for-1.patch -index 15aaa85df..ae98c2798 100644 ---- a/patches/winebuild-Fake_Dlls/0002-krnl386.exe16-Do-not-abuse-WOW32Reserved-field-for-1.patch -+++ b/patches/winebuild-Fake_Dlls/0002-krnl386.exe16-Do-not-abuse-WOW32Reserved-field-for-1.patch -@@ -1,4 +1,4 @@ --From 25d08438aba3dee16c79ce3168a4f76f39816fad Mon Sep 17 00:00:00 2001 -+From 7af81866f286e60f601d1c3f9bfe8592a794d21d Mon Sep 17 00:00:00 2001 - From: Sebastian Lackner - Date: Tue, 16 May 2017 04:37:52 +0200 - Subject: [PATCH] krnl386.exe16: Do not abuse WOW32Reserved field for 16-bit -@@ -24,7 +24,7 @@ Subject: [PATCH] krnl386.exe16: Do not abuse WOW32Reserved field for 16-bit - 16 files changed, 78 insertions(+), 77 deletions(-) - - diff --git a/dlls/dbghelp/cpu_i386.c b/dlls/dbghelp/cpu_i386.c --index fd808a0d324..7d6723977a2 100644 -+index fd808a0d3248..7d6723977a29 100644 - --- a/dlls/dbghelp/cpu_i386.c - +++ b/dlls/dbghelp/cpu_i386.c - @@ -213,16 +213,16 @@ static BOOL i386_stack_walk(struct cpu_stack_walk *csw, STACKFRAME64 *frame, -@@ -48,7 +48,7 @@ index fd808a0d324..7d6723977a2 100644 - } - next_switch = p; - diff --git a/dlls/krnl386.exe16/kernel.c b/dlls/krnl386.exe16/kernel.c --index 07a57d0d937..89ea5c042e7 100644 -+index 07a57d0d9372..89ea5c042e71 100644 - --- a/dlls/krnl386.exe16/kernel.c - +++ b/dlls/krnl386.exe16/kernel.c - @@ -47,8 +47,8 @@ static void thread_attach(void) -@@ -72,7 +72,7 @@ index 07a57d0d937..89ea5c042e7 100644 - } - - diff --git a/dlls/krnl386.exe16/kernel16_private.h b/dlls/krnl386.exe16/kernel16_private.h --index f15934daa0e..9f939a9d5ba 100644 -+index f15934daa0e4..9f939a9d5bac 100644 - --- a/dlls/krnl386.exe16/kernel16_private.h - +++ b/dlls/krnl386.exe16/kernel16_private.h - @@ -169,7 +169,7 @@ extern THHOOK *pThhook DECLSPEC_HIDDEN; -@@ -119,7 +119,7 @@ index f15934daa0e..9f939a9d5ba 100644 - - static inline struct kernel_thread_data *kernel_get_thread_data(void) - diff --git a/dlls/krnl386.exe16/ne_module.c b/dlls/krnl386.exe16/ne_module.c --index f1e1a14dd67..c951a18f869 100644 -+index f1e1a14dd679..c951a18f8699 100644 - --- a/dlls/krnl386.exe16/ne_module.c - +++ b/dlls/krnl386.exe16/ne_module.c - @@ -1208,7 +1208,7 @@ DWORD NE_StartTask(void) -@@ -143,7 +143,7 @@ index f1e1a14dd67..c951a18f869 100644 - WOWCallback16Ex( 0, WCB16_REGS, 0, NULL, (DWORD *)&context ); - ExitThread( LOWORD(context.Eax) ); - diff --git a/dlls/krnl386.exe16/ne_segment.c b/dlls/krnl386.exe16/ne_segment.c --index aa886148029..70eb3360914 100644 -+index aa8861480298..70eb33609144 100644 - --- a/dlls/krnl386.exe16/ne_segment.c - +++ b/dlls/krnl386.exe16/ne_segment.c - @@ -370,9 +370,9 @@ BOOL NE_LoadSegment( NE_MODULE *pModule, WORD segnum ) -@@ -209,7 +209,7 @@ index aa886148029..70eb3360914 100644 - args[7] = HIWORD(dwReason); - args[6] = LOWORD(dwReason); - diff --git a/dlls/krnl386.exe16/task.c b/dlls/krnl386.exe16/task.c --index 39a60cb97a9..21de62c5a01 100644 -+index 39a60cb97a94..21de62c5a015 100644 - --- a/dlls/krnl386.exe16/task.c - +++ b/dlls/krnl386.exe16/task.c - @@ -624,7 +624,7 @@ void WINAPI InitTask16( CONTEXT *context ) -@@ -267,7 +267,7 @@ index 39a60cb97a9..21de62c5a01 100644 - context->Esp = OFFSETOF(pData->old_ss_sp) - sizeof(DWORD); /*ret addr*/ - pData->old_ss_sp = 0; - diff --git a/dlls/krnl386.exe16/thunk.c b/dlls/krnl386.exe16/thunk.c --index e913a08f88c..ecc94371488 100644 -+index e913a08f88cc..ecc94371488f 100644 - --- a/dlls/krnl386.exe16/thunk.c - +++ b/dlls/krnl386.exe16/thunk.c - @@ -429,7 +429,7 @@ void WINAPI __regs_QT_Thunk( CONTEXT *context ) -@@ -413,7 +413,7 @@ index e913a08f88c..ecc94371488 100644 - if (OFFSETOF(frame32->frame16) > lpbuf[2]) - { - diff --git a/dlls/krnl386.exe16/wowthunk.c b/dlls/krnl386.exe16/wowthunk.c --index 2dddbf93289..3a4b104a673 100644 -+index 2dddbf932898..3a4b104a673f 100644 - --- a/dlls/krnl386.exe16/wowthunk.c - +++ b/dlls/krnl386.exe16/wowthunk.c - @@ -127,7 +127,7 @@ static DWORD call16_handler( EXCEPTION_RECORD *record, EXCEPTION_REGISTRATION_RE -@@ -473,7 +473,7 @@ index 2dddbf93289..3a4b104a673 100644 - } - } - diff --git a/dlls/ntdll/unix/signal_i386.c b/dlls/ntdll/unix/signal_i386.c --index 2928f314358..138f56b94eb 100644 -+index ac34f86a5883..55f1e2ce4b23 100644 - --- a/dlls/ntdll/unix/signal_i386.c - +++ b/dlls/ntdll/unix/signal_i386.c - @@ -645,7 +645,7 @@ static inline void *init_handler( const ucontext_t *sigcontext ) -@@ -486,7 +486,7 @@ index 2928f314358..138f56b94eb 100644 - return (void *)(ESP_sig(sigcontext) & ~3); - } - diff --git a/dlls/system.drv16/system.c b/dlls/system.drv16/system.c --index b6fd51c05f0..695ad7b6003 100644 -+index b6fd51c05f01..695ad7b60039 100644 - --- a/dlls/system.drv16/system.c - +++ b/dlls/system.drv16/system.c - @@ -70,7 +70,7 @@ static void CALLBACK SYSTEM_TimerTick( LPVOID arg, DWORD low, DWORD high ) -@@ -499,7 +499,7 @@ index b6fd51c05f0..695ad7b6003 100644 - - WOWCallback16Ex( 0, WCB16_REGS, 0, NULL, (DWORD *)&context ); - diff --git a/dlls/toolhelp.dll16/toolhelp.c b/dlls/toolhelp.dll16/toolhelp.c --index 578d1ae7fab..1077f0b0367 100644 -+index 578d1ae7faba..1077f0b03672 100644 - --- a/dlls/toolhelp.dll16/toolhelp.c - +++ b/dlls/toolhelp.dll16/toolhelp.c - @@ -491,8 +491,8 @@ BOOL16 WINAPI TaskNext16( TASKENTRY *lpte ) -@@ -523,7 +523,7 @@ index 578d1ae7fab..1077f0b0367 100644 - WORD user = LoadLibrary16( "USER.EXE" ); - WORD gdi = LoadLibrary16( "GDI.EXE" ); - diff --git a/dlls/user.exe16/message.c b/dlls/user.exe16/message.c --index e3ca3fd779d..fa9388ceaa1 100644 -+index e3ca3fd779d3..fa9388ceaa11 100644 - --- a/dlls/user.exe16/message.c - +++ b/dlls/user.exe16/message.c - @@ -240,11 +240,11 @@ static LRESULT call_window_proc16( HWND16 hwnd, UINT16 msg, WPARAM16 wParam, LPA -@@ -595,7 +595,7 @@ index e3ca3fd779d..fa9388ceaa1 100644 - - stack16->ds = GetWindowLongPtrW( hwnd, GWLP_HINSTANCE ); - diff --git a/dlls/user.exe16/user.c b/dlls/user.exe16/user.c --index 27b92793836..deec596f766 100644 -+index 27b92793836a..deec596f7660 100644 - --- a/dlls/user.exe16/user.c - +++ b/dlls/user.exe16/user.c - @@ -1394,7 +1394,7 @@ DWORD WINAPI GetTabbedTextExtent16( HDC16 hdc, LPCSTR lpstr, INT16 count, -@@ -617,7 +617,7 @@ index 27b92793836..deec596f766 100644 - int userPercent, gdiPercent; - - diff --git a/dlls/user.exe16/window.c b/dlls/user.exe16/window.c --index bf86719325b..1f53bdc9540 100644 -+index bf86719325b8..1f53bdc95402 100644 - --- a/dlls/user.exe16/window.c - +++ b/dlls/user.exe16/window.c - @@ -456,7 +456,7 @@ HWND16 WINAPI GetParent16( HWND16 hwnd ) -@@ -630,10 +630,10 @@ index bf86719325b..1f53bdc9540 100644 - /* don't use WIN_Handle32 here, we don't care about the full handle */ - return IsWindow( HWND_32(hwnd) ); - diff --git a/include/winternl.h b/include/winternl.h --index acbce20c212..68c1ae3fd82 100644 -+index 87eb0d32926b..2d9f54b89d8c 100644 - --- a/include/winternl.h - +++ b/include/winternl.h --@@ -362,7 +362,7 @@ typedef struct _TEB -+@@ -363,7 +363,7 @@ typedef struct _TEB - PVOID WOW32Reserved; /* 0c0/0100 */ - ULONG CurrentLocale; /* 0c4/0108 */ - ULONG FpSoftwareStatusRegister; /* 0c8/010c */ -@@ -643,7 +643,7 @@ index acbce20c212..68c1ae3fd82 100644 - ACTIVATION_CONTEXT_STACK ActivationContextStack; /* 1a8/02c8 */ - BYTE SpareBytes1[24]; /* 1bc/02e8 */ - diff --git a/tools/winebuild/relay.c b/tools/winebuild/relay.c --index 29d0a74c833..01bb97e02b4 100644 -+index 29d0a74c833c..01bb97e02b4c 100644 - --- a/tools/winebuild/relay.c - +++ b/tools/winebuild/relay.c - @@ -31,7 +31,7 @@ -diff --git a/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch b/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch -index 547e27f8f..a0487f91b 100644 ---- a/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch -+++ b/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch -@@ -1,4 +1,4 @@ --From 0c4d2573b123f2198f74292133b7a6eefa472620 Mon Sep 17 00:00:00 2001 -+From d8ff827f7a94aee2bed89c620120af0a148ca81c Mon Sep 17 00:00:00 2001 - From: =?UTF-8?q?Michael=20M=C3=BCller?= - Date: Thu, 11 May 2017 05:32:55 +0200 - Subject: [PATCH] winebuild: Generate syscall thunks for ntdll exports. -@@ -8,7 +8,7 @@ Based on a patch by Erich E. Hoover. - dlls/ntdll/loader.c | 3 + - dlls/ntdll/signal_i386.c | 4 +- - dlls/ntdll/tests/exception.c | 2 + -- dlls/ntdll/thread.c | 3 +- -+ dlls/ntdll/thread.c | 10 +++- - dlls/ntdll/unix/thread.c | 3 +- - dlls/ntdll/unix/unix_private.h | 2 +- - dlls/ntdll/unixlib.h | 4 +- -@@ -19,13 +19,13 @@ Based on a patch by Erich E. Hoover. - tools/winebuild/spec16.c | 22 +------ - tools/winebuild/spec32.c | 104 +++++++++++++++++++++++++++++++++ - tools/winebuild/utils.c | 21 +++++++ -- 14 files changed, 214 insertions(+), 32 deletions(-) -+ 14 files changed, 221 insertions(+), 32 deletions(-) - - diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c --index 0c8f05285c4..26c540050dc 100644 -+index 2553b0b9d397..cac6aae2f3dd 100644 - --- a/dlls/ntdll/loader.c - +++ b/dlls/ntdll/loader.c --@@ -3810,6 +3810,7 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule) -+@@ -4021,6 +4021,7 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule) - return ret; - } - -@@ -33,7 +33,7 @@ index 0c8f05285c4..26c540050dc 100644 - - /****************************************************************** - * LdrInitializeThunk (NTDLL.@) --@@ -3826,6 +3827,8 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow -+@@ -4038,6 +4039,8 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow - WINE_MODREF *wm; - LPCWSTR load_path = NtCurrentTeb()->Peb->ProcessParameters->DllPath.Buffer; - -@@ -43,7 +43,7 @@ index 0c8f05285c4..26c540050dc 100644 - - RtlEnterCriticalSection( &loader_section ); - diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c --index 21cc1b3ead4..18be5693a7d 100644 -+index 21cc1b3ead40..18be5693a7d2 100644 - --- a/dlls/ntdll/signal_i386.c - +++ b/dlls/ntdll/signal_i386.c - @@ -346,6 +346,8 @@ __ASM_STDCALL_FUNC( RtlCaptureContext, 4, -@@ -65,7 +65,7 @@ index 21cc1b3ead4..18be5693a7d 100644 - } - return unix_funcs->NtGetContextThread( handle, context ); - diff --git a/dlls/ntdll/tests/exception.c b/dlls/ntdll/tests/exception.c --index a5e6faa461a..51938bf84cc 100644 -+index 1389a542cdee..54796476e25b 100644 - --- a/dlls/ntdll/tests/exception.c - +++ b/dlls/ntdll/tests/exception.c - @@ -1643,6 +1643,8 @@ static void test_thread_context(void) -@@ -78,18 +78,25 @@ index a5e6faa461a..51938bf84cc 100644 - ok( context.SegCs == LOWORD(expect.SegCs), "wrong SegCs %08x/%08x\n", context.SegCs, expect.SegCs ); - ok( context.SegDs == LOWORD(expect.SegDs), "wrong SegDs %08x/%08x\n", context.SegDs, expect.SegDs ); - diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c --index 5a6809638ae..fa10cdf1062 100644 -+index ff5fe9d6226a..e93498b27ea0 100644 - --- a/dlls/ntdll/thread.c - +++ b/dlls/ntdll/thread.c --@@ -170,6 +170,7 @@ int __cdecl __wine_dbg_output( const char *str ) -+@@ -220,6 +220,14 @@ int __cdecl __wine_dbg_output( const char *str ) - return unix_funcs->dbg_output( str ); - } - -++#if defined(__i386__) || defined(__x86_64__) - +extern void DECLSPEC_NORETURN __wine_syscall_dispatcher( void ); -++#else -++void __wine_syscall_dispatcher( void ) -++{ -++ FIXME("Syscall dispatcher is not available for this architecture.\n"); -++} -++#endif - - /*********************************************************************** - * thread_init --@@ -181,7 +182,7 @@ int __cdecl __wine_dbg_output( const char *str ) -+@@ -231,7 +239,7 @@ int __cdecl __wine_dbg_output( const char *str ) - TEB *thread_init( SIZE_T *info_size, BOOL *suspend ) - { - TEB *teb = unix_funcs->init_threading( &nb_threads, &__wine_ldt_copy, info_size, suspend, &server_cpus, -@@ -99,7 +106,7 @@ index 5a6809638ae..fa10cdf1062 100644 - peb = teb->Peb; - peb->FastPebLock = &peb_lock; - diff --git a/dlls/ntdll/unix/thread.c b/dlls/ntdll/unix/thread.c --index 97b191e1a5b..2dbaa43e731 100644 -+index 97b191e1a5b3..2dbaa43e731a 100644 - --- a/dlls/ntdll/unix/thread.c - +++ b/dlls/ntdll/unix/thread.c - @@ -85,7 +85,7 @@ static void pthread_exit_wrapper( int status ) -@@ -120,10 +127,10 @@ index 97b191e1a5b..2dbaa43e731 100644 - thread_data->request_fd = -1; - thread_data->reply_fd = -1; - diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h --index 19dd216fc35..a1c48a52606 100644 -+index 92a58417827b..33a551e947c2 100644 - --- a/dlls/ntdll/unix/unix_private.h - +++ b/dlls/ntdll/unix/unix_private.h --@@ -107,7 +107,7 @@ extern void CDECL server_release_fd( HANDLE handle, int unix_fd ) DECLSPEC_HIDDE -+@@ -108,7 +108,7 @@ extern void CDECL server_release_fd( HANDLE handle, int unix_fd ) DECLSPEC_HIDDE - extern void CDECL server_init_process_done( void *relay ) DECLSPEC_HIDDEN; - extern TEB * CDECL init_threading( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZE_T *size, - BOOL *suspend, unsigned int *cpus, BOOL *wow64, -@@ -133,7 +140,7 @@ index 19dd216fc35..a1c48a52606 100644 - extern void CDECL DECLSPEC_NORETURN exit_process( int status ) DECLSPEC_HIDDEN; - extern NTSTATUS CDECL get_thread_ldt_entry( HANDLE handle, void *data, ULONG len, ULONG *ret_len ) DECLSPEC_HIDDEN; - diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h --index 4c580c49d13..4f0080db03d 100644 -+index 4c580c49d139..4f0080db03d9 100644 - --- a/dlls/ntdll/unixlib.h - +++ b/dlls/ntdll/unixlib.h - @@ -28,7 +28,7 @@ struct ldt_copy; -@@ -155,10 +162,10 @@ index 4c580c49d13..4f0080db03d 100644 - void (CDECL *exit_process)( int status ); - NTSTATUS (CDECL *get_thread_ldt_entry)( HANDLE handle, void *data, ULONG len, ULONG *ret_len ); - diff --git a/include/winternl.h b/include/winternl.h --index 68c1ae3fd82..f2da9157aab 100644 -+index 2d9f54b89d8c..0c15a0ee6c34 100644 - --- a/include/winternl.h - +++ b/include/winternl.h --@@ -359,7 +359,7 @@ typedef struct _TEB -+@@ -360,7 +360,7 @@ typedef struct _TEB - PVOID CsrClientThread; /* 03c/0070 */ - PVOID Win32ThreadInfo; /* 040/0078 */ - ULONG Win32ClientInfo[31]; /* 044/0080 used for user32 private data in Wine */ -@@ -168,7 +175,7 @@ index 68c1ae3fd82..f2da9157aab 100644 - ULONG FpSoftwareStatusRegister; /* 0c8/010c */ - PVOID SystemReserved1[54]; /* 0cc/0110 used for krnl386.exe16 private data in Wine */ - diff --git a/tools/winebuild/build.h b/tools/winebuild/build.h --index c162888a035..55d5b0b9dc2 100644 -+index c162888a0356..55d5b0b9dc28 100644 - --- a/tools/winebuild/build.h - +++ b/tools/winebuild/build.h - @@ -105,6 +105,7 @@ typedef struct -@@ -216,7 +223,7 @@ index c162888a035..55d5b0b9dc2 100644 - - extern int byte_swapped; - diff --git a/tools/winebuild/import.c b/tools/winebuild/import.c --index 04ab433dd65..0c6bafed8e5 100644 -+index 04ab433dd65a..0c6bafed8e54 100644 - --- a/tools/winebuild/import.c - +++ b/tools/winebuild/import.c - @@ -531,6 +531,7 @@ static void check_undefined_forwards( DLLSPEC *spec ) -@@ -256,7 +263,7 @@ index 04ab433dd65..0c6bafed8e5 100644 - } - } - diff --git a/tools/winebuild/parser.c b/tools/winebuild/parser.c --index 0f2b9c1e10a..74216f8bb6e 100644 -+index 0f2b9c1e10ad..74216f8bb6e7 100644 - --- a/tools/winebuild/parser.c - +++ b/tools/winebuild/parser.c - @@ -543,6 +543,24 @@ static const char *parse_spec_flags( DLLSPEC *spec, ORDDEF *odp ) -@@ -347,7 +354,7 @@ index 0f2b9c1e10a..74216f8bb6e 100644 - } - - diff --git a/tools/winebuild/spec16.c b/tools/winebuild/spec16.c --index a52c03aaa6a..15ef9a3f893 100644 -+index a52c03aaa6a7..15ef9a3f8930 100644 - --- a/tools/winebuild/spec16.c - +++ b/tools/winebuild/spec16.c - @@ -495,27 +495,6 @@ static int relay_type_compare( const void *e1, const void *e2 ) -@@ -387,7 +394,7 @@ index a52c03aaa6a..15ef9a3f893 100644 - entry_point->u.func.nb_args = 0; - assert( !spec->ordinals[0] ); - diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c --index b1e20e0484d..22dd399cb2b 100644 -+index b1e20e0484dc..22dd399cb2b4 100644 - --- a/tools/winebuild/spec32.c - +++ b/tools/winebuild/spec32.c - @@ -374,6 +374,109 @@ static void output_relay_debug( DLLSPEC *spec ) -@@ -509,7 +516,7 @@ index b1e20e0484d..22dd399cb2b 100644 - output_exports( spec ); - output_imports( spec ); - diff --git a/tools/winebuild/utils.c b/tools/winebuild/utils.c --index 2a1fc960926..07a579004ad 100644 -+index 2a1fc960926b..07a579004adc 100644 - --- a/tools/winebuild/utils.c - +++ b/tools/winebuild/utils.c - @@ -860,6 +860,7 @@ void free_dll_spec( DLLSPEC *spec ) -diff --git a/patches/winebuild-Fake_Dlls/0004-winebuild-Use-multipass-label-system-to-generate-fak.patch b/patches/winebuild-Fake_Dlls/0004-winebuild-Use-multipass-label-system-to-generate-fak.patch -index 6c3984f8b..d4813799e 100644 ---- a/patches/winebuild-Fake_Dlls/0004-winebuild-Use-multipass-label-system-to-generate-fak.patch -+++ b/patches/winebuild-Fake_Dlls/0004-winebuild-Use-multipass-label-system-to-generate-fak.patch -@@ -1,4 +1,4 @@ --From 15182deeb13e26abdb3067a77353354726ac82aa Mon Sep 17 00:00:00 2001 -+From 344eb39bdfee74d4d826fa2f61a95736f0ee9823 Mon Sep 17 00:00:00 2001 - From: =?UTF-8?q?Michael=20M=C3=BCller?= - Date: Mon, 15 May 2017 02:05:49 +0200 - Subject: [PATCH] winebuild: Use multipass label system to generate fake dlls. -@@ -11,7 +11,7 @@ Subject: [PATCH] winebuild: Use multipass label system to generate fake dlls. - 4 files changed, 181 insertions(+), 63 deletions(-) - - diff --git a/tools/winebuild/build.h b/tools/winebuild/build.h --index 6ee847f908c..210324406a9 100644 -+index 55d5b0b9dc28..8930df408d3b 100644 - --- a/tools/winebuild/build.h - +++ b/tools/winebuild/build.h - @@ -343,6 +343,7 @@ extern size_t input_buffer_pos; -@@ -35,7 +35,7 @@ index 6ee847f908c..210324406a9 100644 - /* global variables */ - - diff --git a/tools/winebuild/res32.c b/tools/winebuild/res32.c --index bd55bb2fa5c..d9329019f8a 100644 -+index bd55bb2fa5c4..d9329019f8a3 100644 - --- a/tools/winebuild/res32.c - +++ b/tools/winebuild/res32.c - @@ -539,7 +539,6 @@ void output_bin_resources( DLLSPEC *spec, unsigned int start_rva ) -@@ -47,7 +47,7 @@ index bd55bb2fa5c..d9329019f8a 100644 - /* output the resource directories */ - - diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c --index 22dd399cb2b..c38f1fe663c 100644 -+index 22dd399cb2b4..c38f1fe663c7 100644 - --- a/tools/winebuild/spec32.c - +++ b/tools/winebuild/spec32.c - @@ -844,11 +844,11 @@ void output_spec32_file( DLLSPEC *spec ) -@@ -279,7 +279,7 @@ index 22dd399cb2b..c38f1fe663c 100644 - } - - diff --git a/tools/winebuild/utils.c b/tools/winebuild/utils.c --index 7dc61a708db..64e1fa51455 100644 -+index 07a579004adc..80dec6db29ea 100644 - --- a/tools/winebuild/utils.c - +++ b/tools/winebuild/utils.c - @@ -34,6 +34,7 @@ -diff --git a/patches/winebuild-Fake_Dlls/0005-winebuild-Add-stub-functions-in-fake-dlls.patch b/patches/winebuild-Fake_Dlls/0005-winebuild-Add-stub-functions-in-fake-dlls.patch -index f96d51aee..4ac05a314 100644 ---- a/patches/winebuild-Fake_Dlls/0005-winebuild-Add-stub-functions-in-fake-dlls.patch -+++ b/patches/winebuild-Fake_Dlls/0005-winebuild-Add-stub-functions-in-fake-dlls.patch -@@ -1,4 +1,4 @@ --From 167ad04157dd746ee9395afa9505fe00cc866f9b Mon Sep 17 00:00:00 2001 -+From e5fc6ee60be5dd3b80af96dcbd81adb742ba7a5d Mon Sep 17 00:00:00 2001 - From: =?UTF-8?q?Michael=20M=C3=BCller?= - Date: Mon, 15 May 2017 16:27:56 +0200 - Subject: [PATCH] winebuild: Add stub functions in fake dlls. -@@ -14,10 +14,10 @@ Subject: [PATCH] winebuild: Add stub functions in fake dlls. - 7 files changed, 251 insertions(+), 15 deletions(-) - - diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c --index 926fa913866..902907329c0 100644 -+index efd5a25a432d..182b61b731a2 100644 - --- a/dlls/kernel32/tests/loader.c - +++ b/dlls/kernel32/tests/loader.c --@@ -1596,9 +1596,7 @@ static void test_FakeDLL(void) -+@@ -1597,9 +1597,7 @@ static void test_FakeDLL(void) - ok(ptr != NULL, "MapViewOfFile failed with error %u\n", GetLastError()); - - dir = RtlImageDirectoryEntryToData(ptr, TRUE, IMAGE_DIRECTORY_ENTRY_EXPORT, &size); -@@ -27,7 +27,7 @@ index 926fa913866..902907329c0 100644 - - names = RVAToAddr(dir->AddressOfNames, ptr); - ordinals = RVAToAddr(dir->AddressOfNameOrdinals, ptr); --@@ -1627,17 +1625,20 @@ todo_wine -+@@ -1628,17 +1626,20 @@ todo_wine - /* check position in memory */ - dll_rva = (DWORD_PTR)dll_func - (DWORD_PTR)module; - map_rva = funcs[ordinals[i]]; -@@ -48,7 +48,7 @@ index 926fa913866..902907329c0 100644 - ok(!memcmp(map_func, dll_func, 0x20), "%s: Function content does not match!\n", func_name); - - if (!strcmp(func_name, "NtSetEvent")) --@@ -1651,10 +1652,11 @@ todo_wine -+@@ -1652,10 +1653,11 @@ todo_wine - ok(event != NULL, "CreateEvent failed with error %u\n", GetLastError()); - pNtSetEvent(event, 0); - ok(WaitForSingleObject(event, 0) == WAIT_OBJECT_0, "Event was not signaled\n"); -@@ -62,10 +62,10 @@ index 926fa913866..902907329c0 100644 - CloseHandle(map); - CloseHandle(file); - diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c --index 26c540050dc..09d3870c31a 100644 -+index cac6aae2f3dd..51d989f30b45 100644 - --- a/dlls/ntdll/loader.c - +++ b/dlls/ntdll/loader.c --@@ -3811,6 +3811,7 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule) -+@@ -4022,6 +4022,7 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule) - } - - extern void DECLSPEC_NORETURN __wine_syscall_dispatcher( void ); -@@ -73,7 +73,7 @@ index 26c540050dc..09d3870c31a 100644 - - /****************************************************************** - * LdrInitializeThunk (NTDLL.@) --@@ -3828,6 +3829,7 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow -+@@ -4040,6 +4041,7 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow - LPCWSTR load_path = NtCurrentTeb()->Peb->ProcessParameters->DllPath.Buffer; - - NtCurrentTeb()->WOW32Reserved = __wine_syscall_dispatcher; -@@ -82,12 +82,12 @@ index 26c540050dc..09d3870c31a 100644 - if (process_detaching) return; - - diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c --index fa10cdf1062..4840f527e59 100644 -+index e93498b27ea0..a14e3a12ae0c 100644 - --- a/dlls/ntdll/thread.c - +++ b/dlls/ntdll/thread.c --@@ -172,6 +172,39 @@ int __cdecl __wine_dbg_output( const char *str ) -- -- extern void DECLSPEC_NORETURN __wine_syscall_dispatcher( void ); -+@@ -229,6 +229,39 @@ void __wine_syscall_dispatcher( void ) -+ } -+ #endif - - +void *WINAPI __wine_fakedll_dispatcher( const char *module, ULONG ord ) - +{ -@@ -125,7 +125,7 @@ index fa10cdf1062..4840f527e59 100644 - /*********************************************************************** - * thread_init - * --@@ -183,6 +216,7 @@ TEB *thread_init( SIZE_T *info_size, BOOL *suspend ) -+@@ -240,6 +273,7 @@ TEB *thread_init( SIZE_T *info_size, BOOL *suspend ) - { - TEB *teb = unix_funcs->init_threading( &nb_threads, &__wine_ldt_copy, info_size, suspend, &server_cpus, - &is_wow64, &server_start_time, __wine_syscall_dispatcher ); -@@ -134,10 +134,10 @@ index fa10cdf1062..4840f527e59 100644 - peb = teb->Peb; - peb->FastPebLock = &peb_lock; - diff --git a/include/winternl.h b/include/winternl.h --index f2da9157aab..ce8021af503 100644 -+index 0c15a0ee6c34..6da672e979e5 100644 - --- a/include/winternl.h - +++ b/include/winternl.h --@@ -398,7 +398,7 @@ typedef struct _TEB -+@@ -399,7 +399,7 @@ typedef struct _TEB - PVOID Instrumentation[16]; /* f2c/16b8 */ - PVOID WinSockData; /* f6c/1738 */ - ULONG GdiBatchCount; /* f70/1740 */ -@@ -147,7 +147,7 @@ index f2da9157aab..ce8021af503 100644 - PVOID ReservedForPerf; /* f7c/1750 */ - PVOID ReservedForOle; /* f80/1758 */ - diff --git a/tools/winebuild/build.h b/tools/winebuild/build.h --index 8930df408d3..44113bad28a 100644 -+index 8930df408d3b..44113bad28af 100644 - --- a/tools/winebuild/build.h - +++ b/tools/winebuild/build.h - @@ -358,6 +358,7 @@ extern void put_word( unsigned short val ); -@@ -159,7 +159,7 @@ index 8930df408d3..44113bad28a 100644 - extern void align_output_rva( unsigned int file_align, unsigned int rva_align ); - extern size_t label_pos( const char *name ); - diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c --index c38f1fe663c..bf82ca497c0 100644 -+index c38f1fe663c7..bf82ca497c0d 100644 - --- a/tools/winebuild/spec32.c - +++ b/tools/winebuild/spec32.c - @@ -843,6 +843,163 @@ void output_spec32_file( DLLSPEC *spec ) -@@ -415,7 +415,7 @@ index c38f1fe663c..bf82ca497c0 100644 - /* .reloc contents */ - align_output_rva( file_align, section_align ); - diff --git a/tools/winebuild/utils.c b/tools/winebuild/utils.c --index 80dec6db29e..d394a1382c6 100644 -+index 80dec6db29ea..d394a1382c68 100644 - --- a/tools/winebuild/utils.c - +++ b/tools/winebuild/utils.c - @@ -549,7 +549,7 @@ size_t output_buffer_size; -diff --git a/patches/winebuild-Fake_Dlls/0006-winebuild-Add-syscall-thunks-in-fake-dlls.patch b/patches/winebuild-Fake_Dlls/0006-winebuild-Add-syscall-thunks-in-fake-dlls.patch -index 5ae2b3deb..13f46d6b0 100644 ---- a/patches/winebuild-Fake_Dlls/0006-winebuild-Add-syscall-thunks-in-fake-dlls.patch -+++ b/patches/winebuild-Fake_Dlls/0006-winebuild-Add-syscall-thunks-in-fake-dlls.patch -@@ -1,4 +1,4 @@ --From 84a9f7b8192d7735108da2d7e81cf63faef97c13 Mon Sep 17 00:00:00 2001 -+From fd72d405abba827ab5e2603551d48200aedad3ce Mon Sep 17 00:00:00 2001 - From: =?UTF-8?q?Michael=20M=C3=BCller?= - Date: Mon, 15 May 2017 17:56:48 +0200 - Subject: [PATCH] winebuild: Add syscall thunks in fake dlls. -@@ -9,10 +9,10 @@ Subject: [PATCH] winebuild: Add syscall thunks in fake dlls. - 2 files changed, 25 insertions(+), 3 deletions(-) - - diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c --index ec173c94a8e..a3bed8b310b 100644 -+index 182b61b731a2..98369c7d508c 100644 - --- a/dlls/kernel32/tests/loader.c - +++ b/dlls/kernel32/tests/loader.c --@@ -1602,7 +1602,6 @@ static void test_FakeDLL(void) -+@@ -1639,7 +1639,6 @@ static void test_FakeDLL(void) - - /* check function content */ - map_func = RVAToAddr(map_rva, ptr); -@@ -21,7 +21,7 @@ index ec173c94a8e..a3bed8b310b 100644 - - if (!strcmp(func_name, "NtSetEvent")) - diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c --index bf82ca497c0..6968e41260f 100644 -+index bf82ca497c0d..6968e41260f1 100644 - --- a/tools/winebuild/spec32.c - +++ b/tools/winebuild/spec32.c - @@ -860,13 +860,36 @@ static void create_stub_exports_text( DLLSPEC *spec ) -diff --git a/patches/winebuild-Fake_Dlls/0007-winebuild-Fix-size-of-relocation-information-in-fake.patch b/patches/winebuild-Fake_Dlls/0007-winebuild-Fix-size-of-relocation-information-in-fake.patch -index 92a7161de..3b3745ed6 100644 ---- a/patches/winebuild-Fake_Dlls/0007-winebuild-Fix-size-of-relocation-information-in-fake.patch -+++ b/patches/winebuild-Fake_Dlls/0007-winebuild-Fix-size-of-relocation-information-in-fake.patch -@@ -1,4 +1,4 @@ --From d77c31b1567bfbde1ce4ceb526ad596d0be3e788 Mon Sep 17 00:00:00 2001 -+From f92fc0572be02ce2eee2a9cbf60724372678a5af Mon Sep 17 00:00:00 2001 - From: =?UTF-8?q?Michael=20M=C3=BCller?= - Date: Thu, 25 May 2017 03:22:25 +0200 - Subject: [PATCH] winebuild: Fix size of relocation information in fake dlls. -@@ -8,7 +8,7 @@ Subject: [PATCH] winebuild: Fix size of relocation information in fake dlls. - 1 file changed, 2 insertions(+), 2 deletions(-) - - diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c --index 6968e41260f..f95b45b9a0d 100644 -+index 6968e41260f1..f95b45b9a0d5 100644 - --- a/tools/winebuild/spec32.c - +++ b/tools/winebuild/spec32.c - @@ -1238,8 +1238,8 @@ static void output_fake_module_pass( DLLSPEC *spec ) -diff --git a/patches/winebuild-Fake_Dlls/0008-winebuild-Try-to-make-sure-RVA-matches-between-fake-.patch b/patches/winebuild-Fake_Dlls/0008-winebuild-Try-to-make-sure-RVA-matches-between-fake-.patch -index c4f1fb004..2cb4b7cf1 100644 ---- a/patches/winebuild-Fake_Dlls/0008-winebuild-Try-to-make-sure-RVA-matches-between-fake-.patch -+++ b/patches/winebuild-Fake_Dlls/0008-winebuild-Try-to-make-sure-RVA-matches-between-fake-.patch -@@ -1,4 +1,4 @@ --From afa59bbabca36f306e9db4c1b080a250c4a919ea Mon Sep 17 00:00:00 2001 -+From 59efee63a7442dfee4d9e76b11f651a11a4b523e Mon Sep 17 00:00:00 2001 - From: =?UTF-8?q?Michael=20M=C3=BCller?= - Date: Thu, 25 May 2017 21:46:27 +0200 - Subject: [PATCH] winebuild: Try to make sure RVA matches between fake and -@@ -11,10 +11,10 @@ Subject: [PATCH] winebuild: Try to make sure RVA matches between fake and - 3 files changed, 26 insertions(+), 5 deletions(-) - - diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c --index a3bed8b310b..8b5a345b086 100644 -+index 98369c7d508c..77e73b3ca37b 100644 - --- a/dlls/kernel32/tests/loader.c - +++ b/dlls/kernel32/tests/loader.c --@@ -1589,7 +1589,6 @@ static void test_FakeDLL(void) -+@@ -1626,7 +1626,6 @@ static void test_FakeDLL(void) - /* check position in memory */ - dll_rva = (DWORD_PTR)dll_func - (DWORD_PTR)module; - map_rva = funcs[ordinals[i]]; -@@ -23,7 +23,7 @@ index a3bed8b310b..8b5a345b086 100644 - func_name, dll_rva, map_rva); - - diff --git a/libs/wine/loader.c b/libs/wine/loader.c --index c3b59d90224..b6847ca77b3 100644 -+index c3b59d902243..b6847ca77b31 100644 - --- a/libs/wine/loader.c - +++ b/libs/wine/loader.c - @@ -335,8 +335,12 @@ static void *map_dll( const IMAGE_NT_HEADERS *nt_descr ) -@@ -54,7 +54,7 @@ index c3b59d90224..b6847ca77b3 100644 - - memcpy( sec->Name, ".text", sizeof(".text") ); - diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c --index f95b45b9a0d..07d6eed05fc 100644 -+index f95b45b9a0d5..07d6eed05fcc 100644 - --- a/tools/winebuild/spec32.c - +++ b/tools/winebuild/spec32.c - @@ -381,14 +381,25 @@ static void output_relay_debug( DLLSPEC *spec ) -diff --git a/patches/winebuild-Fake_Dlls/0009-libs-wine-Use-same-file-alignment-for-fake-and-built.patch b/patches/winebuild-Fake_Dlls/0009-libs-wine-Use-same-file-alignment-for-fake-and-built.patch -index e0ae33a59..9113beb5f 100644 ---- a/patches/winebuild-Fake_Dlls/0009-libs-wine-Use-same-file-alignment-for-fake-and-built.patch -+++ b/patches/winebuild-Fake_Dlls/0009-libs-wine-Use-same-file-alignment-for-fake-and-built.patch -@@ -1,4 +1,4 @@ --From 29478273c4db90d209ac5afbdc1dd80add3d2c7e Mon Sep 17 00:00:00 2001 -+From 370eccb19c65a8b02abfa31a76651ae533dda22f Mon Sep 17 00:00:00 2001 - From: =?UTF-8?q?Michael=20M=C3=BCller?= - Date: Thu, 25 May 2017 21:56:06 +0200 - Subject: [PATCH] libs/wine: Use same file alignment for fake and builtin DLLs. -@@ -9,10 +9,10 @@ Subject: [PATCH] libs/wine: Use same file alignment for fake and builtin DLLs. - 2 files changed, 1 insertion(+), 2 deletions(-) - - diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c --index 8b5a345b086..5373dc4efe1 100644 -+index 77e73b3ca37b..1f525194ce73 100644 - --- a/dlls/kernel32/tests/loader.c - +++ b/dlls/kernel32/tests/loader.c --@@ -1595,7 +1595,6 @@ static void test_FakeDLL(void) -+@@ -1632,7 +1632,6 @@ static void test_FakeDLL(void) - /* check position in file */ - map_offset = (DWORD_PTR)RtlImageRvaToVa(RtlImageNtHeader(ptr), ptr, map_rva, NULL) - (DWORD_PTR)ptr; - dll_offset = (DWORD_PTR)RtlImageRvaToVa(RtlImageNtHeader(module), module, dll_rva, NULL) - (DWORD_PTR)module; -@@ -21,7 +21,7 @@ index 8b5a345b086..5373dc4efe1 100644 - func_name, map_offset, dll_offset); - - diff --git a/libs/wine/loader.c b/libs/wine/loader.c --index b6847ca77b3..4597a6cb324 100644 -+index b6847ca77b31..4597a6cb3243 100644 - --- a/libs/wine/loader.c - +++ b/libs/wine/loader.c - @@ -398,7 +398,7 @@ static void *map_dll( const IMAGE_NT_HEADERS *nt_descr ) -diff --git a/patches/winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch b/patches/winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch -index 6024e5a2f..e40a80148 100644 ---- a/patches/winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch -+++ b/patches/winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch -@@ -1,4 +1,4 @@ --From a5b4feebd008daab008f72567fe0001da619030e Mon Sep 17 00:00:00 2001 -+From 6f1973aa2aee35139ae041e59d37a45ff22dc5bf Mon Sep 17 00:00:00 2001 - From: =?UTF-8?q?Michael=20M=C3=BCller?= - Date: Thu, 7 Sep 2017 00:38:09 +0200 - Subject: [PATCH] tools/winebuild: Add syscall thunks for 64 bit. -@@ -7,18 +7,18 @@ Subject: [PATCH] tools/winebuild: Add syscall thunks for 64 bit. - dlls/kernel32/tests/loader.c | 7 +- - dlls/ntdll/unix/thread.c | 2 +- - dlls/ntdll/unix/unix_private.h | 2 +- -- dlls/ntdll/unix/virtual.c | 12 +- -+ dlls/ntdll/unix/virtual.c | 11 +- - libs/wine/loader.c | 4 + - server/mapping.c | 6 +- - tools/winebuild/parser.c | 2 +- - tools/winebuild/spec32.c | 285 ++++++++++++++++++++++++++++++++- -- 8 files changed, 306 insertions(+), 14 deletions(-) -+ 8 files changed, 305 insertions(+), 14 deletions(-) - - diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c --index 95939ba6bde..ae5462f6e55 100644 -+index 1f525194ce73..21af7b4ce7a4 100644 - --- a/dlls/kernel32/tests/loader.c - +++ b/dlls/kernel32/tests/loader.c --@@ -1573,7 +1573,7 @@ static void test_filenames(void) -+@@ -1574,7 +1574,7 @@ static void test_filenames(void) - - static void test_FakeDLL(void) - { -@@ -27,7 +27,7 @@ index 95939ba6bde..ae5462f6e55 100644 - NTSTATUS (WINAPI *pNtSetEvent)(HANDLE, ULONG *) = NULL; - IMAGE_EXPORT_DIRECTORY *dir; - HMODULE module = GetModuleHandleA("ntdll.dll"); --@@ -1615,8 +1615,13 @@ static void test_FakeDLL(void) -+@@ -1616,8 +1616,13 @@ static void test_FakeDLL(void) - - dll_func = (BYTE *)GetProcAddress(module, func_name); - ok(dll_func != NULL, "%s: GetProcAddress returned NULL\n", func_name); -@@ -42,7 +42,7 @@ index 95939ba6bde..ae5462f6e55 100644 - todo_wine ok(0, "%s: Export is a stub-function, skipping\n", func_name); - continue; - diff --git a/dlls/ntdll/unix/thread.c b/dlls/ntdll/unix/thread.c --index 2dbaa43e731..e1da90222d3 100644 -+index 2dbaa43e731a..e1da90222d38 100644 - --- a/dlls/ntdll/unix/thread.c - +++ b/dlls/ntdll/unix/thread.c - @@ -110,7 +110,7 @@ TEB * CDECL init_threading( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZ -@@ -55,10 +55,10 @@ index 2dbaa43e731..e1da90222d3 100644 - - if (size) *size = info_size; - diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h --index a1c48a52606..9c9e5b80b0c 100644 -+index 33a551e947c2..d06f366d3c6d 100644 - --- a/dlls/ntdll/unix/unix_private.h - +++ b/dlls/ntdll/unix/unix_private.h --@@ -152,7 +152,7 @@ extern void virtual_init(void) DECLSPEC_HIDDEN; -+@@ -153,7 +153,7 @@ extern void virtual_init(void) DECLSPEC_HIDDEN; - extern TEB *virtual_alloc_first_teb(void) DECLSPEC_HIDDEN; - extern NTSTATUS virtual_alloc_teb( TEB **ret_teb ) DECLSPEC_HIDDEN; - extern void virtual_free_teb( TEB *teb ) DECLSPEC_HIDDEN; -@@ -68,10 +68,10 @@ index a1c48a52606..9c9e5b80b0c 100644 - extern BOOL virtual_is_valid_code_address( const void *addr, SIZE_T size ) DECLSPEC_HIDDEN; - extern int virtual_handle_stack_fault( void *addr ) DECLSPEC_HIDDEN; - diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c --index 660323d4dcc..a5e5cb8422d 100644 -+index 9fb2ecd38ca3..ad11485d1cea 100644 - --- a/dlls/ntdll/unix/virtual.c - +++ b/dlls/ntdll/unix/virtual.c --@@ -2588,14 +2588,14 @@ TEB *virtual_alloc_first_teb(void) -+@@ -2772,14 +2772,14 @@ TEB *virtual_alloc_first_teb(void) - TEB *teb; - PEB *peb; - NTSTATUS status; -@@ -88,12 +88,7 @@ index 660323d4dcc..a5e5cb8422d 100644 - if (status) - { - ERR( "wine: failed to map the shared user data: %08x\n", status ); --@@ -2787,11 +2787,12 @@ void virtual_clear_thread_stack( void *stack_end ) -- if (force_exec_prot) mprotect( stack, size, PROT_READ | PROT_WRITE | PROT_EXEC ); -- } -- --+extern void DECLSPEC_NORETURN __wine_syscall_dispatcher( void ); -- -+@@ -2977,7 +2977,7 @@ void virtual_clear_thread_stack( void *stack_end ) - /*********************************************************************** - * virtual_map_user_shared_data - */ -@@ -102,7 +97,7 @@ index 660323d4dcc..a5e5cb8422d 100644 - { - static const WCHAR wine_usdW[] = {'\\','K','e','r','n','e','l','O','b','j','e','c','t','s', - '\\','_','_','w','i','n','e','_','u','s','e','r','_','s','h','a','r','e','d','_','d','a','t','a',0}; --@@ -2814,6 +2815,11 @@ void virtual_map_user_shared_data(void) -+@@ -3000,6 +3000,11 @@ void virtual_map_user_shared_data(void) - ERR( "failed to remap the process USD: %d\n", res ); - exit(1); - } -@@ -115,7 +110,7 @@ index 660323d4dcc..a5e5cb8422d 100644 - NtClose( section ); - } - diff --git a/libs/wine/loader.c b/libs/wine/loader.c --index 4597a6cb324..3d0d75e9c6d 100644 -+index 4597a6cb3243..3d0d75e9c6d3 100644 - --- a/libs/wine/loader.c - +++ b/libs/wine/loader.c - @@ -398,7 +398,11 @@ static void *map_dll( const IMAGE_NT_HEADERS *nt_descr ) -@@ -131,7 +126,7 @@ index 4597a6cb324..3d0d75e9c6d 100644 - sec++; - - diff --git a/server/mapping.c b/server/mapping.c --index 0941dd87c05..002f3215af2 100644 -+index 0941dd87c05d..002f3215af2e 100644 - --- a/server/mapping.c - +++ b/server/mapping.c - @@ -964,7 +964,11 @@ struct object *create_user_data_mapping( struct object *root, const struct unico -@@ -148,7 +143,7 @@ index 0941dd87c05..002f3215af2 100644 - } - - diff --git a/tools/winebuild/parser.c b/tools/winebuild/parser.c --index 74216f8bb6e..820516329a4 100644 -+index 74216f8bb6e7..820516329a47 100644 - --- a/tools/winebuild/parser.c - +++ b/tools/winebuild/parser.c - @@ -545,7 +545,7 @@ static const char *parse_spec_flags( DLLSPEC *spec, ORDDEF *odp ) -@@ -161,7 +156,7 @@ index 74216f8bb6e..820516329a4 100644 - if (odp->flags & (FLAG_FORWARD | FLAG_REGISTER)) - return 0; - diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c --index 07d6eed05fc..9cc4698d0d7 100644 -+index 07d6eed05fcc..9cc4698d0d7d 100644 - --- a/tools/winebuild/spec32.c - +++ b/tools/winebuild/spec32.c - @@ -375,11 +375,11 @@ static void output_relay_debug( DLLSPEC *spec ) -diff --git a/patches/winebuild-Fake_Dlls/0011-ntdll-Call-NtOpenFile-through-syscall-thunk.patch b/patches/winebuild-Fake_Dlls/0011-ntdll-Call-NtOpenFile-through-syscall-thunk.patch -index 69ee26be8..c3e065b26 100644 ---- a/patches/winebuild-Fake_Dlls/0011-ntdll-Call-NtOpenFile-through-syscall-thunk.patch -+++ b/patches/winebuild-Fake_Dlls/0011-ntdll-Call-NtOpenFile-through-syscall-thunk.patch -@@ -1,4 +1,4 @@ --From 659e192979eecfb59d1c1b26e8cea78c42300de5 Mon Sep 17 00:00:00 2001 -+From feb53ed39179603391eff600ea59edc41407b238 Mon Sep 17 00:00:00 2001 - From: Paul Gofman - Date: Fri, 3 Jan 2020 17:39:08 +0300 - Subject: [PATCH] ntdll: Call NtOpenFile through syscall thunk. -@@ -15,10 +15,10 @@ Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48410 - 7 files changed, 16 insertions(+), 8 deletions(-) - - diff --git a/dlls/ntdll/actctx.c b/dlls/ntdll/actctx.c --index 1ca794ae3e5..b3c13042adc 100644 -+index a25cefa555ac..34ba0dc813c6 100644 - --- a/dlls/ntdll/actctx.c - +++ b/dlls/ntdll/actctx.c --@@ -2892,7 +2892,7 @@ static NTSTATUS open_nt_file( HANDLE *handle, UNICODE_STRING *name ) -+@@ -2894,7 +2894,7 @@ static NTSTATUS open_nt_file( HANDLE *handle, UNICODE_STRING *name ) - attr.ObjectName = name; - attr.SecurityDescriptor = NULL; - attr.SecurityQualityOfService = NULL; -@@ -27,7 +27,7 @@ index 1ca794ae3e5..b3c13042adc 100644 - } - - static NTSTATUS get_manifest_in_module( struct actctx_loader* acl, struct assembly_identity* ai, --@@ -3209,7 +3209,7 @@ static NTSTATUS lookup_winsxs(struct actctx_loader* acl, struct assembly_identit -+@@ -3211,7 +3211,7 @@ static NTSTATUS lookup_winsxs(struct actctx_loader* acl, struct assembly_identit - attr.SecurityDescriptor = NULL; - attr.SecurityQualityOfService = NULL; - -@@ -37,10 +37,10 @@ index 1ca794ae3e5..b3c13042adc 100644 - { - sxs_ai = *ai; - diff --git a/dlls/ntdll/directory.c b/dlls/ntdll/directory.c --index d18df38f626..69607a4fed9 100644 -+index 18428658a5b5..7a9de26ccb0c 100644 - --- a/dlls/ntdll/directory.c - +++ b/dlls/ntdll/directory.c --@@ -2943,7 +2943,7 @@ NTSTATUS DIR_get_unix_cwd( char **cwd ) -+@@ -3071,7 +3071,7 @@ NTSTATUS DIR_get_unix_cwd( char **cwd ) - attr.SecurityDescriptor = NULL; - attr.SecurityQualityOfService = NULL; - -@@ -50,10 +50,10 @@ index d18df38f626..69607a4fed9 100644 - RtlFreeUnicodeString( &dirW ); - if (status != STATUS_SUCCESS) goto done; - diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c --index 0b8c28a0651..e48cd84cffd 100644 -+index 51d989f30b45..8f1653b0d626 100644 - --- a/dlls/ntdll/loader.c - +++ b/dlls/ntdll/loader.c --@@ -2469,7 +2469,7 @@ static NTSTATUS open_dll_file( UNICODE_STRING *nt_name, WINE_MODREF **pwm, -+@@ -2521,7 +2521,7 @@ static NTSTATUS open_dll_file( UNICODE_STRING *nt_name, WINE_MODREF **pwm, - attr.ObjectName = nt_name; - attr.SecurityDescriptor = NULL; - attr.SecurityQualityOfService = NULL; -@@ -63,10 +63,10 @@ index 0b8c28a0651..e48cd84cffd 100644 - FILE_SYNCHRONOUS_IO_NONALERT | FILE_NON_DIRECTORY_FILE ))) - { - diff --git a/dlls/ntdll/locale.c b/dlls/ntdll/locale.c --index 0d0c1194d23..a1bf219ed0a 100644 -+index 15ccdeb2e637..928edcb04e2c 100644 - --- a/dlls/ntdll/locale.c - +++ b/dlls/ntdll/locale.c --@@ -661,7 +661,7 @@ static NTSTATUS open_nls_data_file( ULONG type, ULONG id, HANDLE *file ) -+@@ -660,7 +660,7 @@ static NTSTATUS open_nls_data_file( ULONG type, ULONG id, HANDLE *file ) - return STATUS_NO_MEMORY; - valueW.Length = NTDLL_swprintf( valueW.Buffer, pathfmtW, dir, name ) * sizeof(WCHAR); - InitializeObjectAttributes( &attr, &valueW, 0, 0, NULL ); -@@ -75,7 +75,7 @@ index 0d0c1194d23..a1bf219ed0a 100644 - if (!status) TRACE( "found %s\n", debugstr_w( valueW.Buffer )); - RtlFreeUnicodeString( &valueW ); - if (status != STATUS_OBJECT_NAME_NOT_FOUND && status != STATUS_OBJECT_PATH_NOT_FOUND) return status; --@@ -685,7 +685,7 @@ static NTSTATUS open_nls_data_file( ULONG type, ULONG id, HANDLE *file ) -+@@ -684,7 +684,7 @@ static NTSTATUS open_nls_data_file( ULONG type, ULONG id, HANDLE *file ) - wcscat( valueW.Buffer, name ); - valueW.Length = wcslen(valueW.Buffer) * sizeof(WCHAR); - InitializeObjectAttributes( &attr, &valueW, 0, 0, NULL ); -@@ -85,10 +85,10 @@ index 0d0c1194d23..a1bf219ed0a 100644 - } - RtlFreeUnicodeString( &valueW ); - diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h --index 2e791b92f73..f8170793185 100644 -+index 9091d1ae8c77..f8e81ae49eaf 100644 - --- a/dlls/ntdll/ntdll_misc.h - +++ b/dlls/ntdll/ntdll_misc.h --@@ -350,4 +350,12 @@ static inline void ascii_to_unicode( WCHAR *dst, const char *src, size_t len ) -+@@ -329,4 +329,12 @@ static inline void ascii_to_unicode( WCHAR *dst, const char *src, size_t len ) - while (len--) *dst++ = (unsigned char)*src++; - } - -@@ -102,7 +102,7 @@ index 2e791b92f73..f8170793185 100644 - + - #endif - diff --git a/dlls/ntdll/path.c b/dlls/ntdll/path.c --index 32e1f951af5..71ae44dd498 100644 -+index 32e1f951af5c..71ae44dd4988 100644 - --- a/dlls/ntdll/path.c - +++ b/dlls/ntdll/path.c - @@ -1020,7 +1020,7 @@ NTSTATUS WINAPI RtlSetCurrentDirectory_U(const UNICODE_STRING* dir) -@@ -115,10 +115,10 @@ index 32e1f951af5..71ae44dd498 100644 - if (nts != STATUS_SUCCESS) goto out; - - diff --git a/dlls/ntdll/process.c b/dlls/ntdll/process.c --index 60ee39765bf..70dfe6f768a 100644 -+index 884141da060c..32a1f5107f06 100644 - --- a/dlls/ntdll/process.c - +++ b/dlls/ntdll/process.c --@@ -1281,7 +1281,7 @@ static NTSTATUS get_pe_file_info( UNICODE_STRING *path, ULONG attributes, -+@@ -1357,7 +1357,7 @@ static NTSTATUS get_pe_file_info( UNICODE_STRING *path, ULONG attributes, - - memset( info, 0, sizeof(*info) ); - InitializeObjectAttributes( &attr, path, attributes, 0, 0 ); diff --git a/wine.spec b/wine.spec index 4308871..cd74653 100644 --- a/wine.spec +++ b/wine.spec @@ -76,8 +76,6 @@ Source150: wine.appdata.xml # wine bugs Patch100: wine-staging-5.10-ntdll.patch -Patch101: wine-staging-5.10-ntdll-arm0.patch -Patch102: wine-staging-5.10-ntdll-arm1.patch # desktop dir Source200: wine.menu @@ -696,10 +694,15 @@ This package adds the opencl driver for wine. # setup and apply wine-staging patches gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 %patch100 -p1 -b.ntdll -%patch101 -p1 -b.ntdll-arm0 -%patch102 -p1 -b.ntdll-arm1 +%ifarch %{arm} aarch64 +patches/patchinstall.sh DESTDIR="`pwd`" --all \ + -W ntdll-NtContinue \ + -W ntdll-Syscall_Emulation \ + -W winebuild-Fake_Dlls +%else patches/patchinstall.sh DESTDIR="`pwd`" --all +%endif # fix parallelized build sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in From 1924618e9789b72a28c135e391d7fc63abb2b103 Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Wed, 1 Jul 2020 12:29:15 -0600 Subject: [PATCH 587/715] Disable LTO --- wine.spec | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index cd74653..3091bf4 100644 --- a/wine.spec +++ b/wine.spec @@ -45,7 +45,7 @@ Name: wine Version: 5.10 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -711,6 +711,13 @@ sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in # 0%%{?wine_staging} %build +# This package uses top level ASM constructs which are incompatible with LTO. +# Top level ASMs are often used to implement symbol versioning. gcc-10 +# introduces a new mechanism for symbol versioning which works with LTO. +# Converting packages to use that mechanism instead of toplevel ASMs is +# recommended. +# Disable LTO +%define _lto_cflags %{nil} # disable fortify as it breaks wine # http://bugs.winehq.org/show_bug.cgi?id=24606 @@ -2336,6 +2343,9 @@ fi %endif %changelog +* Wed Jul 01 2020 Jeff Law 5.10-2 +- Disable LTO + * Sun Jun 07 2020 Michael Cronenworth 5.10-1 - version update From cc5d614c8aff254b7a896264680eb08a02d2a7ad Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 14 Jul 2020 14:56:54 -0500 Subject: [PATCH 588/715] Update to 5.12 --- .gitignore | 6 +- sources | 6 +- wine-staging-5.10-ntdll.patch | 497 ---------------------------------- wine.spec | 24 +- 4 files changed, 15 insertions(+), 518 deletions(-) delete mode 100644 wine-staging-5.10-ntdll.patch diff --git a/.gitignore b/.gitignore index 1b3c9bc..b9639ee 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-5.10.tar.xz -/wine-5.10.tar.xz.sign -/wine-staging-5.10.tar.gz +/wine-5.12.tar.xz +/wine-5.12.tar.xz.sign +/wine-staging-5.12.1.tar.gz diff --git a/sources b/sources index 71a95ad..29ea6fb 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-5.10.tar.xz) = 669d6861525cd4ab000113e8d9c5e10822b62b293914542ee34a826696df66e1d2f09b09f576f714e4117e79e25d1fd0b2a06c57d29da0efa0bdfcb9fee59c60 -SHA512 (wine-5.10.tar.xz.sign) = 809c9d4d37440bc6beac0b6da9c69e81c055f3ea606261c21dd2e1ce02e71976f3fc3433e0bd87cc8431b5cd49cab9db01d4bf62bd23fe294ca7a5180adab7ee -SHA512 (wine-staging-5.10.tar.gz) = fca5ddb648ac45c242b9bd7ccb0980161bff1e3539aa1a116f1cceece9d3b4a3188c82bd93624f561653dda793ad16dc00a87c7ed0c38f19a93b538519ef806c +SHA512 (wine-5.12.tar.xz) = 1272b143d64ed6083cd797474f18dbd2bca7a38d488474ae5f054f47789b4fc1d386c7bbf8aa1bd86f9507908fc799b4f45e10e1d8c628c5bd52c42b1d74c8a8 +SHA512 (wine-5.12.tar.xz.sign) = 0c2fdab2e8c46addcd2cebbc46f9125e7f544bddef89d19713310ec889992936ba2dcead93d6291c10dcd88a60eba0d84bd6c0459a512009899fdd4eb4435813 +SHA512 (wine-staging-5.12.1.tar.gz) = 1a4cead8f17d41f1e5ab1be2f8dd8e098fc655b6240bdae49d3e8ab8f112ea4b46a92a95780b325c037dd3e5099e481392860c8dbf72dd03acee39855335750d diff --git a/wine-staging-5.10-ntdll.patch b/wine-staging-5.10-ntdll.patch deleted file mode 100644 index 0ac49d8..0000000 --- a/wine-staging-5.10-ntdll.patch +++ /dev/null @@ -1,497 +0,0 @@ -From 044cb930662d61f401a5d1bdd7b8e75d59cea5ea Mon Sep 17 00:00:00 2001 -From: Paul Gofman -Date: Mon, 8 Jun 2020 15:33:10 +0300 -Subject: [PATCH] Updated ntdll-ForceBottomUpAlloc patchset. - -Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49326 ---- - ...h-on-mmap-error-in-try_map_free_area.patch | 9 +- - ...XED_NOREPLACE-flag-in-try_map_free_a.patch | 10 +- - ...om-up-allocation-order-for-64-bit-ar.patch | 12 +- - ...tep-after-failed-map-attempt-in-try_.patch | 8 +- - ...rea-list-for-virtual-memory-allocati.patch | 163 +++++++++++------- - ...y-exclude-natively-mapped-areas-from.patch | 14 +- - 6 files changed, 126 insertions(+), 90 deletions(-) - -diff --git a/patches/ntdll-ForceBottomUpAlloc/0001-ntdll-Stop-search-on-mmap-error-in-try_map_free_area.patch b/patches/ntdll-ForceBottomUpAlloc/0001-ntdll-Stop-search-on-mmap-error-in-try_map_free_area.patch -index 7aa2337e8..ecf750c59 100644 ---- a/patches/ntdll-ForceBottomUpAlloc/0001-ntdll-Stop-search-on-mmap-error-in-try_map_free_area.patch -+++ b/patches/ntdll-ForceBottomUpAlloc/0001-ntdll-Stop-search-on-mmap-error-in-try_map_free_area.patch -@@ -1,7 +1,8 @@ --From ca116113c19ee17d2e8283abe4edf27f76df2148 Mon Sep 17 00:00:00 2001 -+From c0a24a86c70b3cf2bfe118cff4d9ab03efaa9689 Mon Sep 17 00:00:00 2001 - From: Paul Gofman - Date: Thu, 9 Jan 2020 15:05:09 +0300 --Subject: [PATCH] ntdll: Stop search on mmap() error in try_map_free_area(). -+Subject: [PATCH 1/6] ntdll: Stop search on mmap() error in -+ try_map_free_area(). - - The anon mmap errors do not depend on start address hint. Ignoring them - makes the search take incredible time until it fails. -@@ -10,10 +11,10 @@ makes the search take incredible time until it fails. - 1 file changed, 8 insertions(+), 2 deletions(-) - - diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c --index 0346d0d9753..c29f695d694 100644 -+index b2725e3ae9a..5c2ecfab398 100644 - --- a/dlls/ntdll/unix/virtual.c - +++ b/dlls/ntdll/unix/virtual.c --@@ -1016,8 +1016,14 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step, -+@@ -1063,8 +1063,14 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step, - return start; - TRACE( "Found free area is already mapped, start %p.\n", start ); - -diff --git a/patches/ntdll-ForceBottomUpAlloc/0002-ntdll-Use-MAP_FIXED_NOREPLACE-flag-in-try_map_free_a.patch b/patches/ntdll-ForceBottomUpAlloc/0002-ntdll-Use-MAP_FIXED_NOREPLACE-flag-in-try_map_free_a.patch -index 6672d646f..81bdde5a0 100644 ---- a/patches/ntdll-ForceBottomUpAlloc/0002-ntdll-Use-MAP_FIXED_NOREPLACE-flag-in-try_map_free_a.patch -+++ b/patches/ntdll-ForceBottomUpAlloc/0002-ntdll-Use-MAP_FIXED_NOREPLACE-flag-in-try_map_free_a.patch -@@ -1,8 +1,8 @@ --From b2c9894cd6a81eaa9f7dd4bce3f9cbfbec17d021 Mon Sep 17 00:00:00 2001 -+From 68e035e381f5d53980a8bcd7c0798dfd4b4fbe95 Mon Sep 17 00:00:00 2001 - From: Paul Gofman - Date: Thu, 16 Jan 2020 16:09:24 +0300 --Subject: [PATCH] ntdll: Use MAP_FIXED_NOREPLACE flag in try_map_free_area() if -- available. -+Subject: [PATCH 2/6] ntdll: Use MAP_FIXED_NOREPLACE flag in -+ try_map_free_area() if available. - - Avoids actual mapping followed by unmapping back if the memory range is - already mapped. -@@ -11,10 +11,10 @@ already mapped. - 1 file changed, 9 insertions(+), 3 deletions(-) - - diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c --index c29f695d694..8d3e25481ec 100644 -+index 5c2ecfab398..93b5d99dadd 100644 - --- a/dlls/ntdll/unix/virtual.c - +++ b/dlls/ntdll/unix/virtual.c --@@ -1008,22 +1008,28 @@ static struct wine_rb_entry *find_view_inside_range( void **base_ptr, void **end -+@@ -1055,22 +1055,28 @@ static struct wine_rb_entry *find_view_inside_range( void **base_ptr, void **end - static void* try_map_free_area( void *base, void *end, ptrdiff_t step, - void *start, size_t size, int unix_prot ) - { -diff --git a/patches/ntdll-ForceBottomUpAlloc/0003-ntdll-Force-bottom-up-allocation-order-for-64-bit-ar.patch b/patches/ntdll-ForceBottomUpAlloc/0003-ntdll-Force-bottom-up-allocation-order-for-64-bit-ar.patch -index 44980f11a..279c8e3c2 100644 ---- a/patches/ntdll-ForceBottomUpAlloc/0003-ntdll-Force-bottom-up-allocation-order-for-64-bit-ar.patch -+++ b/patches/ntdll-ForceBottomUpAlloc/0003-ntdll-Force-bottom-up-allocation-order-for-64-bit-ar.patch -@@ -1,7 +1,7 @@ --From 9f7320fe58c85f1b53301c2c9a2a80fa8d4ed228 Mon Sep 17 00:00:00 2001 -+From 25be7201abeb509db4b28b81914036bc0c00c2f9 Mon Sep 17 00:00:00 2001 - From: Paul Gofman - Date: Mon, 25 Nov 2019 12:19:20 +0300 --Subject: [PATCH] ntdll: Force bottom up allocation order for 64 bit arch -+Subject: [PATCH 3/6] ntdll: Force bottom up allocation order for 64 bit arch - unless top down is requested. - - Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48175 -@@ -11,10 +11,10 @@ Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46568 - 1 file changed, 10 insertions(+), 2 deletions(-) - - diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c --index 8d3e25481ec..dc20e827141 100644 -+index 93b5d99dadd..87b33016b72 100644 - --- a/dlls/ntdll/unix/virtual.c - +++ b/dlls/ntdll/unix/virtual.c --@@ -1715,13 +1715,19 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size, -+@@ -1775,13 +1775,19 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size, - } - else - { -@@ -35,7 +35,7 @@ index 8d3e25481ec..dc20e827141 100644 - if (mmap_enum_reserved_areas( alloc_reserved_area_callback, &alloc, top_down )) - { - ptr = alloc.result; --@@ -1731,7 +1737,7 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size, -+@@ -1791,7 +1797,7 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size, - goto done; - } - -@@ -44,7 +44,7 @@ index 8d3e25481ec..dc20e827141 100644 - { - if (!(ptr = map_free_area( address_space_start, alloc.limit, size, - top_down, get_unix_prot(vprot) ))) --@@ -1740,6 +1746,8 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size, -+@@ -1800,6 +1806,8 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size, - goto done; - } - -diff --git a/patches/ntdll-ForceBottomUpAlloc/0004-ntdll-Increase-step-after-failed-map-attempt-in-try_.patch b/patches/ntdll-ForceBottomUpAlloc/0004-ntdll-Increase-step-after-failed-map-attempt-in-try_.patch -index 9361f0938..0b5c7618a 100644 ---- a/patches/ntdll-ForceBottomUpAlloc/0004-ntdll-Increase-step-after-failed-map-attempt-in-try_.patch -+++ b/patches/ntdll-ForceBottomUpAlloc/0004-ntdll-Increase-step-after-failed-map-attempt-in-try_.patch -@@ -1,7 +1,7 @@ --From e521333684d1286fff7b6625515d13ad6f3fcba3 Mon Sep 17 00:00:00 2001 -+From d74a5c586c00a879fa1182af72c15c154e5dd096 Mon Sep 17 00:00:00 2001 - From: Paul Gofman - Date: Tue, 14 Jan 2020 21:39:23 +0300 --Subject: [PATCH] ntdll: Increase step after failed map attempt in -+Subject: [PATCH 4/6] ntdll: Increase step after failed map attempt in - try_map_free_area(). - - --- -@@ -9,10 +9,10 @@ Subject: [PATCH] ntdll: Increase step after failed map attempt in - 1 file changed, 1 insertion(+) - - diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c --index dc20e827141..720d45ecb9f 100644 -+index 87b33016b72..5e79faaf6fc 100644 - --- a/dlls/ntdll/unix/virtual.c - +++ b/dlls/ntdll/unix/virtual.c --@@ -1036,6 +1036,7 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step, -+@@ -1083,6 +1083,7 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step, - step == 0) - break; - start = (char *)start + step; -diff --git a/patches/ntdll-ForceBottomUpAlloc/0005-ntdll-Use-free-area-list-for-virtual-memory-allocati.patch b/patches/ntdll-ForceBottomUpAlloc/0005-ntdll-Use-free-area-list-for-virtual-memory-allocati.patch -index 569bf3e62..1f712ba10 100644 ---- a/patches/ntdll-ForceBottomUpAlloc/0005-ntdll-Use-free-area-list-for-virtual-memory-allocati.patch -+++ b/patches/ntdll-ForceBottomUpAlloc/0005-ntdll-Use-free-area-list-for-virtual-memory-allocati.patch -@@ -1,17 +1,17 @@ --From df7b650d5e17afa411024b88d1920d0910947a6b Mon Sep 17 00:00:00 2001 -+From f14407ee5755b6482714a6232a4313bcd1531781 Mon Sep 17 00:00:00 2001 - From: Paul Gofman - Date: Tue, 14 Jan 2020 21:42:21 +0300 --Subject: [PATCH] ntdll: Use free area list for virtual memory allocation. -+Subject: [PATCH 5/6] ntdll: Use free area list for virtual memory allocation. - - --- -- dlls/ntdll/unix/virtual.c | 318 ++++++++++++++++++++++++-------------- -- 1 file changed, 204 insertions(+), 114 deletions(-) -+ dlls/ntdll/unix/virtual.c | 348 +++++++++++++++++++++++++------------- -+ 1 file changed, 234 insertions(+), 114 deletions(-) - - diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c --index 720d45ecb9f..e323f4290bf 100644 -+index 5e79faaf6fc..7f194effcaa 100644 - --- a/dlls/ntdll/unix/virtual.c - +++ b/dlls/ntdll/unix/virtual.c --@@ -192,7 +192,11 @@ static BYTE *pages_vprot; -+@@ -195,7 +195,11 @@ static BYTE *pages_vprot; - #endif - - static struct file_view *view_block_start, *view_block_end, *next_free_view; -@@ -23,7 +23,7 @@ index 720d45ecb9f..e323f4290bf 100644 - static void *preload_reserve_start; - static void *preload_reserve_end; - static BOOL use_locks; --@@ -528,13 +532,13 @@ static struct range_entry *free_ranges_lower_bound( void *addr ) -+@@ -546,13 +550,13 @@ static struct range_entry *free_ranges_lower_bound( void *addr ) - * - * Updates the free_ranges after a new view has been created. - */ -@@ -40,7 +40,7 @@ index 720d45ecb9f..e323f4290bf 100644 - /* free_ranges initial value is such that the view is either inside range or before another one. */ - assert( range != free_ranges_end ); - assert( range->end > view_base || next != free_ranges_end ); --@@ -545,7 +549,7 @@ static void free_ranges_insert_view( struct file_view *view ) -+@@ -563,7 +567,7 @@ static void free_ranges_insert_view( struct file_view *view ) - (range->end == view_base && next->base >= view_end)) - { - /* on Win64, assert that it's correctly aligned so we're not going to be in trouble later */ -@@ -49,7 +49,7 @@ index 720d45ecb9f..e323f4290bf 100644 - WARN( "range %p - %p is already mapped\n", view_base, view_end ); - return; - } --@@ -585,6 +589,12 @@ static void free_ranges_insert_view( struct file_view *view ) -+@@ -603,6 +607,12 @@ static void free_ranges_insert_view( struct file_view *view ) - } - } - -@@ -62,7 +62,7 @@ index 720d45ecb9f..e323f4290bf 100644 - - /*********************************************************************** - * free_ranges_remove_view --@@ -615,6 +625,7 @@ static void free_ranges_remove_view( struct file_view *view ) -+@@ -633,6 +643,7 @@ static void free_ranges_remove_view( struct file_view *view ) - return; - } - #endif -@@ -70,7 +70,7 @@ index 720d45ecb9f..e323f4290bf 100644 - - /* free_ranges initial value is such that the view is either inside range or before another one. */ - assert( range != free_ranges_end ); --@@ -961,44 +972,6 @@ static struct file_view *find_view_range( const void *addr, size_t size ) -+@@ -1008,44 +1019,6 @@ static struct file_view *find_view_range( const void *addr, size_t size ) - } - - -@@ -115,7 +115,7 @@ index 720d45ecb9f..e323f4290bf 100644 - /*********************************************************************** - * try_map_free_area - * --@@ -1042,65 +1015,11 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step, -+@@ -1089,65 +1062,11 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step, - return NULL; - } - -@@ -181,7 +181,7 @@ index 720d45ecb9f..e323f4290bf 100644 - */ - static void *find_reserved_free_area( void *base, void *end, size_t size, int top_down ) - { --@@ -1314,8 +1233,7 @@ static void delete_view( struct file_view *view ) /* [in] View */ -+@@ -1361,8 +1280,7 @@ static void delete_view( struct file_view *view ) /* [in] View */ - { - if (!(view->protect & VPROT_SYSTEM)) unmap_area( view->base, view->size ); - set_page_vprot( view->base, view->size, 0 ); -@@ -191,7 +191,7 @@ index 720d45ecb9f..e323f4290bf 100644 - wine_rb_remove( &views_tree, &view->entry ); - *(struct file_view **)view = next_free_view; - next_free_view = view; --@@ -1363,8 +1281,7 @@ static NTSTATUS create_view( struct file_view **view_ret, void *base, size_t siz -+@@ -1410,8 +1328,7 @@ static NTSTATUS create_view( struct file_view **view_ret, void *base, size_t siz - set_page_vprot( base, size, vprot ); - - wine_rb_put( &views_tree, view->base, &view->entry ); -@@ -201,7 +201,7 @@ index 720d45ecb9f..e323f4290bf 100644 - - *view_ret = view; - --@@ -1596,6 +1513,7 @@ struct alloc_area -+@@ -1656,6 +1573,7 @@ struct alloc_area - int top_down; - void *limit; - void *result; -@@ -209,7 +209,7 @@ index 720d45ecb9f..e323f4290bf 100644 - }; - - /*********************************************************************** --@@ -1637,6 +1555,179 @@ static int CDECL alloc_reserved_area_callback( void *start, SIZE_T size, void *a -+@@ -1697,6 +1615,212 @@ static int CDECL alloc_reserved_area_callback( void *start, SIZE_T size, void *a - return 0; - } - -@@ -303,11 +303,62 @@ index 720d45ecb9f..e323f4290bf 100644 - + return 0; - +} - + -++static void *alloc_free_area_in_range(struct area_alloc_reserved *area, char *base, char *end, -++ size_t size, int top_down, int unix_prot) -++{ -++ char *start; -++ -++ TRACE("range %p-%p.\n", base, end); -++ -++ if (base >= end) return NULL; -++ -++ area->map_area_start = base; -++ area->map_area_end = end; -++ -++ if (top_down) -++ { -++ start = ROUND_ADDR( end - size, granularity_mask ); -++ if (start >= end || start < base) -++ return NULL; -++ } -++ else -++ { -++ start = ROUND_ADDR( base + granularity_mask, granularity_mask ); -++ if (!start || start >= end || (char *)end - (char *)start < size) -++ return NULL; -++ } -++ -++ mmap_enum_reserved_areas( alloc_area_in_reserved_or_between_callback, area, top_down ); -++ if (area->result) -++ return area->result; -++ -++ if (top_down) -++ { -++ start = ROUND_ADDR( area->map_area_end - size, granularity_mask ); -++ if (start >= area->map_area_end || start < area->map_area_start) -++ return NULL; -++ -++ return try_map_free_area( area->map_area_start, start + size, area->step, -++ start, size, unix_prot ); -++ } -++ else -++ { -++ start = ROUND_ADDR( area->map_area_start + granularity_mask, granularity_mask ); -++ if (!start || start >= area->map_area_end -++ || area->map_area_end - start < size) -++ return NULL; -++ -++ return try_map_free_area( start, area->map_area_end, area->step, -++ start, size, unix_prot ); -++ } -++} -++ - +static void *alloc_free_area(void *limit, size_t size, BOOL top_down, int unix_prot) - +{ - + struct range_entry *range, *ranges_start, *ranges_end; -++ char *reserve_start, *reserve_end; - + struct area_alloc_reserved area; --+ char *start, *base, *end; -++ char *base, *end; - + int ranges_inc; - + - + TRACE("limit %p, size %p, top_down %#x.\n", limit, (void *)size, top_down); -@@ -331,6 +382,9 @@ index 720d45ecb9f..e323f4290bf 100644 - + area.top_down = top_down; - + area.unix_prot = unix_prot; - + -++ reserve_start = ROUND_ADDR((char *)preload_reserve_start, granularity_mask); -++ reserve_end = ROUND_ADDR((char *)preload_reserve_end + granularity_mask, granularity_mask); -++ - + for (range = ranges_start; range != ranges_end; range += ranges_inc) - + { - + base = range->base; -@@ -340,48 +394,27 @@ index 720d45ecb9f..e323f4290bf 100644 - + - + if (base < (char *)address_space_start) base = (char *)address_space_start; - + if (end > (char *)limit + granularity_mask + 1) end = (char *)limit + granularity_mask + 1; --+ if (base >= end) continue; - + --+ area.map_area_start = base; --+ area.map_area_end = end; --+ --+ if (top_down) --+ { --+ start = ROUND_ADDR( (char *)end - size, granularity_mask ); --+ if (start >= end || start < base) --+ continue; --+ } --+ else -++ if (reserve_end >= base) - + { --+ start = ROUND_ADDR( (char *)base + granularity_mask, granularity_mask ); --+ if (!start || start >= end || (char *)end - (char *)start < size) --+ continue; -++ if (reserve_end >= end) -++ { -++ if (reserve_start <= base) continue; /* no space in that area */ -++ if (reserve_start < end) end = reserve_start; -++ } -++ else if (reserve_start <= base) base = reserve_end; -++ else -++ { -++ /* range is split in two by the preloader reservation, try first part */ -++ if ((area.result = alloc_free_area_in_range(&area, base, reserve_start, size, top_down, unix_prot))) -++ return area.result; -++ /* then fall through to try second part */ -++ base = reserve_end; -++ } - + } --+ mmap_enum_reserved_areas( alloc_area_in_reserved_or_between_callback, &area, top_down ); --+ if (area.result) --+ return area.result; - + --+ if (top_down) --+ { --+ start = ROUND_ADDR( area.map_area_end - size, granularity_mask ); --+ if (start >= area.map_area_end || start < area.map_area_start) --+ continue; --+ --+ if ((area.result = try_map_free_area( area.map_area_start, start + size, area.step, --+ start, size, unix_prot ))) --+ return area.result; --+ } --+ else --+ { --+ start = ROUND_ADDR( area.map_area_start + granularity_mask, granularity_mask ); --+ if (!start || start >= area.map_area_end --+ || area.map_area_end - start < size) --+ continue; --+ --+ if ((area.result = try_map_free_area( start, area.map_area_end, area.step, --+ start, size, unix_prot ))) --+ return area.result; --+ } -++ if ((area.result = alloc_free_area_in_range(&area, base, end, size, top_down, unix_prot))) -++ return area.result; - + } - + return NULL; - +} -@@ -389,7 +422,7 @@ index 720d45ecb9f..e323f4290bf 100644 - /*********************************************************************** - * map_fixed_area - * --@@ -1722,11 +1813,15 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size, -+@@ -1782,11 +1906,15 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size, - alloc.size = size; - alloc.top_down = top_down; - alloc.limit = (void*)(get_zero_bits_64_mask( zero_bits_64 ) & (UINT_PTR)user_space_limit); -@@ -408,7 +441,7 @@ index 720d45ecb9f..e323f4290bf 100644 - } - - if (mmap_enum_reserved_areas( alloc_reserved_area_callback, &alloc, top_down )) --@@ -1738,15 +1833,6 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size, -+@@ -1798,15 +1926,6 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size, - goto done; - } - -@@ -424,7 +457,15 @@ index 720d45ecb9f..e323f4290bf 100644 - view_size = size + granularity_mask + 1; - - for (;;) --@@ -2466,10 +2552,14 @@ void virtual_init(void) -+@@ -2500,6 +2619,7 @@ void virtual_init(void) -+ if (preload_reserve_start) -+ address_space_start = min( address_space_start, preload_reserve_start ); -+ } -++ TRACE("preload reserve %p-%p.\n", preload_reserve_start, preload_reserve_end); -+ } -+ -+ size = ROUND_SIZE( 0, sizeof(TEB) ) + max( MINSIGSTKSZ, 8192 ); -+@@ -2528,8 +2648,8 @@ void virtual_init(void) - pages_vprot = (void *)((char *)alloc_views.base + 2 * view_block_size); - wine_rb_init( &views_tree, compare_view ); - -@@ -434,13 +475,7 @@ index 720d45ecb9f..e323f4290bf 100644 - + free_ranges[0].end = address_space_limit; - free_ranges_end = free_ranges + 1; - --+ free_ranges_remove_range(ROUND_ADDR(preload_reserve_start, granularity_mask), --+ ROUND_ADDR((char *)preload_reserve_end + granularity_mask, --+ granularity_mask), preload_reserve_start); --+ - /* make the DOS area accessible (except the low 64K) to hide bugs in broken apps like Excel 2003 */ -- size = (char *)address_space_start - (char *)0x10000; -- if (size && mmap_is_in_reserved_area( (void*)0x10000, size ) == 1) - -- - 2.26.2 - -diff --git a/patches/ntdll-ForceBottomUpAlloc/0006-ntdll-Permanently-exclude-natively-mapped-areas-from.patch b/patches/ntdll-ForceBottomUpAlloc/0006-ntdll-Permanently-exclude-natively-mapped-areas-from.patch -index 8cf896f8a..9bb16bdfc 100644 ---- a/patches/ntdll-ForceBottomUpAlloc/0006-ntdll-Permanently-exclude-natively-mapped-areas-from.patch -+++ b/patches/ntdll-ForceBottomUpAlloc/0006-ntdll-Permanently-exclude-natively-mapped-areas-from.patch -@@ -1,18 +1,18 @@ --From 81a8c626f834f3b2195980e84e2f5fc0a5b1e0e6 Mon Sep 17 00:00:00 2001 -+From ac8fd6b34fa269ce840566055cc1c0b6c023516e Mon Sep 17 00:00:00 2001 - From: Paul Gofman - Date: Tue, 2 Jun 2020 21:06:33 +0300 --Subject: [PATCH] ntdll: Permanently exclude natively mapped areas from free -- areas list. -+Subject: [PATCH 6/6] ntdll: Permanently exclude natively mapped areas from -+ free areas list. - - --- - dlls/ntdll/unix/virtual.c | 25 +++++++++++++++++++++++++ - 1 file changed, 25 insertions(+) - - diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c --index e323f4290bf..778f5d8c3b8 100644 -+index 7f194effcaa..0e2e20396f3 100644 - --- a/dlls/ntdll/unix/virtual.c - +++ b/dlls/ntdll/unix/virtual.c --@@ -123,6 +123,9 @@ static const BYTE VIRTUAL_Win32Flags[16] = -+@@ -124,6 +124,9 @@ static const BYTE VIRTUAL_Win32Flags[16] = - - static struct wine_rb_tree views_tree; - -@@ -22,7 +22,7 @@ index e323f4290bf..778f5d8c3b8 100644 - static RTL_CRITICAL_SECTION csVirtual; - static RTL_CRITICAL_SECTION_DEBUG critsect_debug = - { --@@ -1004,6 +1007,13 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step, -+@@ -1051,6 +1054,13 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step, - if (ptr != (void *)-1) - munmap( ptr, size ); - -@@ -36,7 +36,7 @@ index e323f4290bf..778f5d8c3b8 100644 - if ((step > 0 && (char *)end - (char *)start < step) || - (step < 0 && (char *)start - (char *)base < -step) || - step == 0) --@@ -1817,9 +1827,24 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size, -+@@ -1910,9 +1920,24 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size, - - if (is_win64 || zero_bits_64) - { diff --git a/wine.spec b/wine.spec index 3091bf4..ac5168d 100644 --- a/wine.spec +++ b/wine.spec @@ -3,7 +3,7 @@ %global no64bit 0 %global winegecko 2.47.1 -%global winemono 5.0.0 +%global winemono 5.1.0 #global _default_patch_fuzz 2 %ifarch %{ix86} x86_64 %global wineacm acm @@ -44,8 +44,8 @@ %endif Name: wine -Version: 5.10 -Release: 2%{?dist} +Version: 5.12 +Release: 1%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -75,7 +75,6 @@ Source109: wine-oleview.desktop Source150: wine.appdata.xml # wine bugs -Patch100: wine-staging-5.10-ntdll.patch # desktop dir Source200: wine.menu @@ -96,7 +95,7 @@ Patch511: wine-cjk.patch %if 0%{?wine_staging} # wine-staging patches # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar.gz#/wine-staging-%{version}.tar.gz +Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.1.tar.gz#/wine-staging-%{version}.1.tar.gz %endif %if !%{?no64bit} @@ -693,16 +692,8 @@ This package adds the opencl driver for wine. %if 0%{?wine_staging} # setup and apply wine-staging patches gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 -%patch100 -p1 -b.ntdll -%ifarch %{arm} aarch64 -patches/patchinstall.sh DESTDIR="`pwd`" --all \ - -W ntdll-NtContinue \ - -W ntdll-Syscall_Emulation \ - -W winebuild-Fake_Dlls -%else patches/patchinstall.sh DESTDIR="`pwd`" --all -%endif # fix parallelized build sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in @@ -1571,7 +1562,7 @@ fi %{_libdir}/wine/dxgkrnl.%{winesys} %{_libdir}/wine/dxgmms1.%{winesys} %endif -%{_libdir}/wine/dxva2.dll.so +%{_libdir}/wine/dxva2.%{winedll} %{_libdir}/wine/esent.%{winedll} %{_libdir}/wine/evr.%{winedll} %{_libdir}/wine/explorerframe.%{winedll} @@ -1804,7 +1795,7 @@ fi %{_libdir}/wine/npmshtml.%{winedll} %{_libdir}/wine/npptools.%{winedll} %{_libdir}/wine/ntdll.so -%{_libdir}/wine/ntdll.dll.so +%{_libdir}/wine/ntdll.%{winedll} %{_libdir}/wine/ntdsapi.%{winedll} %{_libdir}/wine/ntprint.%{winedll} %if 0%{?wine_staging} @@ -2343,6 +2334,9 @@ fi %endif %changelog +* Tue Jul 14 2020 Michael Cronenworth 5.12-1 +- version update + * Wed Jul 01 2020 Jeff Law 5.10-2 - Disable LTO From c65cf5dacfecaaa5a886257272c968d55e398e17 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 14 Jul 2020 15:22:25 -0500 Subject: [PATCH 589/715] Three new DLLs in 5.11/5.12 --- wine.spec | 3 +++ 1 file changed, 3 insertions(+) diff --git a/wine.spec b/wine.spec index ac5168d..1bc1047 100644 --- a/wine.spec +++ b/wine.spec @@ -1210,6 +1210,7 @@ fi %{_libdir}/wine/termsv.%{wineexe} %{_libdir}/wine/view.%{wineexe} %{_libdir}/wine/wevtutil.%{wineexe} +%{_libdir}/wine/where.%{wineexe} %{_libdir}/wine/whoami.%{wineexe} %{_libdir}/wine/wineboot.%{wineexe} %{_libdir}/wine/winebrowser.exe.so @@ -1307,6 +1308,7 @@ fi %{_libdir}/wine/api-ms-win-core-misc-l1-1-0.%{winedll} %{_libdir}/wine/api-ms-win-core-namedpipe-l1-1-0.%{winedll} %{_libdir}/wine/api-ms-win-core-namedpipe-l1-2-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-namedpipe-ansi-l1-1-0.%{winedll} %{_libdir}/wine/api-ms-win-core-namespace-l1-1-0.%{winedll} %{_libdir}/wine/api-ms-win-core-normalization-l1-1-0.%{winedll} %{_libdir}/wine/api-ms-win-core-path-l1-1-0.%{winedll} @@ -1828,6 +1830,7 @@ fi %{_libdir}/wine/propsys.%{winedll} %{_libdir}/wine/psapi.%{winedll} %{_libdir}/wine/pstorec.%{winedll} +%{_libdir}/wine/pwrshplugin.%{winedll} %{_libdir}/wine/qasf.%{winedll} %{_libdir}/wine/qcap.dll.so %{_libdir}/wine/qdvd.%{winedll} From e54000cab7ae2a7a1de212ae708ad84b65d89c7a Mon Sep 17 00:00:00 2001 From: Marie Loise Nolden Date: Thu, 16 Jul 2020 05:07:35 +0000 Subject: [PATCH 590/715] Update wine.spec --- wine.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 1bc1047..6c23407 100644 --- a/wine.spec +++ b/wine.spec @@ -141,7 +141,7 @@ BuildRequires: systemd-devel BuildRequires: zlib-devel BuildRequires: fontforge freetype-devel BuildRequires: libgphoto2-devel -%if 0%{?fedora} <= 30 +%if 0%{?fedora} && 0%{?fedora} <= 30 BuildRequires: isdn4k-utils-devel %endif BuildRequires: libpcap-devel From dac90127b85c1468fae43f2144b23d055566b7e7 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 20 Jul 2020 11:42:52 -0500 Subject: [PATCH 591/715] Update to 5.13 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 8 ++++++-- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index b9639ee..d3c5b39 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-5.12.tar.xz -/wine-5.12.tar.xz.sign -/wine-staging-5.12.1.tar.gz +/wine-5.13.tar.xz +/wine-5.13.tar.xz.sign +/wine-staging-5.13.tar.gz diff --git a/sources b/sources index 29ea6fb..a1d8595 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-5.12.tar.xz) = 1272b143d64ed6083cd797474f18dbd2bca7a38d488474ae5f054f47789b4fc1d386c7bbf8aa1bd86f9507908fc799b4f45e10e1d8c628c5bd52c42b1d74c8a8 -SHA512 (wine-5.12.tar.xz.sign) = 0c2fdab2e8c46addcd2cebbc46f9125e7f544bddef89d19713310ec889992936ba2dcead93d6291c10dcd88a60eba0d84bd6c0459a512009899fdd4eb4435813 -SHA512 (wine-staging-5.12.1.tar.gz) = 1a4cead8f17d41f1e5ab1be2f8dd8e098fc655b6240bdae49d3e8ab8f112ea4b46a92a95780b325c037dd3e5099e481392860c8dbf72dd03acee39855335750d +SHA512 (wine-5.13.tar.xz) = 3093be3b974609f83fe2da6ca724237fa07ada260ec503fc00a8729b74d77e22b329044e411ed1e67f287c4e69ef3b16953ddb3e93599d97d3ad1ffffb608704 +SHA512 (wine-5.13.tar.xz.sign) = 61fceae1a7d08852dc2af3bc1c016e4c8acc00da781b542267ac3409bd6dc72764ecc1300f235d2f079517568718f196d6fcae1a94eb53d9e5119761a4915499 +SHA512 (wine-staging-5.13.tar.gz) = 9bdda76524ea97c9847182d912544a2ecd5efddc03511af151c054d6cce933e40c8cf10722d34d8875115aed7c1888883fdce3e00f481c31116fd33d91304c6d diff --git a/wine.spec b/wine.spec index 1bc1047..68a10b8 100644 --- a/wine.spec +++ b/wine.spec @@ -44,7 +44,7 @@ %endif Name: wine -Version: 5.12 +Version: 5.13 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -95,7 +95,7 @@ Patch511: wine-cjk.patch %if 0%{?wine_staging} # wine-staging patches # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.1.tar.gz#/wine-staging-%{version}.1.tar.gz +Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar.gz#/wine-staging-%{version}.tar.gz %endif %if !%{?no64bit} @@ -1349,6 +1349,7 @@ fi %{_libdir}/wine/api-ms-win-core-sysinfo-l1-1-0.%{winedll} %{_libdir}/wine/api-ms-win-core-sysinfo-l1-2-0.%{winedll} %{_libdir}/wine/api-ms-win-core-sysinfo-l1-2-1.%{winedll} +%{_libdir}/wine/api-ms-win-core-systemtopology-l1-1-0.%{winedll} %{_libdir}/wine/api-ms-win-core-threadpool-l1-1-0.%{winedll} %{_libdir}/wine/api-ms-win-core-threadpool-l1-2-0.%{winedll} %{_libdir}/wine/api-ms-win-core-threadpool-legacy-l1-1-0.%{winedll} @@ -2337,6 +2338,9 @@ fi %endif %changelog +* Mon Jul 20 2020 Michael Cronenworth 5.13-1 +- version update + * Tue Jul 14 2020 Michael Cronenworth 5.12-1 - version update From 53035780cbb0670d0d3b8ea6954aa374666065bd Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 29 Jul 2020 14:09:45 +0000 Subject: [PATCH 592/715] - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- wine.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 3ba38f6..19ac876 100644 --- a/wine.spec +++ b/wine.spec @@ -45,7 +45,7 @@ Name: wine Version: 5.13 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -2338,6 +2338,9 @@ fi %endif %changelog +* Wed Jul 29 2020 Fedora Release Engineering - 5.13-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + * Mon Jul 20 2020 Michael Cronenworth 5.13-1 - version update From 198d919ceba5ad67fc8d043220ae639ed6d6ec25 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 3 Aug 2020 09:55:09 -0500 Subject: [PATCH 593/715] Update to 5.14, new webdings font --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 19 ++++++++++++++++++- 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index d3c5b39..7817af3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-5.13.tar.xz -/wine-5.13.tar.xz.sign -/wine-staging-5.13.tar.gz +/wine-5.14.tar.xz +/wine-5.14.tar.xz.sign +/wine-staging-5.14.tar.gz diff --git a/sources b/sources index a1d8595..bb12819 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-5.13.tar.xz) = 3093be3b974609f83fe2da6ca724237fa07ada260ec503fc00a8729b74d77e22b329044e411ed1e67f287c4e69ef3b16953ddb3e93599d97d3ad1ffffb608704 -SHA512 (wine-5.13.tar.xz.sign) = 61fceae1a7d08852dc2af3bc1c016e4c8acc00da781b542267ac3409bd6dc72764ecc1300f235d2f079517568718f196d6fcae1a94eb53d9e5119761a4915499 -SHA512 (wine-staging-5.13.tar.gz) = 9bdda76524ea97c9847182d912544a2ecd5efddc03511af151c054d6cce933e40c8cf10722d34d8875115aed7c1888883fdce3e00f481c31116fd33d91304c6d +SHA512 (wine-5.14.tar.xz) = 21240d832497ba9a4313613ae27c21316ef383290dfcce81aebfbbf45edb7db6981739fe2ad42138b6df0a75a434d5aa8e4d87f9745f98c5f14000e1949ec342 +SHA512 (wine-5.14.tar.xz.sign) = 9fe8e48fd31e7c2e96450558d362c8b1704a9ffae633517ef74562cbc8264349788b1070442f142b4e818fbfd8870876349306d2696647e417fcc227fc4ea3f9 +SHA512 (wine-staging-5.14.tar.gz) = da81b572480a6fc12aa39a93070e2b88593bba1463d5b0545083dbd6eaa306ec57fe39e77f24544d2a1a396a3e64c1687c12b69e0643e11a909e4e31a3e46014 diff --git a/wine.spec b/wine.spec index 3ba38f6..4922494 100644 --- a/wine.spec +++ b/wine.spec @@ -44,7 +44,7 @@ %endif Name: wine -Version: 5.13 +Version: 5.14 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -454,6 +454,7 @@ Obsoletes: wine-times-new-roman-fonts-system <= %{version}-%{release} %endif # 0%%{?wine_staging} Requires: wine-symbol-fonts = %{version}-%{release} +Requires: wine-webdings-fonts = %{version}-%{release} Requires: wine-wingdings-fonts = %{version}-%{release} # intermediate fix for #593140 Requires: liberation-sans-fonts liberation-serif-fonts liberation-mono-fonts @@ -575,6 +576,14 @@ Requires: fontpackages-filesystem %description symbol-fonts %{summary} +%package webdings-fonts +Summary: Wine Webdings font family +BuildArch: noarch +Requires: fontpackages-filesystem + +%description webdings-fonts +%{summary} + %package wingdings-fonts Summary: Wine Wingdings font family BuildArch: noarch @@ -1763,6 +1772,7 @@ fi %{_libdir}/wine/msvcp120.%{winedll} %{_libdir}/wine/msvcp120_app.%{winedll} %{_libdir}/wine/msvcp140.%{winedll} +%{_libdir}/wine/msvcp140_1.%{winedll} %{_libdir}/wine/msvcr70.dll.so %{_libdir}/wine/msvcr71.dll.so %{_libdir}/wine/msvcr80.dll.so @@ -2238,6 +2248,10 @@ fi %doc COPYING.LIB %{_datadir}/wine/fonts/symbol.ttf +%files webdings-fonts +%doc COPYING.LIB +%{_datadir}/wine/fonts/webdings.ttf + %files wingdings-fonts %doc COPYING.LIB %{_datadir}/wine/fonts/wingding.ttf @@ -2338,6 +2352,9 @@ fi %endif %changelog +* Mon Aug 03 2020 Michael Cronenworth 5.14-1 +- version update + * Mon Jul 20 2020 Michael Cronenworth 5.13-1 - version update From 6c3186e87c47f605f35d3e7fb1dc249528703e15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= Date: Mon, 10 Aug 2020 09:42:02 +0200 Subject: [PATCH 594/715] Recommend wine-dxvk as part of https://fedoraproject.org/wiki/Changes/DXVKwined3d --- wine.spec | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index b6b2e3b..4bec165 100644 --- a/wine.spec +++ b/wine.spec @@ -45,7 +45,7 @@ Name: wine Version: 5.14 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -219,6 +219,9 @@ Requires: wine-mono = %winemono Requires: /usr/bin/ntlm_auth Requires: mesa-dri-drivers(x86-32) %endif +%if 0%{?fedora} >= 33 +Recommends: wine-dxvk(x86-32) +%endif %endif # x86-64 parts @@ -240,6 +243,9 @@ Requires: mingw64-wine-gecko = %winegecko Requires: wine-mono = %winemono %endif Requires: mesa-dri-drivers(x86-64) +%if 0%{?fedora} >= 33 +Recommends: wine-dxvk(x86-64) +%endif %endif # ARM parts @@ -2352,6 +2358,9 @@ fi %endif %changelog +* Mon Aug 10 2020 Frantisek Zatloukal - 5.14-2 +- Recommend wine-dxvk as part of https://fedoraproject.org/wiki/Changes/DXVKwined3d + * Mon Aug 03 2020 Michael Cronenworth 5.14-1 - version update From 42f47ca3ce19f396436aa5a0318f8a83902595ca Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 16 Aug 2020 14:42:03 -0500 Subject: [PATCH 595/715] Update to 5.15 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 12 +++++++++--- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 7817af3..a8a1bb5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-5.14.tar.xz -/wine-5.14.tar.xz.sign -/wine-staging-5.14.tar.gz +/wine-5.15.tar.xz +/wine-5.15.tar.xz.sign +/wine-staging-5.15.2.tar.gz diff --git a/sources b/sources index bb12819..c361790 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-5.14.tar.xz) = 21240d832497ba9a4313613ae27c21316ef383290dfcce81aebfbbf45edb7db6981739fe2ad42138b6df0a75a434d5aa8e4d87f9745f98c5f14000e1949ec342 -SHA512 (wine-5.14.tar.xz.sign) = 9fe8e48fd31e7c2e96450558d362c8b1704a9ffae633517ef74562cbc8264349788b1070442f142b4e818fbfd8870876349306d2696647e417fcc227fc4ea3f9 -SHA512 (wine-staging-5.14.tar.gz) = da81b572480a6fc12aa39a93070e2b88593bba1463d5b0545083dbd6eaa306ec57fe39e77f24544d2a1a396a3e64c1687c12b69e0643e11a909e4e31a3e46014 +SHA512 (wine-5.15.tar.xz) = 90baf7df915cf1ce88022a4aebe4a6975b4b0defcc043a0c6738fefb9b853e0bfbcc645c39e33cdbb20673fab5df7561ab5b55e38a4e0a68907912a80e556ae3 +SHA512 (wine-5.15.tar.xz.sign) = f471d59773ad290bd4a8942380391965df630b6126b48cbbd46726b0b9d7b394b3eca3b0f6b0a0a045842aa6501ae05c67e825085845188075d6723f9a0d66b7 +SHA512 (wine-staging-5.15.2.tar.gz) = d87209373715707a3c36ffe907bdad89693d9dc693b0d732a5a432df612fb0b043eef7c7064868fedc8b5f02ad430d31efc2382df324277bfa1ff61867641590 diff --git a/wine.spec b/wine.spec index 4bec165..27a7288 100644 --- a/wine.spec +++ b/wine.spec @@ -44,8 +44,8 @@ %endif Name: wine -Version: 5.14 -Release: 2%{?dist} +Version: 5.15 +Release: 1%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -95,7 +95,7 @@ Patch511: wine-cjk.patch %if 0%{?wine_staging} # wine-staging patches # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar.gz#/wine-staging-%{version}.tar.gz +Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.2.tar.gz#/wine-staging-%{version}.2.tar.gz %endif %if !%{?no64bit} @@ -1285,6 +1285,8 @@ fi %{_libdir}/wine/api-ms-win-core-file-l2-1-0.%{winedll} %{_libdir}/wine/api-ms-win-core-file-l2-1-1.%{winedll} %{_libdir}/wine/api-ms-win-core-file-l2-1-2.%{winedll} +%{_libdir}/wine/api-ms-win-core-file-ansi-l2-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-core-file-fromapp-l1-1-0.%{winedll} %{_libdir}/wine/api-ms-win-core-handle-l1-1-0.%{winedll} %{_libdir}/wine/api-ms-win-core-heap-l1-1-0.%{winedll} %{_libdir}/wine/api-ms-win-core-heap-l1-2-0.%{winedll} @@ -1319,6 +1321,7 @@ fi %{_libdir}/wine/api-ms-win-core-memory-l1-1-0.%{winedll} %{_libdir}/wine/api-ms-win-core-memory-l1-1-1.%{winedll} %{_libdir}/wine/api-ms-win-core-memory-l1-1-2.%{winedll} +%{_libdir}/wine/api-ms-win-core-memory-l1-1-3.%{winedll} %{_libdir}/wine/api-ms-win-core-memory-l1-1-4.%{winedll} %{_libdir}/wine/api-ms-win-core-misc-l1-1-0.%{winedll} %{_libdir}/wine/api-ms-win-core-namedpipe-l1-1-0.%{winedll} @@ -2358,6 +2361,9 @@ fi %endif %changelog +* Sun Aug 16 2020 Michael Cronenworth 5.15-1 +- version update + * Mon Aug 10 2020 Frantisek Zatloukal - 5.14-2 - Recommend wine-dxvk as part of https://fedoraproject.org/wiki/Changes/DXVKwined3d From 7934d1463fdf3d6482b8474c3e30cb498a479f56 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 1 Sep 2020 13:18:18 -0500 Subject: [PATCH 596/715] Update to 5.16 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 15 ++++++++++++--- 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index a8a1bb5..6ef4090 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-5.15.tar.xz -/wine-5.15.tar.xz.sign -/wine-staging-5.15.2.tar.gz +/wine-5.16.tar.xz +/wine-5.16.tar.xz.sign +/wine-staging-5.16.tar.gz diff --git a/sources b/sources index c361790..927e78f 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-5.15.tar.xz) = 90baf7df915cf1ce88022a4aebe4a6975b4b0defcc043a0c6738fefb9b853e0bfbcc645c39e33cdbb20673fab5df7561ab5b55e38a4e0a68907912a80e556ae3 -SHA512 (wine-5.15.tar.xz.sign) = f471d59773ad290bd4a8942380391965df630b6126b48cbbd46726b0b9d7b394b3eca3b0f6b0a0a045842aa6501ae05c67e825085845188075d6723f9a0d66b7 -SHA512 (wine-staging-5.15.2.tar.gz) = d87209373715707a3c36ffe907bdad89693d9dc693b0d732a5a432df612fb0b043eef7c7064868fedc8b5f02ad430d31efc2382df324277bfa1ff61867641590 +SHA512 (wine-5.16.tar.xz) = e198478bcf91106af82b37c87f42961a6c37aa80ea5cf05c268a36ba2ba73c23ac6864b183b927cf3c10d666d60b9f6877edccf7746eafe8968a36b5ce3740be +SHA512 (wine-5.16.tar.xz.sign) = 4d4e5386b9e0e2880a716a840014ef036931e48ff9f52c92b174de0de7cb85559f0aa45d8ecfad3340ce0c62aeeebd1188a6820db3af487d22a9620d9bc786e6 +SHA512 (wine-staging-5.16.tar.gz) = 62e103dd5b591bc1066b91299a95c318bf1588f273f8380c1ac43d5367b695055a1684b8cc6473255a0b449b21a483ff4e87adc3ae332d0fb520023340fff79f diff --git a/wine.spec b/wine.spec index 27a7288..27d5815 100644 --- a/wine.spec +++ b/wine.spec @@ -44,7 +44,7 @@ %endif Name: wine -Version: 5.15 +Version: 5.16 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -95,7 +95,7 @@ Patch511: wine-cjk.patch %if 0%{?wine_staging} # wine-staging patches # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.2.tar.gz#/wine-staging-%{version}.2.tar.gz +Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar.gz#/wine-staging-%{version}.tar.gz %endif %if !%{?no64bit} @@ -1127,7 +1127,6 @@ fi %doc documentation/README.* %if 0%{?wine_staging} %{_bindir}/msidb -%{_libdir}/wine/runas.%{wineexe} %endif %{_bindir}/winedump %{_libdir}/wine/explorer.%{wineexe} @@ -1811,6 +1810,9 @@ fi %{_libdir}/wine/netio.%{winesys} %{_libdir}/wine/netprofm.%{winedll} %{_libdir}/wine/netsh.%{wineexe} +%if 0%{?wine_staging} +%{_libdir}/wine/netutils.%{winedll} +%endif %{_libdir}/wine/newdev.%{winedll} %{_libdir}/wine/ninput.%{winedll} %{_libdir}/wine/normaliz.%{winedll} @@ -1903,6 +1905,9 @@ fi %{_libdir}/wine/softpub.%{winedll} %{_libdir}/wine/spoolsv.%{wineexe} %{_libdir}/wine/srclient.%{winedll} +%if 0%{?wine_staging} +%{_libdir}/wine/srvcli.%{winedll} +%endif %{_libdir}/wine/sspicli.%{winedll} %{_libdir}/wine/stdole2.%{winetlb} %{_libdir}/wine/stdole32.%{winetlb} @@ -1963,6 +1968,7 @@ fi %{_libdir}/wine/wimgapi.%{winedll} %if 0%{?wine_staging} %{_libdir}/wine/win32k.%{winesys} +%{_libdir}/wine/windows.gaming.input.%{winedll} %endif %{_libdir}/wine/windowscodecs.dll.so %{_libdir}/wine/windowscodecsext.%{winedll} @@ -2361,6 +2367,9 @@ fi %endif %changelog +* Tue Sep 01 2020 Michael Cronenworth 5.16-1 +- version update + * Sun Aug 16 2020 Michael Cronenworth 5.15-1 - version update From 79a233ee7df77554e5431ca434f8612748245625 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 15 Sep 2020 16:56:20 -0500 Subject: [PATCH 597/715] Update to 5.17 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 10 +++++++--- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 6ef4090..4016fe2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-5.16.tar.xz -/wine-5.16.tar.xz.sign -/wine-staging-5.16.tar.gz +/wine-5.17.tar.xz +/wine-5.17.tar.xz.sign +/wine-staging-5.17.2.tar.gz diff --git a/sources b/sources index 927e78f..f8f62b7 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-5.16.tar.xz) = e198478bcf91106af82b37c87f42961a6c37aa80ea5cf05c268a36ba2ba73c23ac6864b183b927cf3c10d666d60b9f6877edccf7746eafe8968a36b5ce3740be -SHA512 (wine-5.16.tar.xz.sign) = 4d4e5386b9e0e2880a716a840014ef036931e48ff9f52c92b174de0de7cb85559f0aa45d8ecfad3340ce0c62aeeebd1188a6820db3af487d22a9620d9bc786e6 -SHA512 (wine-staging-5.16.tar.gz) = 62e103dd5b591bc1066b91299a95c318bf1588f273f8380c1ac43d5367b695055a1684b8cc6473255a0b449b21a483ff4e87adc3ae332d0fb520023340fff79f +SHA512 (wine-5.17.tar.xz) = 05338036fa9b195d9cf8a84a1bcc03f35422d5f07744ec4430f20874601829be5904be10060353599cb0187728123f959ccc75e79f1ce1c47178ae9cd55ef696 +SHA512 (wine-5.17.tar.xz.sign) = 118c5ffefc986bec85c94c674317f81c609e325b791a8638652191a8a3011585d8de1d98029c0ed11a1f8abc83d1762546656c02188a3844d4fc929b663d765e +SHA512 (wine-staging-5.17.2.tar.gz) = 985450942674d58a19129e7a000424d41cd8a564d370c4cfce3df84a89adb2df53016f3f8d58c197818f31ff1c896df09a828a502942e265334311593713d2cb diff --git a/wine.spec b/wine.spec index 27d5815..3bfa3c6 100644 --- a/wine.spec +++ b/wine.spec @@ -44,7 +44,7 @@ %endif Name: wine -Version: 5.16 +Version: 5.17 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -95,7 +95,7 @@ Patch511: wine-cjk.patch %if 0%{?wine_staging} # wine-staging patches # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar.gz#/wine-staging-%{version}.tar.gz +Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.2.tar.gz#/wine-staging-%{version}.2.tar.gz %endif %if !%{?no64bit} @@ -1245,7 +1245,7 @@ fi %{_libdir}/wine/actxprxy.%{winedll} %{_libdir}/wine/adsldp.%{winedll} %{_libdir}/wine/adsldpc.%{winedll} -%{_libdir}/wine/advapi32.dll.so +%{_libdir}/wine/advapi32.%{winedll} %{_libdir}/wine/advpack.%{winedll} %{_libdir}/wine/amsi.%{winedll} %{_libdir}/wine/amstream.%{winedll} @@ -1969,6 +1969,7 @@ fi %if 0%{?wine_staging} %{_libdir}/wine/win32k.%{winesys} %{_libdir}/wine/windows.gaming.input.%{winedll} +%{_libdir}/wine/windows.media.speech.%{winedll} %endif %{_libdir}/wine/windowscodecs.dll.so %{_libdir}/wine/windowscodecsext.%{winedll} @@ -2367,6 +2368,9 @@ fi %endif %changelog +* Tue Sep 15 2020 Michael Cronenworth 5.17-1 +- version update + * Tue Sep 01 2020 Michael Cronenworth 5.16-1 - version update From 09f78fc6c15cffabad4ee9a61a90f1868a9c85e5 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 28 Sep 2020 14:03:12 -0500 Subject: [PATCH 598/715] Update to 5.18 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 28 ++++++++++++++++++++++++---- 3 files changed, 30 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index 4016fe2..82d68c4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-5.17.tar.xz -/wine-5.17.tar.xz.sign -/wine-staging-5.17.2.tar.gz +/wine-5.18.tar.xz +/wine-5.18.tar.xz.sign +/wine-staging-5.18.tar.gz diff --git a/sources b/sources index f8f62b7..edb0858 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-5.17.tar.xz) = 05338036fa9b195d9cf8a84a1bcc03f35422d5f07744ec4430f20874601829be5904be10060353599cb0187728123f959ccc75e79f1ce1c47178ae9cd55ef696 -SHA512 (wine-5.17.tar.xz.sign) = 118c5ffefc986bec85c94c674317f81c609e325b791a8638652191a8a3011585d8de1d98029c0ed11a1f8abc83d1762546656c02188a3844d4fc929b663d765e -SHA512 (wine-staging-5.17.2.tar.gz) = 985450942674d58a19129e7a000424d41cd8a564d370c4cfce3df84a89adb2df53016f3f8d58c197818f31ff1c896df09a828a502942e265334311593713d2cb +SHA512 (wine-5.18.tar.xz) = 70565fbea61b78580ca86443fcb4c10c7814c1dffcfa49ee38746fef21a52a00f2e040d9d2515892fed4021e7868720cc22b650d18872656838e4610d4d4e823 +SHA512 (wine-5.18.tar.xz.sign) = ad9921b1607ca51db45abd4d903becc0183f4aeff70fc175aa78ef6d1c69acea3f4f5d8a96651942c7426ab16c54b646aaec528fa57efd10bbf42e96b9a70b42 +SHA512 (wine-staging-5.18.tar.gz) = 75911ac4d5aaf6cfef41aa487290369d714f153b1fba2279daca75d6c5cbc7e7de9d3f8ef55eb7c311a05b86a212163e2b81ff685c1527fb0e90f223ec23dcab diff --git a/wine.spec b/wine.spec index 3bfa3c6..d21885a 100644 --- a/wine.spec +++ b/wine.spec @@ -44,7 +44,7 @@ %endif Name: wine -Version: 5.17 +Version: 5.18 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -95,7 +95,7 @@ Patch511: wine-cjk.patch %if 0%{?wine_staging} # wine-staging patches # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.2.tar.gz#/wine-staging-%{version}.2.tar.gz +Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar.gz#/wine-staging-%{version}.tar.gz %endif %if !%{?no64bit} @@ -128,7 +128,6 @@ BuildRequires: libstdc++-devel BuildRequires: libusb-devel BuildRequires: libxml2-devel BuildRequires: libxslt-devel -BuildRequires: ncurses-devel %if 0%{?fedora} BuildRequires: ocl-icd-devel BuildRequires: opencl-headers @@ -1938,7 +1937,8 @@ fi %{_libdir}/wine/url.%{winedll} %{_libdir}/wine/urlmon.%{winedll} %{_libdir}/wine/usbd.%{winesys} -%{_libdir}/wine/user32.dll.so +%{_libdir}/wine/user32.so +%{_libdir}/wine/user32.%{winedll} %{_libdir}/wine/usp10.%{winedll} %{_libdir}/wine/utildll.%{winedll} %{_libdir}/wine/uxtheme.dll.so @@ -1969,6 +1969,7 @@ fi %if 0%{?wine_staging} %{_libdir}/wine/win32k.%{winesys} %{_libdir}/wine/windows.gaming.input.%{winedll} +%{_libdir}/wine/windows.globalization.%{winedll} %{_libdir}/wine/windows.media.speech.%{winedll} %endif %{_libdir}/wine/windowscodecs.dll.so @@ -2037,6 +2038,19 @@ fi %{_libdir}/wine/x3daudio1_5.dll.so %{_libdir}/wine/x3daudio1_6.dll.so %{_libdir}/wine/x3daudio1_7.dll.so +%if 0%{?wine_staging} +%{_libdir}/wine/xactengine2_0.dll.so +%{_libdir}/wine/xactengine2_1.dll.so +%{_libdir}/wine/xactengine2_2.dll.so +%{_libdir}/wine/xactengine2_3.dll.so +%{_libdir}/wine/xactengine2_4.dll.so +%{_libdir}/wine/xactengine2_5.dll.so +%{_libdir}/wine/xactengine2_6.dll.so +%{_libdir}/wine/xactengine2_7.dll.so +%{_libdir}/wine/xactengine2_8.dll.so +%{_libdir}/wine/xactengine2_9.dll.so +%{_libdir}/wine/xactengine2_10.dll.so +%endif %{_libdir}/wine/xactengine3_0.dll.so %{_libdir}/wine/xactengine3_1.dll.so %{_libdir}/wine/xactengine3_2.dll.so @@ -2312,6 +2326,9 @@ fi # cms subpackage %files cms %{_libdir}/wine/mscms.dll.so +%if 0%{?wine_staging} +%{_datadir}/wine/color/ +%endif # twain subpackage %files twain @@ -2368,6 +2385,9 @@ fi %endif %changelog +* Mon Sep 28 2020 Michael Cronenworth 5.18-1 +- version update + * Tue Sep 15 2020 Michael Cronenworth 5.17-1 - version update From d4515a027212bb3116125b0bf0d6077c32186bbb Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 28 Sep 2020 14:51:27 -0500 Subject: [PATCH 599/715] Enable vkd3d shader support --- wine.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index d21885a..73a44fe 100644 --- a/wine.spec +++ b/wine.spec @@ -45,7 +45,7 @@ Name: wine Version: 5.18 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -174,6 +174,7 @@ BuildRequires: mpg123-devel %endif BuildRequires: SDL2-devel BuildRequires: libvkd3d-devel +BuildRequires: libvkd3d-shader-devel BuildRequires: vulkan-devel BuildRequires: libFAudio-devel BuildRequires: libappstream-glib @@ -2385,6 +2386,9 @@ fi %endif %changelog +* Mon Sep 28 2020 Michael Cronenworth 5.18-2 +- Enable vkd3d shader support + * Mon Sep 28 2020 Michael Cronenworth 5.18-1 - version update From da44ca215745e7e0c94251c170fd457bbeb39ddc Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 10 Oct 2020 14:18:30 -0500 Subject: [PATCH 600/715] Update to 5.19 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 20 +++++++++++--------- 3 files changed, 17 insertions(+), 15 deletions(-) diff --git a/.gitignore b/.gitignore index 82d68c4..187a8f9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-5.18.tar.xz -/wine-5.18.tar.xz.sign -/wine-staging-5.18.tar.gz +/wine-5.19.tar.xz +/wine-5.19.tar.xz.sign +/wine-staging-5.19.tar.gz diff --git a/sources b/sources index edb0858..5d4a3d6 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-5.18.tar.xz) = 70565fbea61b78580ca86443fcb4c10c7814c1dffcfa49ee38746fef21a52a00f2e040d9d2515892fed4021e7868720cc22b650d18872656838e4610d4d4e823 -SHA512 (wine-5.18.tar.xz.sign) = ad9921b1607ca51db45abd4d903becc0183f4aeff70fc175aa78ef6d1c69acea3f4f5d8a96651942c7426ab16c54b646aaec528fa57efd10bbf42e96b9a70b42 -SHA512 (wine-staging-5.18.tar.gz) = 75911ac4d5aaf6cfef41aa487290369d714f153b1fba2279daca75d6c5cbc7e7de9d3f8ef55eb7c311a05b86a212163e2b81ff685c1527fb0e90f223ec23dcab +SHA512 (wine-5.19.tar.xz) = b91eb1cb1225ac8abe26f5c5dd74fb376e6489b460035c70e6c7890595086e99273497741b6a736ef4884ae7bacc44482d2e3e8ba7e8d85c78c571bd4b133d8a +SHA512 (wine-5.19.tar.xz.sign) = 2626c6385e406600b7532b608db8621e201a8a43cd484a7d32a631446caea5d9152a23e138d68bb89bae20ed74d17559ffaa4797018abc0204b00e71118059b5 +SHA512 (wine-staging-5.19.tar.gz) = 4335ce48437641bbfd8b882cc92cd2970493586f4ac6501ffb94a0f2dcd38ec632d6afabf71d2c1ab1806a5cf594c2988f94a86c508fcd24a7d42078c662add9 diff --git a/wine.spec b/wine.spec index 73a44fe..76c8cfa 100644 --- a/wine.spec +++ b/wine.spec @@ -3,7 +3,7 @@ %global no64bit 0 %global winegecko 2.47.1 -%global winemono 5.1.0 +%global winemono 5.1.1 #global _default_patch_fuzz 2 %ifarch %{ix86} x86_64 %global wineacm acm @@ -44,8 +44,8 @@ %endif Name: wine -Version: 5.18 -Release: 2%{?dist} +Version: 5.19 +Release: 1%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -1487,7 +1487,7 @@ fi %{_libdir}/wine/avicap32.dll.so %{_libdir}/wine/avifil32.%{winedll} %{_libdir}/wine/avrt.%{winedll} -%{_libdir}/wine/bcrypt.dll.so +%{_libdir}/wine/bcrypt.so %{_libdir}/wine/bluetoothapis.%{winedll} %{_libdir}/wine/browseui.%{winedll} %{_libdir}/wine/bthprops.%{winecpl} @@ -1693,7 +1693,7 @@ fi %{_libdir}/wine/jscript.%{winedll} %{_libdir}/wine/jsproxy.%{winedll} %{_libdir}/wine/kerberos.dll.so -%{_libdir}/wine/kernel32.dll.so +%{_libdir}/wine/kernel32.%{winedll} %{_libdir}/wine/kernelbase.%{winedll} %{_libdir}/wine/ksecdd.%{winesys} %{_libdir}/wine/ksproxy.%{wineax} @@ -1827,7 +1827,7 @@ fi %{_libdir}/wine/nvcuvid.dll.so %endif %{_libdir}/wine/objsel.%{winedll} -%{_libdir}/wine/odbc32.dll.so +%{_libdir}/wine/odbc32.so %{_libdir}/wine/odbcbcp.%{winedll} %{_libdir}/wine/odbccp32.%{winedll} %{_libdir}/wine/odbccu32.%{winedll} @@ -1965,6 +1965,7 @@ fi %{_libdir}/wine/webservices.%{winedll} %{_libdir}/wine/wer.%{winedll} %{_libdir}/wine/wevtapi.%{winedll} +%{_libdir}/wine/wevtsvc.%{winedll} %{_libdir}/wine/wiaservc.%{winedll} %{_libdir}/wine/wimgapi.%{winedll} %if 0%{?wine_staging} @@ -1972,6 +1973,7 @@ fi %{_libdir}/wine/windows.gaming.input.%{winedll} %{_libdir}/wine/windows.globalization.%{winedll} %{_libdir}/wine/windows.media.speech.%{winedll} +%{_libdir}/wine/windows.networking.connectivity.%{winedll} %endif %{_libdir}/wine/windowscodecs.dll.so %{_libdir}/wine/windowscodecsext.%{winedll} @@ -2327,9 +2329,6 @@ fi # cms subpackage %files cms %{_libdir}/wine/mscms.dll.so -%if 0%{?wine_staging} -%{_datadir}/wine/color/ -%endif # twain subpackage %files twain @@ -2386,6 +2385,9 @@ fi %endif %changelog +* Sat Oct 10 2020 Michael Cronenworth 5.19-1 +- version update + * Mon Sep 28 2020 Michael Cronenworth 5.18-2 - Enable vkd3d shader support From 183b348fd0c47b6059b24f668fcad34892f60e10 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 10 Oct 2020 15:07:05 -0500 Subject: [PATCH 601/715] Add bcrypt and odbc32 DLLs --- wine.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/wine.spec b/wine.spec index 76c8cfa..944d71a 100644 --- a/wine.spec +++ b/wine.spec @@ -1488,6 +1488,7 @@ fi %{_libdir}/wine/avifil32.%{winedll} %{_libdir}/wine/avrt.%{winedll} %{_libdir}/wine/bcrypt.so +%{_libdir}/wine/bcrypt.%{winedll} %{_libdir}/wine/bluetoothapis.%{winedll} %{_libdir}/wine/browseui.%{winedll} %{_libdir}/wine/bthprops.%{winecpl} @@ -1828,6 +1829,7 @@ fi %endif %{_libdir}/wine/objsel.%{winedll} %{_libdir}/wine/odbc32.so +%{_libdir}/wine/odbc32.%{winedll} %{_libdir}/wine/odbcbcp.%{winedll} %{_libdir}/wine/odbccp32.%{winedll} %{_libdir}/wine/odbccu32.%{winedll} From 66adc6e7dc0cdba7a41e347d0767b4df9973ae72 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 24 Oct 2020 15:15:05 -0500 Subject: [PATCH 602/715] Update to 5.20 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 9 ++++++--- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 187a8f9..ef6ae7f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-5.19.tar.xz -/wine-5.19.tar.xz.sign -/wine-staging-5.19.tar.gz +/wine-5.20.tar.xz +/wine-5.20.tar.xz.sign +/wine-staging-5.20.tar.gz diff --git a/sources b/sources index 5d4a3d6..374accf 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-5.19.tar.xz) = b91eb1cb1225ac8abe26f5c5dd74fb376e6489b460035c70e6c7890595086e99273497741b6a736ef4884ae7bacc44482d2e3e8ba7e8d85c78c571bd4b133d8a -SHA512 (wine-5.19.tar.xz.sign) = 2626c6385e406600b7532b608db8621e201a8a43cd484a7d32a631446caea5d9152a23e138d68bb89bae20ed74d17559ffaa4797018abc0204b00e71118059b5 -SHA512 (wine-staging-5.19.tar.gz) = 4335ce48437641bbfd8b882cc92cd2970493586f4ac6501ffb94a0f2dcd38ec632d6afabf71d2c1ab1806a5cf594c2988f94a86c508fcd24a7d42078c662add9 +SHA512 (wine-5.20.tar.xz) = 30299287857376a827579335ba410d0575379df300860c8fdd50473f3eec074372d3602e5027f9e75fb13e272f28f51950ec652109839573a168aed23ba9c8f4 +SHA512 (wine-5.20.tar.xz.sign) = 641cf75d917cb945f99061f62fdd964d80f5644d53df4e41b1fc4f605c94715f5398c9081321bd61169cd874f35e7c3e9f24ff86bd527fc592f90b69e9ddcaaf +SHA512 (wine-staging-5.20.tar.gz) = 64913c3af44890a959593c610c713113f068811a8fe79e234a61f262af963d194d1d71d336361c6a473ad0f3f64fc5a88cee36facdc0824cea6856fc74da9634 diff --git a/wine.spec b/wine.spec index 944d71a..24f34ce 100644 --- a/wine.spec +++ b/wine.spec @@ -44,7 +44,7 @@ %endif Name: wine -Version: 5.19 +Version: 5.20 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1228,7 +1228,7 @@ fi %{_libdir}/wine/whoami.%{wineexe} %{_libdir}/wine/wineboot.%{wineexe} %{_libdir}/wine/winebrowser.exe.so -%{_libdir}/wine/wineconsole.exe.so +%{_libdir}/wine/wineconsole.%{wineexe} %{_libdir}/wine/winemenubuilder.exe.so %{_libdir}/wine/winecfg.exe.so %{_libdir}/wine/winedevice.%{wineexe} @@ -1944,7 +1944,7 @@ fi %{_libdir}/wine/user32.%{winedll} %{_libdir}/wine/usp10.%{winedll} %{_libdir}/wine/utildll.%{winedll} -%{_libdir}/wine/uxtheme.dll.so +%{_libdir}/wine/uxtheme.%{winedll} %{_libdir}/wine/userenv.%{winedll} %{_libdir}/wine/vbscript.%{winedll} %{_libdir}/wine/vcomp.%{winedll} @@ -2387,6 +2387,9 @@ fi %endif %changelog +* Sat Oct 24 2020 Michael Cronenworth 5.20-1 +- version update + * Sat Oct 10 2020 Michael Cronenworth 5.19-1 - version update From 31fd4e2ff686f8d209a6931cf7995d560e518d1f Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 24 Oct 2020 16:02:28 -0500 Subject: [PATCH 603/715] Missing new binaries in 5.20 release --- wine.spec | 3 +++ 1 file changed, 3 insertions(+) diff --git a/wine.spec b/wine.spec index 24f34ce..3691e1e 100644 --- a/wine.spec +++ b/wine.spec @@ -1184,7 +1184,9 @@ fi %{_libdir}/wine/conhost.%{wineexe} %{_libdir}/wine/cscript.%{wineexe} %{_libdir}/wine/dism.%{wineexe} +%{_libdir}/wine/dplaysvr.%{wineexe} %{_libdir}/wine/dpnsvr.%{wineexe} +%{_libdir}/wine/dpvsetup.%{wineexe} %{_libdir}/wine/eject.%{wineexe} %{_libdir}/wine/expand.%{wineexe} %{_libdir}/wine/extrac32.%{wineexe} @@ -1978,6 +1980,7 @@ fi %{_libdir}/wine/windows.networking.connectivity.%{winedll} %endif %{_libdir}/wine/windowscodecs.dll.so +%{_libdir}/wine/windowscodecs.so %{_libdir}/wine/windowscodecsext.%{winedll} %{_libdir}/wine/winebus.sys.so %{_libdir}/wine/winegstreamer.dll.so From 232d4c8ca9778ee4421c96a7f1a980d061c04987 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 10 Nov 2020 18:37:21 -0600 Subject: [PATCH 604/715] Update to 5.21 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 10 ++++++++-- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index ef6ae7f..70f4825 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-5.20.tar.xz -/wine-5.20.tar.xz.sign -/wine-staging-5.20.tar.gz +/wine-5.21.tar.xz +/wine-5.21.tar.xz.sign +/wine-staging-5.21.tar.gz diff --git a/sources b/sources index 374accf..1571fab 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-5.20.tar.xz) = 30299287857376a827579335ba410d0575379df300860c8fdd50473f3eec074372d3602e5027f9e75fb13e272f28f51950ec652109839573a168aed23ba9c8f4 -SHA512 (wine-5.20.tar.xz.sign) = 641cf75d917cb945f99061f62fdd964d80f5644d53df4e41b1fc4f605c94715f5398c9081321bd61169cd874f35e7c3e9f24ff86bd527fc592f90b69e9ddcaaf -SHA512 (wine-staging-5.20.tar.gz) = 64913c3af44890a959593c610c713113f068811a8fe79e234a61f262af963d194d1d71d336361c6a473ad0f3f64fc5a88cee36facdc0824cea6856fc74da9634 +SHA512 (wine-5.21.tar.xz) = 0879e4edeca60880799736ac831f8ae28c6e5156dde161685aa84a5d8bd20c4f3a51a178fa2b130a9e8af44432bb239160a04829fcef5d8332e2bbf829d2bc18 +SHA512 (wine-5.21.tar.xz.sign) = 4a511f8de939d0ca2280b0b5ad307e42f9b37890f48832b23b75b5f93244a8d7522a4f52ce9d8f3efd347a98fe773faa9479dc474e024e05052079f7df531238 +SHA512 (wine-staging-5.21.tar.gz) = 079a7fccd66d886b3498c45057b1bb215d3897e44e0c8d6afb56174fad583e8a578ea888d70d62a18da1566bb9649fdefd08227efecd21fc71b0b3d739dab636 diff --git a/wine.spec b/wine.spec index 3691e1e..c9dc6e1 100644 --- a/wine.spec +++ b/wine.spec @@ -44,7 +44,7 @@ %endif Name: wine -Version: 5.20 +Version: 5.21 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1531,6 +1531,7 @@ fi %{_libdir}/wine/d3d12.dll.so %{_libdir}/wine/d3dcompiler_*.%{winedll} %{_libdir}/wine/d3dim.%{winedll} +%{_libdir}/wine/d3dim700.%{winedll} %{_libdir}/wine/d3drm.%{winedll} %{_libdir}/wine/d3dx9_*.%{winedll} %{_libdir}/wine/d3dx10_*.%{winedll} @@ -1654,7 +1655,8 @@ fi %{_libdir}/wine/fusion.%{winedll} %{_libdir}/wine/fwpuclnt.%{winedll} %{_libdir}/wine/gameux.%{winedll} -%{_libdir}/wine/gdi32.dll.so +%{_libdir}/wine/gdi32.so +%{_libdir}/wine/gdi32.%{winedll} %{_libdir}/wine/gdiplus.%{winedll} %{_libdir}/wine/glu32.dll.so %{_libdir}/wine/gphoto2.ds.so @@ -2032,6 +2034,7 @@ fi %{_libdir}/wine/sfc.%{winedll} %{_libdir}/wine/wineps.%{winedrv} %{_libdir}/wine/d3d8.%{winedll} +%{_libdir}/wine/d3d8thk.%{winedll} %ghost %{_libdir}/wine/d3d9.%{winedll} %{_libdir}/wine/wine-d3d9.%{winedll} %{_libdir}/wine/opengl32.dll.so @@ -2390,6 +2393,9 @@ fi %endif %changelog +* Tue Nov 10 2020 Michael Cronenworth 5.21-1 +- version update + * Sat Oct 24 2020 Michael Cronenworth 5.20-1 - version update From df4873defc87156b5ea8169e34e2bf5c4fa8ff52 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 21 Nov 2020 10:57:45 -0600 Subject: [PATCH 605/715] Update to 5.22 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 43 ++++++++++++++++++------------------------- 3 files changed, 24 insertions(+), 31 deletions(-) diff --git a/.gitignore b/.gitignore index 70f4825..617c369 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-5.21.tar.xz -/wine-5.21.tar.xz.sign -/wine-staging-5.21.tar.gz +/wine-5.22.tar.xz +/wine-5.22.tar.xz.sign +/wine-staging-5.22.tar.gz diff --git a/sources b/sources index 1571fab..250c29d 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-5.21.tar.xz) = 0879e4edeca60880799736ac831f8ae28c6e5156dde161685aa84a5d8bd20c4f3a51a178fa2b130a9e8af44432bb239160a04829fcef5d8332e2bbf829d2bc18 -SHA512 (wine-5.21.tar.xz.sign) = 4a511f8de939d0ca2280b0b5ad307e42f9b37890f48832b23b75b5f93244a8d7522a4f52ce9d8f3efd347a98fe773faa9479dc474e024e05052079f7df531238 -SHA512 (wine-staging-5.21.tar.gz) = 079a7fccd66d886b3498c45057b1bb215d3897e44e0c8d6afb56174fad583e8a578ea888d70d62a18da1566bb9649fdefd08227efecd21fc71b0b3d739dab636 +SHA512 (wine-5.22.tar.xz) = 9e86a1f74a142513121c155ffa5e1dd863ecc00092952878f44185725e81793fd7291e0e3c93275cd0d083d17af99eb1d8feba1c96e8607f44919b9045737271 +SHA512 (wine-5.22.tar.xz.sign) = 713165e98f9f8a76e56cbe3620e2a8f03e31ff1a4adf3252ffe8f111357535e692aabd2c81cf217119235d08ef65fa2ab68d4ea1226feb34ba166e22bf9d8a34 +SHA512 (wine-staging-5.22.tar.gz) = 0ce0314b470e90c741fd02ede522b6dd754fb69595b527e3ad5ac62d944bc7eca43eca88aa2b85d99a9945fbad05872cdcd2ac87ed809dcd41a9ce56bfcc1147 diff --git a/wine.spec b/wine.spec index c9dc6e1..34d1d27 100644 --- a/wine.spec +++ b/wine.spec @@ -44,7 +44,7 @@ %endif Name: wine -Version: 5.21 +Version: 5.22 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1510,8 +1510,8 @@ fi %{_libdir}/wine/concrt140.%{winedll} %{_libdir}/wine/connect.%{winedll} %{_libdir}/wine/credui.%{winedll} -%{_libdir}/wine/crtdll.dll.so -%{_libdir}/wine/crypt32.dll.so +%{_libdir}/wine/crtdll.%{winedll} +%{_libdir}/wine/crypt32.%{winedll} %{_libdir}/wine/cryptdlg.%{winedll} %{_libdir}/wine/cryptdll.%{winedll} %{_libdir}/wine/cryptext.%{winedll} @@ -1658,7 +1658,7 @@ fi %{_libdir}/wine/gdi32.so %{_libdir}/wine/gdi32.%{winedll} %{_libdir}/wine/gdiplus.%{winedll} -%{_libdir}/wine/glu32.dll.so +%{_libdir}/wine/glu32.%{winedll} %{_libdir}/wine/gphoto2.ds.so %{_libdir}/wine/gpkcsp.%{winedll} %{_libdir}/wine/hal.%{winedll} @@ -1786,18 +1786,18 @@ fi %{_libdir}/wine/msvcp120_app.%{winedll} %{_libdir}/wine/msvcp140.%{winedll} %{_libdir}/wine/msvcp140_1.%{winedll} -%{_libdir}/wine/msvcr70.dll.so -%{_libdir}/wine/msvcr71.dll.so -%{_libdir}/wine/msvcr80.dll.so -%{_libdir}/wine/msvcr90.dll.so -%{_libdir}/wine/msvcr100.dll.so -%{_libdir}/wine/msvcr110.dll.so -%{_libdir}/wine/msvcr120.dll.so +%{_libdir}/wine/msvcr70.%{winedll} +%{_libdir}/wine/msvcr71.%{winedll} +%{_libdir}/wine/msvcr80.%{winedll} +%{_libdir}/wine/msvcr90.%{winedll} +%{_libdir}/wine/msvcr100.%{winedll} +%{_libdir}/wine/msvcr110.%{winedll} +%{_libdir}/wine/msvcr120.%{winedll} %{_libdir}/wine/msvcr120_app.%{winedll} -%{_libdir}/wine/msvcrt.dll.so +%{_libdir}/wine/msvcrt.%{winedll} %{_libdir}/wine/msvcrt20.%{winedll} %{_libdir}/wine/msvcrt40.%{winedll} -%{_libdir}/wine/msvcrtd.dll.so +%{_libdir}/wine/msvcrtd.%{winedll} %{_libdir}/wine/msvfw32.%{winedll} %{_libdir}/wine/msvidc32.%{winedll} %{_libdir}/wine/mswsock.%{winedll} @@ -1932,7 +1932,7 @@ fi %{_libdir}/wine/tdi.%{winesys} %{_libdir}/wine/traffic.%{winedll} %{_libdir}/wine/tzres.%{winedll} -%{_libdir}/wine/ucrtbase.dll.so +%{_libdir}/wine/ucrtbase.%{winedll} %if 0%{?wine_staging} %{_libdir}/wine/uianimation.%{winedll} %endif @@ -1974,13 +1974,6 @@ fi %{_libdir}/wine/wevtsvc.%{winedll} %{_libdir}/wine/wiaservc.%{winedll} %{_libdir}/wine/wimgapi.%{winedll} -%if 0%{?wine_staging} -%{_libdir}/wine/win32k.%{winesys} -%{_libdir}/wine/windows.gaming.input.%{winedll} -%{_libdir}/wine/windows.globalization.%{winedll} -%{_libdir}/wine/windows.media.speech.%{winedll} -%{_libdir}/wine/windows.networking.connectivity.%{winedll} -%endif %{_libdir}/wine/windowscodecs.dll.so %{_libdir}/wine/windowscodecs.so %{_libdir}/wine/windowscodecsext.%{winedll} @@ -2180,9 +2173,6 @@ fi %dir %{_datadir}/wine/mono %dir %{_datadir}/wine/fonts %{_datadir}/wine/wine.inf -%{_datadir}/wine/winebus.inf -%{_datadir}/wine/winehid.inf -%{_datadir}/wine/wineusb.inf %{_datadir}/wine/nls/ %files common @@ -2336,7 +2326,7 @@ fi # cms subpackage %files cms -%{_libdir}/wine/mscms.dll.so +%{_libdir}/wine/mscms.%{winedll} # twain subpackage %files twain @@ -2393,6 +2383,9 @@ fi %endif %changelog +* Sat Nov 21 2020 Michael Cronenworth 5.22-1 +- version update + * Tue Nov 10 2020 Michael Cronenworth 5.21-1 - version update From 6398cff85bdbc291217d7f2b5d395f3a2fbf435b Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 21 Nov 2020 11:23:43 -0600 Subject: [PATCH 606/715] Missing SOs from the PE update --- wine.spec | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/wine.spec b/wine.spec index 34d1d27..d734cc0 100644 --- a/wine.spec +++ b/wine.spec @@ -1510,7 +1510,9 @@ fi %{_libdir}/wine/concrt140.%{winedll} %{_libdir}/wine/connect.%{winedll} %{_libdir}/wine/credui.%{winedll} +%{_libdir}/wine/crtdll.so %{_libdir}/wine/crtdll.%{winedll} +%{_libdir}/wine/crypt32.so %{_libdir}/wine/crypt32.%{winedll} %{_libdir}/wine/cryptdlg.%{winedll} %{_libdir}/wine/cryptdll.%{winedll} @@ -1786,17 +1788,26 @@ fi %{_libdir}/wine/msvcp120_app.%{winedll} %{_libdir}/wine/msvcp140.%{winedll} %{_libdir}/wine/msvcp140_1.%{winedll} +%{_libdir}/wine/msvcr70.so %{_libdir}/wine/msvcr70.%{winedll} +%{_libdir}/wine/msvcr71.so %{_libdir}/wine/msvcr71.%{winedll} +%{_libdir}/wine/msvcr80.so %{_libdir}/wine/msvcr80.%{winedll} +%{_libdir}/wine/msvcr90.so %{_libdir}/wine/msvcr90.%{winedll} +%{_libdir}/wine/msvcr100.so %{_libdir}/wine/msvcr100.%{winedll} +%{_libdir}/wine/msvcr110.so %{_libdir}/wine/msvcr110.%{winedll} +%{_libdir}/wine/msvcr120.so %{_libdir}/wine/msvcr120.%{winedll} %{_libdir}/wine/msvcr120_app.%{winedll} +%{_libdir}/wine/msvcrt.so %{_libdir}/wine/msvcrt.%{winedll} %{_libdir}/wine/msvcrt20.%{winedll} %{_libdir}/wine/msvcrt40.%{winedll} +%{_libdir}/wine/msvcrtd.so %{_libdir}/wine/msvcrtd.%{winedll} %{_libdir}/wine/msvfw32.%{winedll} %{_libdir}/wine/msvidc32.%{winedll} @@ -1932,6 +1943,7 @@ fi %{_libdir}/wine/tdi.%{winesys} %{_libdir}/wine/traffic.%{winedll} %{_libdir}/wine/tzres.%{winedll} +%{_libdir}/wine/ucrtbase.so %{_libdir}/wine/ucrtbase.%{winedll} %if 0%{?wine_staging} %{_libdir}/wine/uianimation.%{winedll} @@ -1974,6 +1986,7 @@ fi %{_libdir}/wine/wevtsvc.%{winedll} %{_libdir}/wine/wiaservc.%{winedll} %{_libdir}/wine/wimgapi.%{winedll} +%{_libdir}/wine/win32k.sys %{_libdir}/wine/windowscodecs.dll.so %{_libdir}/wine/windowscodecs.so %{_libdir}/wine/windowscodecsext.%{winedll} @@ -2326,6 +2339,7 @@ fi # cms subpackage %files cms +%{_libdir}/wine/mscms.so %{_libdir}/wine/mscms.%{winedll} # twain subpackage From e35f820b92f3bd3438138d5b766a71cea19eb24f Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 21 Nov 2020 12:10:29 -0600 Subject: [PATCH 607/715] Arch protect win32k.sys --- wine.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/wine.spec b/wine.spec index d734cc0..6b47e5e 100644 --- a/wine.spec +++ b/wine.spec @@ -1986,7 +1986,9 @@ fi %{_libdir}/wine/wevtsvc.%{winedll} %{_libdir}/wine/wiaservc.%{winedll} %{_libdir}/wine/wimgapi.%{winedll} +%ifarch %{ix86} x86_64 %{_libdir}/wine/win32k.sys +%endif %{_libdir}/wine/windowscodecs.dll.so %{_libdir}/wine/windowscodecs.so %{_libdir}/wine/windowscodecsext.%{winedll} From c5181cfc299c327f23731415c224c00ea9fb3be7 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 22 Nov 2020 15:43:38 -0600 Subject: [PATCH 608/715] Should be using the generic macro instead --- wine.spec | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/wine.spec b/wine.spec index 6b47e5e..f7f2b9e 100644 --- a/wine.spec +++ b/wine.spec @@ -1986,9 +1986,7 @@ fi %{_libdir}/wine/wevtsvc.%{winedll} %{_libdir}/wine/wiaservc.%{winedll} %{_libdir}/wine/wimgapi.%{winedll} -%ifarch %{ix86} x86_64 -%{_libdir}/wine/win32k.sys -%endif +%{_libdir}/wine/win32k.%{winesys} %{_libdir}/wine/windowscodecs.dll.so %{_libdir}/wine/windowscodecs.so %{_libdir}/wine/windowscodecsext.%{winedll} From cfc49c0140e32fc41c6fc10c729b667a29757066 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 1 Dec 2020 13:24:56 -0600 Subject: [PATCH 609/715] https://fedoraproject.org/wiki/Changes/Remove_make_from_BuildRoot --- wine.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/wine.spec b/wine.spec index f7f2b9e..6521144 100644 --- a/wine.spec +++ b/wine.spec @@ -114,6 +114,7 @@ BuildRequires: gcc BuildRequires: mingw32-gcc BuildRequires: mingw64-gcc BuildRequires: autoconf +BuildRequires: make BuildRequires: desktop-file-utils BuildRequires: alsa-lib-devel BuildRequires: audiofile-devel From 8ad2d31bd1ab579add83a9ea21527a81d9271a92 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 8 Dec 2020 13:06:13 -0600 Subject: [PATCH 610/715] Update to 6.0-rc1 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 30 ++++++++++++++++++++---------- 3 files changed, 26 insertions(+), 16 deletions(-) diff --git a/.gitignore b/.gitignore index 617c369..bb345b2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-5.22.tar.xz -/wine-5.22.tar.xz.sign -/wine-staging-5.22.tar.gz +/wine-6.0-rc1.tar.xz +/wine-6.0-rc1.tar.xz.sign +/wine-staging-6.0rc1.tar.gz diff --git a/sources b/sources index 250c29d..96d8f95 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-5.22.tar.xz) = 9e86a1f74a142513121c155ffa5e1dd863ecc00092952878f44185725e81793fd7291e0e3c93275cd0d083d17af99eb1d8feba1c96e8607f44919b9045737271 -SHA512 (wine-5.22.tar.xz.sign) = 713165e98f9f8a76e56cbe3620e2a8f03e31ff1a4adf3252ffe8f111357535e692aabd2c81cf217119235d08ef65fa2ab68d4ea1226feb34ba166e22bf9d8a34 -SHA512 (wine-staging-5.22.tar.gz) = 0ce0314b470e90c741fd02ede522b6dd754fb69595b527e3ad5ac62d944bc7eca43eca88aa2b85d99a9945fbad05872cdcd2ac87ed809dcd41a9ce56bfcc1147 +SHA512 (wine-6.0-rc1.tar.xz) = e1018c38c2b882bd4a135cb1faa0eb2130cc929f1aaae638baf8b0dbd21135317a2fbf0347c70ac716a667960c2428a9e21902a84a1a01de2743633ae3b43e37 +SHA512 (wine-6.0-rc1.tar.xz.sign) = d8d4fae681ea1db4f7fe2195c4b831467669a68cdd3d842bcbb430c7e7aa3c93da5c0e8e969db1eff89b350cf4c14854fb37f416aa28bfc242ab1c56f0287b1a +SHA512 (wine-staging-6.0rc1.tar.gz) = d78338672a9944cb3153ab21d925dec09ac2f79657c19f58e9ec258e4db7c2a13cffeaed9ed8be4efbe34c665da5474ac2334d775c0f633c5c9918e4c0d6d2a6 diff --git a/wine.spec b/wine.spec index 6521144..cdf093e 100644 --- a/wine.spec +++ b/wine.spec @@ -2,7 +2,7 @@ %undefine _hardened_build %global no64bit 0 -%global winegecko 2.47.1 +%global winegecko 2.47.2 %global winemono 5.1.1 #global _default_patch_fuzz 2 %ifarch %{ix86} x86_64 @@ -44,14 +44,14 @@ %endif Name: wine -Version: 5.22 -Release: 1%{?dist} +Version: 6.0 +Release: 0.1rc1%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ URL: https://www.winehq.org/ -Source0: https://dl.winehq.org/wine/source/5.x/wine-%{version}.tar.xz -Source10: https://dl.winehq.org/wine/source/5.x/wine-%{version}.tar.xz.sign +Source0: https://dl.winehq.org/wine/source/6.0/wine-%{version}-rc1.tar.xz +Source10: https://dl.winehq.org/wine/source/6.0/wine-%{version}-rc1.tar.xz.sign Source1: wine.init Source2: wine.systemd @@ -95,7 +95,7 @@ Patch511: wine-cjk.patch %if 0%{?wine_staging} # wine-staging patches # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar.gz#/wine-staging-%{version}.tar.gz +Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar.gz#/wine-staging-%{version}rc1.tar.gz %endif %if !%{?no64bit} @@ -223,6 +223,7 @@ Requires: mesa-dri-drivers(x86-32) %if 0%{?fedora} >= 33 Recommends: wine-dxvk(x86-32) %endif +Recommends: gstreamer1-plugins-good(x86-32) %endif # x86-64 parts @@ -247,6 +248,7 @@ Requires: mesa-dri-drivers(x86-64) %if 0%{?fedora} >= 33 Recommends: wine-dxvk(x86-64) %endif +Recommends: gstreamer1-plugins-good(x86-64) %endif # ARM parts @@ -702,7 +704,7 @@ This package adds the opencl driver for wine. %endif %prep -%setup -q -n wine-%{version} +%setup -q -n wine-%{version}-rc1 %patch511 -p1 -b.cjk %if 0%{?wine_staging} @@ -1545,6 +1547,7 @@ fi %{_libdir}/wine/dbgeng.%{winedll} %{_libdir}/wine/dbghelp.%{winedll} %{_libdir}/wine/dciman32.%{winedll} +%{_libdir}/wine/dcomp.%{winedll} %{_libdir}/wine/ddraw.%{winedll} %{_libdir}/wine/ddrawex.%{winedll} %{_libdir}/wine/devenum.%{winedll} @@ -1872,7 +1875,8 @@ fi %{_libdir}/wine/pstorec.%{winedll} %{_libdir}/wine/pwrshplugin.%{winedll} %{_libdir}/wine/qasf.%{winedll} -%{_libdir}/wine/qcap.dll.so +%{_libdir}/wine/qcap.%{winedll} +%{_libdir}/wine/qcap.so %{_libdir}/wine/qdvd.%{winedll} %{_libdir}/wine/qedit.%{winedll} %{_libdir}/wine/qmgr.%{winedll} @@ -1988,7 +1992,11 @@ fi %{_libdir}/wine/wiaservc.%{winedll} %{_libdir}/wine/wimgapi.%{winedll} %{_libdir}/wine/win32k.%{winesys} -%{_libdir}/wine/windowscodecs.dll.so +%{_libdir}/wine/windows.gaming.input.%{winedll} +%{_libdir}/wine/windows.globalization.%{winedll} +%{_libdir}/wine/windows.media.speech.%{winedll} +%{_libdir}/wine/windows.networking.connectivity.%{winedll} +%{_libdir}/wine/windowscodecs.%{winedll} %{_libdir}/wine/windowscodecs.so %{_libdir}/wine/windowscodecsext.%{winedll} %{_libdir}/wine/winebus.sys.so @@ -2377,7 +2385,6 @@ fi %lang(fr) %{_mandir}/fr.UTF-8/man1/winemaker.1* %attr(0755, root, root) %dir %{_includedir}/wine %{_includedir}/wine/* -%{_libdir}/*.so %{_libdir}/wine/*.a %{_libdir}/wine/*.def @@ -2398,6 +2405,9 @@ fi %endif %changelog +* Tue Dec 08 2020 Michael Cronenworth 6.0-0.1 +- version update + * Sat Nov 21 2020 Michael Cronenworth 5.22-1 - version update From 096e5a21d3c125ae8539b37257bacec8280c0fec Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 12 Dec 2020 21:33:34 -0600 Subject: [PATCH 611/715] Update to 6.0-rc2 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 15 +++++++++------ 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index bb345b2..5cf664d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-6.0-rc1.tar.xz -/wine-6.0-rc1.tar.xz.sign -/wine-staging-6.0rc1.tar.gz +/wine-6.0-rc2.tar.xz +/wine-6.0-rc2.tar.xz.sign +/wine-staging-6.0-rc2.tar.gz diff --git a/sources b/sources index 96d8f95..07cc7e2 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-6.0-rc1.tar.xz) = e1018c38c2b882bd4a135cb1faa0eb2130cc929f1aaae638baf8b0dbd21135317a2fbf0347c70ac716a667960c2428a9e21902a84a1a01de2743633ae3b43e37 -SHA512 (wine-6.0-rc1.tar.xz.sign) = d8d4fae681ea1db4f7fe2195c4b831467669a68cdd3d842bcbb430c7e7aa3c93da5c0e8e969db1eff89b350cf4c14854fb37f416aa28bfc242ab1c56f0287b1a -SHA512 (wine-staging-6.0rc1.tar.gz) = d78338672a9944cb3153ab21d925dec09ac2f79657c19f58e9ec258e4db7c2a13cffeaed9ed8be4efbe34c665da5474ac2334d775c0f633c5c9918e4c0d6d2a6 +SHA512 (wine-6.0-rc2.tar.xz) = 5b1b390d98637a7307bd6d38fc95dc9f169bec1068fb5cece63515ad1a0b318a91c381a3c7d219fdc5d6489ea9e7231ed31fb8ba4a4a6ad70a8d2c96ca3d449b +SHA512 (wine-6.0-rc2.tar.xz.sign) = 28ed87df9d34d8c63441983636b7340b12ab1241102cec78f86032486e1184385a3a75cabaa8ee05402b46b891216484dc6690431a98e80d448eb83f71f49960 +SHA512 (wine-staging-6.0-rc2.tar.gz) = e8aad284776441e96db603018a7c5bd6f7d0f4d6f5e65a2d6dd85b404b1e7569ab19814ce964aad0fc410046ac0121eb0eef91d545a0e91c9fcec50c6c54b5ac diff --git a/wine.spec b/wine.spec index cdf093e..f077bfc 100644 --- a/wine.spec +++ b/wine.spec @@ -45,13 +45,13 @@ Name: wine Version: 6.0 -Release: 0.1rc1%{?dist} +Release: 0.2rc2%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ URL: https://www.winehq.org/ -Source0: https://dl.winehq.org/wine/source/6.0/wine-%{version}-rc1.tar.xz -Source10: https://dl.winehq.org/wine/source/6.0/wine-%{version}-rc1.tar.xz.sign +Source0: https://dl.winehq.org/wine/source/6.0/wine-%{version}-rc2.tar.xz +Source10: https://dl.winehq.org/wine/source/6.0/wine-%{version}-rc2.tar.xz.sign Source1: wine.init Source2: wine.systemd @@ -95,7 +95,7 @@ Patch511: wine-cjk.patch %if 0%{?wine_staging} # wine-staging patches # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar.gz#/wine-staging-%{version}rc1.tar.gz +Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar.gz#/wine-staging-%{version}-rc2.tar.gz %endif %if !%{?no64bit} @@ -704,7 +704,7 @@ This package adds the opencl driver for wine. %endif %prep -%setup -q -n wine-%{version}-rc1 +%setup -q -n wine-%{version}-rc2 %patch511 -p1 -b.cjk %if 0%{?wine_staging} @@ -2405,7 +2405,10 @@ fi %endif %changelog -* Tue Dec 08 2020 Michael Cronenworth 6.0-0.1 +* Sat Dec 12 2020 Michael Cronenworth 6.0-0.2rc2 +- version update + +* Tue Dec 08 2020 Michael Cronenworth 6.0-0.1rc1 - version update * Sat Nov 21 2020 Michael Cronenworth 5.22-1 From ac80aca94992c5b6398560352b84269e62a7ecd5 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 19 Dec 2020 00:20:05 -0600 Subject: [PATCH 612/715] Update to 6.0-rc3 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 17 ++++++++++------- 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index 5cf664d..7d83f94 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-6.0-rc2.tar.xz -/wine-6.0-rc2.tar.xz.sign -/wine-staging-6.0-rc2.tar.gz +/wine-6.0-rc3.tar.xz +/wine-6.0-rc3.tar.xz.sign +/wine-staging-6.0-rc3.tar.gz diff --git a/sources b/sources index 07cc7e2..2349551 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-6.0-rc2.tar.xz) = 5b1b390d98637a7307bd6d38fc95dc9f169bec1068fb5cece63515ad1a0b318a91c381a3c7d219fdc5d6489ea9e7231ed31fb8ba4a4a6ad70a8d2c96ca3d449b -SHA512 (wine-6.0-rc2.tar.xz.sign) = 28ed87df9d34d8c63441983636b7340b12ab1241102cec78f86032486e1184385a3a75cabaa8ee05402b46b891216484dc6690431a98e80d448eb83f71f49960 -SHA512 (wine-staging-6.0-rc2.tar.gz) = e8aad284776441e96db603018a7c5bd6f7d0f4d6f5e65a2d6dd85b404b1e7569ab19814ce964aad0fc410046ac0121eb0eef91d545a0e91c9fcec50c6c54b5ac +SHA512 (wine-6.0-rc3.tar.xz) = 584237580da6f62e18bd488c664a401c9d35ef3f7a94028b3107b34423a602d5315c17ede90739e4ca727d16b09edbc3c0808fc61a2554b5a12e693304878e7d +SHA512 (wine-6.0-rc3.tar.xz.sign) = fe9b9346c75a8ee0b4d77dcff1bbe92f5c0f6b6e0822f890685a03c3262b1ffd5b2057afbae4227be430f6a7492c88853e790686b53ae7112f22449613b60c68 +SHA512 (wine-staging-6.0-rc3.tar.gz) = 1414975336788ce14043aceebf816d0098f128305ef83cd918df92af943b50aa432c4d6707ba1f46b100b2a1a8366381119e5e5ba2cde8d9df171483d5b65ca2 diff --git a/wine.spec b/wine.spec index f077bfc..8f3c1b2 100644 --- a/wine.spec +++ b/wine.spec @@ -45,13 +45,13 @@ Name: wine Version: 6.0 -Release: 0.2rc2%{?dist} +Release: 0.3rc3%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ URL: https://www.winehq.org/ -Source0: https://dl.winehq.org/wine/source/6.0/wine-%{version}-rc2.tar.xz -Source10: https://dl.winehq.org/wine/source/6.0/wine-%{version}-rc2.tar.xz.sign +Source0: https://dl.winehq.org/wine/source/6.0/wine-%{version}-rc3.tar.xz +Source10: https://dl.winehq.org/wine/source/6.0/wine-%{version}-rc3.tar.xz.sign Source1: wine.init Source2: wine.systemd @@ -95,7 +95,7 @@ Patch511: wine-cjk.patch %if 0%{?wine_staging} # wine-staging patches # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar.gz#/wine-staging-%{version}-rc2.tar.gz +Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar.gz#/wine-staging-%{version}-rc3.tar.gz %endif %if !%{?no64bit} @@ -304,7 +304,7 @@ Requires: wine-filesystem = %{version}-%{release} # CUPS support uses dlopen - rhbz#1367537 Requires: cups-libs(x86-32) Requires: freetype(x86-32) -Requires: nss-mdns(x86-32) +Requires: (nss-mdns(x86-32) if nss-mdns(x86-64)) Requires: gnutls(x86-32) Requires: libXcomposite(x86-32) Requires: libXcursor(x86-32) @@ -328,7 +328,7 @@ Requires: libva(x86-32) # CUPS support uses dlopen - rhbz#1367537 Requires: cups-libs(x86-64) Requires: freetype(x86-64) -Requires: nss-mdns(x86-64) +Requires: (nss-mdns(x86-64) if nss-mdns(x86-32)) Requires: gnutls(x86-64) Requires: libXcomposite(x86-64) Requires: libXcursor(x86-64) @@ -704,7 +704,7 @@ This package adds the opencl driver for wine. %endif %prep -%setup -q -n wine-%{version}-rc2 +%setup -q -n wine-%{version}-rc3 %patch511 -p1 -b.cjk %if 0%{?wine_staging} @@ -2405,6 +2405,9 @@ fi %endif %changelog +* Sat Dec 19 2020 Michael Cronenworth 6.0-0.3rc3 +- version update + * Sat Dec 12 2020 Michael Cronenworth 6.0-0.2rc2 - version update From b065f1c1941e1060212e02a4c6ea29f690bb2d7d Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 19 Dec 2020 01:07:17 -0600 Subject: [PATCH 613/715] Add files from new staging patchset --- wine.spec | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/wine.spec b/wine.spec index 8f3c1b2..ab6abb5 100644 --- a/wine.spec +++ b/wine.spec @@ -1589,8 +1589,23 @@ fi %ghost %{_libdir}/wine/dxgi.dll.so %{_libdir}/wine/wine-dxgi.dll.so %if 0%{?wine_staging} +%{_libdir}/wine/d3dpmesh.%{winedll} +%{_libdir}/wine/diactfrm.%{winedll} +%{_libdir}/wine/dimap.%{winedll} +%{_libdir}/wine/dpmodemx.%{winedll} +%{_libdir}/wine/dpnhupnp.%{winedll} +%{_libdir}/wine/dpvacm.%{winedll} +%{_libdir}/wine/dpvvox.%{winedll} +%{_libdir}/wine/dsdmoprp.%{winedll} +%{_libdir}/wine/dsound3d.%{winedll} +%{_libdir}/wine/dx7vb.%{winedll} +%{_libdir}/wine/dxapi.%{winesys} %{_libdir}/wine/dxgkrnl.%{winesys} %{_libdir}/wine/dxgmms1.%{winesys} +%{_libdir}/wine/encapi.%{winedll} +%{_libdir}/wine/gcdef.%{winedll} +%{_libdir}/wine/qdv.%{winedll} +%{_libdir}/wine/qedwipes.%{winedll} %endif %{_libdir}/wine/dxva2.%{winedll} %{_libdir}/wine/esent.%{winedll} From 4ab6c18b59276033a70039eae076c90234728736 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 26 Dec 2020 18:34:51 -0600 Subject: [PATCH 614/715] Update to 6.0-rc4 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 13 ++++++++----- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 7d83f94..10ed3b1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-6.0-rc3.tar.xz -/wine-6.0-rc3.tar.xz.sign -/wine-staging-6.0-rc3.tar.gz +/wine-6.0-rc4.tar.xz +/wine-6.0-rc4.tar.xz.sign +/wine-staging-6.0-rc4.tar.gz diff --git a/sources b/sources index 2349551..26b0fc3 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-6.0-rc3.tar.xz) = 584237580da6f62e18bd488c664a401c9d35ef3f7a94028b3107b34423a602d5315c17ede90739e4ca727d16b09edbc3c0808fc61a2554b5a12e693304878e7d -SHA512 (wine-6.0-rc3.tar.xz.sign) = fe9b9346c75a8ee0b4d77dcff1bbe92f5c0f6b6e0822f890685a03c3262b1ffd5b2057afbae4227be430f6a7492c88853e790686b53ae7112f22449613b60c68 -SHA512 (wine-staging-6.0-rc3.tar.gz) = 1414975336788ce14043aceebf816d0098f128305ef83cd918df92af943b50aa432c4d6707ba1f46b100b2a1a8366381119e5e5ba2cde8d9df171483d5b65ca2 +SHA512 (wine-6.0-rc4.tar.xz) = adf3797319a4b9fff70589484059736392c1e463b52f33a3ea23367638f84aeef28c7250c6de04bf77d0e780aad6975e00fd5ac01105c2b8a877aa6c060e889d +SHA512 (wine-6.0-rc4.tar.xz.sign) = 6a1b4b259a08104a43ce8951c6f320b34bbfd17e2e02463c855f94a334354fca78233144308234c81e1c87bceba25bce08aa713046777a624479d4b6aa272f3f +SHA512 (wine-staging-6.0-rc4.tar.gz) = 48569114b616b503cd8e436ea7f14856872329d53fcb250a1fcd6ec21a990a06b13b85591ea37d49cc80de767b8ec1f6f653b04b696a7f3c70a65c37231f2a12 diff --git a/wine.spec b/wine.spec index ab6abb5..6f1500b 100644 --- a/wine.spec +++ b/wine.spec @@ -45,13 +45,13 @@ Name: wine Version: 6.0 -Release: 0.3rc3%{?dist} +Release: 0.4rc4%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ URL: https://www.winehq.org/ -Source0: https://dl.winehq.org/wine/source/6.0/wine-%{version}-rc3.tar.xz -Source10: https://dl.winehq.org/wine/source/6.0/wine-%{version}-rc3.tar.xz.sign +Source0: https://dl.winehq.org/wine/source/6.0/wine-%{version}-rc4.tar.xz +Source10: https://dl.winehq.org/wine/source/6.0/wine-%{version}-rc4.tar.xz.sign Source1: wine.init Source2: wine.systemd @@ -95,7 +95,7 @@ Patch511: wine-cjk.patch %if 0%{?wine_staging} # wine-staging patches # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar.gz#/wine-staging-%{version}-rc3.tar.gz +Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar.gz#/wine-staging-%{version}-rc4.tar.gz %endif %if !%{?no64bit} @@ -704,7 +704,7 @@ This package adds the opencl driver for wine. %endif %prep -%setup -q -n wine-%{version}-rc3 +%setup -q -n wine-%{version}-rc4 %patch511 -p1 -b.cjk %if 0%{?wine_staging} @@ -2420,6 +2420,9 @@ fi %endif %changelog +* Sat Dec 26 2020 Michael Cronenworth 6.0-0.3rc4 +- version update + * Sat Dec 19 2020 Michael Cronenworth 6.0-0.3rc3 - version update From 8ed973af51fa584f55f1e02bc66df984b2275adc Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Thu, 7 Jan 2021 21:41:56 -0600 Subject: [PATCH 615/715] Update to 6.0-rc5 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 19 +++++++++++++------ 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index 10ed3b1..97f3def 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-6.0-rc4.tar.xz -/wine-6.0-rc4.tar.xz.sign -/wine-staging-6.0-rc4.tar.gz +/wine-6.0-rc5.tar.xz +/wine-6.0-rc5.tar.xz.sign +/wine-staging-6.0-rc5.tar.gz diff --git a/sources b/sources index 26b0fc3..228c1c6 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-6.0-rc4.tar.xz) = adf3797319a4b9fff70589484059736392c1e463b52f33a3ea23367638f84aeef28c7250c6de04bf77d0e780aad6975e00fd5ac01105c2b8a877aa6c060e889d -SHA512 (wine-6.0-rc4.tar.xz.sign) = 6a1b4b259a08104a43ce8951c6f320b34bbfd17e2e02463c855f94a334354fca78233144308234c81e1c87bceba25bce08aa713046777a624479d4b6aa272f3f -SHA512 (wine-staging-6.0-rc4.tar.gz) = 48569114b616b503cd8e436ea7f14856872329d53fcb250a1fcd6ec21a990a06b13b85591ea37d49cc80de767b8ec1f6f653b04b696a7f3c70a65c37231f2a12 +SHA512 (wine-6.0-rc5.tar.xz) = e995ad4ddd2c71c9f5ffd963e2d9743a45fc325aa12c9b69e81d8ea014ddf4709e73beb58b8105cb992543c6300137f2d9b54b8bcfba36a49a79f85068067e5d +SHA512 (wine-6.0-rc5.tar.xz.sign) = 6816538d34a521362735f0efc2e733041676384db1b3843cca098ee47453dcf4c52b684c5bc79a5f8ea40da3406b635f94e56569af53b392fb34fd886815ef0f +SHA512 (wine-staging-6.0-rc5.tar.gz) = d12ebe5b529bce8900958e45cd58f47ac43b8312e5d429647483e05d87527abbda0ce44f46c69348fe045abe436743f6ad824c4ff3efc52667df1aab6f2f0524 diff --git a/wine.spec b/wine.spec index 6f1500b..de0ba9f 100644 --- a/wine.spec +++ b/wine.spec @@ -45,13 +45,13 @@ Name: wine Version: 6.0 -Release: 0.4rc4%{?dist} +Release: 0.5rc5%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ URL: https://www.winehq.org/ -Source0: https://dl.winehq.org/wine/source/6.0/wine-%{version}-rc4.tar.xz -Source10: https://dl.winehq.org/wine/source/6.0/wine-%{version}-rc4.tar.xz.sign +Source0: https://dl.winehq.org/wine/source/6.0/wine-%{version}-rc5.tar.xz +Source10: https://dl.winehq.org/wine/source/6.0/wine-%{version}-rc5.tar.xz.sign Source1: wine.init Source2: wine.systemd @@ -75,6 +75,8 @@ Source109: wine-oleview.desktop Source150: wine.appdata.xml # wine bugs +# https://bugs.winehq.org/show_bug.cgi?id=45277 +Patch100: wine-6.0-vulkan-child-window.patch # desktop dir Source200: wine.menu @@ -95,7 +97,7 @@ Patch511: wine-cjk.patch %if 0%{?wine_staging} # wine-staging patches # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar.gz#/wine-staging-%{version}-rc4.tar.gz +Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar.gz#/wine-staging-%{version}-rc5.tar.gz %endif %if !%{?no64bit} @@ -704,7 +706,7 @@ This package adds the opencl driver for wine. %endif %prep -%setup -q -n wine-%{version}-rc4 +%setup -q -n wine-%{version}-rc5 %patch511 -p1 -b.cjk %if 0%{?wine_staging} @@ -716,6 +718,8 @@ patches/patchinstall.sh DESTDIR="`pwd`" --all # fix parallelized build sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in +%patch100 -p1 -b.vulkan-child-window + %endif # 0%%{?wine_staging} @@ -2420,7 +2424,10 @@ fi %endif %changelog -* Sat Dec 26 2020 Michael Cronenworth 6.0-0.3rc4 +* Thu Jan 07 2021 Michael Cronenworth 6.0-0.5rc5 +- version update + +* Sat Dec 26 2020 Michael Cronenworth 6.0-0.4rc4 - version update * Sat Dec 19 2020 Michael Cronenworth 6.0-0.3rc3 From adac2aa7fe8b73cd83ca1004720ab221d248d367 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Thu, 7 Jan 2021 21:47:11 -0600 Subject: [PATCH 616/715] Add missing patch --- wine-6.0-vulkan-child-window.patch | 162 +++++++++++++++++++++++++++++ 1 file changed, 162 insertions(+) create mode 100644 wine-6.0-vulkan-child-window.patch diff --git a/wine-6.0-vulkan-child-window.patch b/wine-6.0-vulkan-child-window.patch new file mode 100644 index 0000000..64e94b0 --- /dev/null +++ b/wine-6.0-vulkan-child-window.patch @@ -0,0 +1,162 @@ +From 4cc738f609faff68bf4c67d5618174fa87ab3cdb Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Felix=20H=C3=A4dicke?= +Date: Wed, 10 Jul 2019 22:19:31 +0200 +Subject: [PATCH] winex11.drv: Support child window rendering for Vulkan via + XComposite +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45277 +Signed-off-by: Felix Hädicke +--- + dlls/winex11.drv/vulkan.c | 56 ++++++++++++++++++++++++++++++++------- + 1 file changed, 47 insertions(+), 9 deletions(-) + +diff --git a/dlls/winex11.drv/vulkan.c b/dlls/winex11.drv/vulkan.c +index 28ae1a9e0e8..3b0bf58c107 100644 +--- a/dlls/winex11.drv/vulkan.c ++++ b/dlls/winex11.drv/vulkan.c +@@ -32,6 +32,7 @@ + #include "wine/debug.h" + #include "wine/heap.h" + #include "x11drv.h" ++#include "xcomposite.h" + + #define VK_NO_PROTOTYPES + #define WINE_VK_HOST +@@ -56,6 +57,7 @@ + static CRITICAL_SECTION context_section = { &critsect_debug, -1, 0, 0, 0, 0 }; + + static XContext vulkan_hwnd_context; ++static XContext vulkan_swapchain_surface_context; + + #define VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR 1000004000 + +@@ -63,6 +65,7 @@ + { + LONG ref; + Window window; ++ HDC child_window_dc; + VkSurfaceKHR surface; /* native surface */ + }; + +@@ -95,6 +98,7 @@ + static VkBool32 (*pvkGetPhysicalDeviceXlibPresentationSupportKHR)(VkPhysicalDevice, uint32_t, Display *, VisualID); + static VkResult (*pvkGetSwapchainImagesKHR)(VkDevice, VkSwapchainKHR, uint32_t *, VkImage *); + static VkResult (*pvkQueuePresentKHR)(VkQueue, const VkPresentInfoKHR *); ++static VkResult (*pvkQueueWaitIdle)(VkQueue); + + static void *X11DRV_get_vk_device_proc_addr(const char *name); + static void *X11DRV_get_vk_instance_proc_addr(VkInstance instance, const char *name); +@@ -142,12 +146,14 @@ + LOAD_FUNCPTR(vkGetPhysicalDeviceXlibPresentationSupportKHR); + LOAD_FUNCPTR(vkGetSwapchainImagesKHR); + LOAD_FUNCPTR(vkQueuePresentKHR); ++ LOAD_FUNCPTR(vkQueueWaitIdle); + LOAD_OPTIONAL_FUNCPTR(vkGetDeviceGroupSurfacePresentModesKHR); + LOAD_OPTIONAL_FUNCPTR(vkGetPhysicalDevicePresentRectanglesKHR); + #undef LOAD_FUNCPTR + #undef LOAD_OPTIONAL_FUNCPTR + + vulkan_hwnd_context = XUniqueContext(); ++ vulkan_swapchain_surface_context = XUniqueContext(); + + return TRUE; + +@@ -265,16 +271,24 @@ + const VkSwapchainCreateInfoKHR *create_info, + const VkAllocationCallbacks *allocator, VkSwapchainKHR *swapchain) + { ++ VkResult res; + VkSwapchainCreateInfoKHR create_info_host; ++ struct wine_vk_surface *x11_surface = surface_from_handle(create_info->surface); ++ + TRACE("%p %p %p %p\n", device, create_info, allocator, swapchain); + + if (allocator) + FIXME("Support for allocation callbacks not implemented yet\n"); + + create_info_host = *create_info; +- create_info_host.surface = surface_from_handle(create_info->surface)->surface; ++ create_info_host.surface = x11_surface->surface; + +- return pvkCreateSwapchainKHR(device, &create_info_host, NULL /* allocator */, swapchain); ++ res = pvkCreateSwapchainKHR(device, &create_info_host, NULL /* allocator */, swapchain); ++ if (res == VK_SUCCESS) ++ { ++ XSaveContext(gdi_display, (XID)(*swapchain), vulkan_swapchain_surface_context, (char *)x11_surface); ++ } ++ return res; + } + + static VkResult X11DRV_vkCreateWin32SurfaceKHR(VkInstance instance, +@@ -290,13 +304,6 @@ + if (allocator) + FIXME("Support for allocation callbacks not implemented yet\n"); + +- /* TODO: support child window rendering. */ +- if (GetAncestor(create_info->hwnd, GA_PARENT) != GetDesktopWindow()) +- { +- FIXME("Application requires child window rendering, which is not implemented yet!\n"); +- return VK_ERROR_INCOMPATIBLE_DRIVER; +- } +- + x11_surface = heap_alloc_zero(sizeof(*x11_surface)); + if (!x11_surface) + return VK_ERROR_OUT_OF_HOST_MEMORY; +@@ -313,6 +320,23 @@ + goto err; + } + ++ /* child window rendering. */ ++ if (GetAncestor(create_info->hwnd, GA_PARENT) != GetDesktopWindow()) ++ { ++#ifdef SONAME_LIBXCOMPOSITE ++ if (usexcomposite) ++ { ++ pXCompositeRedirectWindow(gdi_display, x11_surface->window, CompositeRedirectManual); ++ x11_surface->child_window_dc = GetDC(create_info->hwnd); ++ } ++ else ++#endif ++ { ++ FIXME("Child window rendering is not supported without X Composite Extension!\n"); ++ return VK_ERROR_INCOMPATIBLE_DRIVER; ++ } ++ } ++ + create_info_host.sType = VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR; + create_info_host.pNext = NULL; + create_info_host.flags = 0; /* reserved */ +@@ -382,6 +406,7 @@ + FIXME("Support for allocation callbacks not implemented yet\n"); + + pvkDestroySwapchainKHR(device, swapchain, NULL /* allocator */); ++ XDeleteContext(gdi_display, (XID)swapchain, vulkan_swapchain_surface_context); + } + + static VkResult X11DRV_vkEnumerateInstanceExtensionProperties(const char *layer_name, +@@ -608,6 +633,22 @@ + } + } + ++ for (uint32_t i = 0 ; i < present_info->swapchainCount; ++i) ++ { ++ struct wine_vk_surface *x11_surface; ++ if (!XFindContext(gdi_display, (XID)present_info->pSwapchains[i], ++ vulkan_swapchain_surface_context, (char **)&x11_surface) && ++ x11_surface->child_window_dc) ++ { ++ struct x11drv_escape_flush_gl_drawable escape; ++ escape.code = X11DRV_FLUSH_GL_DRAWABLE; ++ escape.gl_drawable = x11_surface->window; ++ escape.flush = TRUE; ++ pvkQueueWaitIdle(queue); ++ ExtEscape(x11_surface->child_window_dc, X11DRV_ESCAPE, sizeof(escape), (LPSTR)&escape, 0, NULL); ++ } ++ } ++ + return res; + } + From ac4f40d6046289155a76db8b08fbf6229a7aeac0 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 10 Jan 2021 10:45:41 -0600 Subject: [PATCH 617/715] Update to 6.0-rc6 --- .gitignore | 6 +++--- sources | 6 +++--- wine-6.0-vulkan-child-window.patch | 34 ++++++++---------------------- wine.spec | 13 +++++++----- 4 files changed, 23 insertions(+), 36 deletions(-) diff --git a/.gitignore b/.gitignore index 97f3def..7c29753 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-6.0-rc5.tar.xz -/wine-6.0-rc5.tar.xz.sign -/wine-staging-6.0-rc5.tar.gz +/wine-6.0-rc6.tar.xz +/wine-6.0-rc6.tar.xz.sign +/wine-staging-6.0-rc6.tar.gz diff --git a/sources b/sources index 228c1c6..ae47c12 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-6.0-rc5.tar.xz) = e995ad4ddd2c71c9f5ffd963e2d9743a45fc325aa12c9b69e81d8ea014ddf4709e73beb58b8105cb992543c6300137f2d9b54b8bcfba36a49a79f85068067e5d -SHA512 (wine-6.0-rc5.tar.xz.sign) = 6816538d34a521362735f0efc2e733041676384db1b3843cca098ee47453dcf4c52b684c5bc79a5f8ea40da3406b635f94e56569af53b392fb34fd886815ef0f -SHA512 (wine-staging-6.0-rc5.tar.gz) = d12ebe5b529bce8900958e45cd58f47ac43b8312e5d429647483e05d87527abbda0ce44f46c69348fe045abe436743f6ad824c4ff3efc52667df1aab6f2f0524 +SHA512 (wine-6.0-rc6.tar.xz) = 55f43c6a770085c70d6afafd82e6da6df94ff6c6b04dc07b706aaba46978bf83b06b6d384f4bcbd61c035e1a0116968d2ccf1f5ebe5a5d073fc0e56fb89f4c15 +SHA512 (wine-6.0-rc6.tar.xz.sign) = 317c8ab61be69d76e85b4b7e39f6f5dbb3c1bc80a3389326230dd31b9271477c7f55fdad477dd7c8bbfd14622de4d5d427b655e33f1ec80ff34296a0592f578e +SHA512 (wine-staging-6.0-rc6.tar.gz) = fcf9e5d22ca2085b4e2754e8528f3b6e1b36b1c3704a5a1dbb4ff68904ac208ad66eb5181bedc8ad2f074d0edc6c531a2311379aa865807e6116fe878e22923e diff --git a/wine-6.0-vulkan-child-window.patch b/wine-6.0-vulkan-child-window.patch index 64e94b0..a93ac52 100644 --- a/wine-6.0-vulkan-child-window.patch +++ b/wine-6.0-vulkan-child-window.patch @@ -17,7 +17,7 @@ diff --git a/dlls/winex11.drv/vulkan.c b/dlls/winex11.drv/vulkan.c index 28ae1a9e0e8..3b0bf58c107 100644 --- a/dlls/winex11.drv/vulkan.c +++ b/dlls/winex11.drv/vulkan.c -@@ -32,6 +32,7 @@ +@@ -33,6 +33,7 @@ #include "wine/debug.h" #include "wine/heap.h" #include "x11drv.h" @@ -25,7 +25,7 @@ index 28ae1a9e0e8..3b0bf58c107 100644 #define VK_NO_PROTOTYPES #define WINE_VK_HOST -@@ -56,6 +57,7 @@ +@@ -55,6 +56,7 @@ static CRITICAL_SECTION_DEBUG critsect_debug = static CRITICAL_SECTION context_section = { &critsect_debug, -1, 0, 0, 0, 0 }; static XContext vulkan_hwnd_context; @@ -33,7 +33,7 @@ index 28ae1a9e0e8..3b0bf58c107 100644 #define VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR 1000004000 -@@ -63,6 +65,7 @@ +@@ -62,6 +64,7 @@ struct wine_vk_surface { LONG ref; Window window; @@ -41,22 +41,7 @@ index 28ae1a9e0e8..3b0bf58c107 100644 VkSurfaceKHR surface; /* native surface */ }; -@@ -95,6 +98,7 @@ - static VkBool32 (*pvkGetPhysicalDeviceXlibPresentationSupportKHR)(VkPhysicalDevice, uint32_t, Display *, VisualID); - static VkResult (*pvkGetSwapchainImagesKHR)(VkDevice, VkSwapchainKHR, uint32_t *, VkImage *); - static VkResult (*pvkQueuePresentKHR)(VkQueue, const VkPresentInfoKHR *); -+static VkResult (*pvkQueueWaitIdle)(VkQueue); - - static void *X11DRV_get_vk_device_proc_addr(const char *name); - static void *X11DRV_get_vk_instance_proc_addr(VkInstance instance, const char *name); -@@ -142,12 +146,14 @@ - LOAD_FUNCPTR(vkGetPhysicalDeviceXlibPresentationSupportKHR); - LOAD_FUNCPTR(vkGetSwapchainImagesKHR); - LOAD_FUNCPTR(vkQueuePresentKHR); -+ LOAD_FUNCPTR(vkQueueWaitIdle); - LOAD_OPTIONAL_FUNCPTR(vkGetDeviceGroupSurfacePresentModesKHR); - LOAD_OPTIONAL_FUNCPTR(vkGetPhysicalDevicePresentRectanglesKHR); - #undef LOAD_FUNCPTR +@@ -135,6 +138,7 @@ static BOOL WINAPI wine_vk_init(INIT_ONCE *once, void *param, void **context) #undef LOAD_OPTIONAL_FUNCPTR vulkan_hwnd_context = XUniqueContext(); @@ -64,7 +49,7 @@ index 28ae1a9e0e8..3b0bf58c107 100644 return TRUE; -@@ -265,16 +271,24 @@ +@@ -252,16 +256,24 @@ static VkResult X11DRV_vkCreateSwapchainKHR(VkDevice device, const VkSwapchainCreateInfoKHR *create_info, const VkAllocationCallbacks *allocator, VkSwapchainKHR *swapchain) { @@ -91,7 +76,7 @@ index 28ae1a9e0e8..3b0bf58c107 100644 } static VkResult X11DRV_vkCreateWin32SurfaceKHR(VkInstance instance, -@@ -290,13 +304,6 @@ +@@ -277,13 +289,6 @@ static VkResult X11DRV_vkCreateWin32SurfaceKHR(VkInstance instance, if (allocator) FIXME("Support for allocation callbacks not implemented yet\n"); @@ -105,7 +90,7 @@ index 28ae1a9e0e8..3b0bf58c107 100644 x11_surface = heap_alloc_zero(sizeof(*x11_surface)); if (!x11_surface) return VK_ERROR_OUT_OF_HOST_MEMORY; -@@ -313,6 +320,23 @@ +@@ -300,6 +305,23 @@ static VkResult X11DRV_vkCreateWin32SurfaceKHR(VkInstance instance, goto err; } @@ -129,7 +114,7 @@ index 28ae1a9e0e8..3b0bf58c107 100644 create_info_host.sType = VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR; create_info_host.pNext = NULL; create_info_host.flags = 0; /* reserved */ -@@ -382,6 +406,7 @@ +@@ -369,6 +391,7 @@ static void X11DRV_vkDestroySwapchainKHR(VkDevice device, VkSwapchainKHR swapcha FIXME("Support for allocation callbacks not implemented yet\n"); pvkDestroySwapchainKHR(device, swapchain, NULL /* allocator */); @@ -137,7 +122,7 @@ index 28ae1a9e0e8..3b0bf58c107 100644 } static VkResult X11DRV_vkEnumerateInstanceExtensionProperties(const char *layer_name, -@@ -608,6 +633,22 @@ +@@ -541,6 +564,21 @@ static VkResult X11DRV_vkQueuePresentKHR(VkQueue queue, const VkPresentInfoKHR * } } @@ -152,7 +137,6 @@ index 28ae1a9e0e8..3b0bf58c107 100644 + escape.code = X11DRV_FLUSH_GL_DRAWABLE; + escape.gl_drawable = x11_surface->window; + escape.flush = TRUE; -+ pvkQueueWaitIdle(queue); + ExtEscape(x11_surface->child_window_dc, X11DRV_ESCAPE, sizeof(escape), (LPSTR)&escape, 0, NULL); + } + } diff --git a/wine.spec b/wine.spec index de0ba9f..95bcaa0 100644 --- a/wine.spec +++ b/wine.spec @@ -45,13 +45,13 @@ Name: wine Version: 6.0 -Release: 0.5rc5%{?dist} +Release: 0.6rc6%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ URL: https://www.winehq.org/ -Source0: https://dl.winehq.org/wine/source/6.0/wine-%{version}-rc5.tar.xz -Source10: https://dl.winehq.org/wine/source/6.0/wine-%{version}-rc5.tar.xz.sign +Source0: https://dl.winehq.org/wine/source/6.0/wine-%{version}-rc6.tar.xz +Source10: https://dl.winehq.org/wine/source/6.0/wine-%{version}-rc6.tar.xz.sign Source1: wine.init Source2: wine.systemd @@ -97,7 +97,7 @@ Patch511: wine-cjk.patch %if 0%{?wine_staging} # wine-staging patches # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar.gz#/wine-staging-%{version}-rc5.tar.gz +Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar.gz#/wine-staging-%{version}-rc6.tar.gz %endif %if !%{?no64bit} @@ -706,7 +706,7 @@ This package adds the opencl driver for wine. %endif %prep -%setup -q -n wine-%{version}-rc5 +%setup -q -n wine-%{version}-rc6 %patch511 -p1 -b.cjk %if 0%{?wine_staging} @@ -2424,6 +2424,9 @@ fi %endif %changelog +* Sun Jan 10 2021 Michael Cronenworth 6.0-0.6rc6 +- version update + * Thu Jan 07 2021 Michael Cronenworth 6.0-0.5rc5 - version update From 7cc0ce578cacebbdbfbd0534255bcf8a8c4821e0 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Thu, 14 Jan 2021 15:44:30 -0600 Subject: [PATCH 618/715] Update to 6.0 final --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 13 ++++++++----- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 7c29753..1118287 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-6.0-rc6.tar.xz -/wine-6.0-rc6.tar.xz.sign -/wine-staging-6.0-rc6.tar.gz +/wine-6.0.tar.xz +/wine-6.0.tar.xz.sign +/wine-staging-6.0.tar.gz diff --git a/sources b/sources index ae47c12..b34c90d 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-6.0-rc6.tar.xz) = 55f43c6a770085c70d6afafd82e6da6df94ff6c6b04dc07b706aaba46978bf83b06b6d384f4bcbd61c035e1a0116968d2ccf1f5ebe5a5d073fc0e56fb89f4c15 -SHA512 (wine-6.0-rc6.tar.xz.sign) = 317c8ab61be69d76e85b4b7e39f6f5dbb3c1bc80a3389326230dd31b9271477c7f55fdad477dd7c8bbfd14622de4d5d427b655e33f1ec80ff34296a0592f578e -SHA512 (wine-staging-6.0-rc6.tar.gz) = fcf9e5d22ca2085b4e2754e8528f3b6e1b36b1c3704a5a1dbb4ff68904ac208ad66eb5181bedc8ad2f074d0edc6c531a2311379aa865807e6116fe878e22923e +SHA512 (wine-6.0.tar.xz) = c0732fbab1da8737d595a876b28ce87eef1440c317746e798642b59b44b34e890de562e0c0cc674e97096f39db82f8e9c3b1cc1ba9edc246b7266a0f7cb00057 +SHA512 (wine-6.0.tar.xz.sign) = 86803505f85ea2c56d70331fda7e68d3cba7d5c78513c0d5edd5fcbe00e1aa99ae472d1123a62ed41f5bcdf5ccd66c1894306cd8f451b9efbf33aa14b6ae111a +SHA512 (wine-staging-6.0.tar.gz) = 33845e398e9c3d4bacbd9cd369983e72517fd648747433eabd933b446f9d86f1d61660959ff4e05cb661cf4038550b3df3384f588f3f5504b1f8056196ca3c38 diff --git a/wine.spec b/wine.spec index 95bcaa0..1753c62 100644 --- a/wine.spec +++ b/wine.spec @@ -45,13 +45,13 @@ Name: wine Version: 6.0 -Release: 0.6rc6%{?dist} +Release: 1%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ URL: https://www.winehq.org/ -Source0: https://dl.winehq.org/wine/source/6.0/wine-%{version}-rc6.tar.xz -Source10: https://dl.winehq.org/wine/source/6.0/wine-%{version}-rc6.tar.xz.sign +Source0: https://dl.winehq.org/wine/source/6.0/wine-%{version}.tar.xz +Source10: https://dl.winehq.org/wine/source/6.0/wine-%{version}.tar.xz.sign Source1: wine.init Source2: wine.systemd @@ -97,7 +97,7 @@ Patch511: wine-cjk.patch %if 0%{?wine_staging} # wine-staging patches # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar.gz#/wine-staging-%{version}-rc6.tar.gz +Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar.gz#/wine-staging-%{version}.tar.gz %endif %if !%{?no64bit} @@ -706,7 +706,7 @@ This package adds the opencl driver for wine. %endif %prep -%setup -q -n wine-%{version}-rc6 +%setup -q -n wine-%{version} %patch511 -p1 -b.cjk %if 0%{?wine_staging} @@ -2424,6 +2424,9 @@ fi %endif %changelog +* Thu Jan 14 2021 Michael Cronenworth 6.0-1 +- version update + * Sun Jan 10 2021 Michael Cronenworth 6.0-0.6rc6 - version update From 20bbb6ca65bf8b26cea588800be1c230383af088 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 27 Jan 2021 23:30:53 +0000 Subject: [PATCH 619/715] - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- wine.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 1753c62..ae1bc62 100644 --- a/wine.spec +++ b/wine.spec @@ -45,7 +45,7 @@ Name: wine Version: 6.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -2424,6 +2424,9 @@ fi %endif %changelog +* Wed Jan 27 2021 Fedora Release Engineering - 6.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + * Thu Jan 14 2021 Michael Cronenworth 6.0-1 - version update From 75be33b1554c6fda0270b04573a9cab871503d0d Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 1 Feb 2021 21:48:08 -0600 Subject: [PATCH 620/715] Update to 6.1 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 7 +++++-- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index 1118287..00fb29e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-6.0.tar.xz -/wine-6.0.tar.xz.sign -/wine-staging-6.0.tar.gz +/wine-6.1.tar.xz +/wine-6.1.tar.xz.sign +/wine-staging-6.1.tar.gz diff --git a/sources b/sources index b34c90d..920e2fb 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-6.0.tar.xz) = c0732fbab1da8737d595a876b28ce87eef1440c317746e798642b59b44b34e890de562e0c0cc674e97096f39db82f8e9c3b1cc1ba9edc246b7266a0f7cb00057 -SHA512 (wine-6.0.tar.xz.sign) = 86803505f85ea2c56d70331fda7e68d3cba7d5c78513c0d5edd5fcbe00e1aa99ae472d1123a62ed41f5bcdf5ccd66c1894306cd8f451b9efbf33aa14b6ae111a -SHA512 (wine-staging-6.0.tar.gz) = 33845e398e9c3d4bacbd9cd369983e72517fd648747433eabd933b446f9d86f1d61660959ff4e05cb661cf4038550b3df3384f588f3f5504b1f8056196ca3c38 +SHA512 (wine-6.1.tar.xz) = 49ee77c41e2fb1c4f22417117b26f8a467ec6c99583fca66f147003f776fcaf5ca42227153c7ca3325dfe70141ae9bfb88e3eb6e4cf25dd31a5ba5115d2685d0 +SHA512 (wine-6.1.tar.xz.sign) = 51e0929a3ed402155da371e7ecd0bb04b58629c650fdc08cb2389a4526d27b6e3f000063ffeafb5d6dd5907295d49f0ac6a5b2f2169c07c55ea9d080b3e61605 +SHA512 (wine-staging-6.1.tar.gz) = 50bf3f07cf8008731cee131852cbce43c5ec44219e8e96fb70a0fc82954b0a2a9d25ee8b25b7c62b47abd131591ca8fe0461214287601465edccda80be6d598f diff --git a/wine.spec b/wine.spec index ae1bc62..255f1a0 100644 --- a/wine.spec +++ b/wine.spec @@ -44,8 +44,8 @@ %endif Name: wine -Version: 6.0 -Release: 2%{?dist} +Version: 6.1 +Release: 1%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -2424,6 +2424,9 @@ fi %endif %changelog +* Mon Feb 01 2021 Michael Cronenworth 6.1-1 +- version update + * Wed Jan 27 2021 Fedora Release Engineering - 6.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild From 8e216ca407b6c0f78f65f36c5b068c6452701e55 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 13 Feb 2021 11:33:22 -0600 Subject: [PATCH 621/715] Update to 6.2 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 19 ++++++++++--------- 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/.gitignore b/.gitignore index 00fb29e..1198c49 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-6.1.tar.xz -/wine-6.1.tar.xz.sign -/wine-staging-6.1.tar.gz +/wine-6.2.tar.xz +/wine-6.2.tar.xz.sign +/wine-staging-6.2.tar.gz diff --git a/sources b/sources index 920e2fb..91e008b 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-6.1.tar.xz) = 49ee77c41e2fb1c4f22417117b26f8a467ec6c99583fca66f147003f776fcaf5ca42227153c7ca3325dfe70141ae9bfb88e3eb6e4cf25dd31a5ba5115d2685d0 -SHA512 (wine-6.1.tar.xz.sign) = 51e0929a3ed402155da371e7ecd0bb04b58629c650fdc08cb2389a4526d27b6e3f000063ffeafb5d6dd5907295d49f0ac6a5b2f2169c07c55ea9d080b3e61605 -SHA512 (wine-staging-6.1.tar.gz) = 50bf3f07cf8008731cee131852cbce43c5ec44219e8e96fb70a0fc82954b0a2a9d25ee8b25b7c62b47abd131591ca8fe0461214287601465edccda80be6d598f +SHA512 (wine-6.2.tar.xz) = d28870ba58fc4ed9dc083f843d7f4ee8921722bb33e0b84c89f281fc27e5f827c0998ad629eb21c92f860dade77194d3c8a0f5b4c6ae3407fe7acef245cfa9a4 +SHA512 (wine-6.2.tar.xz.sign) = cfee8fac4ffa1716ade8f0a393d07c63e53aff43f4e34726871131e33cbce479e98d8d44abdf47ab0a8d15aa03ceb8de1ec507fb61ef0d0a1e297b4d8f4ef9b0 +SHA512 (wine-staging-6.2.tar.gz) = 558c46250babaacda92885c35c438797baff7b8eb45cb3cdf7f7572c35e6412e621182061a3a4e31444cc7580f99a61de6bd433bf2bb2b8139cdd718afd9cd2e diff --git a/wine.spec b/wine.spec index 255f1a0..9dff08e 100644 --- a/wine.spec +++ b/wine.spec @@ -3,7 +3,7 @@ %global no64bit 0 %global winegecko 2.47.2 -%global winemono 5.1.1 +%global winemono 6.0.0 #global _default_patch_fuzz 2 %ifarch %{ix86} x86_64 %global wineacm acm @@ -44,14 +44,14 @@ %endif Name: wine -Version: 6.1 +Version: 6.2 Release: 1%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ URL: https://www.winehq.org/ -Source0: https://dl.winehq.org/wine/source/6.0/wine-%{version}.tar.xz -Source10: https://dl.winehq.org/wine/source/6.0/wine-%{version}.tar.xz.sign +Source0: https://dl.winehq.org/wine/source/6.x/wine-%{version}.tar.xz +Source10: https://dl.winehq.org/wine/source/6.x/wine-%{version}.tar.xz.sign Source1: wine.init Source2: wine.systemd @@ -1525,6 +1525,7 @@ fi %{_libdir}/wine/cryptdll.%{winedll} %{_libdir}/wine/cryptext.%{winedll} %{_libdir}/wine/cryptnet.%{winedll} +%{_libdir}/wine/cryptsp.%{winedll} %{_libdir}/wine/cryptui.%{winedll} %{_libdir}/wine/ctapi32.dll.so %{_libdir}/wine/ctl3d32.%{winedll} @@ -2011,15 +2012,11 @@ fi %{_libdir}/wine/wiaservc.%{winedll} %{_libdir}/wine/wimgapi.%{winedll} %{_libdir}/wine/win32k.%{winesys} -%{_libdir}/wine/windows.gaming.input.%{winedll} -%{_libdir}/wine/windows.globalization.%{winedll} -%{_libdir}/wine/windows.media.speech.%{winedll} -%{_libdir}/wine/windows.networking.connectivity.%{winedll} %{_libdir}/wine/windowscodecs.%{winedll} %{_libdir}/wine/windowscodecs.so %{_libdir}/wine/windowscodecsext.%{winedll} %{_libdir}/wine/winebus.sys.so -%{_libdir}/wine/winegstreamer.dll.so +%{_libdir}/wine/winegstreamer.%{winedll} %{_libdir}/wine/winehid.%{winesys} %{_libdir}/wine/winejoystick.drv.so %{_libdir}/wine/winemapi.%{winedll} @@ -2046,6 +2043,7 @@ fi %{_libdir}/wine/winusb.%{winedll} %{_libdir}/wine/wlanapi.%{winedll} %{_libdir}/wine/wlanui.%{winedll} +%{_libdir}/wine/wmphoto.so %{_libdir}/wine/wmphoto.%{winedll} %{_libdir}/wine/wnaspi32.dll.so %if 0%{?wine_staging} @@ -2424,6 +2422,9 @@ fi %endif %changelog +* Sat Feb 13 2021 Michael Cronenworth 6.2-1 +- version update + * Mon Feb 01 2021 Michael Cronenworth 6.1-1 - version update From 706d07806749a377354f5af76abd6e2be3aafb62 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 13 Feb 2021 11:50:37 -0600 Subject: [PATCH 622/715] Fix winegstreamer extension --- wine.spec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 9dff08e..2021511 100644 --- a/wine.spec +++ b/wine.spec @@ -2016,7 +2016,8 @@ fi %{_libdir}/wine/windowscodecs.so %{_libdir}/wine/windowscodecsext.%{winedll} %{_libdir}/wine/winebus.sys.so -%{_libdir}/wine/winegstreamer.%{winedll} +%{_libdir}/wine/winegstreamer.so +%{_libdir}/wine/winegstreamer.dll.so %{_libdir}/wine/winehid.%{winesys} %{_libdir}/wine/winejoystick.drv.so %{_libdir}/wine/winemapi.%{winedll} From a6d7918ecb47f95111edb578bdecd2ddff888792 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 27 Feb 2021 09:57:30 -0600 Subject: [PATCH 623/715] Update to 6.3 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 18 +++++++++++++----- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 1198c49..fd40531 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-6.2.tar.xz -/wine-6.2.tar.xz.sign -/wine-staging-6.2.tar.gz +/wine-6.3.tar.xz +/wine-6.3.tar.xz.sign +/wine-staging-6.3.tar.gz diff --git a/sources b/sources index 91e008b..c957da5 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-6.2.tar.xz) = d28870ba58fc4ed9dc083f843d7f4ee8921722bb33e0b84c89f281fc27e5f827c0998ad629eb21c92f860dade77194d3c8a0f5b4c6ae3407fe7acef245cfa9a4 -SHA512 (wine-6.2.tar.xz.sign) = cfee8fac4ffa1716ade8f0a393d07c63e53aff43f4e34726871131e33cbce479e98d8d44abdf47ab0a8d15aa03ceb8de1ec507fb61ef0d0a1e297b4d8f4ef9b0 -SHA512 (wine-staging-6.2.tar.gz) = 558c46250babaacda92885c35c438797baff7b8eb45cb3cdf7f7572c35e6412e621182061a3a4e31444cc7580f99a61de6bd433bf2bb2b8139cdd718afd9cd2e +SHA512 (wine-6.3.tar.xz) = 20108ea5036d612e8dd61fe9254d67cad02d757ede87174ed27774e4e3537e0d1f4d67156fd430f1d01d5c68b899cb0c7b4be298d897a1ce823913efef822242 +SHA512 (wine-6.3.tar.xz.sign) = c7215c43eff6ff7cf7bab3bf598b95fcab87a8d4ac58d94056c7ffa368c66a71e3a1943902038878d063208c25b910335be6389ac263e04bf9abd57a298a58c1 +SHA512 (wine-staging-6.3.tar.gz) = ed9b3b03c466de03941d7fec00c73ff77df863c3f4ba201e7f920810675ff416995557cb62b6701dcec6928f2ab9e4d608f17b79eda0267094e506a5e66f47f2 diff --git a/wine.spec b/wine.spec index 2021511..3913884 100644 --- a/wine.spec +++ b/wine.spec @@ -44,7 +44,7 @@ %endif Name: wine -Version: 6.2 +Version: 6.3 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1702,7 +1702,7 @@ fi %{_libdir}/wine/icmp.%{winedll} %{_libdir}/wine/ieframe.%{winedll} %if 0%{?wine_staging} -%{_libdir}/wine/iertutil.dll.so +%{_libdir}/wine/iertutil.%{winedll} %endif %{_libdir}/wine/ieproxy.%{winedll} %{_libdir}/wine/imaadp32.%{wineacm} @@ -2012,12 +2012,17 @@ fi %{_libdir}/wine/wiaservc.%{winedll} %{_libdir}/wine/wimgapi.%{winedll} %{_libdir}/wine/win32k.%{winesys} +%if 0%{?wine_staging} +%{_libdir}/wine/windows.gaming.input.%{winedll} +%{_libdir}/wine/windows.globalization.%{winedll} +%{_libdir}/wine/windows.media.speech.%{winedll} +%endif %{_libdir}/wine/windowscodecs.%{winedll} %{_libdir}/wine/windowscodecs.so %{_libdir}/wine/windowscodecsext.%{winedll} %{_libdir}/wine/winebus.sys.so %{_libdir}/wine/winegstreamer.so -%{_libdir}/wine/winegstreamer.dll.so +%{_libdir}/wine/winegstreamer.%{winedll} %{_libdir}/wine/winehid.%{winesys} %{_libdir}/wine/winejoystick.drv.so %{_libdir}/wine/winemapi.%{winedll} @@ -2131,10 +2136,10 @@ fi %if 0%{?wine_staging} %ifarch x86_64 aarch64 -%{_libdir}/wine/nvapi64.dll.so +%{_libdir}/wine/nvapi64.%{winedll} %{_libdir}/wine/nvencodeapi64.dll.so %else -%{_libdir}/wine/nvapi.dll.so +%{_libdir}/wine/nvapi.%{winedll} %{_libdir}/wine/nvencodeapi.dll.so %endif %endif @@ -2423,6 +2428,9 @@ fi %endif %changelog +* Sat Feb 27 2021 Michael Cronenworth 6.3-1 +- version update + * Sat Feb 13 2021 Michael Cronenworth 6.2-1 - version update From 60d1c6ae72f20aa83f4d6a39dcc48cbaa27aa618 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 11 Apr 2021 14:13:02 -0500 Subject: [PATCH 624/715] Update to 6.6 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 25 ++++++++++++++++++++----- 3 files changed, 26 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index fd40531..fc7865c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-6.3.tar.xz -/wine-6.3.tar.xz.sign -/wine-staging-6.3.tar.gz +/wine-6.6.tar.xz +/wine-6.6.tar.xz.sign +/wine-staging-6.6.tar.gz diff --git a/sources b/sources index c957da5..053e7fc 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-6.3.tar.xz) = 20108ea5036d612e8dd61fe9254d67cad02d757ede87174ed27774e4e3537e0d1f4d67156fd430f1d01d5c68b899cb0c7b4be298d897a1ce823913efef822242 -SHA512 (wine-6.3.tar.xz.sign) = c7215c43eff6ff7cf7bab3bf598b95fcab87a8d4ac58d94056c7ffa368c66a71e3a1943902038878d063208c25b910335be6389ac263e04bf9abd57a298a58c1 -SHA512 (wine-staging-6.3.tar.gz) = ed9b3b03c466de03941d7fec00c73ff77df863c3f4ba201e7f920810675ff416995557cb62b6701dcec6928f2ab9e4d608f17b79eda0267094e506a5e66f47f2 +SHA512 (wine-6.6.tar.xz) = a5caabc5ff91a830fbdcd25a85ee32b6df98315325a929a3124521cd10cc873e5a585359b03eb0293bb2474e39a179cbe179c0611acda6a228861e06068c091e +SHA512 (wine-6.6.tar.xz.sign) = b5a91c259d65228bf7e40aed24c0ea2fc47872b54b65cda3c6ad3403705a9025291a4928d703b4ca6a17e6b6b0e7fe4cd39b9dbe862e3a25047d28f39c901b0a +SHA512 (wine-staging-6.6.tar.gz) = 65e90c4a0965f2db499edcff5171552b8e95716ff9b2a4ed272d022bc0b1f99547ca1d7b09ced2a267cdf3dfbaf552f9cbb2cc8bbd34636eb3882406ab5985d2 diff --git a/wine.spec b/wine.spec index 3913884..87052c1 100644 --- a/wine.spec +++ b/wine.spec @@ -44,7 +44,7 @@ %endif Name: wine -Version: 6.3 +Version: 6.6 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -224,6 +224,7 @@ Requires: mesa-dri-drivers(x86-32) %endif %if 0%{?fedora} >= 33 Recommends: wine-dxvk(x86-32) +Recommends: dosbox-staging %endif Recommends: gstreamer1-plugins-good(x86-32) %endif @@ -249,6 +250,7 @@ Requires: wine-mono = %winemono Requires: mesa-dri-drivers(x86-64) %if 0%{?fedora} >= 33 Recommends: wine-dxvk(x86-64) +Recommends: dosbox-staging %endif Recommends: gstreamer1-plugins-good(x86-64) %endif @@ -1309,6 +1311,7 @@ fi %{_libdir}/wine/api-ms-win-core-largeinteger-l1-1-0.%{winedll} %{_libdir}/wine/api-ms-win-core-kernel32-legacy-l1-1-0.%{winedll} %{_libdir}/wine/api-ms-win-core-kernel32-legacy-l1-1-1.%{winedll} +%{_libdir}/wine/api-ms-win-core-kernel32-legacy-l1-1-2.%{winedll} %{_libdir}/wine/api-ms-win-core-kernel32-private-l1-1-1.%{winedll} %{_libdir}/wine/api-ms-win-core-libraryloader-l1-1-0.%{winedll} %{_libdir}/wine/api-ms-win-core-libraryloader-l1-1-1.%{winedll} @@ -1478,8 +1481,10 @@ fi %{_libdir}/wine/api-ms-win-service-winsvc-l1-1-0.%{winedll} %{_libdir}/wine/api-ms-win-service-winsvc-l1-2-0.%{winedll} %{_libdir}/wine/api-ms-win-shcore-obsolete-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-shcore-scaling-l1-1-0.%{winedll} %{_libdir}/wine/api-ms-win-shcore-scaling-l1-1-1.%{winedll} %{_libdir}/wine/api-ms-win-shcore-stream-l1-1-0.%{winedll} +%{_libdir}/wine/api-ms-win-shcore-stream-winrt-l1-1-0.%{winedll} %{_libdir}/wine/api-ms-win-shcore-thread-l1-1-0.%{winedll} %{_libdir}/wine/api-ms-win-shell-shellcom-l1-1-0.%{winedll} %{_libdir}/wine/api-ms-win-shell-shellfolders-l1-1-0.%{winedll} @@ -1588,7 +1593,8 @@ fi %{_libdir}/wine/dsuiext.%{winedll} %{_libdir}/wine/dswave.%{winedll} %{_libdir}/wine/dwmapi.%{winedll} -%{_libdir}/wine/dwrite.dll.so +%{_libdir}/wine/dwrite.%{winedll} +%{_libdir}/wine/dwrite.so %{_libdir}/wine/dx8vb.%{winedll} %{_libdir}/wine/dxdiagn.%{winedll} %ghost %{_libdir}/wine/dxgi.dll.so @@ -2006,6 +2012,7 @@ fi %{_libdir}/wine/wbemprox.%{winedll} %{_libdir}/wine/wdscore.%{winedll} %{_libdir}/wine/webservices.%{winedll} +%{_libdir}/wine/websocket.%{winedll} %{_libdir}/wine/wer.%{winedll} %{_libdir}/wine/wevtapi.%{winedll} %{_libdir}/wine/wevtsvc.%{winedll} @@ -2053,7 +2060,7 @@ fi %{_libdir}/wine/wmphoto.%{winedll} %{_libdir}/wine/wnaspi32.dll.so %if 0%{?wine_staging} -%{_libdir}/wine/wow64cpu.dll.so +%{_libdir}/wine/wow64cpu.%{winedll} %endif %{_libdir}/wine/wpc.%{winedll} %{_libdir}/wine/wpcap.dll.so @@ -2077,7 +2084,8 @@ fi %{_libdir}/wine/wine-d3d9.%{winedll} %{_libdir}/wine/opengl32.dll.so %{_libdir}/wine/wined3d.dll.so -%{_libdir}/wine/dnsapi.dll.so +%{_libdir}/wine/dnsapi.%{winedll} +%{_libdir}/wine/dnsapi.so %{_libdir}/wine/iexplore.%{wineexe} %{_libdir}/wine/x3daudio1_0.dll.so %{_libdir}/wine/x3daudio1_1.dll.so @@ -2424,10 +2432,17 @@ fi %if 0%{?fedora} %files opencl -%{_libdir}/wine/opencl.dll.so +%{_libdir}/wine/opencl.%{winedll} +%{_libdir}/wine/opencl.so %endif %changelog +* Sun Apr 11 2021 Michael Cronenworth 6.6-1 +- version update + +* Mon Mar 15 2021 Michael Cronenworth 6.4-1 +- version update + * Sat Feb 27 2021 Michael Cronenworth 6.3-1 - version update From 7e107304d290acf219a2ace8deb928331e14320b Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 11 Apr 2021 14:13:35 -0500 Subject: [PATCH 625/715] Bump wine-mono req --- wine.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 87052c1..181cb61 100644 --- a/wine.spec +++ b/wine.spec @@ -3,7 +3,7 @@ %global no64bit 0 %global winegecko 2.47.2 -%global winemono 6.0.0 +%global winemono 6.1.1 #global _default_patch_fuzz 2 %ifarch %{ix86} x86_64 %global wineacm acm From ce628f31683a16ef592210e879f3a5df70a12195 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 11 Apr 2021 15:21:34 -0500 Subject: [PATCH 626/715] Surround wow64cpu with arch check --- wine.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/wine.spec b/wine.spec index 181cb61..6e617c3 100644 --- a/wine.spec +++ b/wine.spec @@ -2060,8 +2060,10 @@ fi %{_libdir}/wine/wmphoto.%{winedll} %{_libdir}/wine/wnaspi32.dll.so %if 0%{?wine_staging} +%ifarch x86_64 aarch64 %{_libdir}/wine/wow64cpu.%{winedll} %endif +%endif %{_libdir}/wine/wpc.%{winedll} %{_libdir}/wine/wpcap.dll.so %{_libdir}/wine/ws2_32.dll.so From 6aefa6dd9f116523f76dfefe353a92c371e99212 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 11 Apr 2021 16:31:40 -0500 Subject: [PATCH 627/715] Refine wow64cpu check --- wine.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 6e617c3..2b2f7ef 100644 --- a/wine.spec +++ b/wine.spec @@ -2060,7 +2060,7 @@ fi %{_libdir}/wine/wmphoto.%{winedll} %{_libdir}/wine/wnaspi32.dll.so %if 0%{?wine_staging} -%ifarch x86_64 aarch64 +%ifarch x86_64 %{_libdir}/wine/wow64cpu.%{winedll} %endif %endif From d98c10fc509d93b703e8970ffea1a3c70d65bbd6 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 24 Apr 2021 12:25:44 -0500 Subject: [PATCH 628/715] Update to 6.7 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 20 ++++++++------------ 3 files changed, 14 insertions(+), 18 deletions(-) diff --git a/.gitignore b/.gitignore index fc7865c..f83a12f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-6.6.tar.xz -/wine-6.6.tar.xz.sign -/wine-staging-6.6.tar.gz +/wine-6.7.tar.xz +/wine-6.7.tar.xz.sign +/wine-staging-6.7.tar.gz diff --git a/sources b/sources index 053e7fc..e9c2247 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-6.6.tar.xz) = a5caabc5ff91a830fbdcd25a85ee32b6df98315325a929a3124521cd10cc873e5a585359b03eb0293bb2474e39a179cbe179c0611acda6a228861e06068c091e -SHA512 (wine-6.6.tar.xz.sign) = b5a91c259d65228bf7e40aed24c0ea2fc47872b54b65cda3c6ad3403705a9025291a4928d703b4ca6a17e6b6b0e7fe4cd39b9dbe862e3a25047d28f39c901b0a -SHA512 (wine-staging-6.6.tar.gz) = 65e90c4a0965f2db499edcff5171552b8e95716ff9b2a4ed272d022bc0b1f99547ca1d7b09ced2a267cdf3dfbaf552f9cbb2cc8bbd34636eb3882406ab5985d2 +SHA512 (wine-6.7.tar.xz) = 42920921eaff5a483859fba2b9e866c6afad25427d030f971efe2136f9619b675d5eb1ddfffd54bba8caa172c3e91eb347d673cb16f45560f0ab40a184a34758 +SHA512 (wine-6.7.tar.xz.sign) = 8993ec90439d15bc1ca500b847c1c832ec1334a267b2694d200a92c7dc7812c04dfd5fc28831b7bb5878d07c7c74a27c67565ebe8c13bc5b09182564045262cd +SHA512 (wine-staging-6.7.tar.gz) = 74805846e2e6e5d751c25f4b98ac671f8507d3a9b13d572e166b1885e397a6bb74bd3ea4b456d46298306d632499a4b88f97eb6d53ff049c2495cf055347611d diff --git a/wine.spec b/wine.spec index 2b2f7ef..f537a14 100644 --- a/wine.spec +++ b/wine.spec @@ -44,7 +44,7 @@ %endif Name: wine -Version: 6.6 +Version: 6.7 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1729,7 +1729,7 @@ fi %{_libdir}/wine/joy.%{winecpl} %{_libdir}/wine/jscript.%{winedll} %{_libdir}/wine/jsproxy.%{winedll} -%{_libdir}/wine/kerberos.dll.so +%{_libdir}/wine/kerberos.%{winedll} %{_libdir}/wine/kernel32.%{winedll} %{_libdir}/wine/kernelbase.%{winedll} %{_libdir}/wine/ksecdd.%{winesys} @@ -1851,7 +1851,7 @@ fi %{_libdir}/wine/nddeapi.%{winedll} %{_libdir}/wine/ncrypt.%{winedll} %{_libdir}/wine/ndis.%{winesys} -%{_libdir}/wine/netapi32.dll.so +%{_libdir}/wine/netapi32.%{winedll} %{_libdir}/wine/netcfgx.%{winedll} %{_libdir}/wine/netio.%{winesys} %{_libdir}/wine/netprofm.%{winedll} @@ -2034,7 +2034,7 @@ fi %{_libdir}/wine/winejoystick.drv.so %{_libdir}/wine/winemapi.%{winedll} %{_libdir}/wine/wineusb.sys.so -%{_libdir}/wine/winevulkan.dll.so +%{_libdir}/wine/winevulkan.%{winedll} %{_libdir}/wine/winex11.drv.so %{_libdir}/wine/wing32.%{winedll} %{_libdir}/wine/winhttp.%{winedll} @@ -2099,16 +2099,9 @@ fi %{_libdir}/wine/x3daudio1_7.dll.so %if 0%{?wine_staging} %{_libdir}/wine/xactengine2_0.dll.so -%{_libdir}/wine/xactengine2_1.dll.so -%{_libdir}/wine/xactengine2_2.dll.so -%{_libdir}/wine/xactengine2_3.dll.so %{_libdir}/wine/xactengine2_4.dll.so -%{_libdir}/wine/xactengine2_5.dll.so -%{_libdir}/wine/xactengine2_6.dll.so %{_libdir}/wine/xactengine2_7.dll.so -%{_libdir}/wine/xactengine2_8.dll.so %{_libdir}/wine/xactengine2_9.dll.so -%{_libdir}/wine/xactengine2_10.dll.so %endif %{_libdir}/wine/xactengine3_0.dll.so %{_libdir}/wine/xactengine3_1.dll.so @@ -2377,7 +2370,7 @@ fi # ldap subpackage %files ldap -%{_libdir}/wine/wldap32.dll.so +%{_libdir}/wine/wldap32.%{winedll} # cms subpackage %files cms @@ -2439,6 +2432,9 @@ fi %endif %changelog +* Sat Apr 24 2021 Michael Cronenworth 6.7-1 +- version update + * Sun Apr 11 2021 Michael Cronenworth 6.6-1 - version update From 034c22ecad01df3a09a8a916baf2f4ad3d8c6317 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 24 Apr 2021 12:48:04 -0500 Subject: [PATCH 629/715] Missing files for 6.7 --- wine.spec | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/wine.spec b/wine.spec index f537a14..a148fb5 100644 --- a/wine.spec +++ b/wine.spec @@ -1729,6 +1729,7 @@ fi %{_libdir}/wine/joy.%{winecpl} %{_libdir}/wine/jscript.%{winedll} %{_libdir}/wine/jsproxy.%{winedll} +%{_libdir}/wine/kerberos.so %{_libdir}/wine/kerberos.%{winedll} %{_libdir}/wine/kernel32.%{winedll} %{_libdir}/wine/kernelbase.%{winedll} @@ -1851,6 +1852,7 @@ fi %{_libdir}/wine/nddeapi.%{winedll} %{_libdir}/wine/ncrypt.%{winedll} %{_libdir}/wine/ndis.%{winesys} +%{_libdir}/wine/netapi32.so %{_libdir}/wine/netapi32.%{winedll} %{_libdir}/wine/netcfgx.%{winedll} %{_libdir}/wine/netio.%{winesys} @@ -2024,6 +2026,7 @@ fi %{_libdir}/wine/windows.globalization.%{winedll} %{_libdir}/wine/windows.media.speech.%{winedll} %endif +%{_libdir}/wine/windows.media.devices.%{winedll} %{_libdir}/wine/windowscodecs.%{winedll} %{_libdir}/wine/windowscodecs.so %{_libdir}/wine/windowscodecsext.%{winedll} @@ -2034,6 +2037,7 @@ fi %{_libdir}/wine/winejoystick.drv.so %{_libdir}/wine/winemapi.%{winedll} %{_libdir}/wine/wineusb.sys.so +%{_libdir}/wine/winevulkan.so %{_libdir}/wine/winevulkan.%{winedll} %{_libdir}/wine/winex11.drv.so %{_libdir}/wine/wing32.%{winedll} @@ -2370,6 +2374,7 @@ fi # ldap subpackage %files ldap +%{_libdir}/wine/wldap32.so %{_libdir}/wine/wldap32.%{winedll} # cms subpackage From 8631a7489ba853d3fd15d54c5466326f68f8df25 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 24 Apr 2021 13:29:14 -0500 Subject: [PATCH 630/715] Fix staging patch for return type. GCC ignores it while Clang errors. --- wine.spec | 3 +++ 1 file changed, 3 insertions(+) diff --git a/wine.spec b/wine.spec index a148fb5..786b570 100644 --- a/wine.spec +++ b/wine.spec @@ -715,6 +715,9 @@ This package adds the opencl driver for wine. # setup and apply wine-staging patches gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 +# Fix staging patch +sed -i -e 's!+ return status;!+ return;!' patches/user32-rawinput-hid/0017-hidclass.sys-Assign-rawinput-handles-through-device-.patch + patches/patchinstall.sh DESTDIR="`pwd`" --all # fix parallelized build From ab38f0c79a3ddea86349a966c96be83597b49a90 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Thu, 13 May 2021 18:23:13 -0500 Subject: [PATCH 631/715] Update to 6.8 - massive directory layout change --- .gitignore | 6 +- sources | 6 +- wine-6.0-vulkan-child-window.patch | 146 -- wine.spec | 2249 ++++++++++++++-------------- 4 files changed, 1170 insertions(+), 1237 deletions(-) delete mode 100644 wine-6.0-vulkan-child-window.patch diff --git a/.gitignore b/.gitignore index f83a12f..85bcc12 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-6.7.tar.xz -/wine-6.7.tar.xz.sign -/wine-staging-6.7.tar.gz +/wine-6.8.tar.xz +/wine-6.8.tar.xz.sign +/wine-staging-6.8.tar.gz diff --git a/sources b/sources index e9c2247..6f65669 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-6.7.tar.xz) = 42920921eaff5a483859fba2b9e866c6afad25427d030f971efe2136f9619b675d5eb1ddfffd54bba8caa172c3e91eb347d673cb16f45560f0ab40a184a34758 -SHA512 (wine-6.7.tar.xz.sign) = 8993ec90439d15bc1ca500b847c1c832ec1334a267b2694d200a92c7dc7812c04dfd5fc28831b7bb5878d07c7c74a27c67565ebe8c13bc5b09182564045262cd -SHA512 (wine-staging-6.7.tar.gz) = 74805846e2e6e5d751c25f4b98ac671f8507d3a9b13d572e166b1885e397a6bb74bd3ea4b456d46298306d632499a4b88f97eb6d53ff049c2495cf055347611d +SHA512 (wine-6.8.tar.xz) = 784863e3aa11f692cee2ab3b3d99cc896c1eb41cfab8cc6b52b5a31671d82fc7f6783bae72c65d8806a8c4096000401cbd0a1a7f1a88fd980685fae67fa9bd91 +SHA512 (wine-6.8.tar.xz.sign) = bb82528de58fc69768e6d647ceee2f21c37cac5281f30754666f5ecd13fea15b605e005dc47105cf49fa7d1e3b0ac8e807eda319c378de09eeb122960665a8f7 +SHA512 (wine-staging-6.8.tar.gz) = a2dfe74b07b687af147b61f235ea2843ff38a563f37ed2ed68dce1cc0ff3d50dbd7c9596836c6e236e368e7a55cbe1ba881dac11bb0966e61a76a7376f92bdcc diff --git a/wine-6.0-vulkan-child-window.patch b/wine-6.0-vulkan-child-window.patch deleted file mode 100644 index a93ac52..0000000 --- a/wine-6.0-vulkan-child-window.patch +++ /dev/null @@ -1,146 +0,0 @@ -From 4cc738f609faff68bf4c67d5618174fa87ab3cdb Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Felix=20H=C3=A4dicke?= -Date: Wed, 10 Jul 2019 22:19:31 +0200 -Subject: [PATCH] winex11.drv: Support child window rendering for Vulkan via - XComposite -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45277 -Signed-off-by: Felix Hädicke ---- - dlls/winex11.drv/vulkan.c | 56 ++++++++++++++++++++++++++++++++------- - 1 file changed, 47 insertions(+), 9 deletions(-) - -diff --git a/dlls/winex11.drv/vulkan.c b/dlls/winex11.drv/vulkan.c -index 28ae1a9e0e8..3b0bf58c107 100644 ---- a/dlls/winex11.drv/vulkan.c -+++ b/dlls/winex11.drv/vulkan.c -@@ -33,6 +33,7 @@ - #include "wine/debug.h" - #include "wine/heap.h" - #include "x11drv.h" -+#include "xcomposite.h" - - #define VK_NO_PROTOTYPES - #define WINE_VK_HOST -@@ -55,6 +56,7 @@ static CRITICAL_SECTION_DEBUG critsect_debug = - static CRITICAL_SECTION context_section = { &critsect_debug, -1, 0, 0, 0, 0 }; - - static XContext vulkan_hwnd_context; -+static XContext vulkan_swapchain_surface_context; - - #define VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR 1000004000 - -@@ -62,6 +64,7 @@ struct wine_vk_surface - { - LONG ref; - Window window; -+ HDC child_window_dc; - VkSurfaceKHR surface; /* native surface */ - }; - -@@ -135,6 +138,7 @@ static BOOL WINAPI wine_vk_init(INIT_ONCE *once, void *param, void **context) - #undef LOAD_OPTIONAL_FUNCPTR - - vulkan_hwnd_context = XUniqueContext(); -+ vulkan_swapchain_surface_context = XUniqueContext(); - - return TRUE; - -@@ -252,16 +256,24 @@ static VkResult X11DRV_vkCreateSwapchainKHR(VkDevice device, - const VkSwapchainCreateInfoKHR *create_info, - const VkAllocationCallbacks *allocator, VkSwapchainKHR *swapchain) - { -+ VkResult res; - VkSwapchainCreateInfoKHR create_info_host; -+ struct wine_vk_surface *x11_surface = surface_from_handle(create_info->surface); -+ - TRACE("%p %p %p %p\n", device, create_info, allocator, swapchain); - - if (allocator) - FIXME("Support for allocation callbacks not implemented yet\n"); - - create_info_host = *create_info; -- create_info_host.surface = surface_from_handle(create_info->surface)->surface; -+ create_info_host.surface = x11_surface->surface; - -- return pvkCreateSwapchainKHR(device, &create_info_host, NULL /* allocator */, swapchain); -+ res = pvkCreateSwapchainKHR(device, &create_info_host, NULL /* allocator */, swapchain); -+ if (res == VK_SUCCESS) -+ { -+ XSaveContext(gdi_display, (XID)(*swapchain), vulkan_swapchain_surface_context, (char *)x11_surface); -+ } -+ return res; - } - - static VkResult X11DRV_vkCreateWin32SurfaceKHR(VkInstance instance, -@@ -277,13 +289,6 @@ static VkResult X11DRV_vkCreateWin32SurfaceKHR(VkInstance instance, - if (allocator) - FIXME("Support for allocation callbacks not implemented yet\n"); - -- /* TODO: support child window rendering. */ -- if (GetAncestor(create_info->hwnd, GA_PARENT) != GetDesktopWindow()) -- { -- FIXME("Application requires child window rendering, which is not implemented yet!\n"); -- return VK_ERROR_INCOMPATIBLE_DRIVER; -- } -- - x11_surface = heap_alloc_zero(sizeof(*x11_surface)); - if (!x11_surface) - return VK_ERROR_OUT_OF_HOST_MEMORY; -@@ -300,6 +305,23 @@ static VkResult X11DRV_vkCreateWin32SurfaceKHR(VkInstance instance, - goto err; - } - -+ /* child window rendering. */ -+ if (GetAncestor(create_info->hwnd, GA_PARENT) != GetDesktopWindow()) -+ { -+#ifdef SONAME_LIBXCOMPOSITE -+ if (usexcomposite) -+ { -+ pXCompositeRedirectWindow(gdi_display, x11_surface->window, CompositeRedirectManual); -+ x11_surface->child_window_dc = GetDC(create_info->hwnd); -+ } -+ else -+#endif -+ { -+ FIXME("Child window rendering is not supported without X Composite Extension!\n"); -+ return VK_ERROR_INCOMPATIBLE_DRIVER; -+ } -+ } -+ - create_info_host.sType = VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR; - create_info_host.pNext = NULL; - create_info_host.flags = 0; /* reserved */ -@@ -369,6 +391,7 @@ static void X11DRV_vkDestroySwapchainKHR(VkDevice device, VkSwapchainKHR swapcha - FIXME("Support for allocation callbacks not implemented yet\n"); - - pvkDestroySwapchainKHR(device, swapchain, NULL /* allocator */); -+ XDeleteContext(gdi_display, (XID)swapchain, vulkan_swapchain_surface_context); - } - - static VkResult X11DRV_vkEnumerateInstanceExtensionProperties(const char *layer_name, -@@ -541,6 +564,21 @@ static VkResult X11DRV_vkQueuePresentKHR(VkQueue queue, const VkPresentInfoKHR * - } - } - -+ for (uint32_t i = 0 ; i < present_info->swapchainCount; ++i) -+ { -+ struct wine_vk_surface *x11_surface; -+ if (!XFindContext(gdi_display, (XID)present_info->pSwapchains[i], -+ vulkan_swapchain_surface_context, (char **)&x11_surface) && -+ x11_surface->child_window_dc) -+ { -+ struct x11drv_escape_flush_gl_drawable escape; -+ escape.code = X11DRV_FLUSH_GL_DRAWABLE; -+ escape.gl_drawable = x11_surface->window; -+ escape.flush = TRUE; -+ ExtEscape(x11_surface->child_window_dc, X11DRV_ESCAPE, sizeof(escape), (LPSTR)&escape, 0, NULL); -+ } -+ } -+ - return res; - } - diff --git a/wine.spec b/wine.spec index 786b570..bdf2811 100644 --- a/wine.spec +++ b/wine.spec @@ -12,6 +12,7 @@ %global winecpl cpl %global winedll dll %global winedrv drv +%global wineds ds %global wineexe exe %global wineocx ocx %global winesys sys @@ -23,11 +24,28 @@ %global winecpl cpl.so %global winedll dll.so %global winedrv drv.so +%global wineds ds.so %global wineexe exe.so %global wineocx ocx.so %global winesys sys.so %global winetlb tlb.so %endif +%ifarch %{ix86} +%global winepedir i386-windows +%global winesodir i386-unix +%endif +%ifarch x86_64 +%global winepedir x86_64-windows +%global winesodir x86_64-unix +%endif +%ifarch %{arm} +%global winepedir arm-windows +%global winesodir arm-unix +%endif +%ifarch aarch64 +%global winepedir aarch64-windows +%global winesodir aarch64-unix +%endif # build with wine-staging patches, see: https://github.com/wine-staging/wine-staging %if 0%{?fedora} @@ -44,7 +62,7 @@ %endif Name: wine -Version: 6.7 +Version: 6.8 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -75,8 +93,6 @@ Source109: wine-oleview.desktop Source150: wine.appdata.xml # wine bugs -# https://bugs.winehq.org/show_bug.cgi?id=45277 -Patch100: wine-6.0-vulkan-child-window.patch # desktop dir Source200: wine.menu @@ -715,16 +731,11 @@ This package adds the opencl driver for wine. # setup and apply wine-staging patches gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 -# Fix staging patch -sed -i -e 's!+ return status;!+ return;!' patches/user32-rawinput-hid/0017-hidclass.sys-Assign-rawinput-handles-through-device-.patch - patches/patchinstall.sh DESTDIR="`pwd`" --all # fix parallelized build sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in -%patch100 -p1 -b.vulkan-child-window - %endif # 0%%{?wine_staging} @@ -799,18 +810,20 @@ touch %{buildroot}%{_bindir}/wine touch %{buildroot}%{_bindir}/wine-preloader %endif touch %{buildroot}%{_bindir}/wineserver -mv %{buildroot}%{_libdir}/wine/dxgi.dll.so %{buildroot}%{_libdir}/wine/wine-dxgi.dll.so -mv %{buildroot}%{_libdir}/wine/d3d9.%{winedll} %{buildroot}%{_libdir}/wine/wine-d3d9.%{winedll} -mv %{buildroot}%{_libdir}/wine/d3d10.%{winedll} %{buildroot}%{_libdir}/wine/wine-d3d10.%{winedll} -mv %{buildroot}%{_libdir}/wine/d3d10_1.%{winedll} %{buildroot}%{_libdir}/wine/wine-d3d10_1.%{winedll} -mv %{buildroot}%{_libdir}/wine/d3d10core.%{winedll} %{buildroot}%{_libdir}/wine/wine-d3d10core.%{winedll} -mv %{buildroot}%{_libdir}/wine/d3d11.%{winedll} %{buildroot}%{_libdir}/wine/wine-d3d11.%{winedll} -touch %{buildroot}%{_libdir}/wine/dxgi.dll.so -touch %{buildroot}%{_libdir}/wine/d3d9.%{winedll} -touch %{buildroot}%{_libdir}/wine/d3d10.%{winedll} -touch %{buildroot}%{_libdir}/wine/d3d10_1.%{winedll} -touch %{buildroot}%{_libdir}/wine/d3d10core.%{winedll} -touch %{buildroot}%{_libdir}/wine/d3d11.%{winedll} +mv %{buildroot}%{_libdir}/wine/%{winepedir}/dxgi.%{winedll} %{buildroot}%{_libdir}/wine/%{winepedir}/wine-dxgi.%{winedll} +mv %{buildroot}%{_libdir}/wine/%{winesodir}/dxgi.dll.so %{buildroot}%{_libdir}/wine/%{winesodir}/wine-dxgi.dll.so +mv %{buildroot}%{_libdir}/wine/%{winepedir}/d3d9.%{winedll} %{buildroot}%{_libdir}/wine/%{winepedir}/wine-d3d9.%{winedll} +mv %{buildroot}%{_libdir}/wine/%{winepedir}/d3d10.%{winedll} %{buildroot}%{_libdir}/wine/%{winepedir}/wine-d3d10.%{winedll} +mv %{buildroot}%{_libdir}/wine/%{winepedir}/d3d10_1.%{winedll} %{buildroot}%{_libdir}/wine/%{winepedir}/wine-d3d10_1.%{winedll} +mv %{buildroot}%{_libdir}/wine/%{winepedir}/d3d10core.%{winedll} %{buildroot}%{_libdir}/wine/%{winepedir}/wine-d3d10core.%{winedll} +mv %{buildroot}%{_libdir}/wine/%{winepedir}/d3d11.%{winedll} %{buildroot}%{_libdir}/wine/%{winepedir}/wine-d3d11.%{winedll} +touch %{buildroot}%{_libdir}/wine/%{winepedir}/dxgi.%{winedll} +touch %{buildroot}%{_libdir}/wine/%{winesodir}/dxgi.dll.so +touch %{buildroot}%{_libdir}/wine/%{winepedir}/d3d9.%{winedll} +touch %{buildroot}%{_libdir}/wine/%{winepedir}/d3d10.%{winedll} +touch %{buildroot}%{_libdir}/wine/%{winepedir}/d3d10_1.%{winedll} +touch %{buildroot}%{_libdir}/wine/%{winepedir}/d3d10core.%{winedll} +touch %{buildroot}%{_libdir}/wine/%{winepedir}/d3d11.%{winedll} # remove rpath chrpath --delete %{buildroot}%{_bindir}/wmc @@ -1056,12 +1069,10 @@ fi %posttrans core # handle upgrades for a few package updates -rm -f %{_libdir}/wine/dxgi.dll.so -rm -f %{_libdir}/wine/d3d9.%{winedll} -rm -f %{_libdir}/wine/d3d10.%{winedll} -rm -f %{_libdir}/wine/d3d10_1.%{winedll} -rm -f %{_libdir}/wine/d3d10core.%{winedll} -rm -f %{_libdir}/wine/d3d11.%{winedll} +%{_sbindir}/alternatives --remove 'wine-dxgi%{?_isa}' %{_libdir}/wine/wine-dxgi.dll.so +%{_sbindir}/alternatives --remove 'wine-d3d9%{?_isa}' %{_libdir}/wine/wine-d3d9.%{winedll} +%{_sbindir}/alternatives --remove 'wine-d3d10%{?_isa}' %{_libdir}/wine/wine-d3d10.%{winedll} +%{_sbindir}/alternatives --remove 'wine-d3d11%{?_isa}' %{_libdir}/wine/wine-d3d11.%{winedll} %ifarch x86_64 aarch64 %{_sbindir}/alternatives --install %{_bindir}/wine \ wine %{_bindir}/wine64 10 \ @@ -1082,31 +1093,32 @@ rm -f %{_libdir}/wine/d3d11.%{winedll} wineserver %{_bindir}/wineserver32 10 %endif %endif -%{_sbindir}/alternatives --install %{_libdir}/wine/dxgi.dll.so \ - 'wine-dxgi%{?_isa}' %{_libdir}/wine/wine-dxgi.dll.so 10 -%{_sbindir}/alternatives --install %{_libdir}/wine/d3d9.%{winedll} \ - 'wine-d3d9%{?_isa}' %{_libdir}/wine/wine-d3d9.%{winedll} 10 -%{_sbindir}/alternatives --install %{_libdir}/wine/d3d10.%{winedll} \ - 'wine-d3d10%{?_isa}' %{_libdir}/wine/wine-d3d10.%{winedll} 10 \ - --slave %{_libdir}/wine/d3d10_1.%{winedll} 'wine-d3d10_1%{?_isa}' %{_libdir}/wine/wine-d3d10_1.%{winedll} \ - --slave %{_libdir}/wine/d3d10core.%{winedll} 'wine-d3d10core%{?_isa}' %{_libdir}/wine/wine-d3d10core.%{winedll} -%{_sbindir}/alternatives --install %{_libdir}/wine/d3d11.%{winedll} \ - 'wine-d3d11%{?_isa}' %{_libdir}/wine/wine-d3d11.%{winedll} 10 +%{_sbindir}/alternatives --install %{_libdir}/wine/%{winepedir}/dxgi.%{winedll} \ + 'wine-dxgi%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-dxgi.%{winedll} 10 \ + --slave %{_libdir}/wine/%{winesodir}/dxgi.dll.so 'wine-dxgi-so%{?_isa}' %{_libdir}/wine/%{winesodir}/wine-dxgi.dll.so +%{_sbindir}/alternatives --install %{_libdir}/wine/%{winepedir}/d3d9.%{winedll} \ + 'wine-d3d9%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-d3d9.%{winedll} 10 +%{_sbindir}/alternatives --install %{_libdir}/wine/%{winepedir}/d3d10.%{winedll} \ + 'wine-d3d10%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-d3d10.%{winedll} 10 \ + --slave %{_libdir}/wine/%{winepedir}/d3d10_1.%{winedll} 'wine-d3d10_1%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-d3d10_1.%{winedll} \ + --slave %{_libdir}/wine/%{winepedir}/d3d10core.%{winedll} 'wine-d3d10core%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-d3d10core.%{winedll} +%{_sbindir}/alternatives --install %{_libdir}/wine/%{winepedir}/d3d11.%{winedll} \ + 'wine-d3d11%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-d3d11.%{winedll} 10 %postun core %{?ldconfig} if [ $1 -eq 0 ] ; then -%ifarch x86_64 aarch64 aarch64 +%ifarch x86_64 aarch64 %{_sbindir}/alternatives --remove wine %{_bindir}/wine64 %{_sbindir}/alternatives --remove wineserver %{_bindir}/wineserver64 %else %{_sbindir}/alternatives --remove wine %{_bindir}/wine32 %{_sbindir}/alternatives --remove wineserver %{_bindir}/wineserver32 %endif - %{_sbindir}/alternatives --remove 'wine-dxgi%{?_isa}' %{_libdir}/wine/wine-dxgi.dll.so - %{_sbindir}/alternatives --remove 'wine-d3d9%{?_isa}' %{_libdir}/wine/wine-d3d9.%{winedll} - %{_sbindir}/alternatives --remove 'wine-d3d10%{?_isa}' %{_libdir}/wine/wine-d3d10.%{winedll} - %{_sbindir}/alternatives --remove 'wine-d3d11%{?_isa}' %{_libdir}/wine/wine-d3d11.%{winedll} + %{_sbindir}/alternatives --remove 'wine-dxgi%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-dxgi.%{winedll} + %{_sbindir}/alternatives --remove 'wine-d3d9%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-d3d9.%{winedll} + %{_sbindir}/alternatives --remove 'wine-d3d10%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-d3d10.%{winedll} + %{_sbindir}/alternatives --remove 'wine-d3d11%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-d3d11.%{winedll} fi %ldconfig_scriptlets ldap @@ -1141,25 +1153,26 @@ fi %{_bindir}/msidb %endif %{_bindir}/winedump -%{_libdir}/wine/explorer.%{wineexe} -%{_libdir}/wine/cabarc.%{wineexe} -%{_libdir}/wine/control.%{wineexe} -%{_libdir}/wine/cmd.%{wineexe} -%{_libdir}/wine/dxdiag.%{wineexe} -%{_libdir}/wine/notepad.%{wineexe} -%{_libdir}/wine/plugplay.%{wineexe} -%{_libdir}/wine/progman.%{wineexe} -%{_libdir}/wine/taskmgr.%{wineexe} -%{_libdir}/wine/winedbg.exe.so -%{_libdir}/wine/winefile.%{wineexe} -%{_libdir}/wine/winemine.%{wineexe} -%{_libdir}/wine/winemsibuilder.%{wineexe} -%{_libdir}/wine/winepath.%{wineexe} -%{_libdir}/wine/winmgmt.%{wineexe} -%{_libdir}/wine/winver.%{wineexe} -%{_libdir}/wine/wordpad.%{wineexe} -%{_libdir}/wine/write.%{wineexe} -%{_libdir}/wine/wusa.%{wineexe} +%{_libdir}/wine/%{winepedir}/explorer.%{wineexe} +%{_libdir}/wine/%{winepedir}/cabarc.%{wineexe} +%{_libdir}/wine/%{winepedir}/control.%{wineexe} +%{_libdir}/wine/%{winepedir}/cmd.%{wineexe} +%{_libdir}/wine/%{winepedir}/dxdiag.%{wineexe} +%{_libdir}/wine/%{winepedir}/notepad.%{wineexe} +%{_libdir}/wine/%{winepedir}/plugplay.%{wineexe} +%{_libdir}/wine/%{winepedir}/progman.%{wineexe} +%{_libdir}/wine/%{winepedir}/taskmgr.%{wineexe} +%{_libdir}/wine/%{winepedir}/winedbg.%{wineexe} +%{_libdir}/wine/%{winesodir}/winedbg.exe.so +%{_libdir}/wine/%{winepedir}/winefile.%{wineexe} +%{_libdir}/wine/%{winepedir}/winemine.%{wineexe} +%{_libdir}/wine/%{winepedir}/winemsibuilder.%{wineexe} +%{_libdir}/wine/%{winepedir}/winepath.%{wineexe} +%{_libdir}/wine/%{winepedir}/winmgmt.%{wineexe} +%{_libdir}/wine/%{winepedir}/winver.%{wineexe} +%{_libdir}/wine/%{winepedir}/wordpad.%{wineexe} +%{_libdir}/wine/%{winepedir}/write.%{wineexe} +%{_libdir}/wine/%{winepedir}/wusa.%{wineexe} %ifarch %{ix86} %{arm} %{_bindir}/wine32 @@ -1186,1039 +1199,1096 @@ fi %ghost %{_bindir}/wineserver %dir %{_libdir}/wine -%dir %{_libdir}/wine/fakedlls -%{_libdir}/wine/fakedlls/* - -%{_libdir}/wine/attrib.%{wineexe} -%{_libdir}/wine/arp.%{wineexe} -%{_libdir}/wine/aspnet_regiis.%{wineexe} -%{_libdir}/wine/cacls.%{wineexe} -%{_libdir}/wine/conhost.%{wineexe} -%{_libdir}/wine/cscript.%{wineexe} -%{_libdir}/wine/dism.%{wineexe} -%{_libdir}/wine/dplaysvr.%{wineexe} -%{_libdir}/wine/dpnsvr.%{wineexe} -%{_libdir}/wine/dpvsetup.%{wineexe} -%{_libdir}/wine/eject.%{wineexe} -%{_libdir}/wine/expand.%{wineexe} -%{_libdir}/wine/extrac32.%{wineexe} -%{_libdir}/wine/fc.%{wineexe} -%{_libdir}/wine/find.%{wineexe} -%{_libdir}/wine/findstr.%{wineexe} -%{_libdir}/wine/fsutil.%{wineexe} -%{_libdir}/wine/hostname.%{wineexe} -%{_libdir}/wine/ipconfig.%{wineexe} -%{_libdir}/wine/winhlp32.%{wineexe} -%{_libdir}/wine/mshta.%{wineexe} -%if 0%{?wine_staging} -%{_libdir}/wine/msidb.%{wineexe} -%endif -%{_libdir}/wine/msiexec.%{wineexe} -%{_libdir}/wine/net.%{wineexe} -%{_libdir}/wine/netstat.%{wineexe} -%{_libdir}/wine/ngen.%{wineexe} -%{_libdir}/wine/ntoskrnl.%{wineexe} -%{_libdir}/wine/oleview.%{wineexe} -%{_libdir}/wine/ping.%{wineexe} -%{_libdir}/wine/powershell.%{wineexe} -%{_libdir}/wine/reg.%{wineexe} -%{_libdir}/wine/regasm.%{wineexe} -%{_libdir}/wine/regedit.%{wineexe} -%{_libdir}/wine/regsvcs.%{wineexe} -%{_libdir}/wine/regsvr32.%{wineexe} -%{_libdir}/wine/rpcss.%{wineexe} -%{_libdir}/wine/rundll32.%{wineexe} -%{_libdir}/wine/schtasks.%{wineexe} -%{_libdir}/wine/sdbinst.%{wineexe} -%{_libdir}/wine/secedit.%{wineexe} -%{_libdir}/wine/servicemodelreg.%{wineexe} -%{_libdir}/wine/services.%{wineexe} -%{_libdir}/wine/start.%{wineexe} -%{_libdir}/wine/tasklist.%{wineexe} -%{_libdir}/wine/termsv.%{wineexe} -%{_libdir}/wine/view.%{wineexe} -%{_libdir}/wine/wevtutil.%{wineexe} -%{_libdir}/wine/where.%{wineexe} -%{_libdir}/wine/whoami.%{wineexe} -%{_libdir}/wine/wineboot.%{wineexe} -%{_libdir}/wine/winebrowser.exe.so -%{_libdir}/wine/wineconsole.%{wineexe} -%{_libdir}/wine/winemenubuilder.exe.so -%{_libdir}/wine/winecfg.exe.so -%{_libdir}/wine/winedevice.%{wineexe} -%{_libdir}/wine/wmplayer.%{wineexe} -%{_libdir}/wine/wscript.%{wineexe} -%{_libdir}/wine/uninstaller.%{wineexe} - -%{_libdir}/libwine.so.1* - -%{_libdir}/wine/acledit.%{winedll} -%{_libdir}/wine/aclui.%{winedll} -%{_libdir}/wine/activeds.%{winedll} -%{_libdir}/wine/activeds.%{winetlb} -%{_libdir}/wine/actxprxy.%{winedll} -%{_libdir}/wine/adsldp.%{winedll} -%{_libdir}/wine/adsldpc.%{winedll} -%{_libdir}/wine/advapi32.%{winedll} -%{_libdir}/wine/advpack.%{winedll} -%{_libdir}/wine/amsi.%{winedll} -%{_libdir}/wine/amstream.%{winedll} -%{_libdir}/wine/api-ms-win-appmodel-identity-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-appmodel-runtime-l1-1-1.%{winedll} -%{_libdir}/wine/api-ms-win-appmodel-runtime-l1-1-2.%{winedll} -%{_libdir}/wine/api-ms-win-core-apiquery-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-appcompat-l1-1-1.%{winedll} -%{_libdir}/wine/api-ms-win-core-appinit-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-atoms-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-bem-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-com-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-com-l1-1-1.%{winedll} -%{_libdir}/wine/api-ms-win-core-com-private-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-comm-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-console-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-console-l2-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-crt-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-crt-l2-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-datetime-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-datetime-l1-1-1.%{winedll} -%{_libdir}/wine/api-ms-win-core-debug-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-debug-l1-1-1.%{winedll} -%{_libdir}/wine/api-ms-win-core-delayload-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-delayload-l1-1-1.%{winedll} -%{_libdir}/wine/api-ms-win-core-errorhandling-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-errorhandling-l1-1-1.%{winedll} -%{_libdir}/wine/api-ms-win-core-errorhandling-l1-1-2.%{winedll} -%{_libdir}/wine/api-ms-win-core-errorhandling-l1-1-3.%{winedll} -%{_libdir}/wine/api-ms-win-core-fibers-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-fibers-l1-1-1.%{winedll} -%{_libdir}/wine/api-ms-win-core-file-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-file-l1-2-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-file-l1-2-1.%{winedll} -%{_libdir}/wine/api-ms-win-core-file-l1-2-2.%{winedll} -%{_libdir}/wine/api-ms-win-core-file-l2-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-file-l2-1-1.%{winedll} -%{_libdir}/wine/api-ms-win-core-file-l2-1-2.%{winedll} -%{_libdir}/wine/api-ms-win-core-file-ansi-l2-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-file-fromapp-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-handle-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-heap-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-heap-l1-2-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-heap-l2-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-heap-obsolete-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-interlocked-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-interlocked-l1-2-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-io-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-io-l1-1-1.%{winedll} -%{_libdir}/wine/api-ms-win-core-job-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-job-l2-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-largeinteger-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-kernel32-legacy-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-kernel32-legacy-l1-1-1.%{winedll} -%{_libdir}/wine/api-ms-win-core-kernel32-legacy-l1-1-2.%{winedll} -%{_libdir}/wine/api-ms-win-core-kernel32-private-l1-1-1.%{winedll} -%{_libdir}/wine/api-ms-win-core-libraryloader-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-libraryloader-l1-1-1.%{winedll} -%{_libdir}/wine/api-ms-win-core-libraryloader-l1-2-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-libraryloader-l1-2-1.%{winedll} -%{_libdir}/wine/api-ms-win-core-libraryloader-l1-2-2.%{winedll} -%{_libdir}/wine/api-ms-win-core-libraryloader-l2-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-localization-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-localization-l1-2-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-localization-l1-2-1.%{winedll} -%{_libdir}/wine/api-ms-win-core-localization-l1-2-2.%{winedll} -%{_libdir}/wine/api-ms-win-core-localization-l2-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-localization-obsolete-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-localization-obsolete-l1-2-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-localization-obsolete-l1-3-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-localization-private-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-localregistry-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-memory-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-memory-l1-1-1.%{winedll} -%{_libdir}/wine/api-ms-win-core-memory-l1-1-2.%{winedll} -%{_libdir}/wine/api-ms-win-core-memory-l1-1-3.%{winedll} -%{_libdir}/wine/api-ms-win-core-memory-l1-1-4.%{winedll} -%{_libdir}/wine/api-ms-win-core-misc-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-namedpipe-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-namedpipe-l1-2-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-namedpipe-ansi-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-namespace-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-normalization-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-path-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-privateprofile-l1-1-1.%{winedll} -%{_libdir}/wine/api-ms-win-core-processenvironment-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-processenvironment-l1-2-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-processthreads-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-processthreads-l1-1-1.%{winedll} -%{_libdir}/wine/api-ms-win-core-processthreads-l1-1-2.%{winedll} -%{_libdir}/wine/api-ms-win-core-processthreads-l1-1-3.%{winedll} -%{_libdir}/wine/api-ms-win-core-processtopology-obsolete-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-profile-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-psapi-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-psapi-ansi-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-psapi-obsolete-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-quirks-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-realtime-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-registry-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-registry-l2-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-registry-l2-2-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-registryuserspecific-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-rtlsupport-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-rtlsupport-l1-2-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-shlwapi-legacy-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-shlwapi-obsolete-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-shlwapi-obsolete-l1-2-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-shutdown-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-sidebyside-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-string-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-string-l2-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-string-obsolete-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-stringansi-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-stringloader-l1-1-1.%{winedll} -%{_libdir}/wine/api-ms-win-core-synch-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-synch-l1-2-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-synch-l1-2-1.%{winedll} -%{_libdir}/wine/api-ms-win-core-synch-ansi-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-sysinfo-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-sysinfo-l1-2-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-sysinfo-l1-2-1.%{winedll} -%{_libdir}/wine/api-ms-win-core-systemtopology-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-threadpool-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-threadpool-l1-2-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-threadpool-legacy-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-threadpool-private-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-timezone-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-toolhelp-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-url-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-util-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-version-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-version-l1-1-1.%{winedll} -%{_libdir}/wine/api-ms-win-core-version-private-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-versionansi-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-windowserrorreporting-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-winrt-error-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-winrt-error-l1-1-1.%{winedll} -%{_libdir}/wine/api-ms-win-core-winrt-errorprivate-l1-1-1.%{winedll} -%{_libdir}/wine/api-ms-win-core-winrt-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-winrt-registration-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-winrt-roparameterizediid-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-winrt-string-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-winrt-string-l1-1-1.%{winedll} -%{_libdir}/wine/api-ms-win-core-wow64-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-wow64-l1-1-1.%{winedll} -%{_libdir}/wine/api-ms-win-core-xstate-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-core-xstate-l2-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-crt-conio-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-crt-convert-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-crt-environment-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-crt-filesystem-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-crt-heap-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-crt-locale-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-crt-math-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-crt-multibyte-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-crt-private-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-crt-process-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-crt-runtime-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-crt-stdio-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-crt-string-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-crt-time-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-crt-utility-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-devices-config-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-devices-config-l1-1-1.%{winedll} -%{_libdir}/wine/api-ms-win-devices-query-l1-1-1.%{winedll} -%{_libdir}/wine/api-ms-win-downlevel-advapi32-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-downlevel-advapi32-l2-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-downlevel-kernel32-l2-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-downlevel-normaliz-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-downlevel-ole32-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-downlevel-shell32-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-downlevel-shlwapi-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-downlevel-shlwapi-l2-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-downlevel-user32-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-downlevel-version-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-dx-d3dkmt-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-eventing-classicprovider-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-eventing-consumer-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-eventing-controller-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-eventing-legacy-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-eventing-provider-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-eventlog-legacy-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-gdi-dpiinfo-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-mm-joystick-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-mm-misc-l1-1-1.%{winedll} -%{_libdir}/wine/api-ms-win-mm-mme-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-mm-time-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-ntuser-dc-access-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-ntuser-rectangle-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-ntuser-sysparams-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-perf-legacy-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-power-base-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-power-setting-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-rtcore-ntuser-draw-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-rtcore-ntuser-private-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-rtcore-ntuser-private-l1-1-4.%{winedll} -%{_libdir}/wine/api-ms-win-rtcore-ntuser-window-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-rtcore-ntuser-winevent-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-rtcore-ntuser-wmpointer-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-rtcore-ntuser-wmpointer-l1-1-3.%{winedll} -%{_libdir}/wine/api-ms-win-security-activedirectoryclient-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-security-audit-l1-1-1.%{winedll} -%{_libdir}/wine/api-ms-win-security-base-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-security-base-l1-2-0.%{winedll} -%{_libdir}/wine/api-ms-win-security-base-private-l1-1-1.%{winedll} -%{_libdir}/wine/api-ms-win-security-credentials-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-security-cryptoapi-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-security-grouppolicy-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-security-lsalookup-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-security-lsalookup-l1-1-1.%{winedll} -%{_libdir}/wine/api-ms-win-security-lsalookup-l2-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-security-lsalookup-l2-1-1.%{winedll} -%{_libdir}/wine/api-ms-win-security-lsapolicy-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-security-provider-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-security-sddl-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-security-systemfunctions-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-service-core-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-service-core-l1-1-1.%{winedll} -%{_libdir}/wine/api-ms-win-service-management-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-service-management-l2-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-service-private-l1-1-1.%{winedll} -%{_libdir}/wine/api-ms-win-service-winsvc-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-service-winsvc-l1-2-0.%{winedll} -%{_libdir}/wine/api-ms-win-shcore-obsolete-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-shcore-scaling-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-shcore-scaling-l1-1-1.%{winedll} -%{_libdir}/wine/api-ms-win-shcore-stream-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-shcore-stream-winrt-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-shcore-thread-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-shell-shellcom-l1-1-0.%{winedll} -%{_libdir}/wine/api-ms-win-shell-shellfolders-l1-1-0.%{winedll} -%{_libdir}/wine/apphelp.%{winedll} -%{_libdir}/wine/appwiz.%{winecpl} -%{_libdir}/wine/atl.%{winedll} -%{_libdir}/wine/atl80.%{winedll} -%{_libdir}/wine/atl90.%{winedll} -%{_libdir}/wine/atl100.%{winedll} -%{_libdir}/wine/atl110.%{winedll} -%{_libdir}/wine/atlthunk.%{winedll} -%{_libdir}/wine/atmlib.%{winedll} -%{_libdir}/wine/authz.%{winedll} -%{_libdir}/wine/avicap32.dll.so -%{_libdir}/wine/avifil32.%{winedll} -%{_libdir}/wine/avrt.%{winedll} -%{_libdir}/wine/bcrypt.so -%{_libdir}/wine/bcrypt.%{winedll} -%{_libdir}/wine/bluetoothapis.%{winedll} -%{_libdir}/wine/browseui.%{winedll} -%{_libdir}/wine/bthprops.%{winecpl} -%{_libdir}/wine/cabinet.%{winedll} -%{_libdir}/wine/cards.%{winedll} -%{_libdir}/wine/cdosys.%{winedll} -%{_libdir}/wine/cfgmgr32.%{winedll} -%{_libdir}/wine/chcp.%{winecom} -%{_libdir}/wine/clock.%{wineexe} -%{_libdir}/wine/clusapi.%{winedll} -%{_libdir}/wine/combase.%{winedll} -%{_libdir}/wine/comcat.%{winedll} -%{_libdir}/wine/comctl32.%{winedll} -%{_libdir}/wine/comdlg32.%{winedll} -%{_libdir}/wine/compstui.%{winedll} -%{_libdir}/wine/comsvcs.%{winedll} -%{_libdir}/wine/concrt140.%{winedll} -%{_libdir}/wine/connect.%{winedll} -%{_libdir}/wine/credui.%{winedll} -%{_libdir}/wine/crtdll.so -%{_libdir}/wine/crtdll.%{winedll} -%{_libdir}/wine/crypt32.so -%{_libdir}/wine/crypt32.%{winedll} -%{_libdir}/wine/cryptdlg.%{winedll} -%{_libdir}/wine/cryptdll.%{winedll} -%{_libdir}/wine/cryptext.%{winedll} -%{_libdir}/wine/cryptnet.%{winedll} -%{_libdir}/wine/cryptsp.%{winedll} -%{_libdir}/wine/cryptui.%{winedll} -%{_libdir}/wine/ctapi32.dll.so -%{_libdir}/wine/ctl3d32.%{winedll} -%{_libdir}/wine/d2d1.%{winedll} -%ghost %{_libdir}/wine/d3d10.%{winedll} -%ghost %{_libdir}/wine/d3d10_1.%{winedll} -%ghost %{_libdir}/wine/d3d10core.%{winedll} -%{_libdir}/wine/wine-d3d10.%{winedll} -%{_libdir}/wine/wine-d3d10_1.%{winedll} -%{_libdir}/wine/wine-d3d10core.%{winedll} -%ghost %{_libdir}/wine/d3d11.%{winedll} -%{_libdir}/wine/wine-d3d11.%{winedll} -%{_libdir}/wine/d3d12.dll.so -%{_libdir}/wine/d3dcompiler_*.%{winedll} -%{_libdir}/wine/d3dim.%{winedll} -%{_libdir}/wine/d3dim700.%{winedll} -%{_libdir}/wine/d3drm.%{winedll} -%{_libdir}/wine/d3dx9_*.%{winedll} -%{_libdir}/wine/d3dx10_*.%{winedll} -%{_libdir}/wine/d3dx11_42.%{winedll} -%{_libdir}/wine/d3dx11_43.%{winedll} -%{_libdir}/wine/d3dxof.%{winedll} -%{_libdir}/wine/davclnt.%{winedll} -%{_libdir}/wine/dbgeng.%{winedll} -%{_libdir}/wine/dbghelp.%{winedll} -%{_libdir}/wine/dciman32.%{winedll} -%{_libdir}/wine/dcomp.%{winedll} -%{_libdir}/wine/ddraw.%{winedll} -%{_libdir}/wine/ddrawex.%{winedll} -%{_libdir}/wine/devenum.%{winedll} -%{_libdir}/wine/dhcpcsvc.%{winedll} -%{_libdir}/wine/dhtmled.%{wineocx} -%{_libdir}/wine/difxapi.%{winedll} -%{_libdir}/wine/dinput.dll.so -%{_libdir}/wine/dinput8.dll.so -%{_libdir}/wine/directmanipulation.%{winedll} -%{_libdir}/wine/dispex.%{winedll} -%{_libdir}/wine/dmband.%{winedll} -%{_libdir}/wine/dmcompos.%{winedll} -%{_libdir}/wine/dmime.%{winedll} -%{_libdir}/wine/dmloader.%{winedll} -%{_libdir}/wine/dmscript.%{winedll} -%{_libdir}/wine/dmstyle.%{winedll} -%{_libdir}/wine/dmsynth.%{winedll} -%{_libdir}/wine/dmusic.%{winedll} -%{_libdir}/wine/dmusic32.%{winedll} -%{_libdir}/wine/dplay.%{winedll} -%{_libdir}/wine/dplayx.%{winedll} -%{_libdir}/wine/dpnaddr.%{winedll} -%{_libdir}/wine/dpnet.%{winedll} -%{_libdir}/wine/dpnhpast.%{winedll} -%{_libdir}/wine/dpnlobby.%{winedll} -%{_libdir}/wine/dpvoice.%{winedll} -%{_libdir}/wine/dpwsockx.%{winedll} -%{_libdir}/wine/drmclien.%{winedll} -%{_libdir}/wine/dsound.%{winedll} -%{_libdir}/wine/dsdmo.%{winedll} -%{_libdir}/wine/dsquery.%{winedll} -%{_libdir}/wine/dssenh.%{winedll} -%{_libdir}/wine/dsuiext.%{winedll} -%{_libdir}/wine/dswave.%{winedll} -%{_libdir}/wine/dwmapi.%{winedll} -%{_libdir}/wine/dwrite.%{winedll} -%{_libdir}/wine/dwrite.so -%{_libdir}/wine/dx8vb.%{winedll} -%{_libdir}/wine/dxdiagn.%{winedll} -%ghost %{_libdir}/wine/dxgi.dll.so -%{_libdir}/wine/wine-dxgi.dll.so + +%{_libdir}/wine/%{winepedir}/attrib.%{wineexe} +%{_libdir}/wine/%{winepedir}/arp.%{wineexe} +%{_libdir}/wine/%{winepedir}/aspnet_regiis.%{wineexe} +%{_libdir}/wine/%{winepedir}/cacls.%{wineexe} +%{_libdir}/wine/%{winepedir}/conhost.%{wineexe} +%{_libdir}/wine/%{winepedir}/cscript.%{wineexe} +%{_libdir}/wine/%{winepedir}/dism.%{wineexe} +%{_libdir}/wine/%{winepedir}/dplaysvr.%{wineexe} +%{_libdir}/wine/%{winepedir}/dpnsvr.%{wineexe} +%{_libdir}/wine/%{winepedir}/dpvsetup.%{wineexe} +%{_libdir}/wine/%{winepedir}/eject.%{wineexe} +%{_libdir}/wine/%{winepedir}/expand.%{wineexe} +%{_libdir}/wine/%{winepedir}/extrac32.%{wineexe} +%{_libdir}/wine/%{winepedir}/fc.%{wineexe} +%{_libdir}/wine/%{winepedir}/find.%{wineexe} +%{_libdir}/wine/%{winepedir}/findstr.%{wineexe} +%{_libdir}/wine/%{winepedir}/fsutil.%{wineexe} +%{_libdir}/wine/%{winepedir}/hostname.%{wineexe} +%{_libdir}/wine/%{winepedir}/ipconfig.%{wineexe} +%{_libdir}/wine/%{winepedir}/winhlp32.%{wineexe} +%{_libdir}/wine/%{winepedir}/mshta.%{wineexe} %if 0%{?wine_staging} -%{_libdir}/wine/d3dpmesh.%{winedll} -%{_libdir}/wine/diactfrm.%{winedll} -%{_libdir}/wine/dimap.%{winedll} -%{_libdir}/wine/dpmodemx.%{winedll} -%{_libdir}/wine/dpnhupnp.%{winedll} -%{_libdir}/wine/dpvacm.%{winedll} -%{_libdir}/wine/dpvvox.%{winedll} -%{_libdir}/wine/dsdmoprp.%{winedll} -%{_libdir}/wine/dsound3d.%{winedll} -%{_libdir}/wine/dx7vb.%{winedll} -%{_libdir}/wine/dxapi.%{winesys} -%{_libdir}/wine/dxgkrnl.%{winesys} -%{_libdir}/wine/dxgmms1.%{winesys} -%{_libdir}/wine/encapi.%{winedll} -%{_libdir}/wine/gcdef.%{winedll} -%{_libdir}/wine/qdv.%{winedll} -%{_libdir}/wine/qedwipes.%{winedll} -%endif -%{_libdir}/wine/dxva2.%{winedll} -%{_libdir}/wine/esent.%{winedll} -%{_libdir}/wine/evr.%{winedll} -%{_libdir}/wine/explorerframe.%{winedll} -%{_libdir}/wine/ext-ms-win-authz-context-l1-1-0.%{winedll} -%{_libdir}/wine/ext-ms-win-domainjoin-netjoin-l1-1-0.%{winedll} -%{_libdir}/wine/ext-ms-win-dwmapi-ext-l1-1-0.%{winedll} -%{_libdir}/wine/ext-ms-win-gdi-dc-l1-2-0.%{winedll} -%{_libdir}/wine/ext-ms-win-gdi-dc-create-l1-1-0.%{winedll} -%{_libdir}/wine/ext-ms-win-gdi-dc-create-l1-1-1.%{winedll} -%{_libdir}/wine/ext-ms-win-gdi-devcaps-l1-1-0.%{winedll} -%{_libdir}/wine/ext-ms-win-gdi-draw-l1-1-0.%{winedll} -%{_libdir}/wine/ext-ms-win-gdi-draw-l1-1-1.%{winedll} -%{_libdir}/wine/ext-ms-win-gdi-font-l1-1-0.%{winedll} -%{_libdir}/wine/ext-ms-win-gdi-font-l1-1-1.%{winedll} -%{_libdir}/wine/ext-ms-win-gdi-render-l1-1-0.%{winedll} -%{_libdir}/wine/ext-ms-win-kernel32-package-l1-1-1.%{winedll} -%{_libdir}/wine/ext-ms-win-kernel32-package-current-l1-1-0.%{winedll} -%{_libdir}/wine/ext-ms-win-ntuser-dialogbox-l1-1-0.%{winedll} -%{_libdir}/wine/ext-ms-win-ntuser-draw-l1-1-0.%{winedll} -%{_libdir}/wine/ext-ms-win-ntuser-gui-l1-1-0.%{winedll} -%{_libdir}/wine/ext-ms-win-ntuser-gui-l1-3-0.%{winedll} -%{_libdir}/wine/ext-ms-win-ntuser-keyboard-l1-3-0.%{winedll} -%{_libdir}/wine/ext-ms-win-ntuser-misc-l1-2-0.%{winedll} -%{_libdir}/wine/ext-ms-win-ntuser-misc-l1-5-1.%{winedll} -%{_libdir}/wine/ext-ms-win-ntuser-message-l1-1-0.%{winedll} -%{_libdir}/wine/ext-ms-win-ntuser-message-l1-1-1.%{winedll} -%{_libdir}/wine/ext-ms-win-ntuser-misc-l1-1-0.%{winedll} -%{_libdir}/wine/ext-ms-win-ntuser-mouse-l1-1-0.%{winedll} -%{_libdir}/wine/ext-ms-win-ntuser-private-l1-1-1.%{winedll} -%{_libdir}/wine/ext-ms-win-ntuser-private-l1-3-1.%{winedll} -%{_libdir}/wine/ext-ms-win-ntuser-rectangle-ext-l1-1-0.%{winedll} -%{_libdir}/wine/ext-ms-win-ntuser-uicontext-ext-l1-1-0.%{winedll} -%{_libdir}/wine/ext-ms-win-ntuser-window-l1-1-0.%{winedll} -%{_libdir}/wine/ext-ms-win-ntuser-window-l1-1-1.%{winedll} -%{_libdir}/wine/ext-ms-win-ntuser-window-l1-1-4.%{winedll} -%{_libdir}/wine/ext-ms-win-ntuser-windowclass-l1-1-0.%{winedll} -%{_libdir}/wine/ext-ms-win-ntuser-windowclass-l1-1-1.%{winedll} -%{_libdir}/wine/ext-ms-win-oleacc-l1-1-0.%{winedll} -%{_libdir}/wine/ext-ms-win-ras-rasapi32-l1-1-0.%{winedll} -%{_libdir}/wine/ext-ms-win-rtcore-gdi-devcaps-l1-1-0.%{winedll} -%{_libdir}/wine/ext-ms-win-rtcore-gdi-object-l1-1-0.%{winedll} -%{_libdir}/wine/ext-ms-win-rtcore-gdi-rgn-l1-1-0.%{winedll} -%{_libdir}/wine/ext-ms-win-rtcore-ntuser-cursor-l1-1-0.%{winedll} -%{_libdir}/wine/ext-ms-win-rtcore-ntuser-dc-access-l1-1-0.%{winedll} -%{_libdir}/wine/ext-ms-win-rtcore-ntuser-dpi-l1-1-0.%{winedll} -%{_libdir}/wine/ext-ms-win-rtcore-ntuser-dpi-l1-2-0.%{winedll} -%{_libdir}/wine/ext-ms-win-rtcore-ntuser-rawinput-l1-1-0.%{winedll} -%{_libdir}/wine/ext-ms-win-rtcore-ntuser-syscolors-l1-1-0.%{winedll} -%{_libdir}/wine/ext-ms-win-rtcore-ntuser-sysparams-l1-1-0.%{winedll} -%{_libdir}/wine/ext-ms-win-security-credui-l1-1-0.%{winedll} -%{_libdir}/wine/ext-ms-win-security-cryptui-l1-1-0.%{winedll} -%{_libdir}/wine/ext-ms-win-shell-comctl32-init-l1-1-0.%{winedll} -%{_libdir}/wine/ext-ms-win-shell-comdlg32-l1-1-0.%{winedll} -%{_libdir}/wine/ext-ms-win-shell-shell32-l1-2-0.%{winedll} -%{_libdir}/wine/ext-ms-win-uxtheme-themes-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/msidb.%{wineexe} +%endif +%{_libdir}/wine/%{winepedir}/msiexec.%{wineexe} +%{_libdir}/wine/%{winepedir}/net.%{wineexe} +%{_libdir}/wine/%{winepedir}/netstat.%{wineexe} +%{_libdir}/wine/%{winepedir}/ngen.%{wineexe} +%{_libdir}/wine/%{winepedir}/ntoskrnl.%{wineexe} +%{_libdir}/wine/%{winepedir}/oleview.%{wineexe} +%{_libdir}/wine/%{winepedir}/ping.%{wineexe} +%{_libdir}/wine/%{winepedir}/powershell.%{wineexe} +%{_libdir}/wine/%{winepedir}/reg.%{wineexe} +%{_libdir}/wine/%{winepedir}/regasm.%{wineexe} +%{_libdir}/wine/%{winepedir}/regedit.%{wineexe} +%{_libdir}/wine/%{winepedir}/regsvcs.%{wineexe} +%{_libdir}/wine/%{winepedir}/regsvr32.%{wineexe} +%{_libdir}/wine/%{winepedir}/rpcss.%{wineexe} +%{_libdir}/wine/%{winepedir}/rundll32.%{wineexe} +%{_libdir}/wine/%{winepedir}/schtasks.%{wineexe} +%{_libdir}/wine/%{winepedir}/sdbinst.%{wineexe} +%{_libdir}/wine/%{winepedir}/secedit.%{wineexe} +%{_libdir}/wine/%{winepedir}/servicemodelreg.%{wineexe} +%{_libdir}/wine/%{winepedir}/services.%{wineexe} +%{_libdir}/wine/%{winepedir}/start.%{wineexe} +%{_libdir}/wine/%{winepedir}/tasklist.%{wineexe} +%{_libdir}/wine/%{winepedir}/termsv.%{wineexe} +%{_libdir}/wine/%{winepedir}/view.%{wineexe} +%{_libdir}/wine/%{winepedir}/wevtutil.%{wineexe} +%{_libdir}/wine/%{winepedir}/where.%{wineexe} +%{_libdir}/wine/%{winepedir}/whoami.%{wineexe} +%{_libdir}/wine/%{winepedir}/wineboot.%{wineexe} +%{_libdir}/wine/%{winepedir}/winebrowser.%{wineexe} +%{_libdir}/wine/%{winesodir}/winebrowser.exe.so +%{_libdir}/wine/%{winepedir}/wineconsole.%{wineexe} +%{_libdir}/wine/%{winepedir}/winemenubuilder.%{wineexe} +%{_libdir}/wine/%{winesodir}/winemenubuilder.exe.so +%{_libdir}/wine/%{winepedir}/winecfg.%{wineexe} +%{_libdir}/wine/%{winesodir}/winecfg.exe.so +%{_libdir}/wine/%{winepedir}/winedevice.%{wineexe} +%{_libdir}/wine/%{winepedir}/wmplayer.%{wineexe} +%{_libdir}/wine/%{winepedir}/wscript.%{wineexe} +%{_libdir}/wine/%{winepedir}/uninstaller.%{wineexe} + +%{_libdir}/wine/%{winesodir}/libwine.so.1* + +%{_libdir}/wine/%{winepedir}/acledit.%{winedll} +%{_libdir}/wine/%{winepedir}/aclui.%{winedll} +%{_libdir}/wine/%{winepedir}/activeds.%{winedll} +%{_libdir}/wine/%{winepedir}/activeds.%{winetlb} +%{_libdir}/wine/%{winepedir}/actxprxy.%{winedll} +%{_libdir}/wine/%{winepedir}/adsldp.%{winedll} +%{_libdir}/wine/%{winepedir}/adsldpc.%{winedll} +%{_libdir}/wine/%{winepedir}/advapi32.%{winedll} +%{_libdir}/wine/%{winepedir}/advpack.%{winedll} +%{_libdir}/wine/%{winepedir}/amsi.%{winedll} +%{_libdir}/wine/%{winepedir}/amstream.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-appmodel-identity-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-appmodel-runtime-l1-1-1.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-appmodel-runtime-l1-1-2.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-apiquery-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-appcompat-l1-1-1.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-appinit-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-atoms-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-bem-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-com-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-com-l1-1-1.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-com-private-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-comm-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-console-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-console-l1-2-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-console-l2-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-crt-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-crt-l2-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-datetime-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-datetime-l1-1-1.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-debug-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-debug-l1-1-1.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-delayload-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-delayload-l1-1-1.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-errorhandling-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-errorhandling-l1-1-1.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-errorhandling-l1-1-2.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-errorhandling-l1-1-3.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-fibers-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-fibers-l1-1-1.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-file-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-file-l1-2-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-file-l1-2-1.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-file-l1-2-2.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-file-l2-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-file-l2-1-1.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-file-l2-1-2.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-file-ansi-l2-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-file-fromapp-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-handle-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-heap-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-heap-l1-2-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-heap-l2-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-heap-obsolete-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-interlocked-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-interlocked-l1-2-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-io-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-io-l1-1-1.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-job-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-job-l2-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-largeinteger-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-kernel32-legacy-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-kernel32-legacy-l1-1-1.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-kernel32-legacy-l1-1-2.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-kernel32-private-l1-1-1.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-libraryloader-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-libraryloader-l1-1-1.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-libraryloader-l1-2-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-libraryloader-l1-2-1.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-libraryloader-l1-2-2.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-libraryloader-l2-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-localization-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-localization-l1-2-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-localization-l1-2-1.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-localization-l1-2-2.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-localization-l2-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-localization-obsolete-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-localization-obsolete-l1-2-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-localization-obsolete-l1-3-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-localization-private-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-localregistry-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-memory-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-memory-l1-1-1.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-memory-l1-1-2.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-memory-l1-1-3.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-memory-l1-1-4.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-misc-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-namedpipe-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-namedpipe-l1-2-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-namedpipe-ansi-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-namespace-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-normalization-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-path-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-privateprofile-l1-1-1.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-processenvironment-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-processenvironment-l1-2-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-processthreads-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-processthreads-l1-1-1.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-processthreads-l1-1-2.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-processthreads-l1-1-3.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-processtopology-obsolete-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-profile-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-psapi-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-psapi-ansi-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-psapi-obsolete-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-quirks-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-realtime-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-registry-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-registry-l2-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-registry-l2-2-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-registryuserspecific-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-rtlsupport-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-rtlsupport-l1-2-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-shlwapi-legacy-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-shlwapi-obsolete-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-shlwapi-obsolete-l1-2-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-shutdown-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-sidebyside-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-string-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-string-l2-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-string-obsolete-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-stringansi-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-stringloader-l1-1-1.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-synch-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-synch-l1-2-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-synch-l1-2-1.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-synch-ansi-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-sysinfo-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-sysinfo-l1-2-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-sysinfo-l1-2-1.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-systemtopology-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-threadpool-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-threadpool-l1-2-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-threadpool-legacy-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-threadpool-private-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-timezone-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-toolhelp-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-url-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-util-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-version-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-version-l1-1-1.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-version-private-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-versionansi-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-windowserrorreporting-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-winrt-error-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-winrt-error-l1-1-1.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-winrt-errorprivate-l1-1-1.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-winrt-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-winrt-registration-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-winrt-roparameterizediid-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-winrt-string-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-winrt-string-l1-1-1.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-wow64-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-wow64-l1-1-1.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-xstate-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-core-xstate-l2-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-crt-conio-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-crt-convert-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-crt-environment-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-crt-filesystem-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-crt-heap-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-crt-locale-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-crt-math-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-crt-multibyte-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-crt-private-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-crt-process-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-crt-runtime-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-crt-stdio-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-crt-string-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-crt-time-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-crt-utility-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-devices-config-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-devices-config-l1-1-1.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-devices-query-l1-1-1.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-downlevel-advapi32-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-downlevel-advapi32-l2-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-downlevel-kernel32-l2-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-downlevel-normaliz-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-downlevel-ole32-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-downlevel-shell32-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-downlevel-shlwapi-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-downlevel-shlwapi-l2-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-downlevel-user32-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-downlevel-version-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-dx-d3dkmt-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-eventing-classicprovider-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-eventing-consumer-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-eventing-controller-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-eventing-legacy-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-eventing-provider-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-eventlog-legacy-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-gaming-tcui-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-gdi-dpiinfo-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-mm-joystick-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-mm-misc-l1-1-1.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-mm-mme-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-mm-time-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-ntuser-dc-access-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-ntuser-rectangle-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-ntuser-sysparams-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-perf-legacy-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-power-base-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-power-setting-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-rtcore-ntuser-draw-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-rtcore-ntuser-private-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-rtcore-ntuser-private-l1-1-4.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-rtcore-ntuser-window-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-rtcore-ntuser-winevent-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-rtcore-ntuser-wmpointer-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-rtcore-ntuser-wmpointer-l1-1-3.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-security-activedirectoryclient-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-security-audit-l1-1-1.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-security-base-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-security-base-l1-2-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-security-base-private-l1-1-1.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-security-credentials-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-security-cryptoapi-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-security-grouppolicy-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-security-lsalookup-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-security-lsalookup-l1-1-1.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-security-lsalookup-l2-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-security-lsalookup-l2-1-1.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-security-lsapolicy-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-security-provider-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-security-sddl-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-security-systemfunctions-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-service-core-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-service-core-l1-1-1.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-service-management-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-service-management-l2-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-service-private-l1-1-1.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-service-winsvc-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-service-winsvc-l1-2-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-shcore-obsolete-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-shcore-scaling-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-shcore-scaling-l1-1-1.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-shcore-stream-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-shcore-stream-winrt-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-shcore-thread-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-shell-shellcom-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/api-ms-win-shell-shellfolders-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/apphelp.%{winedll} +%{_libdir}/wine/%{winepedir}/appwiz.%{winecpl} +%{_libdir}/wine/%{winepedir}/atl.%{winedll} +%{_libdir}/wine/%{winepedir}/atl80.%{winedll} +%{_libdir}/wine/%{winepedir}/atl90.%{winedll} +%{_libdir}/wine/%{winepedir}/atl100.%{winedll} +%{_libdir}/wine/%{winepedir}/atl110.%{winedll} +%{_libdir}/wine/%{winepedir}/atlthunk.%{winedll} +%{_libdir}/wine/%{winepedir}/atmlib.%{winedll} +%{_libdir}/wine/%{winepedir}/authz.%{winedll} +%{_libdir}/wine/%{winepedir}/avicap32.%{winedll} +%{_libdir}/wine/%{winesodir}/avicap32.dll.so +%{_libdir}/wine/%{winepedir}/avifil32.%{winedll} +%{_libdir}/wine/%{winepedir}/avrt.%{winedll} +%{_libdir}/wine/%{winesodir}/bcrypt.so +%{_libdir}/wine/%{winepedir}/bcrypt.%{winedll} +%{_libdir}/wine/%{winepedir}/bluetoothapis.%{winedll} +%{_libdir}/wine/%{winepedir}/browseui.%{winedll} +%{_libdir}/wine/%{winepedir}/bthprops.%{winecpl} +%{_libdir}/wine/%{winepedir}/cabinet.%{winedll} +%{_libdir}/wine/%{winepedir}/cards.%{winedll} +%{_libdir}/wine/%{winepedir}/cdosys.%{winedll} +%{_libdir}/wine/%{winepedir}/cfgmgr32.%{winedll} +%{_libdir}/wine/%{winepedir}/chcp.%{winecom} +%{_libdir}/wine/%{winepedir}/clock.%{wineexe} +%{_libdir}/wine/%{winepedir}/clusapi.%{winedll} +%{_libdir}/wine/%{winepedir}/combase.%{winedll} +%{_libdir}/wine/%{winepedir}/comcat.%{winedll} +%{_libdir}/wine/%{winepedir}/comctl32.%{winedll} +%{_libdir}/wine/%{winepedir}/comdlg32.%{winedll} +%{_libdir}/wine/%{winepedir}/compstui.%{winedll} +%{_libdir}/wine/%{winepedir}/comsvcs.%{winedll} +%{_libdir}/wine/%{winepedir}/concrt140.%{winedll} +%{_libdir}/wine/%{winepedir}/connect.%{winedll} +%{_libdir}/wine/%{winepedir}/credui.%{winedll} +%{_libdir}/wine/%{winesodir}/crtdll.so +%{_libdir}/wine/%{winepedir}/crtdll.%{winedll} +%{_libdir}/wine/%{winesodir}/crypt32.so +%{_libdir}/wine/%{winepedir}/crypt32.%{winedll} +%{_libdir}/wine/%{winepedir}/cryptdlg.%{winedll} +%{_libdir}/wine/%{winepedir}/cryptdll.%{winedll} +%{_libdir}/wine/%{winepedir}/cryptext.%{winedll} +%{_libdir}/wine/%{winepedir}/cryptnet.%{winedll} +%{_libdir}/wine/%{winepedir}/cryptsp.%{winedll} +%{_libdir}/wine/%{winepedir}/cryptui.%{winedll} +%{_libdir}/wine/%{winepedir}/ctapi32.%{winedll} +%{_libdir}/wine/%{winesodir}/ctapi32.dll.so +%{_libdir}/wine/%{winepedir}/ctl3d32.%{winedll} +%{_libdir}/wine/%{winepedir}/d2d1.%{winedll} +%ghost %{_libdir}/wine/%{winepedir}/d3d10.%{winedll} +%ghost %{_libdir}/wine/%{winepedir}/d3d10_1.%{winedll} +%ghost %{_libdir}/wine/%{winepedir}/d3d10core.%{winedll} +%{_libdir}/wine/%{winepedir}/wine-d3d10.%{winedll} +%{_libdir}/wine/%{winepedir}/wine-d3d10_1.%{winedll} +%{_libdir}/wine/%{winepedir}/wine-d3d10core.%{winedll} +%ghost %{_libdir}/wine/%{winepedir}/d3d11.%{winedll} +%{_libdir}/wine/%{winepedir}/wine-d3d11.%{winedll} +%{_libdir}/wine/%{winepedir}/d3d12.%{winedll} +%{_libdir}/wine/%{winesodir}/d3d12.dll.so +%{_libdir}/wine/%{winepedir}/d3dcompiler_*.%{winedll} +%{_libdir}/wine/%{winepedir}/d3dim.%{winedll} +%{_libdir}/wine/%{winepedir}/d3dim700.%{winedll} +%{_libdir}/wine/%{winepedir}/d3drm.%{winedll} +%{_libdir}/wine/%{winepedir}/d3dx9_*.%{winedll} +%{_libdir}/wine/%{winepedir}/d3dx10_*.%{winedll} +%{_libdir}/wine/%{winepedir}/d3dx11_42.%{winedll} +%{_libdir}/wine/%{winepedir}/d3dx11_43.%{winedll} +%{_libdir}/wine/%{winepedir}/d3dxof.%{winedll} +%{_libdir}/wine/%{winepedir}/davclnt.%{winedll} +%{_libdir}/wine/%{winepedir}/dbgeng.%{winedll} +%{_libdir}/wine/%{winepedir}/dbghelp.%{winedll} +%{_libdir}/wine/%{winepedir}/dciman32.%{winedll} +%{_libdir}/wine/%{winepedir}/dcomp.%{winedll} +%{_libdir}/wine/%{winepedir}/ddraw.%{winedll} +%{_libdir}/wine/%{winepedir}/ddrawex.%{winedll} +%{_libdir}/wine/%{winepedir}/devenum.%{winedll} +%{_libdir}/wine/%{winepedir}/dhcpcsvc.%{winedll} +%{_libdir}/wine/%{winepedir}/dhtmled.%{wineocx} +%{_libdir}/wine/%{winepedir}/difxapi.%{winedll} +%{_libdir}/wine/%{winepedir}/dinput.%{winedll} +%{_libdir}/wine/%{winesodir}/dinput.dll.so +%{_libdir}/wine/%{winepedir}/dinput8.%{winedll} +%{_libdir}/wine/%{winesodir}/dinput8.dll.so +%{_libdir}/wine/%{winepedir}/directmanipulation.%{winedll} +%{_libdir}/wine/%{winepedir}/dispex.%{winedll} +%{_libdir}/wine/%{winepedir}/dmband.%{winedll} +%{_libdir}/wine/%{winepedir}/dmcompos.%{winedll} +%{_libdir}/wine/%{winepedir}/dmime.%{winedll} +%{_libdir}/wine/%{winepedir}/dmloader.%{winedll} +%{_libdir}/wine/%{winepedir}/dmscript.%{winedll} +%{_libdir}/wine/%{winepedir}/dmstyle.%{winedll} +%{_libdir}/wine/%{winepedir}/dmsynth.%{winedll} +%{_libdir}/wine/%{winepedir}/dmusic.%{winedll} +%{_libdir}/wine/%{winepedir}/dmusic32.%{winedll} +%{_libdir}/wine/%{winepedir}/dplay.%{winedll} +%{_libdir}/wine/%{winepedir}/dplayx.%{winedll} +%{_libdir}/wine/%{winepedir}/dpnaddr.%{winedll} +%{_libdir}/wine/%{winepedir}/dpnet.%{winedll} +%{_libdir}/wine/%{winepedir}/dpnhpast.%{winedll} +%{_libdir}/wine/%{winepedir}/dpnlobby.%{winedll} +%{_libdir}/wine/%{winepedir}/dpvoice.%{winedll} +%{_libdir}/wine/%{winepedir}/dpwsockx.%{winedll} +%{_libdir}/wine/%{winepedir}/drmclien.%{winedll} +%{_libdir}/wine/%{winepedir}/dsound.%{winedll} +%{_libdir}/wine/%{winepedir}/dsdmo.%{winedll} +%{_libdir}/wine/%{winepedir}/dsquery.%{winedll} +%{_libdir}/wine/%{winepedir}/dssenh.%{winedll} +%{_libdir}/wine/%{winepedir}/dsuiext.%{winedll} +%{_libdir}/wine/%{winepedir}/dswave.%{winedll} +%{_libdir}/wine/%{winepedir}/dwmapi.%{winedll} +%{_libdir}/wine/%{winepedir}/dwrite.%{winedll} +%{_libdir}/wine/%{winesodir}/dwrite.so +%{_libdir}/wine/%{winepedir}/dx8vb.%{winedll} +%{_libdir}/wine/%{winepedir}/dxdiagn.%{winedll} +%ghost %{_libdir}/wine/%{winepedir}/dxgi.%{winedll} +%{_libdir}/wine/%{winepedir}/wine-dxgi.%{winedll} +%ghost %{_libdir}/wine/%{winesodir}/dxgi.dll.so +%{_libdir}/wine/%{winesodir}/wine-dxgi.dll.so +%{_libdir}/wine/%{winepedir}/dxgkrnl.%{winesys} +%{_libdir}/wine/%{winepedir}/dxgmms1.%{winesys} +%{_libdir}/wine/%{winepedir}/dxva2.%{winedll} +%{_libdir}/wine/%{winepedir}/esent.%{winedll} +%{_libdir}/wine/%{winepedir}/evr.%{winedll} +%{_libdir}/wine/%{winepedir}/explorerframe.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-authz-context-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-domainjoin-netjoin-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-dwmapi-ext-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-gdi-dc-l1-2-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-gdi-dc-create-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-gdi-dc-create-l1-1-1.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-gdi-devcaps-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-gdi-draw-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-gdi-draw-l1-1-1.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-gdi-font-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-gdi-font-l1-1-1.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-gdi-render-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-kernel32-package-l1-1-1.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-kernel32-package-current-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-dialogbox-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-draw-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-gui-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-gui-l1-3-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-keyboard-l1-3-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-misc-l1-2-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-misc-l1-5-1.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-message-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-message-l1-1-1.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-misc-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-mouse-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-private-l1-1-1.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-private-l1-3-1.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-rectangle-ext-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-uicontext-ext-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-window-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-window-l1-1-1.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-window-l1-1-4.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-windowclass-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-windowclass-l1-1-1.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-oleacc-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-ras-rasapi32-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-rtcore-gdi-devcaps-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-rtcore-gdi-object-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-rtcore-gdi-rgn-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-rtcore-ntuser-cursor-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-rtcore-ntuser-dc-access-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-rtcore-ntuser-dpi-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-rtcore-ntuser-dpi-l1-2-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-rtcore-ntuser-rawinput-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-rtcore-ntuser-syscolors-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-rtcore-ntuser-sysparams-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-security-credui-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-security-cryptui-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-shell-comctl32-init-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-shell-comdlg32-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-shell-shell32-l1-2-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-uxtheme-themes-l1-1-0.%{winedll} %if 0%{?wine_staging} -%{_libdir}/wine/ext-ms-win-appmodel-usercontext-l1-1-0.dll.so -%{_libdir}/wine/ext-ms-win-xaml-pal-l1-1-0.dll.so -%endif -%{_libdir}/wine/faultrep.%{winedll} -%{_libdir}/wine/feclient.%{winedll} -%{_libdir}/wine/fltlib.%{winedll} -%{_libdir}/wine/fltmgr.%{winesys} -%{_libdir}/wine/fntcache.%{winedll} -%{_libdir}/wine/fontsub.%{winedll} -%{_libdir}/wine/fusion.%{winedll} -%{_libdir}/wine/fwpuclnt.%{winedll} -%{_libdir}/wine/gameux.%{winedll} -%{_libdir}/wine/gdi32.so -%{_libdir}/wine/gdi32.%{winedll} -%{_libdir}/wine/gdiplus.%{winedll} -%{_libdir}/wine/glu32.%{winedll} -%{_libdir}/wine/gphoto2.ds.so -%{_libdir}/wine/gpkcsp.%{winedll} -%{_libdir}/wine/hal.%{winedll} -%{_libdir}/wine/hh.%{wineexe} -%{_libdir}/wine/hhctrl.%{wineocx} -%{_libdir}/wine/hid.%{winedll} -%{_libdir}/wine/hidclass.%{winesys} -%{_libdir}/wine/hlink.%{winedll} -%{_libdir}/wine/hnetcfg.%{winedll} -%{_libdir}/wine/http.%{winesys} -%{_libdir}/wine/httpapi.%{winedll} -%{_libdir}/wine/icacls.%{wineexe} -%{_libdir}/wine/iccvid.%{winedll} -%{_libdir}/wine/icinfo.%{wineexe} -%{_libdir}/wine/icmp.%{winedll} -%{_libdir}/wine/ieframe.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-appmodel-usercontext-l1-1-0.%{winedll} +%{_libdir}/wine/%{winesodir}/ext-ms-win-appmodel-usercontext-l1-1-0.dll.so +%{_libdir}/wine/%{winepedir}/ext-ms-win-xaml-pal-l1-1-0.%{winedll} +%{_libdir}/wine/%{winesodir}/ext-ms-win-xaml-pal-l1-1-0.dll.so +%endif +%{_libdir}/wine/%{winepedir}/faultrep.%{winedll} +%{_libdir}/wine/%{winepedir}/feclient.%{winedll} +%{_libdir}/wine/%{winepedir}/fltlib.%{winedll} +%{_libdir}/wine/%{winepedir}/fltmgr.%{winesys} +%{_libdir}/wine/%{winepedir}/fntcache.%{winedll} +%{_libdir}/wine/%{winepedir}/fontsub.%{winedll} +%{_libdir}/wine/%{winepedir}/fusion.%{winedll} +%{_libdir}/wine/%{winepedir}/fwpuclnt.%{winedll} +%{_libdir}/wine/%{winepedir}/gameux.%{winedll} +%{_libdir}/wine/%{winepedir}/gamingtcui.%{winedll} +%{_libdir}/wine/%{winesodir}/gdi32.so +%{_libdir}/wine/%{winepedir}/gdi32.%{winedll} +%{_libdir}/wine/%{winepedir}/gdiplus.%{winedll} +%{_libdir}/wine/%{winepedir}/glu32.%{winedll} +%{_libdir}/wine/%{winepedir}/gphoto2.%{wineds} +%{_libdir}/wine/%{winesodir}/gphoto2.ds.so +%{_libdir}/wine/%{winepedir}/gpkcsp.%{winedll} +%{_libdir}/wine/%{winepedir}/hal.%{winedll} +%{_libdir}/wine/%{winepedir}/hh.%{wineexe} +%{_libdir}/wine/%{winepedir}/hhctrl.%{wineocx} +%{_libdir}/wine/%{winepedir}/hid.%{winedll} +%{_libdir}/wine/%{winepedir}/hidclass.%{winesys} +%{_libdir}/wine/%{winepedir}/hlink.%{winedll} +%{_libdir}/wine/%{winepedir}/hnetcfg.%{winedll} +%{_libdir}/wine/%{winepedir}/http.%{winesys} +%{_libdir}/wine/%{winepedir}/httpapi.%{winedll} +%{_libdir}/wine/%{winepedir}/icacls.%{wineexe} +%{_libdir}/wine/%{winepedir}/iccvid.%{winedll} +%{_libdir}/wine/%{winepedir}/icinfo.%{wineexe} +%{_libdir}/wine/%{winepedir}/icmp.%{winedll} +%{_libdir}/wine/%{winepedir}/ieframe.%{winedll} %if 0%{?wine_staging} -%{_libdir}/wine/iertutil.%{winedll} -%endif -%{_libdir}/wine/ieproxy.%{winedll} -%{_libdir}/wine/imaadp32.%{wineacm} -%{_libdir}/wine/imagehlp.%{winedll} -%{_libdir}/wine/imm32.%{winedll} -%{_libdir}/wine/inetcomm.%{winedll} -%{_libdir}/wine/inetcpl.%{winecpl} -%{_libdir}/wine/inetmib1.%{winedll} -%{_libdir}/wine/infosoft.%{winedll} -%{_libdir}/wine/initpki.%{winedll} -%{_libdir}/wine/inkobj.%{winedll} -%{_libdir}/wine/inseng.%{winedll} -%{_libdir}/wine/iphlpapi.dll.so -%{_libdir}/wine/iprop.%{winedll} -%{_libdir}/wine/irprops.%{winecpl} -%{_libdir}/wine/itircl.%{winedll} -%{_libdir}/wine/itss.%{winedll} -%{_libdir}/wine/joy.%{winecpl} -%{_libdir}/wine/jscript.%{winedll} -%{_libdir}/wine/jsproxy.%{winedll} -%{_libdir}/wine/kerberos.so -%{_libdir}/wine/kerberos.%{winedll} -%{_libdir}/wine/kernel32.%{winedll} -%{_libdir}/wine/kernelbase.%{winedll} -%{_libdir}/wine/ksecdd.%{winesys} -%{_libdir}/wine/ksproxy.%{wineax} -%{_libdir}/wine/ksuser.%{winedll} -%{_libdir}/wine/ktmw32.%{winedll} +%{_libdir}/wine/%{winepedir}/iertutil.%{winedll} +%endif +%{_libdir}/wine/%{winepedir}/ieproxy.%{winedll} +%{_libdir}/wine/%{winepedir}/imaadp32.%{wineacm} +%{_libdir}/wine/%{winepedir}/imagehlp.%{winedll} +%{_libdir}/wine/%{winepedir}/imm32.%{winedll} +%{_libdir}/wine/%{winepedir}/inetcomm.%{winedll} +%{_libdir}/wine/%{winepedir}/inetcpl.%{winecpl} +%{_libdir}/wine/%{winepedir}/inetmib1.%{winedll} +%{_libdir}/wine/%{winepedir}/infosoft.%{winedll} +%{_libdir}/wine/%{winepedir}/initpki.%{winedll} +%{_libdir}/wine/%{winepedir}/inkobj.%{winedll} +%{_libdir}/wine/%{winepedir}/inseng.%{winedll} +%{_libdir}/wine/%{winepedir}/iphlpapi.%{winedll} +%{_libdir}/wine/%{winesodir}/iphlpapi.dll.so +%{_libdir}/wine/%{winepedir}/iprop.%{winedll} +%{_libdir}/wine/%{winepedir}/irprops.%{winecpl} +%{_libdir}/wine/%{winepedir}/itircl.%{winedll} +%{_libdir}/wine/%{winepedir}/itss.%{winedll} +%{_libdir}/wine/%{winepedir}/joy.%{winecpl} +%{_libdir}/wine/%{winepedir}/jscript.%{winedll} +%{_libdir}/wine/%{winepedir}/jsproxy.%{winedll} +%{_libdir}/wine/%{winesodir}/kerberos.so +%{_libdir}/wine/%{winepedir}/kerberos.%{winedll} +%{_libdir}/wine/%{winepedir}/kernel32.%{winedll} +%{_libdir}/wine/%{winepedir}/kernelbase.%{winedll} +%{_libdir}/wine/%{winepedir}/ksecdd.%{winesys} +%{_libdir}/wine/%{winepedir}/ksproxy.%{wineax} +%{_libdir}/wine/%{winepedir}/ksuser.%{winedll} +%{_libdir}/wine/%{winepedir}/ktmw32.%{winedll} %if 0%{?fedora} > 24 -%{_libdir}/wine/l3codeca.acm.so -%endif -%{_libdir}/wine/loadperf.%{winedll} -%{_libdir}/wine/localspl.%{winedll} -%{_libdir}/wine/localui.%{winedll} -%{_libdir}/wine/lodctr.%{wineexe} -%{_libdir}/wine/lz32.%{winedll} -%{_libdir}/wine/mapi32.%{winedll} -%{_libdir}/wine/mapistub.%{winedll} -%{_libdir}/wine/mciavi32.%{winedll} -%{_libdir}/wine/mcicda.%{winedll} -%{_libdir}/wine/mciqtz32.%{winedll} -%{_libdir}/wine/mciseq.%{winedll} -%{_libdir}/wine/mciwave.%{winedll} -%{_libdir}/wine/mf.%{winedll} -%{_libdir}/wine/mf3216.%{winedll} -%{_libdir}/wine/mferror.%{winedll} -%{_libdir}/wine/mfmediaengine.%{winedll} -%{_libdir}/wine/mfplat.%{winedll} -%{_libdir}/wine/mfplay.%{winedll} -%{_libdir}/wine/mfreadwrite.%{winedll} -%{_libdir}/wine/mgmtapi.%{winedll} -%{_libdir}/wine/midimap.%{winedll} -%{_libdir}/wine/mlang.%{winedll} -%{_libdir}/wine/mmcndmgr.%{winedll} -%{_libdir}/wine/mmdevapi.%{winedll} -%{_libdir}/wine/mofcomp.%{wineexe} -%{_libdir}/wine/mountmgr.sys.so -%{_libdir}/wine/mp3dmod.dll.so -%{_libdir}/wine/mpr.%{winedll} -%{_libdir}/wine/mprapi.%{winedll} -%{_libdir}/wine/msacm32.%{winedll} -%{_libdir}/wine/msacm32.%{winedrv} -%{_libdir}/wine/msado15.%{winedll} -%{_libdir}/wine/msadp32.%{wineacm} -%{_libdir}/wine/msasn1.%{winedll} -%{_libdir}/wine/mscat32.%{winedll} -%{_libdir}/wine/mscoree.%{winedll} -%{_libdir}/wine/mscorwks.%{winedll} -%{_libdir}/wine/msctf.%{winedll} -%{_libdir}/wine/msctfp.%{winedll} -%{_libdir}/wine/msdaps.%{winedll} -%{_libdir}/wine/msdelta.%{winedll} -%{_libdir}/wine/msdmo.%{winedll} -%{_libdir}/wine/msdrm.%{winedll} -%{_libdir}/wine/msftedit.%{winedll} -%{_libdir}/wine/msg711.%{wineacm} -%{_libdir}/wine/msgsm32.acm.so -%{_libdir}/wine/mshtml.%{winedll} -%{_libdir}/wine/mshtml.%{winetlb} -%{_libdir}/wine/msi.%{winedll} -%{_libdir}/wine/msident.%{winedll} -%{_libdir}/wine/msimtf.%{winedll} -%{_libdir}/wine/msimg32.%{winedll} -%{_libdir}/wine/msimsg.%{winedll} -%{_libdir}/wine/msinfo32.%{wineexe} -%{_libdir}/wine/msisip.%{winedll} -%{_libdir}/wine/msisys.%{wineocx} -%{_libdir}/wine/msls31.%{winedll} -%{_libdir}/wine/msnet32.%{winedll} -%{_libdir}/wine/mspatcha.%{winedll} -%{_libdir}/wine/msports.%{winedll} -%{_libdir}/wine/msscript.%{wineocx} -%{_libdir}/wine/mssign32.%{winedll} -%{_libdir}/wine/mssip32.%{winedll} -%{_libdir}/wine/msrle32.%{winedll} -%{_libdir}/wine/mstask.%{winedll} -%{_libdir}/wine/msvcirt.%{winedll} -%{_libdir}/wine/msvcm80.%{winedll} -%{_libdir}/wine/msvcm90.%{winedll} -%{_libdir}/wine/msvcp60.%{winedll} -%{_libdir}/wine/msvcp70.%{winedll} -%{_libdir}/wine/msvcp71.%{winedll} -%{_libdir}/wine/msvcp80.%{winedll} -%{_libdir}/wine/msvcp90.%{winedll} -%{_libdir}/wine/msvcp100.%{winedll} -%{_libdir}/wine/msvcp110.%{winedll} -%{_libdir}/wine/msvcp120.%{winedll} -%{_libdir}/wine/msvcp120_app.%{winedll} -%{_libdir}/wine/msvcp140.%{winedll} -%{_libdir}/wine/msvcp140_1.%{winedll} -%{_libdir}/wine/msvcr70.so -%{_libdir}/wine/msvcr70.%{winedll} -%{_libdir}/wine/msvcr71.so -%{_libdir}/wine/msvcr71.%{winedll} -%{_libdir}/wine/msvcr80.so -%{_libdir}/wine/msvcr80.%{winedll} -%{_libdir}/wine/msvcr90.so -%{_libdir}/wine/msvcr90.%{winedll} -%{_libdir}/wine/msvcr100.so -%{_libdir}/wine/msvcr100.%{winedll} -%{_libdir}/wine/msvcr110.so -%{_libdir}/wine/msvcr110.%{winedll} -%{_libdir}/wine/msvcr120.so -%{_libdir}/wine/msvcr120.%{winedll} -%{_libdir}/wine/msvcr120_app.%{winedll} -%{_libdir}/wine/msvcrt.so -%{_libdir}/wine/msvcrt.%{winedll} -%{_libdir}/wine/msvcrt20.%{winedll} -%{_libdir}/wine/msvcrt40.%{winedll} -%{_libdir}/wine/msvcrtd.so -%{_libdir}/wine/msvcrtd.%{winedll} -%{_libdir}/wine/msvfw32.%{winedll} -%{_libdir}/wine/msvidc32.%{winedll} -%{_libdir}/wine/mswsock.%{winedll} -%{_libdir}/wine/msxml.%{winedll} -%{_libdir}/wine/msxml2.%{winedll} -%{_libdir}/wine/msxml3.dll.so -%{_libdir}/wine/msxml4.%{winedll} -%{_libdir}/wine/msxml6.%{winedll} -%{_libdir}/wine/mtxdm.%{winedll} -%{_libdir}/wine/nddeapi.%{winedll} -%{_libdir}/wine/ncrypt.%{winedll} -%{_libdir}/wine/ndis.%{winesys} -%{_libdir}/wine/netapi32.so -%{_libdir}/wine/netapi32.%{winedll} -%{_libdir}/wine/netcfgx.%{winedll} -%{_libdir}/wine/netio.%{winesys} -%{_libdir}/wine/netprofm.%{winedll} -%{_libdir}/wine/netsh.%{wineexe} +%{_libdir}/wine/%{winepedir}/l3codeca.%{wineacm} +%{_libdir}/wine/%{winesodir}/l3codeca.acm.so +%endif +%{_libdir}/wine/%{winepedir}/loadperf.%{winedll} +%{_libdir}/wine/%{winepedir}/localspl.%{winedll} +%{_libdir}/wine/%{winepedir}/localui.%{winedll} +%{_libdir}/wine/%{winepedir}/lodctr.%{wineexe} +%{_libdir}/wine/%{winepedir}/lz32.%{winedll} +%{_libdir}/wine/%{winepedir}/mapi32.%{winedll} +%{_libdir}/wine/%{winepedir}/mapistub.%{winedll} +%{_libdir}/wine/%{winepedir}/mciavi32.%{winedll} +%{_libdir}/wine/%{winepedir}/mcicda.%{winedll} +%{_libdir}/wine/%{winepedir}/mciqtz32.%{winedll} +%{_libdir}/wine/%{winepedir}/mciseq.%{winedll} +%{_libdir}/wine/%{winepedir}/mciwave.%{winedll} +%{_libdir}/wine/%{winepedir}/mf.%{winedll} +%{_libdir}/wine/%{winepedir}/mf3216.%{winedll} +%{_libdir}/wine/%{winepedir}/mferror.%{winedll} +%{_libdir}/wine/%{winepedir}/mfmediaengine.%{winedll} +%{_libdir}/wine/%{winepedir}/mfplat.%{winedll} +%{_libdir}/wine/%{winepedir}/mfplay.%{winedll} +%{_libdir}/wine/%{winepedir}/mfreadwrite.%{winedll} +%{_libdir}/wine/%{winepedir}/mgmtapi.%{winedll} +%{_libdir}/wine/%{winepedir}/midimap.%{winedll} +%{_libdir}/wine/%{winepedir}/mlang.%{winedll} +%{_libdir}/wine/%{winepedir}/mmcndmgr.%{winedll} +%{_libdir}/wine/%{winepedir}/mmdevapi.%{winedll} +%{_libdir}/wine/%{winepedir}/mofcomp.%{wineexe} +%{_libdir}/wine/%{winepedir}/mountmgr.%{winesys} +%{_libdir}/wine/%{winesodir}/mountmgr.sys.so +%{_libdir}/wine/%{winepedir}/mp3dmod.%{winedll} +%{_libdir}/wine/%{winesodir}/mp3dmod.dll.so +%{_libdir}/wine/%{winepedir}/mpr.%{winedll} +%{_libdir}/wine/%{winepedir}/mprapi.%{winedll} +%{_libdir}/wine/%{winepedir}/msacm32.%{winedll} +%{_libdir}/wine/%{winepedir}/msacm32.%{winedrv} +%{_libdir}/wine/%{winepedir}/msado15.%{winedll} +%{_libdir}/wine/%{winepedir}/msadp32.%{wineacm} +%{_libdir}/wine/%{winepedir}/msasn1.%{winedll} +%{_libdir}/wine/%{winepedir}/mscat32.%{winedll} +%{_libdir}/wine/%{winepedir}/mscoree.%{winedll} +%{_libdir}/wine/%{winepedir}/mscorwks.%{winedll} +%{_libdir}/wine/%{winepedir}/msctf.%{winedll} +%{_libdir}/wine/%{winepedir}/msctfp.%{winedll} +%{_libdir}/wine/%{winepedir}/msdaps.%{winedll} +%{_libdir}/wine/%{winepedir}/msdelta.%{winedll} +%{_libdir}/wine/%{winepedir}/msdmo.%{winedll} +%{_libdir}/wine/%{winepedir}/msdrm.%{winedll} +%{_libdir}/wine/%{winepedir}/msftedit.%{winedll} +%{_libdir}/wine/%{winepedir}/msg711.%{wineacm} +%{_libdir}/wine/%{winepedir}/msgsm32.%{wineacm} +%{_libdir}/wine/%{winesodir}/msgsm32.acm.so +%{_libdir}/wine/%{winepedir}/mshtml.%{winedll} +%{_libdir}/wine/%{winepedir}/mshtml.%{winetlb} +%{_libdir}/wine/%{winepedir}/msi.%{winedll} +%{_libdir}/wine/%{winepedir}/msident.%{winedll} +%{_libdir}/wine/%{winepedir}/msimtf.%{winedll} +%{_libdir}/wine/%{winepedir}/msimg32.%{winedll} +%{_libdir}/wine/%{winepedir}/msimsg.%{winedll} +%{_libdir}/wine/%{winepedir}/msinfo32.%{wineexe} +%{_libdir}/wine/%{winepedir}/msisip.%{winedll} +%{_libdir}/wine/%{winepedir}/msisys.%{wineocx} +%{_libdir}/wine/%{winepedir}/msls31.%{winedll} +%{_libdir}/wine/%{winepedir}/msnet32.%{winedll} +%{_libdir}/wine/%{winepedir}/mspatcha.%{winedll} +%{_libdir}/wine/%{winepedir}/msports.%{winedll} +%{_libdir}/wine/%{winepedir}/msscript.%{wineocx} +%{_libdir}/wine/%{winepedir}/mssign32.%{winedll} +%{_libdir}/wine/%{winepedir}/mssip32.%{winedll} +%{_libdir}/wine/%{winepedir}/msrle32.%{winedll} +%{_libdir}/wine/%{winepedir}/mstask.%{winedll} +%{_libdir}/wine/%{winepedir}/msv1_0.%{winedll} +%{_libdir}/wine/%{winesodir}/msv1_0.so +%{_libdir}/wine/%{winepedir}/msvcirt.%{winedll} +%{_libdir}/wine/%{winepedir}/msvcm80.%{winedll} +%{_libdir}/wine/%{winepedir}/msvcm90.%{winedll} +%{_libdir}/wine/%{winepedir}/msvcp60.%{winedll} +%{_libdir}/wine/%{winepedir}/msvcp70.%{winedll} +%{_libdir}/wine/%{winepedir}/msvcp71.%{winedll} +%{_libdir}/wine/%{winepedir}/msvcp80.%{winedll} +%{_libdir}/wine/%{winepedir}/msvcp90.%{winedll} +%{_libdir}/wine/%{winepedir}/msvcp100.%{winedll} +%{_libdir}/wine/%{winepedir}/msvcp110.%{winedll} +%{_libdir}/wine/%{winepedir}/msvcp120.%{winedll} +%{_libdir}/wine/%{winepedir}/msvcp120_app.%{winedll} +%{_libdir}/wine/%{winepedir}/msvcp140.%{winedll} +%{_libdir}/wine/%{winepedir}/msvcp140_1.%{winedll} +%{_libdir}/wine/%{winesodir}/msvcr70.so +%{_libdir}/wine/%{winepedir}/msvcr70.%{winedll} +%{_libdir}/wine/%{winesodir}/msvcr71.so +%{_libdir}/wine/%{winepedir}/msvcr71.%{winedll} +%{_libdir}/wine/%{winesodir}/msvcr80.so +%{_libdir}/wine/%{winepedir}/msvcr80.%{winedll} +%{_libdir}/wine/%{winesodir}/msvcr90.so +%{_libdir}/wine/%{winepedir}/msvcr90.%{winedll} +%{_libdir}/wine/%{winesodir}/msvcr100.so +%{_libdir}/wine/%{winepedir}/msvcr100.%{winedll} +%{_libdir}/wine/%{winesodir}/msvcr110.so +%{_libdir}/wine/%{winepedir}/msvcr110.%{winedll} +%{_libdir}/wine/%{winesodir}/msvcr120.so +%{_libdir}/wine/%{winepedir}/msvcr120.%{winedll} +%{_libdir}/wine/%{winepedir}/msvcr120_app.%{winedll} +%{_libdir}/wine/%{winesodir}/msvcrt.so +%{_libdir}/wine/%{winepedir}/msvcrt.%{winedll} +%{_libdir}/wine/%{winepedir}/msvcrt20.%{winedll} +%{_libdir}/wine/%{winepedir}/msvcrt40.%{winedll} +%{_libdir}/wine/%{winesodir}/msvcrtd.so +%{_libdir}/wine/%{winepedir}/msvcrtd.%{winedll} +%{_libdir}/wine/%{winepedir}/msvfw32.%{winedll} +%{_libdir}/wine/%{winepedir}/msvidc32.%{winedll} +%{_libdir}/wine/%{winepedir}/mswsock.%{winedll} +%{_libdir}/wine/%{winepedir}/msxml.%{winedll} +%{_libdir}/wine/%{winepedir}/msxml2.%{winedll} +%{_libdir}/wine/%{winepedir}/msxml3.%{winedll} +%{_libdir}/wine/%{winesodir}/msxml3.dll.so +%{_libdir}/wine/%{winepedir}/msxml4.%{winedll} +%{_libdir}/wine/%{winepedir}/msxml6.%{winedll} +%{_libdir}/wine/%{winepedir}/mtxdm.%{winedll} +%{_libdir}/wine/%{winepedir}/nddeapi.%{winedll} +%{_libdir}/wine/%{winepedir}/ncrypt.%{winedll} +%{_libdir}/wine/%{winepedir}/ndis.%{winesys} +%{_libdir}/wine/%{winesodir}/netapi32.so +%{_libdir}/wine/%{winepedir}/netapi32.%{winedll} +%{_libdir}/wine/%{winepedir}/netcfgx.%{winedll} +%{_libdir}/wine/%{winepedir}/netio.%{winesys} +%{_libdir}/wine/%{winepedir}/netprofm.%{winedll} +%{_libdir}/wine/%{winepedir}/netsh.%{wineexe} %if 0%{?wine_staging} -%{_libdir}/wine/netutils.%{winedll} -%endif -%{_libdir}/wine/newdev.%{winedll} -%{_libdir}/wine/ninput.%{winedll} -%{_libdir}/wine/normaliz.%{winedll} -%{_libdir}/wine/npmshtml.%{winedll} -%{_libdir}/wine/npptools.%{winedll} -%{_libdir}/wine/ntdll.so -%{_libdir}/wine/ntdll.%{winedll} -%{_libdir}/wine/ntdsapi.%{winedll} -%{_libdir}/wine/ntprint.%{winedll} +%{_libdir}/wine/%{winepedir}/netutils.%{winedll} +%endif +%{_libdir}/wine/%{winepedir}/newdev.%{winedll} +%{_libdir}/wine/%{winepedir}/ninput.%{winedll} +%{_libdir}/wine/%{winepedir}/normaliz.%{winedll} +%{_libdir}/wine/%{winepedir}/npmshtml.%{winedll} +%{_libdir}/wine/%{winepedir}/npptools.%{winedll} +%{_libdir}/wine/%{winesodir}/ntdll.so +%{_libdir}/wine/%{winepedir}/ntdll.%{winedll} +%{_libdir}/wine/%{winepedir}/ntdsapi.%{winedll} +%{_libdir}/wine/%{winepedir}/ntprint.%{winedll} %if 0%{?wine_staging} -%{_libdir}/wine/nvcuda.dll.so -%{_libdir}/wine/nvcuvid.dll.so -%endif -%{_libdir}/wine/objsel.%{winedll} -%{_libdir}/wine/odbc32.so -%{_libdir}/wine/odbc32.%{winedll} -%{_libdir}/wine/odbcbcp.%{winedll} -%{_libdir}/wine/odbccp32.%{winedll} -%{_libdir}/wine/odbccu32.%{winedll} -%{_libdir}/wine/ole32.%{winedll} -%{_libdir}/wine/oleacc.%{winedll} -%{_libdir}/wine/oleaut32.%{winedll} -%{_libdir}/wine/olecli32.%{winedll} -%{_libdir}/wine/oledb32.%{winedll} -%{_libdir}/wine/oledlg.%{winedll} -%{_libdir}/wine/olepro32.%{winedll} -%{_libdir}/wine/olesvr32.%{winedll} -%{_libdir}/wine/olethk32.%{winedll} -%{_libdir}/wine/opcservices.%{winedll} -%{_libdir}/wine/packager.%{winedll} -%{_libdir}/wine/pdh.%{winedll} -%{_libdir}/wine/photometadatahandler.%{winedll} -%{_libdir}/wine/pidgen.%{winedll} -%{_libdir}/wine/powrprof.%{winedll} -%{_libdir}/wine/presentationfontcache.%{wineexe} -%{_libdir}/wine/printui.%{winedll} -%{_libdir}/wine/prntvpt.%{winedll} -%{_libdir}/wine/propsys.%{winedll} -%{_libdir}/wine/psapi.%{winedll} -%{_libdir}/wine/pstorec.%{winedll} -%{_libdir}/wine/pwrshplugin.%{winedll} -%{_libdir}/wine/qasf.%{winedll} -%{_libdir}/wine/qcap.%{winedll} -%{_libdir}/wine/qcap.so -%{_libdir}/wine/qdvd.%{winedll} -%{_libdir}/wine/qedit.%{winedll} -%{_libdir}/wine/qmgr.%{winedll} -%{_libdir}/wine/qmgrprxy.%{winedll} -%{_libdir}/wine/quartz.%{winedll} -%{_libdir}/wine/query.%{winedll} -%{_libdir}/wine/qwave.%{winedll} -%{_libdir}/wine/rasapi32.%{winedll} -%{_libdir}/wine/rasdlg.%{winedll} -%{_libdir}/wine/regapi.%{winedll} -%{_libdir}/wine/regini.%{wineexe} -%{_libdir}/wine/resutils.%{winedll} -%{_libdir}/wine/riched20.%{winedll} -%{_libdir}/wine/riched32.%{winedll} -%{_libdir}/wine/rpcrt4.%{winedll} -%{_libdir}/wine/rsabase.%{winedll} -%{_libdir}/wine/rsaenh.%{winedll} -%{_libdir}/wine/rstrtmgr.%{winedll} -%{_libdir}/wine/rtutils.%{winedll} -%{_libdir}/wine/rtworkq.%{winedll} -%{_libdir}/wine/samlib.%{winedll} -%{_libdir}/wine/sapi.%{winedll} -%{_libdir}/wine/sas.%{winedll} -%{_libdir}/wine/sc.%{wineexe} -%{_libdir}/wine/scarddlg.%{winedll} -%{_libdir}/wine/sccbase.%{winedll} -%{_libdir}/wine/schannel.%{winedll} -%{_libdir}/wine/scrobj.%{winedll} -%{_libdir}/wine/scrrun.%{winedll} -%{_libdir}/wine/scsiport.%{winesys} -%{_libdir}/wine/sechost.%{winedll} -%{_libdir}/wine/secur32.dll.so -%{_libdir}/wine/sensapi.%{winedll} -%{_libdir}/wine/serialui.%{winedll} -%{_libdir}/wine/setupapi.%{winedll} -%{_libdir}/wine/sfc_os.%{winedll} -%{_libdir}/wine/shcore.%{winedll} -%{_libdir}/wine/shdoclc.%{winedll} -%{_libdir}/wine/shdocvw.%{winedll} -%{_libdir}/wine/schedsvc.%{winedll} -%{_libdir}/wine/shell32.dll.so -%{_libdir}/wine/shfolder.%{winedll} -%{_libdir}/wine/shlwapi.%{winedll} -%{_libdir}/wine/shutdown.%{wineexe} -%{_libdir}/wine/slbcsp.%{winedll} -%{_libdir}/wine/slc.%{winedll} -%{_libdir}/wine/snmpapi.%{winedll} -%{_libdir}/wine/softpub.%{winedll} -%{_libdir}/wine/spoolsv.%{wineexe} -%{_libdir}/wine/srclient.%{winedll} +%{_libdir}/wine/%{winepedir}/nvcuda.%{winedll} +%{_libdir}/wine/%{winesodir}/nvcuda.dll.so +%{_libdir}/wine/%{winepedir}/nvcuvid.%{winedll} +%{_libdir}/wine/%{winesodir}/nvcuvid.dll.so +%endif +%{_libdir}/wine/%{winepedir}/objsel.%{winedll} +%{_libdir}/wine/%{winesodir}/odbc32.so +%{_libdir}/wine/%{winepedir}/odbc32.%{winedll} +%{_libdir}/wine/%{winepedir}/odbcbcp.%{winedll} +%{_libdir}/wine/%{winepedir}/odbccp32.%{winedll} +%{_libdir}/wine/%{winepedir}/odbccu32.%{winedll} +%{_libdir}/wine/%{winepedir}/ole32.%{winedll} +%{_libdir}/wine/%{winepedir}/oleacc.%{winedll} +%{_libdir}/wine/%{winepedir}/oleaut32.%{winedll} +%{_libdir}/wine/%{winepedir}/olecli32.%{winedll} +%{_libdir}/wine/%{winepedir}/oledb32.%{winedll} +%{_libdir}/wine/%{winepedir}/oledlg.%{winedll} +%{_libdir}/wine/%{winepedir}/olepro32.%{winedll} +%{_libdir}/wine/%{winepedir}/olesvr32.%{winedll} +%{_libdir}/wine/%{winepedir}/olethk32.%{winedll} +%{_libdir}/wine/%{winepedir}/opcservices.%{winedll} +%{_libdir}/wine/%{winepedir}/packager.%{winedll} +%{_libdir}/wine/%{winepedir}/pdh.%{winedll} +%{_libdir}/wine/%{winepedir}/photometadatahandler.%{winedll} +%{_libdir}/wine/%{winepedir}/pidgen.%{winedll} +%{_libdir}/wine/%{winepedir}/powrprof.%{winedll} +%{_libdir}/wine/%{winepedir}/presentationfontcache.%{wineexe} +%{_libdir}/wine/%{winepedir}/printui.%{winedll} +%{_libdir}/wine/%{winepedir}/prntvpt.%{winedll} +%{_libdir}/wine/%{winepedir}/propsys.%{winedll} +%{_libdir}/wine/%{winepedir}/psapi.%{winedll} +%{_libdir}/wine/%{winepedir}/pstorec.%{winedll} +%{_libdir}/wine/%{winepedir}/pwrshplugin.%{winedll} +%{_libdir}/wine/%{winepedir}/qasf.%{winedll} +%{_libdir}/wine/%{winepedir}/qcap.%{winedll} +%{_libdir}/wine/%{winesodir}/qcap.so +%{_libdir}/wine/%{winepedir}/qdvd.%{winedll} +%{_libdir}/wine/%{winepedir}/qedit.%{winedll} +%{_libdir}/wine/%{winepedir}/qmgr.%{winedll} +%{_libdir}/wine/%{winepedir}/qmgrprxy.%{winedll} +%{_libdir}/wine/%{winepedir}/quartz.%{winedll} +%{_libdir}/wine/%{winepedir}/query.%{winedll} +%{_libdir}/wine/%{winepedir}/qwave.%{winedll} +%{_libdir}/wine/%{winepedir}/rasapi32.%{winedll} +%{_libdir}/wine/%{winepedir}/rasdlg.%{winedll} +%{_libdir}/wine/%{winepedir}/regapi.%{winedll} +%{_libdir}/wine/%{winepedir}/regini.%{wineexe} +%{_libdir}/wine/%{winepedir}/resutils.%{winedll} +%{_libdir}/wine/%{winepedir}/riched20.%{winedll} +%{_libdir}/wine/%{winepedir}/riched32.%{winedll} +%{_libdir}/wine/%{winepedir}/rpcrt4.%{winedll} +%{_libdir}/wine/%{winepedir}/rsabase.%{winedll} +%{_libdir}/wine/%{winepedir}/rsaenh.%{winedll} +%{_libdir}/wine/%{winepedir}/rstrtmgr.%{winedll} +%{_libdir}/wine/%{winepedir}/rtutils.%{winedll} +%{_libdir}/wine/%{winepedir}/rtworkq.%{winedll} +%{_libdir}/wine/%{winepedir}/samlib.%{winedll} +%{_libdir}/wine/%{winepedir}/sapi.%{winedll} +%{_libdir}/wine/%{winepedir}/sas.%{winedll} +%{_libdir}/wine/%{winepedir}/sc.%{wineexe} +%{_libdir}/wine/%{winepedir}/scarddlg.%{winedll} +%{_libdir}/wine/%{winepedir}/sccbase.%{winedll} +%{_libdir}/wine/%{winepedir}/schannel.%{winedll} +%{_libdir}/wine/%{winepedir}/scrobj.%{winedll} +%{_libdir}/wine/%{winepedir}/scrrun.%{winedll} +%{_libdir}/wine/%{winepedir}/scsiport.%{winesys} +%{_libdir}/wine/%{winepedir}/sechost.%{winedll} +%{_libdir}/wine/%{winepedir}/secur32.%{winedll} +%{_libdir}/wine/%{winesodir}/secur32.so +%{_libdir}/wine/%{winepedir}/sensapi.%{winedll} +%{_libdir}/wine/%{winepedir}/serialui.%{winedll} +%{_libdir}/wine/%{winepedir}/setupapi.%{winedll} +%{_libdir}/wine/%{winepedir}/sfc_os.%{winedll} +%{_libdir}/wine/%{winepedir}/shcore.%{winedll} +%{_libdir}/wine/%{winepedir}/shdoclc.%{winedll} +%{_libdir}/wine/%{winepedir}/shdocvw.%{winedll} +%{_libdir}/wine/%{winepedir}/schedsvc.%{winedll} +%{_libdir}/wine/%{winepedir}/shell32.%{winedll} +%{_libdir}/wine/%{winesodir}/shell32.dll.so +%{_libdir}/wine/%{winepedir}/shfolder.%{winedll} +%{_libdir}/wine/%{winepedir}/shlwapi.%{winedll} +%{_libdir}/wine/%{winepedir}/shutdown.%{wineexe} +%{_libdir}/wine/%{winepedir}/slbcsp.%{winedll} +%{_libdir}/wine/%{winepedir}/slc.%{winedll} +%{_libdir}/wine/%{winepedir}/snmpapi.%{winedll} +%{_libdir}/wine/%{winepedir}/softpub.%{winedll} +%{_libdir}/wine/%{winepedir}/spoolsv.%{wineexe} +%{_libdir}/wine/%{winepedir}/srclient.%{winedll} %if 0%{?wine_staging} -%{_libdir}/wine/srvcli.%{winedll} -%endif -%{_libdir}/wine/sspicli.%{winedll} -%{_libdir}/wine/stdole2.%{winetlb} -%{_libdir}/wine/stdole32.%{winetlb} -%{_libdir}/wine/sti.%{winedll} -%{_libdir}/wine/strmdll.%{winedll} -%{_libdir}/wine/subst.%{wineexe} -%{_libdir}/wine/svchost.%{wineexe} -%{_libdir}/wine/svrapi.%{winedll} -%{_libdir}/wine/sxs.%{winedll} -%{_libdir}/wine/systeminfo.%{wineexe} -%{_libdir}/wine/t2embed.%{winedll} -%{_libdir}/wine/tapi32.%{winedll} -%{_libdir}/wine/taskkill.%{wineexe} -%{_libdir}/wine/taskschd.%{winedll} -%{_libdir}/wine/tdh.%{winedll} -%{_libdir}/wine/tdi.%{winesys} -%{_libdir}/wine/traffic.%{winedll} -%{_libdir}/wine/tzres.%{winedll} -%{_libdir}/wine/ucrtbase.so -%{_libdir}/wine/ucrtbase.%{winedll} +%{_libdir}/wine/%{winepedir}/srvcli.%{winedll} +%endif +%{_libdir}/wine/%{winepedir}/sspicli.%{winedll} +%{_libdir}/wine/%{winepedir}/stdole2.%{winetlb} +%{_libdir}/wine/%{winepedir}/stdole32.%{winetlb} +%{_libdir}/wine/%{winepedir}/sti.%{winedll} +%{_libdir}/wine/%{winepedir}/strmdll.%{winedll} +%{_libdir}/wine/%{winepedir}/subst.%{wineexe} +%{_libdir}/wine/%{winepedir}/svchost.%{wineexe} +%{_libdir}/wine/%{winepedir}/svrapi.%{winedll} +%{_libdir}/wine/%{winepedir}/sxs.%{winedll} +%{_libdir}/wine/%{winepedir}/systeminfo.%{wineexe} +%{_libdir}/wine/%{winepedir}/t2embed.%{winedll} +%{_libdir}/wine/%{winepedir}/tapi32.%{winedll} +%{_libdir}/wine/%{winepedir}/taskkill.%{wineexe} +%{_libdir}/wine/%{winepedir}/taskschd.%{winedll} +%{_libdir}/wine/%{winepedir}/tdh.%{winedll} +%{_libdir}/wine/%{winepedir}/tdi.%{winesys} +%{_libdir}/wine/%{winepedir}/traffic.%{winedll} +%{_libdir}/wine/%{winepedir}/tzres.%{winedll} +%{_libdir}/wine/%{winesodir}/ucrtbase.so +%{_libdir}/wine/%{winepedir}/ucrtbase.%{winedll} %if 0%{?wine_staging} -%{_libdir}/wine/uianimation.%{winedll} -%endif -%{_libdir}/wine/uiautomationcore.%{winedll} -%{_libdir}/wine/uiribbon.%{winedll} -%{_libdir}/wine/unicows.%{winedll} -%{_libdir}/wine/unlodctr.%{wineexe} -%{_libdir}/wine/updspapi.%{winedll} -%{_libdir}/wine/url.%{winedll} -%{_libdir}/wine/urlmon.%{winedll} -%{_libdir}/wine/usbd.%{winesys} -%{_libdir}/wine/user32.so -%{_libdir}/wine/user32.%{winedll} -%{_libdir}/wine/usp10.%{winedll} -%{_libdir}/wine/utildll.%{winedll} -%{_libdir}/wine/uxtheme.%{winedll} -%{_libdir}/wine/userenv.%{winedll} -%{_libdir}/wine/vbscript.%{winedll} -%{_libdir}/wine/vcomp.%{winedll} -%{_libdir}/wine/vcomp90.%{winedll} -%{_libdir}/wine/vcomp100.%{winedll} -%{_libdir}/wine/vcomp110.%{winedll} -%{_libdir}/wine/vcomp120.%{winedll} -%{_libdir}/wine/vcomp140.%{winedll} -%{_libdir}/wine/vcruntime140.%{winedll} -%{_libdir}/wine/vcruntime140_1.%{winedll} -%{_libdir}/wine/vdmdbg.%{winedll} -%{_libdir}/wine/version.%{winedll} -%{_libdir}/wine/vga.%{winedll} -%{_libdir}/wine/virtdisk.%{winedll} -%{_libdir}/wine/vssapi.%{winedll} -%{_libdir}/wine/vulkan-1.%{winedll} -%{_libdir}/wine/wbemdisp.%{winedll} -%{_libdir}/wine/wbemprox.%{winedll} -%{_libdir}/wine/wdscore.%{winedll} -%{_libdir}/wine/webservices.%{winedll} -%{_libdir}/wine/websocket.%{winedll} -%{_libdir}/wine/wer.%{winedll} -%{_libdir}/wine/wevtapi.%{winedll} -%{_libdir}/wine/wevtsvc.%{winedll} -%{_libdir}/wine/wiaservc.%{winedll} -%{_libdir}/wine/wimgapi.%{winedll} -%{_libdir}/wine/win32k.%{winesys} +%{_libdir}/wine/%{winepedir}/uianimation.%{winedll} +%endif +%{_libdir}/wine/%{winepedir}/uiautomationcore.%{winedll} +%{_libdir}/wine/%{winepedir}/uiribbon.%{winedll} +%{_libdir}/wine/%{winepedir}/unicows.%{winedll} +%{_libdir}/wine/%{winepedir}/unlodctr.%{wineexe} +%{_libdir}/wine/%{winepedir}/updspapi.%{winedll} +%{_libdir}/wine/%{winepedir}/url.%{winedll} +%{_libdir}/wine/%{winepedir}/urlmon.%{winedll} +%{_libdir}/wine/%{winepedir}/usbd.%{winesys} +%{_libdir}/wine/%{winesodir}/user32.so +%{_libdir}/wine/%{winepedir}/user32.%{winedll} +%{_libdir}/wine/%{winepedir}/usp10.%{winedll} +%{_libdir}/wine/%{winepedir}/utildll.%{winedll} +%{_libdir}/wine/%{winepedir}/uxtheme.%{winedll} +%{_libdir}/wine/%{winepedir}/userenv.%{winedll} +%{_libdir}/wine/%{winepedir}/vbscript.%{winedll} +%{_libdir}/wine/%{winepedir}/vcomp.%{winedll} +%{_libdir}/wine/%{winepedir}/vcomp90.%{winedll} +%{_libdir}/wine/%{winepedir}/vcomp100.%{winedll} +%{_libdir}/wine/%{winepedir}/vcomp110.%{winedll} +%{_libdir}/wine/%{winepedir}/vcomp120.%{winedll} +%{_libdir}/wine/%{winepedir}/vcomp140.%{winedll} +%{_libdir}/wine/%{winepedir}/vcruntime140.%{winedll} +%{_libdir}/wine/%{winepedir}/vcruntime140_1.%{winedll} +%{_libdir}/wine/%{winepedir}/vdmdbg.%{winedll} +%{_libdir}/wine/%{winepedir}/version.%{winedll} +%{_libdir}/wine/%{winepedir}/vga.%{winedll} +%{_libdir}/wine/%{winepedir}/virtdisk.%{winedll} +%{_libdir}/wine/%{winepedir}/vssapi.%{winedll} +%{_libdir}/wine/%{winepedir}/vulkan-1.%{winedll} +%{_libdir}/wine/%{winepedir}/wbemdisp.%{winedll} +%{_libdir}/wine/%{winepedir}/wbemprox.%{winedll} +%{_libdir}/wine/%{winepedir}/wdscore.%{winedll} +%{_libdir}/wine/%{winepedir}/webservices.%{winedll} +%{_libdir}/wine/%{winepedir}/websocket.%{winedll} +%{_libdir}/wine/%{winepedir}/wer.%{winedll} +%{_libdir}/wine/%{winepedir}/wevtapi.%{winedll} +%{_libdir}/wine/%{winepedir}/wevtsvc.%{winedll} +%{_libdir}/wine/%{winepedir}/wiaservc.%{winedll} +%{_libdir}/wine/%{winepedir}/wimgapi.%{winedll} +%{_libdir}/wine/%{winepedir}/win32k.%{winesys} %if 0%{?wine_staging} -%{_libdir}/wine/windows.gaming.input.%{winedll} -%{_libdir}/wine/windows.globalization.%{winedll} -%{_libdir}/wine/windows.media.speech.%{winedll} -%endif -%{_libdir}/wine/windows.media.devices.%{winedll} -%{_libdir}/wine/windowscodecs.%{winedll} -%{_libdir}/wine/windowscodecs.so -%{_libdir}/wine/windowscodecsext.%{winedll} -%{_libdir}/wine/winebus.sys.so -%{_libdir}/wine/winegstreamer.so -%{_libdir}/wine/winegstreamer.%{winedll} -%{_libdir}/wine/winehid.%{winesys} -%{_libdir}/wine/winejoystick.drv.so -%{_libdir}/wine/winemapi.%{winedll} -%{_libdir}/wine/wineusb.sys.so -%{_libdir}/wine/winevulkan.so -%{_libdir}/wine/winevulkan.%{winedll} -%{_libdir}/wine/winex11.drv.so -%{_libdir}/wine/wing32.%{winedll} -%{_libdir}/wine/winhttp.%{winedll} -%{_libdir}/wine/wininet.%{winedll} -%{_libdir}/wine/winmm.%{winedll} -%{_libdir}/wine/winnls32.%{winedll} -%{_libdir}/wine/winspool.drv.so -%{_libdir}/wine/winsta.%{winedll} -%{_libdir}/wine/wmasf.%{winedll} -%{_libdir}/wine/wmi.%{winedll} -%{_libdir}/wine/wmic.%{wineexe} -%{_libdir}/wine/wmiutils.%{winedll} -%{_libdir}/wine/wmp.%{winedll} -%{_libdir}/wine/wmvcore.%{winedll} -%{_libdir}/wine/spoolss.%{winedll} -%{_libdir}/wine/winscard.%{winedll} -%{_libdir}/wine/wintab32.%{winedll} -%{_libdir}/wine/wintrust.%{winedll} -%{_libdir}/wine/winusb.%{winedll} -%{_libdir}/wine/wlanapi.%{winedll} -%{_libdir}/wine/wlanui.%{winedll} -%{_libdir}/wine/wmphoto.so -%{_libdir}/wine/wmphoto.%{winedll} -%{_libdir}/wine/wnaspi32.dll.so +%{_libdir}/wine/%{winepedir}/windows.gaming.input.%{winedll} +%{_libdir}/wine/%{winepedir}/windows.globalization.%{winedll} +%{_libdir}/wine/%{winepedir}/windows.media.speech.%{winedll} +%endif +%{_libdir}/wine/%{winepedir}/windows.media.devices.%{winedll} +%{_libdir}/wine/%{winepedir}/windowscodecs.%{winedll} +%{_libdir}/wine/%{winesodir}/windowscodecs.so +%{_libdir}/wine/%{winepedir}/windowscodecsext.%{winedll} +%{_libdir}/wine/%{winepedir}/winebus.%{winesys} +%{_libdir}/wine/%{winesodir}/winebus.sys.so +%{_libdir}/wine/%{winesodir}/winegstreamer.so +%{_libdir}/wine/%{winepedir}/winegstreamer.%{winedll} +%{_libdir}/wine/%{winepedir}/winehid.%{winesys} +%{_libdir}/wine/%{winepedir}/winejoystick.%{winedrv} +%{_libdir}/wine/%{winesodir}/winejoystick.drv.so +%{_libdir}/wine/%{winepedir}/winemapi.%{winedll} +%{_libdir}/wine/%{winepedir}/wineusb.%{winesys} +%{_libdir}/wine/%{winesodir}/wineusb.sys.so +%{_libdir}/wine/%{winesodir}/winevulkan.so +%{_libdir}/wine/%{winepedir}/winevulkan.%{winedll} +%{_libdir}/wine/%{winepedir}/winex11.%{winedrv} +%{_libdir}/wine/%{winesodir}/winex11.drv.so +%{_libdir}/wine/%{winepedir}/wing32.%{winedll} +%{_libdir}/wine/%{winepedir}/winhttp.%{winedll} +%{_libdir}/wine/%{winepedir}/wininet.%{winedll} +%{_libdir}/wine/%{winepedir}/winmm.%{winedll} +%{_libdir}/wine/%{winepedir}/winnls32.%{winedll} +%{_libdir}/wine/%{winepedir}/winspool.%{winedrv} +%{_libdir}/wine/%{winesodir}/winspool.drv.so +%{_libdir}/wine/%{winepedir}/winsta.%{winedll} +%{_libdir}/wine/%{winepedir}/wmasf.%{winedll} +%{_libdir}/wine/%{winepedir}/wmi.%{winedll} +%{_libdir}/wine/%{winepedir}/wmic.%{wineexe} +%{_libdir}/wine/%{winepedir}/wmiutils.%{winedll} +%{_libdir}/wine/%{winepedir}/wmp.%{winedll} +%{_libdir}/wine/%{winepedir}/wmvcore.%{winedll} +%{_libdir}/wine/%{winepedir}/spoolss.%{winedll} +%{_libdir}/wine/%{winepedir}/winscard.%{winedll} +%{_libdir}/wine/%{winepedir}/wintab32.%{winedll} +%{_libdir}/wine/%{winepedir}/wintrust.%{winedll} +%{_libdir}/wine/%{winepedir}/winusb.%{winedll} +%{_libdir}/wine/%{winepedir}/wlanapi.%{winedll} +%{_libdir}/wine/%{winepedir}/wlanui.%{winedll} +%{_libdir}/wine/%{winesodir}/wmphoto.so +%{_libdir}/wine/%{winepedir}/wmphoto.%{winedll} +%{_libdir}/wine/%{winepedir}/wnaspi32.%{winedll} +%{_libdir}/wine/%{winesodir}/wnaspi32.dll.so %if 0%{?wine_staging} %ifarch x86_64 -%{_libdir}/wine/wow64cpu.%{winedll} -%endif -%endif -%{_libdir}/wine/wpc.%{winedll} -%{_libdir}/wine/wpcap.dll.so -%{_libdir}/wine/ws2_32.dll.so -%{_libdir}/wine/wsdapi.%{winedll} -%{_libdir}/wine/wshom.%{wineocx} -%{_libdir}/wine/wsnmp32.%{winedll} -%{_libdir}/wine/wsock32.%{winedll} -%{_libdir}/wine/wtsapi32.%{winedll} -%{_libdir}/wine/wuapi.%{winedll} -%{_libdir}/wine/wuaueng.%{winedll} +%{_libdir}/wine/%{winepedir}/wow64cpu.%{winedll} +%endif +%endif +%{_libdir}/wine/%{winepedir}/wpc.%{winedll} +%{_libdir}/wine/%{winepedir}/wpcap.%{winedll} +%{_libdir}/wine/%{winesodir}/wpcap.dll.so +%{_libdir}/wine/%{winepedir}/ws2_32.%{winedll} +%{_libdir}/wine/%{winesodir}/ws2_32.dll.so +%{_libdir}/wine/%{winepedir}/wsdapi.%{winedll} +%{_libdir}/wine/%{winepedir}/wshom.%{wineocx} +%{_libdir}/wine/%{winepedir}/wsnmp32.%{winedll} +%{_libdir}/wine/%{winepedir}/wsock32.%{winedll} +%{_libdir}/wine/%{winepedir}/wtsapi32.%{winedll} +%{_libdir}/wine/%{winepedir}/wuapi.%{winedll} +%{_libdir}/wine/%{winepedir}/wuaueng.%{winedll} %if 0%{?wine_staging} -%{_libdir}/wine/wuauserv.%{wineexe} -%endif -%{_libdir}/wine/security.%{winedll} -%{_libdir}/wine/sfc.%{winedll} -%{_libdir}/wine/wineps.%{winedrv} -%{_libdir}/wine/d3d8.%{winedll} -%{_libdir}/wine/d3d8thk.%{winedll} -%ghost %{_libdir}/wine/d3d9.%{winedll} -%{_libdir}/wine/wine-d3d9.%{winedll} -%{_libdir}/wine/opengl32.dll.so -%{_libdir}/wine/wined3d.dll.so -%{_libdir}/wine/dnsapi.%{winedll} -%{_libdir}/wine/dnsapi.so -%{_libdir}/wine/iexplore.%{wineexe} -%{_libdir}/wine/x3daudio1_0.dll.so -%{_libdir}/wine/x3daudio1_1.dll.so -%{_libdir}/wine/x3daudio1_2.dll.so -%{_libdir}/wine/x3daudio1_3.dll.so -%{_libdir}/wine/x3daudio1_4.dll.so -%{_libdir}/wine/x3daudio1_5.dll.so -%{_libdir}/wine/x3daudio1_6.dll.so -%{_libdir}/wine/x3daudio1_7.dll.so +%{_libdir}/wine/%{winepedir}/wuauserv.%{wineexe} +%endif +%{_libdir}/wine/%{winepedir}/security.%{winedll} +%{_libdir}/wine/%{winepedir}/sfc.%{winedll} +%{_libdir}/wine/%{winepedir}/wineps.%{winedrv} +%{_libdir}/wine/%{winepedir}/d3d8.%{winedll} +%{_libdir}/wine/%{winepedir}/d3d8thk.%{winedll} +%ghost %{_libdir}/wine/%{winepedir}/d3d9.%{winedll} +%{_libdir}/wine/%{winepedir}/wine-d3d9.%{winedll} +%{_libdir}/wine/%{winepedir}/opengl32.%{winedll} +%{_libdir}/wine/%{winesodir}/opengl32.dll.so +%{_libdir}/wine/%{winepedir}/wined3d.%{winedll} +%{_libdir}/wine/%{winesodir}/wined3d.dll.so +%{_libdir}/wine/%{winepedir}/dnsapi.%{winedll} +%{_libdir}/wine/%{winesodir}/dnsapi.so +%{_libdir}/wine/%{winepedir}/iexplore.%{wineexe} +%{_libdir}/wine/%{winepedir}/x3daudio1_0.%{winedll} +%{_libdir}/wine/%{winesodir}/x3daudio1_0.dll.so +%{_libdir}/wine/%{winepedir}/x3daudio1_1.%{winedll} +%{_libdir}/wine/%{winesodir}/x3daudio1_1.dll.so +%{_libdir}/wine/%{winepedir}/x3daudio1_2.%{winedll} +%{_libdir}/wine/%{winesodir}/x3daudio1_2.dll.so +%{_libdir}/wine/%{winepedir}/x3daudio1_3.%{winedll} +%{_libdir}/wine/%{winesodir}/x3daudio1_3.dll.so +%{_libdir}/wine/%{winepedir}/x3daudio1_4.%{winedll} +%{_libdir}/wine/%{winesodir}/x3daudio1_4.dll.so +%{_libdir}/wine/%{winepedir}/x3daudio1_5.%{winedll} +%{_libdir}/wine/%{winesodir}/x3daudio1_5.dll.so +%{_libdir}/wine/%{winepedir}/x3daudio1_6.%{winedll} +%{_libdir}/wine/%{winesodir}/x3daudio1_6.dll.so +%{_libdir}/wine/%{winepedir}/x3daudio1_7.%{winedll} +%{_libdir}/wine/%{winesodir}/x3daudio1_7.dll.so %if 0%{?wine_staging} -%{_libdir}/wine/xactengine2_0.dll.so -%{_libdir}/wine/xactengine2_4.dll.so -%{_libdir}/wine/xactengine2_7.dll.so -%{_libdir}/wine/xactengine2_9.dll.so -%endif -%{_libdir}/wine/xactengine3_0.dll.so -%{_libdir}/wine/xactengine3_1.dll.so -%{_libdir}/wine/xactengine3_2.dll.so -%{_libdir}/wine/xactengine3_3.dll.so -%{_libdir}/wine/xactengine3_4.dll.so -%{_libdir}/wine/xactengine3_5.dll.so -%{_libdir}/wine/xactengine3_6.dll.so -%{_libdir}/wine/xactengine3_7.dll.so -%{_libdir}/wine/xapofx1_1.dll.so -%{_libdir}/wine/xapofx1_2.dll.so -%{_libdir}/wine/xapofx1_3.dll.so -%{_libdir}/wine/xapofx1_4.dll.so -%{_libdir}/wine/xapofx1_5.dll.so -%{_libdir}/wine/xaudio2_0.dll.so -%{_libdir}/wine/xaudio2_1.dll.so -%{_libdir}/wine/xaudio2_2.dll.so -%{_libdir}/wine/xaudio2_3.dll.so -%{_libdir}/wine/xaudio2_4.dll.so -%{_libdir}/wine/xaudio2_5.dll.so -%{_libdir}/wine/xaudio2_6.dll.so -%{_libdir}/wine/xaudio2_7.dll.so -%{_libdir}/wine/xaudio2_8.dll.so -%{_libdir}/wine/xaudio2_9.dll.so -%{_libdir}/wine/xcopy.%{wineexe} -%{_libdir}/wine/xinput1_1.%{winedll} -%{_libdir}/wine/xinput1_2.%{winedll} -%{_libdir}/wine/xinput1_3.%{winedll} -%{_libdir}/wine/xinput1_4.%{winedll} -%{_libdir}/wine/xinput9_1_0.%{winedll} -%{_libdir}/wine/xmllite.%{winedll} -%{_libdir}/wine/xolehlp.%{winedll} -%{_libdir}/wine/xpsprint.%{winedll} -%{_libdir}/wine/xpssvcs.%{winedll} +%{_libdir}/wine/%{winepedir}/xactengine2_0.%{winedll} +%{_libdir}/wine/%{winesodir}/xactengine2_0.dll.so +%{_libdir}/wine/%{winepedir}/xactengine2_4.%{winedll} +%{_libdir}/wine/%{winesodir}/xactengine2_4.dll.so +%{_libdir}/wine/%{winepedir}/xactengine2_7.%{winedll} +%{_libdir}/wine/%{winesodir}/xactengine2_7.dll.so +%{_libdir}/wine/%{winepedir}/xactengine2_9.%{winedll} +%{_libdir}/wine/%{winesodir}/xactengine2_9.dll.so +%endif +%{_libdir}/wine/%{winepedir}/xactengine3_0.%{winedll} +%{_libdir}/wine/%{winesodir}/xactengine3_0.dll.so +%{_libdir}/wine/%{winepedir}/xactengine3_1.%{winedll} +%{_libdir}/wine/%{winesodir}/xactengine3_1.dll.so +%{_libdir}/wine/%{winepedir}/xactengine3_2.%{winedll} +%{_libdir}/wine/%{winesodir}/xactengine3_2.dll.so +%{_libdir}/wine/%{winepedir}/xactengine3_3.%{winedll} +%{_libdir}/wine/%{winesodir}/xactengine3_3.dll.so +%{_libdir}/wine/%{winepedir}/xactengine3_4.%{winedll} +%{_libdir}/wine/%{winesodir}/xactengine3_4.dll.so +%{_libdir}/wine/%{winepedir}/xactengine3_5.%{winedll} +%{_libdir}/wine/%{winesodir}/xactengine3_5.dll.so +%{_libdir}/wine/%{winepedir}/xactengine3_6.%{winedll} +%{_libdir}/wine/%{winesodir}/xactengine3_6.dll.so +%{_libdir}/wine/%{winepedir}/xactengine3_7.%{winedll} +%{_libdir}/wine/%{winesodir}/xactengine3_7.dll.so +%{_libdir}/wine/%{winepedir}/xapofx1_1.%{winedll} +%{_libdir}/wine/%{winesodir}/xapofx1_1.dll.so +%{_libdir}/wine/%{winepedir}/xapofx1_2.%{winedll} +%{_libdir}/wine/%{winesodir}/xapofx1_2.dll.so +%{_libdir}/wine/%{winepedir}/xapofx1_3.%{winedll} +%{_libdir}/wine/%{winesodir}/xapofx1_3.dll.so +%{_libdir}/wine/%{winepedir}/xapofx1_4.%{winedll} +%{_libdir}/wine/%{winesodir}/xapofx1_4.dll.so +%{_libdir}/wine/%{winepedir}/xapofx1_5.%{winedll} +%{_libdir}/wine/%{winesodir}/xapofx1_5.dll.so +%{_libdir}/wine/%{winepedir}/xaudio2_0.%{winedll} +%{_libdir}/wine/%{winesodir}/xaudio2_0.dll.so +%{_libdir}/wine/%{winepedir}/xaudio2_1.%{winedll} +%{_libdir}/wine/%{winesodir}/xaudio2_1.dll.so +%{_libdir}/wine/%{winepedir}/xaudio2_2.%{winedll} +%{_libdir}/wine/%{winesodir}/xaudio2_2.dll.so +%{_libdir}/wine/%{winepedir}/xaudio2_3.%{winedll} +%{_libdir}/wine/%{winesodir}/xaudio2_3.dll.so +%{_libdir}/wine/%{winepedir}/xaudio2_4.%{winedll} +%{_libdir}/wine/%{winesodir}/xaudio2_4.dll.so +%{_libdir}/wine/%{winepedir}/xaudio2_5.%{winedll} +%{_libdir}/wine/%{winesodir}/xaudio2_5.dll.so +%{_libdir}/wine/%{winepedir}/xaudio2_6.%{winedll} +%{_libdir}/wine/%{winesodir}/xaudio2_6.dll.so +%{_libdir}/wine/%{winepedir}/xaudio2_7.%{winedll} +%{_libdir}/wine/%{winesodir}/xaudio2_7.dll.so +%{_libdir}/wine/%{winepedir}/xaudio2_8.%{winedll} +%{_libdir}/wine/%{winesodir}/xaudio2_8.dll.so +%{_libdir}/wine/%{winepedir}/xaudio2_9.%{winedll} +%{_libdir}/wine/%{winesodir}/xaudio2_9.dll.so +%{_libdir}/wine/%{winepedir}/xcopy.%{wineexe} +%{_libdir}/wine/%{winepedir}/xinput1_1.%{winedll} +%{_libdir}/wine/%{winepedir}/xinput1_2.%{winedll} +%{_libdir}/wine/%{winepedir}/xinput1_3.%{winedll} +%{_libdir}/wine/%{winepedir}/xinput1_4.%{winedll} +%{_libdir}/wine/%{winepedir}/xinput9_1_0.%{winedll} +%{_libdir}/wine/%{winepedir}/xmllite.%{winedll} +%{_libdir}/wine/%{winepedir}/xolehlp.%{winedll} +%{_libdir}/wine/%{winepedir}/xpsprint.%{winedll} +%{_libdir}/wine/%{winepedir}/xpssvcs.%{winedll} %if 0%{?wine_staging} %ifarch x86_64 aarch64 -%{_libdir}/wine/nvapi64.%{winedll} -%{_libdir}/wine/nvencodeapi64.dll.so +%{_libdir}/wine/%{winepedir}/nvapi64.%{winedll} +%{_libdir}/wine/%{winepedir}/nvencodeapi64.%{winedll} +%{_libdir}/wine/%{winesodir}/nvencodeapi64.dll.so %else -%{_libdir}/wine/nvapi.%{winedll} -%{_libdir}/wine/nvencodeapi.dll.so +%{_libdir}/wine/%{winepedir}/nvapi.%{winedll} +%{_libdir}/wine/%{winepedir}/nvencodeapi.%{winedll} +%{_libdir}/wine/%{winesodir}/nvencodeapi.dll.so %endif %endif # 16 bit and other non 64bit stuff %ifnarch x86_64 %{arm} aarch64 -%{_libdir}/wine/winevdm.exe.so -%{_libdir}/wine/ifsmgr.vxd -%{_libdir}/wine/mmdevldr.vxd -%{_libdir}/wine/monodebg.vxd -%{_libdir}/wine/rundll.exe16 -%{_libdir}/wine/vdhcp.vxd -%{_libdir}/wine/user.exe16 -%{_libdir}/wine/vmm.vxd -%{_libdir}/wine/vnbt.vxd -%{_libdir}/wine/vnetbios.vxd -%{_libdir}/wine/vtdapi.vxd -%{_libdir}/wine/vwin32.vxd -%{_libdir}/wine/w32skrnl.dll -%{_libdir}/wine/avifile.dll16 -%{_libdir}/wine/comm.drv16 -%{_libdir}/wine/commdlg.dll16 -%{_libdir}/wine/compobj.dll16 -%{_libdir}/wine/ctl3d.dll16 -%{_libdir}/wine/ctl3dv2.dll16 -%{_libdir}/wine/ddeml.dll16 -%{_libdir}/wine/dispdib.dll16 -%{_libdir}/wine/display.drv16 -%{_libdir}/wine/gdi.exe16 -%{_libdir}/wine/imm.dll16 -%{_libdir}/wine/krnl386.exe16 -%{_libdir}/wine/keyboard.drv16 -%{_libdir}/wine/lzexpand.dll16 -%{_libdir}/wine/mmsystem.dll16 -%{_libdir}/wine/mouse.drv16 -%{_libdir}/wine/msacm.dll16 -%{_libdir}/wine/msvideo.dll16 -%{_libdir}/wine/ole2.dll16 -%{_libdir}/wine/ole2conv.dll16 -%{_libdir}/wine/ole2disp.dll16 -%{_libdir}/wine/ole2nls.dll16 -%{_libdir}/wine/ole2prox.dll16 -%{_libdir}/wine/ole2thk.dll16 -%{_libdir}/wine/olecli.dll16 -%{_libdir}/wine/olesvr.dll16 -%{_libdir}/wine/rasapi16.dll16 -%{_libdir}/wine/setupx.dll16 -%{_libdir}/wine/shell.dll16 -%{_libdir}/wine/sound.drv16 -%{_libdir}/wine/storage.dll16 -%{_libdir}/wine/stress.dll16 -%{_libdir}/wine/system.drv16 -%{_libdir}/wine/toolhelp.dll16 -%{_libdir}/wine/twain.dll16 -%{_libdir}/wine/typelib.dll16 -%{_libdir}/wine/ver.dll16 -%{_libdir}/wine/w32sys.dll16 -%{_libdir}/wine/win32s16.dll16 -%{_libdir}/wine/win87em.dll16 -%{_libdir}/wine/winaspi.dll16 -%{_libdir}/wine/windebug.dll16 -%{_libdir}/wine/wineps16.drv16 -%{_libdir}/wine/wing.dll16 -%{_libdir}/wine/winhelp.exe16 -%{_libdir}/wine/winnls.dll16 -%{_libdir}/wine/winoldap.mod16 -%{_libdir}/wine/winsock.dll16 -%{_libdir}/wine/wintab.dll16 -%{_libdir}/wine/wow32.dll +%{_libdir}/wine/%{winepedir}/winevdm.exe +%{_libdir}/wine/%{winesodir}/winevdm.exe.so +%{_libdir}/wine/%{winepedir}/ifsmgr.vxd +%{_libdir}/wine/%{winepedir}/mmdevldr.vxd +%{_libdir}/wine/%{winepedir}/monodebg.vxd +%{_libdir}/wine/%{winepedir}/rundll.exe16 +%{_libdir}/wine/%{winepedir}/vdhcp.vxd +%{_libdir}/wine/%{winepedir}/user.exe16 +%{_libdir}/wine/%{winepedir}/vmm.vxd +%{_libdir}/wine/%{winepedir}/vnbt.vxd +%{_libdir}/wine/%{winepedir}/vnetbios.vxd +%{_libdir}/wine/%{winepedir}/vtdapi.vxd +%{_libdir}/wine/%{winepedir}/vwin32.vxd +%{_libdir}/wine/%{winepedir}/w32skrnl.dll +%{_libdir}/wine/%{winepedir}/avifile.dll16 +%{_libdir}/wine/%{winepedir}/comm.drv16 +%{_libdir}/wine/%{winepedir}/commdlg.dll16 +%{_libdir}/wine/%{winepedir}/compobj.dll16 +%{_libdir}/wine/%{winepedir}/ctl3d.dll16 +%{_libdir}/wine/%{winepedir}/ctl3dv2.dll16 +%{_libdir}/wine/%{winepedir}/ddeml.dll16 +%{_libdir}/wine/%{winepedir}/dispdib.dll16 +%{_libdir}/wine/%{winepedir}/display.drv16 +%{_libdir}/wine/%{winepedir}/gdi.exe16 +%{_libdir}/wine/%{winepedir}/imm.dll16 +%{_libdir}/wine/%{winepedir}/krnl386.exe16 +%{_libdir}/wine/%{winepedir}/keyboard.drv16 +%{_libdir}/wine/%{winepedir}/lzexpand.dll16 +%{_libdir}/wine/%{winepedir}/mmsystem.dll16 +%{_libdir}/wine/%{winepedir}/mouse.drv16 +%{_libdir}/wine/%{winepedir}/msacm.dll16 +%{_libdir}/wine/%{winepedir}/msvideo.dll16 +%{_libdir}/wine/%{winepedir}/ole2.dll16 +%{_libdir}/wine/%{winepedir}/ole2conv.dll16 +%{_libdir}/wine/%{winepedir}/ole2disp.dll16 +%{_libdir}/wine/%{winepedir}/ole2nls.dll16 +%{_libdir}/wine/%{winepedir}/ole2prox.dll16 +%{_libdir}/wine/%{winepedir}/ole2thk.dll16 +%{_libdir}/wine/%{winepedir}/olecli.dll16 +%{_libdir}/wine/%{winepedir}/olesvr.dll16 +%{_libdir}/wine/%{winepedir}/rasapi16.dll16 +%{_libdir}/wine/%{winepedir}/setupx.dll16 +%{_libdir}/wine/%{winepedir}/shell.dll16 +%{_libdir}/wine/%{winepedir}/sound.drv16 +%{_libdir}/wine/%{winepedir}/storage.dll16 +%{_libdir}/wine/%{winepedir}/stress.dll16 +%{_libdir}/wine/%{winepedir}/system.drv16 +%{_libdir}/wine/%{winepedir}/toolhelp.dll16 +%{_libdir}/wine/%{winepedir}/twain.dll16 +%{_libdir}/wine/%{winepedir}/typelib.dll16 +%{_libdir}/wine/%{winepedir}/ver.dll16 +%{_libdir}/wine/%{winepedir}/w32sys.dll16 +%{_libdir}/wine/%{winepedir}/win32s16.dll16 +%{_libdir}/wine/%{winepedir}/win87em.dll16 +%{_libdir}/wine/%{winepedir}/winaspi.dll16 +%{_libdir}/wine/%{winepedir}/windebug.dll16 +%{_libdir}/wine/%{winepedir}/wineps16.drv16 +%{_libdir}/wine/%{winepedir}/wing.dll16 +%{_libdir}/wine/%{winepedir}/winhelp.exe16 +%{_libdir}/wine/%{winepedir}/winnls.dll16 +%{_libdir}/wine/%{winepedir}/winoldap.mod16 +%{_libdir}/wine/%{winepedir}/winsock.dll16 +%{_libdir}/wine/%{winepedir}/wintab.dll16 +%{_libdir}/wine/%{winepedir}/wow32.dll %endif %files filesystem @@ -2377,22 +2447,24 @@ fi # ldap subpackage %files ldap -%{_libdir}/wine/wldap32.so -%{_libdir}/wine/wldap32.%{winedll} +%{_libdir}/wine/%{winesodir}/wldap32.so +%{_libdir}/wine/%{winepedir}/wldap32.%{winedll} # cms subpackage %files cms -%{_libdir}/wine/mscms.so -%{_libdir}/wine/mscms.%{winedll} +%{_libdir}/wine/%{winesodir}/mscms.so +%{_libdir}/wine/%{winepedir}/mscms.%{winedll} # twain subpackage %files twain -%{_libdir}/wine/twain_32.%{winedll} -%{_libdir}/wine/sane.ds.so +%{_libdir}/wine/%{winepedir}/twain_32.%{winedll} +%{_libdir}/wine/%{winepedir}/sane.%{wineds} +%{_libdir}/wine/%{winesodir}/sane.ds.so # capi subpackage %files capi -%{_libdir}/wine/capi2032.dll.so +%{_libdir}/wine/%{winepedir}/capi2032.%{winedll} +%{_libdir}/wine/%{winesodir}/capi2032.dll.so %files devel %{_bindir}/function_grep.pl @@ -2419,27 +2491,34 @@ fi %lang(fr) %{_mandir}/fr.UTF-8/man1/winemaker.1* %attr(0755, root, root) %dir %{_includedir}/wine %{_includedir}/wine/* -%{_libdir}/wine/*.a -%{_libdir}/wine/*.def +%{_libdir}/wine/%{winepedir}/*.a +%{_libdir}/wine/%{winesodir}/*.a +%{_libdir}/wine/%{winesodir}/*.def %files pulseaudio -%{_libdir}/wine/winepulse.drv.so +%{_libdir}/wine/%{winepedir}/winepulse.%{winedrv} +%{_libdir}/wine/%{winesodir}/winepulse.drv.so %files alsa -%{_libdir}/wine/winealsa.drv.so +%{_libdir}/wine/%{winepedir}/winealsa.%{winedrv} +%{_libdir}/wine/%{winesodir}/winealsa.drv.so %if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 %files openal -%{_libdir}/wine/openal32.dll.so +%{_libdir}/wine/%{winepedir}/openal32.%{winedll} +%{_libdir}/wine/%{winesodir}/openal32.dll.so %endif %if 0%{?fedora} %files opencl -%{_libdir}/wine/opencl.%{winedll} -%{_libdir}/wine/opencl.so +%{_libdir}/wine/%{winepedir}/opencl.%{winedll} +%{_libdir}/wine/%{winesodir}/opencl.so %endif %changelog +* Sat May 08 2021 Michael Cronenworth 6.8-1 +- version update + * Sat Apr 24 2021 Michael Cronenworth 6.7-1 - version update From 8611d14b1a635e40c6fffddc2731ec32ea6c38ec Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Thu, 13 May 2021 20:32:11 -0500 Subject: [PATCH 632/715] Fix file extensions for arm builds with this new directory structure --- wine.spec | 1932 ++++++++++++++++++++++++++--------------------------- 1 file changed, 955 insertions(+), 977 deletions(-) diff --git a/wine.spec b/wine.spec index bdf2811..23815cc 100644 --- a/wine.spec +++ b/wine.spec @@ -5,31 +5,6 @@ %global winegecko 2.47.2 %global winemono 6.1.1 #global _default_patch_fuzz 2 -%ifarch %{ix86} x86_64 -%global wineacm acm -%global wineax ax -%global winecom com -%global winecpl cpl -%global winedll dll -%global winedrv drv -%global wineds ds -%global wineexe exe -%global wineocx ocx -%global winesys sys -%global winetlb tlb -%else -%global wineacm acm.so -%global wineax ax.so -%global winecom com.so -%global winecpl cpl.so -%global winedll dll.so -%global winedrv drv.so -%global wineds ds.so -%global wineexe exe.so -%global wineocx ocx.so -%global winesys sys.so -%global winetlb tlb.so -%endif %ifarch %{ix86} %global winepedir i386-windows %global winesodir i386-unix @@ -810,20 +785,20 @@ touch %{buildroot}%{_bindir}/wine touch %{buildroot}%{_bindir}/wine-preloader %endif touch %{buildroot}%{_bindir}/wineserver -mv %{buildroot}%{_libdir}/wine/%{winepedir}/dxgi.%{winedll} %{buildroot}%{_libdir}/wine/%{winepedir}/wine-dxgi.%{winedll} +mv %{buildroot}%{_libdir}/wine/%{winepedir}/dxgi.dll %{buildroot}%{_libdir}/wine/%{winepedir}/wine-dxgi.dll mv %{buildroot}%{_libdir}/wine/%{winesodir}/dxgi.dll.so %{buildroot}%{_libdir}/wine/%{winesodir}/wine-dxgi.dll.so -mv %{buildroot}%{_libdir}/wine/%{winepedir}/d3d9.%{winedll} %{buildroot}%{_libdir}/wine/%{winepedir}/wine-d3d9.%{winedll} -mv %{buildroot}%{_libdir}/wine/%{winepedir}/d3d10.%{winedll} %{buildroot}%{_libdir}/wine/%{winepedir}/wine-d3d10.%{winedll} -mv %{buildroot}%{_libdir}/wine/%{winepedir}/d3d10_1.%{winedll} %{buildroot}%{_libdir}/wine/%{winepedir}/wine-d3d10_1.%{winedll} -mv %{buildroot}%{_libdir}/wine/%{winepedir}/d3d10core.%{winedll} %{buildroot}%{_libdir}/wine/%{winepedir}/wine-d3d10core.%{winedll} -mv %{buildroot}%{_libdir}/wine/%{winepedir}/d3d11.%{winedll} %{buildroot}%{_libdir}/wine/%{winepedir}/wine-d3d11.%{winedll} -touch %{buildroot}%{_libdir}/wine/%{winepedir}/dxgi.%{winedll} +mv %{buildroot}%{_libdir}/wine/%{winepedir}/d3d9.dll %{buildroot}%{_libdir}/wine/%{winepedir}/wine-d3d9.dll +mv %{buildroot}%{_libdir}/wine/%{winepedir}/d3d10.dll %{buildroot}%{_libdir}/wine/%{winepedir}/wine-d3d10.dll +mv %{buildroot}%{_libdir}/wine/%{winepedir}/d3d10_1.dll %{buildroot}%{_libdir}/wine/%{winepedir}/wine-d3d10_1.dll +mv %{buildroot}%{_libdir}/wine/%{winepedir}/d3d10core.dll %{buildroot}%{_libdir}/wine/%{winepedir}/wine-d3d10core.dll +mv %{buildroot}%{_libdir}/wine/%{winepedir}/d3d11.dll %{buildroot}%{_libdir}/wine/%{winepedir}/wine-d3d11.dll +touch %{buildroot}%{_libdir}/wine/%{winepedir}/dxgi.dll touch %{buildroot}%{_libdir}/wine/%{winesodir}/dxgi.dll.so -touch %{buildroot}%{_libdir}/wine/%{winepedir}/d3d9.%{winedll} -touch %{buildroot}%{_libdir}/wine/%{winepedir}/d3d10.%{winedll} -touch %{buildroot}%{_libdir}/wine/%{winepedir}/d3d10_1.%{winedll} -touch %{buildroot}%{_libdir}/wine/%{winepedir}/d3d10core.%{winedll} -touch %{buildroot}%{_libdir}/wine/%{winepedir}/d3d11.%{winedll} +touch %{buildroot}%{_libdir}/wine/%{winepedir}/d3d9.dll +touch %{buildroot}%{_libdir}/wine/%{winepedir}/d3d10.dll +touch %{buildroot}%{_libdir}/wine/%{winepedir}/d3d10_1.dll +touch %{buildroot}%{_libdir}/wine/%{winepedir}/d3d10core.dll +touch %{buildroot}%{_libdir}/wine/%{winepedir}/d3d11.dll # remove rpath chrpath --delete %{buildroot}%{_bindir}/wmc @@ -1070,9 +1045,9 @@ fi %posttrans core # handle upgrades for a few package updates %{_sbindir}/alternatives --remove 'wine-dxgi%{?_isa}' %{_libdir}/wine/wine-dxgi.dll.so -%{_sbindir}/alternatives --remove 'wine-d3d9%{?_isa}' %{_libdir}/wine/wine-d3d9.%{winedll} -%{_sbindir}/alternatives --remove 'wine-d3d10%{?_isa}' %{_libdir}/wine/wine-d3d10.%{winedll} -%{_sbindir}/alternatives --remove 'wine-d3d11%{?_isa}' %{_libdir}/wine/wine-d3d11.%{winedll} +%{_sbindir}/alternatives --remove 'wine-d3d9%{?_isa}' %{_libdir}/wine/wine-d3d9.dll +%{_sbindir}/alternatives --remove 'wine-d3d10%{?_isa}' %{_libdir}/wine/wine-d3d10.dll +%{_sbindir}/alternatives --remove 'wine-d3d11%{?_isa}' %{_libdir}/wine/wine-d3d11.dll %ifarch x86_64 aarch64 %{_sbindir}/alternatives --install %{_bindir}/wine \ wine %{_bindir}/wine64 10 \ @@ -1093,17 +1068,17 @@ fi wineserver %{_bindir}/wineserver32 10 %endif %endif -%{_sbindir}/alternatives --install %{_libdir}/wine/%{winepedir}/dxgi.%{winedll} \ - 'wine-dxgi%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-dxgi.%{winedll} 10 \ +%{_sbindir}/alternatives --install %{_libdir}/wine/%{winepedir}/dxgi.dll \ + 'wine-dxgi%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-dxgi.dll 10 \ --slave %{_libdir}/wine/%{winesodir}/dxgi.dll.so 'wine-dxgi-so%{?_isa}' %{_libdir}/wine/%{winesodir}/wine-dxgi.dll.so -%{_sbindir}/alternatives --install %{_libdir}/wine/%{winepedir}/d3d9.%{winedll} \ - 'wine-d3d9%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-d3d9.%{winedll} 10 -%{_sbindir}/alternatives --install %{_libdir}/wine/%{winepedir}/d3d10.%{winedll} \ - 'wine-d3d10%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-d3d10.%{winedll} 10 \ - --slave %{_libdir}/wine/%{winepedir}/d3d10_1.%{winedll} 'wine-d3d10_1%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-d3d10_1.%{winedll} \ - --slave %{_libdir}/wine/%{winepedir}/d3d10core.%{winedll} 'wine-d3d10core%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-d3d10core.%{winedll} -%{_sbindir}/alternatives --install %{_libdir}/wine/%{winepedir}/d3d11.%{winedll} \ - 'wine-d3d11%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-d3d11.%{winedll} 10 +%{_sbindir}/alternatives --install %{_libdir}/wine/%{winepedir}/d3d9.dll \ + 'wine-d3d9%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-d3d9.dll 10 +%{_sbindir}/alternatives --install %{_libdir}/wine/%{winepedir}/d3d10.dll \ + 'wine-d3d10%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-d3d10.dll 10 \ + --slave %{_libdir}/wine/%{winepedir}/d3d10_1.dll 'wine-d3d10_1%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-d3d10_1.dll \ + --slave %{_libdir}/wine/%{winepedir}/d3d10core.dll 'wine-d3d10core%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-d3d10core.dll +%{_sbindir}/alternatives --install %{_libdir}/wine/%{winepedir}/d3d11.dll \ + 'wine-d3d11%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-d3d11.dll 10 %postun core %{?ldconfig} @@ -1115,10 +1090,10 @@ if [ $1 -eq 0 ] ; then %{_sbindir}/alternatives --remove wine %{_bindir}/wine32 %{_sbindir}/alternatives --remove wineserver %{_bindir}/wineserver32 %endif - %{_sbindir}/alternatives --remove 'wine-dxgi%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-dxgi.%{winedll} - %{_sbindir}/alternatives --remove 'wine-d3d9%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-d3d9.%{winedll} - %{_sbindir}/alternatives --remove 'wine-d3d10%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-d3d10.%{winedll} - %{_sbindir}/alternatives --remove 'wine-d3d11%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-d3d11.%{winedll} + %{_sbindir}/alternatives --remove 'wine-dxgi%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-dxgi.dll + %{_sbindir}/alternatives --remove 'wine-d3d9%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-d3d9.dll + %{_sbindir}/alternatives --remove 'wine-d3d10%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-d3d10.dll + %{_sbindir}/alternatives --remove 'wine-d3d11%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-d3d11.dll fi %ldconfig_scriptlets ldap @@ -1153,26 +1128,26 @@ fi %{_bindir}/msidb %endif %{_bindir}/winedump -%{_libdir}/wine/%{winepedir}/explorer.%{wineexe} -%{_libdir}/wine/%{winepedir}/cabarc.%{wineexe} -%{_libdir}/wine/%{winepedir}/control.%{wineexe} -%{_libdir}/wine/%{winepedir}/cmd.%{wineexe} -%{_libdir}/wine/%{winepedir}/dxdiag.%{wineexe} -%{_libdir}/wine/%{winepedir}/notepad.%{wineexe} -%{_libdir}/wine/%{winepedir}/plugplay.%{wineexe} -%{_libdir}/wine/%{winepedir}/progman.%{wineexe} -%{_libdir}/wine/%{winepedir}/taskmgr.%{wineexe} -%{_libdir}/wine/%{winepedir}/winedbg.%{wineexe} +%{_libdir}/wine/%{winepedir}/explorer.exe +%{_libdir}/wine/%{winepedir}/cabarc.exe +%{_libdir}/wine/%{winepedir}/control.exe +%{_libdir}/wine/%{winepedir}/cmd.exe +%{_libdir}/wine/%{winepedir}/dxdiag.exe +%{_libdir}/wine/%{winepedir}/notepad.exe +%{_libdir}/wine/%{winepedir}/plugplay.exe +%{_libdir}/wine/%{winepedir}/progman.exe +%{_libdir}/wine/%{winepedir}/taskmgr.exe +%{_libdir}/wine/%{winepedir}/winedbg.exe %{_libdir}/wine/%{winesodir}/winedbg.exe.so -%{_libdir}/wine/%{winepedir}/winefile.%{wineexe} -%{_libdir}/wine/%{winepedir}/winemine.%{wineexe} -%{_libdir}/wine/%{winepedir}/winemsibuilder.%{wineexe} -%{_libdir}/wine/%{winepedir}/winepath.%{wineexe} -%{_libdir}/wine/%{winepedir}/winmgmt.%{wineexe} -%{_libdir}/wine/%{winepedir}/winver.%{wineexe} -%{_libdir}/wine/%{winepedir}/wordpad.%{wineexe} -%{_libdir}/wine/%{winepedir}/write.%{wineexe} -%{_libdir}/wine/%{winepedir}/wusa.%{wineexe} +%{_libdir}/wine/%{winepedir}/winefile.exe +%{_libdir}/wine/%{winepedir}/winemine.exe +%{_libdir}/wine/%{winepedir}/winemsibuilder.exe +%{_libdir}/wine/%{winepedir}/winepath.exe +%{_libdir}/wine/%{winepedir}/winmgmt.exe +%{_libdir}/wine/%{winepedir}/winver.exe +%{_libdir}/wine/%{winepedir}/wordpad.exe +%{_libdir}/wine/%{winepedir}/write.exe +%{_libdir}/wine/%{winepedir}/wusa.exe %ifarch %{ix86} %{arm} %{_bindir}/wine32 @@ -1200,1025 +1175,1025 @@ fi %dir %{_libdir}/wine -%{_libdir}/wine/%{winepedir}/attrib.%{wineexe} -%{_libdir}/wine/%{winepedir}/arp.%{wineexe} -%{_libdir}/wine/%{winepedir}/aspnet_regiis.%{wineexe} -%{_libdir}/wine/%{winepedir}/cacls.%{wineexe} -%{_libdir}/wine/%{winepedir}/conhost.%{wineexe} -%{_libdir}/wine/%{winepedir}/cscript.%{wineexe} -%{_libdir}/wine/%{winepedir}/dism.%{wineexe} -%{_libdir}/wine/%{winepedir}/dplaysvr.%{wineexe} -%{_libdir}/wine/%{winepedir}/dpnsvr.%{wineexe} -%{_libdir}/wine/%{winepedir}/dpvsetup.%{wineexe} -%{_libdir}/wine/%{winepedir}/eject.%{wineexe} -%{_libdir}/wine/%{winepedir}/expand.%{wineexe} -%{_libdir}/wine/%{winepedir}/extrac32.%{wineexe} -%{_libdir}/wine/%{winepedir}/fc.%{wineexe} -%{_libdir}/wine/%{winepedir}/find.%{wineexe} -%{_libdir}/wine/%{winepedir}/findstr.%{wineexe} -%{_libdir}/wine/%{winepedir}/fsutil.%{wineexe} -%{_libdir}/wine/%{winepedir}/hostname.%{wineexe} -%{_libdir}/wine/%{winepedir}/ipconfig.%{wineexe} -%{_libdir}/wine/%{winepedir}/winhlp32.%{wineexe} -%{_libdir}/wine/%{winepedir}/mshta.%{wineexe} +%{_libdir}/wine/%{winepedir}/attrib.exe +%{_libdir}/wine/%{winepedir}/arp.exe +%{_libdir}/wine/%{winepedir}/aspnet_regiis.exe +%{_libdir}/wine/%{winepedir}/cacls.exe +%{_libdir}/wine/%{winepedir}/conhost.exe +%{_libdir}/wine/%{winepedir}/cscript.exe +%{_libdir}/wine/%{winepedir}/dism.exe +%{_libdir}/wine/%{winepedir}/dplaysvr.exe +%{_libdir}/wine/%{winepedir}/dpnsvr.exe +%{_libdir}/wine/%{winepedir}/dpvsetup.exe +%{_libdir}/wine/%{winepedir}/eject.exe +%{_libdir}/wine/%{winepedir}/expand.exe +%{_libdir}/wine/%{winepedir}/extrac32.exe +%{_libdir}/wine/%{winepedir}/fc.exe +%{_libdir}/wine/%{winepedir}/find.exe +%{_libdir}/wine/%{winepedir}/findstr.exe +%{_libdir}/wine/%{winepedir}/fsutil.exe +%{_libdir}/wine/%{winepedir}/hostname.exe +%{_libdir}/wine/%{winepedir}/ipconfig.exe +%{_libdir}/wine/%{winepedir}/winhlp32.exe +%{_libdir}/wine/%{winepedir}/mshta.exe %if 0%{?wine_staging} -%{_libdir}/wine/%{winepedir}/msidb.%{wineexe} -%endif -%{_libdir}/wine/%{winepedir}/msiexec.%{wineexe} -%{_libdir}/wine/%{winepedir}/net.%{wineexe} -%{_libdir}/wine/%{winepedir}/netstat.%{wineexe} -%{_libdir}/wine/%{winepedir}/ngen.%{wineexe} -%{_libdir}/wine/%{winepedir}/ntoskrnl.%{wineexe} -%{_libdir}/wine/%{winepedir}/oleview.%{wineexe} -%{_libdir}/wine/%{winepedir}/ping.%{wineexe} -%{_libdir}/wine/%{winepedir}/powershell.%{wineexe} -%{_libdir}/wine/%{winepedir}/reg.%{wineexe} -%{_libdir}/wine/%{winepedir}/regasm.%{wineexe} -%{_libdir}/wine/%{winepedir}/regedit.%{wineexe} -%{_libdir}/wine/%{winepedir}/regsvcs.%{wineexe} -%{_libdir}/wine/%{winepedir}/regsvr32.%{wineexe} -%{_libdir}/wine/%{winepedir}/rpcss.%{wineexe} -%{_libdir}/wine/%{winepedir}/rundll32.%{wineexe} -%{_libdir}/wine/%{winepedir}/schtasks.%{wineexe} -%{_libdir}/wine/%{winepedir}/sdbinst.%{wineexe} -%{_libdir}/wine/%{winepedir}/secedit.%{wineexe} -%{_libdir}/wine/%{winepedir}/servicemodelreg.%{wineexe} -%{_libdir}/wine/%{winepedir}/services.%{wineexe} -%{_libdir}/wine/%{winepedir}/start.%{wineexe} -%{_libdir}/wine/%{winepedir}/tasklist.%{wineexe} -%{_libdir}/wine/%{winepedir}/termsv.%{wineexe} -%{_libdir}/wine/%{winepedir}/view.%{wineexe} -%{_libdir}/wine/%{winepedir}/wevtutil.%{wineexe} -%{_libdir}/wine/%{winepedir}/where.%{wineexe} -%{_libdir}/wine/%{winepedir}/whoami.%{wineexe} -%{_libdir}/wine/%{winepedir}/wineboot.%{wineexe} -%{_libdir}/wine/%{winepedir}/winebrowser.%{wineexe} +%{_libdir}/wine/%{winepedir}/msidb.exe +%endif +%{_libdir}/wine/%{winepedir}/msiexec.exe +%{_libdir}/wine/%{winepedir}/net.exe +%{_libdir}/wine/%{winepedir}/netstat.exe +%{_libdir}/wine/%{winepedir}/ngen.exe +%{_libdir}/wine/%{winepedir}/ntoskrnl.exe +%{_libdir}/wine/%{winepedir}/oleview.exe +%{_libdir}/wine/%{winepedir}/ping.exe +%{_libdir}/wine/%{winepedir}/powershell.exe +%{_libdir}/wine/%{winepedir}/reg.exe +%{_libdir}/wine/%{winepedir}/regasm.exe +%{_libdir}/wine/%{winepedir}/regedit.exe +%{_libdir}/wine/%{winepedir}/regsvcs.exe +%{_libdir}/wine/%{winepedir}/regsvr32.exe +%{_libdir}/wine/%{winepedir}/rpcss.exe +%{_libdir}/wine/%{winepedir}/rundll32.exe +%{_libdir}/wine/%{winepedir}/schtasks.exe +%{_libdir}/wine/%{winepedir}/sdbinst.exe +%{_libdir}/wine/%{winepedir}/secedit.exe +%{_libdir}/wine/%{winepedir}/servicemodelreg.exe +%{_libdir}/wine/%{winepedir}/services.exe +%{_libdir}/wine/%{winepedir}/start.exe +%{_libdir}/wine/%{winepedir}/tasklist.exe +%{_libdir}/wine/%{winepedir}/termsv.exe +%{_libdir}/wine/%{winepedir}/view.exe +%{_libdir}/wine/%{winepedir}/wevtutil.exe +%{_libdir}/wine/%{winepedir}/where.exe +%{_libdir}/wine/%{winepedir}/whoami.exe +%{_libdir}/wine/%{winepedir}/wineboot.exe +%{_libdir}/wine/%{winepedir}/winebrowser.exe %{_libdir}/wine/%{winesodir}/winebrowser.exe.so -%{_libdir}/wine/%{winepedir}/wineconsole.%{wineexe} -%{_libdir}/wine/%{winepedir}/winemenubuilder.%{wineexe} +%{_libdir}/wine/%{winepedir}/wineconsole.exe +%{_libdir}/wine/%{winepedir}/winemenubuilder.exe %{_libdir}/wine/%{winesodir}/winemenubuilder.exe.so -%{_libdir}/wine/%{winepedir}/winecfg.%{wineexe} +%{_libdir}/wine/%{winepedir}/winecfg.exe %{_libdir}/wine/%{winesodir}/winecfg.exe.so -%{_libdir}/wine/%{winepedir}/winedevice.%{wineexe} -%{_libdir}/wine/%{winepedir}/wmplayer.%{wineexe} -%{_libdir}/wine/%{winepedir}/wscript.%{wineexe} -%{_libdir}/wine/%{winepedir}/uninstaller.%{wineexe} +%{_libdir}/wine/%{winepedir}/winedevice.exe +%{_libdir}/wine/%{winepedir}/wmplayer.exe +%{_libdir}/wine/%{winepedir}/wscript.exe +%{_libdir}/wine/%{winepedir}/uninstaller.exe %{_libdir}/wine/%{winesodir}/libwine.so.1* -%{_libdir}/wine/%{winepedir}/acledit.%{winedll} -%{_libdir}/wine/%{winepedir}/aclui.%{winedll} -%{_libdir}/wine/%{winepedir}/activeds.%{winedll} -%{_libdir}/wine/%{winepedir}/activeds.%{winetlb} -%{_libdir}/wine/%{winepedir}/actxprxy.%{winedll} -%{_libdir}/wine/%{winepedir}/adsldp.%{winedll} -%{_libdir}/wine/%{winepedir}/adsldpc.%{winedll} -%{_libdir}/wine/%{winepedir}/advapi32.%{winedll} -%{_libdir}/wine/%{winepedir}/advpack.%{winedll} -%{_libdir}/wine/%{winepedir}/amsi.%{winedll} -%{_libdir}/wine/%{winepedir}/amstream.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-appmodel-identity-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-appmodel-runtime-l1-1-1.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-appmodel-runtime-l1-1-2.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-apiquery-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-appcompat-l1-1-1.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-appinit-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-atoms-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-bem-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-com-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-com-l1-1-1.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-com-private-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-comm-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-console-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-console-l1-2-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-console-l2-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-crt-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-crt-l2-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-datetime-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-datetime-l1-1-1.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-debug-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-debug-l1-1-1.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-delayload-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-delayload-l1-1-1.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-errorhandling-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-errorhandling-l1-1-1.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-errorhandling-l1-1-2.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-errorhandling-l1-1-3.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-fibers-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-fibers-l1-1-1.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-file-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-file-l1-2-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-file-l1-2-1.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-file-l1-2-2.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-file-l2-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-file-l2-1-1.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-file-l2-1-2.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-file-ansi-l2-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-file-fromapp-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-handle-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-heap-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-heap-l1-2-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-heap-l2-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-heap-obsolete-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-interlocked-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-interlocked-l1-2-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-io-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-io-l1-1-1.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-job-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-job-l2-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-largeinteger-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-kernel32-legacy-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-kernel32-legacy-l1-1-1.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-kernel32-legacy-l1-1-2.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-kernel32-private-l1-1-1.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-libraryloader-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-libraryloader-l1-1-1.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-libraryloader-l1-2-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-libraryloader-l1-2-1.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-libraryloader-l1-2-2.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-libraryloader-l2-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-localization-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-localization-l1-2-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-localization-l1-2-1.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-localization-l1-2-2.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-localization-l2-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-localization-obsolete-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-localization-obsolete-l1-2-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-localization-obsolete-l1-3-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-localization-private-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-localregistry-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-memory-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-memory-l1-1-1.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-memory-l1-1-2.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-memory-l1-1-3.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-memory-l1-1-4.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-misc-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-namedpipe-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-namedpipe-l1-2-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-namedpipe-ansi-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-namespace-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-normalization-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-path-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-privateprofile-l1-1-1.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-processenvironment-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-processenvironment-l1-2-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-processthreads-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-processthreads-l1-1-1.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-processthreads-l1-1-2.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-processthreads-l1-1-3.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-processtopology-obsolete-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-profile-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-psapi-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-psapi-ansi-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-psapi-obsolete-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-quirks-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-realtime-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-registry-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-registry-l2-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-registry-l2-2-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-registryuserspecific-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-rtlsupport-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-rtlsupport-l1-2-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-shlwapi-legacy-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-shlwapi-obsolete-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-shlwapi-obsolete-l1-2-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-shutdown-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-sidebyside-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-string-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-string-l2-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-string-obsolete-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-stringansi-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-stringloader-l1-1-1.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-synch-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-synch-l1-2-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-synch-l1-2-1.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-synch-ansi-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-sysinfo-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-sysinfo-l1-2-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-sysinfo-l1-2-1.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-systemtopology-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-threadpool-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-threadpool-l1-2-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-threadpool-legacy-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-threadpool-private-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-timezone-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-toolhelp-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-url-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-util-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-version-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-version-l1-1-1.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-version-private-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-versionansi-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-windowserrorreporting-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-winrt-error-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-winrt-error-l1-1-1.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-winrt-errorprivate-l1-1-1.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-winrt-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-winrt-registration-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-winrt-roparameterizediid-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-winrt-string-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-winrt-string-l1-1-1.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-wow64-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-wow64-l1-1-1.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-xstate-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-core-xstate-l2-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-crt-conio-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-crt-convert-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-crt-environment-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-crt-filesystem-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-crt-heap-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-crt-locale-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-crt-math-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-crt-multibyte-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-crt-private-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-crt-process-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-crt-runtime-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-crt-stdio-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-crt-string-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-crt-time-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-crt-utility-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-devices-config-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-devices-config-l1-1-1.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-devices-query-l1-1-1.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-downlevel-advapi32-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-downlevel-advapi32-l2-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-downlevel-kernel32-l2-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-downlevel-normaliz-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-downlevel-ole32-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-downlevel-shell32-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-downlevel-shlwapi-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-downlevel-shlwapi-l2-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-downlevel-user32-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-downlevel-version-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-dx-d3dkmt-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-eventing-classicprovider-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-eventing-consumer-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-eventing-controller-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-eventing-legacy-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-eventing-provider-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-eventlog-legacy-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-gaming-tcui-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-gdi-dpiinfo-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-mm-joystick-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-mm-misc-l1-1-1.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-mm-mme-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-mm-time-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-ntuser-dc-access-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-ntuser-rectangle-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-ntuser-sysparams-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-perf-legacy-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-power-base-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-power-setting-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-rtcore-ntuser-draw-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-rtcore-ntuser-private-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-rtcore-ntuser-private-l1-1-4.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-rtcore-ntuser-window-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-rtcore-ntuser-winevent-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-rtcore-ntuser-wmpointer-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-rtcore-ntuser-wmpointer-l1-1-3.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-security-activedirectoryclient-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-security-audit-l1-1-1.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-security-base-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-security-base-l1-2-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-security-base-private-l1-1-1.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-security-credentials-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-security-cryptoapi-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-security-grouppolicy-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-security-lsalookup-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-security-lsalookup-l1-1-1.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-security-lsalookup-l2-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-security-lsalookup-l2-1-1.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-security-lsapolicy-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-security-provider-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-security-sddl-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-security-systemfunctions-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-service-core-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-service-core-l1-1-1.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-service-management-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-service-management-l2-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-service-private-l1-1-1.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-service-winsvc-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-service-winsvc-l1-2-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-shcore-obsolete-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-shcore-scaling-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-shcore-scaling-l1-1-1.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-shcore-stream-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-shcore-stream-winrt-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-shcore-thread-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-shell-shellcom-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/api-ms-win-shell-shellfolders-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/apphelp.%{winedll} -%{_libdir}/wine/%{winepedir}/appwiz.%{winecpl} -%{_libdir}/wine/%{winepedir}/atl.%{winedll} -%{_libdir}/wine/%{winepedir}/atl80.%{winedll} -%{_libdir}/wine/%{winepedir}/atl90.%{winedll} -%{_libdir}/wine/%{winepedir}/atl100.%{winedll} -%{_libdir}/wine/%{winepedir}/atl110.%{winedll} -%{_libdir}/wine/%{winepedir}/atlthunk.%{winedll} -%{_libdir}/wine/%{winepedir}/atmlib.%{winedll} -%{_libdir}/wine/%{winepedir}/authz.%{winedll} -%{_libdir}/wine/%{winepedir}/avicap32.%{winedll} +%{_libdir}/wine/%{winepedir}/acledit.dll +%{_libdir}/wine/%{winepedir}/aclui.dll +%{_libdir}/wine/%{winepedir}/activeds.dll +%{_libdir}/wine/%{winepedir}/activeds.tlb +%{_libdir}/wine/%{winepedir}/actxprxy.dll +%{_libdir}/wine/%{winepedir}/adsldp.dll +%{_libdir}/wine/%{winepedir}/adsldpc.dll +%{_libdir}/wine/%{winepedir}/advapi32.dll +%{_libdir}/wine/%{winepedir}/advpack.dll +%{_libdir}/wine/%{winepedir}/amsi.dll +%{_libdir}/wine/%{winepedir}/amstream.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-appmodel-identity-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-appmodel-runtime-l1-1-1.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-appmodel-runtime-l1-1-2.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-apiquery-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-appcompat-l1-1-1.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-appinit-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-atoms-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-bem-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-com-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-com-l1-1-1.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-com-private-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-comm-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-console-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-console-l1-2-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-console-l2-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-crt-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-crt-l2-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-datetime-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-datetime-l1-1-1.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-debug-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-debug-l1-1-1.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-delayload-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-delayload-l1-1-1.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-errorhandling-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-errorhandling-l1-1-1.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-errorhandling-l1-1-2.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-errorhandling-l1-1-3.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-fibers-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-fibers-l1-1-1.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-file-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-file-l1-2-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-file-l1-2-1.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-file-l1-2-2.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-file-l2-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-file-l2-1-1.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-file-l2-1-2.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-file-ansi-l2-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-file-fromapp-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-handle-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-heap-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-heap-l1-2-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-heap-l2-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-heap-obsolete-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-interlocked-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-interlocked-l1-2-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-io-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-io-l1-1-1.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-job-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-job-l2-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-largeinteger-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-kernel32-legacy-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-kernel32-legacy-l1-1-1.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-kernel32-legacy-l1-1-2.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-kernel32-private-l1-1-1.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-libraryloader-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-libraryloader-l1-1-1.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-libraryloader-l1-2-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-libraryloader-l1-2-1.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-libraryloader-l1-2-2.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-libraryloader-l2-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-localization-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-localization-l1-2-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-localization-l1-2-1.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-localization-l1-2-2.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-localization-l2-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-localization-obsolete-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-localization-obsolete-l1-2-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-localization-obsolete-l1-3-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-localization-private-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-localregistry-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-memory-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-memory-l1-1-1.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-memory-l1-1-2.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-memory-l1-1-3.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-memory-l1-1-4.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-misc-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-namedpipe-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-namedpipe-l1-2-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-namedpipe-ansi-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-namespace-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-normalization-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-path-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-privateprofile-l1-1-1.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-processenvironment-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-processenvironment-l1-2-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-processthreads-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-processthreads-l1-1-1.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-processthreads-l1-1-2.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-processthreads-l1-1-3.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-processtopology-obsolete-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-profile-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-psapi-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-psapi-ansi-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-psapi-obsolete-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-quirks-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-realtime-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-registry-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-registry-l2-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-registry-l2-2-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-registryuserspecific-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-rtlsupport-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-rtlsupport-l1-2-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-shlwapi-legacy-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-shlwapi-obsolete-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-shlwapi-obsolete-l1-2-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-shutdown-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-sidebyside-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-string-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-string-l2-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-string-obsolete-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-stringansi-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-stringloader-l1-1-1.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-synch-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-synch-l1-2-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-synch-l1-2-1.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-synch-ansi-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-sysinfo-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-sysinfo-l1-2-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-sysinfo-l1-2-1.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-systemtopology-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-threadpool-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-threadpool-l1-2-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-threadpool-legacy-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-threadpool-private-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-timezone-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-toolhelp-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-url-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-util-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-version-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-version-l1-1-1.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-version-private-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-versionansi-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-windowserrorreporting-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-winrt-error-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-winrt-error-l1-1-1.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-winrt-errorprivate-l1-1-1.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-winrt-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-winrt-registration-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-winrt-string-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-winrt-string-l1-1-1.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-wow64-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-wow64-l1-1-1.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-xstate-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-xstate-l2-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-crt-conio-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-crt-convert-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-crt-environment-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-crt-filesystem-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-crt-heap-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-crt-locale-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-crt-math-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-crt-multibyte-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-crt-private-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-crt-process-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-crt-runtime-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-crt-stdio-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-crt-string-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-crt-time-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-crt-utility-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-devices-config-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-devices-config-l1-1-1.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-devices-query-l1-1-1.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-downlevel-advapi32-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-downlevel-advapi32-l2-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-downlevel-kernel32-l2-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-downlevel-normaliz-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-downlevel-ole32-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-downlevel-shell32-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-downlevel-shlwapi-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-downlevel-shlwapi-l2-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-downlevel-user32-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-downlevel-version-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-dx-d3dkmt-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-eventing-classicprovider-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-eventing-consumer-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-eventing-controller-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-eventing-legacy-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-eventing-provider-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-eventlog-legacy-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-gaming-tcui-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-gdi-dpiinfo-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-mm-joystick-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-mm-misc-l1-1-1.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-mm-mme-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-mm-time-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-ntuser-dc-access-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-ntuser-rectangle-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-ntuser-sysparams-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-perf-legacy-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-power-base-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-power-setting-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-rtcore-ntuser-draw-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-rtcore-ntuser-private-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-rtcore-ntuser-private-l1-1-4.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-rtcore-ntuser-window-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-rtcore-ntuser-winevent-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-rtcore-ntuser-wmpointer-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-rtcore-ntuser-wmpointer-l1-1-3.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-security-activedirectoryclient-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-security-audit-l1-1-1.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-security-base-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-security-base-l1-2-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-security-base-private-l1-1-1.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-security-credentials-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-security-cryptoapi-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-security-grouppolicy-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-security-lsalookup-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-security-lsalookup-l1-1-1.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-security-lsalookup-l2-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-security-lsalookup-l2-1-1.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-security-lsapolicy-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-security-provider-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-security-sddl-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-security-systemfunctions-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-service-core-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-service-core-l1-1-1.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-service-management-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-service-management-l2-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-service-private-l1-1-1.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-service-winsvc-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-service-winsvc-l1-2-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-shcore-obsolete-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-shcore-scaling-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-shcore-scaling-l1-1-1.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-shcore-stream-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-shcore-stream-winrt-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-shcore-thread-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-shell-shellcom-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-shell-shellfolders-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/apphelp.dll +%{_libdir}/wine/%{winepedir}/appwiz.cpl +%{_libdir}/wine/%{winepedir}/atl.dll +%{_libdir}/wine/%{winepedir}/atl80.dll +%{_libdir}/wine/%{winepedir}/atl90.dll +%{_libdir}/wine/%{winepedir}/atl100.dll +%{_libdir}/wine/%{winepedir}/atl110.dll +%{_libdir}/wine/%{winepedir}/atlthunk.dll +%{_libdir}/wine/%{winepedir}/atmlib.dll +%{_libdir}/wine/%{winepedir}/authz.dll +%{_libdir}/wine/%{winepedir}/avicap32.dll %{_libdir}/wine/%{winesodir}/avicap32.dll.so -%{_libdir}/wine/%{winepedir}/avifil32.%{winedll} -%{_libdir}/wine/%{winepedir}/avrt.%{winedll} +%{_libdir}/wine/%{winepedir}/avifil32.dll +%{_libdir}/wine/%{winepedir}/avrt.dll %{_libdir}/wine/%{winesodir}/bcrypt.so -%{_libdir}/wine/%{winepedir}/bcrypt.%{winedll} -%{_libdir}/wine/%{winepedir}/bluetoothapis.%{winedll} -%{_libdir}/wine/%{winepedir}/browseui.%{winedll} -%{_libdir}/wine/%{winepedir}/bthprops.%{winecpl} -%{_libdir}/wine/%{winepedir}/cabinet.%{winedll} -%{_libdir}/wine/%{winepedir}/cards.%{winedll} -%{_libdir}/wine/%{winepedir}/cdosys.%{winedll} -%{_libdir}/wine/%{winepedir}/cfgmgr32.%{winedll} -%{_libdir}/wine/%{winepedir}/chcp.%{winecom} -%{_libdir}/wine/%{winepedir}/clock.%{wineexe} -%{_libdir}/wine/%{winepedir}/clusapi.%{winedll} -%{_libdir}/wine/%{winepedir}/combase.%{winedll} -%{_libdir}/wine/%{winepedir}/comcat.%{winedll} -%{_libdir}/wine/%{winepedir}/comctl32.%{winedll} -%{_libdir}/wine/%{winepedir}/comdlg32.%{winedll} -%{_libdir}/wine/%{winepedir}/compstui.%{winedll} -%{_libdir}/wine/%{winepedir}/comsvcs.%{winedll} -%{_libdir}/wine/%{winepedir}/concrt140.%{winedll} -%{_libdir}/wine/%{winepedir}/connect.%{winedll} -%{_libdir}/wine/%{winepedir}/credui.%{winedll} +%{_libdir}/wine/%{winepedir}/bcrypt.dll +%{_libdir}/wine/%{winepedir}/bluetoothapis.dll +%{_libdir}/wine/%{winepedir}/browseui.dll +%{_libdir}/wine/%{winepedir}/bthprops.cpl +%{_libdir}/wine/%{winepedir}/cabinet.dll +%{_libdir}/wine/%{winepedir}/cards.dll +%{_libdir}/wine/%{winepedir}/cdosys.dll +%{_libdir}/wine/%{winepedir}/cfgmgr32.dll +%{_libdir}/wine/%{winepedir}/chcp.com +%{_libdir}/wine/%{winepedir}/clock.exe +%{_libdir}/wine/%{winepedir}/clusapi.dll +%{_libdir}/wine/%{winepedir}/combase.dll +%{_libdir}/wine/%{winepedir}/comcat.dll +%{_libdir}/wine/%{winepedir}/comctl32.dll +%{_libdir}/wine/%{winepedir}/comdlg32.dll +%{_libdir}/wine/%{winepedir}/compstui.dll +%{_libdir}/wine/%{winepedir}/comsvcs.dll +%{_libdir}/wine/%{winepedir}/concrt140.dll +%{_libdir}/wine/%{winepedir}/connect.dll +%{_libdir}/wine/%{winepedir}/credui.dll %{_libdir}/wine/%{winesodir}/crtdll.so -%{_libdir}/wine/%{winepedir}/crtdll.%{winedll} +%{_libdir}/wine/%{winepedir}/crtdll.dll %{_libdir}/wine/%{winesodir}/crypt32.so -%{_libdir}/wine/%{winepedir}/crypt32.%{winedll} -%{_libdir}/wine/%{winepedir}/cryptdlg.%{winedll} -%{_libdir}/wine/%{winepedir}/cryptdll.%{winedll} -%{_libdir}/wine/%{winepedir}/cryptext.%{winedll} -%{_libdir}/wine/%{winepedir}/cryptnet.%{winedll} -%{_libdir}/wine/%{winepedir}/cryptsp.%{winedll} -%{_libdir}/wine/%{winepedir}/cryptui.%{winedll} -%{_libdir}/wine/%{winepedir}/ctapi32.%{winedll} +%{_libdir}/wine/%{winepedir}/crypt32.dll +%{_libdir}/wine/%{winepedir}/cryptdlg.dll +%{_libdir}/wine/%{winepedir}/cryptdll.dll +%{_libdir}/wine/%{winepedir}/cryptext.dll +%{_libdir}/wine/%{winepedir}/cryptnet.dll +%{_libdir}/wine/%{winepedir}/cryptsp.dll +%{_libdir}/wine/%{winepedir}/cryptui.dll +%{_libdir}/wine/%{winepedir}/ctapi32.dll %{_libdir}/wine/%{winesodir}/ctapi32.dll.so -%{_libdir}/wine/%{winepedir}/ctl3d32.%{winedll} -%{_libdir}/wine/%{winepedir}/d2d1.%{winedll} -%ghost %{_libdir}/wine/%{winepedir}/d3d10.%{winedll} -%ghost %{_libdir}/wine/%{winepedir}/d3d10_1.%{winedll} -%ghost %{_libdir}/wine/%{winepedir}/d3d10core.%{winedll} -%{_libdir}/wine/%{winepedir}/wine-d3d10.%{winedll} -%{_libdir}/wine/%{winepedir}/wine-d3d10_1.%{winedll} -%{_libdir}/wine/%{winepedir}/wine-d3d10core.%{winedll} -%ghost %{_libdir}/wine/%{winepedir}/d3d11.%{winedll} -%{_libdir}/wine/%{winepedir}/wine-d3d11.%{winedll} -%{_libdir}/wine/%{winepedir}/d3d12.%{winedll} +%{_libdir}/wine/%{winepedir}/ctl3d32.dll +%{_libdir}/wine/%{winepedir}/d2d1.dll +%ghost %{_libdir}/wine/%{winepedir}/d3d10.dll +%ghost %{_libdir}/wine/%{winepedir}/d3d10_1.dll +%ghost %{_libdir}/wine/%{winepedir}/d3d10core.dll +%{_libdir}/wine/%{winepedir}/wine-d3d10.dll +%{_libdir}/wine/%{winepedir}/wine-d3d10_1.dll +%{_libdir}/wine/%{winepedir}/wine-d3d10core.dll +%ghost %{_libdir}/wine/%{winepedir}/d3d11.dll +%{_libdir}/wine/%{winepedir}/wine-d3d11.dll +%{_libdir}/wine/%{winepedir}/d3d12.dll %{_libdir}/wine/%{winesodir}/d3d12.dll.so -%{_libdir}/wine/%{winepedir}/d3dcompiler_*.%{winedll} -%{_libdir}/wine/%{winepedir}/d3dim.%{winedll} -%{_libdir}/wine/%{winepedir}/d3dim700.%{winedll} -%{_libdir}/wine/%{winepedir}/d3drm.%{winedll} -%{_libdir}/wine/%{winepedir}/d3dx9_*.%{winedll} -%{_libdir}/wine/%{winepedir}/d3dx10_*.%{winedll} -%{_libdir}/wine/%{winepedir}/d3dx11_42.%{winedll} -%{_libdir}/wine/%{winepedir}/d3dx11_43.%{winedll} -%{_libdir}/wine/%{winepedir}/d3dxof.%{winedll} -%{_libdir}/wine/%{winepedir}/davclnt.%{winedll} -%{_libdir}/wine/%{winepedir}/dbgeng.%{winedll} -%{_libdir}/wine/%{winepedir}/dbghelp.%{winedll} -%{_libdir}/wine/%{winepedir}/dciman32.%{winedll} -%{_libdir}/wine/%{winepedir}/dcomp.%{winedll} -%{_libdir}/wine/%{winepedir}/ddraw.%{winedll} -%{_libdir}/wine/%{winepedir}/ddrawex.%{winedll} -%{_libdir}/wine/%{winepedir}/devenum.%{winedll} -%{_libdir}/wine/%{winepedir}/dhcpcsvc.%{winedll} -%{_libdir}/wine/%{winepedir}/dhtmled.%{wineocx} -%{_libdir}/wine/%{winepedir}/difxapi.%{winedll} -%{_libdir}/wine/%{winepedir}/dinput.%{winedll} +%{_libdir}/wine/%{winepedir}/d3dcompiler_*.dll +%{_libdir}/wine/%{winepedir}/d3dim.dll +%{_libdir}/wine/%{winepedir}/d3dim700.dll +%{_libdir}/wine/%{winepedir}/d3drm.dll +%{_libdir}/wine/%{winepedir}/d3dx9_*.dll +%{_libdir}/wine/%{winepedir}/d3dx10_*.dll +%{_libdir}/wine/%{winepedir}/d3dx11_42.dll +%{_libdir}/wine/%{winepedir}/d3dx11_43.dll +%{_libdir}/wine/%{winepedir}/d3dxof.dll +%{_libdir}/wine/%{winepedir}/davclnt.dll +%{_libdir}/wine/%{winepedir}/dbgeng.dll +%{_libdir}/wine/%{winepedir}/dbghelp.dll +%{_libdir}/wine/%{winepedir}/dciman32.dll +%{_libdir}/wine/%{winepedir}/dcomp.dll +%{_libdir}/wine/%{winepedir}/ddraw.dll +%{_libdir}/wine/%{winepedir}/ddrawex.dll +%{_libdir}/wine/%{winepedir}/devenum.dll +%{_libdir}/wine/%{winepedir}/dhcpcsvc.dll +%{_libdir}/wine/%{winepedir}/dhtmled.ocx +%{_libdir}/wine/%{winepedir}/difxapi.dll +%{_libdir}/wine/%{winepedir}/dinput.dll %{_libdir}/wine/%{winesodir}/dinput.dll.so -%{_libdir}/wine/%{winepedir}/dinput8.%{winedll} +%{_libdir}/wine/%{winepedir}/dinput8.dll %{_libdir}/wine/%{winesodir}/dinput8.dll.so -%{_libdir}/wine/%{winepedir}/directmanipulation.%{winedll} -%{_libdir}/wine/%{winepedir}/dispex.%{winedll} -%{_libdir}/wine/%{winepedir}/dmband.%{winedll} -%{_libdir}/wine/%{winepedir}/dmcompos.%{winedll} -%{_libdir}/wine/%{winepedir}/dmime.%{winedll} -%{_libdir}/wine/%{winepedir}/dmloader.%{winedll} -%{_libdir}/wine/%{winepedir}/dmscript.%{winedll} -%{_libdir}/wine/%{winepedir}/dmstyle.%{winedll} -%{_libdir}/wine/%{winepedir}/dmsynth.%{winedll} -%{_libdir}/wine/%{winepedir}/dmusic.%{winedll} -%{_libdir}/wine/%{winepedir}/dmusic32.%{winedll} -%{_libdir}/wine/%{winepedir}/dplay.%{winedll} -%{_libdir}/wine/%{winepedir}/dplayx.%{winedll} -%{_libdir}/wine/%{winepedir}/dpnaddr.%{winedll} -%{_libdir}/wine/%{winepedir}/dpnet.%{winedll} -%{_libdir}/wine/%{winepedir}/dpnhpast.%{winedll} -%{_libdir}/wine/%{winepedir}/dpnlobby.%{winedll} -%{_libdir}/wine/%{winepedir}/dpvoice.%{winedll} -%{_libdir}/wine/%{winepedir}/dpwsockx.%{winedll} -%{_libdir}/wine/%{winepedir}/drmclien.%{winedll} -%{_libdir}/wine/%{winepedir}/dsound.%{winedll} -%{_libdir}/wine/%{winepedir}/dsdmo.%{winedll} -%{_libdir}/wine/%{winepedir}/dsquery.%{winedll} -%{_libdir}/wine/%{winepedir}/dssenh.%{winedll} -%{_libdir}/wine/%{winepedir}/dsuiext.%{winedll} -%{_libdir}/wine/%{winepedir}/dswave.%{winedll} -%{_libdir}/wine/%{winepedir}/dwmapi.%{winedll} -%{_libdir}/wine/%{winepedir}/dwrite.%{winedll} +%{_libdir}/wine/%{winepedir}/directmanipulation.dll +%{_libdir}/wine/%{winepedir}/dispex.dll +%{_libdir}/wine/%{winepedir}/dmband.dll +%{_libdir}/wine/%{winepedir}/dmcompos.dll +%{_libdir}/wine/%{winepedir}/dmime.dll +%{_libdir}/wine/%{winepedir}/dmloader.dll +%{_libdir}/wine/%{winepedir}/dmscript.dll +%{_libdir}/wine/%{winepedir}/dmstyle.dll +%{_libdir}/wine/%{winepedir}/dmsynth.dll +%{_libdir}/wine/%{winepedir}/dmusic.dll +%{_libdir}/wine/%{winepedir}/dmusic32.dll +%{_libdir}/wine/%{winepedir}/dplay.dll +%{_libdir}/wine/%{winepedir}/dplayx.dll +%{_libdir}/wine/%{winepedir}/dpnaddr.dll +%{_libdir}/wine/%{winepedir}/dpnet.dll +%{_libdir}/wine/%{winepedir}/dpnhpast.dll +%{_libdir}/wine/%{winepedir}/dpnlobby.dll +%{_libdir}/wine/%{winepedir}/dpvoice.dll +%{_libdir}/wine/%{winepedir}/dpwsockx.dll +%{_libdir}/wine/%{winepedir}/drmclien.dll +%{_libdir}/wine/%{winepedir}/dsound.dll +%{_libdir}/wine/%{winepedir}/dsdmo.dll +%{_libdir}/wine/%{winepedir}/dsquery.dll +%{_libdir}/wine/%{winepedir}/dssenh.dll +%{_libdir}/wine/%{winepedir}/dsuiext.dll +%{_libdir}/wine/%{winepedir}/dswave.dll +%{_libdir}/wine/%{winepedir}/dwmapi.dll +%{_libdir}/wine/%{winepedir}/dwrite.dll %{_libdir}/wine/%{winesodir}/dwrite.so -%{_libdir}/wine/%{winepedir}/dx8vb.%{winedll} -%{_libdir}/wine/%{winepedir}/dxdiagn.%{winedll} -%ghost %{_libdir}/wine/%{winepedir}/dxgi.%{winedll} -%{_libdir}/wine/%{winepedir}/wine-dxgi.%{winedll} +%{_libdir}/wine/%{winepedir}/dx8vb.dll +%{_libdir}/wine/%{winepedir}/dxdiagn.dll +%ghost %{_libdir}/wine/%{winepedir}/dxgi.dll +%{_libdir}/wine/%{winepedir}/wine-dxgi.dll %ghost %{_libdir}/wine/%{winesodir}/dxgi.dll.so %{_libdir}/wine/%{winesodir}/wine-dxgi.dll.so -%{_libdir}/wine/%{winepedir}/dxgkrnl.%{winesys} -%{_libdir}/wine/%{winepedir}/dxgmms1.%{winesys} -%{_libdir}/wine/%{winepedir}/dxva2.%{winedll} -%{_libdir}/wine/%{winepedir}/esent.%{winedll} -%{_libdir}/wine/%{winepedir}/evr.%{winedll} -%{_libdir}/wine/%{winepedir}/explorerframe.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-authz-context-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-domainjoin-netjoin-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-dwmapi-ext-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-gdi-dc-l1-2-0.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-gdi-dc-create-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-gdi-dc-create-l1-1-1.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-gdi-devcaps-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-gdi-draw-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-gdi-draw-l1-1-1.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-gdi-font-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-gdi-font-l1-1-1.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-gdi-render-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-kernel32-package-l1-1-1.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-kernel32-package-current-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-dialogbox-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-draw-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-gui-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-gui-l1-3-0.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-keyboard-l1-3-0.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-misc-l1-2-0.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-misc-l1-5-1.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-message-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-message-l1-1-1.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-misc-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-mouse-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-private-l1-1-1.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-private-l1-3-1.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-rectangle-ext-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-uicontext-ext-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-window-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-window-l1-1-1.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-window-l1-1-4.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-windowclass-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-windowclass-l1-1-1.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-oleacc-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-ras-rasapi32-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-rtcore-gdi-devcaps-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-rtcore-gdi-object-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-rtcore-gdi-rgn-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-rtcore-ntuser-cursor-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-rtcore-ntuser-dc-access-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-rtcore-ntuser-dpi-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-rtcore-ntuser-dpi-l1-2-0.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-rtcore-ntuser-rawinput-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-rtcore-ntuser-syscolors-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-rtcore-ntuser-sysparams-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-security-credui-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-security-cryptui-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-shell-comctl32-init-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-shell-comdlg32-l1-1-0.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-shell-shell32-l1-2-0.%{winedll} -%{_libdir}/wine/%{winepedir}/ext-ms-win-uxtheme-themes-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/dxgkrnl.sys +%{_libdir}/wine/%{winepedir}/dxgmms1.sys +%{_libdir}/wine/%{winepedir}/dxva2.dll +%{_libdir}/wine/%{winepedir}/esent.dll +%{_libdir}/wine/%{winepedir}/evr.dll +%{_libdir}/wine/%{winepedir}/explorerframe.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-authz-context-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-domainjoin-netjoin-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-dwmapi-ext-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-gdi-dc-l1-2-0.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-gdi-dc-create-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-gdi-dc-create-l1-1-1.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-gdi-devcaps-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-gdi-draw-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-gdi-draw-l1-1-1.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-gdi-font-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-gdi-font-l1-1-1.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-gdi-render-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-kernel32-package-l1-1-1.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-kernel32-package-current-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-dialogbox-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-draw-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-gui-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-gui-l1-3-0.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-keyboard-l1-3-0.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-misc-l1-2-0.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-misc-l1-5-1.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-message-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-message-l1-1-1.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-misc-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-mouse-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-private-l1-1-1.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-private-l1-3-1.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-rectangle-ext-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-uicontext-ext-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-window-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-window-l1-1-1.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-window-l1-1-4.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-windowclass-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-windowclass-l1-1-1.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-oleacc-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-ras-rasapi32-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-rtcore-gdi-devcaps-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-rtcore-gdi-object-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-rtcore-gdi-rgn-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-rtcore-ntuser-cursor-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-rtcore-ntuser-dc-access-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-rtcore-ntuser-dpi-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-rtcore-ntuser-dpi-l1-2-0.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-rtcore-ntuser-rawinput-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-rtcore-ntuser-syscolors-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-rtcore-ntuser-sysparams-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-security-credui-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-security-cryptui-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-shell-comctl32-init-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-shell-comdlg32-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-shell-shell32-l1-2-0.dll +%{_libdir}/wine/%{winepedir}/ext-ms-win-uxtheme-themes-l1-1-0.dll %if 0%{?wine_staging} -%{_libdir}/wine/%{winepedir}/ext-ms-win-appmodel-usercontext-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-appmodel-usercontext-l1-1-0.dll %{_libdir}/wine/%{winesodir}/ext-ms-win-appmodel-usercontext-l1-1-0.dll.so -%{_libdir}/wine/%{winepedir}/ext-ms-win-xaml-pal-l1-1-0.%{winedll} +%{_libdir}/wine/%{winepedir}/ext-ms-win-xaml-pal-l1-1-0.dll %{_libdir}/wine/%{winesodir}/ext-ms-win-xaml-pal-l1-1-0.dll.so %endif -%{_libdir}/wine/%{winepedir}/faultrep.%{winedll} -%{_libdir}/wine/%{winepedir}/feclient.%{winedll} -%{_libdir}/wine/%{winepedir}/fltlib.%{winedll} -%{_libdir}/wine/%{winepedir}/fltmgr.%{winesys} -%{_libdir}/wine/%{winepedir}/fntcache.%{winedll} -%{_libdir}/wine/%{winepedir}/fontsub.%{winedll} -%{_libdir}/wine/%{winepedir}/fusion.%{winedll} -%{_libdir}/wine/%{winepedir}/fwpuclnt.%{winedll} -%{_libdir}/wine/%{winepedir}/gameux.%{winedll} -%{_libdir}/wine/%{winepedir}/gamingtcui.%{winedll} +%{_libdir}/wine/%{winepedir}/faultrep.dll +%{_libdir}/wine/%{winepedir}/feclient.dll +%{_libdir}/wine/%{winepedir}/fltlib.dll +%{_libdir}/wine/%{winepedir}/fltmgr.sys +%{_libdir}/wine/%{winepedir}/fntcache.dll +%{_libdir}/wine/%{winepedir}/fontsub.dll +%{_libdir}/wine/%{winepedir}/fusion.dll +%{_libdir}/wine/%{winepedir}/fwpuclnt.dll +%{_libdir}/wine/%{winepedir}/gameux.dll +%{_libdir}/wine/%{winepedir}/gamingtcui.dll %{_libdir}/wine/%{winesodir}/gdi32.so -%{_libdir}/wine/%{winepedir}/gdi32.%{winedll} -%{_libdir}/wine/%{winepedir}/gdiplus.%{winedll} -%{_libdir}/wine/%{winepedir}/glu32.%{winedll} -%{_libdir}/wine/%{winepedir}/gphoto2.%{wineds} +%{_libdir}/wine/%{winepedir}/gdi32.dll +%{_libdir}/wine/%{winepedir}/gdiplus.dll +%{_libdir}/wine/%{winepedir}/glu32.dll +%{_libdir}/wine/%{winepedir}/gphoto2.ds %{_libdir}/wine/%{winesodir}/gphoto2.ds.so -%{_libdir}/wine/%{winepedir}/gpkcsp.%{winedll} -%{_libdir}/wine/%{winepedir}/hal.%{winedll} -%{_libdir}/wine/%{winepedir}/hh.%{wineexe} -%{_libdir}/wine/%{winepedir}/hhctrl.%{wineocx} -%{_libdir}/wine/%{winepedir}/hid.%{winedll} -%{_libdir}/wine/%{winepedir}/hidclass.%{winesys} -%{_libdir}/wine/%{winepedir}/hlink.%{winedll} -%{_libdir}/wine/%{winepedir}/hnetcfg.%{winedll} -%{_libdir}/wine/%{winepedir}/http.%{winesys} -%{_libdir}/wine/%{winepedir}/httpapi.%{winedll} -%{_libdir}/wine/%{winepedir}/icacls.%{wineexe} -%{_libdir}/wine/%{winepedir}/iccvid.%{winedll} -%{_libdir}/wine/%{winepedir}/icinfo.%{wineexe} -%{_libdir}/wine/%{winepedir}/icmp.%{winedll} -%{_libdir}/wine/%{winepedir}/ieframe.%{winedll} +%{_libdir}/wine/%{winepedir}/gpkcsp.dll +%{_libdir}/wine/%{winepedir}/hal.dll +%{_libdir}/wine/%{winepedir}/hh.exe +%{_libdir}/wine/%{winepedir}/hhctrl.ocx +%{_libdir}/wine/%{winepedir}/hid.dll +%{_libdir}/wine/%{winepedir}/hidclass.sys +%{_libdir}/wine/%{winepedir}/hlink.dll +%{_libdir}/wine/%{winepedir}/hnetcfg.dll +%{_libdir}/wine/%{winepedir}/http.sys +%{_libdir}/wine/%{winepedir}/httpapi.dll +%{_libdir}/wine/%{winepedir}/icacls.exe +%{_libdir}/wine/%{winepedir}/iccvid.dll +%{_libdir}/wine/%{winepedir}/icinfo.exe +%{_libdir}/wine/%{winepedir}/icmp.dll +%{_libdir}/wine/%{winepedir}/ieframe.dll %if 0%{?wine_staging} -%{_libdir}/wine/%{winepedir}/iertutil.%{winedll} -%endif -%{_libdir}/wine/%{winepedir}/ieproxy.%{winedll} -%{_libdir}/wine/%{winepedir}/imaadp32.%{wineacm} -%{_libdir}/wine/%{winepedir}/imagehlp.%{winedll} -%{_libdir}/wine/%{winepedir}/imm32.%{winedll} -%{_libdir}/wine/%{winepedir}/inetcomm.%{winedll} -%{_libdir}/wine/%{winepedir}/inetcpl.%{winecpl} -%{_libdir}/wine/%{winepedir}/inetmib1.%{winedll} -%{_libdir}/wine/%{winepedir}/infosoft.%{winedll} -%{_libdir}/wine/%{winepedir}/initpki.%{winedll} -%{_libdir}/wine/%{winepedir}/inkobj.%{winedll} -%{_libdir}/wine/%{winepedir}/inseng.%{winedll} -%{_libdir}/wine/%{winepedir}/iphlpapi.%{winedll} +%{_libdir}/wine/%{winepedir}/iertutil.dll +%endif +%{_libdir}/wine/%{winepedir}/ieproxy.dll +%{_libdir}/wine/%{winepedir}/imaadp32.acm +%{_libdir}/wine/%{winepedir}/imagehlp.dll +%{_libdir}/wine/%{winepedir}/imm32.dll +%{_libdir}/wine/%{winepedir}/inetcomm.dll +%{_libdir}/wine/%{winepedir}/inetcpl.cpl +%{_libdir}/wine/%{winepedir}/inetmib1.dll +%{_libdir}/wine/%{winepedir}/infosoft.dll +%{_libdir}/wine/%{winepedir}/initpki.dll +%{_libdir}/wine/%{winepedir}/inkobj.dll +%{_libdir}/wine/%{winepedir}/inseng.dll +%{_libdir}/wine/%{winepedir}/iphlpapi.dll %{_libdir}/wine/%{winesodir}/iphlpapi.dll.so -%{_libdir}/wine/%{winepedir}/iprop.%{winedll} -%{_libdir}/wine/%{winepedir}/irprops.%{winecpl} -%{_libdir}/wine/%{winepedir}/itircl.%{winedll} -%{_libdir}/wine/%{winepedir}/itss.%{winedll} -%{_libdir}/wine/%{winepedir}/joy.%{winecpl} -%{_libdir}/wine/%{winepedir}/jscript.%{winedll} -%{_libdir}/wine/%{winepedir}/jsproxy.%{winedll} +%{_libdir}/wine/%{winepedir}/iprop.dll +%{_libdir}/wine/%{winepedir}/irprops.cpl +%{_libdir}/wine/%{winepedir}/itircl.dll +%{_libdir}/wine/%{winepedir}/itss.dll +%{_libdir}/wine/%{winepedir}/joy.cpl +%{_libdir}/wine/%{winepedir}/jscript.dll +%{_libdir}/wine/%{winepedir}/jsproxy.dll %{_libdir}/wine/%{winesodir}/kerberos.so -%{_libdir}/wine/%{winepedir}/kerberos.%{winedll} -%{_libdir}/wine/%{winepedir}/kernel32.%{winedll} -%{_libdir}/wine/%{winepedir}/kernelbase.%{winedll} -%{_libdir}/wine/%{winepedir}/ksecdd.%{winesys} -%{_libdir}/wine/%{winepedir}/ksproxy.%{wineax} -%{_libdir}/wine/%{winepedir}/ksuser.%{winedll} -%{_libdir}/wine/%{winepedir}/ktmw32.%{winedll} +%{_libdir}/wine/%{winepedir}/kerberos.dll +%{_libdir}/wine/%{winepedir}/kernel32.dll +%{_libdir}/wine/%{winepedir}/kernelbase.dll +%{_libdir}/wine/%{winepedir}/ksecdd.sys +%{_libdir}/wine/%{winepedir}/ksproxy.ax +%{_libdir}/wine/%{winepedir}/ksuser.dll +%{_libdir}/wine/%{winepedir}/ktmw32.dll %if 0%{?fedora} > 24 -%{_libdir}/wine/%{winepedir}/l3codeca.%{wineacm} +%{_libdir}/wine/%{winepedir}/l3codeca.acm %{_libdir}/wine/%{winesodir}/l3codeca.acm.so %endif -%{_libdir}/wine/%{winepedir}/loadperf.%{winedll} -%{_libdir}/wine/%{winepedir}/localspl.%{winedll} -%{_libdir}/wine/%{winepedir}/localui.%{winedll} -%{_libdir}/wine/%{winepedir}/lodctr.%{wineexe} -%{_libdir}/wine/%{winepedir}/lz32.%{winedll} -%{_libdir}/wine/%{winepedir}/mapi32.%{winedll} -%{_libdir}/wine/%{winepedir}/mapistub.%{winedll} -%{_libdir}/wine/%{winepedir}/mciavi32.%{winedll} -%{_libdir}/wine/%{winepedir}/mcicda.%{winedll} -%{_libdir}/wine/%{winepedir}/mciqtz32.%{winedll} -%{_libdir}/wine/%{winepedir}/mciseq.%{winedll} -%{_libdir}/wine/%{winepedir}/mciwave.%{winedll} -%{_libdir}/wine/%{winepedir}/mf.%{winedll} -%{_libdir}/wine/%{winepedir}/mf3216.%{winedll} -%{_libdir}/wine/%{winepedir}/mferror.%{winedll} -%{_libdir}/wine/%{winepedir}/mfmediaengine.%{winedll} -%{_libdir}/wine/%{winepedir}/mfplat.%{winedll} -%{_libdir}/wine/%{winepedir}/mfplay.%{winedll} -%{_libdir}/wine/%{winepedir}/mfreadwrite.%{winedll} -%{_libdir}/wine/%{winepedir}/mgmtapi.%{winedll} -%{_libdir}/wine/%{winepedir}/midimap.%{winedll} -%{_libdir}/wine/%{winepedir}/mlang.%{winedll} -%{_libdir}/wine/%{winepedir}/mmcndmgr.%{winedll} -%{_libdir}/wine/%{winepedir}/mmdevapi.%{winedll} -%{_libdir}/wine/%{winepedir}/mofcomp.%{wineexe} -%{_libdir}/wine/%{winepedir}/mountmgr.%{winesys} +%{_libdir}/wine/%{winepedir}/loadperf.dll +%{_libdir}/wine/%{winepedir}/localspl.dll +%{_libdir}/wine/%{winepedir}/localui.dll +%{_libdir}/wine/%{winepedir}/lodctr.exe +%{_libdir}/wine/%{winepedir}/lz32.dll +%{_libdir}/wine/%{winepedir}/mapi32.dll +%{_libdir}/wine/%{winepedir}/mapistub.dll +%{_libdir}/wine/%{winepedir}/mciavi32.dll +%{_libdir}/wine/%{winepedir}/mcicda.dll +%{_libdir}/wine/%{winepedir}/mciqtz32.dll +%{_libdir}/wine/%{winepedir}/mciseq.dll +%{_libdir}/wine/%{winepedir}/mciwave.dll +%{_libdir}/wine/%{winepedir}/mf.dll +%{_libdir}/wine/%{winepedir}/mf3216.dll +%{_libdir}/wine/%{winepedir}/mferror.dll +%{_libdir}/wine/%{winepedir}/mfmediaengine.dll +%{_libdir}/wine/%{winepedir}/mfplat.dll +%{_libdir}/wine/%{winepedir}/mfplay.dll +%{_libdir}/wine/%{winepedir}/mfreadwrite.dll +%{_libdir}/wine/%{winepedir}/mgmtapi.dll +%{_libdir}/wine/%{winepedir}/midimap.dll +%{_libdir}/wine/%{winepedir}/mlang.dll +%{_libdir}/wine/%{winepedir}/mmcndmgr.dll +%{_libdir}/wine/%{winepedir}/mmdevapi.dll +%{_libdir}/wine/%{winepedir}/mofcomp.exe +%{_libdir}/wine/%{winepedir}/mountmgr.sys %{_libdir}/wine/%{winesodir}/mountmgr.sys.so -%{_libdir}/wine/%{winepedir}/mp3dmod.%{winedll} +%{_libdir}/wine/%{winepedir}/mp3dmod.dll %{_libdir}/wine/%{winesodir}/mp3dmod.dll.so -%{_libdir}/wine/%{winepedir}/mpr.%{winedll} -%{_libdir}/wine/%{winepedir}/mprapi.%{winedll} -%{_libdir}/wine/%{winepedir}/msacm32.%{winedll} -%{_libdir}/wine/%{winepedir}/msacm32.%{winedrv} -%{_libdir}/wine/%{winepedir}/msado15.%{winedll} -%{_libdir}/wine/%{winepedir}/msadp32.%{wineacm} -%{_libdir}/wine/%{winepedir}/msasn1.%{winedll} -%{_libdir}/wine/%{winepedir}/mscat32.%{winedll} -%{_libdir}/wine/%{winepedir}/mscoree.%{winedll} -%{_libdir}/wine/%{winepedir}/mscorwks.%{winedll} -%{_libdir}/wine/%{winepedir}/msctf.%{winedll} -%{_libdir}/wine/%{winepedir}/msctfp.%{winedll} -%{_libdir}/wine/%{winepedir}/msdaps.%{winedll} -%{_libdir}/wine/%{winepedir}/msdelta.%{winedll} -%{_libdir}/wine/%{winepedir}/msdmo.%{winedll} -%{_libdir}/wine/%{winepedir}/msdrm.%{winedll} -%{_libdir}/wine/%{winepedir}/msftedit.%{winedll} -%{_libdir}/wine/%{winepedir}/msg711.%{wineacm} -%{_libdir}/wine/%{winepedir}/msgsm32.%{wineacm} +%{_libdir}/wine/%{winepedir}/mpr.dll +%{_libdir}/wine/%{winepedir}/mprapi.dll +%{_libdir}/wine/%{winepedir}/msacm32.dll +%{_libdir}/wine/%{winepedir}/msacm32.drv +%{_libdir}/wine/%{winepedir}/msado15.dll +%{_libdir}/wine/%{winepedir}/msadp32.acm +%{_libdir}/wine/%{winepedir}/msasn1.dll +%{_libdir}/wine/%{winepedir}/mscat32.dll +%{_libdir}/wine/%{winepedir}/mscoree.dll +%{_libdir}/wine/%{winepedir}/mscorwks.dll +%{_libdir}/wine/%{winepedir}/msctf.dll +%{_libdir}/wine/%{winepedir}/msctfp.dll +%{_libdir}/wine/%{winepedir}/msdaps.dll +%{_libdir}/wine/%{winepedir}/msdelta.dll +%{_libdir}/wine/%{winepedir}/msdmo.dll +%{_libdir}/wine/%{winepedir}/msdrm.dll +%{_libdir}/wine/%{winepedir}/msftedit.dll +%{_libdir}/wine/%{winepedir}/msg711.acm +%{_libdir}/wine/%{winepedir}/msgsm32.acm %{_libdir}/wine/%{winesodir}/msgsm32.acm.so -%{_libdir}/wine/%{winepedir}/mshtml.%{winedll} -%{_libdir}/wine/%{winepedir}/mshtml.%{winetlb} -%{_libdir}/wine/%{winepedir}/msi.%{winedll} -%{_libdir}/wine/%{winepedir}/msident.%{winedll} -%{_libdir}/wine/%{winepedir}/msimtf.%{winedll} -%{_libdir}/wine/%{winepedir}/msimg32.%{winedll} -%{_libdir}/wine/%{winepedir}/msimsg.%{winedll} -%{_libdir}/wine/%{winepedir}/msinfo32.%{wineexe} -%{_libdir}/wine/%{winepedir}/msisip.%{winedll} -%{_libdir}/wine/%{winepedir}/msisys.%{wineocx} -%{_libdir}/wine/%{winepedir}/msls31.%{winedll} -%{_libdir}/wine/%{winepedir}/msnet32.%{winedll} -%{_libdir}/wine/%{winepedir}/mspatcha.%{winedll} -%{_libdir}/wine/%{winepedir}/msports.%{winedll} -%{_libdir}/wine/%{winepedir}/msscript.%{wineocx} -%{_libdir}/wine/%{winepedir}/mssign32.%{winedll} -%{_libdir}/wine/%{winepedir}/mssip32.%{winedll} -%{_libdir}/wine/%{winepedir}/msrle32.%{winedll} -%{_libdir}/wine/%{winepedir}/mstask.%{winedll} -%{_libdir}/wine/%{winepedir}/msv1_0.%{winedll} +%{_libdir}/wine/%{winepedir}/mshtml.dll +%{_libdir}/wine/%{winepedir}/mshtml.tlb +%{_libdir}/wine/%{winepedir}/msi.dll +%{_libdir}/wine/%{winepedir}/msident.dll +%{_libdir}/wine/%{winepedir}/msimtf.dll +%{_libdir}/wine/%{winepedir}/msimg32.dll +%{_libdir}/wine/%{winepedir}/msimsg.dll +%{_libdir}/wine/%{winepedir}/msinfo32.exe +%{_libdir}/wine/%{winepedir}/msisip.dll +%{_libdir}/wine/%{winepedir}/msisys.ocx +%{_libdir}/wine/%{winepedir}/msls31.dll +%{_libdir}/wine/%{winepedir}/msnet32.dll +%{_libdir}/wine/%{winepedir}/mspatcha.dll +%{_libdir}/wine/%{winepedir}/msports.dll +%{_libdir}/wine/%{winepedir}/msscript.ocx +%{_libdir}/wine/%{winepedir}/mssign32.dll +%{_libdir}/wine/%{winepedir}/mssip32.dll +%{_libdir}/wine/%{winepedir}/msrle32.dll +%{_libdir}/wine/%{winepedir}/mstask.dll +%{_libdir}/wine/%{winepedir}/msv1_0.dll %{_libdir}/wine/%{winesodir}/msv1_0.so -%{_libdir}/wine/%{winepedir}/msvcirt.%{winedll} -%{_libdir}/wine/%{winepedir}/msvcm80.%{winedll} -%{_libdir}/wine/%{winepedir}/msvcm90.%{winedll} -%{_libdir}/wine/%{winepedir}/msvcp60.%{winedll} -%{_libdir}/wine/%{winepedir}/msvcp70.%{winedll} -%{_libdir}/wine/%{winepedir}/msvcp71.%{winedll} -%{_libdir}/wine/%{winepedir}/msvcp80.%{winedll} -%{_libdir}/wine/%{winepedir}/msvcp90.%{winedll} -%{_libdir}/wine/%{winepedir}/msvcp100.%{winedll} -%{_libdir}/wine/%{winepedir}/msvcp110.%{winedll} -%{_libdir}/wine/%{winepedir}/msvcp120.%{winedll} -%{_libdir}/wine/%{winepedir}/msvcp120_app.%{winedll} -%{_libdir}/wine/%{winepedir}/msvcp140.%{winedll} -%{_libdir}/wine/%{winepedir}/msvcp140_1.%{winedll} +%{_libdir}/wine/%{winepedir}/msvcirt.dll +%{_libdir}/wine/%{winepedir}/msvcm80.dll +%{_libdir}/wine/%{winepedir}/msvcm90.dll +%{_libdir}/wine/%{winepedir}/msvcp60.dll +%{_libdir}/wine/%{winepedir}/msvcp70.dll +%{_libdir}/wine/%{winepedir}/msvcp71.dll +%{_libdir}/wine/%{winepedir}/msvcp80.dll +%{_libdir}/wine/%{winepedir}/msvcp90.dll +%{_libdir}/wine/%{winepedir}/msvcp100.dll +%{_libdir}/wine/%{winepedir}/msvcp110.dll +%{_libdir}/wine/%{winepedir}/msvcp120.dll +%{_libdir}/wine/%{winepedir}/msvcp120_app.dll +%{_libdir}/wine/%{winepedir}/msvcp140.dll +%{_libdir}/wine/%{winepedir}/msvcp140_1.dll %{_libdir}/wine/%{winesodir}/msvcr70.so -%{_libdir}/wine/%{winepedir}/msvcr70.%{winedll} +%{_libdir}/wine/%{winepedir}/msvcr70.dll %{_libdir}/wine/%{winesodir}/msvcr71.so -%{_libdir}/wine/%{winepedir}/msvcr71.%{winedll} +%{_libdir}/wine/%{winepedir}/msvcr71.dll %{_libdir}/wine/%{winesodir}/msvcr80.so -%{_libdir}/wine/%{winepedir}/msvcr80.%{winedll} +%{_libdir}/wine/%{winepedir}/msvcr80.dll %{_libdir}/wine/%{winesodir}/msvcr90.so -%{_libdir}/wine/%{winepedir}/msvcr90.%{winedll} +%{_libdir}/wine/%{winepedir}/msvcr90.dll %{_libdir}/wine/%{winesodir}/msvcr100.so -%{_libdir}/wine/%{winepedir}/msvcr100.%{winedll} +%{_libdir}/wine/%{winepedir}/msvcr100.dll %{_libdir}/wine/%{winesodir}/msvcr110.so -%{_libdir}/wine/%{winepedir}/msvcr110.%{winedll} +%{_libdir}/wine/%{winepedir}/msvcr110.dll %{_libdir}/wine/%{winesodir}/msvcr120.so -%{_libdir}/wine/%{winepedir}/msvcr120.%{winedll} -%{_libdir}/wine/%{winepedir}/msvcr120_app.%{winedll} +%{_libdir}/wine/%{winepedir}/msvcr120.dll +%{_libdir}/wine/%{winepedir}/msvcr120_app.dll %{_libdir}/wine/%{winesodir}/msvcrt.so -%{_libdir}/wine/%{winepedir}/msvcrt.%{winedll} -%{_libdir}/wine/%{winepedir}/msvcrt20.%{winedll} -%{_libdir}/wine/%{winepedir}/msvcrt40.%{winedll} +%{_libdir}/wine/%{winepedir}/msvcrt.dll +%{_libdir}/wine/%{winepedir}/msvcrt20.dll +%{_libdir}/wine/%{winepedir}/msvcrt40.dll %{_libdir}/wine/%{winesodir}/msvcrtd.so -%{_libdir}/wine/%{winepedir}/msvcrtd.%{winedll} -%{_libdir}/wine/%{winepedir}/msvfw32.%{winedll} -%{_libdir}/wine/%{winepedir}/msvidc32.%{winedll} -%{_libdir}/wine/%{winepedir}/mswsock.%{winedll} -%{_libdir}/wine/%{winepedir}/msxml.%{winedll} -%{_libdir}/wine/%{winepedir}/msxml2.%{winedll} -%{_libdir}/wine/%{winepedir}/msxml3.%{winedll} +%{_libdir}/wine/%{winepedir}/msvcrtd.dll +%{_libdir}/wine/%{winepedir}/msvfw32.dll +%{_libdir}/wine/%{winepedir}/msvidc32.dll +%{_libdir}/wine/%{winepedir}/mswsock.dll +%{_libdir}/wine/%{winepedir}/msxml.dll +%{_libdir}/wine/%{winepedir}/msxml2.dll +%{_libdir}/wine/%{winepedir}/msxml3.dll %{_libdir}/wine/%{winesodir}/msxml3.dll.so -%{_libdir}/wine/%{winepedir}/msxml4.%{winedll} -%{_libdir}/wine/%{winepedir}/msxml6.%{winedll} -%{_libdir}/wine/%{winepedir}/mtxdm.%{winedll} -%{_libdir}/wine/%{winepedir}/nddeapi.%{winedll} -%{_libdir}/wine/%{winepedir}/ncrypt.%{winedll} -%{_libdir}/wine/%{winepedir}/ndis.%{winesys} +%{_libdir}/wine/%{winepedir}/msxml4.dll +%{_libdir}/wine/%{winepedir}/msxml6.dll +%{_libdir}/wine/%{winepedir}/mtxdm.dll +%{_libdir}/wine/%{winepedir}/nddeapi.dll +%{_libdir}/wine/%{winepedir}/ncrypt.dll +%{_libdir}/wine/%{winepedir}/ndis.sys %{_libdir}/wine/%{winesodir}/netapi32.so -%{_libdir}/wine/%{winepedir}/netapi32.%{winedll} -%{_libdir}/wine/%{winepedir}/netcfgx.%{winedll} -%{_libdir}/wine/%{winepedir}/netio.%{winesys} -%{_libdir}/wine/%{winepedir}/netprofm.%{winedll} -%{_libdir}/wine/%{winepedir}/netsh.%{wineexe} +%{_libdir}/wine/%{winepedir}/netapi32.dll +%{_libdir}/wine/%{winepedir}/netcfgx.dll +%{_libdir}/wine/%{winepedir}/netio.sys +%{_libdir}/wine/%{winepedir}/netprofm.dll +%{_libdir}/wine/%{winepedir}/netsh.exe %if 0%{?wine_staging} -%{_libdir}/wine/%{winepedir}/netutils.%{winedll} +%{_libdir}/wine/%{winepedir}/netutils.dll %endif -%{_libdir}/wine/%{winepedir}/newdev.%{winedll} -%{_libdir}/wine/%{winepedir}/ninput.%{winedll} -%{_libdir}/wine/%{winepedir}/normaliz.%{winedll} -%{_libdir}/wine/%{winepedir}/npmshtml.%{winedll} -%{_libdir}/wine/%{winepedir}/npptools.%{winedll} +%{_libdir}/wine/%{winepedir}/newdev.dll +%{_libdir}/wine/%{winepedir}/ninput.dll +%{_libdir}/wine/%{winepedir}/normaliz.dll +%{_libdir}/wine/%{winepedir}/npmshtml.dll +%{_libdir}/wine/%{winepedir}/npptools.dll %{_libdir}/wine/%{winesodir}/ntdll.so -%{_libdir}/wine/%{winepedir}/ntdll.%{winedll} -%{_libdir}/wine/%{winepedir}/ntdsapi.%{winedll} -%{_libdir}/wine/%{winepedir}/ntprint.%{winedll} +%{_libdir}/wine/%{winepedir}/ntdll.dll +%{_libdir}/wine/%{winepedir}/ntdsapi.dll +%{_libdir}/wine/%{winepedir}/ntprint.dll %if 0%{?wine_staging} -%{_libdir}/wine/%{winepedir}/nvcuda.%{winedll} +%{_libdir}/wine/%{winepedir}/nvcuda.dll %{_libdir}/wine/%{winesodir}/nvcuda.dll.so -%{_libdir}/wine/%{winepedir}/nvcuvid.%{winedll} +%{_libdir}/wine/%{winepedir}/nvcuvid.dll %{_libdir}/wine/%{winesodir}/nvcuvid.dll.so %endif -%{_libdir}/wine/%{winepedir}/objsel.%{winedll} +%{_libdir}/wine/%{winepedir}/objsel.dll %{_libdir}/wine/%{winesodir}/odbc32.so -%{_libdir}/wine/%{winepedir}/odbc32.%{winedll} -%{_libdir}/wine/%{winepedir}/odbcbcp.%{winedll} -%{_libdir}/wine/%{winepedir}/odbccp32.%{winedll} -%{_libdir}/wine/%{winepedir}/odbccu32.%{winedll} -%{_libdir}/wine/%{winepedir}/ole32.%{winedll} -%{_libdir}/wine/%{winepedir}/oleacc.%{winedll} -%{_libdir}/wine/%{winepedir}/oleaut32.%{winedll} -%{_libdir}/wine/%{winepedir}/olecli32.%{winedll} -%{_libdir}/wine/%{winepedir}/oledb32.%{winedll} -%{_libdir}/wine/%{winepedir}/oledlg.%{winedll} -%{_libdir}/wine/%{winepedir}/olepro32.%{winedll} -%{_libdir}/wine/%{winepedir}/olesvr32.%{winedll} -%{_libdir}/wine/%{winepedir}/olethk32.%{winedll} -%{_libdir}/wine/%{winepedir}/opcservices.%{winedll} -%{_libdir}/wine/%{winepedir}/packager.%{winedll} -%{_libdir}/wine/%{winepedir}/pdh.%{winedll} -%{_libdir}/wine/%{winepedir}/photometadatahandler.%{winedll} -%{_libdir}/wine/%{winepedir}/pidgen.%{winedll} -%{_libdir}/wine/%{winepedir}/powrprof.%{winedll} -%{_libdir}/wine/%{winepedir}/presentationfontcache.%{wineexe} -%{_libdir}/wine/%{winepedir}/printui.%{winedll} -%{_libdir}/wine/%{winepedir}/prntvpt.%{winedll} -%{_libdir}/wine/%{winepedir}/propsys.%{winedll} -%{_libdir}/wine/%{winepedir}/psapi.%{winedll} -%{_libdir}/wine/%{winepedir}/pstorec.%{winedll} -%{_libdir}/wine/%{winepedir}/pwrshplugin.%{winedll} -%{_libdir}/wine/%{winepedir}/qasf.%{winedll} -%{_libdir}/wine/%{winepedir}/qcap.%{winedll} +%{_libdir}/wine/%{winepedir}/odbc32.dll +%{_libdir}/wine/%{winepedir}/odbcbcp.dll +%{_libdir}/wine/%{winepedir}/odbccp32.dll +%{_libdir}/wine/%{winepedir}/odbccu32.dll +%{_libdir}/wine/%{winepedir}/ole32.dll +%{_libdir}/wine/%{winepedir}/oleacc.dll +%{_libdir}/wine/%{winepedir}/oleaut32.dll +%{_libdir}/wine/%{winepedir}/olecli32.dll +%{_libdir}/wine/%{winepedir}/oledb32.dll +%{_libdir}/wine/%{winepedir}/oledlg.dll +%{_libdir}/wine/%{winepedir}/olepro32.dll +%{_libdir}/wine/%{winepedir}/olesvr32.dll +%{_libdir}/wine/%{winepedir}/olethk32.dll +%{_libdir}/wine/%{winepedir}/opcservices.dll +%{_libdir}/wine/%{winepedir}/packager.dll +%{_libdir}/wine/%{winepedir}/pdh.dll +%{_libdir}/wine/%{winepedir}/photometadatahandler.dll +%{_libdir}/wine/%{winepedir}/pidgen.dll +%{_libdir}/wine/%{winepedir}/powrprof.dll +%{_libdir}/wine/%{winepedir}/presentationfontcache.exe +%{_libdir}/wine/%{winepedir}/printui.dll +%{_libdir}/wine/%{winepedir}/prntvpt.dll +%{_libdir}/wine/%{winepedir}/propsys.dll +%{_libdir}/wine/%{winepedir}/psapi.dll +%{_libdir}/wine/%{winepedir}/pstorec.dll +%{_libdir}/wine/%{winepedir}/pwrshplugin.dll +%{_libdir}/wine/%{winepedir}/qasf.dll +%{_libdir}/wine/%{winepedir}/qcap.dll %{_libdir}/wine/%{winesodir}/qcap.so -%{_libdir}/wine/%{winepedir}/qdvd.%{winedll} -%{_libdir}/wine/%{winepedir}/qedit.%{winedll} -%{_libdir}/wine/%{winepedir}/qmgr.%{winedll} -%{_libdir}/wine/%{winepedir}/qmgrprxy.%{winedll} -%{_libdir}/wine/%{winepedir}/quartz.%{winedll} -%{_libdir}/wine/%{winepedir}/query.%{winedll} -%{_libdir}/wine/%{winepedir}/qwave.%{winedll} -%{_libdir}/wine/%{winepedir}/rasapi32.%{winedll} -%{_libdir}/wine/%{winepedir}/rasdlg.%{winedll} -%{_libdir}/wine/%{winepedir}/regapi.%{winedll} -%{_libdir}/wine/%{winepedir}/regini.%{wineexe} -%{_libdir}/wine/%{winepedir}/resutils.%{winedll} -%{_libdir}/wine/%{winepedir}/riched20.%{winedll} -%{_libdir}/wine/%{winepedir}/riched32.%{winedll} -%{_libdir}/wine/%{winepedir}/rpcrt4.%{winedll} -%{_libdir}/wine/%{winepedir}/rsabase.%{winedll} -%{_libdir}/wine/%{winepedir}/rsaenh.%{winedll} -%{_libdir}/wine/%{winepedir}/rstrtmgr.%{winedll} -%{_libdir}/wine/%{winepedir}/rtutils.%{winedll} -%{_libdir}/wine/%{winepedir}/rtworkq.%{winedll} -%{_libdir}/wine/%{winepedir}/samlib.%{winedll} -%{_libdir}/wine/%{winepedir}/sapi.%{winedll} -%{_libdir}/wine/%{winepedir}/sas.%{winedll} -%{_libdir}/wine/%{winepedir}/sc.%{wineexe} -%{_libdir}/wine/%{winepedir}/scarddlg.%{winedll} -%{_libdir}/wine/%{winepedir}/sccbase.%{winedll} -%{_libdir}/wine/%{winepedir}/schannel.%{winedll} -%{_libdir}/wine/%{winepedir}/scrobj.%{winedll} -%{_libdir}/wine/%{winepedir}/scrrun.%{winedll} -%{_libdir}/wine/%{winepedir}/scsiport.%{winesys} -%{_libdir}/wine/%{winepedir}/sechost.%{winedll} -%{_libdir}/wine/%{winepedir}/secur32.%{winedll} +%{_libdir}/wine/%{winepedir}/qdvd.dll +%{_libdir}/wine/%{winepedir}/qedit.dll +%{_libdir}/wine/%{winepedir}/qmgr.dll +%{_libdir}/wine/%{winepedir}/qmgrprxy.dll +%{_libdir}/wine/%{winepedir}/quartz.dll +%{_libdir}/wine/%{winepedir}/query.dll +%{_libdir}/wine/%{winepedir}/qwave.dll +%{_libdir}/wine/%{winepedir}/rasapi32.dll +%{_libdir}/wine/%{winepedir}/rasdlg.dll +%{_libdir}/wine/%{winepedir}/regapi.dll +%{_libdir}/wine/%{winepedir}/regini.exe +%{_libdir}/wine/%{winepedir}/resutils.dll +%{_libdir}/wine/%{winepedir}/riched20.dll +%{_libdir}/wine/%{winepedir}/riched32.dll +%{_libdir}/wine/%{winepedir}/rpcrt4.dll +%{_libdir}/wine/%{winepedir}/rsabase.dll +%{_libdir}/wine/%{winepedir}/rsaenh.dll +%{_libdir}/wine/%{winepedir}/rstrtmgr.dll +%{_libdir}/wine/%{winepedir}/rtutils.dll +%{_libdir}/wine/%{winepedir}/rtworkq.dll +%{_libdir}/wine/%{winepedir}/samlib.dll +%{_libdir}/wine/%{winepedir}/sapi.dll +%{_libdir}/wine/%{winepedir}/sas.dll +%{_libdir}/wine/%{winepedir}/sc.exe +%{_libdir}/wine/%{winepedir}/scarddlg.dll +%{_libdir}/wine/%{winepedir}/sccbase.dll +%{_libdir}/wine/%{winepedir}/schannel.dll +%{_libdir}/wine/%{winepedir}/scrobj.dll +%{_libdir}/wine/%{winepedir}/scrrun.dll +%{_libdir}/wine/%{winepedir}/scsiport.sys +%{_libdir}/wine/%{winepedir}/sechost.dll +%{_libdir}/wine/%{winepedir}/secur32.dll %{_libdir}/wine/%{winesodir}/secur32.so -%{_libdir}/wine/%{winepedir}/sensapi.%{winedll} -%{_libdir}/wine/%{winepedir}/serialui.%{winedll} -%{_libdir}/wine/%{winepedir}/setupapi.%{winedll} -%{_libdir}/wine/%{winepedir}/sfc_os.%{winedll} -%{_libdir}/wine/%{winepedir}/shcore.%{winedll} -%{_libdir}/wine/%{winepedir}/shdoclc.%{winedll} -%{_libdir}/wine/%{winepedir}/shdocvw.%{winedll} -%{_libdir}/wine/%{winepedir}/schedsvc.%{winedll} -%{_libdir}/wine/%{winepedir}/shell32.%{winedll} +%{_libdir}/wine/%{winepedir}/sensapi.dll +%{_libdir}/wine/%{winepedir}/serialui.dll +%{_libdir}/wine/%{winepedir}/setupapi.dll +%{_libdir}/wine/%{winepedir}/sfc_os.dll +%{_libdir}/wine/%{winepedir}/shcore.dll +%{_libdir}/wine/%{winepedir}/shdoclc.dll +%{_libdir}/wine/%{winepedir}/shdocvw.dll +%{_libdir}/wine/%{winepedir}/schedsvc.dll +%{_libdir}/wine/%{winepedir}/shell32.dll %{_libdir}/wine/%{winesodir}/shell32.dll.so -%{_libdir}/wine/%{winepedir}/shfolder.%{winedll} -%{_libdir}/wine/%{winepedir}/shlwapi.%{winedll} -%{_libdir}/wine/%{winepedir}/shutdown.%{wineexe} -%{_libdir}/wine/%{winepedir}/slbcsp.%{winedll} -%{_libdir}/wine/%{winepedir}/slc.%{winedll} -%{_libdir}/wine/%{winepedir}/snmpapi.%{winedll} -%{_libdir}/wine/%{winepedir}/softpub.%{winedll} -%{_libdir}/wine/%{winepedir}/spoolsv.%{wineexe} -%{_libdir}/wine/%{winepedir}/srclient.%{winedll} +%{_libdir}/wine/%{winepedir}/shfolder.dll +%{_libdir}/wine/%{winepedir}/shlwapi.dll +%{_libdir}/wine/%{winepedir}/shutdown.exe +%{_libdir}/wine/%{winepedir}/slbcsp.dll +%{_libdir}/wine/%{winepedir}/slc.dll +%{_libdir}/wine/%{winepedir}/snmpapi.dll +%{_libdir}/wine/%{winepedir}/softpub.dll +%{_libdir}/wine/%{winepedir}/spoolsv.exe +%{_libdir}/wine/%{winepedir}/srclient.dll %if 0%{?wine_staging} -%{_libdir}/wine/%{winepedir}/srvcli.%{winedll} -%endif -%{_libdir}/wine/%{winepedir}/sspicli.%{winedll} -%{_libdir}/wine/%{winepedir}/stdole2.%{winetlb} -%{_libdir}/wine/%{winepedir}/stdole32.%{winetlb} -%{_libdir}/wine/%{winepedir}/sti.%{winedll} -%{_libdir}/wine/%{winepedir}/strmdll.%{winedll} -%{_libdir}/wine/%{winepedir}/subst.%{wineexe} -%{_libdir}/wine/%{winepedir}/svchost.%{wineexe} -%{_libdir}/wine/%{winepedir}/svrapi.%{winedll} -%{_libdir}/wine/%{winepedir}/sxs.%{winedll} -%{_libdir}/wine/%{winepedir}/systeminfo.%{wineexe} -%{_libdir}/wine/%{winepedir}/t2embed.%{winedll} -%{_libdir}/wine/%{winepedir}/tapi32.%{winedll} -%{_libdir}/wine/%{winepedir}/taskkill.%{wineexe} -%{_libdir}/wine/%{winepedir}/taskschd.%{winedll} -%{_libdir}/wine/%{winepedir}/tdh.%{winedll} -%{_libdir}/wine/%{winepedir}/tdi.%{winesys} -%{_libdir}/wine/%{winepedir}/traffic.%{winedll} -%{_libdir}/wine/%{winepedir}/tzres.%{winedll} +%{_libdir}/wine/%{winepedir}/srvcli.dll +%endif +%{_libdir}/wine/%{winepedir}/sspicli.dll +%{_libdir}/wine/%{winepedir}/stdole2.tlb +%{_libdir}/wine/%{winepedir}/stdole32.tlb +%{_libdir}/wine/%{winepedir}/sti.dll +%{_libdir}/wine/%{winepedir}/strmdll.dll +%{_libdir}/wine/%{winepedir}/subst.exe +%{_libdir}/wine/%{winepedir}/svchost.exe +%{_libdir}/wine/%{winepedir}/svrapi.dll +%{_libdir}/wine/%{winepedir}/sxs.dll +%{_libdir}/wine/%{winepedir}/systeminfo.exe +%{_libdir}/wine/%{winepedir}/t2embed.dll +%{_libdir}/wine/%{winepedir}/tapi32.dll +%{_libdir}/wine/%{winepedir}/taskkill.exe +%{_libdir}/wine/%{winepedir}/taskschd.dll +%{_libdir}/wine/%{winepedir}/tdh.dll +%{_libdir}/wine/%{winepedir}/tdi.sys +%{_libdir}/wine/%{winepedir}/traffic.dll +%{_libdir}/wine/%{winepedir}/tzres.dll %{_libdir}/wine/%{winesodir}/ucrtbase.so -%{_libdir}/wine/%{winepedir}/ucrtbase.%{winedll} +%{_libdir}/wine/%{winepedir}/ucrtbase.dll %if 0%{?wine_staging} -%{_libdir}/wine/%{winepedir}/uianimation.%{winedll} -%endif -%{_libdir}/wine/%{winepedir}/uiautomationcore.%{winedll} -%{_libdir}/wine/%{winepedir}/uiribbon.%{winedll} -%{_libdir}/wine/%{winepedir}/unicows.%{winedll} -%{_libdir}/wine/%{winepedir}/unlodctr.%{wineexe} -%{_libdir}/wine/%{winepedir}/updspapi.%{winedll} -%{_libdir}/wine/%{winepedir}/url.%{winedll} -%{_libdir}/wine/%{winepedir}/urlmon.%{winedll} -%{_libdir}/wine/%{winepedir}/usbd.%{winesys} +%{_libdir}/wine/%{winepedir}/uianimation.dll +%endif +%{_libdir}/wine/%{winepedir}/uiautomationcore.dll +%{_libdir}/wine/%{winepedir}/uiribbon.dll +%{_libdir}/wine/%{winepedir}/unicows.dll +%{_libdir}/wine/%{winepedir}/unlodctr.exe +%{_libdir}/wine/%{winepedir}/updspapi.dll +%{_libdir}/wine/%{winepedir}/url.dll +%{_libdir}/wine/%{winepedir}/urlmon.dll +%{_libdir}/wine/%{winepedir}/usbd.sys %{_libdir}/wine/%{winesodir}/user32.so -%{_libdir}/wine/%{winepedir}/user32.%{winedll} -%{_libdir}/wine/%{winepedir}/usp10.%{winedll} -%{_libdir}/wine/%{winepedir}/utildll.%{winedll} -%{_libdir}/wine/%{winepedir}/uxtheme.%{winedll} -%{_libdir}/wine/%{winepedir}/userenv.%{winedll} -%{_libdir}/wine/%{winepedir}/vbscript.%{winedll} -%{_libdir}/wine/%{winepedir}/vcomp.%{winedll} -%{_libdir}/wine/%{winepedir}/vcomp90.%{winedll} -%{_libdir}/wine/%{winepedir}/vcomp100.%{winedll} -%{_libdir}/wine/%{winepedir}/vcomp110.%{winedll} -%{_libdir}/wine/%{winepedir}/vcomp120.%{winedll} -%{_libdir}/wine/%{winepedir}/vcomp140.%{winedll} -%{_libdir}/wine/%{winepedir}/vcruntime140.%{winedll} -%{_libdir}/wine/%{winepedir}/vcruntime140_1.%{winedll} -%{_libdir}/wine/%{winepedir}/vdmdbg.%{winedll} -%{_libdir}/wine/%{winepedir}/version.%{winedll} -%{_libdir}/wine/%{winepedir}/vga.%{winedll} -%{_libdir}/wine/%{winepedir}/virtdisk.%{winedll} -%{_libdir}/wine/%{winepedir}/vssapi.%{winedll} -%{_libdir}/wine/%{winepedir}/vulkan-1.%{winedll} -%{_libdir}/wine/%{winepedir}/wbemdisp.%{winedll} -%{_libdir}/wine/%{winepedir}/wbemprox.%{winedll} -%{_libdir}/wine/%{winepedir}/wdscore.%{winedll} -%{_libdir}/wine/%{winepedir}/webservices.%{winedll} -%{_libdir}/wine/%{winepedir}/websocket.%{winedll} -%{_libdir}/wine/%{winepedir}/wer.%{winedll} -%{_libdir}/wine/%{winepedir}/wevtapi.%{winedll} -%{_libdir}/wine/%{winepedir}/wevtsvc.%{winedll} -%{_libdir}/wine/%{winepedir}/wiaservc.%{winedll} -%{_libdir}/wine/%{winepedir}/wimgapi.%{winedll} -%{_libdir}/wine/%{winepedir}/win32k.%{winesys} +%{_libdir}/wine/%{winepedir}/user32.dll +%{_libdir}/wine/%{winepedir}/usp10.dll +%{_libdir}/wine/%{winepedir}/utildll.dll +%{_libdir}/wine/%{winepedir}/uxtheme.dll +%{_libdir}/wine/%{winepedir}/userenv.dll +%{_libdir}/wine/%{winepedir}/vbscript.dll +%{_libdir}/wine/%{winepedir}/vcomp.dll +%{_libdir}/wine/%{winepedir}/vcomp90.dll +%{_libdir}/wine/%{winepedir}/vcomp100.dll +%{_libdir}/wine/%{winepedir}/vcomp110.dll +%{_libdir}/wine/%{winepedir}/vcomp120.dll +%{_libdir}/wine/%{winepedir}/vcomp140.dll +%{_libdir}/wine/%{winepedir}/vcruntime140.dll +%{_libdir}/wine/%{winepedir}/vcruntime140_1.dll +%{_libdir}/wine/%{winepedir}/vdmdbg.dll +%{_libdir}/wine/%{winepedir}/version.dll +%{_libdir}/wine/%{winepedir}/vga.dll +%{_libdir}/wine/%{winepedir}/virtdisk.dll +%{_libdir}/wine/%{winepedir}/vssapi.dll +%{_libdir}/wine/%{winepedir}/vulkan-1.dll +%{_libdir}/wine/%{winepedir}/wbemdisp.dll +%{_libdir}/wine/%{winepedir}/wbemprox.dll +%{_libdir}/wine/%{winepedir}/wdscore.dll +%{_libdir}/wine/%{winepedir}/webservices.dll +%{_libdir}/wine/%{winepedir}/websocket.dll +%{_libdir}/wine/%{winepedir}/wer.dll +%{_libdir}/wine/%{winepedir}/wevtapi.dll +%{_libdir}/wine/%{winepedir}/wevtsvc.dll +%{_libdir}/wine/%{winepedir}/wiaservc.dll +%{_libdir}/wine/%{winepedir}/wimgapi.dll +%{_libdir}/wine/%{winepedir}/win32k.sys %if 0%{?wine_staging} -%{_libdir}/wine/%{winepedir}/windows.gaming.input.%{winedll} -%{_libdir}/wine/%{winepedir}/windows.globalization.%{winedll} -%{_libdir}/wine/%{winepedir}/windows.media.speech.%{winedll} +%{_libdir}/wine/%{winepedir}/windows.gaming.input.dll +%{_libdir}/wine/%{winepedir}/windows.globalization.dll +%{_libdir}/wine/%{winepedir}/windows.media.speech.dll %endif -%{_libdir}/wine/%{winepedir}/windows.media.devices.%{winedll} -%{_libdir}/wine/%{winepedir}/windowscodecs.%{winedll} +%{_libdir}/wine/%{winepedir}/windows.media.devices.dll +%{_libdir}/wine/%{winepedir}/windowscodecs.dll %{_libdir}/wine/%{winesodir}/windowscodecs.so -%{_libdir}/wine/%{winepedir}/windowscodecsext.%{winedll} -%{_libdir}/wine/%{winepedir}/winebus.%{winesys} +%{_libdir}/wine/%{winepedir}/windowscodecsext.dll +%{_libdir}/wine/%{winepedir}/winebus.sys %{_libdir}/wine/%{winesodir}/winebus.sys.so %{_libdir}/wine/%{winesodir}/winegstreamer.so -%{_libdir}/wine/%{winepedir}/winegstreamer.%{winedll} -%{_libdir}/wine/%{winepedir}/winehid.%{winesys} -%{_libdir}/wine/%{winepedir}/winejoystick.%{winedrv} +%{_libdir}/wine/%{winepedir}/winegstreamer.dll +%{_libdir}/wine/%{winepedir}/winehid.sys +%{_libdir}/wine/%{winepedir}/winejoystick.drv %{_libdir}/wine/%{winesodir}/winejoystick.drv.so -%{_libdir}/wine/%{winepedir}/winemapi.%{winedll} -%{_libdir}/wine/%{winepedir}/wineusb.%{winesys} +%{_libdir}/wine/%{winepedir}/winemapi.dll +%{_libdir}/wine/%{winepedir}/wineusb.sys %{_libdir}/wine/%{winesodir}/wineusb.sys.so %{_libdir}/wine/%{winesodir}/winevulkan.so -%{_libdir}/wine/%{winepedir}/winevulkan.%{winedll} -%{_libdir}/wine/%{winepedir}/winex11.%{winedrv} +%{_libdir}/wine/%{winepedir}/winevulkan.dll +%{_libdir}/wine/%{winepedir}/winex11.drv %{_libdir}/wine/%{winesodir}/winex11.drv.so -%{_libdir}/wine/%{winepedir}/wing32.%{winedll} -%{_libdir}/wine/%{winepedir}/winhttp.%{winedll} -%{_libdir}/wine/%{winepedir}/wininet.%{winedll} -%{_libdir}/wine/%{winepedir}/winmm.%{winedll} -%{_libdir}/wine/%{winepedir}/winnls32.%{winedll} -%{_libdir}/wine/%{winepedir}/winspool.%{winedrv} +%{_libdir}/wine/%{winepedir}/wing32.dll +%{_libdir}/wine/%{winepedir}/winhttp.dll +%{_libdir}/wine/%{winepedir}/wininet.dll +%{_libdir}/wine/%{winepedir}/winmm.dll +%{_libdir}/wine/%{winepedir}/winnls32.dll +%{_libdir}/wine/%{winepedir}/winspool.drv %{_libdir}/wine/%{winesodir}/winspool.drv.so -%{_libdir}/wine/%{winepedir}/winsta.%{winedll} -%{_libdir}/wine/%{winepedir}/wmasf.%{winedll} -%{_libdir}/wine/%{winepedir}/wmi.%{winedll} -%{_libdir}/wine/%{winepedir}/wmic.%{wineexe} -%{_libdir}/wine/%{winepedir}/wmiutils.%{winedll} -%{_libdir}/wine/%{winepedir}/wmp.%{winedll} -%{_libdir}/wine/%{winepedir}/wmvcore.%{winedll} -%{_libdir}/wine/%{winepedir}/spoolss.%{winedll} -%{_libdir}/wine/%{winepedir}/winscard.%{winedll} -%{_libdir}/wine/%{winepedir}/wintab32.%{winedll} -%{_libdir}/wine/%{winepedir}/wintrust.%{winedll} -%{_libdir}/wine/%{winepedir}/winusb.%{winedll} -%{_libdir}/wine/%{winepedir}/wlanapi.%{winedll} -%{_libdir}/wine/%{winepedir}/wlanui.%{winedll} +%{_libdir}/wine/%{winepedir}/winsta.dll +%{_libdir}/wine/%{winepedir}/wmasf.dll +%{_libdir}/wine/%{winepedir}/wmi.dll +%{_libdir}/wine/%{winepedir}/wmic.exe +%{_libdir}/wine/%{winepedir}/wmiutils.dll +%{_libdir}/wine/%{winepedir}/wmp.dll +%{_libdir}/wine/%{winepedir}/wmvcore.dll +%{_libdir}/wine/%{winepedir}/spoolss.dll +%{_libdir}/wine/%{winepedir}/winscard.dll +%{_libdir}/wine/%{winepedir}/wintab32.dll +%{_libdir}/wine/%{winepedir}/wintrust.dll +%{_libdir}/wine/%{winepedir}/winusb.dll +%{_libdir}/wine/%{winepedir}/wlanapi.dll +%{_libdir}/wine/%{winepedir}/wlanui.dll %{_libdir}/wine/%{winesodir}/wmphoto.so -%{_libdir}/wine/%{winepedir}/wmphoto.%{winedll} -%{_libdir}/wine/%{winepedir}/wnaspi32.%{winedll} +%{_libdir}/wine/%{winepedir}/wmphoto.dll +%{_libdir}/wine/%{winepedir}/wnaspi32.dll %{_libdir}/wine/%{winesodir}/wnaspi32.dll.so %if 0%{?wine_staging} %ifarch x86_64 -%{_libdir}/wine/%{winepedir}/wow64cpu.%{winedll} +%{_libdir}/wine/%{winepedir}/wow64cpu.dll %endif %endif -%{_libdir}/wine/%{winepedir}/wpc.%{winedll} -%{_libdir}/wine/%{winepedir}/wpcap.%{winedll} +%{_libdir}/wine/%{winepedir}/wpc.dll +%{_libdir}/wine/%{winepedir}/wpcap.dll %{_libdir}/wine/%{winesodir}/wpcap.dll.so -%{_libdir}/wine/%{winepedir}/ws2_32.%{winedll} +%{_libdir}/wine/%{winepedir}/ws2_32.dll %{_libdir}/wine/%{winesodir}/ws2_32.dll.so -%{_libdir}/wine/%{winepedir}/wsdapi.%{winedll} -%{_libdir}/wine/%{winepedir}/wshom.%{wineocx} -%{_libdir}/wine/%{winepedir}/wsnmp32.%{winedll} -%{_libdir}/wine/%{winepedir}/wsock32.%{winedll} -%{_libdir}/wine/%{winepedir}/wtsapi32.%{winedll} -%{_libdir}/wine/%{winepedir}/wuapi.%{winedll} -%{_libdir}/wine/%{winepedir}/wuaueng.%{winedll} +%{_libdir}/wine/%{winepedir}/wsdapi.dll +%{_libdir}/wine/%{winepedir}/wshom.ocx +%{_libdir}/wine/%{winepedir}/wsnmp32.dll +%{_libdir}/wine/%{winepedir}/wsock32.dll +%{_libdir}/wine/%{winepedir}/wtsapi32.dll +%{_libdir}/wine/%{winepedir}/wuapi.dll +%{_libdir}/wine/%{winepedir}/wuaueng.dll %if 0%{?wine_staging} -%{_libdir}/wine/%{winepedir}/wuauserv.%{wineexe} -%endif -%{_libdir}/wine/%{winepedir}/security.%{winedll} -%{_libdir}/wine/%{winepedir}/sfc.%{winedll} -%{_libdir}/wine/%{winepedir}/wineps.%{winedrv} -%{_libdir}/wine/%{winepedir}/d3d8.%{winedll} -%{_libdir}/wine/%{winepedir}/d3d8thk.%{winedll} -%ghost %{_libdir}/wine/%{winepedir}/d3d9.%{winedll} -%{_libdir}/wine/%{winepedir}/wine-d3d9.%{winedll} -%{_libdir}/wine/%{winepedir}/opengl32.%{winedll} +%{_libdir}/wine/%{winepedir}/wuauserv.exe +%endif +%{_libdir}/wine/%{winepedir}/security.dll +%{_libdir}/wine/%{winepedir}/sfc.dll +%{_libdir}/wine/%{winepedir}/wineps.drv +%{_libdir}/wine/%{winepedir}/d3d8.dll +%{_libdir}/wine/%{winepedir}/d3d8thk.dll +%ghost %{_libdir}/wine/%{winepedir}/d3d9.dll +%{_libdir}/wine/%{winepedir}/wine-d3d9.dll +%{_libdir}/wine/%{winepedir}/opengl32.dll %{_libdir}/wine/%{winesodir}/opengl32.dll.so -%{_libdir}/wine/%{winepedir}/wined3d.%{winedll} +%{_libdir}/wine/%{winepedir}/wined3d.dll %{_libdir}/wine/%{winesodir}/wined3d.dll.so -%{_libdir}/wine/%{winepedir}/dnsapi.%{winedll} +%{_libdir}/wine/%{winepedir}/dnsapi.dll %{_libdir}/wine/%{winesodir}/dnsapi.so -%{_libdir}/wine/%{winepedir}/iexplore.%{wineexe} -%{_libdir}/wine/%{winepedir}/x3daudio1_0.%{winedll} +%{_libdir}/wine/%{winepedir}/iexplore.exe +%{_libdir}/wine/%{winepedir}/x3daudio1_0.dll %{_libdir}/wine/%{winesodir}/x3daudio1_0.dll.so -%{_libdir}/wine/%{winepedir}/x3daudio1_1.%{winedll} +%{_libdir}/wine/%{winepedir}/x3daudio1_1.dll %{_libdir}/wine/%{winesodir}/x3daudio1_1.dll.so -%{_libdir}/wine/%{winepedir}/x3daudio1_2.%{winedll} +%{_libdir}/wine/%{winepedir}/x3daudio1_2.dll %{_libdir}/wine/%{winesodir}/x3daudio1_2.dll.so -%{_libdir}/wine/%{winepedir}/x3daudio1_3.%{winedll} +%{_libdir}/wine/%{winepedir}/x3daudio1_3.dll %{_libdir}/wine/%{winesodir}/x3daudio1_3.dll.so -%{_libdir}/wine/%{winepedir}/x3daudio1_4.%{winedll} +%{_libdir}/wine/%{winepedir}/x3daudio1_4.dll %{_libdir}/wine/%{winesodir}/x3daudio1_4.dll.so -%{_libdir}/wine/%{winepedir}/x3daudio1_5.%{winedll} +%{_libdir}/wine/%{winepedir}/x3daudio1_5.dll %{_libdir}/wine/%{winesodir}/x3daudio1_5.dll.so -%{_libdir}/wine/%{winepedir}/x3daudio1_6.%{winedll} +%{_libdir}/wine/%{winepedir}/x3daudio1_6.dll %{_libdir}/wine/%{winesodir}/x3daudio1_6.dll.so -%{_libdir}/wine/%{winepedir}/x3daudio1_7.%{winedll} +%{_libdir}/wine/%{winepedir}/x3daudio1_7.dll %{_libdir}/wine/%{winesodir}/x3daudio1_7.dll.so %if 0%{?wine_staging} -%{_libdir}/wine/%{winepedir}/xactengine2_0.%{winedll} +%{_libdir}/wine/%{winepedir}/xactengine2_0.dll %{_libdir}/wine/%{winesodir}/xactengine2_0.dll.so -%{_libdir}/wine/%{winepedir}/xactengine2_4.%{winedll} +%{_libdir}/wine/%{winepedir}/xactengine2_4.dll %{_libdir}/wine/%{winesodir}/xactengine2_4.dll.so -%{_libdir}/wine/%{winepedir}/xactengine2_7.%{winedll} +%{_libdir}/wine/%{winepedir}/xactengine2_7.dll %{_libdir}/wine/%{winesodir}/xactengine2_7.dll.so -%{_libdir}/wine/%{winepedir}/xactengine2_9.%{winedll} +%{_libdir}/wine/%{winepedir}/xactengine2_9.dll %{_libdir}/wine/%{winesodir}/xactengine2_9.dll.so %endif -%{_libdir}/wine/%{winepedir}/xactengine3_0.%{winedll} +%{_libdir}/wine/%{winepedir}/xactengine3_0.dll %{_libdir}/wine/%{winesodir}/xactengine3_0.dll.so -%{_libdir}/wine/%{winepedir}/xactengine3_1.%{winedll} +%{_libdir}/wine/%{winepedir}/xactengine3_1.dll %{_libdir}/wine/%{winesodir}/xactengine3_1.dll.so -%{_libdir}/wine/%{winepedir}/xactengine3_2.%{winedll} +%{_libdir}/wine/%{winepedir}/xactengine3_2.dll %{_libdir}/wine/%{winesodir}/xactengine3_2.dll.so -%{_libdir}/wine/%{winepedir}/xactengine3_3.%{winedll} +%{_libdir}/wine/%{winepedir}/xactengine3_3.dll %{_libdir}/wine/%{winesodir}/xactengine3_3.dll.so -%{_libdir}/wine/%{winepedir}/xactengine3_4.%{winedll} +%{_libdir}/wine/%{winepedir}/xactengine3_4.dll %{_libdir}/wine/%{winesodir}/xactengine3_4.dll.so -%{_libdir}/wine/%{winepedir}/xactengine3_5.%{winedll} +%{_libdir}/wine/%{winepedir}/xactengine3_5.dll %{_libdir}/wine/%{winesodir}/xactengine3_5.dll.so -%{_libdir}/wine/%{winepedir}/xactengine3_6.%{winedll} +%{_libdir}/wine/%{winepedir}/xactengine3_6.dll %{_libdir}/wine/%{winesodir}/xactengine3_6.dll.so -%{_libdir}/wine/%{winepedir}/xactengine3_7.%{winedll} +%{_libdir}/wine/%{winepedir}/xactengine3_7.dll %{_libdir}/wine/%{winesodir}/xactengine3_7.dll.so -%{_libdir}/wine/%{winepedir}/xapofx1_1.%{winedll} +%{_libdir}/wine/%{winepedir}/xapofx1_1.dll %{_libdir}/wine/%{winesodir}/xapofx1_1.dll.so -%{_libdir}/wine/%{winepedir}/xapofx1_2.%{winedll} +%{_libdir}/wine/%{winepedir}/xapofx1_2.dll %{_libdir}/wine/%{winesodir}/xapofx1_2.dll.so -%{_libdir}/wine/%{winepedir}/xapofx1_3.%{winedll} +%{_libdir}/wine/%{winepedir}/xapofx1_3.dll %{_libdir}/wine/%{winesodir}/xapofx1_3.dll.so -%{_libdir}/wine/%{winepedir}/xapofx1_4.%{winedll} +%{_libdir}/wine/%{winepedir}/xapofx1_4.dll %{_libdir}/wine/%{winesodir}/xapofx1_4.dll.so -%{_libdir}/wine/%{winepedir}/xapofx1_5.%{winedll} +%{_libdir}/wine/%{winepedir}/xapofx1_5.dll %{_libdir}/wine/%{winesodir}/xapofx1_5.dll.so -%{_libdir}/wine/%{winepedir}/xaudio2_0.%{winedll} +%{_libdir}/wine/%{winepedir}/xaudio2_0.dll %{_libdir}/wine/%{winesodir}/xaudio2_0.dll.so -%{_libdir}/wine/%{winepedir}/xaudio2_1.%{winedll} +%{_libdir}/wine/%{winepedir}/xaudio2_1.dll %{_libdir}/wine/%{winesodir}/xaudio2_1.dll.so -%{_libdir}/wine/%{winepedir}/xaudio2_2.%{winedll} +%{_libdir}/wine/%{winepedir}/xaudio2_2.dll %{_libdir}/wine/%{winesodir}/xaudio2_2.dll.so -%{_libdir}/wine/%{winepedir}/xaudio2_3.%{winedll} +%{_libdir}/wine/%{winepedir}/xaudio2_3.dll %{_libdir}/wine/%{winesodir}/xaudio2_3.dll.so -%{_libdir}/wine/%{winepedir}/xaudio2_4.%{winedll} +%{_libdir}/wine/%{winepedir}/xaudio2_4.dll %{_libdir}/wine/%{winesodir}/xaudio2_4.dll.so -%{_libdir}/wine/%{winepedir}/xaudio2_5.%{winedll} +%{_libdir}/wine/%{winepedir}/xaudio2_5.dll %{_libdir}/wine/%{winesodir}/xaudio2_5.dll.so -%{_libdir}/wine/%{winepedir}/xaudio2_6.%{winedll} +%{_libdir}/wine/%{winepedir}/xaudio2_6.dll %{_libdir}/wine/%{winesodir}/xaudio2_6.dll.so -%{_libdir}/wine/%{winepedir}/xaudio2_7.%{winedll} +%{_libdir}/wine/%{winepedir}/xaudio2_7.dll %{_libdir}/wine/%{winesodir}/xaudio2_7.dll.so -%{_libdir}/wine/%{winepedir}/xaudio2_8.%{winedll} +%{_libdir}/wine/%{winepedir}/xaudio2_8.dll %{_libdir}/wine/%{winesodir}/xaudio2_8.dll.so -%{_libdir}/wine/%{winepedir}/xaudio2_9.%{winedll} +%{_libdir}/wine/%{winepedir}/xaudio2_9.dll %{_libdir}/wine/%{winesodir}/xaudio2_9.dll.so -%{_libdir}/wine/%{winepedir}/xcopy.%{wineexe} -%{_libdir}/wine/%{winepedir}/xinput1_1.%{winedll} -%{_libdir}/wine/%{winepedir}/xinput1_2.%{winedll} -%{_libdir}/wine/%{winepedir}/xinput1_3.%{winedll} -%{_libdir}/wine/%{winepedir}/xinput1_4.%{winedll} -%{_libdir}/wine/%{winepedir}/xinput9_1_0.%{winedll} -%{_libdir}/wine/%{winepedir}/xmllite.%{winedll} -%{_libdir}/wine/%{winepedir}/xolehlp.%{winedll} -%{_libdir}/wine/%{winepedir}/xpsprint.%{winedll} -%{_libdir}/wine/%{winepedir}/xpssvcs.%{winedll} +%{_libdir}/wine/%{winepedir}/xcopy.exe +%{_libdir}/wine/%{winepedir}/xinput1_1.dll +%{_libdir}/wine/%{winepedir}/xinput1_2.dll +%{_libdir}/wine/%{winepedir}/xinput1_3.dll +%{_libdir}/wine/%{winepedir}/xinput1_4.dll +%{_libdir}/wine/%{winepedir}/xinput9_1_0.dll +%{_libdir}/wine/%{winepedir}/xmllite.dll +%{_libdir}/wine/%{winepedir}/xolehlp.dll +%{_libdir}/wine/%{winepedir}/xpsprint.dll +%{_libdir}/wine/%{winepedir}/xpssvcs.dll %if 0%{?wine_staging} %ifarch x86_64 aarch64 -%{_libdir}/wine/%{winepedir}/nvapi64.%{winedll} -%{_libdir}/wine/%{winepedir}/nvencodeapi64.%{winedll} +%{_libdir}/wine/%{winepedir}/nvapi64.dll +%{_libdir}/wine/%{winepedir}/nvencodeapi64.dll %{_libdir}/wine/%{winesodir}/nvencodeapi64.dll.so %else -%{_libdir}/wine/%{winepedir}/nvapi.%{winedll} -%{_libdir}/wine/%{winepedir}/nvencodeapi.%{winedll} +%{_libdir}/wine/%{winepedir}/nvapi.dll +%{_libdir}/wine/%{winepedir}/nvencodeapi.dll %{_libdir}/wine/%{winesodir}/nvencodeapi.dll.so %endif %endif @@ -2448,22 +2423,22 @@ fi # ldap subpackage %files ldap %{_libdir}/wine/%{winesodir}/wldap32.so -%{_libdir}/wine/%{winepedir}/wldap32.%{winedll} +%{_libdir}/wine/%{winepedir}/wldap32.dll # cms subpackage %files cms %{_libdir}/wine/%{winesodir}/mscms.so -%{_libdir}/wine/%{winepedir}/mscms.%{winedll} +%{_libdir}/wine/%{winepedir}/mscms.dll # twain subpackage %files twain -%{_libdir}/wine/%{winepedir}/twain_32.%{winedll} -%{_libdir}/wine/%{winepedir}/sane.%{wineds} +%{_libdir}/wine/%{winepedir}/twain_32.dll +%{_libdir}/wine/%{winepedir}/sane.ds %{_libdir}/wine/%{winesodir}/sane.ds.so # capi subpackage %files capi -%{_libdir}/wine/%{winepedir}/capi2032.%{winedll} +%{_libdir}/wine/%{winepedir}/capi2032.dll %{_libdir}/wine/%{winesodir}/capi2032.dll.so %files devel @@ -2491,27 +2466,30 @@ fi %lang(fr) %{_mandir}/fr.UTF-8/man1/winemaker.1* %attr(0755, root, root) %dir %{_includedir}/wine %{_includedir}/wine/* +%ifarch %{ix86} x86_64 %{_libdir}/wine/%{winepedir}/*.a +%endif %{_libdir}/wine/%{winesodir}/*.a %{_libdir}/wine/%{winesodir}/*.def + %files pulseaudio -%{_libdir}/wine/%{winepedir}/winepulse.%{winedrv} +%{_libdir}/wine/%{winepedir}/winepulse.drv %{_libdir}/wine/%{winesodir}/winepulse.drv.so %files alsa -%{_libdir}/wine/%{winepedir}/winealsa.%{winedrv} +%{_libdir}/wine/%{winepedir}/winealsa.drv %{_libdir}/wine/%{winesodir}/winealsa.drv.so %if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 %files openal -%{_libdir}/wine/%{winepedir}/openal32.%{winedll} +%{_libdir}/wine/%{winepedir}/openal32.dll %{_libdir}/wine/%{winesodir}/openal32.dll.so %endif %if 0%{?fedora} %files opencl -%{_libdir}/wine/%{winepedir}/opencl.%{winedll} +%{_libdir}/wine/%{winepedir}/opencl.dll %{_libdir}/wine/%{winesodir}/opencl.so %endif From ca1061937172dde5e262e50785381f87bbf68765 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Fri, 14 May 2021 00:17:44 -0500 Subject: [PATCH 633/715] Add file section just for ARM ARM does not build everything as PEs. --- wine.spec | 868 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 868 insertions(+) diff --git a/wine.spec b/wine.spec index 23815cc..15c3876 100644 --- a/wine.spec +++ b/wine.spec @@ -2088,6 +2088,9 @@ fi %{_libdir}/wine/%{winepedir}/wuaueng.dll %if 0%{?wine_staging} %{_libdir}/wine/%{winepedir}/wuauserv.exe +%ifarch %{arm} aarch64 +%{_libdir}/wine/%{winesodir}/wuauserv.exe.so +%endif %endif %{_libdir}/wine/%{winepedir}/security.dll %{_libdir}/wine/%{winepedir}/sfc.dll @@ -2189,10 +2192,16 @@ fi %if 0%{?wine_staging} %ifarch x86_64 aarch64 %{_libdir}/wine/%{winepedir}/nvapi64.dll +%ifarch %{arm} aarch64 +%{_libdir}/wine/%{winesodir}/nvapi64.dll.so +%endif %{_libdir}/wine/%{winepedir}/nvencodeapi64.dll %{_libdir}/wine/%{winesodir}/nvencodeapi64.dll.so %else %{_libdir}/wine/%{winepedir}/nvapi.dll +%ifarch %{arm} aarch64 +%{_libdir}/wine/%{winesodir}/nvapi.dll.so +%endif %{_libdir}/wine/%{winepedir}/nvencodeapi.dll %{_libdir}/wine/%{winesodir}/nvencodeapi.dll.so %endif @@ -2266,6 +2275,853 @@ fi %{_libdir}/wine/%{winepedir}/wow32.dll %endif +# ARM SOs +%ifarch %{arm} aarch64 +%{_libdir}/wine/%{winesodir}/explorer.exe.so +%{_libdir}/wine/%{winesodir}/cabarc.exe.so +%{_libdir}/wine/%{winesodir}/control.exe.so +%{_libdir}/wine/%{winesodir}/cmd.exe.so +%{_libdir}/wine/%{winesodir}/dxdiag.exe.so +%{_libdir}/wine/%{winesodir}/notepad.exe.so +%{_libdir}/wine/%{winesodir}/plugplay.exe.so +%{_libdir}/wine/%{winesodir}/progman.exe.so +%{_libdir}/wine/%{winesodir}/taskmgr.exe.so +%{_libdir}/wine/%{winesodir}/winefile.exe.so +%{_libdir}/wine/%{winesodir}/winemine.exe.so +%{_libdir}/wine/%{winesodir}/winemsibuilder.exe.so +%{_libdir}/wine/%{winesodir}/winepath.exe.so +%{_libdir}/wine/%{winesodir}/winmgmt.exe.so +%{_libdir}/wine/%{winesodir}/winver.exe.so +%{_libdir}/wine/%{winesodir}/wordpad.exe.so +%{_libdir}/wine/%{winesodir}/write.exe.so +%{_libdir}/wine/%{winesodir}/wusa.exe.so +%{_libdir}/wine/%{winesodir}/attrib.exe.so +%{_libdir}/wine/%{winesodir}/arp.exe.so +%{_libdir}/wine/%{winesodir}/aspnet_regiis.exe.so +%{_libdir}/wine/%{winesodir}/cacls.exe.so +%{_libdir}/wine/%{winesodir}/conhost.exe.so +%{_libdir}/wine/%{winesodir}/cscript.exe.so +%{_libdir}/wine/%{winesodir}/dism.exe.so +%{_libdir}/wine/%{winesodir}/dplaysvr.exe.so +%{_libdir}/wine/%{winesodir}/dpnsvr.exe.so +%{_libdir}/wine/%{winesodir}/dpvsetup.exe.so +%{_libdir}/wine/%{winesodir}/eject.exe.so +%{_libdir}/wine/%{winesodir}/expand.exe.so +%{_libdir}/wine/%{winesodir}/extrac32.exe.so +%{_libdir}/wine/%{winesodir}/fc.exe.so +%{_libdir}/wine/%{winesodir}/find.exe.so +%{_libdir}/wine/%{winesodir}/findstr.exe.so +%{_libdir}/wine/%{winesodir}/fsutil.exe.so +%{_libdir}/wine/%{winesodir}/hostname.exe.so +%{_libdir}/wine/%{winesodir}/ipconfig.exe.so +%{_libdir}/wine/%{winesodir}/winhlp32.exe.so +%{_libdir}/wine/%{winesodir}/mshta.exe.so +%if 0%{?wine_staging} +%{_libdir}/wine/%{winesodir}/msidb.exe.so +%endif +%{_libdir}/wine/%{winesodir}/msiexec.exe.so +%{_libdir}/wine/%{winesodir}/net.exe.so +%{_libdir}/wine/%{winesodir}/netstat.exe.so +%{_libdir}/wine/%{winesodir}/ngen.exe.so +%{_libdir}/wine/%{winesodir}/ntoskrnl.exe.so +%{_libdir}/wine/%{winesodir}/oleview.exe.so +%{_libdir}/wine/%{winesodir}/ping.exe.so +%{_libdir}/wine/%{winesodir}/powershell.exe.so +%{_libdir}/wine/%{winesodir}/reg.exe.so +%{_libdir}/wine/%{winesodir}/regasm.exe.so +%{_libdir}/wine/%{winesodir}/regedit.exe.so +%{_libdir}/wine/%{winesodir}/regsvcs.exe.so +%{_libdir}/wine/%{winesodir}/regsvr32.exe.so +%{_libdir}/wine/%{winesodir}/rpcss.exe.so +%{_libdir}/wine/%{winesodir}/rundll32.exe.so +%{_libdir}/wine/%{winesodir}/schtasks.exe.so +%{_libdir}/wine/%{winesodir}/sdbinst.exe.so +%{_libdir}/wine/%{winesodir}/secedit.exe.so +%{_libdir}/wine/%{winesodir}/servicemodelreg.exe.so +%{_libdir}/wine/%{winesodir}/services.exe.so +%{_libdir}/wine/%{winesodir}/start.exe.so +%{_libdir}/wine/%{winesodir}/tasklist.exe.so +%{_libdir}/wine/%{winesodir}/termsv.exe.so +%{_libdir}/wine/%{winesodir}/view.exe.so +%{_libdir}/wine/%{winesodir}/wevtutil.exe.so +%{_libdir}/wine/%{winesodir}/where.exe.so +%{_libdir}/wine/%{winesodir}/whoami.exe.so +%{_libdir}/wine/%{winesodir}/wineboot.exe.so +%{_libdir}/wine/%{winesodir}/wineconsole.exe.so +%{_libdir}/wine/%{winesodir}/winedevice.exe.so +%{_libdir}/wine/%{winesodir}/wmplayer.exe.so +%{_libdir}/wine/%{winesodir}/wscript.exe.so +%{_libdir}/wine/%{winesodir}/uninstaller.exe.so +%{_libdir}/wine/%{winesodir}/acledit.dll.so +%{_libdir}/wine/%{winesodir}/aclui.dll.so +%{_libdir}/wine/%{winesodir}/activeds.dll.so +%{_libdir}/wine/%{winesodir}/activeds.tlb.so +%{_libdir}/wine/%{winesodir}/actxprxy.dll.so +%{_libdir}/wine/%{winesodir}/adsldp.dll.so +%{_libdir}/wine/%{winesodir}/adsldpc.dll.so +%{_libdir}/wine/%{winesodir}/advapi32.dll.so +%{_libdir}/wine/%{winesodir}/advpack.dll.so +%{_libdir}/wine/%{winesodir}/amsi.dll.so +%{_libdir}/wine/%{winesodir}/amstream.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-appmodel-identity-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-appmodel-runtime-l1-1-1.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-appmodel-runtime-l1-1-2.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-apiquery-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-appcompat-l1-1-1.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-appinit-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-atoms-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-bem-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-com-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-com-l1-1-1.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-com-private-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-comm-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-console-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-console-l1-2-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-console-l2-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-crt-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-crt-l2-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-datetime-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-datetime-l1-1-1.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-debug-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-debug-l1-1-1.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-delayload-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-delayload-l1-1-1.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-errorhandling-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-errorhandling-l1-1-1.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-errorhandling-l1-1-2.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-errorhandling-l1-1-3.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-fibers-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-fibers-l1-1-1.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-file-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-file-l1-2-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-file-l1-2-1.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-file-l1-2-2.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-file-l2-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-file-l2-1-1.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-file-l2-1-2.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-file-ansi-l2-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-file-fromapp-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-handle-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-heap-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-heap-l1-2-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-heap-l2-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-heap-obsolete-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-interlocked-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-interlocked-l1-2-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-io-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-io-l1-1-1.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-job-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-job-l2-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-largeinteger-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-kernel32-legacy-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-kernel32-legacy-l1-1-1.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-kernel32-legacy-l1-1-2.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-kernel32-private-l1-1-1.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-libraryloader-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-libraryloader-l1-1-1.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-libraryloader-l1-2-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-libraryloader-l1-2-1.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-libraryloader-l1-2-2.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-libraryloader-l2-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-localization-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-localization-l1-2-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-localization-l1-2-1.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-localization-l1-2-2.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-localization-l2-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-localization-obsolete-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-localization-obsolete-l1-2-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-localization-obsolete-l1-3-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-localization-private-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-localregistry-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-memory-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-memory-l1-1-1.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-memory-l1-1-2.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-memory-l1-1-3.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-memory-l1-1-4.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-misc-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-namedpipe-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-namedpipe-l1-2-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-namedpipe-ansi-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-namespace-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-normalization-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-path-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-privateprofile-l1-1-1.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-processenvironment-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-processenvironment-l1-2-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-processthreads-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-processthreads-l1-1-1.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-processthreads-l1-1-2.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-processthreads-l1-1-3.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-processtopology-obsolete-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-profile-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-psapi-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-psapi-ansi-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-psapi-obsolete-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-quirks-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-realtime-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-registry-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-registry-l2-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-registry-l2-2-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-registryuserspecific-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-rtlsupport-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-rtlsupport-l1-2-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-shlwapi-legacy-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-shlwapi-obsolete-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-shlwapi-obsolete-l1-2-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-shutdown-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-sidebyside-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-string-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-string-l2-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-string-obsolete-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-stringansi-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-stringloader-l1-1-1.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-synch-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-synch-l1-2-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-synch-l1-2-1.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-synch-ansi-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-sysinfo-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-sysinfo-l1-2-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-sysinfo-l1-2-1.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-systemtopology-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-threadpool-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-threadpool-l1-2-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-threadpool-legacy-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-threadpool-private-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-timezone-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-toolhelp-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-url-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-util-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-version-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-version-l1-1-1.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-version-private-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-versionansi-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-windowserrorreporting-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-winrt-error-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-winrt-error-l1-1-1.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-winrt-errorprivate-l1-1-1.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-winrt-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-winrt-registration-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-winrt-string-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-winrt-string-l1-1-1.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-wow64-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-wow64-l1-1-1.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-xstate-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-xstate-l2-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-crt-conio-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-crt-convert-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-crt-environment-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-crt-filesystem-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-crt-heap-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-crt-locale-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-crt-math-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-crt-multibyte-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-crt-private-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-crt-process-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-crt-runtime-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-crt-stdio-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-crt-string-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-crt-time-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-crt-utility-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-devices-config-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-devices-config-l1-1-1.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-devices-query-l1-1-1.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-downlevel-advapi32-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-downlevel-advapi32-l2-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-downlevel-kernel32-l2-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-downlevel-normaliz-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-downlevel-ole32-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-downlevel-shell32-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-downlevel-shlwapi-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-downlevel-shlwapi-l2-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-downlevel-user32-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-downlevel-version-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-dx-d3dkmt-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-eventing-classicprovider-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-eventing-consumer-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-eventing-controller-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-eventing-legacy-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-eventing-provider-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-eventlog-legacy-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-gaming-tcui-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-gdi-dpiinfo-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-mm-joystick-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-mm-misc-l1-1-1.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-mm-mme-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-mm-time-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-ntuser-dc-access-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-ntuser-rectangle-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-ntuser-sysparams-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-perf-legacy-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-power-base-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-power-setting-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-rtcore-ntuser-draw-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-rtcore-ntuser-private-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-rtcore-ntuser-private-l1-1-4.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-rtcore-ntuser-window-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-rtcore-ntuser-winevent-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-rtcore-ntuser-wmpointer-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-rtcore-ntuser-wmpointer-l1-1-3.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-security-activedirectoryclient-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-security-audit-l1-1-1.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-security-base-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-security-base-l1-2-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-security-base-private-l1-1-1.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-security-credentials-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-security-cryptoapi-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-security-grouppolicy-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-security-lsalookup-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-security-lsalookup-l1-1-1.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-security-lsalookup-l2-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-security-lsalookup-l2-1-1.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-security-lsapolicy-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-security-provider-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-security-sddl-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-security-systemfunctions-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-service-core-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-service-core-l1-1-1.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-service-management-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-service-management-l2-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-service-private-l1-1-1.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-service-winsvc-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-service-winsvc-l1-2-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-shcore-obsolete-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-shcore-scaling-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-shcore-scaling-l1-1-1.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-shcore-stream-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-shcore-stream-winrt-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-shcore-thread-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-shell-shellcom-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-shell-shellfolders-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/apphelp.dll.so +%{_libdir}/wine/%{winesodir}/appwiz.cpl.so +%{_libdir}/wine/%{winesodir}/atl.dll.so +%{_libdir}/wine/%{winesodir}/atl80.dll.so +%{_libdir}/wine/%{winesodir}/atl90.dll.so +%{_libdir}/wine/%{winesodir}/atl100.dll.so +%{_libdir}/wine/%{winesodir}/atl110.dll.so +%{_libdir}/wine/%{winesodir}/atlthunk.dll.so +%{_libdir}/wine/%{winesodir}/atmlib.dll.so +%{_libdir}/wine/%{winesodir}/authz.dll.so +%{_libdir}/wine/%{winesodir}/avifil32.dll.so +%{_libdir}/wine/%{winesodir}/avrt.dll.so +%{_libdir}/wine/%{winesodir}/bcrypt.dll.so +%{_libdir}/wine/%{winesodir}/bluetoothapis.dll.so +%{_libdir}/wine/%{winesodir}/browseui.dll.so +%{_libdir}/wine/%{winesodir}/bthprops.cpl.so +%{_libdir}/wine/%{winesodir}/cabinet.dll.so +%{_libdir}/wine/%{winesodir}/cards.dll.so +%{_libdir}/wine/%{winesodir}/cdosys.dll.so +%{_libdir}/wine/%{winesodir}/cfgmgr32.dll.so +%{_libdir}/wine/%{winesodir}/chcp.com.so +%{_libdir}/wine/%{winesodir}/clock.exe.so +%{_libdir}/wine/%{winesodir}/clusapi.dll.so +%{_libdir}/wine/%{winesodir}/combase.dll.so +%{_libdir}/wine/%{winesodir}/comcat.dll.so +%{_libdir}/wine/%{winesodir}/comctl32.dll.so +%{_libdir}/wine/%{winesodir}/comdlg32.dll.so +%{_libdir}/wine/%{winesodir}/compstui.dll.so +%{_libdir}/wine/%{winesodir}/comsvcs.dll.so +%{_libdir}/wine/%{winesodir}/concrt140.dll.so +%{_libdir}/wine/%{winesodir}/connect.dll.so +%{_libdir}/wine/%{winesodir}/credui.dll.so +%{_libdir}/wine/%{winesodir}/crtdll.dll.so +%{_libdir}/wine/%{winesodir}/crypt32.dll.so +%{_libdir}/wine/%{winesodir}/cryptdlg.dll.so +%{_libdir}/wine/%{winesodir}/cryptdll.dll.so +%{_libdir}/wine/%{winesodir}/cryptext.dll.so +%{_libdir}/wine/%{winesodir}/cryptnet.dll.so +%{_libdir}/wine/%{winesodir}/cryptsp.dll.so +%{_libdir}/wine/%{winesodir}/cryptui.dll.so +%{_libdir}/wine/%{winesodir}/ctl3d32.dll.so +%{_libdir}/wine/%{winesodir}/d2d1.dll.so +%{_libdir}/wine/%{winesodir}/d3d10.dll.so +%{_libdir}/wine/%{winesodir}/d3d10_1.dll.so +%{_libdir}/wine/%{winesodir}/d3d10core.dll.so +%{_libdir}/wine/%{winesodir}/d3d11.dll.so +%{_libdir}/wine/%{winesodir}/d3dcompiler_*.dll.so +%{_libdir}/wine/%{winesodir}/d3dim.dll.so +%{_libdir}/wine/%{winesodir}/d3dim700.dll.so +%{_libdir}/wine/%{winesodir}/d3drm.dll.so +%{_libdir}/wine/%{winesodir}/d3dx9_*.dll.so +%{_libdir}/wine/%{winesodir}/d3dx10_*.dll.so +%{_libdir}/wine/%{winesodir}/d3dx11_42.dll.so +%{_libdir}/wine/%{winesodir}/d3dx11_43.dll.so +%{_libdir}/wine/%{winesodir}/d3dxof.dll.so +%{_libdir}/wine/%{winesodir}/davclnt.dll.so +%{_libdir}/wine/%{winesodir}/dbgeng.dll.so +%{_libdir}/wine/%{winesodir}/dbghelp.dll.so +%{_libdir}/wine/%{winesodir}/dciman32.dll.so +%{_libdir}/wine/%{winesodir}/dcomp.dll.so +%{_libdir}/wine/%{winesodir}/ddraw.dll.so +%{_libdir}/wine/%{winesodir}/ddrawex.dll.so +%{_libdir}/wine/%{winesodir}/devenum.dll.so +%{_libdir}/wine/%{winesodir}/dhcpcsvc.dll.so +%{_libdir}/wine/%{winesodir}/dhtmled.ocx.so +%{_libdir}/wine/%{winesodir}/difxapi.dll.so +%{_libdir}/wine/%{winesodir}/directmanipulation.dll.so +%{_libdir}/wine/%{winesodir}/dispex.dll.so +%{_libdir}/wine/%{winesodir}/dmband.dll.so +%{_libdir}/wine/%{winesodir}/dmcompos.dll.so +%{_libdir}/wine/%{winesodir}/dmime.dll.so +%{_libdir}/wine/%{winesodir}/dmloader.dll.so +%{_libdir}/wine/%{winesodir}/dmscript.dll.so +%{_libdir}/wine/%{winesodir}/dmstyle.dll.so +%{_libdir}/wine/%{winesodir}/dmsynth.dll.so +%{_libdir}/wine/%{winesodir}/dmusic.dll.so +%{_libdir}/wine/%{winesodir}/dmusic32.dll.so +%{_libdir}/wine/%{winesodir}/dplay.dll.so +%{_libdir}/wine/%{winesodir}/dplayx.dll.so +%{_libdir}/wine/%{winesodir}/dpnaddr.dll.so +%{_libdir}/wine/%{winesodir}/dpnet.dll.so +%{_libdir}/wine/%{winesodir}/dpnhpast.dll.so +%{_libdir}/wine/%{winesodir}/dpnlobby.dll.so +%{_libdir}/wine/%{winesodir}/dpvoice.dll.so +%{_libdir}/wine/%{winesodir}/dpwsockx.dll.so +%{_libdir}/wine/%{winesodir}/drmclien.dll.so +%{_libdir}/wine/%{winesodir}/dsound.dll.so +%{_libdir}/wine/%{winesodir}/dsdmo.dll.so +%{_libdir}/wine/%{winesodir}/dsquery.dll.so +%{_libdir}/wine/%{winesodir}/dssenh.dll.so +%{_libdir}/wine/%{winesodir}/dsuiext.dll.so +%{_libdir}/wine/%{winesodir}/dswave.dll.so +%{_libdir}/wine/%{winesodir}/dwmapi.dll.so +%{_libdir}/wine/%{winesodir}/dwrite.dll.so +%{_libdir}/wine/%{winesodir}/dx8vb.dll.so +%{_libdir}/wine/%{winesodir}/dxdiagn.dll.so +%{_libdir}/wine/%{winesodir}/dxgkrnl.sys.so +%{_libdir}/wine/%{winesodir}/dxgmms1.sys.so +%{_libdir}/wine/%{winesodir}/dxva2.dll.so +%{_libdir}/wine/%{winesodir}/esent.dll.so +%{_libdir}/wine/%{winesodir}/evr.dll.so +%{_libdir}/wine/%{winesodir}/explorerframe.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-authz-context-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-domainjoin-netjoin-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-dwmapi-ext-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-gdi-dc-l1-2-0.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-gdi-dc-create-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-gdi-dc-create-l1-1-1.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-gdi-devcaps-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-gdi-draw-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-gdi-draw-l1-1-1.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-gdi-font-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-gdi-font-l1-1-1.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-gdi-render-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-kernel32-package-l1-1-1.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-kernel32-package-current-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-ntuser-dialogbox-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-ntuser-draw-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-ntuser-gui-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-ntuser-gui-l1-3-0.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-ntuser-keyboard-l1-3-0.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-ntuser-misc-l1-2-0.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-ntuser-misc-l1-5-1.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-ntuser-message-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-ntuser-message-l1-1-1.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-ntuser-misc-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-ntuser-mouse-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-ntuser-private-l1-1-1.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-ntuser-private-l1-3-1.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-ntuser-rectangle-ext-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-ntuser-uicontext-ext-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-ntuser-window-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-ntuser-window-l1-1-1.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-ntuser-window-l1-1-4.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-ntuser-windowclass-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-ntuser-windowclass-l1-1-1.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-oleacc-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-ras-rasapi32-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-rtcore-gdi-devcaps-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-rtcore-gdi-object-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-rtcore-gdi-rgn-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-rtcore-ntuser-cursor-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-rtcore-ntuser-dc-access-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-rtcore-ntuser-dpi-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-rtcore-ntuser-dpi-l1-2-0.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-rtcore-ntuser-rawinput-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-rtcore-ntuser-syscolors-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-rtcore-ntuser-sysparams-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-security-credui-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-security-cryptui-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-shell-comctl32-init-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-shell-comdlg32-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-shell-shell32-l1-2-0.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-uxtheme-themes-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/faultrep.dll.so +%{_libdir}/wine/%{winesodir}/feclient.dll.so +%{_libdir}/wine/%{winesodir}/fltlib.dll.so +%{_libdir}/wine/%{winesodir}/fltmgr.sys.so +%{_libdir}/wine/%{winesodir}/fntcache.dll.so +%{_libdir}/wine/%{winesodir}/fontsub.dll.so +%{_libdir}/wine/%{winesodir}/fusion.dll.so +%{_libdir}/wine/%{winesodir}/fwpuclnt.dll.so +%{_libdir}/wine/%{winesodir}/gameux.dll.so +%{_libdir}/wine/%{winesodir}/gamingtcui.dll.so +%{_libdir}/wine/%{winesodir}/gdi32.dll.so +%{_libdir}/wine/%{winesodir}/gdiplus.dll.so +%{_libdir}/wine/%{winesodir}/glu32.dll.so +%{_libdir}/wine/%{winesodir}/gpkcsp.dll.so +%{_libdir}/wine/%{winesodir}/hal.dll.so +%{_libdir}/wine/%{winesodir}/hh.exe.so +%{_libdir}/wine/%{winesodir}/hhctrl.ocx.so +%{_libdir}/wine/%{winesodir}/hid.dll.so +%{_libdir}/wine/%{winesodir}/hidclass.sys.so +%{_libdir}/wine/%{winesodir}/hlink.dll.so +%{_libdir}/wine/%{winesodir}/hnetcfg.dll.so +%{_libdir}/wine/%{winesodir}/http.sys.so +%{_libdir}/wine/%{winesodir}/httpapi.dll.so +%{_libdir}/wine/%{winesodir}/icacls.exe.so +%{_libdir}/wine/%{winesodir}/iccvid.dll.so +%{_libdir}/wine/%{winesodir}/icinfo.exe.so +%{_libdir}/wine/%{winesodir}/icmp.dll.so +%{_libdir}/wine/%{winesodir}/ieframe.dll.so +%if 0%{?wine_staging} +%{_libdir}/wine/%{winesodir}/iertutil.dll.so +%endif +%{_libdir}/wine/%{winesodir}/ieproxy.dll.so +%{_libdir}/wine/%{winesodir}/imaadp32.acm.so +%{_libdir}/wine/%{winesodir}/imagehlp.dll.so +%{_libdir}/wine/%{winesodir}/imm32.dll.so +%{_libdir}/wine/%{winesodir}/inetcomm.dll.so +%{_libdir}/wine/%{winesodir}/inetcpl.cpl.so +%{_libdir}/wine/%{winesodir}/inetmib1.dll.so +%{_libdir}/wine/%{winesodir}/infosoft.dll.so +%{_libdir}/wine/%{winesodir}/initpki.dll.so +%{_libdir}/wine/%{winesodir}/inkobj.dll.so +%{_libdir}/wine/%{winesodir}/inseng.dll.so +%{_libdir}/wine/%{winesodir}/iprop.dll.so +%{_libdir}/wine/%{winesodir}/irprops.cpl.so +%{_libdir}/wine/%{winesodir}/itircl.dll.so +%{_libdir}/wine/%{winesodir}/itss.dll.so +%{_libdir}/wine/%{winesodir}/joy.cpl.so +%{_libdir}/wine/%{winesodir}/jscript.dll.so +%{_libdir}/wine/%{winesodir}/jsproxy.dll.so +%{_libdir}/wine/%{winesodir}/kerberos.dll.so +%{_libdir}/wine/%{winesodir}/kernel32.dll.so +%{_libdir}/wine/%{winesodir}/kernelbase.dll.so +%{_libdir}/wine/%{winesodir}/ksecdd.sys.so +%{_libdir}/wine/%{winesodir}/ksproxy.ax.so +%{_libdir}/wine/%{winesodir}/ksuser.dll.so +%{_libdir}/wine/%{winesodir}/ktmw32.dll.so +%{_libdir}/wine/%{winesodir}/loadperf.dll.so +%{_libdir}/wine/%{winesodir}/localspl.dll.so +%{_libdir}/wine/%{winesodir}/localui.dll.so +%{_libdir}/wine/%{winesodir}/lodctr.exe.so +%{_libdir}/wine/%{winesodir}/lz32.dll.so +%{_libdir}/wine/%{winesodir}/mapi32.dll.so +%{_libdir}/wine/%{winesodir}/mapistub.dll.so +%{_libdir}/wine/%{winesodir}/mciavi32.dll.so +%{_libdir}/wine/%{winesodir}/mcicda.dll.so +%{_libdir}/wine/%{winesodir}/mciqtz32.dll.so +%{_libdir}/wine/%{winesodir}/mciseq.dll.so +%{_libdir}/wine/%{winesodir}/mciwave.dll.so +%{_libdir}/wine/%{winesodir}/mf.dll.so +%{_libdir}/wine/%{winesodir}/mf3216.dll.so +%{_libdir}/wine/%{winesodir}/mferror.dll.so +%{_libdir}/wine/%{winesodir}/mfmediaengine.dll.so +%{_libdir}/wine/%{winesodir}/mfplat.dll.so +%{_libdir}/wine/%{winesodir}/mfplay.dll.so +%{_libdir}/wine/%{winesodir}/mfreadwrite.dll.so +%{_libdir}/wine/%{winesodir}/mgmtapi.dll.so +%{_libdir}/wine/%{winesodir}/midimap.dll.so +%{_libdir}/wine/%{winesodir}/mlang.dll.so +%{_libdir}/wine/%{winesodir}/mmcndmgr.dll.so +%{_libdir}/wine/%{winesodir}/mmdevapi.dll.so +%{_libdir}/wine/%{winesodir}/mofcomp.exe.so +%{_libdir}/wine/%{winesodir}/mpr.dll.so +%{_libdir}/wine/%{winesodir}/mprapi.dll.so +%{_libdir}/wine/%{winesodir}/msacm32.dll.so +%{_libdir}/wine/%{winesodir}/msacm32.drv.so +%{_libdir}/wine/%{winesodir}/msado15.dll.so +%{_libdir}/wine/%{winesodir}/msadp32.acm.so +%{_libdir}/wine/%{winesodir}/msasn1.dll.so +%{_libdir}/wine/%{winesodir}/mscat32.dll.so +%{_libdir}/wine/%{winesodir}/mscoree.dll.so +%{_libdir}/wine/%{winesodir}/mscorwks.dll.so +%{_libdir}/wine/%{winesodir}/msctf.dll.so +%{_libdir}/wine/%{winesodir}/msctfp.dll.so +%{_libdir}/wine/%{winesodir}/msdaps.dll.so +%{_libdir}/wine/%{winesodir}/msdelta.dll.so +%{_libdir}/wine/%{winesodir}/msdmo.dll.so +%{_libdir}/wine/%{winesodir}/msdrm.dll.so +%{_libdir}/wine/%{winesodir}/msftedit.dll.so +%{_libdir}/wine/%{winesodir}/msg711.acm.so +%{_libdir}/wine/%{winesodir}/mshtml.dll.so +%{_libdir}/wine/%{winesodir}/mshtml.tlb.so +%{_libdir}/wine/%{winesodir}/msi.dll.so +%{_libdir}/wine/%{winesodir}/msident.dll.so +%{_libdir}/wine/%{winesodir}/msimtf.dll.so +%{_libdir}/wine/%{winesodir}/msimg32.dll.so +%{_libdir}/wine/%{winesodir}/msimsg.dll.so +%{_libdir}/wine/%{winesodir}/msinfo32.exe.so +%{_libdir}/wine/%{winesodir}/msisip.dll.so +%{_libdir}/wine/%{winesodir}/msisys.ocx.so +%{_libdir}/wine/%{winesodir}/msls31.dll.so +%{_libdir}/wine/%{winesodir}/msnet32.dll.so +%{_libdir}/wine/%{winesodir}/mspatcha.dll.so +%{_libdir}/wine/%{winesodir}/msports.dll.so +%{_libdir}/wine/%{winesodir}/msscript.ocx.so +%{_libdir}/wine/%{winesodir}/mssign32.dll.so +%{_libdir}/wine/%{winesodir}/mssip32.dll.so +%{_libdir}/wine/%{winesodir}/msrle32.dll.so +%{_libdir}/wine/%{winesodir}/mstask.dll.so +%{_libdir}/wine/%{winesodir}/msv1_0.dll.so +%{_libdir}/wine/%{winesodir}/msvcirt.dll.so +%{_libdir}/wine/%{winesodir}/msvcm80.dll.so +%{_libdir}/wine/%{winesodir}/msvcm90.dll.so +%{_libdir}/wine/%{winesodir}/msvcp60.dll.so +%{_libdir}/wine/%{winesodir}/msvcp70.dll.so +%{_libdir}/wine/%{winesodir}/msvcp71.dll.so +%{_libdir}/wine/%{winesodir}/msvcp80.dll.so +%{_libdir}/wine/%{winesodir}/msvcp90.dll.so +%{_libdir}/wine/%{winesodir}/msvcp100.dll.so +%{_libdir}/wine/%{winesodir}/msvcp110.dll.so +%{_libdir}/wine/%{winesodir}/msvcp120.dll.so +%{_libdir}/wine/%{winesodir}/msvcp120_app.dll.so +%{_libdir}/wine/%{winesodir}/msvcp140.dll.so +%{_libdir}/wine/%{winesodir}/msvcp140_1.dll.so +%{_libdir}/wine/%{winesodir}/msvcr70.dll.so +%{_libdir}/wine/%{winesodir}/msvcr71.dll.so +%{_libdir}/wine/%{winesodir}/msvcr80.dll.so +%{_libdir}/wine/%{winesodir}/msvcr90.dll.so +%{_libdir}/wine/%{winesodir}/msvcr100.dll.so +%{_libdir}/wine/%{winesodir}/msvcr110.dll.so +%{_libdir}/wine/%{winesodir}/msvcr120.dll.so +%{_libdir}/wine/%{winesodir}/msvcr120_app.dll.so +%{_libdir}/wine/%{winesodir}/msvcrt.dll.so +%{_libdir}/wine/%{winesodir}/msvcrt20.dll.so +%{_libdir}/wine/%{winesodir}/msvcrt40.dll.so +%{_libdir}/wine/%{winesodir}/msvcrtd.dll.so +%{_libdir}/wine/%{winesodir}/msvfw32.dll.so +%{_libdir}/wine/%{winesodir}/msvidc32.dll.so +%{_libdir}/wine/%{winesodir}/mswsock.dll.so +%{_libdir}/wine/%{winesodir}/msxml.dll.so +%{_libdir}/wine/%{winesodir}/msxml2.dll.so +%{_libdir}/wine/%{winesodir}/msxml4.dll.so +%{_libdir}/wine/%{winesodir}/msxml6.dll.so +%{_libdir}/wine/%{winesodir}/mtxdm.dll.so +%{_libdir}/wine/%{winesodir}/nddeapi.dll.so +%{_libdir}/wine/%{winesodir}/ncrypt.dll.so +%{_libdir}/wine/%{winesodir}/ndis.sys.so +%{_libdir}/wine/%{winesodir}/netapi32.dll.so +%{_libdir}/wine/%{winesodir}/netcfgx.dll.so +%{_libdir}/wine/%{winesodir}/netio.sys.so +%{_libdir}/wine/%{winesodir}/netprofm.dll.so +%{_libdir}/wine/%{winesodir}/netsh.exe.so +%if 0%{?wine_staging} +%{_libdir}/wine/%{winesodir}/netutils.dll.so +%endif +%{_libdir}/wine/%{winesodir}/newdev.dll.so +%{_libdir}/wine/%{winesodir}/ninput.dll.so +%{_libdir}/wine/%{winesodir}/normaliz.dll.so +%{_libdir}/wine/%{winesodir}/npmshtml.dll.so +%{_libdir}/wine/%{winesodir}/npptools.dll.so +%{_libdir}/wine/%{winesodir}/ntdll.dll.so +%{_libdir}/wine/%{winesodir}/ntdsapi.dll.so +%{_libdir}/wine/%{winesodir}/ntprint.dll.so +%{_libdir}/wine/%{winesodir}/objsel.dll.so +%{_libdir}/wine/%{winesodir}/odbc32.dll.so +%{_libdir}/wine/%{winesodir}/odbcbcp.dll.so +%{_libdir}/wine/%{winesodir}/odbccp32.dll.so +%{_libdir}/wine/%{winesodir}/odbccu32.dll.so +%{_libdir}/wine/%{winesodir}/ole32.dll.so +%{_libdir}/wine/%{winesodir}/oleacc.dll.so +%{_libdir}/wine/%{winesodir}/oleaut32.dll.so +%{_libdir}/wine/%{winesodir}/olecli32.dll.so +%{_libdir}/wine/%{winesodir}/oledb32.dll.so +%{_libdir}/wine/%{winesodir}/oledlg.dll.so +%{_libdir}/wine/%{winesodir}/olepro32.dll.so +%{_libdir}/wine/%{winesodir}/olesvr32.dll.so +%{_libdir}/wine/%{winesodir}/olethk32.dll.so +%{_libdir}/wine/%{winesodir}/opcservices.dll.so +%{_libdir}/wine/%{winesodir}/packager.dll.so +%{_libdir}/wine/%{winesodir}/pdh.dll.so +%{_libdir}/wine/%{winesodir}/photometadatahandler.dll.so +%{_libdir}/wine/%{winesodir}/pidgen.dll.so +%{_libdir}/wine/%{winesodir}/powrprof.dll.so +%{_libdir}/wine/%{winesodir}/presentationfontcache.exe.so +%{_libdir}/wine/%{winesodir}/printui.dll.so +%{_libdir}/wine/%{winesodir}/prntvpt.dll.so +%{_libdir}/wine/%{winesodir}/propsys.dll.so +%{_libdir}/wine/%{winesodir}/psapi.dll.so +%{_libdir}/wine/%{winesodir}/pstorec.dll.so +%{_libdir}/wine/%{winesodir}/pwrshplugin.dll.so +%{_libdir}/wine/%{winesodir}/qasf.dll.so +%{_libdir}/wine/%{winesodir}/qcap.dll.so +%{_libdir}/wine/%{winesodir}/qdvd.dll.so +%{_libdir}/wine/%{winesodir}/qedit.dll.so +%{_libdir}/wine/%{winesodir}/qmgr.dll.so +%{_libdir}/wine/%{winesodir}/qmgrprxy.dll.so +%{_libdir}/wine/%{winesodir}/quartz.dll.so +%{_libdir}/wine/%{winesodir}/query.dll.so +%{_libdir}/wine/%{winesodir}/qwave.dll.so +%{_libdir}/wine/%{winesodir}/rasapi32.dll.so +%{_libdir}/wine/%{winesodir}/rasdlg.dll.so +%{_libdir}/wine/%{winesodir}/regapi.dll.so +%{_libdir}/wine/%{winesodir}/regini.exe.so +%{_libdir}/wine/%{winesodir}/resutils.dll.so +%{_libdir}/wine/%{winesodir}/riched20.dll.so +%{_libdir}/wine/%{winesodir}/riched32.dll.so +%{_libdir}/wine/%{winesodir}/rpcrt4.dll.so +%{_libdir}/wine/%{winesodir}/rsabase.dll.so +%{_libdir}/wine/%{winesodir}/rsaenh.dll.so +%{_libdir}/wine/%{winesodir}/rstrtmgr.dll.so +%{_libdir}/wine/%{winesodir}/rtutils.dll.so +%{_libdir}/wine/%{winesodir}/rtworkq.dll.so +%{_libdir}/wine/%{winesodir}/samlib.dll.so +%{_libdir}/wine/%{winesodir}/sapi.dll.so +%{_libdir}/wine/%{winesodir}/sas.dll.so +%{_libdir}/wine/%{winesodir}/sc.exe.so +%{_libdir}/wine/%{winesodir}/scarddlg.dll.so +%{_libdir}/wine/%{winesodir}/sccbase.dll.so +%{_libdir}/wine/%{winesodir}/schannel.dll.so +%{_libdir}/wine/%{winesodir}/scrobj.dll.so +%{_libdir}/wine/%{winesodir}/scrrun.dll.so +%{_libdir}/wine/%{winesodir}/scsiport.sys.so +%{_libdir}/wine/%{winesodir}/sechost.dll.so +%{_libdir}/wine/%{winesodir}/secur32.dll.so +%{_libdir}/wine/%{winesodir}/sensapi.dll.so +%{_libdir}/wine/%{winesodir}/serialui.dll.so +%{_libdir}/wine/%{winesodir}/setupapi.dll.so +%{_libdir}/wine/%{winesodir}/sfc_os.dll.so +%{_libdir}/wine/%{winesodir}/shcore.dll.so +%{_libdir}/wine/%{winesodir}/shdoclc.dll.so +%{_libdir}/wine/%{winesodir}/shdocvw.dll.so +%{_libdir}/wine/%{winesodir}/schedsvc.dll.so +%{_libdir}/wine/%{winesodir}/shfolder.dll.so +%{_libdir}/wine/%{winesodir}/shlwapi.dll.so +%{_libdir}/wine/%{winesodir}/shutdown.exe.so +%{_libdir}/wine/%{winesodir}/slbcsp.dll.so +%{_libdir}/wine/%{winesodir}/slc.dll.so +%{_libdir}/wine/%{winesodir}/snmpapi.dll.so +%{_libdir}/wine/%{winesodir}/softpub.dll.so +%{_libdir}/wine/%{winesodir}/spoolsv.exe.so +%{_libdir}/wine/%{winesodir}/srclient.dll.so +%if 0%{?wine_staging} +%{_libdir}/wine/%{winesodir}/srvcli.dll.so +%endif +%{_libdir}/wine/%{winesodir}/sspicli.dll.so +%{_libdir}/wine/%{winesodir}/stdole2.tlb.so +%{_libdir}/wine/%{winesodir}/stdole32.tlb.so +%{_libdir}/wine/%{winesodir}/sti.dll.so +%{_libdir}/wine/%{winesodir}/strmdll.dll.so +%{_libdir}/wine/%{winesodir}/subst.exe.so +%{_libdir}/wine/%{winesodir}/svchost.exe.so +%{_libdir}/wine/%{winesodir}/svrapi.dll.so +%{_libdir}/wine/%{winesodir}/sxs.dll.so +%{_libdir}/wine/%{winesodir}/systeminfo.exe.so +%{_libdir}/wine/%{winesodir}/t2embed.dll.so +%{_libdir}/wine/%{winesodir}/tapi32.dll.so +%{_libdir}/wine/%{winesodir}/taskkill.exe.so +%{_libdir}/wine/%{winesodir}/taskschd.dll.so +%{_libdir}/wine/%{winesodir}/tdh.dll.so +%{_libdir}/wine/%{winesodir}/tdi.sys.so +%{_libdir}/wine/%{winesodir}/traffic.dll.so +%{_libdir}/wine/%{winesodir}/tzres.dll.so +%{_libdir}/wine/%{winesodir}/ucrtbase.dll.so +%if 0%{?wine_staging} +%{_libdir}/wine/%{winesodir}/uianimation.dll.so +%endif +%{_libdir}/wine/%{winesodir}/uiautomationcore.dll.so +%{_libdir}/wine/%{winesodir}/uiribbon.dll.so +%{_libdir}/wine/%{winesodir}/unicows.dll.so +%{_libdir}/wine/%{winesodir}/unlodctr.exe.so +%{_libdir}/wine/%{winesodir}/updspapi.dll.so +%{_libdir}/wine/%{winesodir}/url.dll.so +%{_libdir}/wine/%{winesodir}/urlmon.dll.so +%{_libdir}/wine/%{winesodir}/usbd.sys.so +%{_libdir}/wine/%{winesodir}/user32.dll.so +%{_libdir}/wine/%{winesodir}/usp10.dll.so +%{_libdir}/wine/%{winesodir}/utildll.dll.so +%{_libdir}/wine/%{winesodir}/uxtheme.dll.so +%{_libdir}/wine/%{winesodir}/userenv.dll.so +%{_libdir}/wine/%{winesodir}/vbscript.dll.so +%{_libdir}/wine/%{winesodir}/vcomp.dll.so +%{_libdir}/wine/%{winesodir}/vcomp90.dll.so +%{_libdir}/wine/%{winesodir}/vcomp100.dll.so +%{_libdir}/wine/%{winesodir}/vcomp110.dll.so +%{_libdir}/wine/%{winesodir}/vcomp120.dll.so +%{_libdir}/wine/%{winesodir}/vcomp140.dll.so +%{_libdir}/wine/%{winesodir}/vcruntime140.dll.so +%{_libdir}/wine/%{winesodir}/vcruntime140_1.dll.so +%{_libdir}/wine/%{winesodir}/vdmdbg.dll.so +%{_libdir}/wine/%{winesodir}/version.dll.so +%{_libdir}/wine/%{winesodir}/vga.dll.so +%{_libdir}/wine/%{winesodir}/virtdisk.dll.so +%{_libdir}/wine/%{winesodir}/vssapi.dll.so +%{_libdir}/wine/%{winesodir}/vulkan-1.dll.so +%{_libdir}/wine/%{winesodir}/wbemdisp.dll.so +%{_libdir}/wine/%{winesodir}/wbemprox.dll.so +%{_libdir}/wine/%{winesodir}/wdscore.dll.so +%{_libdir}/wine/%{winesodir}/webservices.dll.so +%{_libdir}/wine/%{winesodir}/websocket.dll.so +%{_libdir}/wine/%{winesodir}/wer.dll.so +%{_libdir}/wine/%{winesodir}/wevtapi.dll.so +%{_libdir}/wine/%{winesodir}/wevtsvc.dll.so +%{_libdir}/wine/%{winesodir}/wiaservc.dll.so +%{_libdir}/wine/%{winesodir}/wimgapi.dll.so +%{_libdir}/wine/%{winesodir}/win32k.sys.so +%if 0%{?wine_staging} +%{_libdir}/wine/%{winesodir}/windows.gaming.input.dll.so +%{_libdir}/wine/%{winesodir}/windows.globalization.dll.so +%{_libdir}/wine/%{winesodir}/windows.media.speech.dll.so +%endif +%{_libdir}/wine/%{winesodir}/windows.media.devices.dll.so +%{_libdir}/wine/%{winesodir}/windowscodecs.dll.so +%{_libdir}/wine/%{winesodir}/windowscodecsext.dll.so +%{_libdir}/wine/%{winesodir}/winegstreamer.dll.so +%{_libdir}/wine/%{winesodir}/winehid.sys.so +%{_libdir}/wine/%{winesodir}/winemapi.dll.so +%{_libdir}/wine/%{winesodir}/winevulkan.dll.so +%{_libdir}/wine/%{winesodir}/wing32.dll.so +%{_libdir}/wine/%{winesodir}/winhttp.dll.so +%{_libdir}/wine/%{winesodir}/wininet.dll.so +%{_libdir}/wine/%{winesodir}/winmm.dll.so +%{_libdir}/wine/%{winesodir}/winnls32.dll.so +%{_libdir}/wine/%{winesodir}/winsta.dll.so +%{_libdir}/wine/%{winesodir}/wmasf.dll.so +%{_libdir}/wine/%{winesodir}/wmi.dll.so +%{_libdir}/wine/%{winesodir}/wmic.exe.so +%{_libdir}/wine/%{winesodir}/wmiutils.dll.so +%{_libdir}/wine/%{winesodir}/wmp.dll.so +%{_libdir}/wine/%{winesodir}/wmvcore.dll.so +%{_libdir}/wine/%{winesodir}/spoolss.dll.so +%{_libdir}/wine/%{winesodir}/winscard.dll.so +%{_libdir}/wine/%{winesodir}/wintab32.dll.so +%{_libdir}/wine/%{winesodir}/wintrust.dll.so +%{_libdir}/wine/%{winesodir}/winusb.dll.so +%{_libdir}/wine/%{winesodir}/wlanapi.dll.so +%{_libdir}/wine/%{winesodir}/wlanui.dll.so +%{_libdir}/wine/%{winesodir}/wmphoto.dll.so +%{_libdir}/wine/%{winesodir}/wpc.dll.so +%{_libdir}/wine/%{winesodir}/wsdapi.dll.so +%{_libdir}/wine/%{winesodir}/wshom.ocx.so +%{_libdir}/wine/%{winesodir}/wsnmp32.dll.so +%{_libdir}/wine/%{winesodir}/wsock32.dll.so +%{_libdir}/wine/%{winesodir}/wtsapi32.dll.so +%{_libdir}/wine/%{winesodir}/wuapi.dll.so +%{_libdir}/wine/%{winesodir}/wuaueng.dll.so + +%{_libdir}/wine/%{winesodir}/security.dll.so +%{_libdir}/wine/%{winesodir}/sfc.dll.so +%{_libdir}/wine/%{winesodir}/wineps.drv.so +%{_libdir}/wine/%{winesodir}/d3d8.dll.so +%{_libdir}/wine/%{winesodir}/d3d8thk.dll.so +%{_libdir}/wine/%{winesodir}/d3d9.dll.so +%{_libdir}/wine/%{winesodir}/dnsapi.dll.so +%{_libdir}/wine/%{winesodir}/iexplore.exe.so +%{_libdir}/wine/%{winesodir}/xcopy.exe.so +%{_libdir}/wine/%{winesodir}/xinput1_1.dll.so +%{_libdir}/wine/%{winesodir}/xinput1_2.dll.so +%{_libdir}/wine/%{winesodir}/xinput1_3.dll.so +%{_libdir}/wine/%{winesodir}/xinput1_4.dll.so +%{_libdir}/wine/%{winesodir}/xinput9_1_0.dll.so +%{_libdir}/wine/%{winesodir}/xmllite.dll.so +%{_libdir}/wine/%{winesodir}/xolehlp.dll.so +%{_libdir}/wine/%{winesodir}/xpsprint.dll.so +%{_libdir}/wine/%{winesodir}/xpssvcs.dll.so +%endif + %files filesystem %doc COPYING.LIB %dir %{_datadir}/wine @@ -2424,15 +3280,24 @@ fi %files ldap %{_libdir}/wine/%{winesodir}/wldap32.so %{_libdir}/wine/%{winepedir}/wldap32.dll +%ifarch %{arm} aarch64 +%{_libdir}/wine/%{winesodir}/wldap32.dll.so +%endif # cms subpackage %files cms %{_libdir}/wine/%{winesodir}/mscms.so %{_libdir}/wine/%{winepedir}/mscms.dll +%ifarch %{arm} aarch64 +%{_libdir}/wine/%{winesodir}/mscms.dll.so +%endif # twain subpackage %files twain %{_libdir}/wine/%{winepedir}/twain_32.dll +%ifarch %{arm} aarch64 +%{_libdir}/wine/%{winesodir}/twain_32.dll.so +%endif %{_libdir}/wine/%{winepedir}/sane.ds %{_libdir}/wine/%{winesodir}/sane.ds.so @@ -2490,6 +3355,9 @@ fi %if 0%{?fedora} %files opencl %{_libdir}/wine/%{winepedir}/opencl.dll +%ifarch %{arm} aarch64 +%{_libdir}/wine/%{winesodir}/opencl.dll.so +%endif %{_libdir}/wine/%{winesodir}/opencl.so %endif From dc5519726f2e56812a57d9a26f069efbaeb37bd0 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 24 May 2021 09:45:40 -0500 Subject: [PATCH 634/715] Update to 6.9 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 9 +++++++-- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index 85bcc12..e240d55 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-6.8.tar.xz -/wine-6.8.tar.xz.sign -/wine-staging-6.8.tar.gz +/wine-6.9.tar.xz +/wine-6.9.tar.xz.sign +/wine-staging-6.9.tar.gz diff --git a/sources b/sources index 6f65669..d5de178 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-6.8.tar.xz) = 784863e3aa11f692cee2ab3b3d99cc896c1eb41cfab8cc6b52b5a31671d82fc7f6783bae72c65d8806a8c4096000401cbd0a1a7f1a88fd980685fae67fa9bd91 -SHA512 (wine-6.8.tar.xz.sign) = bb82528de58fc69768e6d647ceee2f21c37cac5281f30754666f5ecd13fea15b605e005dc47105cf49fa7d1e3b0ac8e807eda319c378de09eeb122960665a8f7 -SHA512 (wine-staging-6.8.tar.gz) = a2dfe74b07b687af147b61f235ea2843ff38a563f37ed2ed68dce1cc0ff3d50dbd7c9596836c6e236e368e7a55cbe1ba881dac11bb0966e61a76a7376f92bdcc +SHA512 (wine-6.9.tar.xz) = e9dc4da8cd6553db4227f09b5734513939d7e361449f52472a1f51ae569377a2931a0ab6f402aef751587ff1fa50f10f222b4479aba44f862db320931eeff363 +SHA512 (wine-6.9.tar.xz.sign) = 2718c6b44b86e6f77f213435e3a8443ec57ae1c832dd423bb6a5d08a68c74be355e9158d87765d21a8549b3870eaaed089eb104110b8011f2ac82a690f553e96 +SHA512 (wine-staging-6.9.tar.gz) = 09732ce6fe5e5460ef5f30ab3dd5581c94b27e1d2c228bc395b1defd32fc5e908ab32eb2a56e489b154e1d0f638ad792c80a64d82d90a33c943102b379bef937 diff --git a/wine.spec b/wine.spec index 15c3876..44096f9 100644 --- a/wine.spec +++ b/wine.spec @@ -37,7 +37,7 @@ %endif Name: wine -Version: 6.8 +Version: 6.9 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -2076,7 +2076,7 @@ fi %endif %{_libdir}/wine/%{winepedir}/wpc.dll %{_libdir}/wine/%{winepedir}/wpcap.dll -%{_libdir}/wine/%{winesodir}/wpcap.dll.so +%{_libdir}/wine/%{winesodir}/wpcap.so %{_libdir}/wine/%{winepedir}/ws2_32.dll %{_libdir}/wine/%{winesodir}/ws2_32.dll.so %{_libdir}/wine/%{winepedir}/wsdapi.dll @@ -3094,6 +3094,7 @@ fi %{_libdir}/wine/%{winesodir}/wlanui.dll.so %{_libdir}/wine/%{winesodir}/wmphoto.dll.so %{_libdir}/wine/%{winesodir}/wpc.dll.so +%{_libdir}/wine/%{winesodir}/wpcap.dll.so %{_libdir}/wine/%{winesodir}/wsdapi.dll.so %{_libdir}/wine/%{winesodir}/wshom.ocx.so %{_libdir}/wine/%{winesodir}/wsnmp32.dll.so @@ -3340,6 +3341,7 @@ fi %files pulseaudio %{_libdir}/wine/%{winepedir}/winepulse.drv +%{_libdir}/wine/%{winesodir}/winepulse.so %{_libdir}/wine/%{winesodir}/winepulse.drv.so %files alsa @@ -3362,6 +3364,9 @@ fi %endif %changelog +* Mon May 24 2021 Michael Cronenworth 6.9-1 +- version update + * Sat May 08 2021 Michael Cronenworth 6.8-1 - version update From 9f62dc54039953afaea4f75215aa8b78bcb2a56c Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 7 Jun 2021 12:30:34 -0500 Subject: [PATCH 635/715] Update to 6.10 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 12 ++++++++++-- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index e240d55..f3ca009 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-6.9.tar.xz -/wine-6.9.tar.xz.sign -/wine-staging-6.9.tar.gz +/wine-6.10.tar.xz +/wine-6.10.tar.xz.sign +/wine-staging-6.10.tar.gz diff --git a/sources b/sources index d5de178..cb0f8f2 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-6.9.tar.xz) = e9dc4da8cd6553db4227f09b5734513939d7e361449f52472a1f51ae569377a2931a0ab6f402aef751587ff1fa50f10f222b4479aba44f862db320931eeff363 -SHA512 (wine-6.9.tar.xz.sign) = 2718c6b44b86e6f77f213435e3a8443ec57ae1c832dd423bb6a5d08a68c74be355e9158d87765d21a8549b3870eaaed089eb104110b8011f2ac82a690f553e96 -SHA512 (wine-staging-6.9.tar.gz) = 09732ce6fe5e5460ef5f30ab3dd5581c94b27e1d2c228bc395b1defd32fc5e908ab32eb2a56e489b154e1d0f638ad792c80a64d82d90a33c943102b379bef937 +SHA512 (wine-6.10.tar.xz) = f0e8f0bdab09c979772965d167d687e88998f3fd6537a592e201a2dc9097552e03b1c413516cc8c82665a8bf17580777f48bd1ed9033641f04e7ef7f0b29cc60 +SHA512 (wine-6.10.tar.xz.sign) = e8b283c6f560a3d7e51bca8edefa1425ae3b6a3b284d8111c210cd7ce33940088bf57d718184b1a865a6defcd0c11f90be778350a5f8931fcecb83d0deb41d26 +SHA512 (wine-staging-6.10.tar.gz) = 9ba4fb7451f675fd9ad3e872adada708e9e7e8875f69567d9f2bef2cc8024667112538a385769eac2fd4b3c157266488458e76a1abc92d0a76109ca032103bcf diff --git a/wine.spec b/wine.spec index 44096f9..0402ed2 100644 --- a/wine.spec +++ b/wine.spec @@ -3,7 +3,7 @@ %global no64bit 0 %global winegecko 2.47.2 -%global winemono 6.1.1 +%global winemono 6.2.0 #global _default_patch_fuzz 2 %ifarch %{ix86} %global winepedir i386-windows @@ -37,7 +37,7 @@ %endif Name: wine -Version: 6.9 +Version: 6.10 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1954,6 +1954,7 @@ fi %{_libdir}/wine/%{winepedir}/snmpapi.dll %{_libdir}/wine/%{winepedir}/softpub.dll %{_libdir}/wine/%{winepedir}/spoolsv.exe +%{_libdir}/wine/%{winepedir}/sppc.dll %{_libdir}/wine/%{winepedir}/srclient.dll %if 0%{?wine_staging} %{_libdir}/wine/%{winepedir}/srvcli.dll @@ -2027,6 +2028,7 @@ fi %{_libdir}/wine/%{winepedir}/windows.media.speech.dll %endif %{_libdir}/wine/%{winepedir}/windows.media.devices.dll +%{_libdir}/wine/%{winepedir}/windows.networking.connectivity %{_libdir}/wine/%{winepedir}/windowscodecs.dll %{_libdir}/wine/%{winesodir}/windowscodecs.so %{_libdir}/wine/%{winepedir}/windowscodecsext.dll @@ -2996,6 +2998,7 @@ fi %{_libdir}/wine/%{winesodir}/snmpapi.dll.so %{_libdir}/wine/%{winesodir}/softpub.dll.so %{_libdir}/wine/%{winesodir}/spoolsv.exe.so +%{_libdir}/wine/%{winesodir}/sppc.dll.so %{_libdir}/wine/%{winesodir}/srclient.dll.so %if 0%{?wine_staging} %{_libdir}/wine/%{winesodir}/srvcli.dll.so @@ -3342,7 +3345,9 @@ fi %files pulseaudio %{_libdir}/wine/%{winepedir}/winepulse.drv %{_libdir}/wine/%{winesodir}/winepulse.so +%ifarch %{arm} aarch64 %{_libdir}/wine/%{winesodir}/winepulse.drv.so +%endif %files alsa %{_libdir}/wine/%{winepedir}/winealsa.drv @@ -3364,6 +3369,9 @@ fi %endif %changelog +* Mon Jun 07 2021 Michael Cronenworth 6.10-1 +- version update + * Mon May 24 2021 Michael Cronenworth 6.9-1 - version update From 2d7352e38721b4b2db3d965850c640555cb2f9ed Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 7 Jun 2021 13:29:24 -0500 Subject: [PATCH 636/715] File list fix for ARM builds --- wine.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/wine.spec b/wine.spec index 0402ed2..71331bf 100644 --- a/wine.spec +++ b/wine.spec @@ -3070,6 +3070,7 @@ fi %{_libdir}/wine/%{winesodir}/windows.media.speech.dll.so %endif %{_libdir}/wine/%{winesodir}/windows.media.devices.dll.so +%{_libdir}/wine/%{winesodir}/windows.networking.connectivity.so %{_libdir}/wine/%{winesodir}/windowscodecs.dll.so %{_libdir}/wine/%{winesodir}/windowscodecsext.dll.so %{_libdir}/wine/%{winesodir}/winegstreamer.dll.so From 6988e6d6f72e5b893eb0578b0b01b83b709bd2f0 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 19 Jun 2021 22:37:48 -0500 Subject: [PATCH 637/715] Update to 6.11 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 20 ++++++++------------ 3 files changed, 14 insertions(+), 18 deletions(-) diff --git a/.gitignore b/.gitignore index f3ca009..8f1bb65 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-6.10.tar.xz -/wine-6.10.tar.xz.sign -/wine-staging-6.10.tar.gz +/wine-6.11.tar.xz +/wine-6.11.tar.xz.sign +/wine-staging-6.11.tar.gz diff --git a/sources b/sources index cb0f8f2..b4bdd5c 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-6.10.tar.xz) = f0e8f0bdab09c979772965d167d687e88998f3fd6537a592e201a2dc9097552e03b1c413516cc8c82665a8bf17580777f48bd1ed9033641f04e7ef7f0b29cc60 -SHA512 (wine-6.10.tar.xz.sign) = e8b283c6f560a3d7e51bca8edefa1425ae3b6a3b284d8111c210cd7ce33940088bf57d718184b1a865a6defcd0c11f90be778350a5f8931fcecb83d0deb41d26 -SHA512 (wine-staging-6.10.tar.gz) = 9ba4fb7451f675fd9ad3e872adada708e9e7e8875f69567d9f2bef2cc8024667112538a385769eac2fd4b3c157266488458e76a1abc92d0a76109ca032103bcf +SHA512 (wine-6.11.tar.xz) = d041ad99b6311f99df6ef40a64bc393acdc77ad4bf5f28111ebb88c133c3d338aff18f129fb30ae38cca24bf579834d4e6c7d252d5391f35b1ee81a91cc70c21 +SHA512 (wine-6.11.tar.xz.sign) = 7125be6383986c08e4057e49b6887e4cba23604c89afc0261b546e99e530b5b07444bc234f3d465bb3c2af3f065fb02822c5b65486d4c07c7b4f9a7c99036cf2 +SHA512 (wine-staging-6.11.tar.gz) = b9b6f206d7a37699887a9bd65c30b9d2fc333b507461dbd532fe17db881db1e79ef5620ce2421cdde8548411924fabba0f98123342f30c8d93a019b3a2125303 diff --git a/wine.spec b/wine.spec index 71331bf..3137bc3 100644 --- a/wine.spec +++ b/wine.spec @@ -37,7 +37,7 @@ %endif Name: wine -Version: 6.10 +Version: 6.11 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1517,7 +1517,6 @@ fi %{_libdir}/wine/%{winepedir}/concrt140.dll %{_libdir}/wine/%{winepedir}/connect.dll %{_libdir}/wine/%{winepedir}/credui.dll -%{_libdir}/wine/%{winesodir}/crtdll.so %{_libdir}/wine/%{winepedir}/crtdll.dll %{_libdir}/wine/%{winesodir}/crypt32.so %{_libdir}/wine/%{winepedir}/crypt32.dll @@ -1581,6 +1580,8 @@ fi %{_libdir}/wine/%{winepedir}/dpnaddr.dll %{_libdir}/wine/%{winepedir}/dpnet.dll %{_libdir}/wine/%{winepedir}/dpnhpast.dll +%{_libdir}/wine/%{winepedir}/dpnhupnp.dll +%{_libdir}/wine/%{winesodir}/dpnhupnp.dll.so %{_libdir}/wine/%{winepedir}/dpnlobby.dll %{_libdir}/wine/%{winepedir}/dpvoice.dll %{_libdir}/wine/%{winepedir}/dpwsockx.dll @@ -1814,26 +1815,17 @@ fi %{_libdir}/wine/%{winepedir}/msvcp120_app.dll %{_libdir}/wine/%{winepedir}/msvcp140.dll %{_libdir}/wine/%{winepedir}/msvcp140_1.dll -%{_libdir}/wine/%{winesodir}/msvcr70.so %{_libdir}/wine/%{winepedir}/msvcr70.dll -%{_libdir}/wine/%{winesodir}/msvcr71.so %{_libdir}/wine/%{winepedir}/msvcr71.dll -%{_libdir}/wine/%{winesodir}/msvcr80.so %{_libdir}/wine/%{winepedir}/msvcr80.dll -%{_libdir}/wine/%{winesodir}/msvcr90.so %{_libdir}/wine/%{winepedir}/msvcr90.dll -%{_libdir}/wine/%{winesodir}/msvcr100.so %{_libdir}/wine/%{winepedir}/msvcr100.dll -%{_libdir}/wine/%{winesodir}/msvcr110.so %{_libdir}/wine/%{winepedir}/msvcr110.dll -%{_libdir}/wine/%{winesodir}/msvcr120.so %{_libdir}/wine/%{winepedir}/msvcr120.dll %{_libdir}/wine/%{winepedir}/msvcr120_app.dll -%{_libdir}/wine/%{winesodir}/msvcrt.so %{_libdir}/wine/%{winepedir}/msvcrt.dll %{_libdir}/wine/%{winepedir}/msvcrt20.dll %{_libdir}/wine/%{winepedir}/msvcrt40.dll -%{_libdir}/wine/%{winesodir}/msvcrtd.so %{_libdir}/wine/%{winepedir}/msvcrtd.dll %{_libdir}/wine/%{winepedir}/msvfw32.dll %{_libdir}/wine/%{winepedir}/msvidc32.dll @@ -1977,7 +1969,6 @@ fi %{_libdir}/wine/%{winepedir}/tdi.sys %{_libdir}/wine/%{winepedir}/traffic.dll %{_libdir}/wine/%{winepedir}/tzres.dll -%{_libdir}/wine/%{winesodir}/ucrtbase.so %{_libdir}/wine/%{winepedir}/ucrtbase.dll %if 0%{?wine_staging} %{_libdir}/wine/%{winepedir}/uianimation.dll @@ -2022,6 +2013,7 @@ fi %{_libdir}/wine/%{winepedir}/wiaservc.dll %{_libdir}/wine/%{winepedir}/wimgapi.dll %{_libdir}/wine/%{winepedir}/win32k.sys +%{_libdir}/wine/%{winepedir}/win32u.dll %if 0%{?wine_staging} %{_libdir}/wine/%{winepedir}/windows.gaming.input.dll %{_libdir}/wine/%{winepedir}/windows.globalization.dll @@ -3064,6 +3056,7 @@ fi %{_libdir}/wine/%{winesodir}/wiaservc.dll.so %{_libdir}/wine/%{winesodir}/wimgapi.dll.so %{_libdir}/wine/%{winesodir}/win32k.sys.so +%{_libdir}/wine/%{winesodir}/win32u.dll.so %if 0%{?wine_staging} %{_libdir}/wine/%{winesodir}/windows.gaming.input.dll.so %{_libdir}/wine/%{winesodir}/windows.globalization.dll.so @@ -3370,6 +3363,9 @@ fi %endif %changelog +* Sat Jun 19 2021 Michael Cronenworth 6.11-1 +- version update + * Mon Jun 07 2021 Michael Cronenworth 6.10-1 - version update From 9b64e213c7f10138393391416647050f0a698cf7 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 7 Jul 2021 10:52:23 -0500 Subject: [PATCH 638/715] Update to 6.12 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 14 ++++++++++++-- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index 8f1bb65..a1e3118 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-6.11.tar.xz -/wine-6.11.tar.xz.sign -/wine-staging-6.11.tar.gz +/wine-6.12.tar.xz +/wine-6.12.tar.xz.sign +/wine-staging-6.12.1.tar.gz diff --git a/sources b/sources index b4bdd5c..e657abe 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-6.11.tar.xz) = d041ad99b6311f99df6ef40a64bc393acdc77ad4bf5f28111ebb88c133c3d338aff18f129fb30ae38cca24bf579834d4e6c7d252d5391f35b1ee81a91cc70c21 -SHA512 (wine-6.11.tar.xz.sign) = 7125be6383986c08e4057e49b6887e4cba23604c89afc0261b546e99e530b5b07444bc234f3d465bb3c2af3f065fb02822c5b65486d4c07c7b4f9a7c99036cf2 -SHA512 (wine-staging-6.11.tar.gz) = b9b6f206d7a37699887a9bd65c30b9d2fc333b507461dbd532fe17db881db1e79ef5620ce2421cdde8548411924fabba0f98123342f30c8d93a019b3a2125303 +SHA512 (wine-6.12.tar.xz) = 6d5646c44e656a88eb25174ce16038a8b0e1495c3deed8e959825cb26059fdda6e6519afeaeb28e4070fc5e05d7a3e1e5812ef09c31875f14f9233ba6a52f14c +SHA512 (wine-6.12.tar.xz.sign) = f92d7ffa20f96656cc3166efa5e23e1beda50ad773edfcb1a75e71026b95810a223920dc03d3012dd1dad5de6c07a24848ae647dfe98c9b84223cb40d85108da +SHA512 (wine-staging-6.12.1.tar.gz) = d92f4e8e3cc81e9ede21135f35679d1b2de07bf75f4fd3878551cae74cdf5165c62573fd9e143458535565e21e8888f7f61cc413fdcef24f8958ac2de366a10a diff --git a/wine.spec b/wine.spec index 3137bc3..53f92e4 100644 --- a/wine.spec +++ b/wine.spec @@ -37,7 +37,7 @@ %endif Name: wine -Version: 6.11 +Version: 6.12 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -88,7 +88,7 @@ Patch511: wine-cjk.patch %if 0%{?wine_staging} # wine-staging patches # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar.gz#/wine-staging-%{version}.tar.gz +Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar.gz#/wine-staging-%{version}.1.tar.gz %endif %if !%{?no64bit} @@ -1731,6 +1731,7 @@ fi %{_libdir}/wine/%{winepedir}/l3codeca.acm %{_libdir}/wine/%{winesodir}/l3codeca.acm.so %endif +%{_libdir}/wine/%{winepedir}/light.msstyles %{_libdir}/wine/%{winepedir}/loadperf.dll %{_libdir}/wine/%{winepedir}/localspl.dll %{_libdir}/wine/%{winepedir}/localui.dll @@ -1854,6 +1855,9 @@ fi %{_libdir}/wine/%{winepedir}/normaliz.dll %{_libdir}/wine/%{winepedir}/npmshtml.dll %{_libdir}/wine/%{winepedir}/npptools.dll +%{_libdir}/wine/%{winepedir}/nsi.dll +%{_libdir}/wine/%{winepedir}/nsiproxy.sys +%{_libdir}/wine/%{winesodir}/nsiproxy.sys.so %{_libdir}/wine/%{winesodir}/ntdll.so %{_libdir}/wine/%{winepedir}/ntdll.dll %{_libdir}/wine/%{winepedir}/ntdsapi.dll @@ -1965,6 +1969,7 @@ fi %{_libdir}/wine/%{winepedir}/tapi32.dll %{_libdir}/wine/%{winepedir}/taskkill.exe %{_libdir}/wine/%{winepedir}/taskschd.dll +%{_libdir}/wine/%{winepedir}/tbs.dll %{_libdir}/wine/%{winepedir}/tdh.dll %{_libdir}/wine/%{winepedir}/tdi.sys %{_libdir}/wine/%{winepedir}/traffic.dll @@ -2910,6 +2915,7 @@ fi %{_libdir}/wine/%{winesodir}/normaliz.dll.so %{_libdir}/wine/%{winesodir}/npmshtml.dll.so %{_libdir}/wine/%{winesodir}/npptools.dll.so +%{_libdir}/wine/%{winesodir}/nsi.dll.so %{_libdir}/wine/%{winesodir}/ntdll.dll.so %{_libdir}/wine/%{winesodir}/ntdsapi.dll.so %{_libdir}/wine/%{winesodir}/ntprint.dll.so @@ -3009,6 +3015,7 @@ fi %{_libdir}/wine/%{winesodir}/tapi32.dll.so %{_libdir}/wine/%{winesodir}/taskkill.exe.so %{_libdir}/wine/%{winesodir}/taskschd.dll.so +%{_libdir}/wine/%{winesodir}/tbs.dll.so %{_libdir}/wine/%{winesodir}/tdh.dll.so %{_libdir}/wine/%{winesodir}/tdi.sys.so %{_libdir}/wine/%{winesodir}/traffic.dll.so @@ -3363,6 +3370,9 @@ fi %endif %changelog +* Wed Jul 07 2021 Michael Cronenworth 6.12-1 +- version update + * Sat Jun 19 2021 Michael Cronenworth 6.11-1 - version update From 04635eddace6c23b5c041df8071725b38eab9082 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 7 Jul 2021 12:28:14 -0500 Subject: [PATCH 639/715] Add missing file to ARM file list --- wine.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/wine.spec b/wine.spec index 53f92e4..30051a1 100644 --- a/wine.spec +++ b/wine.spec @@ -2802,6 +2802,7 @@ fi %{_libdir}/wine/%{winesodir}/ksproxy.ax.so %{_libdir}/wine/%{winesodir}/ksuser.dll.so %{_libdir}/wine/%{winesodir}/ktmw32.dll.so +%{_libdir}/wine/%{winesodir}/light.msstyles.so %{_libdir}/wine/%{winesodir}/loadperf.dll.so %{_libdir}/wine/%{winesodir}/localspl.dll.so %{_libdir}/wine/%{winesodir}/localui.dll.so From 18a8157a99d3c0ccf93bad7d4b717a307a7ba4a9 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 21 Jul 2021 21:44:25 -0500 Subject: [PATCH 640/715] Update to 6.13 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 14 ++++++++++++-- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index a1e3118..99708a8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-6.12.tar.xz -/wine-6.12.tar.xz.sign -/wine-staging-6.12.1.tar.gz +/wine-6.13.tar.xz +/wine-6.13.tar.xz.sign +/wine-staging-6.13.tar.gz diff --git a/sources b/sources index e657abe..04b0eed 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-6.12.tar.xz) = 6d5646c44e656a88eb25174ce16038a8b0e1495c3deed8e959825cb26059fdda6e6519afeaeb28e4070fc5e05d7a3e1e5812ef09c31875f14f9233ba6a52f14c -SHA512 (wine-6.12.tar.xz.sign) = f92d7ffa20f96656cc3166efa5e23e1beda50ad773edfcb1a75e71026b95810a223920dc03d3012dd1dad5de6c07a24848ae647dfe98c9b84223cb40d85108da -SHA512 (wine-staging-6.12.1.tar.gz) = d92f4e8e3cc81e9ede21135f35679d1b2de07bf75f4fd3878551cae74cdf5165c62573fd9e143458535565e21e8888f7f61cc413fdcef24f8958ac2de366a10a +SHA512 (wine-6.13.tar.xz) = 7e1a16873f1a160960e44a38c7af743ea3a10bc545c5724745733d14093188134b74a4f60fbc54f38546b0ed053209b67e35ea131a9cda58ec8041855100c5ee +SHA512 (wine-6.13.tar.xz.sign) = e79332ff0305aa4923aa3393a83112388429b5e948d0e6dab8f76bfcafbe600ea22a5eed52b4a502c380becf267509331e45aff2ad4e26810e467409ca512bee +SHA512 (wine-staging-6.13.tar.gz) = 83a40b5a344db334541d94d58d287a1b8ff616114051129db20ac6b0365004a8753ec8d77a16da54ac26400eaa3e2d147d50a5ac8e17203898eb61cb06ff1f0c diff --git a/wine.spec b/wine.spec index 30051a1..3b4d998 100644 --- a/wine.spec +++ b/wine.spec @@ -37,7 +37,7 @@ %endif Name: wine -Version: 6.12 +Version: 6.13 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -88,7 +88,7 @@ Patch511: wine-cjk.patch %if 0%{?wine_staging} # wine-staging patches # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar.gz#/wine-staging-%{version}.1.tar.gz +Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar.gz#/wine-staging-%{version}.tar.gz %endif %if !%{?no64bit} @@ -1267,6 +1267,7 @@ fi %{_libdir}/wine/%{winepedir}/api-ms-win-core-console-l1-1-0.dll %{_libdir}/wine/%{winepedir}/api-ms-win-core-console-l1-2-0.dll %{_libdir}/wine/%{winepedir}/api-ms-win-core-console-l2-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-console-l3-2-0.dll %{_libdir}/wine/%{winepedir}/api-ms-win-core-crt-l1-1-0.dll %{_libdir}/wine/%{winepedir}/api-ms-win-core-crt-l2-1-0.dll %{_libdir}/wine/%{winepedir}/api-ms-win-core-datetime-l1-1-0.dll @@ -1279,6 +1280,7 @@ fi %{_libdir}/wine/%{winepedir}/api-ms-win-core-errorhandling-l1-1-1.dll %{_libdir}/wine/%{winepedir}/api-ms-win-core-errorhandling-l1-1-2.dll %{_libdir}/wine/%{winepedir}/api-ms-win-core-errorhandling-l1-1-3.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-featurestaging-l1-1-0.dll %{_libdir}/wine/%{winepedir}/api-ms-win-core-fibers-l1-1-0.dll %{_libdir}/wine/%{winepedir}/api-ms-win-core-fibers-l1-1-1.dll %{_libdir}/wine/%{winepedir}/api-ms-win-core-file-l1-1-0.dll @@ -1305,6 +1307,7 @@ fi %{_libdir}/wine/%{winepedir}/api-ms-win-core-kernel32-legacy-l1-1-0.dll %{_libdir}/wine/%{winepedir}/api-ms-win-core-kernel32-legacy-l1-1-1.dll %{_libdir}/wine/%{winepedir}/api-ms-win-core-kernel32-legacy-l1-1-2.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-kernel32-legacy-l1-1-5.dll %{_libdir}/wine/%{winepedir}/api-ms-win-core-kernel32-private-l1-1-1.dll %{_libdir}/wine/%{winepedir}/api-ms-win-core-libraryloader-l1-1-0.dll %{_libdir}/wine/%{winepedir}/api-ms-win-core-libraryloader-l1-1-1.dll @@ -2068,6 +2071,10 @@ fi %{_libdir}/wine/%{winepedir}/wmphoto.dll %{_libdir}/wine/%{winepedir}/wnaspi32.dll %{_libdir}/wine/%{winesodir}/wnaspi32.dll.so +%ifarch x86_64 +%{_libdir}/wine/%{winepedir}/wow64.dll +%{_libdir}/wine/%{winepedir}/wow64win.dll +%endif %if 0%{?wine_staging} %ifarch x86_64 %{_libdir}/wine/%{winepedir}/wow64cpu.dll @@ -2377,6 +2384,7 @@ fi %{_libdir}/wine/%{winesodir}/api-ms-win-core-console-l1-1-0.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-core-console-l1-2-0.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-core-console-l2-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-console-l3-2-0.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-core-crt-l1-1-0.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-core-crt-l2-1-0.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-core-datetime-l1-1-0.dll.so @@ -2389,6 +2397,7 @@ fi %{_libdir}/wine/%{winesodir}/api-ms-win-core-errorhandling-l1-1-1.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-core-errorhandling-l1-1-2.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-core-errorhandling-l1-1-3.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-featurestaging-l1-1-0.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-core-fibers-l1-1-0.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-core-fibers-l1-1-1.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-core-file-l1-1-0.dll.so @@ -2415,6 +2424,7 @@ fi %{_libdir}/wine/%{winesodir}/api-ms-win-core-kernel32-legacy-l1-1-0.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-core-kernel32-legacy-l1-1-1.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-core-kernel32-legacy-l1-1-2.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-kernel32-legacy-l1-1-5.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-core-kernel32-private-l1-1-1.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-core-libraryloader-l1-1-0.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-core-libraryloader-l1-1-1.dll.so From 993ebb73474e305f2de0c46815a8eb887aabd236 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Thu, 22 Jul 2021 14:26:50 -0500 Subject: [PATCH 641/715] Update file list for aarch64 specific files --- wine.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 3b4d998..23cb0c5 100644 --- a/wine.spec +++ b/wine.spec @@ -2071,7 +2071,7 @@ fi %{_libdir}/wine/%{winepedir}/wmphoto.dll %{_libdir}/wine/%{winepedir}/wnaspi32.dll %{_libdir}/wine/%{winesodir}/wnaspi32.dll.so -%ifarch x86_64 +%ifarch x86_64 aarch64 %{_libdir}/wine/%{winepedir}/wow64.dll %{_libdir}/wine/%{winepedir}/wow64win.dll %endif @@ -3100,6 +3100,10 @@ fi %{_libdir}/wine/%{winesodir}/wmiutils.dll.so %{_libdir}/wine/%{winesodir}/wmp.dll.so %{_libdir}/wine/%{winesodir}/wmvcore.dll.so +%ifarch aarch64 +%{_libdir}/wine/%{winesodir}/wow64.dll.so +%{_libdir}/wine/%{winesodir}/wow64win.dll.so +%endif %{_libdir}/wine/%{winesodir}/spoolss.dll.so %{_libdir}/wine/%{winesodir}/winscard.dll.so %{_libdir}/wine/%{winesodir}/wintab32.dll.so From d05a07d97e42e3643d4c6aa9cdfcf372e2226d52 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 30 Aug 2021 12:47:59 -0500 Subject: [PATCH 642/715] Update to 6.16 --- .gitignore | 3 +++ sources | 6 +++--- wine.spec | 18 ++++++++++++++---- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 99708a8..289b110 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ /wine-6.13.tar.xz /wine-6.13.tar.xz.sign /wine-staging-6.13.tar.gz +/wine-6.16.tar.xz +/wine-6.16.tar.xz.sign +/wine-staging-6.16.tar.gz diff --git a/sources b/sources index 04b0eed..758c1a3 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-6.13.tar.xz) = 7e1a16873f1a160960e44a38c7af743ea3a10bc545c5724745733d14093188134b74a4f60fbc54f38546b0ed053209b67e35ea131a9cda58ec8041855100c5ee -SHA512 (wine-6.13.tar.xz.sign) = e79332ff0305aa4923aa3393a83112388429b5e948d0e6dab8f76bfcafbe600ea22a5eed52b4a502c380becf267509331e45aff2ad4e26810e467409ca512bee -SHA512 (wine-staging-6.13.tar.gz) = 83a40b5a344db334541d94d58d287a1b8ff616114051129db20ac6b0365004a8753ec8d77a16da54ac26400eaa3e2d147d50a5ac8e17203898eb61cb06ff1f0c +SHA512 (wine-6.16.tar.xz) = 83d97eefeb35ee85d6ae180056d7b0e5864a90e1c2b63b6fd77d5cd38038b4eaa1fd067e7d5c5ee56d8cd811149db23a8581e1497bc1e36f9adad1012296b96e +SHA512 (wine-6.16.tar.xz.sign) = 3a8d50a729d46b27dd67ca621b336363371c2f61ce560cb11cae3471e71736466b95cbc5afee2904b7c5cfc0b3f48a05a7d682c5e58e52d32b08dfdb015248a9 +SHA512 (wine-staging-6.16.tar.gz) = 2789200466adaae2f4fa4afcbb6aa88619748e69a2cb39c1ac957b408c8021e2cbac7ad0b1f2e295cd87640f494e173739df076743ec0606e4b13e83d0ac2824 diff --git a/wine.spec b/wine.spec index 23cb0c5..de36887 100644 --- a/wine.spec +++ b/wine.spec @@ -3,7 +3,7 @@ %global no64bit 0 %global winegecko 2.47.2 -%global winemono 6.2.0 +%global winemono 6.3.0 #global _default_patch_fuzz 2 %ifarch %{ix86} %global winepedir i386-windows @@ -37,7 +37,7 @@ %endif Name: wine -Version: 6.13 +Version: 6.16 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1349,6 +1349,7 @@ fi %{_libdir}/wine/%{winepedir}/api-ms-win-core-psapi-l1-1-0.dll %{_libdir}/wine/%{winepedir}/api-ms-win-core-psapi-ansi-l1-1-0.dll %{_libdir}/wine/%{winepedir}/api-ms-win-core-psapi-obsolete-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-psm-appnotify-l1-1-0.dll %{_libdir}/wine/%{winepedir}/api-ms-win-core-quirks-l1-1-0.dll %{_libdir}/wine/%{winepedir}/api-ms-win-core-realtime-l1-1-0.dll %{_libdir}/wine/%{winepedir}/api-ms-win-core-registry-l1-1-0.dll @@ -1584,7 +1585,6 @@ fi %{_libdir}/wine/%{winepedir}/dpnet.dll %{_libdir}/wine/%{winepedir}/dpnhpast.dll %{_libdir}/wine/%{winepedir}/dpnhupnp.dll -%{_libdir}/wine/%{winesodir}/dpnhupnp.dll.so %{_libdir}/wine/%{winepedir}/dpnlobby.dll %{_libdir}/wine/%{winepedir}/dpvoice.dll %{_libdir}/wine/%{winepedir}/dpwsockx.dll @@ -1606,6 +1606,7 @@ fi %{_libdir}/wine/%{winesodir}/wine-dxgi.dll.so %{_libdir}/wine/%{winepedir}/dxgkrnl.sys %{_libdir}/wine/%{winepedir}/dxgmms1.sys +%{_libdir}/wine/%{winepedir}/dxtrans.dll %{_libdir}/wine/%{winepedir}/dxva2.dll %{_libdir}/wine/%{winepedir}/esent.dll %{_libdir}/wine/%{winepedir}/evr.dll @@ -1690,6 +1691,7 @@ fi %{_libdir}/wine/%{winepedir}/hhctrl.ocx %{_libdir}/wine/%{winepedir}/hid.dll %{_libdir}/wine/%{winepedir}/hidclass.sys +%{_libdir}/wine/%{winepedir}/hidparse.sys %{_libdir}/wine/%{winepedir}/hlink.dll %{_libdir}/wine/%{winepedir}/hnetcfg.dll %{_libdir}/wine/%{winepedir}/http.sys @@ -2084,7 +2086,7 @@ fi %{_libdir}/wine/%{winepedir}/wpcap.dll %{_libdir}/wine/%{winesodir}/wpcap.so %{_libdir}/wine/%{winepedir}/ws2_32.dll -%{_libdir}/wine/%{winesodir}/ws2_32.dll.so +%{_libdir}/wine/%{winesodir}/ws2_32.so %{_libdir}/wine/%{winepedir}/wsdapi.dll %{_libdir}/wine/%{winepedir}/wshom.ocx %{_libdir}/wine/%{winepedir}/wsnmp32.dll @@ -2466,6 +2468,7 @@ fi %{_libdir}/wine/%{winesodir}/api-ms-win-core-psapi-l1-1-0.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-core-psapi-ansi-l1-1-0.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-core-psapi-obsolete-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-psm-appnotify-l1-1-0.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-core-quirks-l1-1-0.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-core-realtime-l1-1-0.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-core-registry-l1-1-0.dll.so @@ -2684,6 +2687,7 @@ fi %{_libdir}/wine/%{winesodir}/dpnaddr.dll.so %{_libdir}/wine/%{winesodir}/dpnet.dll.so %{_libdir}/wine/%{winesodir}/dpnhpast.dll.so +%{_libdir}/wine/%{winesodir}/dpnhupnp.dll.so %{_libdir}/wine/%{winesodir}/dpnlobby.dll.so %{_libdir}/wine/%{winesodir}/dpvoice.dll.so %{_libdir}/wine/%{winesodir}/dpwsockx.dll.so @@ -2700,6 +2704,7 @@ fi %{_libdir}/wine/%{winesodir}/dxdiagn.dll.so %{_libdir}/wine/%{winesodir}/dxgkrnl.sys.so %{_libdir}/wine/%{winesodir}/dxgmms1.sys.so +%{_libdir}/wine/%{winesodir}/dxtrans.dll.so %{_libdir}/wine/%{winesodir}/dxva2.dll.so %{_libdir}/wine/%{winesodir}/esent.dll.so %{_libdir}/wine/%{winesodir}/evr.dll.so @@ -2775,6 +2780,7 @@ fi %{_libdir}/wine/%{winesodir}/hhctrl.ocx.so %{_libdir}/wine/%{winesodir}/hid.dll.so %{_libdir}/wine/%{winesodir}/hidclass.sys.so +%{_libdir}/wine/%{winesodir}/hidparse.sys.so %{_libdir}/wine/%{winesodir}/hlink.dll.so %{_libdir}/wine/%{winesodir}/hnetcfg.dll.so %{_libdir}/wine/%{winesodir}/http.sys.so @@ -3114,6 +3120,7 @@ fi %{_libdir}/wine/%{winesodir}/wmphoto.dll.so %{_libdir}/wine/%{winesodir}/wpc.dll.so %{_libdir}/wine/%{winesodir}/wpcap.dll.so +%{_libdir}/wine/%{winesodir}/ws2_32.dll.so %{_libdir}/wine/%{winesodir}/wsdapi.dll.so %{_libdir}/wine/%{winesodir}/wshom.ocx.so %{_libdir}/wine/%{winesodir}/wsnmp32.dll.so @@ -3385,6 +3392,9 @@ fi %endif %changelog +* Mon Aug 30 2021 Michael Cronenworth 6.16-1 +- version update + * Wed Jul 07 2021 Michael Cronenworth 6.12-1 - version update From e5c4dd3f3a1edc0c291cfae1b31a7531de7a0af2 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 4 Sep 2021 17:19:51 -0500 Subject: [PATCH 643/715] 32-bit ARM fixes --- wine.spec | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/wine.spec b/wine.spec index de36887..4496fcd 100644 --- a/wine.spec +++ b/wine.spec @@ -740,6 +740,9 @@ export CC="/usr/bin/clang" export CFLAGS="`echo $CFLAGS | sed -e 's/-fstack-clash-protection//'`" %endif %endif +%ifarch armv7hl +export CFLAGS="`echo $CFLAGS | sed -e 's/-fexceptions//'`" +%endif %configure \ --sysconfdir=%{_sysconfdir}/wine \ @@ -777,13 +780,11 @@ mv %{buildroot}%{_bindir}/wineserver %{buildroot}%{_bindir}/wineserver32 # https://www.winehq.org/pipermail/wine-devel/2020-June/167283.html rm %{buildroot}%{_includedir}/wine/windows/*.tlb %endif -%ifnarch %{arm} aarch64 x86_64 +%ifnarch aarch64 x86_64 mv %{buildroot}%{_bindir}/wine-preloader %{buildroot}%{_bindir}/wine32-preloader %endif touch %{buildroot}%{_bindir}/wine -%ifnarch %{arm} touch %{buildroot}%{_bindir}/wine-preloader -%endif touch %{buildroot}%{_bindir}/wineserver mv %{buildroot}%{_libdir}/wine/%{winepedir}/dxgi.dll %{buildroot}%{_libdir}/wine/%{winepedir}/wine-dxgi.dll mv %{buildroot}%{_libdir}/wine/%{winesodir}/dxgi.dll.so %{buildroot}%{_libdir}/wine/%{winesodir}/wine-dxgi.dll.so @@ -1055,18 +1056,11 @@ fi %{_sbindir}/alternatives --install %{_bindir}/wineserver \ wineserver %{_bindir}/wineserver64 20 %else -%ifnarch %{arm} %{_sbindir}/alternatives --install %{_bindir}/wine \ wine %{_bindir}/wine32 20 \ --slave %{_bindir}/wine-preloader wine-preloader %{_bindir}/wine32-preloader %{_sbindir}/alternatives --install %{_bindir}/wineserver \ wineserver %{_bindir}/wineserver32 10 -%else -%{_sbindir}/alternatives --install %{_bindir}/wine \ - wine %{_bindir}/wine32 20 -%{_sbindir}/alternatives --install %{_bindir}/wineserver \ - wineserver %{_bindir}/wineserver32 10 -%endif %endif %{_sbindir}/alternatives --install %{_libdir}/wine/%{winepedir}/dxgi.dll \ 'wine-dxgi%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-dxgi.dll 10 \ @@ -1151,9 +1145,7 @@ fi %ifarch %{ix86} %{arm} %{_bindir}/wine32 -%ifnarch %{arm} %{_bindir}/wine32-preloader -%endif %{_bindir}/wineserver32 %config %{_sysconfdir}/ld.so.conf.d/wine-32.conf %endif @@ -1168,9 +1160,7 @@ fi %endif %ghost %{_bindir}/wine -%ifnarch %{arm} %ghost %{_bindir}/wine-preloader -%endif %ghost %{_bindir}/wineserver %dir %{_libdir}/wine From e026ad86df108be790db66748642bd2ba00a2ce3 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 4 Oct 2021 16:40:16 -0500 Subject: [PATCH 644/715] Update to 6.18 --- .gitignore | 9 +++------ sources | 6 +++--- wine.spec | 26 ++++++++++++++++++-------- 3 files changed, 24 insertions(+), 17 deletions(-) diff --git a/.gitignore b/.gitignore index 289b110..4d4d836 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,3 @@ -/wine-6.13.tar.xz -/wine-6.13.tar.xz.sign -/wine-staging-6.13.tar.gz -/wine-6.16.tar.xz -/wine-6.16.tar.xz.sign -/wine-staging-6.16.tar.gz +/wine-6.18.tar.xz +/wine-6.18.tar.xz.sign +/wine-staging-6.18.tar.gz diff --git a/sources b/sources index 758c1a3..5aba667 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-6.16.tar.xz) = 83d97eefeb35ee85d6ae180056d7b0e5864a90e1c2b63b6fd77d5cd38038b4eaa1fd067e7d5c5ee56d8cd811149db23a8581e1497bc1e36f9adad1012296b96e -SHA512 (wine-6.16.tar.xz.sign) = 3a8d50a729d46b27dd67ca621b336363371c2f61ce560cb11cae3471e71736466b95cbc5afee2904b7c5cfc0b3f48a05a7d682c5e58e52d32b08dfdb015248a9 -SHA512 (wine-staging-6.16.tar.gz) = 2789200466adaae2f4fa4afcbb6aa88619748e69a2cb39c1ac957b408c8021e2cbac7ad0b1f2e295cd87640f494e173739df076743ec0606e4b13e83d0ac2824 +SHA512 (wine-6.18.tar.xz) = d8f54f8fbb61b4af2a6f97328d33b0389ab0fb6a9dac97b2832af3d911a9f23c08653f40ec77f7c0eedd694c4a1c1228fe9dd4d859d8b3d7419e21847de7bcfe +SHA512 (wine-6.18.tar.xz.sign) = 17f535240bed845cfb9d1a9ff77c4863d172ea1ab32c9f4baf415d9bd672f734e7b1d21ea4b693dc2d55a030503e91113e0f951e97eb2e8db2b752e7e9c51196 +SHA512 (wine-staging-6.18.tar.gz) = f718b4a6f314e8db4f6ad4cb41449d251d973b0942072411a70749398cec9d60ebcf29078cf00a895f665ea7e7846c3fd7e5553d04b3b451ae757c95fb49af58 diff --git a/wine.spec b/wine.spec index 4496fcd..6b57d4a 100644 --- a/wine.spec +++ b/wine.spec @@ -3,7 +3,7 @@ %global no64bit 0 %global winegecko 2.47.2 -%global winemono 6.3.0 +%global winemono 6.4.0 #global _default_patch_fuzz 2 %ifarch %{ix86} %global winepedir i386-windows @@ -37,7 +37,7 @@ %endif Name: wine -Version: 6.16 +Version: 6.18 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1223,7 +1223,6 @@ fi %{_libdir}/wine/%{winepedir}/winemenubuilder.exe %{_libdir}/wine/%{winesodir}/winemenubuilder.exe.so %{_libdir}/wine/%{winepedir}/winecfg.exe -%{_libdir}/wine/%{winesodir}/winecfg.exe.so %{_libdir}/wine/%{winepedir}/winedevice.exe %{_libdir}/wine/%{winepedir}/wmplayer.exe %{_libdir}/wine/%{winepedir}/wscript.exe @@ -1334,6 +1333,7 @@ fi %{_libdir}/wine/%{winepedir}/api-ms-win-core-processthreads-l1-1-1.dll %{_libdir}/wine/%{winepedir}/api-ms-win-core-processthreads-l1-1-2.dll %{_libdir}/wine/%{winepedir}/api-ms-win-core-processthreads-l1-1-3.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-processtopology-l1-1-0.dll %{_libdir}/wine/%{winepedir}/api-ms-win-core-processtopology-obsolete-l1-1-0.dll %{_libdir}/wine/%{winepedir}/api-ms-win-core-profile-l1-1-0.dll %{_libdir}/wine/%{winepedir}/api-ms-win-core-psapi-l1-1-0.dll @@ -1487,7 +1487,7 @@ fi %{_libdir}/wine/%{winepedir}/atmlib.dll %{_libdir}/wine/%{winepedir}/authz.dll %{_libdir}/wine/%{winepedir}/avicap32.dll -%{_libdir}/wine/%{winesodir}/avicap32.dll.so +%{_libdir}/wine/%{winesodir}/avicap32.so %{_libdir}/wine/%{winepedir}/avifil32.dll %{_libdir}/wine/%{winepedir}/avrt.dll %{_libdir}/wine/%{winesodir}/bcrypt.so @@ -1655,9 +1655,7 @@ fi %{_libdir}/wine/%{winepedir}/ext-ms-win-uxtheme-themes-l1-1-0.dll %if 0%{?wine_staging} %{_libdir}/wine/%{winepedir}/ext-ms-win-appmodel-usercontext-l1-1-0.dll -%{_libdir}/wine/%{winesodir}/ext-ms-win-appmodel-usercontext-l1-1-0.dll.so %{_libdir}/wine/%{winepedir}/ext-ms-win-xaml-pal-l1-1-0.dll -%{_libdir}/wine/%{winesodir}/ext-ms-win-xaml-pal-l1-1-0.dll.so %endif %{_libdir}/wine/%{winepedir}/faultrep.dll %{_libdir}/wine/%{winepedir}/feclient.dll @@ -1936,7 +1934,6 @@ fi %{_libdir}/wine/%{winepedir}/shdocvw.dll %{_libdir}/wine/%{winepedir}/schedsvc.dll %{_libdir}/wine/%{winepedir}/shell32.dll -%{_libdir}/wine/%{winesodir}/shell32.dll.so %{_libdir}/wine/%{winepedir}/shfolder.dll %{_libdir}/wine/%{winepedir}/shlwapi.dll %{_libdir}/wine/%{winepedir}/shutdown.exe @@ -2025,7 +2022,6 @@ fi %{_libdir}/wine/%{winesodir}/windowscodecs.so %{_libdir}/wine/%{winepedir}/windowscodecsext.dll %{_libdir}/wine/%{winepedir}/winebus.sys -%{_libdir}/wine/%{winesodir}/winebus.sys.so %{_libdir}/wine/%{winesodir}/winegstreamer.so %{_libdir}/wine/%{winepedir}/winegstreamer.dll %{_libdir}/wine/%{winepedir}/winehid.sys @@ -2053,6 +2049,9 @@ fi %{_libdir}/wine/%{winepedir}/wmp.dll %{_libdir}/wine/%{winepedir}/wmvcore.dll %{_libdir}/wine/%{winepedir}/spoolss.dll +%{_libdir}/wine/%{winesodir}/win32u.so +%{_libdir}/wine/%{winesodir}/winebus.so +%{_libdir}/wine/%{winepedir}/winexinput.sys %{_libdir}/wine/%{winepedir}/winscard.dll %{_libdir}/wine/%{winepedir}/wintab32.dll %{_libdir}/wine/%{winepedir}/wintrust.dll @@ -2284,6 +2283,7 @@ fi %{_libdir}/wine/%{winesodir}/plugplay.exe.so %{_libdir}/wine/%{winesodir}/progman.exe.so %{_libdir}/wine/%{winesodir}/taskmgr.exe.so +%{_libdir}/wine/%{winesodir}/winecfg.exe.so %{_libdir}/wine/%{winesodir}/winefile.exe.so %{_libdir}/wine/%{winesodir}/winemine.exe.so %{_libdir}/wine/%{winesodir}/winemsibuilder.exe.so @@ -2453,6 +2453,7 @@ fi %{_libdir}/wine/%{winesodir}/api-ms-win-core-processthreads-l1-1-1.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-core-processthreads-l1-1-2.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-core-processthreads-l1-1-3.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-processtopology-l1-1-0.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-core-processtopology-obsolete-l1-1-0.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-core-profile-l1-1-0.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-core-psapi-l1-1-0.dll.so @@ -2605,6 +2606,7 @@ fi %{_libdir}/wine/%{winesodir}/atlthunk.dll.so %{_libdir}/wine/%{winesodir}/atmlib.dll.so %{_libdir}/wine/%{winesodir}/authz.dll.so +%{_libdir}/wine/%{winesodir}/avicap32.dll.so %{_libdir}/wine/%{winesodir}/avifil32.dll.so %{_libdir}/wine/%{winesodir}/avrt.dll.so %{_libdir}/wine/%{winesodir}/bcrypt.dll.so @@ -2699,6 +2701,7 @@ fi %{_libdir}/wine/%{winesodir}/esent.dll.so %{_libdir}/wine/%{winesodir}/evr.dll.so %{_libdir}/wine/%{winesodir}/explorerframe.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-appmodel-usercontext-l1-1-0.dll.so %{_libdir}/wine/%{winesodir}/ext-ms-win-authz-context-l1-1-0.dll.so %{_libdir}/wine/%{winesodir}/ext-ms-win-domainjoin-netjoin-l1-1-0.dll.so %{_libdir}/wine/%{winesodir}/ext-ms-win-dwmapi-ext-l1-1-0.dll.so @@ -2751,6 +2754,7 @@ fi %{_libdir}/wine/%{winesodir}/ext-ms-win-shell-comdlg32-l1-1-0.dll.so %{_libdir}/wine/%{winesodir}/ext-ms-win-shell-shell32-l1-2-0.dll.so %{_libdir}/wine/%{winesodir}/ext-ms-win-uxtheme-themes-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/ext-ms-win-xaml-pal-l1-1-0.dll.so %{_libdir}/wine/%{winesodir}/faultrep.dll.so %{_libdir}/wine/%{winesodir}/feclient.dll.so %{_libdir}/wine/%{winesodir}/fltlib.dll.so @@ -2995,6 +2999,7 @@ fi %{_libdir}/wine/%{winesodir}/shdoclc.dll.so %{_libdir}/wine/%{winesodir}/shdocvw.dll.so %{_libdir}/wine/%{winesodir}/schedsvc.dll.so +%{_libdir}/wine/%{winesodir}/shell32.dll.so %{_libdir}/wine/%{winesodir}/shfolder.dll.so %{_libdir}/wine/%{winesodir}/shlwapi.dll.so %{_libdir}/wine/%{winesodir}/shutdown.exe.so @@ -3080,10 +3085,12 @@ fi %{_libdir}/wine/%{winesodir}/windows.networking.connectivity.so %{_libdir}/wine/%{winesodir}/windowscodecs.dll.so %{_libdir}/wine/%{winesodir}/windowscodecsext.dll.so +%{_libdir}/wine/%{winesodir}/winebus.sys.so %{_libdir}/wine/%{winesodir}/winegstreamer.dll.so %{_libdir}/wine/%{winesodir}/winehid.sys.so %{_libdir}/wine/%{winesodir}/winemapi.dll.so %{_libdir}/wine/%{winesodir}/winevulkan.dll.so +%{_libdir}/wine/%{winesodir}/winexinput.sys.so %{_libdir}/wine/%{winesodir}/wing32.dll.so %{_libdir}/wine/%{winesodir}/winhttp.dll.so %{_libdir}/wine/%{winesodir}/wininet.dll.so @@ -3382,6 +3389,9 @@ fi %endif %changelog +* Mon Oct 04 2021 Michael Cronenworth 6.18-1 +- version update + * Mon Aug 30 2021 Michael Cronenworth 6.16-1 - version update From 7a118bcc58ca8e79887c789a348d5f22f5e6a9a6 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 10 Nov 2021 23:46:39 -0600 Subject: [PATCH 645/715] Update to 6.21 --- .gitignore | 6 +- sources | 6 +- wine.spec | 172 +++++++++++++++++++++++------------------------------ 3 files changed, 82 insertions(+), 102 deletions(-) diff --git a/.gitignore b/.gitignore index 4d4d836..984518e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-6.18.tar.xz -/wine-6.18.tar.xz.sign -/wine-staging-6.18.tar.gz +/wine-6.21.tar.xz +/wine-6.21.tar.xz.sign +/wine-staging-6.21.tar.gz diff --git a/sources b/sources index 5aba667..7080ba7 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-6.18.tar.xz) = d8f54f8fbb61b4af2a6f97328d33b0389ab0fb6a9dac97b2832af3d911a9f23c08653f40ec77f7c0eedd694c4a1c1228fe9dd4d859d8b3d7419e21847de7bcfe -SHA512 (wine-6.18.tar.xz.sign) = 17f535240bed845cfb9d1a9ff77c4863d172ea1ab32c9f4baf415d9bd672f734e7b1d21ea4b693dc2d55a030503e91113e0f951e97eb2e8db2b752e7e9c51196 -SHA512 (wine-staging-6.18.tar.gz) = f718b4a6f314e8db4f6ad4cb41449d251d973b0942072411a70749398cec9d60ebcf29078cf00a895f665ea7e7846c3fd7e5553d04b3b451ae757c95fb49af58 +SHA512 (wine-6.21.tar.xz) = 2c6d58c8c5c37497b2b3935f71afd636c274d1d4ad3f9ca2fd9982a9ed5910888cc20841bd9175446aab2fef7813d7700458edbaad6028ad34e7444a887a9220 +SHA512 (wine-6.21.tar.xz.sign) = 2e94813598ed87fed35b7369a4c4271c632da641d931d4d12c6d9b22e020ef7fe52546897bd77279c1ab4e7fb744ffc2b72bee9d0ab0785ecc61d1403433cc40 +SHA512 (wine-staging-6.21.tar.gz) = b74ad7f96f2831b2635557c16cb616754e31c490b5b935d1d197d6cc8e61ca75805f801e22223b936a3794af57be94344d3a06dcfce92db7e036b6c3751ef294 diff --git a/wine.spec b/wine.spec index 6b57d4a..b5f76b9 100644 --- a/wine.spec +++ b/wine.spec @@ -37,7 +37,7 @@ %endif Name: wine -Version: 6.18 +Version: 6.21 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -194,7 +194,6 @@ Requires: wine-fonts = %{version}-%{release} %ifarch %{ix86} x86_64 %if 0%{?fedora} || 0%{?rhel} <= 6 Requires: wine-core(x86-32) = %{version}-%{release} -Requires: wine-capi(x86-32) = %{version}-%{release} Requires: wine-cms(x86-32) = %{version}-%{release} Requires: wine-ldap(x86-32) = %{version}-%{release} Requires: wine-twain(x86-32) = %{version}-%{release} @@ -218,12 +217,12 @@ Recommends: wine-dxvk(x86-32) Recommends: dosbox-staging %endif Recommends: gstreamer1-plugins-good(x86-32) +Recommends: isdn4k-utils(x86-32) %endif # x86-64 parts %ifarch x86_64 Requires: wine-core(x86-64) = %{version}-%{release} -Requires: wine-capi(x86-64) = %{version}-%{release} Requires: wine-cms(x86-64) = %{version}-%{release} Requires: wine-ldap(x86-64) = %{version}-%{release} Requires: wine-twain(x86-64) = %{version}-%{release} @@ -244,12 +243,12 @@ Recommends: wine-dxvk(x86-64) Recommends: dosbox-staging %endif Recommends: gstreamer1-plugins-good(x86-64) +Recommends: isdn4k-utils(x86-64) %endif # ARM parts %ifarch %{arm} aarch64 Requires: wine-core = %{version}-%{release} -Requires: wine-capi = %{version}-%{release} Requires: wine-cms = %{version}-%{release} Requires: wine-ldap = %{version}-%{release} Requires: wine-twain = %{version}-%{release} @@ -265,7 +264,6 @@ Requires: samba-winbind-clients # aarch64 parts %ifarch aarch64 Requires: wine-core(aarch-64) = %{version}-%{release} -Requires: wine-capi(aarch-64) = %{version}-%{release} Requires: wine-cms(aarch-64) = %{version}-%{release} Requires: wine-ldap(aarch-64) = %{version}-%{release} Requires: wine-twain(aarch-64) = %{version}-%{release} @@ -367,6 +365,9 @@ Requires: libva # removed as of 1.7.35 Obsoletes: wine-wow < 1.7.35 Provides: wine-wow = %{version}-%{release} +# library is now directly linked +Obsoletes: wine-capi < 6.21 +Provides: wine-capi = %{version}-%{release} %description core Wine core package includes the basic wine stuff needed by all other packages. @@ -638,24 +639,6 @@ Requires: sane-backends-libs %description twain Twain support for wine -%package capi -Summary: ISDN support for wine -Requires: wine-core = %{version}-%{release} -%if 0%{?fedora} <= 30 -%ifarch x86_64 -Requires: isdn4k-utils(x86-64) -%endif -%ifarch %{ix86} -Requires: isdn4k-utils(x86-32) -%endif -%ifarch %{arm} aarch64 -Requires: isdn4k-utils -%endif -%endif - -%description capi -ISDN support for wine - %package devel Summary: Wine development environment Requires: wine-core = %{version}-%{release} @@ -1096,8 +1079,6 @@ fi %ldconfig_scriptlets twain -%ldconfig_scriptlets capi - %ldconfig_scriptlets alsa %if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 @@ -1118,9 +1099,7 @@ fi %doc VERSION # do not include huge changelogs .OLD .ALPHA .BETA (#204302) %doc documentation/README.* -%if 0%{?wine_staging} %{_bindir}/msidb -%endif %{_bindir}/winedump %{_libdir}/wine/%{winepedir}/explorer.exe %{_libdir}/wine/%{winepedir}/cabarc.exe @@ -1132,7 +1111,6 @@ fi %{_libdir}/wine/%{winepedir}/progman.exe %{_libdir}/wine/%{winepedir}/taskmgr.exe %{_libdir}/wine/%{winepedir}/winedbg.exe -%{_libdir}/wine/%{winesodir}/winedbg.exe.so %{_libdir}/wine/%{winepedir}/winefile.exe %{_libdir}/wine/%{winepedir}/winemine.exe %{_libdir}/wine/%{winepedir}/winemsibuilder.exe @@ -1186,9 +1164,7 @@ fi %{_libdir}/wine/%{winepedir}/ipconfig.exe %{_libdir}/wine/%{winepedir}/winhlp32.exe %{_libdir}/wine/%{winepedir}/mshta.exe -%if 0%{?wine_staging} %{_libdir}/wine/%{winepedir}/msidb.exe -%endif %{_libdir}/wine/%{winepedir}/msiexec.exe %{_libdir}/wine/%{winepedir}/net.exe %{_libdir}/wine/%{winepedir}/netstat.exe @@ -1218,10 +1194,8 @@ fi %{_libdir}/wine/%{winepedir}/whoami.exe %{_libdir}/wine/%{winepedir}/wineboot.exe %{_libdir}/wine/%{winepedir}/winebrowser.exe -%{_libdir}/wine/%{winesodir}/winebrowser.exe.so %{_libdir}/wine/%{winepedir}/wineconsole.exe %{_libdir}/wine/%{winepedir}/winemenubuilder.exe -%{_libdir}/wine/%{winesodir}/winemenubuilder.exe.so %{_libdir}/wine/%{winepedir}/winecfg.exe %{_libdir}/wine/%{winepedir}/winedevice.exe %{_libdir}/wine/%{winepedir}/wmplayer.exe @@ -1342,6 +1316,7 @@ fi %{_libdir}/wine/%{winepedir}/api-ms-win-core-psm-appnotify-l1-1-0.dll %{_libdir}/wine/%{winepedir}/api-ms-win-core-quirks-l1-1-0.dll %{_libdir}/wine/%{winepedir}/api-ms-win-core-realtime-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-realtime-l1-1-1.dll %{_libdir}/wine/%{winepedir}/api-ms-win-core-registry-l1-1-0.dll %{_libdir}/wine/%{winepedir}/api-ms-win-core-registry-l2-1-0.dll %{_libdir}/wine/%{winepedir}/api-ms-win-core-registry-l2-2-0.dll @@ -1502,6 +1477,7 @@ fi %{_libdir}/wine/%{winepedir}/chcp.com %{_libdir}/wine/%{winepedir}/clock.exe %{_libdir}/wine/%{winepedir}/clusapi.dll +%{_libdir}/wine/%{winepedir}/cng.sys %{_libdir}/wine/%{winepedir}/combase.dll %{_libdir}/wine/%{winepedir}/comcat.dll %{_libdir}/wine/%{winepedir}/comctl32.dll @@ -1521,7 +1497,7 @@ fi %{_libdir}/wine/%{winepedir}/cryptsp.dll %{_libdir}/wine/%{winepedir}/cryptui.dll %{_libdir}/wine/%{winepedir}/ctapi32.dll -%{_libdir}/wine/%{winesodir}/ctapi32.dll.so +%{_libdir}/wine/%{winesodir}/ctapi32.so %{_libdir}/wine/%{winepedir}/ctl3d32.dll %{_libdir}/wine/%{winepedir}/d2d1.dll %ghost %{_libdir}/wine/%{winepedir}/d3d10.dll @@ -1552,12 +1528,11 @@ fi %{_libdir}/wine/%{winepedir}/ddrawex.dll %{_libdir}/wine/%{winepedir}/devenum.dll %{_libdir}/wine/%{winepedir}/dhcpcsvc.dll +%{_libdir}/wine/%{winepedir}/dhcpcsvc6.dll %{_libdir}/wine/%{winepedir}/dhtmled.ocx %{_libdir}/wine/%{winepedir}/difxapi.dll %{_libdir}/wine/%{winepedir}/dinput.dll -%{_libdir}/wine/%{winesodir}/dinput.dll.so %{_libdir}/wine/%{winepedir}/dinput8.dll -%{_libdir}/wine/%{winesodir}/dinput8.dll.so %{_libdir}/wine/%{winepedir}/directmanipulation.dll %{_libdir}/wine/%{winepedir}/dispex.dll %{_libdir}/wine/%{winepedir}/dmband.dll @@ -1667,12 +1642,11 @@ fi %{_libdir}/wine/%{winepedir}/fwpuclnt.dll %{_libdir}/wine/%{winepedir}/gameux.dll %{_libdir}/wine/%{winepedir}/gamingtcui.dll -%{_libdir}/wine/%{winesodir}/gdi32.so %{_libdir}/wine/%{winepedir}/gdi32.dll %{_libdir}/wine/%{winepedir}/gdiplus.dll %{_libdir}/wine/%{winepedir}/glu32.dll %{_libdir}/wine/%{winepedir}/gphoto2.ds -%{_libdir}/wine/%{winesodir}/gphoto2.ds.so +%{_libdir}/wine/%{winesodir}/gphoto2.so %{_libdir}/wine/%{winepedir}/gpkcsp.dll %{_libdir}/wine/%{winepedir}/hal.dll %{_libdir}/wine/%{winepedir}/hh.exe @@ -1704,7 +1678,6 @@ fi %{_libdir}/wine/%{winepedir}/inkobj.dll %{_libdir}/wine/%{winepedir}/inseng.dll %{_libdir}/wine/%{winepedir}/iphlpapi.dll -%{_libdir}/wine/%{winesodir}/iphlpapi.dll.so %{_libdir}/wine/%{winepedir}/iprop.dll %{_libdir}/wine/%{winepedir}/irprops.cpl %{_libdir}/wine/%{winepedir}/itircl.dll @@ -1722,7 +1695,6 @@ fi %{_libdir}/wine/%{winepedir}/ktmw32.dll %if 0%{?fedora} > 24 %{_libdir}/wine/%{winepedir}/l3codeca.acm -%{_libdir}/wine/%{winesodir}/l3codeca.acm.so %endif %{_libdir}/wine/%{winepedir}/light.msstyles %{_libdir}/wine/%{winepedir}/loadperf.dll @@ -1753,7 +1725,6 @@ fi %{_libdir}/wine/%{winepedir}/mountmgr.sys %{_libdir}/wine/%{winesodir}/mountmgr.sys.so %{_libdir}/wine/%{winepedir}/mp3dmod.dll -%{_libdir}/wine/%{winesodir}/mp3dmod.dll.so %{_libdir}/wine/%{winepedir}/mpr.dll %{_libdir}/wine/%{winepedir}/mprapi.dll %{_libdir}/wine/%{winepedir}/msacm32.dll @@ -1767,13 +1738,13 @@ fi %{_libdir}/wine/%{winepedir}/msctf.dll %{_libdir}/wine/%{winepedir}/msctfp.dll %{_libdir}/wine/%{winepedir}/msdaps.dll +%{_libdir}/wine/%{winepedir}/msdasql.dll %{_libdir}/wine/%{winepedir}/msdelta.dll %{_libdir}/wine/%{winepedir}/msdmo.dll %{_libdir}/wine/%{winepedir}/msdrm.dll %{_libdir}/wine/%{winepedir}/msftedit.dll %{_libdir}/wine/%{winepedir}/msg711.acm %{_libdir}/wine/%{winepedir}/msgsm32.acm -%{_libdir}/wine/%{winesodir}/msgsm32.acm.so %{_libdir}/wine/%{winepedir}/mshtml.dll %{_libdir}/wine/%{winepedir}/mshtml.tlb %{_libdir}/wine/%{winepedir}/msi.dll @@ -1827,7 +1798,6 @@ fi %{_libdir}/wine/%{winepedir}/msxml.dll %{_libdir}/wine/%{winepedir}/msxml2.dll %{_libdir}/wine/%{winepedir}/msxml3.dll -%{_libdir}/wine/%{winesodir}/msxml3.dll.so %{_libdir}/wine/%{winepedir}/msxml4.dll %{_libdir}/wine/%{winepedir}/msxml6.dll %{_libdir}/wine/%{winepedir}/mtxdm.dll @@ -1840,17 +1810,15 @@ fi %{_libdir}/wine/%{winepedir}/netio.sys %{_libdir}/wine/%{winepedir}/netprofm.dll %{_libdir}/wine/%{winepedir}/netsh.exe -%if 0%{?wine_staging} %{_libdir}/wine/%{winepedir}/netutils.dll -%endif %{_libdir}/wine/%{winepedir}/newdev.dll %{_libdir}/wine/%{winepedir}/ninput.dll %{_libdir}/wine/%{winepedir}/normaliz.dll %{_libdir}/wine/%{winepedir}/npmshtml.dll %{_libdir}/wine/%{winepedir}/npptools.dll %{_libdir}/wine/%{winepedir}/nsi.dll +%{_libdir}/wine/%{winesodir}/nsiproxy.so %{_libdir}/wine/%{winepedir}/nsiproxy.sys -%{_libdir}/wine/%{winesodir}/nsiproxy.sys.so %{_libdir}/wine/%{winesodir}/ntdll.so %{_libdir}/wine/%{winepedir}/ntdll.dll %{_libdir}/wine/%{winepedir}/ntdsapi.dll @@ -1906,6 +1874,7 @@ fi %{_libdir}/wine/%{winepedir}/resutils.dll %{_libdir}/wine/%{winepedir}/riched20.dll %{_libdir}/wine/%{winepedir}/riched32.dll +%{_libdir}/wine/%{winepedir}/robocopy.exe %{_libdir}/wine/%{winepedir}/rpcrt4.dll %{_libdir}/wine/%{winepedir}/rsabase.dll %{_libdir}/wine/%{winepedir}/rsaenh.dll @@ -1944,9 +1913,7 @@ fi %{_libdir}/wine/%{winepedir}/spoolsv.exe %{_libdir}/wine/%{winepedir}/sppc.dll %{_libdir}/wine/%{winepedir}/srclient.dll -%if 0%{?wine_staging} %{_libdir}/wine/%{winepedir}/srvcli.dll -%endif %{_libdir}/wine/%{winepedir}/sspicli.dll %{_libdir}/wine/%{winepedir}/stdole2.tlb %{_libdir}/wine/%{winepedir}/stdole32.tlb @@ -1967,9 +1934,7 @@ fi %{_libdir}/wine/%{winepedir}/traffic.dll %{_libdir}/wine/%{winepedir}/tzres.dll %{_libdir}/wine/%{winepedir}/ucrtbase.dll -%if 0%{?wine_staging} %{_libdir}/wine/%{winepedir}/uianimation.dll -%endif %{_libdir}/wine/%{winepedir}/uiautomationcore.dll %{_libdir}/wine/%{winepedir}/uiribbon.dll %{_libdir}/wine/%{winepedir}/unicows.dll @@ -1978,7 +1943,6 @@ fi %{_libdir}/wine/%{winepedir}/url.dll %{_libdir}/wine/%{winepedir}/urlmon.dll %{_libdir}/wine/%{winepedir}/usbd.sys -%{_libdir}/wine/%{winesodir}/user32.so %{_libdir}/wine/%{winepedir}/user32.dll %{_libdir}/wine/%{winepedir}/usp10.dll %{_libdir}/wine/%{winepedir}/utildll.dll @@ -2011,6 +1975,7 @@ fi %{_libdir}/wine/%{winepedir}/wimgapi.dll %{_libdir}/wine/%{winepedir}/win32k.sys %{_libdir}/wine/%{winepedir}/win32u.dll +%{_libdir}/wine/%{winepedir}/windows.devices.enumeration.dll %if 0%{?wine_staging} %{_libdir}/wine/%{winepedir}/windows.gaming.input.dll %{_libdir}/wine/%{winepedir}/windows.globalization.dll @@ -2019,7 +1984,6 @@ fi %{_libdir}/wine/%{winepedir}/windows.media.devices.dll %{_libdir}/wine/%{winepedir}/windows.networking.connectivity %{_libdir}/wine/%{winepedir}/windowscodecs.dll -%{_libdir}/wine/%{winesodir}/windowscodecs.so %{_libdir}/wine/%{winepedir}/windowscodecsext.dll %{_libdir}/wine/%{winepedir}/winebus.sys %{_libdir}/wine/%{winesodir}/winegstreamer.so @@ -2040,7 +2004,7 @@ fi %{_libdir}/wine/%{winepedir}/winmm.dll %{_libdir}/wine/%{winepedir}/winnls32.dll %{_libdir}/wine/%{winepedir}/winspool.drv -%{_libdir}/wine/%{winesodir}/winspool.drv.so +%{_libdir}/wine/%{winesodir}/winspool.so %{_libdir}/wine/%{winepedir}/winsta.dll %{_libdir}/wine/%{winepedir}/wmasf.dll %{_libdir}/wine/%{winepedir}/wmi.dll @@ -2058,7 +2022,6 @@ fi %{_libdir}/wine/%{winepedir}/winusb.dll %{_libdir}/wine/%{winepedir}/wlanapi.dll %{_libdir}/wine/%{winepedir}/wlanui.dll -%{_libdir}/wine/%{winesodir}/wmphoto.so %{_libdir}/wine/%{winepedir}/wmphoto.dll %{_libdir}/wine/%{winepedir}/wnaspi32.dll %{_libdir}/wine/%{winesodir}/wnaspi32.dll.so @@ -2083,12 +2046,10 @@ fi %{_libdir}/wine/%{winepedir}/wtsapi32.dll %{_libdir}/wine/%{winepedir}/wuapi.dll %{_libdir}/wine/%{winepedir}/wuaueng.dll -%if 0%{?wine_staging} %{_libdir}/wine/%{winepedir}/wuauserv.exe %ifarch %{arm} aarch64 %{_libdir}/wine/%{winesodir}/wuauserv.exe.so %endif -%endif %{_libdir}/wine/%{winepedir}/security.dll %{_libdir}/wine/%{winepedir}/sfc.dll %{_libdir}/wine/%{winepedir}/wineps.drv @@ -2104,77 +2065,42 @@ fi %{_libdir}/wine/%{winesodir}/dnsapi.so %{_libdir}/wine/%{winepedir}/iexplore.exe %{_libdir}/wine/%{winepedir}/x3daudio1_0.dll -%{_libdir}/wine/%{winesodir}/x3daudio1_0.dll.so %{_libdir}/wine/%{winepedir}/x3daudio1_1.dll -%{_libdir}/wine/%{winesodir}/x3daudio1_1.dll.so %{_libdir}/wine/%{winepedir}/x3daudio1_2.dll -%{_libdir}/wine/%{winesodir}/x3daudio1_2.dll.so %{_libdir}/wine/%{winepedir}/x3daudio1_3.dll -%{_libdir}/wine/%{winesodir}/x3daudio1_3.dll.so %{_libdir}/wine/%{winepedir}/x3daudio1_4.dll -%{_libdir}/wine/%{winesodir}/x3daudio1_4.dll.so %{_libdir}/wine/%{winepedir}/x3daudio1_5.dll -%{_libdir}/wine/%{winesodir}/x3daudio1_5.dll.so %{_libdir}/wine/%{winepedir}/x3daudio1_6.dll -%{_libdir}/wine/%{winesodir}/x3daudio1_6.dll.so %{_libdir}/wine/%{winepedir}/x3daudio1_7.dll -%{_libdir}/wine/%{winesodir}/x3daudio1_7.dll.so %if 0%{?wine_staging} %{_libdir}/wine/%{winepedir}/xactengine2_0.dll -%{_libdir}/wine/%{winesodir}/xactengine2_0.dll.so %{_libdir}/wine/%{winepedir}/xactengine2_4.dll -%{_libdir}/wine/%{winesodir}/xactengine2_4.dll.so %{_libdir}/wine/%{winepedir}/xactengine2_7.dll -%{_libdir}/wine/%{winesodir}/xactengine2_7.dll.so %{_libdir}/wine/%{winepedir}/xactengine2_9.dll -%{_libdir}/wine/%{winesodir}/xactengine2_9.dll.so %endif %{_libdir}/wine/%{winepedir}/xactengine3_0.dll -%{_libdir}/wine/%{winesodir}/xactengine3_0.dll.so %{_libdir}/wine/%{winepedir}/xactengine3_1.dll -%{_libdir}/wine/%{winesodir}/xactengine3_1.dll.so %{_libdir}/wine/%{winepedir}/xactengine3_2.dll -%{_libdir}/wine/%{winesodir}/xactengine3_2.dll.so %{_libdir}/wine/%{winepedir}/xactengine3_3.dll -%{_libdir}/wine/%{winesodir}/xactengine3_3.dll.so %{_libdir}/wine/%{winepedir}/xactengine3_4.dll -%{_libdir}/wine/%{winesodir}/xactengine3_4.dll.so %{_libdir}/wine/%{winepedir}/xactengine3_5.dll -%{_libdir}/wine/%{winesodir}/xactengine3_5.dll.so %{_libdir}/wine/%{winepedir}/xactengine3_6.dll -%{_libdir}/wine/%{winesodir}/xactengine3_6.dll.so %{_libdir}/wine/%{winepedir}/xactengine3_7.dll -%{_libdir}/wine/%{winesodir}/xactengine3_7.dll.so %{_libdir}/wine/%{winepedir}/xapofx1_1.dll -%{_libdir}/wine/%{winesodir}/xapofx1_1.dll.so %{_libdir}/wine/%{winepedir}/xapofx1_2.dll -%{_libdir}/wine/%{winesodir}/xapofx1_2.dll.so %{_libdir}/wine/%{winepedir}/xapofx1_3.dll -%{_libdir}/wine/%{winesodir}/xapofx1_3.dll.so %{_libdir}/wine/%{winepedir}/xapofx1_4.dll -%{_libdir}/wine/%{winesodir}/xapofx1_4.dll.so %{_libdir}/wine/%{winepedir}/xapofx1_5.dll -%{_libdir}/wine/%{winesodir}/xapofx1_5.dll.so %{_libdir}/wine/%{winepedir}/xaudio2_0.dll -%{_libdir}/wine/%{winesodir}/xaudio2_0.dll.so %{_libdir}/wine/%{winepedir}/xaudio2_1.dll -%{_libdir}/wine/%{winesodir}/xaudio2_1.dll.so %{_libdir}/wine/%{winepedir}/xaudio2_2.dll -%{_libdir}/wine/%{winesodir}/xaudio2_2.dll.so %{_libdir}/wine/%{winepedir}/xaudio2_3.dll -%{_libdir}/wine/%{winesodir}/xaudio2_3.dll.so %{_libdir}/wine/%{winepedir}/xaudio2_4.dll -%{_libdir}/wine/%{winesodir}/xaudio2_4.dll.so %{_libdir}/wine/%{winepedir}/xaudio2_5.dll -%{_libdir}/wine/%{winesodir}/xaudio2_5.dll.so %{_libdir}/wine/%{winepedir}/xaudio2_6.dll -%{_libdir}/wine/%{winesodir}/xaudio2_6.dll.so %{_libdir}/wine/%{winepedir}/xaudio2_7.dll -%{_libdir}/wine/%{winesodir}/xaudio2_7.dll.so %{_libdir}/wine/%{winepedir}/xaudio2_8.dll -%{_libdir}/wine/%{winesodir}/xaudio2_8.dll.so %{_libdir}/wine/%{winepedir}/xaudio2_9.dll -%{_libdir}/wine/%{winesodir}/xaudio2_9.dll.so %{_libdir}/wine/%{winepedir}/xcopy.exe %{_libdir}/wine/%{winepedir}/xinput1_1.dll %{_libdir}/wine/%{winepedir}/xinput1_2.dll @@ -2283,8 +2209,11 @@ fi %{_libdir}/wine/%{winesodir}/plugplay.exe.so %{_libdir}/wine/%{winesodir}/progman.exe.so %{_libdir}/wine/%{winesodir}/taskmgr.exe.so +%{_libdir}/wine/%{winesodir}/winebrowser.exe.so %{_libdir}/wine/%{winesodir}/winecfg.exe.so +%{_libdir}/wine/%{winesodir}/winedbg.exe.so %{_libdir}/wine/%{winesodir}/winefile.exe.so +%{_libdir}/wine/%{winesodir}/winemenubuilder.exe.so %{_libdir}/wine/%{winesodir}/winemine.exe.so %{_libdir}/wine/%{winesodir}/winemsibuilder.exe.so %{_libdir}/wine/%{winesodir}/winepath.exe.so @@ -2462,6 +2391,7 @@ fi %{_libdir}/wine/%{winesodir}/api-ms-win-core-psm-appnotify-l1-1-0.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-core-quirks-l1-1-0.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-core-realtime-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-realtime-l1-1-1.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-core-registry-l1-1-0.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-core-registry-l2-1-0.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-core-registry-l2-2-0.dll.so @@ -2620,6 +2550,7 @@ fi %{_libdir}/wine/%{winesodir}/chcp.com.so %{_libdir}/wine/%{winesodir}/clock.exe.so %{_libdir}/wine/%{winesodir}/clusapi.dll.so +%{_libdir}/wine/%{winesodir}/cng.sys.so %{_libdir}/wine/%{winesodir}/combase.dll.so %{_libdir}/wine/%{winesodir}/comcat.dll.so %{_libdir}/wine/%{winesodir}/comctl32.dll.so @@ -2637,6 +2568,7 @@ fi %{_libdir}/wine/%{winesodir}/cryptnet.dll.so %{_libdir}/wine/%{winesodir}/cryptsp.dll.so %{_libdir}/wine/%{winesodir}/cryptui.dll.so +%{_libdir}/wine/%{winesodir}/ctapi32.dll.so %{_libdir}/wine/%{winesodir}/ctl3d32.dll.so %{_libdir}/wine/%{winesodir}/d2d1.dll.so %{_libdir}/wine/%{winesodir}/d3d10.dll.so @@ -2661,8 +2593,11 @@ fi %{_libdir}/wine/%{winesodir}/ddrawex.dll.so %{_libdir}/wine/%{winesodir}/devenum.dll.so %{_libdir}/wine/%{winesodir}/dhcpcsvc.dll.so +%{_libdir}/wine/%{winesodir}/dhcpcsvc6.dll.so %{_libdir}/wine/%{winesodir}/dhtmled.ocx.so %{_libdir}/wine/%{winesodir}/difxapi.dll.so +%{_libdir}/wine/%{winesodir}/dinput.dll.so +%{_libdir}/wine/%{winesodir}/dinput8.dll.so %{_libdir}/wine/%{winesodir}/directmanipulation.dll.so %{_libdir}/wine/%{winesodir}/dispex.dll.so %{_libdir}/wine/%{winesodir}/dmband.dll.so @@ -2768,6 +2703,7 @@ fi %{_libdir}/wine/%{winesodir}/gdi32.dll.so %{_libdir}/wine/%{winesodir}/gdiplus.dll.so %{_libdir}/wine/%{winesodir}/glu32.dll.so +%{_libdir}/wine/%{winesodir}/gphoto2.ds.so %{_libdir}/wine/%{winesodir}/gpkcsp.dll.so %{_libdir}/wine/%{winesodir}/hal.dll.so %{_libdir}/wine/%{winesodir}/hh.exe.so @@ -2798,6 +2734,7 @@ fi %{_libdir}/wine/%{winesodir}/initpki.dll.so %{_libdir}/wine/%{winesodir}/inkobj.dll.so %{_libdir}/wine/%{winesodir}/inseng.dll.so +%{_libdir}/wine/%{winesodir}/iphlpapi.dll.so %{_libdir}/wine/%{winesodir}/iprop.dll.so %{_libdir}/wine/%{winesodir}/irprops.cpl.so %{_libdir}/wine/%{winesodir}/itircl.dll.so @@ -2812,6 +2749,7 @@ fi %{_libdir}/wine/%{winesodir}/ksproxy.ax.so %{_libdir}/wine/%{winesodir}/ksuser.dll.so %{_libdir}/wine/%{winesodir}/ktmw32.dll.so +%{_libdir}/wine/%{winesodir}/l3codeca.acm.so %{_libdir}/wine/%{winesodir}/light.msstyles.so %{_libdir}/wine/%{winesodir}/loadperf.dll.so %{_libdir}/wine/%{winesodir}/localspl.dll.so @@ -2838,6 +2776,7 @@ fi %{_libdir}/wine/%{winesodir}/mmcndmgr.dll.so %{_libdir}/wine/%{winesodir}/mmdevapi.dll.so %{_libdir}/wine/%{winesodir}/mofcomp.exe.so +%{_libdir}/wine/%{winesodir}/mp3dmod.dll.so %{_libdir}/wine/%{winesodir}/mpr.dll.so %{_libdir}/wine/%{winesodir}/mprapi.dll.so %{_libdir}/wine/%{winesodir}/msacm32.dll.so @@ -2851,6 +2790,7 @@ fi %{_libdir}/wine/%{winesodir}/msctf.dll.so %{_libdir}/wine/%{winesodir}/msctfp.dll.so %{_libdir}/wine/%{winesodir}/msdaps.dll.so +%{_libdir}/wine/%{winesodir}/msdasql.dll.so %{_libdir}/wine/%{winesodir}/msdelta.dll.so %{_libdir}/wine/%{winesodir}/msdmo.dll.so %{_libdir}/wine/%{winesodir}/msdrm.dll.so @@ -2858,6 +2798,7 @@ fi %{_libdir}/wine/%{winesodir}/msg711.acm.so %{_libdir}/wine/%{winesodir}/mshtml.dll.so %{_libdir}/wine/%{winesodir}/mshtml.tlb.so +%{_libdir}/wine/%{winesodir}/msgsm32.acm.so %{_libdir}/wine/%{winesodir}/msi.dll.so %{_libdir}/wine/%{winesodir}/msident.dll.so %{_libdir}/wine/%{winesodir}/msimtf.dll.so @@ -2907,6 +2848,7 @@ fi %{_libdir}/wine/%{winesodir}/mswsock.dll.so %{_libdir}/wine/%{winesodir}/msxml.dll.so %{_libdir}/wine/%{winesodir}/msxml2.dll.so +%{_libdir}/wine/%{winesodir}/msxml3.dll.so %{_libdir}/wine/%{winesodir}/msxml4.dll.so %{_libdir}/wine/%{winesodir}/msxml6.dll.so %{_libdir}/wine/%{winesodir}/mtxdm.dll.so @@ -2927,6 +2869,7 @@ fi %{_libdir}/wine/%{winesodir}/npmshtml.dll.so %{_libdir}/wine/%{winesodir}/npptools.dll.so %{_libdir}/wine/%{winesodir}/nsi.dll.so +%{_libdir}/wine/%{winesodir}/nsiproxy.sys.so %{_libdir}/wine/%{winesodir}/ntdll.dll.so %{_libdir}/wine/%{winesodir}/ntdsapi.dll.so %{_libdir}/wine/%{winesodir}/ntprint.dll.so @@ -2973,6 +2916,7 @@ fi %{_libdir}/wine/%{winesodir}/resutils.dll.so %{_libdir}/wine/%{winesodir}/riched20.dll.so %{_libdir}/wine/%{winesodir}/riched32.dll.so +%{_libdir}/wine/%{winesodir}/robocopy.exe.so %{_libdir}/wine/%{winesodir}/rpcrt4.dll.so %{_libdir}/wine/%{winesodir}/rsabase.dll.so %{_libdir}/wine/%{winesodir}/rsaenh.dll.so @@ -3076,6 +3020,7 @@ fi %{_libdir}/wine/%{winesodir}/wimgapi.dll.so %{_libdir}/wine/%{winesodir}/win32k.sys.so %{_libdir}/wine/%{winesodir}/win32u.dll.so +%{_libdir}/wine/%{winesodir}/windows.devices.enumeration.dll.so %if 0%{?wine_staging} %{_libdir}/wine/%{winesodir}/windows.gaming.input.dll.so %{_libdir}/wine/%{winesodir}/windows.globalization.dll.so @@ -3135,6 +3080,41 @@ fi %{_libdir}/wine/%{winesodir}/dnsapi.dll.so %{_libdir}/wine/%{winesodir}/iexplore.exe.so %{_libdir}/wine/%{winesodir}/xcopy.exe.so +%{_libdir}/wine/%{winesodir}/x3daudio1_0.dll.so +%{_libdir}/wine/%{winesodir}/x3daudio1_1.dll.so +%{_libdir}/wine/%{winesodir}/x3daudio1_2.dll.so +%{_libdir}/wine/%{winesodir}/x3daudio1_3.dll.so +%{_libdir}/wine/%{winesodir}/x3daudio1_4.dll.so +%{_libdir}/wine/%{winesodir}/x3daudio1_5.dll.so +%{_libdir}/wine/%{winesodir}/x3daudio1_6.dll.so +%{_libdir}/wine/%{winesodir}/x3daudio1_7.dll.so +%{_libdir}/wine/%{winesodir}/xactengine2_0.dll.so +%{_libdir}/wine/%{winesodir}/xactengine2_4.dll.so +%{_libdir}/wine/%{winesodir}/xactengine2_7.dll.so +%{_libdir}/wine/%{winesodir}/xactengine2_9.dll.so +%{_libdir}/wine/%{winesodir}/xactengine3_0.dll.so +%{_libdir}/wine/%{winesodir}/xactengine3_1.dll.so +%{_libdir}/wine/%{winesodir}/xactengine3_2.dll.so +%{_libdir}/wine/%{winesodir}/xactengine3_3.dll.so +%{_libdir}/wine/%{winesodir}/xactengine3_4.dll.so +%{_libdir}/wine/%{winesodir}/xactengine3_5.dll.so +%{_libdir}/wine/%{winesodir}/xactengine3_6.dll.so +%{_libdir}/wine/%{winesodir}/xactengine3_7.dll.so +%{_libdir}/wine/%{winesodir}/xapofx1_1.dll.so +%{_libdir}/wine/%{winesodir}/xapofx1_2.dll.so +%{_libdir}/wine/%{winesodir}/xapofx1_3.dll.so +%{_libdir}/wine/%{winesodir}/xapofx1_4.dll.so +%{_libdir}/wine/%{winesodir}/xapofx1_5.dll.so +%{_libdir}/wine/%{winesodir}/xaudio2_0.dll.so +%{_libdir}/wine/%{winesodir}/xaudio2_1.dll.so +%{_libdir}/wine/%{winesodir}/xaudio2_2.dll.so +%{_libdir}/wine/%{winesodir}/xaudio2_3.dll.so +%{_libdir}/wine/%{winesodir}/xaudio2_4.dll.so +%{_libdir}/wine/%{winesodir}/xaudio2_5.dll.so +%{_libdir}/wine/%{winesodir}/xaudio2_6.dll.so +%{_libdir}/wine/%{winesodir}/xaudio2_7.dll.so +%{_libdir}/wine/%{winesodir}/xaudio2_8.dll.so +%{_libdir}/wine/%{winesodir}/xaudio2_9.dll.so %{_libdir}/wine/%{winesodir}/xinput1_1.dll.so %{_libdir}/wine/%{winesodir}/xinput1_2.dll.so %{_libdir}/wine/%{winesodir}/xinput1_3.dll.so @@ -3310,7 +3290,6 @@ fi # cms subpackage %files cms -%{_libdir}/wine/%{winesodir}/mscms.so %{_libdir}/wine/%{winepedir}/mscms.dll %ifarch %{arm} aarch64 %{_libdir}/wine/%{winesodir}/mscms.dll.so @@ -3323,12 +3302,10 @@ fi %{_libdir}/wine/%{winesodir}/twain_32.dll.so %endif %{_libdir}/wine/%{winepedir}/sane.ds +%ifarch %{arm} aarch64 %{_libdir}/wine/%{winesodir}/sane.ds.so - -# capi subpackage -%files capi -%{_libdir}/wine/%{winepedir}/capi2032.dll -%{_libdir}/wine/%{winesodir}/capi2032.dll.so +%endif +%{_libdir}/wine/%{winesodir}/sane.so %files devel %{_bindir}/function_grep.pl @@ -3389,6 +3366,9 @@ fi %endif %changelog +* Wed Nov 10 2021 Michael Cronenworth 6.21-1 +- version update + * Mon Oct 04 2021 Michael Cronenworth 6.18-1 - version update From 0ebc357423a5103fb527d1ef809f9b571e2e0caf Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Thu, 11 Nov 2021 07:40:28 -0600 Subject: [PATCH 646/715] Update file list for non x86-64 arches --- wine.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index b5f76b9..46f446f 100644 --- a/wine.spec +++ b/wine.spec @@ -2133,7 +2133,6 @@ fi # 16 bit and other non 64bit stuff %ifnarch x86_64 %{arm} aarch64 %{_libdir}/wine/%{winepedir}/winevdm.exe -%{_libdir}/wine/%{winesodir}/winevdm.exe.so %{_libdir}/wine/%{winepedir}/ifsmgr.vxd %{_libdir}/wine/%{winepedir}/mmdevldr.vxd %{_libdir}/wine/%{winepedir}/monodebg.vxd @@ -3041,6 +3040,7 @@ fi %{_libdir}/wine/%{winesodir}/wininet.dll.so %{_libdir}/wine/%{winesodir}/winmm.dll.so %{_libdir}/wine/%{winesodir}/winnls32.dll.so +%{_libdir}/wine/%{winesodir}/winspool.drv.so %{_libdir}/wine/%{winesodir}/winsta.dll.so %{_libdir}/wine/%{winesodir}/wmasf.dll.so %{_libdir}/wine/%{winesodir}/wmi.dll.so From 9e906e5183c268c2e2243c495b4c9eb7f2d0af99 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 20 Dec 2021 17:20:51 -0600 Subject: [PATCH 647/715] Update to 7.0-rc2 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 34 +++++++++++++++++++--------------- 3 files changed, 25 insertions(+), 21 deletions(-) diff --git a/.gitignore b/.gitignore index 984518e..2471c1d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-6.21.tar.xz -/wine-6.21.tar.xz.sign -/wine-staging-6.21.tar.gz +/wine-7.0-rc2.tar.xz +/wine-7.0-rc2.tar.xz.sign +/wine-staging-7.0-rc2.tar.gz diff --git a/sources b/sources index 7080ba7..a6fad1d 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-6.21.tar.xz) = 2c6d58c8c5c37497b2b3935f71afd636c274d1d4ad3f9ca2fd9982a9ed5910888cc20841bd9175446aab2fef7813d7700458edbaad6028ad34e7444a887a9220 -SHA512 (wine-6.21.tar.xz.sign) = 2e94813598ed87fed35b7369a4c4271c632da641d931d4d12c6d9b22e020ef7fe52546897bd77279c1ab4e7fb744ffc2b72bee9d0ab0785ecc61d1403433cc40 -SHA512 (wine-staging-6.21.tar.gz) = b74ad7f96f2831b2635557c16cb616754e31c490b5b935d1d197d6cc8e61ca75805f801e22223b936a3794af57be94344d3a06dcfce92db7e036b6c3751ef294 +SHA512 (wine-7.0-rc2.tar.xz) = 15484f55d144d91b1db4bdc9e490174ebbca1b8820dd5f243cc21223184ce5732ba9a5929fd2f2a46ee1fec07e38b7b3c74e2b79c8fcecfdfc3d482ef72b96b7 +SHA512 (wine-7.0-rc2.tar.xz.sign) = f576b1953d36ec86c123b39bf21ab2341a8c6b7dd6ddfe2cc17a1133ac6896a95ab98c9f63d0cd14a459729883a7c5468e5d8fe75058df6d898875f0e19365e5 +SHA512 (wine-staging-7.0-rc2.tar.gz) = c0b256af42e70980fea39d69e5fde06fa376d37f00f65b754850c43ffb90cda98d063df8c6a11a60a82de900c003c9d062a127e61d8652f8674a398083caf69b diff --git a/wine.spec b/wine.spec index 46f446f..87d4d9c 100644 --- a/wine.spec +++ b/wine.spec @@ -3,7 +3,7 @@ %global no64bit 0 %global winegecko 2.47.2 -%global winemono 6.4.0 +%global winemono 7.0.0 #global _default_patch_fuzz 2 %ifarch %{ix86} %global winepedir i386-windows @@ -37,14 +37,14 @@ %endif Name: wine -Version: 6.21 -Release: 1%{?dist} +Version: 7.0 +Release: 0.1rc2%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ URL: https://www.winehq.org/ -Source0: https://dl.winehq.org/wine/source/6.x/wine-%{version}.tar.xz -Source10: https://dl.winehq.org/wine/source/6.x/wine-%{version}.tar.xz.sign +Source0: https://dl.winehq.org/wine/source/7.0/wine-%{version}-rc2.tar.xz +Source10: https://dl.winehq.org/wine/source/7.0/wine-%{version}-rc2.tar.xz.sign Source1: wine.init Source2: wine.systemd @@ -88,7 +88,7 @@ Patch511: wine-cjk.patch %if 0%{?wine_staging} # wine-staging patches # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar.gz#/wine-staging-%{version}.tar.gz +Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}-rc2.tar.gz#/wine-staging-%{version}-rc2.tar.gz %endif %if !%{?no64bit} @@ -682,7 +682,7 @@ This package adds the opencl driver for wine. %endif %prep -%setup -q -n wine-%{version} +%setup -q -n wine-%{version}-rc2 %patch511 -p1 -b.cjk %if 0%{?wine_staging} @@ -691,9 +691,6 @@ gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 patches/patchinstall.sh DESTDIR="`pwd`" --all -# fix parallelized build -sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in - %endif # 0%%{?wine_staging} @@ -1216,6 +1213,7 @@ fi %{_libdir}/wine/%{winepedir}/amsi.dll %{_libdir}/wine/%{winepedir}/amstream.dll %{_libdir}/wine/%{winepedir}/api-ms-win-appmodel-identity-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-appmodel-runtime-l1-1-0.dll %{_libdir}/wine/%{winepedir}/api-ms-win-appmodel-runtime-l1-1-1.dll %{_libdir}/wine/%{winepedir}/api-ms-win-appmodel-runtime-l1-1-2.dll %{_libdir}/wine/%{winepedir}/api-ms-win-core-apiquery-l1-1-0.dll @@ -1722,8 +1720,8 @@ fi %{_libdir}/wine/%{winepedir}/mmcndmgr.dll %{_libdir}/wine/%{winepedir}/mmdevapi.dll %{_libdir}/wine/%{winepedir}/mofcomp.exe +%{_libdir}/wine/%{winesodir}/mountmgr.so %{_libdir}/wine/%{winepedir}/mountmgr.sys -%{_libdir}/wine/%{winesodir}/mountmgr.sys.so %{_libdir}/wine/%{winepedir}/mp3dmod.dll %{_libdir}/wine/%{winepedir}/mpr.dll %{_libdir}/wine/%{winepedir}/mprapi.dll @@ -1736,6 +1734,7 @@ fi %{_libdir}/wine/%{winepedir}/mscoree.dll %{_libdir}/wine/%{winepedir}/mscorwks.dll %{_libdir}/wine/%{winepedir}/msctf.dll +%{_libdir}/wine/%{winepedir}/msctfmonitor.dll %{_libdir}/wine/%{winepedir}/msctfp.dll %{_libdir}/wine/%{winepedir}/msdaps.dll %{_libdir}/wine/%{winepedir}/msdasql.dll @@ -1769,6 +1768,7 @@ fi %{_libdir}/wine/%{winepedir}/msvcirt.dll %{_libdir}/wine/%{winepedir}/msvcm80.dll %{_libdir}/wine/%{winepedir}/msvcm90.dll +%{_libdir}/wine/%{winepedir}/msvcp_win.dll %{_libdir}/wine/%{winepedir}/msvcp60.dll %{_libdir}/wine/%{winepedir}/msvcp70.dll %{_libdir}/wine/%{winepedir}/msvcp71.dll @@ -1989,8 +1989,6 @@ fi %{_libdir}/wine/%{winesodir}/winegstreamer.so %{_libdir}/wine/%{winepedir}/winegstreamer.dll %{_libdir}/wine/%{winepedir}/winehid.sys -%{_libdir}/wine/%{winepedir}/winejoystick.drv -%{_libdir}/wine/%{winesodir}/winejoystick.drv.so %{_libdir}/wine/%{winepedir}/winemapi.dll %{_libdir}/wine/%{winepedir}/wineusb.sys %{_libdir}/wine/%{winesodir}/wineusb.sys.so @@ -2024,7 +2022,6 @@ fi %{_libdir}/wine/%{winepedir}/wlanui.dll %{_libdir}/wine/%{winepedir}/wmphoto.dll %{_libdir}/wine/%{winepedir}/wnaspi32.dll -%{_libdir}/wine/%{winesodir}/wnaspi32.dll.so %ifarch x86_64 aarch64 %{_libdir}/wine/%{winepedir}/wow64.dll %{_libdir}/wine/%{winepedir}/wow64win.dll @@ -2290,6 +2287,7 @@ fi %{_libdir}/wine/%{winesodir}/amsi.dll.so %{_libdir}/wine/%{winesodir}/amstream.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-appmodel-identity-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-appmodel-runtime-l1-1-0.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-appmodel-runtime-l1-1-1.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-appmodel-runtime-l1-1-2.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-core-apiquery-l1-1-0.dll.so @@ -2775,6 +2773,7 @@ fi %{_libdir}/wine/%{winesodir}/mmcndmgr.dll.so %{_libdir}/wine/%{winesodir}/mmdevapi.dll.so %{_libdir}/wine/%{winesodir}/mofcomp.exe.so +%{_libdir}/wine/%{winesodir}/mountmgr.sys.so %{_libdir}/wine/%{winesodir}/mp3dmod.dll.so %{_libdir}/wine/%{winesodir}/mpr.dll.so %{_libdir}/wine/%{winesodir}/mprapi.dll.so @@ -2787,6 +2786,7 @@ fi %{_libdir}/wine/%{winesodir}/mscoree.dll.so %{_libdir}/wine/%{winesodir}/mscorwks.dll.so %{_libdir}/wine/%{winesodir}/msctf.dll.so +%{_libdir}/wine/%{winesodir}/msctfmonitor.dll.so %{_libdir}/wine/%{winesodir}/msctfp.dll.so %{_libdir}/wine/%{winesodir}/msdaps.dll.so %{_libdir}/wine/%{winesodir}/msdasql.dll.so @@ -2819,6 +2819,7 @@ fi %{_libdir}/wine/%{winesodir}/msvcirt.dll.so %{_libdir}/wine/%{winesodir}/msvcm80.dll.so %{_libdir}/wine/%{winesodir}/msvcm90.dll.so +%{_libdir}/wine/%{winesodir}/msvcp_win.dll.so %{_libdir}/wine/%{winesodir}/msvcp60.dll.so %{_libdir}/wine/%{winesodir}/msvcp70.dll.so %{_libdir}/wine/%{winesodir}/msvcp71.dll.so @@ -3060,6 +3061,7 @@ fi %{_libdir}/wine/%{winesodir}/wlanapi.dll.so %{_libdir}/wine/%{winesodir}/wlanui.dll.so %{_libdir}/wine/%{winesodir}/wmphoto.dll.so +%{_libdir}/wine/%{winesodir}/wnaspi32.dll.so %{_libdir}/wine/%{winesodir}/wpc.dll.so %{_libdir}/wine/%{winesodir}/wpcap.dll.so %{_libdir}/wine/%{winesodir}/ws2_32.dll.so @@ -3336,7 +3338,6 @@ fi %{_libdir}/wine/%{winepedir}/*.a %endif %{_libdir}/wine/%{winesodir}/*.a -%{_libdir}/wine/%{winesodir}/*.def %files pulseaudio @@ -3366,6 +3367,9 @@ fi %endif %changelog +* Mon Dec 20 2021 Michael Cronenworth 7.0-0.1rc2 +- version update + * Wed Nov 10 2021 Michael Cronenworth 6.21-1 - version update From ec85bcf9058ad1ad714ea0e159f6cbeba952f0cc Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 20 Dec 2021 20:30:42 -0600 Subject: [PATCH 648/715] Remove obsolete removal of typelibs in 32-bit arches --- wine.spec | 3 --- 1 file changed, 3 deletions(-) diff --git a/wine.spec b/wine.spec index 87d4d9c..7793243 100644 --- a/wine.spec +++ b/wine.spec @@ -756,9 +756,6 @@ mv %{buildroot}%{_bindir}/wineserver %{buildroot}%{_bindir}/wineserver64 %ifarch %{ix86} %{arm} mv %{buildroot}%{_bindir}/wine %{buildroot}%{_bindir}/wine32 mv %{buildroot}%{_bindir}/wineserver %{buildroot}%{_bindir}/wineserver32 -# do not ship typelibs in 32-bit packages -# https://www.winehq.org/pipermail/wine-devel/2020-June/167283.html -rm %{buildroot}%{_includedir}/wine/windows/*.tlb %endif %ifnarch aarch64 x86_64 mv %{buildroot}%{_bindir}/wine-preloader %{buildroot}%{_bindir}/wine32-preloader From 2cdd5f9c87dfa8ce2f4d1d75a99ac2d91bd28b12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Mon, 27 Dec 2021 20:14:22 +0100 Subject: [PATCH 649/715] Update to 7.0-rc3 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 15 +++++++++------ 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index 2471c1d..d6f67d8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-7.0-rc2.tar.xz -/wine-7.0-rc2.tar.xz.sign -/wine-staging-7.0-rc2.tar.gz +/wine-7.0-rc3.tar.xz +/wine-7.0-rc3.tar.xz.sign +/wine-staging-7.0-rc3.tar.gz diff --git a/sources b/sources index a6fad1d..59da96e 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-7.0-rc2.tar.xz) = 15484f55d144d91b1db4bdc9e490174ebbca1b8820dd5f243cc21223184ce5732ba9a5929fd2f2a46ee1fec07e38b7b3c74e2b79c8fcecfdfc3d482ef72b96b7 -SHA512 (wine-7.0-rc2.tar.xz.sign) = f576b1953d36ec86c123b39bf21ab2341a8c6b7dd6ddfe2cc17a1133ac6896a95ab98c9f63d0cd14a459729883a7c5468e5d8fe75058df6d898875f0e19365e5 -SHA512 (wine-staging-7.0-rc2.tar.gz) = c0b256af42e70980fea39d69e5fde06fa376d37f00f65b754850c43ffb90cda98d063df8c6a11a60a82de900c003c9d062a127e61d8652f8674a398083caf69b +SHA512 (wine-7.0-rc3.tar.xz) = 81188bad943d7bbca6ac4bb43e6ae2df8ed70501fd99c33118c7b3ead2802b812f887628c409e093b45ba9d1282efa11e6d7b57a97ef081f23f3f02554922fed +SHA512 (wine-7.0-rc3.tar.xz.sign) = e54bd107e0310fe574f1bd63179342e13d55ccb903ea646b01409d11de317e2c123ded74ab8df5ac0d76204d720236e617989beb591f537d03f963766c9c7533 +SHA512 (wine-staging-7.0-rc3.tar.gz) = e63c9b16e075e5ca533ac7e3ad8e1b577310f98585e3cba5071e2844561f61678cde748e1ff0bbe2468c850df46fc1965b3d0a8d49ca18ac234740fa0178bf57 diff --git a/wine.spec b/wine.spec index 7793243..dbb65ab 100644 --- a/wine.spec +++ b/wine.spec @@ -38,13 +38,13 @@ Name: wine Version: 7.0 -Release: 0.1rc2%{?dist} +Release: 0.2rc3%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ URL: https://www.winehq.org/ -Source0: https://dl.winehq.org/wine/source/7.0/wine-%{version}-rc2.tar.xz -Source10: https://dl.winehq.org/wine/source/7.0/wine-%{version}-rc2.tar.xz.sign +Source0: https://dl.winehq.org/wine/source/7.0/wine-%{version}-rc3.tar.xz +Source10: https://dl.winehq.org/wine/source/7.0/wine-%{version}-rc3.tar.xz.sign Source1: wine.init Source2: wine.systemd @@ -88,7 +88,7 @@ Patch511: wine-cjk.patch %if 0%{?wine_staging} # wine-staging patches # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}-rc2.tar.gz#/wine-staging-%{version}-rc2.tar.gz +Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}-rc3.tar.gz#/wine-staging-%{version}-rc3.tar.gz %endif %if !%{?no64bit} @@ -682,7 +682,7 @@ This package adds the opencl driver for wine. %endif %prep -%setup -q -n wine-%{version}-rc2 +%setup -q -n wine-%{version}-rc3 %patch511 -p1 -b.cjk %if 0%{?wine_staging} @@ -1349,6 +1349,7 @@ fi %{_libdir}/wine/%{winepedir}/api-ms-win-core-version-private-l1-1-0.dll %{_libdir}/wine/%{winepedir}/api-ms-win-core-versionansi-l1-1-0.dll %{_libdir}/wine/%{winepedir}/api-ms-win-core-windowserrorreporting-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-core-windowserrorreporting-l1-1-1.dll %{_libdir}/wine/%{winepedir}/api-ms-win-core-winrt-error-l1-1-0.dll %{_libdir}/wine/%{winepedir}/api-ms-win-core-winrt-error-l1-1-1.dll %{_libdir}/wine/%{winepedir}/api-ms-win-core-winrt-errorprivate-l1-1-1.dll @@ -3364,6 +3365,9 @@ fi %endif %changelog +* Mon Dec 27 2021 Björn Esser - 7.0-0.2rc3 +- version update + * Mon Dec 20 2021 Michael Cronenworth 7.0-0.1rc2 - version update @@ -3627,4 +3631,3 @@ fi * Wed Jan 23 2019 Michael Cronenworth 4.0-1 - version update - From 1a22c39969051086cc36a9b10fcac3a1beac72f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Mon, 27 Dec 2021 22:06:25 +0100 Subject: [PATCH 650/715] Add api-ms-win-core-windowserrorreporting-l1-1-1.dll.so for ARM arches --- wine.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/wine.spec b/wine.spec index dbb65ab..0bb8780 100644 --- a/wine.spec +++ b/wine.spec @@ -2424,6 +2424,7 @@ fi %{_libdir}/wine/%{winesodir}/api-ms-win-core-version-private-l1-1-0.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-core-versionansi-l1-1-0.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-core-windowserrorreporting-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-core-windowserrorreporting-l1-1-1.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-core-winrt-error-l1-1-0.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-core-winrt-error-l1-1-1.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-core-winrt-errorprivate-l1-1-1.dll.so From 1e9513dd7156161d1112c68cd897007912ad0eaf Mon Sep 17 00:00:00 2001 From: "FeRD (Frank Dana)" Date: Mon, 22 Nov 2021 03:03:23 -0500 Subject: [PATCH 651/715] Redirect stderr from posttrans scriptlets The `update-alternatives remove ...` commands in posttrans target alternatives that may not exist, so failure is expected and harmless. --- wine.spec | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/wine.spec b/wine.spec index 0bb8780..84d8c15 100644 --- a/wine.spec +++ b/wine.spec @@ -38,7 +38,7 @@ Name: wine Version: 7.0 -Release: 0.2rc3%{?dist} +Release: 0.3rc3%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -1022,10 +1022,10 @@ fi %posttrans core # handle upgrades for a few package updates -%{_sbindir}/alternatives --remove 'wine-dxgi%{?_isa}' %{_libdir}/wine/wine-dxgi.dll.so -%{_sbindir}/alternatives --remove 'wine-d3d9%{?_isa}' %{_libdir}/wine/wine-d3d9.dll -%{_sbindir}/alternatives --remove 'wine-d3d10%{?_isa}' %{_libdir}/wine/wine-d3d10.dll -%{_sbindir}/alternatives --remove 'wine-d3d11%{?_isa}' %{_libdir}/wine/wine-d3d11.dll +%{_sbindir}/alternatives --remove 'wine-dxgi%{?_isa}' %{_libdir}/wine/wine-dxgi.dll.so 2>/dev/null +%{_sbindir}/alternatives --remove 'wine-d3d9%{?_isa}' %{_libdir}/wine/wine-d3d9.dll 2>/dev/null +%{_sbindir}/alternatives --remove 'wine-d3d10%{?_isa}' %{_libdir}/wine/wine-d3d10.dll 2>/dev/null +%{_sbindir}/alternatives --remove 'wine-d3d11%{?_isa}' %{_libdir}/wine/wine-d3d11.dll 2>/dev/null %ifarch x86_64 aarch64 %{_sbindir}/alternatives --install %{_bindir}/wine \ wine %{_bindir}/wine64 10 \ @@ -3366,6 +3366,9 @@ fi %endif %changelog +* Mon Jan 03 2022 FeRD (Frank Dana) 7.0-0.3rc3 +- Silence messages from expected failures during rpm scriptlets + * Mon Dec 27 2021 Björn Esser - 7.0-0.2rc3 - version update From e833139b8045b3b72fa2d0c852bb0815069a73f7 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 3 Jan 2022 19:31:22 -0600 Subject: [PATCH 652/715] Update to 7.0-rc4 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 13 ++++++++----- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index d6f67d8..5028272 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-7.0-rc3.tar.xz -/wine-7.0-rc3.tar.xz.sign -/wine-staging-7.0-rc3.tar.gz +/wine-7.0-rc4.tar.xz +/wine-7.0-rc4.tar.xz.sign +/wine-staging-7.0-rc4.tar.gz diff --git a/sources b/sources index 59da96e..3e3d515 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-7.0-rc3.tar.xz) = 81188bad943d7bbca6ac4bb43e6ae2df8ed70501fd99c33118c7b3ead2802b812f887628c409e093b45ba9d1282efa11e6d7b57a97ef081f23f3f02554922fed -SHA512 (wine-7.0-rc3.tar.xz.sign) = e54bd107e0310fe574f1bd63179342e13d55ccb903ea646b01409d11de317e2c123ded74ab8df5ac0d76204d720236e617989beb591f537d03f963766c9c7533 -SHA512 (wine-staging-7.0-rc3.tar.gz) = e63c9b16e075e5ca533ac7e3ad8e1b577310f98585e3cba5071e2844561f61678cde748e1ff0bbe2468c850df46fc1965b3d0a8d49ca18ac234740fa0178bf57 +SHA512 (wine-7.0-rc4.tar.xz) = 9debaa232d21c0613e1a7fb8560093563e6536ac808bb38a8d48c5d7234e00dc6053853c2b0c039eec90a214d0f167680c729500c662c72cc74e8bad26ad0d72 +SHA512 (wine-7.0-rc4.tar.xz.sign) = 7ad337dea17172f7c857a3d809cc51c07ec1c59dd421e17885be3f10cf84a7f387c5e820c20802d20c55d71cad2150f7686508049639bf8f3ae3a5caff834ee9 +SHA512 (wine-staging-7.0-rc4.tar.gz) = f463ecfea9857ccc995d983f2cf46551f7c6003b5d44e71f682b4f52a0b702a5be1583d9f12e195df49946814d2b6297c8a5d1ff9fe1f4d34f87cb083b864570 diff --git a/wine.spec b/wine.spec index 84d8c15..3ecc0cf 100644 --- a/wine.spec +++ b/wine.spec @@ -38,13 +38,13 @@ Name: wine Version: 7.0 -Release: 0.3rc3%{?dist} +Release: 0.4rc4%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ URL: https://www.winehq.org/ -Source0: https://dl.winehq.org/wine/source/7.0/wine-%{version}-rc3.tar.xz -Source10: https://dl.winehq.org/wine/source/7.0/wine-%{version}-rc3.tar.xz.sign +Source0: https://dl.winehq.org/wine/source/7.0/wine-%{version}-rc4.tar.xz +Source10: https://dl.winehq.org/wine/source/7.0/wine-%{version}-rc4.tar.xz.sign Source1: wine.init Source2: wine.systemd @@ -88,7 +88,7 @@ Patch511: wine-cjk.patch %if 0%{?wine_staging} # wine-staging patches # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}-rc3.tar.gz#/wine-staging-%{version}-rc3.tar.gz +Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}-rc4.tar.gz#/wine-staging-%{version}-rc4.tar.gz %endif %if !%{?no64bit} @@ -682,7 +682,7 @@ This package adds the opencl driver for wine. %endif %prep -%setup -q -n wine-%{version}-rc3 +%setup -q -n wine-%{version}-rc4 %patch511 -p1 -b.cjk %if 0%{?wine_staging} @@ -3366,6 +3366,9 @@ fi %endif %changelog +* Mon Jan 03 2022 Michael Cronenworth 7.0-0.1rc4 +- version update + * Mon Jan 03 2022 FeRD (Frank Dana) 7.0-0.3rc3 - Silence messages from expected failures during rpm scriptlets From 99c5df0338362e51cbd54ae60983d49f5675e4e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Sun, 9 Jan 2022 01:07:36 +0100 Subject: [PATCH 653/715] Update to 7.0-rc5 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 15 +++++++++------ 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index 5028272..5be98e9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-7.0-rc4.tar.xz -/wine-7.0-rc4.tar.xz.sign -/wine-staging-7.0-rc4.tar.gz +/wine-7.0-rc5.tar.xz +/wine-7.0-rc5.tar.xz.sign +/wine-staging-7.0-rc5.tar.gz diff --git a/sources b/sources index 3e3d515..ba05e18 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-7.0-rc4.tar.xz) = 9debaa232d21c0613e1a7fb8560093563e6536ac808bb38a8d48c5d7234e00dc6053853c2b0c039eec90a214d0f167680c729500c662c72cc74e8bad26ad0d72 -SHA512 (wine-7.0-rc4.tar.xz.sign) = 7ad337dea17172f7c857a3d809cc51c07ec1c59dd421e17885be3f10cf84a7f387c5e820c20802d20c55d71cad2150f7686508049639bf8f3ae3a5caff834ee9 -SHA512 (wine-staging-7.0-rc4.tar.gz) = f463ecfea9857ccc995d983f2cf46551f7c6003b5d44e71f682b4f52a0b702a5be1583d9f12e195df49946814d2b6297c8a5d1ff9fe1f4d34f87cb083b864570 +SHA512 (wine-7.0-rc5.tar.xz) = d49f83f7fb71dde03b7182fd6e17fa22de68991fc897daf962992257d0b3e190f7f493042577637f7218f8d1d693c918dd794cb25d1dc21c3ea806fc17a2717f +SHA512 (wine-7.0-rc5.tar.xz.sign) = 0864ea62293a389200e963407a36215a13c48c720940e17830e91e97089ad9270c3ab850bc23c8564d031566807ee1974a7be2749a60908a0524a66d328ebbf1 +SHA512 (wine-staging-7.0-rc5.tar.gz) = fcfe6913e410dc6fad52524f1d418e5bffd139f036219ea5027ecfa80a326563f1e30eb9bcb06de2c6f96cc1ed9f71eb3f08f11e370933f2c333841573bc68c1 diff --git a/wine.spec b/wine.spec index 3ecc0cf..51d7f54 100644 --- a/wine.spec +++ b/wine.spec @@ -38,13 +38,13 @@ Name: wine Version: 7.0 -Release: 0.4rc4%{?dist} +Release: 0.5rc5%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ URL: https://www.winehq.org/ -Source0: https://dl.winehq.org/wine/source/7.0/wine-%{version}-rc4.tar.xz -Source10: https://dl.winehq.org/wine/source/7.0/wine-%{version}-rc4.tar.xz.sign +Source0: https://dl.winehq.org/wine/source/7.0/wine-%{version}-rc5.tar.xz +Source10: https://dl.winehq.org/wine/source/7.0/wine-%{version}-rc5.tar.xz.sign Source1: wine.init Source2: wine.systemd @@ -88,7 +88,7 @@ Patch511: wine-cjk.patch %if 0%{?wine_staging} # wine-staging patches # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}-rc4.tar.gz#/wine-staging-%{version}-rc4.tar.gz +Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}-rc5.tar.gz#/wine-staging-%{version}-rc5.tar.gz %endif %if !%{?no64bit} @@ -682,7 +682,7 @@ This package adds the opencl driver for wine. %endif %prep -%setup -q -n wine-%{version}-rc4 +%setup -q -n wine-%{version}-rc5 %patch511 -p1 -b.cjk %if 0%{?wine_staging} @@ -3366,7 +3366,10 @@ fi %endif %changelog -* Mon Jan 03 2022 Michael Cronenworth 7.0-0.1rc4 +* Sun Jan 09 2022 Björn Esser - 7.0-0.5rc5 +- version update + +* Mon Jan 03 2022 Michael Cronenworth 7.0-0.4rc4 - version update * Mon Jan 03 2022 FeRD (Frank Dana) 7.0-0.3rc3 From 6cd6649e77342e0afcdfd207d4893256a9461ac7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Sat, 15 Jan 2022 10:38:23 +0100 Subject: [PATCH 654/715] Update to 7.0-rc6 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 13 ++++++++----- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 5be98e9..c9e4064 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-7.0-rc5.tar.xz -/wine-7.0-rc5.tar.xz.sign -/wine-staging-7.0-rc5.tar.gz +/wine-7.0-rc6.tar.xz +/wine-7.0-rc6.tar.xz.sign +/wine-staging-7.0-rc6.tar.gz diff --git a/sources b/sources index ba05e18..fc180dc 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-7.0-rc5.tar.xz) = d49f83f7fb71dde03b7182fd6e17fa22de68991fc897daf962992257d0b3e190f7f493042577637f7218f8d1d693c918dd794cb25d1dc21c3ea806fc17a2717f -SHA512 (wine-7.0-rc5.tar.xz.sign) = 0864ea62293a389200e963407a36215a13c48c720940e17830e91e97089ad9270c3ab850bc23c8564d031566807ee1974a7be2749a60908a0524a66d328ebbf1 -SHA512 (wine-staging-7.0-rc5.tar.gz) = fcfe6913e410dc6fad52524f1d418e5bffd139f036219ea5027ecfa80a326563f1e30eb9bcb06de2c6f96cc1ed9f71eb3f08f11e370933f2c333841573bc68c1 +SHA512 (wine-7.0-rc6.tar.xz) = b1b6f4abb1f27750a688cad1bbaa6b1a969e383d971d25a08b758331361b32232003ac00ffe17fb86387ed215ad5401c477fa26c8e9cea3b2a981926eacc52a0 +SHA512 (wine-7.0-rc6.tar.xz.sign) = 9660406d7dd71407c805391d6629d4333403ca48a7cbefd311d88651083ca5dbd0354025bf8dbe78d01efe5c409fa5892e092030e416d800b5c0f890796c94b8 +SHA512 (wine-staging-7.0-rc6.tar.gz) = b695056b1e6fdf4516b7d26ca8dbc39d16ec2f6166ca8af03a1dffdffef767570e234460556b3ffed4e644cb208b7fe5820125b8f5336e6a0e7a9d0eb532e2f6 diff --git a/wine.spec b/wine.spec index 51d7f54..86dbbba 100644 --- a/wine.spec +++ b/wine.spec @@ -38,13 +38,13 @@ Name: wine Version: 7.0 -Release: 0.5rc5%{?dist} +Release: 0.6rc6%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ URL: https://www.winehq.org/ -Source0: https://dl.winehq.org/wine/source/7.0/wine-%{version}-rc5.tar.xz -Source10: https://dl.winehq.org/wine/source/7.0/wine-%{version}-rc5.tar.xz.sign +Source0: https://dl.winehq.org/wine/source/7.0/wine-%{version}-rc6.tar.xz +Source10: https://dl.winehq.org/wine/source/7.0/wine-%{version}-rc6.tar.xz.sign Source1: wine.init Source2: wine.systemd @@ -88,7 +88,7 @@ Patch511: wine-cjk.patch %if 0%{?wine_staging} # wine-staging patches # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}-rc5.tar.gz#/wine-staging-%{version}-rc5.tar.gz +Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}-rc6.tar.gz#/wine-staging-%{version}-rc6.tar.gz %endif %if !%{?no64bit} @@ -682,7 +682,7 @@ This package adds the opencl driver for wine. %endif %prep -%setup -q -n wine-%{version}-rc5 +%setup -q -n wine-%{version}-rc6 %patch511 -p1 -b.cjk %if 0%{?wine_staging} @@ -3366,6 +3366,9 @@ fi %endif %changelog +* Sat Jan 15 2022 Björn Esser - 7.0-0.6rc6 +- version update + * Sun Jan 09 2022 Björn Esser - 7.0-0.5rc5 - version update From cc1ecf997bd6f94c081146cfc5012d62d59375c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Wed, 19 Jan 2022 10:50:37 +0100 Subject: [PATCH 655/715] Update to 7.0 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 13 ++++++++----- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index c9e4064..7af2319 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-7.0-rc6.tar.xz -/wine-7.0-rc6.tar.xz.sign -/wine-staging-7.0-rc6.tar.gz +/wine-7.0.tar.xz +/wine-7.0.tar.xz.sign +/wine-staging-7.0.tar.gz diff --git a/sources b/sources index fc180dc..f980026 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-7.0-rc6.tar.xz) = b1b6f4abb1f27750a688cad1bbaa6b1a969e383d971d25a08b758331361b32232003ac00ffe17fb86387ed215ad5401c477fa26c8e9cea3b2a981926eacc52a0 -SHA512 (wine-7.0-rc6.tar.xz.sign) = 9660406d7dd71407c805391d6629d4333403ca48a7cbefd311d88651083ca5dbd0354025bf8dbe78d01efe5c409fa5892e092030e416d800b5c0f890796c94b8 -SHA512 (wine-staging-7.0-rc6.tar.gz) = b695056b1e6fdf4516b7d26ca8dbc39d16ec2f6166ca8af03a1dffdffef767570e234460556b3ffed4e644cb208b7fe5820125b8f5336e6a0e7a9d0eb532e2f6 +SHA512 (wine-7.0.tar.xz) = eec17b046ed5447eb540f421c9b2748d9419ce087496c2743a9914fd27bbe5ff9da0cfe47d3cd76fa97323bd1188a1d82b1eef4968d86ed1957dc1a95e28529c +SHA512 (wine-7.0.tar.xz.sign) = 8948906e068881a05d59bc4c5ff0d172f06d8d6ed66ac9a9ed67620e604c822dd5dfcf3e5428e81d8fb7ffc9b718bde692d7badd7908b4701c14728cae8fa18a +SHA512 (wine-staging-7.0.tar.gz) = fbec2de7a13c7e59a041d8102d69b803d4475b743068d215cce510af905b81903aa028604068af0d309fe1708eb1ab62aad42887ac079af5206635bee0045952 diff --git a/wine.spec b/wine.spec index 86dbbba..16d6b99 100644 --- a/wine.spec +++ b/wine.spec @@ -38,13 +38,13 @@ Name: wine Version: 7.0 -Release: 0.6rc6%{?dist} +Release: 1%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ URL: https://www.winehq.org/ -Source0: https://dl.winehq.org/wine/source/7.0/wine-%{version}-rc6.tar.xz -Source10: https://dl.winehq.org/wine/source/7.0/wine-%{version}-rc6.tar.xz.sign +Source0: https://dl.winehq.org/wine/source/7.0/wine-%{version}.tar.xz +Source10: https://dl.winehq.org/wine/source/7.0/wine-%{version}.tar.xz.sign Source1: wine.init Source2: wine.systemd @@ -88,7 +88,7 @@ Patch511: wine-cjk.patch %if 0%{?wine_staging} # wine-staging patches # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}-rc6.tar.gz#/wine-staging-%{version}-rc6.tar.gz +Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar.gz#/wine-staging-%{version}.tar.gz %endif %if !%{?no64bit} @@ -682,7 +682,7 @@ This package adds the opencl driver for wine. %endif %prep -%setup -q -n wine-%{version}-rc6 +%setup -qn wine-%{version} %patch511 -p1 -b.cjk %if 0%{?wine_staging} @@ -3366,6 +3366,9 @@ fi %endif %changelog +* Wed Jan 19 2022 Björn Esser - 7.0-1 +- version update + * Sat Jan 15 2022 Björn Esser - 7.0-0.6rc6 - version update From a6bc1ef458930093ae0295c19342ed3761f456c6 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 22 Jan 2022 04:29:18 +0000 Subject: [PATCH 656/715] - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- wine.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 16d6b99..a0f3c4d 100644 --- a/wine.spec +++ b/wine.spec @@ -38,7 +38,7 @@ Name: wine Version: 7.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -3366,6 +3366,9 @@ fi %endif %changelog +* Sat Jan 22 2022 Fedora Release Engineering - 7.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + * Wed Jan 19 2022 Björn Esser - 7.0-1 - version update From 145afd58b67e6ff3ce3474747152128a739bea29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Sat, 29 Jan 2022 16:19:32 +0100 Subject: [PATCH 657/715] Update to 7.1 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 13 ++++++++----- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 7af2319..ccb1707 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-7.0.tar.xz -/wine-7.0.tar.xz.sign -/wine-staging-7.0.tar.gz +/wine-7.*.tar.xz +/wine-7.*.tar.xz.sign +/wine-staging-7.*.tar.gz diff --git a/sources b/sources index f980026..88fd861 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-7.0.tar.xz) = eec17b046ed5447eb540f421c9b2748d9419ce087496c2743a9914fd27bbe5ff9da0cfe47d3cd76fa97323bd1188a1d82b1eef4968d86ed1957dc1a95e28529c -SHA512 (wine-7.0.tar.xz.sign) = 8948906e068881a05d59bc4c5ff0d172f06d8d6ed66ac9a9ed67620e604c822dd5dfcf3e5428e81d8fb7ffc9b718bde692d7badd7908b4701c14728cae8fa18a -SHA512 (wine-staging-7.0.tar.gz) = fbec2de7a13c7e59a041d8102d69b803d4475b743068d215cce510af905b81903aa028604068af0d309fe1708eb1ab62aad42887ac079af5206635bee0045952 +SHA512 (wine-7.1.tar.xz) = 4b226ecab92a0462fb579602549cb4b96e0baa353fd320a0bc8d1ce134eff5a434600fcf748e93ecde06624f78b8c0d70b39737d97a7e2327a61df9750ae30b5 +SHA512 (wine-7.1.tar.xz.sign) = 6f7abffe03a1de2799f0afae5e5abda93c2c6ca02677522dd1b838eead84af5516bbbc18708f87c168d04fcd18d6b15ee3ce295d5e2e246c7b0641d7c497fac5 +SHA512 (wine-staging-7.1.tar.gz) = cae234a3874c8bd3a4514c81ee311871c79c6c631145497e279ae86ceb6fef8e324d622d8b9974dbe7cbffacef09d8a6cb47a042096bf1a5ba737fed017e4038 diff --git a/wine.spec b/wine.spec index a0f3c4d..e52919b 100644 --- a/wine.spec +++ b/wine.spec @@ -3,7 +3,7 @@ %global no64bit 0 %global winegecko 2.47.2 -%global winemono 7.0.0 +%global winemono 7.1.1 #global _default_patch_fuzz 2 %ifarch %{ix86} %global winepedir i386-windows @@ -37,14 +37,14 @@ %endif Name: wine -Version: 7.0 -Release: 2%{?dist} +Version: 7.1 +Release: 1%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ URL: https://www.winehq.org/ -Source0: https://dl.winehq.org/wine/source/7.0/wine-%{version}.tar.xz -Source10: https://dl.winehq.org/wine/source/7.0/wine-%{version}.tar.xz.sign +Source0: https://dl.winehq.org/wine/source/7.x/wine-%{version}.tar.xz +Source10: https://dl.winehq.org/wine/source/7.x/wine-%{version}.tar.xz.sign Source1: wine.init Source2: wine.systemd @@ -3366,6 +3366,9 @@ fi %endif %changelog +* Sat Jan 29 2022 Björn Esser - 7.1-1 +- version update + * Sat Jan 22 2022 Fedora Release Engineering - 7.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild From b18af707176fc6ce18065a9e1c76234a5c150452 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Mon, 31 Jan 2022 08:58:54 +0100 Subject: [PATCH 658/715] Add new dlls --- wine.spec | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/wine.spec b/wine.spec index e52919b..f193321 100644 --- a/wine.spec +++ b/wine.spec @@ -1778,6 +1778,7 @@ fi %{_libdir}/wine/%{winepedir}/msvcp120_app.dll %{_libdir}/wine/%{winepedir}/msvcp140.dll %{_libdir}/wine/%{winepedir}/msvcp140_1.dll +%{_libdir}/wine/%{winepedir}/msvcp140_atomic_wait.dll %{_libdir}/wine/%{winepedir}/msvcr70.dll %{_libdir}/wine/%{winepedir}/msvcr71.dll %{_libdir}/wine/%{winepedir}/msvcr80.dll @@ -2002,6 +2003,7 @@ fi %{_libdir}/wine/%{winepedir}/winspool.drv %{_libdir}/wine/%{winesodir}/winspool.so %{_libdir}/wine/%{winepedir}/winsta.dll +%{_libdir}/wine/%{winepedir}/wmadmod.dll %{_libdir}/wine/%{winepedir}/wmasf.dll %{_libdir}/wine/%{winepedir}/wmi.dll %{_libdir}/wine/%{winepedir}/wmic.exe @@ -2830,6 +2832,7 @@ fi %{_libdir}/wine/%{winesodir}/msvcp120_app.dll.so %{_libdir}/wine/%{winesodir}/msvcp140.dll.so %{_libdir}/wine/%{winesodir}/msvcp140_1.dll.so +%{_libdir}/wine/%{winesodir}/msvcp140_atomic_wait.dll.so %{_libdir}/wine/%{winesodir}/msvcr70.dll.so %{_libdir}/wine/%{winesodir}/msvcr71.dll.so %{_libdir}/wine/%{winesodir}/msvcr80.dll.so @@ -3042,6 +3045,7 @@ fi %{_libdir}/wine/%{winesodir}/winnls32.dll.so %{_libdir}/wine/%{winesodir}/winspool.drv.so %{_libdir}/wine/%{winesodir}/winsta.dll.so +%{_libdir}/wine/%{winesodir}/wmadmod.dll.so %{_libdir}/wine/%{winesodir}/wmasf.dll.so %{_libdir}/wine/%{winesodir}/wmi.dll.so %{_libdir}/wine/%{winesodir}/wmic.exe.so From 39b79130e54854ac646e0bc18d963a98f8774182 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Mon, 31 Jan 2022 19:25:10 +0100 Subject: [PATCH 659/715] Revert to wine-mono 7.0.0 --- wine.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/wine.spec b/wine.spec index f193321..c7c3154 100644 --- a/wine.spec +++ b/wine.spec @@ -3,7 +3,7 @@ %global no64bit 0 %global winegecko 2.47.2 -%global winemono 7.1.1 +%global winemono 7.0.0 #global _default_patch_fuzz 2 %ifarch %{ix86} %global winepedir i386-windows @@ -38,7 +38,7 @@ Name: wine Version: 7.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -3370,6 +3370,9 @@ fi %endif %changelog +* Mon Jan 31 2022 Björn Esser - 7.1-2 +- Revert to wine-mono 7.0.0 + * Sat Jan 29 2022 Björn Esser - 7.1-1 - version update From c7601bd7a6f6cf8f4baf73e7e34e946b2e191cb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Mon, 31 Jan 2022 21:28:45 +0100 Subject: [PATCH 660/715] Use %make_build macro --- wine.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index c7c3154..ccbac51 100644 --- a/wine.spec +++ b/wine.spec @@ -738,7 +738,7 @@ export CFLAGS="`echo $CFLAGS | sed -e 's/-fexceptions//'`" %{?wine_staging: --with-xattr} \ --disable-tests -make %{?_smp_mflags} TARGETFLAGS="" +%make_build TARGETFLAGS="" %install From 69e128d3e5b260e08282be8bdedff5cd5d7605b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Sun, 13 Feb 2022 11:39:24 +0100 Subject: [PATCH 661/715] Update to 7.2 --- .gitignore | 6 +++--- sources | 6 +++--- wine.spec | 9 ++++++--- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index ccb1707..b073d4f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/wine-7.*.tar.xz -/wine-7.*.tar.xz.sign -/wine-staging-7.*.tar.gz +/wine-*.tar.xz +/wine-*.tar.xz.sign +/wine-staging-*.tar.gz diff --git a/sources b/sources index 88fd861..e213220 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-7.1.tar.xz) = 4b226ecab92a0462fb579602549cb4b96e0baa353fd320a0bc8d1ce134eff5a434600fcf748e93ecde06624f78b8c0d70b39737d97a7e2327a61df9750ae30b5 -SHA512 (wine-7.1.tar.xz.sign) = 6f7abffe03a1de2799f0afae5e5abda93c2c6ca02677522dd1b838eead84af5516bbbc18708f87c168d04fcd18d6b15ee3ce295d5e2e246c7b0641d7c497fac5 -SHA512 (wine-staging-7.1.tar.gz) = cae234a3874c8bd3a4514c81ee311871c79c6c631145497e279ae86ceb6fef8e324d622d8b9974dbe7cbffacef09d8a6cb47a042096bf1a5ba737fed017e4038 +SHA512 (wine-7.2.tar.xz) = 13db73950218bc743803b2c60cee2534f38804a940e9666aad0f0f91e26bd5d432ca2f0cd8134ff6c43bb8dae253098d2e3db0a3621aa38fac9a1574152b8729 +SHA512 (wine-7.2.tar.xz.sign) = e14bdb978098b2ced779bc6d77af3ad32450b8967b7501d40e900ada69cf075158e54b8d90d8206d564ff4346e6f05c26ce7521481df265add676b8eff405b87 +SHA512 (wine-staging-7.2.tar.gz) = d8e0779b143424d5677ec556140db8698e414c240b9107a62ed3364e57e1e9d1c7115d141a71997ed4d436154b5254b061bac5071dd99b0d4729053e73304c38 diff --git a/wine.spec b/wine.spec index ccbac51..cf43ea1 100644 --- a/wine.spec +++ b/wine.spec @@ -3,7 +3,7 @@ %global no64bit 0 %global winegecko 2.47.2 -%global winemono 7.0.0 +%global winemono 7.1.1 #global _default_patch_fuzz 2 %ifarch %{ix86} %global winepedir i386-windows @@ -37,8 +37,8 @@ %endif Name: wine -Version: 7.1 -Release: 2%{?dist} +Version: 7.2 +Release: 1%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -3370,6 +3370,9 @@ fi %endif %changelog +* Sun Feb 13 2022 Björn Esser - 7.2-1 +- version update + * Mon Jan 31 2022 Björn Esser - 7.1-2 - Revert to wine-mono 7.0.0 From fdec62c2732792282b9a32130e44b31da3b2e61d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Sun, 13 Feb 2022 12:12:59 +0100 Subject: [PATCH 662/715] Add new dlls --- wine.spec | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/wine.spec b/wine.spec index cf43ea1..65653c4 100644 --- a/wine.spec +++ b/wine.spec @@ -1428,6 +1428,7 @@ fi %{_libdir}/wine/%{winepedir}/api-ms-win-security-lsalookup-l1-1-1.dll %{_libdir}/wine/%{winepedir}/api-ms-win-security-lsalookup-l2-1-0.dll %{_libdir}/wine/%{winepedir}/api-ms-win-security-lsalookup-l2-1-1.dll +%{_libdir}/wine/%{winepedir}/api-ms-win-security-lsalookup-ansi-l2-1-0.dll %{_libdir}/wine/%{winepedir}/api-ms-win-security-lsapolicy-l1-1-0.dll %{_libdir}/wine/%{winepedir}/api-ms-win-security-provider-l1-1-0.dll %{_libdir}/wine/%{winepedir}/api-ms-win-security-sddl-l1-1-0.dll @@ -1526,6 +1527,7 @@ fi %{_libdir}/wine/%{winepedir}/dhcpcsvc.dll %{_libdir}/wine/%{winepedir}/dhcpcsvc6.dll %{_libdir}/wine/%{winepedir}/dhtmled.ocx +%{_libdir}/wine/%{winepedir}/diasymreader.dll %{_libdir}/wine/%{winepedir}/difxapi.dll %{_libdir}/wine/%{winepedir}/dinput.dll %{_libdir}/wine/%{winepedir}/dinput8.dll @@ -2505,6 +2507,7 @@ fi %{_libdir}/wine/%{winesodir}/api-ms-win-security-lsalookup-l1-1-1.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-security-lsalookup-l2-1-0.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-security-lsalookup-l2-1-1.dll.so +%{_libdir}/wine/%{winesodir}/api-ms-win-security-lsalookup-ansi-l2-1-0.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-security-lsapolicy-l1-1-0.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-security-provider-l1-1-0.dll.so %{_libdir}/wine/%{winesodir}/api-ms-win-security-sddl-l1-1-0.dll.so @@ -2593,6 +2596,7 @@ fi %{_libdir}/wine/%{winesodir}/dhcpcsvc.dll.so %{_libdir}/wine/%{winesodir}/dhcpcsvc6.dll.so %{_libdir}/wine/%{winesodir}/dhtmled.ocx.so +%{_libdir}/wine/%{winesodir}/diasymreader.dll.so %{_libdir}/wine/%{winesodir}/difxapi.dll.so %{_libdir}/wine/%{winesodir}/dinput.dll.so %{_libdir}/wine/%{winesodir}/dinput8.dll.so From b24dd04b6f7b7e8f8aae2dd77efed13e31949fc4 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Fri, 11 Mar 2022 15:53:16 -0600 Subject: [PATCH 663/715] Update to 7.3 --- sources | 6 +- wine.spec | 594 +----------------------------------------------------- 2 files changed, 13 insertions(+), 587 deletions(-) diff --git a/sources b/sources index e213220..e41c724 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-7.2.tar.xz) = 13db73950218bc743803b2c60cee2534f38804a940e9666aad0f0f91e26bd5d432ca2f0cd8134ff6c43bb8dae253098d2e3db0a3621aa38fac9a1574152b8729 -SHA512 (wine-7.2.tar.xz.sign) = e14bdb978098b2ced779bc6d77af3ad32450b8967b7501d40e900ada69cf075158e54b8d90d8206d564ff4346e6f05c26ce7521481df265add676b8eff405b87 -SHA512 (wine-staging-7.2.tar.gz) = d8e0779b143424d5677ec556140db8698e414c240b9107a62ed3364e57e1e9d1c7115d141a71997ed4d436154b5254b061bac5071dd99b0d4729053e73304c38 +SHA512 (wine-7.3.tar.xz) = afadf96311e08fe5427276030ccad6b8decccc9727a3522711c237a9595318b05757d7390218b8614ded415b7b8c483f6501040efd8a7376e9909fa6e0e5140a +SHA512 (wine-7.3.tar.xz.sign) = 246116f446d788c3f3fb2f2b51ee8809e9a367bacaa05b38c771cb3e4788cd571b61e8d56f372d3ca02766c81f77ca7694e4150c24b32da2075ebbc6aa60bb94 +SHA512 (wine-staging-7.3.tar.gz) = 8f574bf89968d3c30944f9ba365b1ec4c4c9a662b3a54cf153d5a18be6957d8a5c2597c241ddd8a3e62cce866902e1df36594db6342b7432074e28c0e918935b diff --git a/wine.spec b/wine.spec index 65653c4..c4ba563 100644 --- a/wine.spec +++ b/wine.spec @@ -37,7 +37,7 @@ %endif Name: wine -Version: 7.2 +Version: 7.3 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -119,7 +119,7 @@ BuildRequires: libpng-devel BuildRequires: librsvg2 BuildRequires: librsvg2-devel BuildRequires: libstdc++-devel -BuildRequires: libusb-devel +BuildRequires: pkgconfig(libusb-1.0) BuildRequires: libxml2-devel BuildRequires: libxslt-devel %if 0%{?fedora} @@ -1209,245 +1209,7 @@ fi %{_libdir}/wine/%{winepedir}/advpack.dll %{_libdir}/wine/%{winepedir}/amsi.dll %{_libdir}/wine/%{winepedir}/amstream.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-appmodel-identity-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-appmodel-runtime-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-appmodel-runtime-l1-1-1.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-appmodel-runtime-l1-1-2.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-apiquery-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-appcompat-l1-1-1.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-appinit-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-atoms-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-bem-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-com-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-com-l1-1-1.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-com-private-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-comm-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-console-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-console-l1-2-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-console-l2-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-console-l3-2-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-crt-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-crt-l2-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-datetime-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-datetime-l1-1-1.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-debug-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-debug-l1-1-1.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-delayload-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-delayload-l1-1-1.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-errorhandling-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-errorhandling-l1-1-1.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-errorhandling-l1-1-2.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-errorhandling-l1-1-3.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-featurestaging-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-fibers-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-fibers-l1-1-1.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-file-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-file-l1-2-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-file-l1-2-1.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-file-l1-2-2.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-file-l2-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-file-l2-1-1.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-file-l2-1-2.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-file-ansi-l2-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-file-fromapp-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-handle-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-heap-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-heap-l1-2-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-heap-l2-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-heap-obsolete-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-interlocked-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-interlocked-l1-2-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-io-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-io-l1-1-1.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-job-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-job-l2-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-largeinteger-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-kernel32-legacy-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-kernel32-legacy-l1-1-1.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-kernel32-legacy-l1-1-2.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-kernel32-legacy-l1-1-5.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-kernel32-private-l1-1-1.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-libraryloader-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-libraryloader-l1-1-1.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-libraryloader-l1-2-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-libraryloader-l1-2-1.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-libraryloader-l1-2-2.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-libraryloader-l2-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-localization-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-localization-l1-2-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-localization-l1-2-1.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-localization-l1-2-2.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-localization-l2-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-localization-obsolete-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-localization-obsolete-l1-2-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-localization-obsolete-l1-3-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-localization-private-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-localregistry-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-memory-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-memory-l1-1-1.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-memory-l1-1-2.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-memory-l1-1-3.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-memory-l1-1-4.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-misc-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-namedpipe-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-namedpipe-l1-2-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-namedpipe-ansi-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-namespace-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-normalization-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-path-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-privateprofile-l1-1-1.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-processenvironment-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-processenvironment-l1-2-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-processthreads-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-processthreads-l1-1-1.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-processthreads-l1-1-2.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-processthreads-l1-1-3.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-processtopology-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-processtopology-obsolete-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-profile-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-psapi-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-psapi-ansi-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-psapi-obsolete-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-psm-appnotify-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-quirks-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-realtime-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-realtime-l1-1-1.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-registry-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-registry-l2-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-registry-l2-2-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-registryuserspecific-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-rtlsupport-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-rtlsupport-l1-2-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-shlwapi-legacy-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-shlwapi-obsolete-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-shlwapi-obsolete-l1-2-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-shutdown-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-sidebyside-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-string-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-string-l2-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-string-obsolete-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-stringansi-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-stringloader-l1-1-1.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-synch-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-synch-l1-2-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-synch-l1-2-1.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-synch-ansi-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-sysinfo-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-sysinfo-l1-2-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-sysinfo-l1-2-1.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-systemtopology-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-threadpool-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-threadpool-l1-2-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-threadpool-legacy-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-threadpool-private-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-timezone-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-toolhelp-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-url-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-util-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-version-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-version-l1-1-1.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-version-private-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-versionansi-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-windowserrorreporting-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-windowserrorreporting-l1-1-1.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-winrt-error-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-winrt-error-l1-1-1.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-winrt-errorprivate-l1-1-1.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-winrt-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-winrt-registration-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-winrt-string-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-winrt-string-l1-1-1.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-wow64-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-wow64-l1-1-1.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-xstate-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-core-xstate-l2-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-crt-conio-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-crt-convert-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-crt-environment-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-crt-filesystem-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-crt-heap-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-crt-locale-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-crt-math-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-crt-multibyte-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-crt-private-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-crt-process-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-crt-runtime-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-crt-stdio-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-crt-string-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-crt-time-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-crt-utility-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-devices-config-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-devices-config-l1-1-1.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-devices-query-l1-1-1.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-downlevel-advapi32-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-downlevel-advapi32-l2-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-downlevel-kernel32-l2-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-downlevel-normaliz-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-downlevel-ole32-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-downlevel-shell32-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-downlevel-shlwapi-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-downlevel-shlwapi-l2-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-downlevel-user32-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-downlevel-version-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-dx-d3dkmt-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-eventing-classicprovider-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-eventing-consumer-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-eventing-controller-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-eventing-legacy-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-eventing-provider-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-eventlog-legacy-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-gaming-tcui-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-gdi-dpiinfo-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-mm-joystick-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-mm-misc-l1-1-1.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-mm-mme-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-mm-time-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-ntuser-dc-access-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-ntuser-rectangle-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-ntuser-sysparams-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-perf-legacy-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-power-base-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-power-setting-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-rtcore-ntuser-draw-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-rtcore-ntuser-private-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-rtcore-ntuser-private-l1-1-4.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-rtcore-ntuser-window-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-rtcore-ntuser-winevent-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-rtcore-ntuser-wmpointer-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-rtcore-ntuser-wmpointer-l1-1-3.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-security-activedirectoryclient-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-security-audit-l1-1-1.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-security-base-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-security-base-l1-2-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-security-base-private-l1-1-1.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-security-credentials-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-security-cryptoapi-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-security-grouppolicy-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-security-lsalookup-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-security-lsalookup-l1-1-1.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-security-lsalookup-l2-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-security-lsalookup-l2-1-1.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-security-lsalookup-ansi-l2-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-security-lsapolicy-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-security-provider-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-security-sddl-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-security-systemfunctions-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-service-core-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-service-core-l1-1-1.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-service-management-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-service-management-l2-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-service-private-l1-1-1.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-service-winsvc-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-service-winsvc-l1-2-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-shcore-obsolete-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-shcore-scaling-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-shcore-scaling-l1-1-1.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-shcore-stream-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-shcore-stream-winrt-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-shcore-thread-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-shell-shellcom-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/api-ms-win-shell-shellfolders-l1-1-0.dll +%{_libdir}/wine/%{winepedir}/apisetschema.dll %{_libdir}/wine/%{winepedir}/apphelp.dll %{_libdir}/wine/%{winepedir}/appwiz.cpl %{_libdir}/wine/%{winepedir}/atl.dll @@ -1574,58 +1336,6 @@ fi %{_libdir}/wine/%{winepedir}/esent.dll %{_libdir}/wine/%{winepedir}/evr.dll %{_libdir}/wine/%{winepedir}/explorerframe.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-authz-context-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-domainjoin-netjoin-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-dwmapi-ext-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-gdi-dc-l1-2-0.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-gdi-dc-create-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-gdi-dc-create-l1-1-1.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-gdi-devcaps-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-gdi-draw-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-gdi-draw-l1-1-1.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-gdi-font-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-gdi-font-l1-1-1.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-gdi-render-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-kernel32-package-l1-1-1.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-kernel32-package-current-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-dialogbox-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-draw-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-gui-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-gui-l1-3-0.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-keyboard-l1-3-0.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-misc-l1-2-0.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-misc-l1-5-1.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-message-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-message-l1-1-1.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-misc-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-mouse-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-private-l1-1-1.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-private-l1-3-1.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-rectangle-ext-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-uicontext-ext-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-window-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-window-l1-1-1.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-window-l1-1-4.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-windowclass-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-ntuser-windowclass-l1-1-1.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-oleacc-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-ras-rasapi32-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-rtcore-gdi-devcaps-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-rtcore-gdi-object-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-rtcore-gdi-rgn-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-rtcore-ntuser-cursor-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-rtcore-ntuser-dc-access-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-rtcore-ntuser-dpi-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-rtcore-ntuser-dpi-l1-2-0.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-rtcore-ntuser-rawinput-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-rtcore-ntuser-syscolors-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-rtcore-ntuser-sysparams-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-security-credui-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-security-cryptui-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-shell-comctl32-init-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-shell-comdlg32-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-shell-shell32-l1-2-0.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-uxtheme-themes-l1-1-0.dll %if 0%{?wine_staging} %{_libdir}/wine/%{winepedir}/ext-ms-win-appmodel-usercontext-l1-1-0.dll %{_libdir}/wine/%{winepedir}/ext-ms-win-xaml-pal-l1-1-0.dll @@ -2288,245 +1998,7 @@ fi %{_libdir}/wine/%{winesodir}/advpack.dll.so %{_libdir}/wine/%{winesodir}/amsi.dll.so %{_libdir}/wine/%{winesodir}/amstream.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-appmodel-identity-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-appmodel-runtime-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-appmodel-runtime-l1-1-1.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-appmodel-runtime-l1-1-2.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-apiquery-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-appcompat-l1-1-1.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-appinit-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-atoms-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-bem-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-com-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-com-l1-1-1.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-com-private-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-comm-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-console-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-console-l1-2-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-console-l2-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-console-l3-2-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-crt-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-crt-l2-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-datetime-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-datetime-l1-1-1.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-debug-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-debug-l1-1-1.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-delayload-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-delayload-l1-1-1.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-errorhandling-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-errorhandling-l1-1-1.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-errorhandling-l1-1-2.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-errorhandling-l1-1-3.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-featurestaging-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-fibers-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-fibers-l1-1-1.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-file-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-file-l1-2-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-file-l1-2-1.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-file-l1-2-2.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-file-l2-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-file-l2-1-1.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-file-l2-1-2.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-file-ansi-l2-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-file-fromapp-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-handle-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-heap-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-heap-l1-2-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-heap-l2-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-heap-obsolete-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-interlocked-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-interlocked-l1-2-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-io-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-io-l1-1-1.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-job-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-job-l2-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-largeinteger-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-kernel32-legacy-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-kernel32-legacy-l1-1-1.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-kernel32-legacy-l1-1-2.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-kernel32-legacy-l1-1-5.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-kernel32-private-l1-1-1.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-libraryloader-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-libraryloader-l1-1-1.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-libraryloader-l1-2-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-libraryloader-l1-2-1.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-libraryloader-l1-2-2.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-libraryloader-l2-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-localization-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-localization-l1-2-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-localization-l1-2-1.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-localization-l1-2-2.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-localization-l2-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-localization-obsolete-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-localization-obsolete-l1-2-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-localization-obsolete-l1-3-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-localization-private-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-localregistry-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-memory-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-memory-l1-1-1.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-memory-l1-1-2.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-memory-l1-1-3.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-memory-l1-1-4.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-misc-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-namedpipe-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-namedpipe-l1-2-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-namedpipe-ansi-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-namespace-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-normalization-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-path-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-privateprofile-l1-1-1.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-processenvironment-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-processenvironment-l1-2-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-processthreads-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-processthreads-l1-1-1.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-processthreads-l1-1-2.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-processthreads-l1-1-3.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-processtopology-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-processtopology-obsolete-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-profile-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-psapi-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-psapi-ansi-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-psapi-obsolete-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-psm-appnotify-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-quirks-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-realtime-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-realtime-l1-1-1.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-registry-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-registry-l2-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-registry-l2-2-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-registryuserspecific-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-rtlsupport-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-rtlsupport-l1-2-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-shlwapi-legacy-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-shlwapi-obsolete-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-shlwapi-obsolete-l1-2-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-shutdown-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-sidebyside-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-string-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-string-l2-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-string-obsolete-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-stringansi-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-stringloader-l1-1-1.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-synch-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-synch-l1-2-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-synch-l1-2-1.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-synch-ansi-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-sysinfo-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-sysinfo-l1-2-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-sysinfo-l1-2-1.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-systemtopology-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-threadpool-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-threadpool-l1-2-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-threadpool-legacy-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-threadpool-private-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-timezone-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-toolhelp-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-url-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-util-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-version-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-version-l1-1-1.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-version-private-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-versionansi-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-windowserrorreporting-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-windowserrorreporting-l1-1-1.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-winrt-error-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-winrt-error-l1-1-1.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-winrt-errorprivate-l1-1-1.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-winrt-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-winrt-registration-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-winrt-string-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-winrt-string-l1-1-1.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-wow64-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-wow64-l1-1-1.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-xstate-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-core-xstate-l2-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-crt-conio-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-crt-convert-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-crt-environment-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-crt-filesystem-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-crt-heap-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-crt-locale-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-crt-math-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-crt-multibyte-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-crt-private-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-crt-process-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-crt-runtime-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-crt-stdio-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-crt-string-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-crt-time-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-crt-utility-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-devices-config-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-devices-config-l1-1-1.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-devices-query-l1-1-1.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-downlevel-advapi32-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-downlevel-advapi32-l2-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-downlevel-kernel32-l2-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-downlevel-normaliz-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-downlevel-ole32-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-downlevel-shell32-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-downlevel-shlwapi-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-downlevel-shlwapi-l2-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-downlevel-user32-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-downlevel-version-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-dx-d3dkmt-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-eventing-classicprovider-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-eventing-consumer-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-eventing-controller-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-eventing-legacy-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-eventing-provider-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-eventlog-legacy-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-gaming-tcui-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-gdi-dpiinfo-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-mm-joystick-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-mm-misc-l1-1-1.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-mm-mme-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-mm-time-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-ntuser-dc-access-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-ntuser-rectangle-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-ntuser-sysparams-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-perf-legacy-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-power-base-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-power-setting-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-rtcore-ntuser-draw-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-rtcore-ntuser-private-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-rtcore-ntuser-private-l1-1-4.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-rtcore-ntuser-window-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-rtcore-ntuser-winevent-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-rtcore-ntuser-wmpointer-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-rtcore-ntuser-wmpointer-l1-1-3.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-security-activedirectoryclient-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-security-audit-l1-1-1.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-security-base-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-security-base-l1-2-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-security-base-private-l1-1-1.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-security-credentials-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-security-cryptoapi-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-security-grouppolicy-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-security-lsalookup-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-security-lsalookup-l1-1-1.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-security-lsalookup-l2-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-security-lsalookup-l2-1-1.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-security-lsalookup-ansi-l2-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-security-lsapolicy-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-security-provider-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-security-sddl-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-security-systemfunctions-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-service-core-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-service-core-l1-1-1.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-service-management-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-service-management-l2-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-service-private-l1-1-1.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-service-winsvc-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-service-winsvc-l1-2-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-shcore-obsolete-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-shcore-scaling-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-shcore-scaling-l1-1-1.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-shcore-stream-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-shcore-stream-winrt-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-shcore-thread-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-shell-shellcom-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/api-ms-win-shell-shellfolders-l1-1-0.dll.so +%{_libdir}/wine/%{winesodir}/apisetschema.dll.so %{_libdir}/wine/%{winesodir}/apphelp.dll.so %{_libdir}/wine/%{winesodir}/appwiz.cpl.so %{_libdir}/wine/%{winesodir}/atl.dll.so @@ -2638,60 +2110,10 @@ fi %{_libdir}/wine/%{winesodir}/esent.dll.so %{_libdir}/wine/%{winesodir}/evr.dll.so %{_libdir}/wine/%{winesodir}/explorerframe.dll.so +%if 0%{?wine_staging} %{_libdir}/wine/%{winesodir}/ext-ms-win-appmodel-usercontext-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-authz-context-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-domainjoin-netjoin-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-dwmapi-ext-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-gdi-dc-l1-2-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-gdi-dc-create-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-gdi-dc-create-l1-1-1.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-gdi-devcaps-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-gdi-draw-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-gdi-draw-l1-1-1.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-gdi-font-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-gdi-font-l1-1-1.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-gdi-render-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-kernel32-package-l1-1-1.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-kernel32-package-current-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-ntuser-dialogbox-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-ntuser-draw-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-ntuser-gui-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-ntuser-gui-l1-3-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-ntuser-keyboard-l1-3-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-ntuser-misc-l1-2-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-ntuser-misc-l1-5-1.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-ntuser-message-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-ntuser-message-l1-1-1.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-ntuser-misc-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-ntuser-mouse-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-ntuser-private-l1-1-1.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-ntuser-private-l1-3-1.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-ntuser-rectangle-ext-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-ntuser-uicontext-ext-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-ntuser-window-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-ntuser-window-l1-1-1.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-ntuser-window-l1-1-4.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-ntuser-windowclass-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-ntuser-windowclass-l1-1-1.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-oleacc-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-ras-rasapi32-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-rtcore-gdi-devcaps-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-rtcore-gdi-object-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-rtcore-gdi-rgn-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-rtcore-ntuser-cursor-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-rtcore-ntuser-dc-access-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-rtcore-ntuser-dpi-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-rtcore-ntuser-dpi-l1-2-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-rtcore-ntuser-rawinput-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-rtcore-ntuser-syscolors-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-rtcore-ntuser-sysparams-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-security-credui-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-security-cryptui-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-shell-comctl32-init-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-shell-comdlg32-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-shell-shell32-l1-2-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-uxtheme-themes-l1-1-0.dll.so %{_libdir}/wine/%{winesodir}/ext-ms-win-xaml-pal-l1-1-0.dll.so +%endif %{_libdir}/wine/%{winesodir}/faultrep.dll.so %{_libdir}/wine/%{winesodir}/feclient.dll.so %{_libdir}/wine/%{winesodir}/fltlib.dll.so @@ -3356,6 +2778,7 @@ fi %files alsa %{_libdir}/wine/%{winepedir}/winealsa.drv +%{_libdir}/wine/%{winesodir}/winealsa.so %{_libdir}/wine/%{winesodir}/winealsa.drv.so %if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 @@ -3374,6 +2797,9 @@ fi %endif %changelog +* Fri Mar 11 2022 Michael Cronenworth - 7.3-1 +- version update + * Sun Feb 13 2022 Björn Esser - 7.2-1 - version update From 1bc03e18f08c404bfab735660b0c84f50e58a533 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Fri, 11 Mar 2022 20:19:05 -0600 Subject: [PATCH 664/715] Update arm file list --- wine.spec | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/wine.spec b/wine.spec index c4ba563..34ebff9 100644 --- a/wine.spec +++ b/wine.spec @@ -1990,7 +1990,6 @@ fi %{_libdir}/wine/%{winesodir}/acledit.dll.so %{_libdir}/wine/%{winesodir}/aclui.dll.so %{_libdir}/wine/%{winesodir}/activeds.dll.so -%{_libdir}/wine/%{winesodir}/activeds.tlb.so %{_libdir}/wine/%{winesodir}/actxprxy.dll.so %{_libdir}/wine/%{winesodir}/adsldp.dll.so %{_libdir}/wine/%{winesodir}/adsldpc.dll.so @@ -1998,7 +1997,6 @@ fi %{_libdir}/wine/%{winesodir}/advpack.dll.so %{_libdir}/wine/%{winesodir}/amsi.dll.so %{_libdir}/wine/%{winesodir}/amstream.dll.so -%{_libdir}/wine/%{winesodir}/apisetschema.dll.so %{_libdir}/wine/%{winesodir}/apphelp.dll.so %{_libdir}/wine/%{winesodir}/appwiz.cpl.so %{_libdir}/wine/%{winesodir}/atl.dll.so @@ -2142,7 +2140,6 @@ fi %{_libdir}/wine/%{winesodir}/icacls.exe.so %{_libdir}/wine/%{winesodir}/iccvid.dll.so %{_libdir}/wine/%{winesodir}/icinfo.exe.so -%{_libdir}/wine/%{winesodir}/icmp.dll.so %{_libdir}/wine/%{winesodir}/ieframe.dll.so %if 0%{?wine_staging} %{_libdir}/wine/%{winesodir}/iertutil.dll.so @@ -2174,12 +2171,10 @@ fi %{_libdir}/wine/%{winesodir}/ksuser.dll.so %{_libdir}/wine/%{winesodir}/ktmw32.dll.so %{_libdir}/wine/%{winesodir}/l3codeca.acm.so -%{_libdir}/wine/%{winesodir}/light.msstyles.so %{_libdir}/wine/%{winesodir}/loadperf.dll.so %{_libdir}/wine/%{winesodir}/localspl.dll.so %{_libdir}/wine/%{winesodir}/localui.dll.so %{_libdir}/wine/%{winesodir}/lodctr.exe.so -%{_libdir}/wine/%{winesodir}/lz32.dll.so %{_libdir}/wine/%{winesodir}/mapi32.dll.so %{_libdir}/wine/%{winesodir}/mapistub.dll.so %{_libdir}/wine/%{winesodir}/mciavi32.dll.so @@ -2189,7 +2184,6 @@ fi %{_libdir}/wine/%{winesodir}/mciwave.dll.so %{_libdir}/wine/%{winesodir}/mf.dll.so %{_libdir}/wine/%{winesodir}/mf3216.dll.so -%{_libdir}/wine/%{winesodir}/mferror.dll.so %{_libdir}/wine/%{winesodir}/mfmediaengine.dll.so %{_libdir}/wine/%{winesodir}/mfplat.dll.so %{_libdir}/wine/%{winesodir}/mfplay.dll.so @@ -2223,13 +2217,11 @@ fi %{_libdir}/wine/%{winesodir}/msftedit.dll.so %{_libdir}/wine/%{winesodir}/msg711.acm.so %{_libdir}/wine/%{winesodir}/mshtml.dll.so -%{_libdir}/wine/%{winesodir}/mshtml.tlb.so %{_libdir}/wine/%{winesodir}/msgsm32.acm.so %{_libdir}/wine/%{winesodir}/msi.dll.so %{_libdir}/wine/%{winesodir}/msident.dll.so %{_libdir}/wine/%{winesodir}/msimtf.dll.so %{_libdir}/wine/%{winesodir}/msimg32.dll.so -%{_libdir}/wine/%{winesodir}/msimsg.dll.so %{_libdir}/wine/%{winesodir}/msinfo32.exe.so %{_libdir}/wine/%{winesodir}/msisip.dll.so %{_libdir}/wine/%{winesodir}/msisys.ocx.so @@ -2293,7 +2285,6 @@ fi %endif %{_libdir}/wine/%{winesodir}/newdev.dll.so %{_libdir}/wine/%{winesodir}/ninput.dll.so -%{_libdir}/wine/%{winesodir}/normaliz.dll.so %{_libdir}/wine/%{winesodir}/npmshtml.dll.so %{_libdir}/wine/%{winesodir}/npptools.dll.so %{_libdir}/wine/%{winesodir}/nsi.dll.so @@ -2368,7 +2359,6 @@ fi %{_libdir}/wine/%{winesodir}/setupapi.dll.so %{_libdir}/wine/%{winesodir}/sfc_os.dll.so %{_libdir}/wine/%{winesodir}/shcore.dll.so -%{_libdir}/wine/%{winesodir}/shdoclc.dll.so %{_libdir}/wine/%{winesodir}/shdocvw.dll.so %{_libdir}/wine/%{winesodir}/schedsvc.dll.so %{_libdir}/wine/%{winesodir}/shell32.dll.so @@ -2386,8 +2376,6 @@ fi %{_libdir}/wine/%{winesodir}/srvcli.dll.so %endif %{_libdir}/wine/%{winesodir}/sspicli.dll.so -%{_libdir}/wine/%{winesodir}/stdole2.tlb.so -%{_libdir}/wine/%{winesodir}/stdole32.tlb.so %{_libdir}/wine/%{winesodir}/sti.dll.so %{_libdir}/wine/%{winesodir}/strmdll.dll.so %{_libdir}/wine/%{winesodir}/subst.exe.so @@ -2403,7 +2391,6 @@ fi %{_libdir}/wine/%{winesodir}/tdh.dll.so %{_libdir}/wine/%{winesodir}/tdi.sys.so %{_libdir}/wine/%{winesodir}/traffic.dll.so -%{_libdir}/wine/%{winesodir}/tzres.dll.so %{_libdir}/wine/%{winesodir}/ucrtbase.dll.so %if 0%{?wine_staging} %{_libdir}/wine/%{winesodir}/uianimation.dll.so @@ -2417,7 +2404,6 @@ fi %{_libdir}/wine/%{winesodir}/urlmon.dll.so %{_libdir}/wine/%{winesodir}/usbd.sys.so %{_libdir}/wine/%{winesodir}/user32.dll.so -%{_libdir}/wine/%{winesodir}/usp10.dll.so %{_libdir}/wine/%{winesodir}/utildll.dll.so %{_libdir}/wine/%{winesodir}/uxtheme.dll.so %{_libdir}/wine/%{winesodir}/userenv.dll.so @@ -2473,7 +2459,6 @@ fi %{_libdir}/wine/%{winesodir}/winsta.dll.so %{_libdir}/wine/%{winesodir}/wmadmod.dll.so %{_libdir}/wine/%{winesodir}/wmasf.dll.so -%{_libdir}/wine/%{winesodir}/wmi.dll.so %{_libdir}/wine/%{winesodir}/wmic.exe.so %{_libdir}/wine/%{winesodir}/wmiutils.dll.so %{_libdir}/wine/%{winesodir}/wmp.dll.so @@ -2501,9 +2486,6 @@ fi %{_libdir}/wine/%{winesodir}/wtsapi32.dll.so %{_libdir}/wine/%{winesodir}/wuapi.dll.so %{_libdir}/wine/%{winesodir}/wuaueng.dll.so - -%{_libdir}/wine/%{winesodir}/security.dll.so -%{_libdir}/wine/%{winesodir}/sfc.dll.so %{_libdir}/wine/%{winesodir}/wineps.drv.so %{_libdir}/wine/%{winesodir}/d3d8.dll.so %{_libdir}/wine/%{winesodir}/d3d8thk.dll.so From 1d82731a68fe97f744f11232c1b2532fe340ff69 Mon Sep 17 00:00:00 2001 From: Sandro Mani Date: Fri, 25 Mar 2022 15:00:27 +0100 Subject: [PATCH 665/715] Rebuild with mingw-gcc-12 --- wine.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 34ebff9..ca12c16 100644 --- a/wine.spec +++ b/wine.spec @@ -38,7 +38,7 @@ Name: wine Version: 7.3 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -2779,6 +2779,9 @@ fi %endif %changelog +* Fri Mar 25 2022 Sandro Mani - 7.3-2 +- Rebuild with mingw-gcc-12 + * Fri Mar 11 2022 Michael Cronenworth - 7.3-1 - version update From 7d31b71a6c43cd15ac737321801bfc9b79790bdc Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 29 Mar 2022 20:21:59 -0500 Subject: [PATCH 666/715] Update to 7.5 - Needing compiling fix for multi-process compile. - Upstream now bundles libvkd3d source and compiles into in DLL form - Cannot build libvkd3d in Fedora as DLL at this time (32-bit issue) --- sources | 6 +++--- wine.spec | 34 +++++++++++++++++++++++----------- 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/sources b/sources index e41c724..def955e 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-7.3.tar.xz) = afadf96311e08fe5427276030ccad6b8decccc9727a3522711c237a9595318b05757d7390218b8614ded415b7b8c483f6501040efd8a7376e9909fa6e0e5140a -SHA512 (wine-7.3.tar.xz.sign) = 246116f446d788c3f3fb2f2b51ee8809e9a367bacaa05b38c771cb3e4788cd571b61e8d56f372d3ca02766c81f77ca7694e4150c24b32da2075ebbc6aa60bb94 -SHA512 (wine-staging-7.3.tar.gz) = 8f574bf89968d3c30944f9ba365b1ec4c4c9a662b3a54cf153d5a18be6957d8a5c2597c241ddd8a3e62cce866902e1df36594db6342b7432074e28c0e918935b +SHA512 (wine-7.5.tar.xz) = 70458d702e04075915a97a12c5ebd33ec50cbb094f5f837e6bb498e24ee48630359d819d9689e84d29708398162ca7b8f7737216fb31c350701b66733da98616 +SHA512 (wine-7.5.tar.xz.sign) = 8a0ae360cc23260dbe79d1aa683ddfec45a579a9704fb10b9b8cb0ac28c79c8a79141dae683e21f3d8efd6f228504401c59b1b3cab825ef89fbe6e37f934f808 +SHA512 (wine-staging-7.5.tar.gz) = 138456d1fd76fa433afe01cd1d2cadb88c631277f69734641f1136795f0761a68fdfc564b9da90a342ff42e82f04436b70bb57913f92417b14e24cd7720a7b90 diff --git a/wine.spec b/wine.spec index ca12c16..4a382c4 100644 --- a/wine.spec +++ b/wine.spec @@ -1,6 +1,12 @@ # Compiling the preloader fails with hardening enabled %undefine _hardened_build +# Parallel build broken (fails with +# /usr/bin/x86_64-w64-mingw32-dlltool: dlls/winmm/libwinmm.{cross,delay}.a: No such file or directory +# /usr/bin/x86_64-w64-mingw32-dlltool: dlls/oleaut32/liboleaut32.{cross,delay}.a: No such file or directory +# /usr/bin/x86_64-w64-mingw32-dlltool: dlls/oleaut32/libwintrust.{cross,delay}.a: No such file or directory +%global _smp_mflags -j1 + %global no64bit 0 %global winegecko 2.47.2 %global winemono 7.1.1 @@ -37,8 +43,8 @@ %endif Name: wine -Version: 7.3 -Release: 2%{?dist} +Version: 7.5 +Release: 1%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -362,6 +368,8 @@ Requires: libva %endif %endif +Provides: bundled(libvkd3d) = 1.3 + # removed as of 1.7.35 Obsoletes: wine-wow < 1.7.35 Provides: wine-wow = %{version}-%{release} @@ -764,14 +772,12 @@ touch %{buildroot}%{_bindir}/wine touch %{buildroot}%{_bindir}/wine-preloader touch %{buildroot}%{_bindir}/wineserver mv %{buildroot}%{_libdir}/wine/%{winepedir}/dxgi.dll %{buildroot}%{_libdir}/wine/%{winepedir}/wine-dxgi.dll -mv %{buildroot}%{_libdir}/wine/%{winesodir}/dxgi.dll.so %{buildroot}%{_libdir}/wine/%{winesodir}/wine-dxgi.dll.so mv %{buildroot}%{_libdir}/wine/%{winepedir}/d3d9.dll %{buildroot}%{_libdir}/wine/%{winepedir}/wine-d3d9.dll mv %{buildroot}%{_libdir}/wine/%{winepedir}/d3d10.dll %{buildroot}%{_libdir}/wine/%{winepedir}/wine-d3d10.dll mv %{buildroot}%{_libdir}/wine/%{winepedir}/d3d10_1.dll %{buildroot}%{_libdir}/wine/%{winepedir}/wine-d3d10_1.dll mv %{buildroot}%{_libdir}/wine/%{winepedir}/d3d10core.dll %{buildroot}%{_libdir}/wine/%{winepedir}/wine-d3d10core.dll mv %{buildroot}%{_libdir}/wine/%{winepedir}/d3d11.dll %{buildroot}%{_libdir}/wine/%{winepedir}/wine-d3d11.dll touch %{buildroot}%{_libdir}/wine/%{winepedir}/dxgi.dll -touch %{buildroot}%{_libdir}/wine/%{winesodir}/dxgi.dll.so touch %{buildroot}%{_libdir}/wine/%{winepedir}/d3d9.dll touch %{buildroot}%{_libdir}/wine/%{winepedir}/d3d10.dll touch %{buildroot}%{_libdir}/wine/%{winepedir}/d3d10_1.dll @@ -1022,7 +1028,7 @@ fi %posttrans core # handle upgrades for a few package updates -%{_sbindir}/alternatives --remove 'wine-dxgi%{?_isa}' %{_libdir}/wine/wine-dxgi.dll.so 2>/dev/null +%{_sbindir}/alternatives --remove 'wine-dxgi%{?_isa}' %{_libdir}/wine/wine-dxgi.dll 2>/dev/null %{_sbindir}/alternatives --remove 'wine-d3d9%{?_isa}' %{_libdir}/wine/wine-d3d9.dll 2>/dev/null %{_sbindir}/alternatives --remove 'wine-d3d10%{?_isa}' %{_libdir}/wine/wine-d3d10.dll 2>/dev/null %{_sbindir}/alternatives --remove 'wine-d3d11%{?_isa}' %{_libdir}/wine/wine-d3d11.dll 2>/dev/null @@ -1040,8 +1046,7 @@ fi wineserver %{_bindir}/wineserver32 10 %endif %{_sbindir}/alternatives --install %{_libdir}/wine/%{winepedir}/dxgi.dll \ - 'wine-dxgi%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-dxgi.dll 10 \ - --slave %{_libdir}/wine/%{winesodir}/dxgi.dll.so 'wine-dxgi-so%{?_isa}' %{_libdir}/wine/%{winesodir}/wine-dxgi.dll.so + 'wine-dxgi%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-dxgi.dll 10 %{_sbindir}/alternatives --install %{_libdir}/wine/%{winepedir}/d3d9.dll \ 'wine-d3d9%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-d3d9.dll 10 %{_sbindir}/alternatives --install %{_libdir}/wine/%{winepedir}/d3d10.dll \ @@ -1144,6 +1149,7 @@ fi %{_libdir}/wine/%{winepedir}/conhost.exe %{_libdir}/wine/%{winepedir}/cscript.exe %{_libdir}/wine/%{winepedir}/dism.exe +%{_libdir}/wine/%{winepedir}/dllhost.exe %{_libdir}/wine/%{winepedir}/dplaysvr.exe %{_libdir}/wine/%{winepedir}/dpnsvr.exe %{_libdir}/wine/%{winepedir}/dpvsetup.exe @@ -1268,7 +1274,6 @@ fi %ghost %{_libdir}/wine/%{winepedir}/d3d11.dll %{_libdir}/wine/%{winepedir}/wine-d3d11.dll %{_libdir}/wine/%{winepedir}/d3d12.dll -%{_libdir}/wine/%{winesodir}/d3d12.dll.so %{_libdir}/wine/%{winepedir}/d3dcompiler_*.dll %{_libdir}/wine/%{winepedir}/d3dim.dll %{_libdir}/wine/%{winepedir}/d3dim700.dll @@ -1327,8 +1332,6 @@ fi %{_libdir}/wine/%{winepedir}/dxdiagn.dll %ghost %{_libdir}/wine/%{winepedir}/dxgi.dll %{_libdir}/wine/%{winepedir}/wine-dxgi.dll -%ghost %{_libdir}/wine/%{winesodir}/dxgi.dll.so -%{_libdir}/wine/%{winesodir}/wine-dxgi.dll.so %{_libdir}/wine/%{winepedir}/dxgkrnl.sys %{_libdir}/wine/%{winepedir}/dxgmms1.sys %{_libdir}/wine/%{winepedir}/dxtrans.dll @@ -1769,7 +1772,6 @@ fi %{_libdir}/wine/%{winepedir}/opengl32.dll %{_libdir}/wine/%{winesodir}/opengl32.dll.so %{_libdir}/wine/%{winepedir}/wined3d.dll -%{_libdir}/wine/%{winesodir}/wined3d.dll.so %{_libdir}/wine/%{winepedir}/dnsapi.dll %{_libdir}/wine/%{winesodir}/dnsapi.so %{_libdir}/wine/%{winepedir}/iexplore.exe @@ -1937,6 +1939,7 @@ fi %{_libdir}/wine/%{winesodir}/conhost.exe.so %{_libdir}/wine/%{winesodir}/cscript.exe.so %{_libdir}/wine/%{winesodir}/dism.exe.so +%{_libdir}/wine/%{winesodir}/dllhost.exe.so %{_libdir}/wine/%{winesodir}/dplaysvr.exe.so %{_libdir}/wine/%{winesodir}/dpnsvr.exe.so %{_libdir}/wine/%{winesodir}/dpvsetup.exe.so @@ -2046,6 +2049,7 @@ fi %{_libdir}/wine/%{winesodir}/d3d10_1.dll.so %{_libdir}/wine/%{winesodir}/d3d10core.dll.so %{_libdir}/wine/%{winesodir}/d3d11.dll.so +%{_libdir}/wine/%{winesodir}/d3d12.dll.so %{_libdir}/wine/%{winesodir}/d3dcompiler_*.dll.so %{_libdir}/wine/%{winesodir}/d3dim.dll.so %{_libdir}/wine/%{winesodir}/d3dim700.dll.so @@ -2101,6 +2105,8 @@ fi %{_libdir}/wine/%{winesodir}/dwrite.dll.so %{_libdir}/wine/%{winesodir}/dx8vb.dll.so %{_libdir}/wine/%{winesodir}/dxdiagn.dll.so +%ghost %{_libdir}/wine/%{winesodir}/dxgi.dll.so +%{_libdir}/wine/%{winesodir}/wine-dxgi.dll.so %{_libdir}/wine/%{winesodir}/dxgkrnl.sys.so %{_libdir}/wine/%{winesodir}/dxgmms1.sys.so %{_libdir}/wine/%{winesodir}/dxtrans.dll.so @@ -2445,6 +2451,7 @@ fi %{_libdir}/wine/%{winesodir}/windowscodecs.dll.so %{_libdir}/wine/%{winesodir}/windowscodecsext.dll.so %{_libdir}/wine/%{winesodir}/winebus.sys.so +%{_libdir}/wine/%{winesodir}/wined3d.dll.so %{_libdir}/wine/%{winesodir}/winegstreamer.dll.so %{_libdir}/wine/%{winesodir}/winehid.sys.so %{_libdir}/wine/%{winesodir}/winemapi.dll.so @@ -2761,7 +2768,9 @@ fi %files alsa %{_libdir}/wine/%{winepedir}/winealsa.drv %{_libdir}/wine/%{winesodir}/winealsa.so +%ifarch %{arm} aarch64 %{_libdir}/wine/%{winesodir}/winealsa.drv.so +%endif %if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 %files openal @@ -2779,6 +2788,9 @@ fi %endif %changelog +* Tue Mar 29 2022 Michael Cronenworth - 7.5-1 +- version update + * Fri Mar 25 2022 Sandro Mani - 7.3-2 - Rebuild with mingw-gcc-12 From 02e3f382f38f465dd87c6e1790aa95fb17fc4b9a Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 29 Mar 2022 20:23:47 -0500 Subject: [PATCH 667/715] No longer BR on libvkd3d --- wine.spec | 2 -- 1 file changed, 2 deletions(-) diff --git a/wine.spec b/wine.spec index 4a382c4..d659b9a 100644 --- a/wine.spec +++ b/wine.spec @@ -173,8 +173,6 @@ BuildRequires: gstreamer1-plugins-base-devel BuildRequires: mpg123-devel %endif BuildRequires: SDL2-devel -BuildRequires: libvkd3d-devel -BuildRequires: libvkd3d-shader-devel BuildRequires: vulkan-devel BuildRequires: libFAudio-devel BuildRequires: libappstream-glib From 588d11eb6ae59871dee1fde4006deb211f2c7811 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 30 Mar 2022 09:41:37 -0500 Subject: [PATCH 668/715] Add BR on lld for ARM64 --- wine.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/wine.spec b/wine.spec index d659b9a..22dd9e4 100644 --- a/wine.spec +++ b/wine.spec @@ -107,6 +107,7 @@ BuildRequires: bison BuildRequires: flex %ifarch aarch64 BuildRequires: clang >= 5.0 +BuildRequires: lld %else BuildRequires: gcc %endif From ed2a3429001d656bbfad831d837cb5f436194a27 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Fri, 1 Apr 2022 13:39:05 -0500 Subject: [PATCH 669/715] Fixes for a working x86 and ARM build --- wine.spec | 78 +++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 50 insertions(+), 28 deletions(-) diff --git a/wine.spec b/wine.spec index 22dd9e4..c1137ce 100644 --- a/wine.spec +++ b/wine.spec @@ -26,6 +26,9 @@ %ifarch aarch64 %global winepedir aarch64-windows %global winesodir aarch64-unix +%global __brp_llvm_compile_lto_elf %nil +%global __brp_strip_lto %nil +%global __brp_strip_static_archive %nil %endif # build with wine-staging patches, see: https://github.com/wine-staging/wine-staging @@ -89,6 +92,9 @@ Source501: wine-tahoma.conf # and provide a readme Source502: wine-README-tahoma +# fix configure macros for cross-compiling +Patch100: wine-7.5-cross.patch + Patch511: wine-cjk.patch %if 0%{?wine_staging} @@ -111,24 +117,19 @@ BuildRequires: lld %else BuildRequires: gcc %endif -BuildRequires: mingw32-gcc -BuildRequires: mingw64-gcc BuildRequires: autoconf BuildRequires: make BuildRequires: desktop-file-utils BuildRequires: alsa-lib-devel BuildRequires: audiofile-devel BuildRequires: freeglut-devel -BuildRequires: lcms2-devel BuildRequires: libieee1284-devel -BuildRequires: libjpeg-devel -BuildRequires: libpng-devel +#BuildRequires: libjpeg-devel + BuildRequires: librsvg2 BuildRequires: librsvg2-devel BuildRequires: libstdc++-devel BuildRequires: pkgconfig(libusb-1.0) -BuildRequires: libxml2-devel -BuildRequires: libxslt-devel %if 0%{?fedora} BuildRequires: ocl-icd-devel BuildRequires: opencl-headers @@ -138,7 +139,6 @@ BuildRequires: perl-generators BuildRequires: unixODBC-devel BuildRequires: sane-backends-devel BuildRequires: systemd-devel -BuildRequires: zlib-devel BuildRequires: fontforge freetype-devel BuildRequires: libgphoto2-devel %if 0%{?fedora} && 0%{?fedora} <= 30 @@ -175,7 +175,7 @@ BuildRequires: mpg123-devel %endif BuildRequires: SDL2-devel BuildRequires: vulkan-devel -BuildRequires: libFAudio-devel +#BuildRequires: libFAudio-devel BuildRequires: libappstream-glib # Silverlight DRM-stuff needs XATTR enabled. @@ -191,6 +191,21 @@ BuildRequires: openal-soft-devel BuildRequires: icoutils %endif +%ifarch %{ix86} x86_64 +BuildRequires: mingw32-gcc +BuildRequires: mingw64-gcc +BuildRequires: mingw32-lcms2 +BuildRequires: mingw64-lcms2 +BuildRequires: mingw32-libpng +BuildRequires: mingw64-libpng +BuildRequires: mingw32-libxml2 +BuildRequires: mingw64-libxml2 +BuildRequires: mingw32-libxslt +BuildRequires: mingw64-libxslt +BuildRequires: mingw32-zlib +BuildRequires: mingw64-zlib +%endif + Requires: wine-common = %{version}-%{release} Requires: wine-desktop = %{version}-%{release} Requires: wine-fonts = %{version}-%{release} @@ -367,6 +382,10 @@ Requires: libva %endif %endif +Provides: bundled(libFAudio) = 22.02 +Provides: bundled(libjpeg) = 9e +Provides: bundled(mpg123-libs) = 1.29.3 +Provides: bundled(libtiff) = 4.3.0 Provides: bundled(libvkd3d) = 1.3 # removed as of 1.7.35 @@ -690,6 +709,7 @@ This package adds the opencl driver for wine. %prep %setup -qn wine-%{version} +%patch100 -p1 -b.cross %patch511 -p1 -b.cjk %if 0%{?wine_staging} @@ -731,16 +751,25 @@ export CFLAGS="`echo $CFLAGS | sed -e 's/-fstack-clash-protection//'`" export CFLAGS="`echo $CFLAGS | sed -e 's/-fexceptions//'`" %endif +# required so that both Linux and Windows development files can be found +unset PKG_CONFIG_PATH + %configure \ --sysconfdir=%{_sysconfdir}/wine \ --x-includes=%{_includedir} --x-libraries=%{_libdir} \ - --without-hal --with-dbus \ + --with-dbus \ --with-x \ %ifarch %{arm} --with-float-abi=hard \ %endif %ifarch x86_64 aarch64 --enable-win64 \ +%ifarch x86_64 + --with-system-dllpath=%{mingw64_bindir} \ +%endif +%endif +%ifarch %{ix86} + --with-system-dllpath=%{mingw32_bindir} \ %endif %{?wine_staging: --with-xattr} \ --disable-tests @@ -1758,7 +1787,7 @@ fi %{_libdir}/wine/%{winepedir}/wuapi.dll %{_libdir}/wine/%{winepedir}/wuaueng.dll %{_libdir}/wine/%{winepedir}/wuauserv.exe -%ifarch %{arm} aarch64 +%ifarch %{arm} %{_libdir}/wine/%{winesodir}/wuauserv.exe.so %endif %{_libdir}/wine/%{winepedir}/security.dll @@ -1825,14 +1854,11 @@ fi %if 0%{?wine_staging} %ifarch x86_64 aarch64 %{_libdir}/wine/%{winepedir}/nvapi64.dll -%ifarch %{arm} aarch64 -%{_libdir}/wine/%{winesodir}/nvapi64.dll.so -%endif %{_libdir}/wine/%{winepedir}/nvencodeapi64.dll %{_libdir}/wine/%{winesodir}/nvencodeapi64.dll.so %else %{_libdir}/wine/%{winepedir}/nvapi.dll -%ifarch %{arm} aarch64 +%ifarch %{arm} %{_libdir}/wine/%{winesodir}/nvapi.dll.so %endif %{_libdir}/wine/%{winepedir}/nvencodeapi.dll @@ -1908,7 +1934,7 @@ fi %endif # ARM SOs -%ifarch %{arm} aarch64 +%ifarch %{arm} %{_libdir}/wine/%{winesodir}/explorer.exe.so %{_libdir}/wine/%{winesodir}/cabarc.exe.so %{_libdir}/wine/%{winesodir}/control.exe.so @@ -2469,10 +2495,6 @@ fi %{_libdir}/wine/%{winesodir}/wmiutils.dll.so %{_libdir}/wine/%{winesodir}/wmp.dll.so %{_libdir}/wine/%{winesodir}/wmvcore.dll.so -%ifarch aarch64 -%{_libdir}/wine/%{winesodir}/wow64.dll.so -%{_libdir}/wine/%{winesodir}/wow64win.dll.so -%endif %{_libdir}/wine/%{winesodir}/spoolss.dll.so %{_libdir}/wine/%{winesodir}/winscard.dll.so %{_libdir}/wine/%{winesodir}/wintab32.dll.so @@ -2703,25 +2725,25 @@ fi %files ldap %{_libdir}/wine/%{winesodir}/wldap32.so %{_libdir}/wine/%{winepedir}/wldap32.dll -%ifarch %{arm} aarch64 +%ifarch %{arm} %{_libdir}/wine/%{winesodir}/wldap32.dll.so %endif # cms subpackage %files cms %{_libdir}/wine/%{winepedir}/mscms.dll -%ifarch %{arm} aarch64 +%ifarch %{arm} %{_libdir}/wine/%{winesodir}/mscms.dll.so %endif # twain subpackage %files twain %{_libdir}/wine/%{winepedir}/twain_32.dll -%ifarch %{arm} aarch64 +%ifarch %{arm} %{_libdir}/wine/%{winesodir}/twain_32.dll.so %endif %{_libdir}/wine/%{winepedir}/sane.ds -%ifarch %{arm} aarch64 +%ifarch %{arm} %{_libdir}/wine/%{winesodir}/sane.ds.so %endif %{_libdir}/wine/%{winesodir}/sane.so @@ -2751,7 +2773,7 @@ fi %lang(fr) %{_mandir}/fr.UTF-8/man1/winemaker.1* %attr(0755, root, root) %dir %{_includedir}/wine %{_includedir}/wine/* -%ifarch %{ix86} x86_64 +%ifarch %{ix86} x86_64 aarch64 %{_libdir}/wine/%{winepedir}/*.a %endif %{_libdir}/wine/%{winesodir}/*.a @@ -2760,14 +2782,14 @@ fi %files pulseaudio %{_libdir}/wine/%{winepedir}/winepulse.drv %{_libdir}/wine/%{winesodir}/winepulse.so -%ifarch %{arm} aarch64 +%ifarch %{arm} %{_libdir}/wine/%{winesodir}/winepulse.drv.so %endif %files alsa %{_libdir}/wine/%{winepedir}/winealsa.drv %{_libdir}/wine/%{winesodir}/winealsa.so -%ifarch %{arm} aarch64 +%ifarch %{arm} %{_libdir}/wine/%{winesodir}/winealsa.drv.so %endif @@ -2780,7 +2802,7 @@ fi %if 0%{?fedora} %files opencl %{_libdir}/wine/%{winepedir}/opencl.dll -%ifarch %{arm} aarch64 +%ifarch %{arm} %{_libdir}/wine/%{winesodir}/opencl.dll.so %endif %{_libdir}/wine/%{winesodir}/opencl.so From 5fba36fcdaf089b148bededb72805e36a508dedd Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 3 Apr 2022 16:16:24 -0500 Subject: [PATCH 670/715] Drop 32-bit ARM, add MinGW package dependencies --- wine.spec | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/wine.spec b/wine.spec index c1137ce..f438c0c 100644 --- a/wine.spec +++ b/wine.spec @@ -104,14 +104,14 @@ Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar. %endif %if !%{?no64bit} -ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 +ExclusiveArch: %{ix86} x86_64 aarch64 %else -ExclusiveArch: %{ix86} %{arm} +ExclusiveArch: %{ix86} %endif BuildRequires: bison BuildRequires: flex -%ifarch aarch64 +%ifarch %{arm} aarch64 BuildRequires: clang >= 5.0 BuildRequires: lld %else @@ -335,6 +335,11 @@ Requires: vulkan-loader(x86-32) %if 0%{?wine_staging} Requires: libva(x86-32) %endif +Requires: mingw32-lcms2 +Requires: mingw32-libpng +Requires: mingw32-libxml2 +Requires: mingw32-libxslt +Requires: mingw32-zlib %endif %ifarch x86_64 @@ -359,6 +364,11 @@ Requires: vulkan-loader(x86-64) %if 0%{?wine_staging} Requires: libva(x86-64) %endif +Requires: mingw64-lcms2 +Requires: mingw64-libpng +Requires: mingw64-libxml2 +Requires: mingw64-libxslt +Requires: mingw64-zlib %endif %ifarch %{arm} aarch64 @@ -735,7 +745,7 @@ patches/patchinstall.sh DESTDIR="`pwd`" --all # http://bugs.winehq.org/show_bug.cgi?id=25073 export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno-error" -%ifarch aarch64 +%ifarch %{arm} aarch64 %if 0%{?fedora} >= 33 %global toolchain clang %else @@ -2811,6 +2821,8 @@ fi %changelog * Tue Mar 29 2022 Michael Cronenworth - 7.5-1 - version update +- drop 32-bit ARM +- require on Fedora MinGW dependencies * Fri Mar 25 2022 Sandro Mani - 7.3-2 - Rebuild with mingw-gcc-12 From c01aecc8168c876c2dc346028deb46e4e1a95090 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 3 Apr 2022 16:20:37 -0500 Subject: [PATCH 671/715] Add missing cross-compiling patch --- wine-7.5-cross.patch | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 wine-7.5-cross.patch diff --git a/wine-7.5-cross.patch b/wine-7.5-cross.patch new file mode 100644 index 0000000..4c588d7 --- /dev/null +++ b/wine-7.5-cross.patch @@ -0,0 +1,21 @@ +--- a/aclocal.m4 2022-03-25 15:26:21.000000000 -0500 ++++ b/aclocal.m4 2022-03-30 14:17:03.862124917 -0500 +@@ -229,6 +229,7 @@ + AC_CACHE_CHECK([for MinGW $1], ac_var, + [ac_wine_check_headers_saved_cc=$CC + ac_wine_check_headers_saved_exeext=$ac_exeext ++CFLAGS="$CROSSCFLAGS" + CC="$CROSSCC" + ac_exeext=".exe" + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[$4 +@@ -248,8 +249,10 @@ + [ac_wine_check_headers_saved_cc=$CC + ac_wine_check_headers_saved_exeext=$ac_exeext + ac_wine_check_headers_saved_libs=$LIBS ++CFLAGS="$CROSSCFLAGS" + CC="$CROSSCC" + ac_exeext=".exe" ++LDFLAGS="$CROSSLDFLAGS" + LIBS="-l$1 $5 $LIBS" + AC_LINK_IFELSE([AC_LANG_CALL([], [$2])],[AS_VAR_SET([ac_var],[yes])],[AS_VAR_SET([ac_var],[no])]) + CC=$ac_wine_check_headers_saved_cc From baa57bab540c92f2282365e3abe835a62a7f920b Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 23 May 2022 17:18:11 -0500 Subject: [PATCH 672/715] Update to 7.9 --- sources | 6 +++--- wine.spec | 27 +++++++++------------------ 2 files changed, 12 insertions(+), 21 deletions(-) diff --git a/sources b/sources index def955e..24f04e8 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-7.5.tar.xz) = 70458d702e04075915a97a12c5ebd33ec50cbb094f5f837e6bb498e24ee48630359d819d9689e84d29708398162ca7b8f7737216fb31c350701b66733da98616 -SHA512 (wine-7.5.tar.xz.sign) = 8a0ae360cc23260dbe79d1aa683ddfec45a579a9704fb10b9b8cb0ac28c79c8a79141dae683e21f3d8efd6f228504401c59b1b3cab825ef89fbe6e37f934f808 -SHA512 (wine-staging-7.5.tar.gz) = 138456d1fd76fa433afe01cd1d2cadb88c631277f69734641f1136795f0761a68fdfc564b9da90a342ff42e82f04436b70bb57913f92417b14e24cd7720a7b90 +SHA512 (wine-7.9.tar.xz) = 47ecbb8bc31a06d0f40a63469ffe3df4a1e05c9476a8926ec7f20c2230de8afecb5e0df9f3c5dd238ce3d0323d7cf9c9f48c41ef6ca149822458a4e605a2e029 +SHA512 (wine-7.9.tar.xz.sign) = f02eea3ec3784b233cdab425d4904366c892c5591191ecb62e278e04556558a0511d65ce5c9b89373b4f2412cf77b1002fab913e0839e86a91e242aa21937ae6 +SHA512 (wine-staging-7.9.tar.gz) = 6c856eeaa18bad56b5302939968995221277f80eb380510762535063929b7d95e58df11ad01459ab4e6a7f97efada8c09034457a58ad637620d3a296c93ace6d diff --git a/wine.spec b/wine.spec index f438c0c..a333b91 100644 --- a/wine.spec +++ b/wine.spec @@ -46,7 +46,7 @@ %endif Name: wine -Version: 7.5 +Version: 7.9 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1377,10 +1377,6 @@ fi %{_libdir}/wine/%{winepedir}/esent.dll %{_libdir}/wine/%{winepedir}/evr.dll %{_libdir}/wine/%{winepedir}/explorerframe.dll -%if 0%{?wine_staging} -%{_libdir}/wine/%{winepedir}/ext-ms-win-appmodel-usercontext-l1-1-0.dll -%{_libdir}/wine/%{winepedir}/ext-ms-win-xaml-pal-l1-1-0.dll -%endif %{_libdir}/wine/%{winepedir}/faultrep.dll %{_libdir}/wine/%{winepedir}/feclient.dll %{_libdir}/wine/%{winepedir}/fltlib.dll @@ -1412,9 +1408,6 @@ fi %{_libdir}/wine/%{winepedir}/icinfo.exe %{_libdir}/wine/%{winepedir}/icmp.dll %{_libdir}/wine/%{winepedir}/ieframe.dll -%if 0%{?wine_staging} -%{_libdir}/wine/%{winepedir}/iertutil.dll -%endif %{_libdir}/wine/%{winepedir}/ieproxy.dll %{_libdir}/wine/%{winepedir}/imaadp32.acm %{_libdir}/wine/%{winepedir}/imagehlp.dll @@ -1735,6 +1728,7 @@ fi %endif %{_libdir}/wine/%{winepedir}/windows.media.devices.dll %{_libdir}/wine/%{winepedir}/windows.networking.connectivity +%{_libdir}/wine/%{winepedir}/windows.networking.dll %{_libdir}/wine/%{winepedir}/windowscodecs.dll %{_libdir}/wine/%{winepedir}/windowscodecsext.dll %{_libdir}/wine/%{winepedir}/winebus.sys @@ -1747,7 +1741,7 @@ fi %{_libdir}/wine/%{winesodir}/winevulkan.so %{_libdir}/wine/%{winepedir}/winevulkan.dll %{_libdir}/wine/%{winepedir}/winex11.drv -%{_libdir}/wine/%{winesodir}/winex11.drv.so +%{_libdir}/wine/%{winesodir}/winex11.so %{_libdir}/wine/%{winepedir}/wing32.dll %{_libdir}/wine/%{winepedir}/winhttp.dll %{_libdir}/wine/%{winepedir}/wininet.dll @@ -1756,7 +1750,7 @@ fi %{_libdir}/wine/%{winepedir}/winspool.drv %{_libdir}/wine/%{winesodir}/winspool.so %{_libdir}/wine/%{winepedir}/winsta.dll -%{_libdir}/wine/%{winepedir}/wmadmod.dll +%{_libdir}/wine/%{winepedir}/wintypes.dll %{_libdir}/wine/%{winepedir}/wmasf.dll %{_libdir}/wine/%{winepedir}/wmi.dll %{_libdir}/wine/%{winepedir}/wmic.exe @@ -2149,10 +2143,6 @@ fi %{_libdir}/wine/%{winesodir}/esent.dll.so %{_libdir}/wine/%{winesodir}/evr.dll.so %{_libdir}/wine/%{winesodir}/explorerframe.dll.so -%if 0%{?wine_staging} -%{_libdir}/wine/%{winesodir}/ext-ms-win-appmodel-usercontext-l1-1-0.dll.so -%{_libdir}/wine/%{winesodir}/ext-ms-win-xaml-pal-l1-1-0.dll.so -%endif %{_libdir}/wine/%{winesodir}/faultrep.dll.so %{_libdir}/wine/%{winesodir}/feclient.dll.so %{_libdir}/wine/%{winesodir}/fltlib.dll.so @@ -2182,9 +2172,6 @@ fi %{_libdir}/wine/%{winesodir}/iccvid.dll.so %{_libdir}/wine/%{winesodir}/icinfo.exe.so %{_libdir}/wine/%{winesodir}/ieframe.dll.so -%if 0%{?wine_staging} -%{_libdir}/wine/%{winesodir}/iertutil.dll.so -%endif %{_libdir}/wine/%{winesodir}/ieproxy.dll.so %{_libdir}/wine/%{winesodir}/imaadp32.acm.so %{_libdir}/wine/%{winesodir}/imagehlp.dll.so @@ -2483,6 +2470,7 @@ fi %endif %{_libdir}/wine/%{winesodir}/windows.media.devices.dll.so %{_libdir}/wine/%{winesodir}/windows.networking.connectivity.so +%{_libdir}/wine/%{winesodir}/windows.networking.dll.so %{_libdir}/wine/%{winesodir}/windowscodecs.dll.so %{_libdir}/wine/%{winesodir}/windowscodecsext.dll.so %{_libdir}/wine/%{winesodir}/winebus.sys.so @@ -2499,7 +2487,6 @@ fi %{_libdir}/wine/%{winesodir}/winnls32.dll.so %{_libdir}/wine/%{winesodir}/winspool.drv.so %{_libdir}/wine/%{winesodir}/winsta.dll.so -%{_libdir}/wine/%{winesodir}/wmadmod.dll.so %{_libdir}/wine/%{winesodir}/wmasf.dll.so %{_libdir}/wine/%{winesodir}/wmic.exe.so %{_libdir}/wine/%{winesodir}/wmiutils.dll.so @@ -2509,6 +2496,7 @@ fi %{_libdir}/wine/%{winesodir}/winscard.dll.so %{_libdir}/wine/%{winesodir}/wintab32.dll.so %{_libdir}/wine/%{winesodir}/wintrust.dll.so +%{_libdir}/wine/%{winesodir}/wintypes.dll.so %{_libdir}/wine/%{winesodir}/winusb.dll.so %{_libdir}/wine/%{winesodir}/wlanapi.dll.so %{_libdir}/wine/%{winesodir}/wlanui.dll.so @@ -2819,6 +2807,9 @@ fi %endif %changelog +* Mon May 23 2022 Michael Cronenworth - 7.9-1 +- version update + * Tue Mar 29 2022 Michael Cronenworth - 7.5-1 - version update - drop 32-bit ARM From bf9fa32bb2725b8a7426fdc01708392ac6471b19 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 6 Jun 2022 07:25:32 -0500 Subject: [PATCH 673/715] Update to 7.10 --- sources | 6 +++--- wine.spec | 5 ++++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/sources b/sources index 24f04e8..02b121f 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-7.9.tar.xz) = 47ecbb8bc31a06d0f40a63469ffe3df4a1e05c9476a8926ec7f20c2230de8afecb5e0df9f3c5dd238ce3d0323d7cf9c9f48c41ef6ca149822458a4e605a2e029 -SHA512 (wine-7.9.tar.xz.sign) = f02eea3ec3784b233cdab425d4904366c892c5591191ecb62e278e04556558a0511d65ce5c9b89373b4f2412cf77b1002fab913e0839e86a91e242aa21937ae6 -SHA512 (wine-staging-7.9.tar.gz) = 6c856eeaa18bad56b5302939968995221277f80eb380510762535063929b7d95e58df11ad01459ab4e6a7f97efada8c09034457a58ad637620d3a296c93ace6d +SHA512 (wine-7.10.tar.xz) = be460be6c3f6f54c20220287a7c4c9d41d27bd14fabb97b1f9824a4be361e38b2e2e51a621e0332d6c48934b1af425efaec92132f73e6d1270337ffbfcac2576 +SHA512 (wine-7.10.tar.xz.sign) = 31552691927675a3e92f1bc01367ec6fc032044fbf7c799985256bb5352793480a3be709b5e7d8959c0f7a108d5598353fc0fc4ff4aefc83b2bb0764e7a856c2 +SHA512 (wine-staging-7.10.tar.gz) = 7c2aa5ec78f12ef3415f7e3615775f8a0a727f6e5bb0173f5746934166dbec5d4edfaa572d3fe26ef62fe933772346495a6c618d58ee0a6374028a158beb05c8 diff --git a/wine.spec b/wine.spec index a333b91..a4b1dab 100644 --- a/wine.spec +++ b/wine.spec @@ -46,7 +46,7 @@ %endif Name: wine -Version: 7.9 +Version: 7.10 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -2807,6 +2807,9 @@ fi %endif %changelog +* Mon Jun 06 2022 Michael Cronenworth - 7.10-1 +- version update + * Mon May 23 2022 Michael Cronenworth - 7.9-1 - version update From a0465378b4a58fdf2058a4b3f855ef81227fd86c Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 6 Jun 2022 10:39:27 -0500 Subject: [PATCH 674/715] Require Mono 7.3.0 --- wine.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/wine.spec b/wine.spec index a4b1dab..3c9ae43 100644 --- a/wine.spec +++ b/wine.spec @@ -9,7 +9,7 @@ %global no64bit 0 %global winegecko 2.47.2 -%global winemono 7.1.1 +%global winemono 7.3.0 #global _default_patch_fuzz 2 %ifarch %{ix86} %global winepedir i386-windows @@ -47,7 +47,7 @@ Name: wine Version: 7.10 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -2807,6 +2807,9 @@ fi %endif %changelog +* Mon Jun 06 2022 Michael Cronenworth - 7.10-2 +- Require new Mono + * Mon Jun 06 2022 Michael Cronenworth - 7.10-1 - version update From e8cae40f2f38eacd65e5831351cbe67e2a0d1dad Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 22 Jun 2022 21:18:23 -0500 Subject: [PATCH 675/715] Update to 7.11 --- sources | 6 +++--- wine.spec | 9 +++++++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/sources b/sources index 02b121f..606ca96 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-7.10.tar.xz) = be460be6c3f6f54c20220287a7c4c9d41d27bd14fabb97b1f9824a4be361e38b2e2e51a621e0332d6c48934b1af425efaec92132f73e6d1270337ffbfcac2576 -SHA512 (wine-7.10.tar.xz.sign) = 31552691927675a3e92f1bc01367ec6fc032044fbf7c799985256bb5352793480a3be709b5e7d8959c0f7a108d5598353fc0fc4ff4aefc83b2bb0764e7a856c2 -SHA512 (wine-staging-7.10.tar.gz) = 7c2aa5ec78f12ef3415f7e3615775f8a0a727f6e5bb0173f5746934166dbec5d4edfaa572d3fe26ef62fe933772346495a6c618d58ee0a6374028a158beb05c8 +SHA512 (wine-7.11.tar.xz) = aff6a5996ba7336d97c59a1402688b109e6cca123c60fa6f03813d81ad6478f4ed4a62fb7813dc6952cca7ec1250182730873f3ac17f0855bbf000bf3c1d86fe +SHA512 (wine-7.11.tar.xz.sign) = 0b08b889506af104eab90268f2944d82dda5bdf4117596768766fb77afaa76416bae8fe0b2b06811bf05f04e2ee0a5a62b74fa24965228b9338d2a3d3eb3fc43 +SHA512 (wine-staging-7.11.tar.gz) = 5985f7536f7d0a8bedcfcdf095861a06589ea6ad9896c87043ca88f9ef3c4bc9854931b51b64471e361378f332cea70adc58ef9303e9e5d1a6dcc9789761c187 diff --git a/wine.spec b/wine.spec index 3c9ae43..f5a8c82 100644 --- a/wine.spec +++ b/wine.spec @@ -46,8 +46,8 @@ %endif Name: wine -Version: 7.10 -Release: 2%{?dist} +Version: 7.11 +Release: 1%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -1403,6 +1403,7 @@ fi %{_libdir}/wine/%{winepedir}/hnetcfg.dll %{_libdir}/wine/%{winepedir}/http.sys %{_libdir}/wine/%{winepedir}/httpapi.dll +%{_libdir}/wine/%{winepedir}/ia2comproxy.dll %{_libdir}/wine/%{winepedir}/icacls.exe %{_libdir}/wine/%{winepedir}/iccvid.dll %{_libdir}/wine/%{winepedir}/icinfo.exe @@ -2168,6 +2169,7 @@ fi %{_libdir}/wine/%{winesodir}/hnetcfg.dll.so %{_libdir}/wine/%{winesodir}/http.sys.so %{_libdir}/wine/%{winesodir}/httpapi.dll.so +%{_libdir}/wine/%{winesodir}/ia2comproxy.dll.so %{_libdir}/wine/%{winesodir}/icacls.exe.so %{_libdir}/wine/%{winesodir}/iccvid.dll.so %{_libdir}/wine/%{winesodir}/icinfo.exe.so @@ -2807,6 +2809,9 @@ fi %endif %changelog +* Wed Jun 22 2022 Michael Cronenworth - 7.11-1 +- version update + * Mon Jun 06 2022 Michael Cronenworth - 7.10-2 - Require new Mono From 17f126ebed003b8f27ef798d96b9685dea473030 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 5 Jul 2022 15:07:50 -0500 Subject: [PATCH 676/715] Update to 7.12 and unbundle vkd3d --- sources | 6 +++--- wine.spec | 8 ++++++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/sources b/sources index 606ca96..e18121d 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-7.11.tar.xz) = aff6a5996ba7336d97c59a1402688b109e6cca123c60fa6f03813d81ad6478f4ed4a62fb7813dc6952cca7ec1250182730873f3ac17f0855bbf000bf3c1d86fe -SHA512 (wine-7.11.tar.xz.sign) = 0b08b889506af104eab90268f2944d82dda5bdf4117596768766fb77afaa76416bae8fe0b2b06811bf05f04e2ee0a5a62b74fa24965228b9338d2a3d3eb3fc43 -SHA512 (wine-staging-7.11.tar.gz) = 5985f7536f7d0a8bedcfcdf095861a06589ea6ad9896c87043ca88f9ef3c4bc9854931b51b64471e361378f332cea70adc58ef9303e9e5d1a6dcc9789761c187 +SHA512 (wine-7.12.tar.xz) = 4746fb1c3d0ec7f20e22d821f8e88e5415b85cb60f53e9ad61b89e8321b6a6b2999eb2b70c7ac46477f633bccb6c2aba49ce2655c380cb85cd5c71dbe4af50b4 +SHA512 (wine-7.12.tar.xz.sign) = a1c0c67955f12340be6ca1b993c9231e52e2080ae3f9712a4796d12b0b1d3f01a35fc13ea1c28b894fab3b8a0e1088ce3f749562fd0eb5e7dd7099d05b3feb4f +SHA512 (wine-staging-7.12.tar.gz) = 0cf7554011835052b75a836fca89c6cf9b5fa1653c96a82b0dcd3cf40147602eebaf81aa6b94348432371bef9550c8dc21c9cf7d78b49a422bd113e8a6a8e3b0 diff --git a/wine.spec b/wine.spec index f5a8c82..0566f96 100644 --- a/wine.spec +++ b/wine.spec @@ -46,7 +46,7 @@ %endif Name: wine -Version: 7.11 +Version: 7.12 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -202,6 +202,10 @@ BuildRequires: mingw32-libxml2 BuildRequires: mingw64-libxml2 BuildRequires: mingw32-libxslt BuildRequires: mingw64-libxslt +BuildRequires: mingw32-vkd3d +BuildRequires: mingw64-vkd3d +BuildRequires: mingw32-vulkan-headers +BuildRequires: mingw64-vulkan-headers BuildRequires: mingw32-zlib BuildRequires: mingw64-zlib %endif @@ -396,7 +400,6 @@ Provides: bundled(libFAudio) = 22.02 Provides: bundled(libjpeg) = 9e Provides: bundled(mpg123-libs) = 1.29.3 Provides: bundled(libtiff) = 4.3.0 -Provides: bundled(libvkd3d) = 1.3 # removed as of 1.7.35 Obsoletes: wine-wow < 1.7.35 @@ -1738,6 +1741,7 @@ fi %{_libdir}/wine/%{winepedir}/winehid.sys %{_libdir}/wine/%{winepedir}/winemapi.dll %{_libdir}/wine/%{winepedir}/wineusb.sys +%{_libdir}/wine/%{winesodir}/wineusb.so %{_libdir}/wine/%{winesodir}/wineusb.sys.so %{_libdir}/wine/%{winesodir}/winevulkan.so %{_libdir}/wine/%{winepedir}/winevulkan.dll From d9c9f057bacb3b6981cad76c7fc2fad2d9d93358 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 5 Jul 2022 15:08:49 -0500 Subject: [PATCH 677/715] Fix changelog --- wine.spec | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/wine.spec b/wine.spec index 0566f96..07cbf9a 100644 --- a/wine.spec +++ b/wine.spec @@ -2813,6 +2813,10 @@ fi %endif %changelog +* Tue Jul 05 2022 Michael Cronenworth - 7.12-1 +- versuon update +- Unbundle vkd3d + * Wed Jun 22 2022 Michael Cronenworth - 7.11-1 - version update From a3e2f7a5dcecb2025dee826a45717a7cf4d9c3ab Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Thu, 14 Jul 2022 19:29:58 -0500 Subject: [PATCH 678/715] Need to add Requires on DLL packages (RHBZ#2107290) --- wine.spec | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 07cbf9a..c7ba07c 100644 --- a/wine.spec +++ b/wine.spec @@ -47,7 +47,7 @@ Name: wine Version: 7.12 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -343,6 +343,7 @@ Requires: mingw32-lcms2 Requires: mingw32-libpng Requires: mingw32-libxml2 Requires: mingw32-libxslt +Requires: mingw32-vkd3d Requires: mingw32-zlib %endif @@ -372,6 +373,7 @@ Requires: mingw64-lcms2 Requires: mingw64-libpng Requires: mingw64-libxml2 Requires: mingw64-libxslt +Requires: mingw64-vkd3d Requires: mingw64-zlib %endif @@ -2813,6 +2815,9 @@ fi %endif %changelog +* Thu Jul 14 2022 Michael Cronenworth - 7.12-2 +- Requires on vkd3d + * Tue Jul 05 2022 Michael Cronenworth - 7.12-1 - versuon update - Unbundle vkd3d From 947c9436238645297f0e168fe10b7a9a1c70903b Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 23 Jul 2022 12:26:31 +0000 Subject: [PATCH 679/715] Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- wine.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index c7ba07c..14dc7db 100644 --- a/wine.spec +++ b/wine.spec @@ -47,7 +47,7 @@ Name: wine Version: 7.12 -Release: 2%{?dist} +Release: 3%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -2815,6 +2815,9 @@ fi %endif %changelog +* Sat Jul 23 2022 Fedora Release Engineering - 7.12-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + * Thu Jul 14 2022 Michael Cronenworth - 7.12-2 - Requires on vkd3d From 3be04588432c2fcbf8f1045f9ea6e789416d4de0 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 11 Oct 2022 11:02:43 -0500 Subject: [PATCH 680/715] Update to 7.18 --- sources | 6 +++--- wine.spec | 29 ++++++++++++++++++----------- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/sources b/sources index e18121d..ada0c0c 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-7.12.tar.xz) = 4746fb1c3d0ec7f20e22d821f8e88e5415b85cb60f53e9ad61b89e8321b6a6b2999eb2b70c7ac46477f633bccb6c2aba49ce2655c380cb85cd5c71dbe4af50b4 -SHA512 (wine-7.12.tar.xz.sign) = a1c0c67955f12340be6ca1b993c9231e52e2080ae3f9712a4796d12b0b1d3f01a35fc13ea1c28b894fab3b8a0e1088ce3f749562fd0eb5e7dd7099d05b3feb4f -SHA512 (wine-staging-7.12.tar.gz) = 0cf7554011835052b75a836fca89c6cf9b5fa1653c96a82b0dcd3cf40147602eebaf81aa6b94348432371bef9550c8dc21c9cf7d78b49a422bd113e8a6a8e3b0 +SHA512 (wine-7.18.tar.xz) = e651b18cef73b4619e953b746d0c207c0220279003560aaf195c2569a22308af129e1460651a246e6a87dcfbcfcff08f52f970734035eb55ab45d8970fd56a02 +SHA512 (wine-7.18.tar.xz.sign) = 358dce51b2290a0e0833c85c55ec4badfb36734bc8427434b83142d268ada3bc59abeb1aea3b4598de48273f3fbebf1c5d9777afbbac1b66f99bfbe831d3d77e +SHA512 (wine-staging-7.18.tar.gz) = fce34941f53f649035b9581f3612f0e47bcbb7e52d2edd33deba9123870cf69c237d10c820c8cbe1b9a784fe6e688af8690cc9ea6d71d4fc596f94ebd1a932a9 diff --git a/wine.spec b/wine.spec index 14dc7db..688d67a 100644 --- a/wine.spec +++ b/wine.spec @@ -8,7 +8,7 @@ %global _smp_mflags -j1 %global no64bit 0 -%global winegecko 2.47.2 +%global winegecko 2.47.3 %global winemono 7.3.0 #global _default_patch_fuzz 2 %ifarch %{ix86} @@ -46,8 +46,8 @@ %endif Name: wine -Version: 7.12 -Release: 3%{?dist} +Version: 7.18 +Release: 1%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -141,9 +141,6 @@ BuildRequires: sane-backends-devel BuildRequires: systemd-devel BuildRequires: fontforge freetype-devel BuildRequires: libgphoto2-devel -%if 0%{?fedora} && 0%{?fedora} <= 30 -BuildRequires: isdn4k-utils-devel -%endif BuildRequires: libpcap-devel # modular x BuildRequires: libX11-devel @@ -175,7 +172,6 @@ BuildRequires: mpg123-devel %endif BuildRequires: SDL2-devel BuildRequires: vulkan-devel -#BuildRequires: libFAudio-devel BuildRequires: libappstream-glib # Silverlight DRM-stuff needs XATTR enabled. @@ -192,6 +188,8 @@ BuildRequires: icoutils %endif %ifarch %{ix86} x86_64 +BuildRequires: mingw32-FAudio +BuildRequires: mingw64-FAudio BuildRequires: mingw32-gcc BuildRequires: mingw64-gcc BuildRequires: mingw32-lcms2 @@ -241,7 +239,6 @@ Recommends: wine-dxvk(x86-32) Recommends: dosbox-staging %endif Recommends: gstreamer1-plugins-good(x86-32) -Recommends: isdn4k-utils(x86-32) %endif # x86-64 parts @@ -267,7 +264,6 @@ Recommends: wine-dxvk(x86-64) Recommends: dosbox-staging %endif Recommends: gstreamer1-plugins-good(x86-64) -Recommends: isdn4k-utils(x86-64) %endif # ARM parts @@ -398,7 +394,6 @@ Requires: libva %endif %endif -Provides: bundled(libFAudio) = 22.02 Provides: bundled(libjpeg) = 9e Provides: bundled(mpg123-libs) = 1.29.3 Provides: bundled(libtiff) = 4.3.0 @@ -1302,6 +1297,7 @@ fi %{_libdir}/wine/%{winepedir}/cryptdll.dll %{_libdir}/wine/%{winepedir}/cryptext.dll %{_libdir}/wine/%{winepedir}/cryptnet.dll +%{_libdir}/wine/%{winepedir}/cryptowinrt.dll %{_libdir}/wine/%{winepedir}/cryptsp.dll %{_libdir}/wine/%{winepedir}/cryptui.dll %{_libdir}/wine/%{winepedir}/ctapi32.dll @@ -1464,6 +1460,7 @@ fi %{_libdir}/wine/%{winepedir}/mfplat.dll %{_libdir}/wine/%{winepedir}/mfplay.dll %{_libdir}/wine/%{winepedir}/mfreadwrite.dll +%{_libdir}/wine/%{winepedir}/mfsrcsnk.dll %{_libdir}/wine/%{winepedir}/mgmtapi.dll %{_libdir}/wine/%{winepedir}/midimap.dll %{_libdir}/wine/%{winepedir}/mlang.dll @@ -1530,6 +1527,7 @@ fi %{_libdir}/wine/%{winepedir}/msvcp120_app.dll %{_libdir}/wine/%{winepedir}/msvcp140.dll %{_libdir}/wine/%{winepedir}/msvcp140_1.dll +%{_libdir}/wine/%{winepedir}/msvcp140_2.dll %{_libdir}/wine/%{winepedir}/msvcp140_atomic_wait.dll %{_libdir}/wine/%{winepedir}/msvcr70.dll %{_libdir}/wine/%{winepedir}/msvcr71.dll @@ -1682,6 +1680,7 @@ fi %{_libdir}/wine/%{winepedir}/tbs.dll %{_libdir}/wine/%{winepedir}/tdh.dll %{_libdir}/wine/%{winepedir}/tdi.sys +%{_libdir}/wine/%{winepedir}/threadpoolwinrt.dll %{_libdir}/wine/%{winepedir}/traffic.dll %{_libdir}/wine/%{winepedir}/tzres.dll %{_libdir}/wine/%{winepedir}/ucrtbase.dll @@ -1744,7 +1743,6 @@ fi %{_libdir}/wine/%{winepedir}/winemapi.dll %{_libdir}/wine/%{winepedir}/wineusb.sys %{_libdir}/wine/%{winesodir}/wineusb.so -%{_libdir}/wine/%{winesodir}/wineusb.sys.so %{_libdir}/wine/%{winesodir}/winevulkan.so %{_libdir}/wine/%{winepedir}/winevulkan.dll %{_libdir}/wine/%{winepedir}/winex11.drv @@ -2076,6 +2074,7 @@ fi %{_libdir}/wine/%{winesodir}/cryptdll.dll.so %{_libdir}/wine/%{winesodir}/cryptext.dll.so %{_libdir}/wine/%{winesodir}/cryptnet.dll.so +%{_libdir}/wine/%{winesodir}/cryptowinrt.dll.so %{_libdir}/wine/%{winesodir}/cryptsp.dll.so %{_libdir}/wine/%{winesodir}/cryptui.dll.so %{_libdir}/wine/%{winesodir}/ctapi32.dll.so @@ -2224,6 +2223,7 @@ fi %{_libdir}/wine/%{winesodir}/mfplat.dll.so %{_libdir}/wine/%{winesodir}/mfplay.dll.so %{_libdir}/wine/%{winesodir}/mfreadwrite.dll.so +%{_libdir}/wine/%{winesodir}/mfsrcsnk.dll.so %{_libdir}/wine/%{winesodir}/mgmtapi.dll.so %{_libdir}/wine/%{winesodir}/midimap.dll.so %{_libdir}/wine/%{winesodir}/mlang.dll.so @@ -2286,6 +2286,7 @@ fi %{_libdir}/wine/%{winesodir}/msvcp120_app.dll.so %{_libdir}/wine/%{winesodir}/msvcp140.dll.so %{_libdir}/wine/%{winesodir}/msvcp140_1.dll.so +%{_libdir}/wine/%{winesodir}/msvcp140_2.dll.so %{_libdir}/wine/%{winesodir}/msvcp140_atomic_wait.dll.so %{_libdir}/wine/%{winesodir}/msvcr70.dll.so %{_libdir}/wine/%{winesodir}/msvcr71.dll.so @@ -2426,6 +2427,7 @@ fi %{_libdir}/wine/%{winesodir}/tbs.dll.so %{_libdir}/wine/%{winesodir}/tdh.dll.so %{_libdir}/wine/%{winesodir}/tdi.sys.so +%{_libdir}/wine/%{winesodir}/threadpoolwinrt.dll.so %{_libdir}/wine/%{winesodir}/traffic.dll.so %{_libdir}/wine/%{winesodir}/ucrtbase.dll.so %if 0%{?wine_staging} @@ -2486,6 +2488,7 @@ fi %{_libdir}/wine/%{winesodir}/winegstreamer.dll.so %{_libdir}/wine/%{winesodir}/winehid.sys.so %{_libdir}/wine/%{winesodir}/winemapi.dll.so +%{_libdir}/wine/%{winesodir}/wineusb.sys.so %{_libdir}/wine/%{winesodir}/winevulkan.dll.so %{_libdir}/wine/%{winesodir}/winexinput.sys.so %{_libdir}/wine/%{winesodir}/wing32.dll.so @@ -2815,6 +2818,10 @@ fi %endif %changelog +* Tue Oct 11 2022 Michael Cronenworth - 7.18-1 +- versuon update +- Drop isdn4k-utils from Recommends + * Sat Jul 23 2022 Fedora Release Engineering - 7.12-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild From 5b27b74f4d61fae62df715f9ed1a4a0c2c7a106e Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 11 Oct 2022 15:22:36 -0500 Subject: [PATCH 681/715] Hack around linker flags in configure on i686 --- wine.spec | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/wine.spec b/wine.spec index 688d67a..e1e944a 100644 --- a/wine.spec +++ b/wine.spec @@ -745,6 +745,13 @@ patches/patchinstall.sh DESTDIR="`pwd`" --all # http://bugs.winehq.org/show_bug.cgi?id=25073 export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno-error" +%ifarch %{ix86} +# remove extra linker flag on 32-bit on native LDFLAGS +sed -i 's/CFLAGS="$CFLAGS -Wl,--disable-stdcall-fixup"//' configure +sed -i 's/CFLAGS="$CFLAGS $EXTRACROSSCFLAGS -nostartfiles -nodefaultlibs -Wl,--disable-stdcall-fixup"/CFLAGS="$CFLAGS $EXTRACROSSCFLAGS -nostartfiles -nodefaultlibs"/' configure +sed -i 's/CROSSLDFLAGS="$CROSSLDFLAGS -Wl,--disable-stdcall-fixup"/CROSSLDFLAGS="$CROSSLDFLAGS"/' configure +%endif + %ifarch %{arm} aarch64 %if 0%{?fedora} >= 33 %global toolchain clang From 3b68af45f1533591e757d13fdafb1e0c729fdf74 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Thu, 13 Oct 2022 08:10:29 -0500 Subject: [PATCH 682/715] Require MinGW FAudio (RHBZ#2134452) --- wine.spec | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/wine.spec b/wine.spec index e1e944a..f592fd7 100644 --- a/wine.spec +++ b/wine.spec @@ -47,7 +47,7 @@ Name: wine Version: 7.18 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -335,6 +335,7 @@ Requires: vulkan-loader(x86-32) %if 0%{?wine_staging} Requires: libva(x86-32) %endif +Requires: mingw32-FAudio Requires: mingw32-lcms2 Requires: mingw32-libpng Requires: mingw32-libxml2 @@ -365,6 +366,7 @@ Requires: vulkan-loader(x86-64) %if 0%{?wine_staging} Requires: libva(x86-64) %endif +Requires: mingw64-FAudio Requires: mingw64-lcms2 Requires: mingw64-libpng Requires: mingw64-libxml2 @@ -2825,8 +2827,11 @@ fi %endif %changelog +* Thu Oct 13 2022 Michael Cronenworth - 7.18-2 +- Require MinGW FAudio + * Tue Oct 11 2022 Michael Cronenworth - 7.18-1 -- versuon update +- version update - Drop isdn4k-utils from Recommends * Sat Jul 23 2022 Fedora Release Engineering - 7.12-3 From 55482fecf271bd1723a0535315d85b60e48a6370 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 24 Oct 2022 16:14:31 -0500 Subject: [PATCH 683/715] Update to 7.19 --- sources | 6 +++--- wine.spec | 7 +++++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/sources b/sources index ada0c0c..9dd27bd 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-7.18.tar.xz) = e651b18cef73b4619e953b746d0c207c0220279003560aaf195c2569a22308af129e1460651a246e6a87dcfbcfcff08f52f970734035eb55ab45d8970fd56a02 -SHA512 (wine-7.18.tar.xz.sign) = 358dce51b2290a0e0833c85c55ec4badfb36734bc8427434b83142d268ada3bc59abeb1aea3b4598de48273f3fbebf1c5d9777afbbac1b66f99bfbe831d3d77e -SHA512 (wine-staging-7.18.tar.gz) = fce34941f53f649035b9581f3612f0e47bcbb7e52d2edd33deba9123870cf69c237d10c820c8cbe1b9a784fe6e688af8690cc9ea6d71d4fc596f94ebd1a932a9 +SHA512 (wine-7.19.tar.xz) = f76dbda97cccad4c0f249b5dd4e8d48afa832134f1704ae228650bb73ee82823e628b23bd53a3f8729e06a8933597ff2fffa5551f156fc9c9181b67c066747d5 +SHA512 (wine-7.19.tar.xz.sign) = 7fa8ebc08c2981bc1cef0b2f5e508f318c0d163619de9466e86cbe11b6ebd6b3ca76d74c2899bb896d62e3ead90ae99b4da955c1d2fb1627bafc8fab3db8d816 +SHA512 (wine-staging-7.19.tar.gz) = c51cb18c4ae00eccf414f5edda18ebf363674ba7cfa95da135b3a43b7c012c086d454d6ac32b22d98e611bb87e55c3e1ee95571a4a0c9713028b5ac38e8aed3f diff --git a/wine.spec b/wine.spec index f592fd7..9852df0 100644 --- a/wine.spec +++ b/wine.spec @@ -46,8 +46,8 @@ %endif Name: wine -Version: 7.18 -Release: 2%{?dist} +Version: 7.19 +Release: 1%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -2827,6 +2827,9 @@ fi %endif %changelog +* Mon Oct 24 2022 Michael Cronenworth - 7.19-1 +- version update + * Thu Oct 13 2022 Michael Cronenworth - 7.18-2 - Require MinGW FAudio From 6a539bd720195562fe69cf5e031ce59482b9acf1 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 1 Nov 2022 07:02:49 -0500 Subject: [PATCH 684/715] Update to 7.20 --- sources | 6 +++--- wine.spec | 7 +++++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/sources b/sources index 9dd27bd..2dc1391 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-7.19.tar.xz) = f76dbda97cccad4c0f249b5dd4e8d48afa832134f1704ae228650bb73ee82823e628b23bd53a3f8729e06a8933597ff2fffa5551f156fc9c9181b67c066747d5 -SHA512 (wine-7.19.tar.xz.sign) = 7fa8ebc08c2981bc1cef0b2f5e508f318c0d163619de9466e86cbe11b6ebd6b3ca76d74c2899bb896d62e3ead90ae99b4da955c1d2fb1627bafc8fab3db8d816 -SHA512 (wine-staging-7.19.tar.gz) = c51cb18c4ae00eccf414f5edda18ebf363674ba7cfa95da135b3a43b7c012c086d454d6ac32b22d98e611bb87e55c3e1ee95571a4a0c9713028b5ac38e8aed3f +SHA512 (wine-7.20.tar.xz) = 6e2e65fba2336985df93165050f0f46b752d6aa94fc1581451c58969e2003748378be4b9e16b647ca2922fbdff77920311b12a17bda630a7bccfc7ee8f03b453 +SHA512 (wine-7.20.tar.xz.sign) = c55c1b3f5e9da764963531831f8717bb83fb89dc003eb067d8589964514d8e640f90f2ca6611af0e69e701d2bdb0f8ce346bf60405567eec8a0bf9150e5c4ff3 +SHA512 (wine-staging-7.20.tar.gz) = 538bf60e760254f3130fe8b6bf07598287e567c0f34d6be2ed04fde10007283d4c675a6f27a0a13d3ce77e833559d5ef853a89f2f96dc5f8cc818bdc3570474a diff --git a/wine.spec b/wine.spec index 9852df0..175d8b9 100644 --- a/wine.spec +++ b/wine.spec @@ -9,7 +9,7 @@ %global no64bit 0 %global winegecko 2.47.3 -%global winemono 7.3.0 +%global winemono 7.4.0 #global _default_patch_fuzz 2 %ifarch %{ix86} %global winepedir i386-windows @@ -46,7 +46,7 @@ %endif Name: wine -Version: 7.19 +Version: 7.20 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -2827,6 +2827,9 @@ fi %endif %changelog +* Mon Oct 31 2022 Michael Cronenworth - 7.20-1 +- version update + * Mon Oct 24 2022 Michael Cronenworth - 7.19-1 - version update From 552cb045db6f129f8fc649087e0815fedfdd70e6 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 27 Nov 2022 21:53:48 -0600 Subject: [PATCH 685/715] Update to 7.22 --- sources | 6 +- wine-7.22-autoconf-2.72.patch | 25 +++ wine-7.5-cross.patch | 21 --- wine.spec | 303 +++++----------------------------- 4 files changed, 73 insertions(+), 282 deletions(-) create mode 100644 wine-7.22-autoconf-2.72.patch delete mode 100644 wine-7.5-cross.patch diff --git a/sources b/sources index 2dc1391..583f020 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-7.20.tar.xz) = 6e2e65fba2336985df93165050f0f46b752d6aa94fc1581451c58969e2003748378be4b9e16b647ca2922fbdff77920311b12a17bda630a7bccfc7ee8f03b453 -SHA512 (wine-7.20.tar.xz.sign) = c55c1b3f5e9da764963531831f8717bb83fb89dc003eb067d8589964514d8e640f90f2ca6611af0e69e701d2bdb0f8ce346bf60405567eec8a0bf9150e5c4ff3 -SHA512 (wine-staging-7.20.tar.gz) = 538bf60e760254f3130fe8b6bf07598287e567c0f34d6be2ed04fde10007283d4c675a6f27a0a13d3ce77e833559d5ef853a89f2f96dc5f8cc818bdc3570474a +SHA512 (wine-7.22.tar.xz) = bf58a5b98bef5b291aff1eca3f94c28da95990e4c8da9af5e9e28b9480d57163d088b501b0c1bca5b568bf586dd9933cdc1ea1f371b78d95c94e2d25d0a65efc +SHA512 (wine-7.22.tar.xz.sign) = df8197045cd1a0b232f97dd5003b8dd141b81e8a535f4b25656c4570ce2a7cb87ab2a89ea476c48ba877a5dee5952b8d29f30118ef91dd17be9329455838b25d +SHA512 (wine-staging-7.22.tar.gz) = 5fdac19ec290c67767fac71abe07d9350ec431919c67a0f2d2df18ced20f1d3dddb921b3d5586d03add187c6281e1a691cc220e8d2d5ad4eeb94015721479d65 diff --git a/wine-7.22-autoconf-2.72.patch b/wine-7.22-autoconf-2.72.patch new file mode 100644 index 0000000..781bb9a --- /dev/null +++ b/wine-7.22-autoconf-2.72.patch @@ -0,0 +1,25 @@ +--- wine-7.20.old/aclocal.m4 2022-11-17 17:19:01.772386752 +0100 ++++ wine-7.20/aclocal.m4 2022-11-17 17:24:03.721683055 +0100 +@@ -279,15 +279,17 @@ + dnl + dnl Usage: WINE_CHECK_DEFINE(name),[action-if-yes,[action-if-no]]) + dnl + AC_DEFUN([WINE_CHECK_DEFINE], + [AS_VAR_PUSHDEF([ac_var],[ac_cv_cpp_def_$1])dnl +-AC_CACHE_CHECK([whether we need to define $1],ac_var, +- AC_EGREP_CPP(yes,[#ifndef $1 +-yes +-#endif], +- [AS_VAR_SET(ac_var,yes)],[AS_VAR_SET(ac_var,no)])) ++AC_CACHE_CHECK([whether we need to define $1], ac_var, ++ [AC_PREPROC_IFELSE([[ ++#ifndef $1 ++#error not defined ++#endif ++]], ++ [AS_VAR_SET(ac_var,no)],[AS_VAR_SET(ac_var,yes)])]) + AS_VAR_IF([ac_var],[yes], + [CFLAGS="$CFLAGS -D$1" + LINTFLAGS="$LINTFLAGS -D$1"])dnl + AS_VAR_POPDEF([ac_var])]) + diff --git a/wine-7.5-cross.patch b/wine-7.5-cross.patch deleted file mode 100644 index 4c588d7..0000000 --- a/wine-7.5-cross.patch +++ /dev/null @@ -1,21 +0,0 @@ ---- a/aclocal.m4 2022-03-25 15:26:21.000000000 -0500 -+++ b/aclocal.m4 2022-03-30 14:17:03.862124917 -0500 -@@ -229,6 +229,7 @@ - AC_CACHE_CHECK([for MinGW $1], ac_var, - [ac_wine_check_headers_saved_cc=$CC - ac_wine_check_headers_saved_exeext=$ac_exeext -+CFLAGS="$CROSSCFLAGS" - CC="$CROSSCC" - ac_exeext=".exe" - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[$4 -@@ -248,8 +249,10 @@ - [ac_wine_check_headers_saved_cc=$CC - ac_wine_check_headers_saved_exeext=$ac_exeext - ac_wine_check_headers_saved_libs=$LIBS -+CFLAGS="$CROSSCFLAGS" - CC="$CROSSCC" - ac_exeext=".exe" -+LDFLAGS="$CROSSLDFLAGS" - LIBS="-l$1 $5 $LIBS" - AC_LINK_IFELSE([AC_LANG_CALL([], [$2])],[AS_VAR_SET([ac_var],[yes])],[AS_VAR_SET([ac_var],[no])]) - CC=$ac_wine_check_headers_saved_cc diff --git a/wine.spec b/wine.spec index 175d8b9..2ff0429 100644 --- a/wine.spec +++ b/wine.spec @@ -1,12 +1,6 @@ # Compiling the preloader fails with hardening enabled %undefine _hardened_build -# Parallel build broken (fails with -# /usr/bin/x86_64-w64-mingw32-dlltool: dlls/winmm/libwinmm.{cross,delay}.a: No such file or directory -# /usr/bin/x86_64-w64-mingw32-dlltool: dlls/oleaut32/liboleaut32.{cross,delay}.a: No such file or directory -# /usr/bin/x86_64-w64-mingw32-dlltool: dlls/oleaut32/libwintrust.{cross,delay}.a: No such file or directory -%global _smp_mflags -j1 - %global no64bit 0 %global winegecko 2.47.3 %global winemono 7.4.0 @@ -46,7 +40,7 @@ %endif Name: wine -Version: 7.20 +Version: 7.22 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -92,8 +86,8 @@ Source501: wine-tahoma.conf # and provide a readme Source502: wine-README-tahoma -# fix configure macros for cross-compiling -Patch100: wine-7.5-cross.patch +# Autoconf 2.72 support - https://bugzilla.redhat.com/show_bug.cgi?id=2143724 +Patch100: wine-7.22-autoconf-2.72.patch Patch511: wine-cjk.patch @@ -183,7 +177,6 @@ BuildRequires: libva-devel # 0%%{?wine_staging} %if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 -BuildRequires: openal-soft-devel BuildRequires: icoutils %endif @@ -220,9 +213,6 @@ Requires: wine-cms(x86-32) = %{version}-%{release} Requires: wine-ldap(x86-32) = %{version}-%{release} Requires: wine-twain(x86-32) = %{version}-%{release} Requires: wine-pulseaudio(x86-32) = %{version}-%{release} -%if 0%{?fedora} >= 10 || 0%{?rhel} == 6 -Requires: wine-openal(x86-32) = %{version}-%{release} -%endif %if 0%{?fedora} Requires: wine-opencl(x86-32) = %{version}-%{release} %endif @@ -248,9 +238,6 @@ Requires: wine-cms(x86-64) = %{version}-%{release} Requires: wine-ldap(x86-64) = %{version}-%{release} Requires: wine-twain(x86-64) = %{version}-%{release} Requires: wine-pulseaudio(x86-64) = %{version}-%{release} -%if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 -Requires: wine-openal(x86-64) = %{version}-%{release} -%endif %if 0%{?fedora} Requires: wine-opencl(x86-64) = %{version}-%{release} %endif @@ -273,7 +260,6 @@ Requires: wine-cms = %{version}-%{release} Requires: wine-ldap = %{version}-%{release} Requires: wine-twain = %{version}-%{release} Requires: wine-pulseaudio = %{version}-%{release} -Requires: wine-openal = %{version}-%{release} %if 0%{?fedora} Requires: wine-opencl = %{version}-%{release} %endif @@ -288,7 +274,6 @@ Requires: wine-cms(aarch-64) = %{version}-%{release} Requires: wine-ldap(aarch-64) = %{version}-%{release} Requires: wine-twain(aarch-64) = %{version}-%{release} Requires: wine-pulseaudio(aarch-64) = %{version}-%{release} -Requires: wine-openal(aarch-64) = %{version}-%{release} Requires: wine-opencl(aarch-64) = %{version}-%{release} Requires: mingw64-wine-gecko = %winegecko Requires: mesa-dri-drivers(aarch-64) @@ -400,12 +385,9 @@ Provides: bundled(libjpeg) = 9e Provides: bundled(mpg123-libs) = 1.29.3 Provides: bundled(libtiff) = 4.3.0 -# removed as of 1.7.35 -Obsoletes: wine-wow < 1.7.35 -Provides: wine-wow = %{version}-%{release} -# library is now directly linked -Obsoletes: wine-capi < 6.21 -Provides: wine-capi = %{version}-%{release} +# removed as of 7.21 +Obsoletes: wine-openal < 4.21 +Provides: wine-openal = %{version}-%{release} %description core Wine core package includes the basic wine stuff needed by all other packages. @@ -701,15 +683,6 @@ Requires: wine-core = %{version}-%{release} %description alsa This package adds an alsa driver for wine. -%if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 -%package openal -Summary: Openal support for wine -Requires: wine-core = %{version}-%{release} - -%description openal -This package adds an openal driver for wine. -%endif - %if 0%{?fedora} %package opencl Summary: OpenCL support for wine @@ -721,7 +694,7 @@ This package adds the opencl driver for wine. %prep %setup -qn wine-%{version} -%patch100 -p1 -b.cross +%patch100 -p1 -b.autoconf %patch511 -p1 -b.cjk %if 0%{?wine_staging} @@ -745,13 +718,17 @@ patches/patchinstall.sh DESTDIR="`pwd`" --all # disable fortify as it breaks wine # http://bugs.winehq.org/show_bug.cgi?id=24606 # http://bugs.winehq.org/show_bug.cgi?id=25073 -export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno-error" - -%ifarch %{ix86} -# remove extra linker flag on 32-bit on native LDFLAGS -sed -i 's/CFLAGS="$CFLAGS -Wl,--disable-stdcall-fixup"//' configure -sed -i 's/CFLAGS="$CFLAGS $EXTRACROSSCFLAGS -nostartfiles -nodefaultlibs -Wl,--disable-stdcall-fixup"/CFLAGS="$CFLAGS $EXTRACROSSCFLAGS -nostartfiles -nodefaultlibs"/' configure -sed -i 's/CROSSLDFLAGS="$CROSSLDFLAGS -Wl,--disable-stdcall-fixup"/CROSSLDFLAGS="$CROSSLDFLAGS"/' configure +# Disable Red Hat specs for package notes (Fedora 38+) and annobin. +# MinGW GCC does not support these options. +%if 0%{?fedora_version} == 36 +export LDFLAGS="$(echo "%{build_ldflags}" | sed -e 's/-Wl,-z,relro//' -e 's/-Wl,--build-id=sha1//' -e 's/-Wl,-dT,\/home\/abuild\/rpmbuild\/BUILD\/wine.*//' -e 's/-specs=\/usr\/lib\/rpm\/redhat\/redhat-annobin-cc1//')" +%else +export LDFLAGS="$(echo "%{build_ldflags}" | sed -e 's/-Wl,-z,relro//' -e 's/-Wl,--build-id=sha1//' -e 's/-specs=\/usr\/lib\/rpm\/redhat\/redhat-package-notes//' -e 's/-specs=\/usr\/lib\/rpm\/redhat\/redhat-annobin-cc1//')" +%endif +%ifarch x86_64 +export CFLAGS="$(echo "%{optflags}" | sed -e 's/-O2//' -e 's/-Wp,-D_FORTIFY_SOURCE=2//' -e 's/-fcf-protection//' -e 's/-fstack-protector-strong//' -e 's/-fstack-clash-protection//' -e 's/-specs=\/usr\/lib\/rpm\/redhat\/redhat-annobin-cc1//') -O2" +%else +export CFLAGS="$(echo "%{optflags}" | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//' -e 's/-fcf-protection//' -e 's/-fstack-protector-strong//' -e 's/-fstack-clash-protection//' -e 's/-specs=\/usr\/lib\/rpm\/redhat\/redhat-annobin-cc1//')" %endif %ifarch %{arm} aarch64 @@ -1127,10 +1104,6 @@ fi %ldconfig_scriptlets alsa -%if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 -%ldconfig_scriptlets openal -%endif - %files # meta package @@ -1193,6 +1166,7 @@ fi %{_libdir}/wine/%{winepedir}/arp.exe %{_libdir}/wine/%{winepedir}/aspnet_regiis.exe %{_libdir}/wine/%{winepedir}/cacls.exe +%{_libdir}/wine/%{winepedir}/certutil.exe %{_libdir}/wine/%{winepedir}/conhost.exe %{_libdir}/wine/%{winepedir}/cscript.exe %{_libdir}/wine/%{winepedir}/dism.exe @@ -1232,6 +1206,7 @@ fi %{_libdir}/wine/%{winepedir}/secedit.exe %{_libdir}/wine/%{winepedir}/servicemodelreg.exe %{_libdir}/wine/%{winepedir}/services.exe +%{_libdir}/wine/%{winepedir}/setx.exe %{_libdir}/wine/%{winepedir}/start.exe %{_libdir}/wine/%{winepedir}/tasklist.exe %{_libdir}/wine/%{winepedir}/termsv.exe @@ -1582,10 +1557,10 @@ fi %{_libdir}/wine/%{winepedir}/ntdsapi.dll %{_libdir}/wine/%{winepedir}/ntprint.dll %if 0%{?wine_staging} -%{_libdir}/wine/%{winepedir}/nvcuda.dll -%{_libdir}/wine/%{winesodir}/nvcuda.dll.so -%{_libdir}/wine/%{winepedir}/nvcuvid.dll -%{_libdir}/wine/%{winesodir}/nvcuvid.dll.so +#%%{_libdir}/wine/%%{winepedir}/nvcuda.dll +#%%{_libdir}/wine/%%{winesodir}/nvcuda.dll.so +#%%{_libdir}/wine/%%{winepedir}/nvcuvid.dll +#%%{_libdir}/wine/%%{winesodir}/nvcuvid.dll.so %endif %{_libdir}/wine/%{winepedir}/objsel.dll %{_libdir}/wine/%{winesodir}/odbc32.so @@ -1735,11 +1710,13 @@ fi %{_libdir}/wine/%{winepedir}/win32k.sys %{_libdir}/wine/%{winepedir}/win32u.dll %{_libdir}/wine/%{winepedir}/windows.devices.enumeration.dll +%{_libdir}/wine/%{winepedir}/windows.gaming.ui.gamebar.dll %if 0%{?wine_staging} %{_libdir}/wine/%{winepedir}/windows.gaming.input.dll %{_libdir}/wine/%{winepedir}/windows.globalization.dll %{_libdir}/wine/%{winepedir}/windows.media.speech.dll %endif +%{_libdir}/wine/%{winepedir}/windows.media.dll %{_libdir}/wine/%{winepedir}/windows.media.devices.dll %{_libdir}/wine/%{winepedir}/windows.networking.connectivity %{_libdir}/wine/%{winepedir}/windows.networking.dll @@ -1761,6 +1738,7 @@ fi %{_libdir}/wine/%{winepedir}/wininet.dll %{_libdir}/wine/%{winepedir}/winmm.dll %{_libdir}/wine/%{winepedir}/winnls32.dll +%{_libdir}/wine/%{winepedir}/winprint.dll %{_libdir}/wine/%{winepedir}/winspool.drv %{_libdir}/wine/%{winesodir}/winspool.so %{_libdir}/wine/%{winepedir}/winsta.dll @@ -1815,8 +1793,8 @@ fi %{_libdir}/wine/%{winepedir}/d3d8thk.dll %ghost %{_libdir}/wine/%{winepedir}/d3d9.dll %{_libdir}/wine/%{winepedir}/wine-d3d9.dll +%{_libdir}/wine/%{winesodir}/opengl32.so %{_libdir}/wine/%{winepedir}/opengl32.dll -%{_libdir}/wine/%{winesodir}/opengl32.dll.so %{_libdir}/wine/%{winepedir}/wined3d.dll %{_libdir}/wine/%{winepedir}/dnsapi.dll %{_libdir}/wine/%{winesodir}/dnsapi.so @@ -1864,6 +1842,7 @@ fi %{_libdir}/wine/%{winepedir}/xinput1_3.dll %{_libdir}/wine/%{winepedir}/xinput1_4.dll %{_libdir}/wine/%{winepedir}/xinput9_1_0.dll +%{_libdir}/wine/%{winepedir}/xinputuap.dll %{_libdir}/wine/%{winepedir}/xmllite.dll %{_libdir}/wine/%{winepedir}/xolehlp.dll %{_libdir}/wine/%{winepedir}/xpsprint.dll @@ -1871,16 +1850,16 @@ fi %if 0%{?wine_staging} %ifarch x86_64 aarch64 -%{_libdir}/wine/%{winepedir}/nvapi64.dll -%{_libdir}/wine/%{winepedir}/nvencodeapi64.dll -%{_libdir}/wine/%{winesodir}/nvencodeapi64.dll.so +#%%{_libdir}/wine/%%{winepedir}/nvapi64.dll +#%%{_libdir}/wine/%%{winepedir}/nvencodeapi64.dll +#%%{_libdir}/wine/%%{winesodir}/nvencodeapi64.dll.so %else -%{_libdir}/wine/%{winepedir}/nvapi.dll +#%%{_libdir}/wine/%%{winepedir}/nvapi.dll %ifarch %{arm} -%{_libdir}/wine/%{winesodir}/nvapi.dll.so +#%%{_libdir}/wine/%%{winesodir}/nvapi.dll.so %endif -%{_libdir}/wine/%{winepedir}/nvencodeapi.dll -%{_libdir}/wine/%{winesodir}/nvencodeapi.dll.so +#%%{_libdir}/wine/%%{winepedir}/nvencodeapi.dll +#%%{_libdir}/wine/%%{winesodir}/nvencodeapi.dll.so %endif %endif @@ -2353,6 +2332,7 @@ fi %{_libdir}/wine/%{winesodir}/olesvr32.dll.so %{_libdir}/wine/%{winesodir}/olethk32.dll.so %{_libdir}/wine/%{winesodir}/opcservices.dll.so +%{_libdir}/wine/%{winesodir}/opengl32.dll.so %{_libdir}/wine/%{winesodir}/packager.dll.so %{_libdir}/wine/%{winesodir}/pdh.dll.so %{_libdir}/wine/%{winesodir}/photometadatahandler.dll.so @@ -2482,11 +2462,13 @@ fi %{_libdir}/wine/%{winesodir}/win32k.sys.so %{_libdir}/wine/%{winesodir}/win32u.dll.so %{_libdir}/wine/%{winesodir}/windows.devices.enumeration.dll.so +%{_libdir}/wine/%{winesodir}/windows.gaming.ui.gamebar.dll.so %if 0%{?wine_staging} %{_libdir}/wine/%{winesodir}/windows.gaming.input.dll.so %{_libdir}/wine/%{winesodir}/windows.globalization.dll.so %{_libdir}/wine/%{winesodir}/windows.media.speech.dll.so %endif +%{_libdir}/wine/%{winesodir}/windows.media.dll.so %{_libdir}/wine/%{winesodir}/windows.media.devices.dll.so %{_libdir}/wine/%{winesodir}/windows.networking.connectivity.so %{_libdir}/wine/%{winesodir}/windows.networking.dll.so @@ -2505,6 +2487,7 @@ fi %{_libdir}/wine/%{winesodir}/wininet.dll.so %{_libdir}/wine/%{winesodir}/winmm.dll.so %{_libdir}/wine/%{winesodir}/winnls32.dll.so +%{_libdir}/wine/%{winesodir}/winprint.dll.so %{_libdir}/wine/%{winesodir}/winspool.drv.so %{_libdir}/wine/%{winesodir}/winsta.dll.so %{_libdir}/wine/%{winesodir}/wmasf.dll.so @@ -2579,6 +2562,7 @@ fi %{_libdir}/wine/%{winesodir}/xinput1_3.dll.so %{_libdir}/wine/%{winesodir}/xinput1_4.dll.so %{_libdir}/wine/%{winesodir}/xinput9_1_0.dll.so +%{_libdir}/wine/%{winesodir}/xinputuap.dll.so %{_libdir}/wine/%{winesodir}/xmllite.dll.so %{_libdir}/wine/%{winesodir}/xolehlp.dll.so %{_libdir}/wine/%{winesodir}/xpsprint.dll.so @@ -2741,7 +2725,6 @@ fi # ldap subpackage %files ldap -%{_libdir}/wine/%{winesodir}/wldap32.so %{_libdir}/wine/%{winepedir}/wldap32.dll %ifarch %{arm} %{_libdir}/wine/%{winesodir}/wldap32.dll.so @@ -2811,12 +2794,6 @@ fi %{_libdir}/wine/%{winesodir}/winealsa.drv.so %endif -%if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 -%files openal -%{_libdir}/wine/%{winepedir}/openal32.dll -%{_libdir}/wine/%{winesodir}/openal32.dll.so -%endif - %if 0%{?fedora} %files opencl %{_libdir}/wine/%{winepedir}/opencl.dll @@ -2827,6 +2804,10 @@ fi %endif %changelog +* Sun Nov 27 2022 Michael Cronenworth - 7.22-1 +- version update +- drop openal package + * Mon Oct 31 2022 Michael Cronenworth - 7.20-1 - version update @@ -2972,197 +2953,3 @@ fi * Tue Dec 08 2020 Michael Cronenworth 6.0-0.1rc1 - version update -* Sat Nov 21 2020 Michael Cronenworth 5.22-1 -- version update - -* Tue Nov 10 2020 Michael Cronenworth 5.21-1 -- version update - -* Sat Oct 24 2020 Michael Cronenworth 5.20-1 -- version update - -* Sat Oct 10 2020 Michael Cronenworth 5.19-1 -- version update - -* Mon Sep 28 2020 Michael Cronenworth 5.18-2 -- Enable vkd3d shader support - -* Mon Sep 28 2020 Michael Cronenworth 5.18-1 -- version update - -* Tue Sep 15 2020 Michael Cronenworth 5.17-1 -- version update - -* Tue Sep 01 2020 Michael Cronenworth 5.16-1 -- version update - -* Sun Aug 16 2020 Michael Cronenworth 5.15-1 -- version update - -* Mon Aug 10 2020 Frantisek Zatloukal - 5.14-2 -- Recommend wine-dxvk as part of https://fedoraproject.org/wiki/Changes/DXVKwined3d - -* Mon Aug 03 2020 Michael Cronenworth 5.14-1 -- version update - -* Wed Jul 29 2020 Fedora Release Engineering - 5.13-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Mon Jul 20 2020 Michael Cronenworth 5.13-1 -- version update - -* Tue Jul 14 2020 Michael Cronenworth 5.12-1 -- version update - -* Wed Jul 01 2020 Jeff Law 5.10-2 -- Disable LTO - -* Sun Jun 07 2020 Michael Cronenworth 5.10-1 -- version update - -* Tue Jun 02 2020 Michael Cronenworth 5.9-2 -- drop typelibs from 32-bit devel package -- add patch for wine bug 49208 - -* Fri May 29 2020 Michael Cronenworth 5.9-1 -- version update - -* Sat May 02 2020 Michael Cronenworth 5.7-2 -- fix crash in wineserver affecting many apps and games (RHBZ#1829956) - -* Sun Apr 26 2020 Michael Cronenworth 5.7-1 -- version update - -* Sat Apr 11 2020 Michael Cronenworth 5.6-1 -- version update - -* Sun Mar 29 2020 Michael Cronenworth 5.5-1 -- version update - -* Mon Mar 16 2020 Michael Cronenworth 5.4-1 -- version update - -* Mon Mar 02 2020 Michael Cronenworth 5.3-1 -- version update - -* Tue Feb 18 2020 Michael Cronenworth 5.2-1 -- version update - -* Mon Feb 03 2020 Michael Cronenworth 5.1-1 -- version update - -* Fri Jan 31 2020 Fedora Release Engineering - 5.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Wed Jan 22 2020 Michael Cronenworth 5.0-1 -- version update - -* Mon Jan 13 2020 Michael Cronenworth 5.0-0.rc5.0 -- version update - -* Mon Jan 06 2020 Michael Cronenworth 5.0-0.rc4.0 -- version update - -* Mon Dec 30 2019 Michael Cronenworth 5.0-0.rc3.0 -- version update - -* Sat Nov 30 2019 Michael Cronenworth 4.21-1 -- version update - -* Sat Nov 16 2019 Michael Cronenworth 4.20-1 -- version and wine-mono update - -* Sat Nov 02 2019 Michael Cronenworth 4.19-1 -- version update - -* Mon Oct 21 2019 Michael Cronenworth 4.18-1 -- version update - -* Sun Sep 29 2019 Michael Cronenworth 4.17-2 -- sync wine-mono version - -* Sat Sep 28 2019 Michael Cronenworth 4.17-1 -- version update - -* Thu Sep 26 2019 Michael Cronenworth 4.16-2 -- Drop isdn4k-utils BR (RHBZ#1756118) - -* Sat Sep 14 2019 Michael Cronenworth 4.16-1 -- version update - -* Sun Sep 01 2019 Michael Cronenworth 4.15-1 -- version update - -* Mon Aug 19 2019 Michael Cronenworth 4.14-2 -- sync wine-mono version - -* Mon Aug 19 2019 Michael Cronenworth 4.14-1 -- version update - -* Sun Aug 11 2019 Michael Cronenworth 4.13-5 -- remove correct dlls on upgrade - -* Thu Aug 08 2019 Michael Cronenworth 4.13-4 -- support upgrades in new alternatives - -* Wed Aug 07 2019 Michael Cronenworth 4.13-3 -- fix slave alternatives for d3d dlls - -* Mon Aug 05 2019 Michael Cronenworth 4.13-2 -- fix alternatives for d3d dlls - -* Sun Aug 04 2019 Michael Cronenworth 4.13-1 -- version update -- add alternatives for d3d dlls to play with dxvk - -* Sat Jul 27 2019 Fedora Release Engineering - 4.12.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Wed Jul 10 2019 Michael Cronenworth 4.12.1-1 -- version update - -* Sun Jun 23 2019 Michael Cronenworth 4.11-1 -- version update - -* Thu Jun 13 2019 Michael Cronenworth 4.10-1 -- version update -- compile with MinGW support - -* Sun May 26 2019 Michael Cronenworth 4.9-1 -- version update - -* Wed May 15 2019 Michael Cronenworth 4.8-2 -- Fix default wine svg (RHBZ#1598994) - -* Tue May 14 2019 Michael Cronenworth 4.8-1 -- version update - -* Sun Apr 28 2019 Michael Cronenworth 4.7-1 -- version update - -* Sun Apr 14 2019 Michael Cronenworth 4.6-1 -- version update - -* Tue Apr 02 2019 Michael Cronenworth 4.5-1 -- version update - -* Tue Mar 19 2019 Michael Cronenworth 4.4-1 -- version update - -* Sun Mar 03 2019 Michael Cronenworth 4.3-1 -- version update - -* Tue Feb 19 2019 Kalev Lember - 4.2-3 -- Rebuilt against fixed atk (#1626575) - -* Tue Feb 19 2019 Björn Esser - 4.2-2 -- Fix version requirement on wine-mono - -* Sun Feb 17 2019 Michael Cronenworth 4.2-1 -- version update - -* Sun Feb 03 2019 Fedora Release Engineering - 4.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Wed Jan 23 2019 Michael Cronenworth 4.0-1 -- version update From c8c81d2398af939fa2cd4d57e8e4d6651abe445f Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 27 Nov 2022 22:37:06 -0600 Subject: [PATCH 686/715] Fixes for ARM64 build --- wine.spec | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/wine.spec b/wine.spec index 2ff0429..ad5bba7 100644 --- a/wine.spec +++ b/wine.spec @@ -98,8 +98,13 @@ Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar. %endif %if !%{?no64bit} +%if 0%{fedora} > 36 ExclusiveArch: %{ix86} x86_64 aarch64 %else +# Fedora 36 Clang doesn't build PE binaries on ARM at the moment +ExclusiveArch: %{ix86} x86_64 +%endif +%else ExclusiveArch: %{ix86} %endif @@ -783,6 +788,9 @@ unset PKG_CONFIG_PATH # setup for alternatives usage %ifarch x86_64 aarch64 +%ifarch aarch64 +mv %{buildroot}%{_bindir}/wine %{buildroot}%{_bindir}/wine64 +%endif mv %{buildroot}%{_bindir}/wineserver %{buildroot}%{_bindir}/wineserver64 %endif %ifarch %{ix86} %{arm} From b7a1f713fefa1a73f9c5a01bb5fbc18f662fd6f6 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 27 Nov 2022 22:56:41 -0600 Subject: [PATCH 687/715] One more ARM64 fix --- wine.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/wine.spec b/wine.spec index ad5bba7..cb3e16a 100644 --- a/wine.spec +++ b/wine.spec @@ -790,6 +790,7 @@ unset PKG_CONFIG_PATH %ifarch x86_64 aarch64 %ifarch aarch64 mv %{buildroot}%{_bindir}/wine %{buildroot}%{_bindir}/wine64 +mv %{buildroot}%{_bindir}/wine-preloader %{buildroot}%{_bindir}/wine64-preloader %endif mv %{buildroot}%{_bindir}/wineserver %{buildroot}%{_bindir}/wineserver64 %endif From 9858114030c0d16ef47f8bae7dc68723c919bc84 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 28 Nov 2022 09:21:54 -0600 Subject: [PATCH 688/715] Fix openal Obsoletes typo --- wine.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/wine.spec b/wine.spec index cb3e16a..409aec0 100644 --- a/wine.spec +++ b/wine.spec @@ -41,7 +41,7 @@ Name: wine Version: 7.22 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -391,7 +391,7 @@ Provides: bundled(mpg123-libs) = 1.29.3 Provides: bundled(libtiff) = 4.3.0 # removed as of 7.21 -Obsoletes: wine-openal < 4.21 +Obsoletes: wine-openal < 7.21 Provides: wine-openal = %{version}-%{release} %description core @@ -2813,6 +2813,9 @@ fi %endif %changelog +* Mon Nov 28 2022 Michael Cronenworth - 7.22-2 +- fix typo in openal obsoletes + * Sun Nov 27 2022 Michael Cronenworth - 7.22-1 - version update - drop openal package From 0a5238b4bd4df8e2d96a0b253ea913b191216f03 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 17 Jan 2023 16:29:57 -0600 Subject: [PATCH 689/715] Update to 8.0-rc4 --- sources | 6 +++--- wine.spec | 26 ++++++++++++++++++-------- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/sources b/sources index 583f020..c15af4b 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-7.22.tar.xz) = bf58a5b98bef5b291aff1eca3f94c28da95990e4c8da9af5e9e28b9480d57163d088b501b0c1bca5b568bf586dd9933cdc1ea1f371b78d95c94e2d25d0a65efc -SHA512 (wine-7.22.tar.xz.sign) = df8197045cd1a0b232f97dd5003b8dd141b81e8a535f4b25656c4570ce2a7cb87ab2a89ea476c48ba877a5dee5952b8d29f30118ef91dd17be9329455838b25d -SHA512 (wine-staging-7.22.tar.gz) = 5fdac19ec290c67767fac71abe07d9350ec431919c67a0f2d2df18ced20f1d3dddb921b3d5586d03add187c6281e1a691cc220e8d2d5ad4eeb94015721479d65 +SHA512 (wine-8.0-rc4.tar.xz) = 9a88dd5a2759b9d778ae8a91a4d592c029578812dfa3535e5ffc56f44e804c74ea48e96b749643d82cebfedeab7ff33019cf9d981fd3b7256a92ecc41df8f757 +SHA512 (wine-8.0-rc4.tar.xz.sign) = b7a70126e4361cbfde752eeb99536b7fe789f216d276690f45f42514715899516eb2e11685bdfb3ee49c508f0d1b37b5a4fa7aefc5081045eccc3001984d0c13 +SHA512 (wine-staging-8.0-rc4.tar.gz) = b69f52580a86604b766306efc3d8941599da4c9dd7c5e4c4e9a6b870256e3889604c984fc91dac60286fc377c0ff292639945d4f13d7975dc54f5c786b55ab84 diff --git a/wine.spec b/wine.spec index 409aec0..ec2d5ce 100644 --- a/wine.spec +++ b/wine.spec @@ -40,14 +40,14 @@ %endif Name: wine -Version: 7.22 -Release: 2%{?dist} +Version: 8.0 +Release: 0.rc4.1%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ URL: https://www.winehq.org/ -Source0: https://dl.winehq.org/wine/source/7.x/wine-%{version}.tar.xz -Source10: https://dl.winehq.org/wine/source/7.x/wine-%{version}.tar.xz.sign +Source0: https://dl.winehq.org/wine/source/8.0/wine-%{version}-rc4.tar.xz +Source10: https://dl.winehq.org/wine/source/8.0/wine-%{version}-rc4.tar.xz.sign Source1: wine.init Source2: wine.systemd @@ -94,7 +94,7 @@ Patch511: wine-cjk.patch %if 0%{?wine_staging} # wine-staging patches # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar.gz#/wine-staging-%{version}.tar.gz +Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}-rc4.tar.gz#/wine-staging-%{version}-rc4.tar.gz %endif %if !%{?no64bit} @@ -698,7 +698,7 @@ This package adds the opencl driver for wine. %endif %prep -%setup -qn wine-%{version} +%setup -qn wine-%{version}-rc4 %patch100 -p1 -b.autoconf %patch511 -p1 -b.cjk @@ -723,6 +723,7 @@ patches/patchinstall.sh DESTDIR="`pwd`" --all # disable fortify as it breaks wine # http://bugs.winehq.org/show_bug.cgi?id=24606 # http://bugs.winehq.org/show_bug.cgi?id=25073 +%undefine _fortify_level # Disable Red Hat specs for package notes (Fedora 38+) and annobin. # MinGW GCC does not support these options. %if 0%{?fedora_version} == 36 @@ -731,12 +732,15 @@ export LDFLAGS="$(echo "%{build_ldflags}" | sed -e 's/-Wl,-z,relro//' -e 's/-Wl, export LDFLAGS="$(echo "%{build_ldflags}" | sed -e 's/-Wl,-z,relro//' -e 's/-Wl,--build-id=sha1//' -e 's/-specs=\/usr\/lib\/rpm\/redhat\/redhat-package-notes//' -e 's/-specs=\/usr\/lib\/rpm\/redhat\/redhat-annobin-cc1//')" %endif %ifarch x86_64 -export CFLAGS="$(echo "%{optflags}" | sed -e 's/-O2//' -e 's/-Wp,-D_FORTIFY_SOURCE=2//' -e 's/-fcf-protection//' -e 's/-fstack-protector-strong//' -e 's/-fstack-clash-protection//' -e 's/-specs=\/usr\/lib\/rpm\/redhat\/redhat-annobin-cc1//') -O2" +export CFLAGS="$(echo "%{optflags}" | sed -e 's/-O2//' -e 's/-fcf-protection//' -e 's/-fstack-protector-strong//' -e 's/-fstack-clash-protection//' -e 's/-specs=\/usr\/lib\/rpm\/redhat\/redhat-annobin-cc1//') -O2" %else -export CFLAGS="$(echo "%{optflags}" | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//' -e 's/-fcf-protection//' -e 's/-fstack-protector-strong//' -e 's/-fstack-clash-protection//' -e 's/-specs=\/usr\/lib\/rpm\/redhat\/redhat-annobin-cc1//')" +export CFLAGS="$(echo "%{optflags}" | sed -e 's/-fcf-protection//' -e 's/-fstack-protector-strong//' -e 's/-fstack-clash-protection//' -e 's/-specs=\/usr\/lib\/rpm\/redhat\/redhat-annobin-cc1//')" %endif %ifarch %{arm} aarch64 +# Wine enabled -Wl,-WX that turns linker warnings into errors +# Fedora passes '--as-needed' for all binaries and this is a warning from the linker, now an error, so disable flag for now +sed -i 's/-Wl,-WX//g' configure %if 0%{?fedora} >= 33 %global toolchain clang %else @@ -1435,6 +1439,7 @@ fi %endif %{_libdir}/wine/%{winepedir}/light.msstyles %{_libdir}/wine/%{winepedir}/loadperf.dll +%{_libdir}/wine/%{winesodir}/localspl.so %{_libdir}/wine/%{winepedir}/localspl.dll %{_libdir}/wine/%{winepedir}/localui.dll %{_libdir}/wine/%{winepedir}/lodctr.exe @@ -1770,6 +1775,7 @@ fi %{_libdir}/wine/%{winepedir}/wlanui.dll %{_libdir}/wine/%{winepedir}/wmphoto.dll %{_libdir}/wine/%{winepedir}/wnaspi32.dll +%{_libdir}/wine/%{winepedir}/wofutil.dll %ifarch x86_64 aarch64 %{_libdir}/wine/%{winepedir}/wow64.dll %{_libdir}/wine/%{winepedir}/wow64win.dll @@ -2514,6 +2520,7 @@ fi %{_libdir}/wine/%{winesodir}/wlanui.dll.so %{_libdir}/wine/%{winesodir}/wmphoto.dll.so %{_libdir}/wine/%{winesodir}/wnaspi32.dll.so +%{_libdir}/wine/%{winesodir}/wofutil.dll.so %{_libdir}/wine/%{winesodir}/wpc.dll.so %{_libdir}/wine/%{winesodir}/wpcap.dll.so %{_libdir}/wine/%{winesodir}/ws2_32.dll.so @@ -2813,6 +2820,9 @@ fi %endif %changelog +* Mon Jan 16 2023 Michael Cronenworth - 8.0-0.rc4.1 +- version update + * Mon Nov 28 2022 Michael Cronenworth - 7.22-2 - fix typo in openal obsoletes From c40bb1925a338b8a4329afdc4e106b05bb07f74a Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 21 Jan 2023 06:50:42 +0000 Subject: [PATCH 690/715] Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- wine.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index ec2d5ce..7416ab7 100644 --- a/wine.spec +++ b/wine.spec @@ -41,7 +41,7 @@ Name: wine Version: 8.0 -Release: 0.rc4.1%{?dist} +Release: 0.rc4.1%{?dist}.1 Summary: A compatibility layer for windows applications License: LGPLv2+ @@ -2820,6 +2820,9 @@ fi %endif %changelog +* Sat Jan 21 2023 Fedora Release Engineering - 8.0-0.rc4.1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + * Mon Jan 16 2023 Michael Cronenworth - 8.0-0.rc4.1 - version update From c61376690af4945d4ff75281dacd62fe28da0189 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 24 Jan 2023 22:48:54 -0600 Subject: [PATCH 691/715] Update to 8.0 --- sources | 6 +++--- wine.spec | 13 ++++++++----- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/sources b/sources index c15af4b..a4cf9a7 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-8.0-rc4.tar.xz) = 9a88dd5a2759b9d778ae8a91a4d592c029578812dfa3535e5ffc56f44e804c74ea48e96b749643d82cebfedeab7ff33019cf9d981fd3b7256a92ecc41df8f757 -SHA512 (wine-8.0-rc4.tar.xz.sign) = b7a70126e4361cbfde752eeb99536b7fe789f216d276690f45f42514715899516eb2e11685bdfb3ee49c508f0d1b37b5a4fa7aefc5081045eccc3001984d0c13 -SHA512 (wine-staging-8.0-rc4.tar.gz) = b69f52580a86604b766306efc3d8941599da4c9dd7c5e4c4e9a6b870256e3889604c984fc91dac60286fc377c0ff292639945d4f13d7975dc54f5c786b55ab84 +SHA512 (wine-8.0.tar.xz) = 53ba813b260a65a271ec575822725b97631f60038fb026dcc0fe66862711eedcc29a8feb29ff54ae4f64458f85c290d8f3838eff5e4c77a5420a7d2b951fef77 +SHA512 (wine-8.0.tar.xz.sign) = b13d5c00014cd87c149b0aea881e06e55a7a9a48e9b3ba8c9bf92e135a05136f570adc0201e521df1908c9c5b5f74f11459a2b2585ed074aea700f489ce86cd3 +SHA512 (wine-staging-8.0.tar.gz) = 76a729d7ced1ff634ddb455ddfaa66ca103b652f43cd152b57ada7431bb5fbb74f5e92bf2f4f329b6df6f5908130afad84e609cbce6df645d6cf8131e9b949f9 diff --git a/wine.spec b/wine.spec index 7416ab7..2b09669 100644 --- a/wine.spec +++ b/wine.spec @@ -41,13 +41,13 @@ Name: wine Version: 8.0 -Release: 0.rc4.1%{?dist}.1 +Release: 1%{?dist} Summary: A compatibility layer for windows applications License: LGPLv2+ URL: https://www.winehq.org/ -Source0: https://dl.winehq.org/wine/source/8.0/wine-%{version}-rc4.tar.xz -Source10: https://dl.winehq.org/wine/source/8.0/wine-%{version}-rc4.tar.xz.sign +Source0: https://dl.winehq.org/wine/source/8.0/wine-%{version}.tar.xz +Source10: https://dl.winehq.org/wine/source/8.0/wine-%{version}.tar.xz.sign Source1: wine.init Source2: wine.systemd @@ -94,7 +94,7 @@ Patch511: wine-cjk.patch %if 0%{?wine_staging} # wine-staging patches # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}-rc4.tar.gz#/wine-staging-%{version}-rc4.tar.gz +Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar.gz#/wine-staging-%{version}.tar.gz %endif %if !%{?no64bit} @@ -698,7 +698,7 @@ This package adds the opencl driver for wine. %endif %prep -%setup -qn wine-%{version}-rc4 +%setup -qn wine-%{version} %patch100 -p1 -b.autoconf %patch511 -p1 -b.cjk @@ -2820,6 +2820,9 @@ fi %endif %changelog +* Tue Jan 24 2023 Michael Cronenworth - 8.0-1 +- version update + * Sat Jan 21 2023 Fedora Release Engineering - 8.0-0.rc4.1.1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild From bb023fac43dab4beb5c40fe7f6fa24449685a79f Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 7 Feb 2023 00:28:47 -0600 Subject: [PATCH 692/715] Update to 8.1 --- sources | 6 +++--- wine.spec | 13 +++++++++++-- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/sources b/sources index a4cf9a7..98d139d 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-8.0.tar.xz) = 53ba813b260a65a271ec575822725b97631f60038fb026dcc0fe66862711eedcc29a8feb29ff54ae4f64458f85c290d8f3838eff5e4c77a5420a7d2b951fef77 -SHA512 (wine-8.0.tar.xz.sign) = b13d5c00014cd87c149b0aea881e06e55a7a9a48e9b3ba8c9bf92e135a05136f570adc0201e521df1908c9c5b5f74f11459a2b2585ed074aea700f489ce86cd3 -SHA512 (wine-staging-8.0.tar.gz) = 76a729d7ced1ff634ddb455ddfaa66ca103b652f43cd152b57ada7431bb5fbb74f5e92bf2f4f329b6df6f5908130afad84e609cbce6df645d6cf8131e9b949f9 +SHA512 (wine-8.1.tar.xz) = 3f0477c26f293cf928acbdae2ffb98740ac227a605ec90f3ab3d35c0dbca2037529ff4e4de0b69cc975579ad14dc2fb8b52e050cfd99cffcc627418cf8cb4346 +SHA512 (wine-8.1.tar.xz.sign) = 2ef66d606e1ad71f4fd83ea1ac4ffa88fc7cc816e49c5440b46c7748b1418adc9d872c432be7f76e88dc4215a3673f3556dbadbe85778d67dc6228d410477ea8 +SHA512 (wine-staging-8.1.tar.gz) = c5c3111b27de7d3bf1d7a3a53f33e8d78c5006f22ff0361f77392455fa69b0afd7c58406515ace04b2df7e1dfb20e3adf9d874e5e8be09c9032c1c1aa31fe696 diff --git a/wine.spec b/wine.spec index 2b09669..dc614c4 100644 --- a/wine.spec +++ b/wine.spec @@ -40,11 +40,11 @@ %endif Name: wine -Version: 8.0 +Version: 8.1 Release: 1%{?dist} Summary: A compatibility layer for windows applications -License: LGPLv2+ +License: LGPL-2.1-or-later URL: https://www.winehq.org/ Source0: https://dl.winehq.org/wine/source/8.0/wine-%{version}.tar.xz Source10: https://dl.winehq.org/wine/source/8.0/wine-%{version}.tar.xz.sign @@ -1475,6 +1475,7 @@ fi %{_libdir}/wine/%{winepedir}/msado15.dll %{_libdir}/wine/%{winepedir}/msadp32.acm %{_libdir}/wine/%{winepedir}/msasn1.dll +%{_libdir}/wine/%{winepedir}/msauddecmft.dll %{_libdir}/wine/%{winepedir}/mscat32.dll %{_libdir}/wine/%{winepedir}/mscoree.dll %{_libdir}/wine/%{winepedir}/mscorwks.dll @@ -1500,6 +1501,7 @@ fi %{_libdir}/wine/%{winepedir}/msisip.dll %{_libdir}/wine/%{winepedir}/msisys.ocx %{_libdir}/wine/%{winepedir}/msls31.dll +%{_libdir}/wine/%{winepedir}/msmpeg2vdec.dll %{_libdir}/wine/%{winepedir}/msnet32.dll %{_libdir}/wine/%{winepedir}/mspatcha.dll %{_libdir}/wine/%{winepedir}/msports.dll @@ -1734,6 +1736,7 @@ fi %{_libdir}/wine/%{winepedir}/windows.media.devices.dll %{_libdir}/wine/%{winepedir}/windows.networking.connectivity %{_libdir}/wine/%{winepedir}/windows.networking.dll +%{_libdir}/wine/%{winepedir}/windows.system.profile.systemmanufacturers.dll %{_libdir}/wine/%{winepedir}/windowscodecs.dll %{_libdir}/wine/%{winepedir}/windowscodecsext.dll %{_libdir}/wine/%{winepedir}/winebus.sys @@ -2242,6 +2245,7 @@ fi %{_libdir}/wine/%{winesodir}/msado15.dll.so %{_libdir}/wine/%{winesodir}/msadp32.acm.so %{_libdir}/wine/%{winesodir}/msasn1.dll.so +%{_libdir}/wine/%{winesodir}/msauddecmft.dll.so %{_libdir}/wine/%{winesodir}/mscat32.dll.so %{_libdir}/wine/%{winesodir}/mscoree.dll.so %{_libdir}/wine/%{winesodir}/mscorwks.dll.so @@ -2265,6 +2269,7 @@ fi %{_libdir}/wine/%{winesodir}/msisip.dll.so %{_libdir}/wine/%{winesodir}/msisys.ocx.so %{_libdir}/wine/%{winesodir}/msls31.dll.so +%{_libdir}/wine/%{winesodir}/msmpeg2vdec.dll.so %{_libdir}/wine/%{winesodir}/msnet32.dll.so %{_libdir}/wine/%{winesodir}/mspatcha.dll.so %{_libdir}/wine/%{winesodir}/msports.dll.so @@ -2487,6 +2492,7 @@ fi %{_libdir}/wine/%{winesodir}/windows.media.devices.dll.so %{_libdir}/wine/%{winesodir}/windows.networking.connectivity.so %{_libdir}/wine/%{winesodir}/windows.networking.dll.so +%{_libdir}/wine/%{winesodir}/windows.system.profile.systemmanufacturers.dll.so %{_libdir}/wine/%{winesodir}/windowscodecs.dll.so %{_libdir}/wine/%{winesodir}/windowscodecsext.dll.so %{_libdir}/wine/%{winesodir}/winebus.sys.so @@ -2820,6 +2826,9 @@ fi %endif %changelog +* Mon Feb 06 2023 Michael Cronenworth - 8.1-1 +- version update + * Tue Jan 24 2023 Michael Cronenworth - 8.0-1 - version update From b45c7c99cb0e53e7458022acea4255eca855c56b Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 20 Feb 2023 20:37:54 -0600 Subject: [PATCH 693/715] Update to 8.2 and require mingw-libtiff --- wine.spec | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/wine.spec b/wine.spec index dc614c4..4354172 100644 --- a/wine.spec +++ b/wine.spec @@ -40,7 +40,7 @@ %endif Name: wine -Version: 8.1 +Version: 8.2 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -161,7 +161,6 @@ BuildRequires: pulseaudio-libs-devel BuildRequires: gsm-devel BuildRequires: libv4l-devel BuildRequires: fontpackages-devel -BuildRequires: libtiff-devel BuildRequires: gettext-devel BuildRequires: chrpath BuildRequires: gstreamer1-devel @@ -194,6 +193,8 @@ BuildRequires: mingw32-lcms2 BuildRequires: mingw64-lcms2 BuildRequires: mingw32-libpng BuildRequires: mingw64-libpng +BuildRequires: mingw32-libtiff +BuildRequires: mingw64-libtiff BuildRequires: mingw32-libxml2 BuildRequires: mingw64-libxml2 BuildRequires: mingw32-libxslt @@ -388,7 +389,6 @@ Requires: libva Provides: bundled(libjpeg) = 9e Provides: bundled(mpg123-libs) = 1.29.3 -Provides: bundled(libtiff) = 4.3.0 # removed as of 7.21 Obsoletes: wine-openal < 7.21 @@ -706,7 +706,7 @@ This package adds the opencl driver for wine. # setup and apply wine-staging patches gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 -patches/patchinstall.sh DESTDIR="`pwd`" --all +staging/patchinstall.py DESTDIR="`pwd`" --all %endif # 0%%{?wine_staging} @@ -1310,6 +1310,7 @@ fi %ghost %{_libdir}/wine/%{winepedir}/d3d11.dll %{_libdir}/wine/%{winepedir}/wine-d3d11.dll %{_libdir}/wine/%{winepedir}/d3d12.dll +%{_libdir}/wine/%{winepedir}/d3d12core.dll %{_libdir}/wine/%{winepedir}/d3dcompiler_*.dll %{_libdir}/wine/%{winepedir}/d3dim.dll %{_libdir}/wine/%{winepedir}/d3dim700.dll @@ -1421,6 +1422,7 @@ fi %{_libdir}/wine/%{winepedir}/iphlpapi.dll %{_libdir}/wine/%{winepedir}/iprop.dll %{_libdir}/wine/%{winepedir}/irprops.cpl +%{_libdir}/wine/%{winepedir}/ir50_32.dll %{_libdir}/wine/%{winepedir}/itircl.dll %{_libdir}/wine/%{winepedir}/itss.dll %{_libdir}/wine/%{winepedir}/joy.cpl @@ -1635,6 +1637,7 @@ fi %{_libdir}/wine/%{winepedir}/sas.dll %{_libdir}/wine/%{winepedir}/sc.exe %{_libdir}/wine/%{winepedir}/scarddlg.dll +%{_libdir}/wine/%{winepedir}/scardsvr.dll %{_libdir}/wine/%{winepedir}/sccbase.dll %{_libdir}/wine/%{winepedir}/schannel.dll %{_libdir}/wine/%{winepedir}/scrobj.dll @@ -1737,6 +1740,7 @@ fi %{_libdir}/wine/%{winepedir}/windows.networking.connectivity %{_libdir}/wine/%{winepedir}/windows.networking.dll %{_libdir}/wine/%{winepedir}/windows.system.profile.systemmanufacturers.dll +%{_libdir}/wine/%{winepedir}/windows.ui.dll %{_libdir}/wine/%{winepedir}/windowscodecs.dll %{_libdir}/wine/%{winepedir}/windowscodecsext.dll %{_libdir}/wine/%{winepedir}/winebus.sys @@ -2091,6 +2095,7 @@ fi %{_libdir}/wine/%{winesodir}/d3d10core.dll.so %{_libdir}/wine/%{winesodir}/d3d11.dll.so %{_libdir}/wine/%{winesodir}/d3d12.dll.so +%{_libdir}/wine/%{winesodir}/d3d12core.dll.so %{_libdir}/wine/%{winesodir}/d3dcompiler_*.dll.so %{_libdir}/wine/%{winesodir}/d3dim.dll.so %{_libdir}/wine/%{winesodir}/d3dim700.dll.so @@ -2199,6 +2204,7 @@ fi %{_libdir}/wine/%{winesodir}/iphlpapi.dll.so %{_libdir}/wine/%{winesodir}/iprop.dll.so %{_libdir}/wine/%{winesodir}/irprops.cpl.so +%{_libdir}/wine/%{winesodir}/ir50_32.dll.so %{_libdir}/wine/%{winesodir}/itircl.dll.so %{_libdir}/wine/%{winesodir}/itss.dll.so %{_libdir}/wine/%{winesodir}/joy.cpl.so @@ -2393,6 +2399,7 @@ fi %{_libdir}/wine/%{winesodir}/sas.dll.so %{_libdir}/wine/%{winesodir}/sc.exe.so %{_libdir}/wine/%{winesodir}/scarddlg.dll.so +%{_libdir}/wine/%{winesodir}/scardsvr.dll.so %{_libdir}/wine/%{winesodir}/sccbase.dll.so %{_libdir}/wine/%{winesodir}/schannel.dll.so %{_libdir}/wine/%{winesodir}/scrobj.dll.so @@ -2493,6 +2500,7 @@ fi %{_libdir}/wine/%{winesodir}/windows.networking.connectivity.so %{_libdir}/wine/%{winesodir}/windows.networking.dll.so %{_libdir}/wine/%{winesodir}/windows.system.profile.systemmanufacturers.dll.so +%{_libdir}/wine/%{winesodir}/windows.ui.so %{_libdir}/wine/%{winesodir}/windowscodecs.dll.so %{_libdir}/wine/%{winesodir}/windowscodecsext.dll.so %{_libdir}/wine/%{winesodir}/winebus.sys.so @@ -2826,6 +2834,9 @@ fi %endif %changelog +* Mon Feb 20 2023 Michael Cronenworth - 8.2-1 +- version update + * Mon Feb 06 2023 Michael Cronenworth - 8.1-1 - version update From 6da40cfff8f20d48dc747c98aab29e6b733d4938 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 20 Feb 2023 20:49:50 -0600 Subject: [PATCH 694/715] Upload 8.2 sources --- sources | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sources b/sources index 98d139d..dc8a431 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-8.1.tar.xz) = 3f0477c26f293cf928acbdae2ffb98740ac227a605ec90f3ab3d35c0dbca2037529ff4e4de0b69cc975579ad14dc2fb8b52e050cfd99cffcc627418cf8cb4346 -SHA512 (wine-8.1.tar.xz.sign) = 2ef66d606e1ad71f4fd83ea1ac4ffa88fc7cc816e49c5440b46c7748b1418adc9d872c432be7f76e88dc4215a3673f3556dbadbe85778d67dc6228d410477ea8 -SHA512 (wine-staging-8.1.tar.gz) = c5c3111b27de7d3bf1d7a3a53f33e8d78c5006f22ff0361f77392455fa69b0afd7c58406515ace04b2df7e1dfb20e3adf9d874e5e8be09c9032c1c1aa31fe696 +SHA512 (wine-8.2.tar.xz) = d0b8bb8c6d75034519bdf48d52b89f9d44ba4f7306a0b8f860cbb2c4c39d8fae3c2d9c12be37427b9a9cbdb7dd8701844d0a74c245dd7a9e8a423cb56962b254 +SHA512 (wine-8.2.tar.xz.sign) = 8d7df65cec24bc6bce919aa556140bcdceea2828e5283734847e31941b36fedd41b1a6397ee8ee604bf9797a0d1f8d499152403416bcd24fce7d1570c3ece891 +SHA512 (wine-staging-8.2.tar.gz) = 24bbfb6d03ca8282de058019cbbee57b36f8fdcf3e485f2ca94dbcf50614cf6c80e31103196d11fe48c77953d59a741ae2baf6987e56a88bea038ed16b692ad9 From 4ceed3ffe21d07c572bfd554139cdae65f004deb Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 21 Feb 2023 23:33:50 -0600 Subject: [PATCH 695/715] Add Requires for mingw-libjpeg-turbo and mingw-libtiff --- wine.spec | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 4354172..6aa499e 100644 --- a/wine.spec +++ b/wine.spec @@ -41,7 +41,7 @@ Name: wine Version: 8.2 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications License: LGPL-2.1-or-later @@ -328,7 +328,9 @@ Requires: libva(x86-32) %endif Requires: mingw32-FAudio Requires: mingw32-lcms2 +Requires: mingw32-libjpeg-turbo Requires: mingw32-libpng +Requires: mingw32-libtiff Requires: mingw32-libxml2 Requires: mingw32-libxslt Requires: mingw32-vkd3d @@ -359,7 +361,9 @@ Requires: libva(x86-64) %endif Requires: mingw64-FAudio Requires: mingw64-lcms2 +Requires: mingw64-libjpeg-turbo Requires: mingw64-libpng +Requires: mingw64-libtiff Requires: mingw64-libxml2 Requires: mingw64-libxslt Requires: mingw64-vkd3d @@ -2834,6 +2838,9 @@ fi %endif %changelog +* Tue Feb 21 2023 Michael Cronenworth - 8.2-2 +- fix missing requires for libjpeg and libtiff + * Mon Feb 20 2023 Michael Cronenworth - 8.2-1 - version update From 8e53c8a6275fae11d242681b65185644cf3d3b34 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 22 Feb 2023 08:03:50 -0600 Subject: [PATCH 696/715] Fix requires for win-iconv --- wine.spec | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/wine.spec b/wine.spec index 6aa499e..0c82f2c 100644 --- a/wine.spec +++ b/wine.spec @@ -41,7 +41,7 @@ Name: wine Version: 8.2 -Release: 2%{?dist} +Release: 3%{?dist} Summary: A compatibility layer for windows applications License: LGPL-2.1-or-later @@ -123,7 +123,6 @@ BuildRequires: alsa-lib-devel BuildRequires: audiofile-devel BuildRequires: freeglut-devel BuildRequires: libieee1284-devel -#BuildRequires: libjpeg-devel BuildRequires: librsvg2 BuildRequires: librsvg2-devel @@ -334,6 +333,7 @@ Requires: mingw32-libtiff Requires: mingw32-libxml2 Requires: mingw32-libxslt Requires: mingw32-vkd3d +Requires: mingw32-win-iconv Requires: mingw32-zlib %endif @@ -367,6 +367,7 @@ Requires: mingw64-libtiff Requires: mingw64-libxml2 Requires: mingw64-libxslt Requires: mingw64-vkd3d +Requires: mingw64-win-iconv Requires: mingw64-zlib %endif @@ -2838,6 +2839,9 @@ fi %endif %changelog +* Wed Feb 22 2023 Michael Cronenworth - 8.2-3 +- fix missing requires for win-iconv + * Tue Feb 21 2023 Michael Cronenworth - 8.2-2 - fix missing requires for libjpeg and libtiff From 3e27bd8eee4c30c56d2378d877e334356c9aed25 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 21 Mar 2023 18:15:20 -0500 Subject: [PATCH 697/715] Update to 8.4 --- sources | 6 +++--- wine.spec | 19 +++++++++++-------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/sources b/sources index dc8a431..4c4169a 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-8.2.tar.xz) = d0b8bb8c6d75034519bdf48d52b89f9d44ba4f7306a0b8f860cbb2c4c39d8fae3c2d9c12be37427b9a9cbdb7dd8701844d0a74c245dd7a9e8a423cb56962b254 -SHA512 (wine-8.2.tar.xz.sign) = 8d7df65cec24bc6bce919aa556140bcdceea2828e5283734847e31941b36fedd41b1a6397ee8ee604bf9797a0d1f8d499152403416bcd24fce7d1570c3ece891 -SHA512 (wine-staging-8.2.tar.gz) = 24bbfb6d03ca8282de058019cbbee57b36f8fdcf3e485f2ca94dbcf50614cf6c80e31103196d11fe48c77953d59a741ae2baf6987e56a88bea038ed16b692ad9 +SHA512 (wine-8.4.tar.xz) = 8de144a65c0a3a2984fabc1294b647b8581da5fa8bd28a9ff756ab59256ee2b453d898453fc902bbc372a4e017a8e29b1eeef917f137ec1134ac08b671eccc7d +SHA512 (wine-8.4.tar.xz.sign) = 45ee2bc5d8c68d47e4e8ffc112f5cb9c772ae8c2b24e77c758aaecd8e4566c1fe4ea2ade369147a48230874c77389a25ee6af2675d5282072cdb417be143c856 +SHA512 (wine-staging-8.4.tar.gz) = 96a6a870020e59f8437c65604536fec4b80d7d9e5a937e5d0a6cb0b2b4e544e6153fa0cdf2a8fd2c32d090001334e68124c2855c6a2a1454fdcdb6ea23d75fd7 diff --git a/wine.spec b/wine.spec index 0c82f2c..44bd732 100644 --- a/wine.spec +++ b/wine.spec @@ -40,8 +40,8 @@ %endif Name: wine -Version: 8.2 -Release: 3%{?dist} +Version: 8.4 +Release: 1%{?dist} Summary: A compatibility layer for windows applications License: LGPL-2.1-or-later @@ -704,8 +704,8 @@ This package adds the opencl driver for wine. %prep %setup -qn wine-%{version} -%patch100 -p1 -b.autoconf -%patch511 -p1 -b.cjk +%patch -P 100 -p1 -b.autoconf +%patch -P 511 -p1 -b.cjk %if 0%{?wine_staging} # setup and apply wine-staging patches @@ -1242,8 +1242,6 @@ fi %{_libdir}/wine/%{winepedir}/wscript.exe %{_libdir}/wine/%{winepedir}/uninstaller.exe -%{_libdir}/wine/%{winesodir}/libwine.so.1* - %{_libdir}/wine/%{winepedir}/acledit.dll %{_libdir}/wine/%{winepedir}/aclui.dll %{_libdir}/wine/%{winepedir}/activeds.dll @@ -1744,6 +1742,7 @@ fi %{_libdir}/wine/%{winepedir}/windows.media.devices.dll %{_libdir}/wine/%{winepedir}/windows.networking.connectivity %{_libdir}/wine/%{winepedir}/windows.networking.dll +%{_libdir}/wine/%{winepedir}/windows.perception.stub.dll %{_libdir}/wine/%{winepedir}/windows.system.profile.systemmanufacturers.dll %{_libdir}/wine/%{winepedir}/windows.ui.dll %{_libdir}/wine/%{winepedir}/windowscodecs.dll @@ -1757,6 +1756,8 @@ fi %{_libdir}/wine/%{winesodir}/wineusb.so %{_libdir}/wine/%{winesodir}/winevulkan.so %{_libdir}/wine/%{winepedir}/winevulkan.dll +%{_libdir}/wine/%{winepedir}/winewayland.drv +%{_libdir}/wine/%{winesodir}/winewayland.so %{_libdir}/wine/%{winepedir}/winex11.drv %{_libdir}/wine/%{winesodir}/winex11.so %{_libdir}/wine/%{winepedir}/wing32.dll @@ -1779,7 +1780,6 @@ fi %{_libdir}/wine/%{winesodir}/win32u.so %{_libdir}/wine/%{winesodir}/winebus.so %{_libdir}/wine/%{winepedir}/winexinput.sys -%{_libdir}/wine/%{winepedir}/winscard.dll %{_libdir}/wine/%{winepedir}/wintab32.dll %{_libdir}/wine/%{winepedir}/wintrust.dll %{_libdir}/wine/%{winepedir}/winusb.dll @@ -2504,6 +2504,7 @@ fi %{_libdir}/wine/%{winesodir}/windows.media.devices.dll.so %{_libdir}/wine/%{winesodir}/windows.networking.connectivity.so %{_libdir}/wine/%{winesodir}/windows.networking.dll.so +%{_libdir}/wine/%{winesodir}/windows.perception.stub.dll.so %{_libdir}/wine/%{winesodir}/windows.system.profile.systemmanufacturers.dll.so %{_libdir}/wine/%{winesodir}/windows.ui.so %{_libdir}/wine/%{winesodir}/windowscodecs.dll.so @@ -2530,7 +2531,6 @@ fi %{_libdir}/wine/%{winesodir}/wmp.dll.so %{_libdir}/wine/%{winesodir}/wmvcore.dll.so %{_libdir}/wine/%{winesodir}/spoolss.dll.so -%{_libdir}/wine/%{winesodir}/winscard.dll.so %{_libdir}/wine/%{winesodir}/wintab32.dll.so %{_libdir}/wine/%{winesodir}/wintrust.dll.so %{_libdir}/wine/%{winesodir}/wintypes.dll.so @@ -2839,6 +2839,9 @@ fi %endif %changelog +* Tue Mar 21 2023 Michael Cronenworth - 8.4-1 +- version update + * Wed Feb 22 2023 Michael Cronenworth - 8.2-3 - fix missing requires for win-iconv From 0e97df7d853fcf447e21122d007263b4bfd44856 Mon Sep 17 00:00:00 2001 From: Marie Loise Nolden Date: Wed, 29 Mar 2023 17:39:10 +0000 Subject: [PATCH 698/715] cleanup spec file from old rhel 6 and 7, fedora <33 stuff and adapt to current wine-staging build cleanup spec file from old rhel 6 and 7, fedora <33 stuff and adapt to current wine-staging build --- wine.spec | 80 ++++++------------------------------------------------- 1 file changed, 8 insertions(+), 72 deletions(-) diff --git a/wine.spec b/wine.spec index 44bd732..2c413b7 100644 --- a/wine.spec +++ b/wine.spec @@ -26,7 +26,7 @@ %endif # build with wine-staging patches, see: https://github.com/wine-staging/wine-staging -%if 0%{?fedora} +%if 0%{?fedora} || 0%{?rhel} %global wine_staging 1 %endif # 0%%{?fedora} @@ -49,7 +49,6 @@ URL: https://www.winehq.org/ Source0: https://dl.winehq.org/wine/source/8.0/wine-%{version}.tar.xz Source10: https://dl.winehq.org/wine/source/8.0/wine-%{version}.tar.xz.sign -Source1: wine.init Source2: wine.systemd Source3: wine-README-Fedora Source4: wine-32.conf @@ -98,7 +97,7 @@ Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar. %endif %if !%{?no64bit} -%if 0%{fedora} > 36 +%if 0%{?fedora} > 36 ExclusiveArch: %{ix86} x86_64 aarch64 %else # Fedora 36 Clang doesn't build PE binaries on ARM at the moment @@ -179,9 +178,7 @@ BuildRequires: libva-devel %endif # 0%%{?wine_staging} -%if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 BuildRequires: icoutils -%endif %ifarch %{ix86} x86_64 BuildRequires: mingw32-FAudio @@ -402,7 +399,6 @@ Provides: wine-openal = %{version}-%{release} %description core Wine core package includes the basic wine stuff needed by all other packages. -%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7 %package systemd Summary: Systemd config for the wine binfmt handler Requires: systemd >= 23 @@ -414,18 +410,6 @@ Obsoletes: wine-sysvinit < %{version}-%{release} %description systemd Register the wine binary handler for windows executables via systemd binfmt handling. See man binfmt.d for further information. -%endif - -%if 0%{?rhel} == 6 -%package sysvinit -Summary: SysV initscript for the wine binfmt handler -BuildArch: noarch -Requires(post): /sbin/chkconfig, /sbin/service -Requires(preun): /sbin/chkconfig, /sbin/service - -%description sysvinit -Register the wine binary handler for windows executables via SysV init files. -%endif %package filesystem Summary: Filesystem directories for wine @@ -448,12 +432,7 @@ Requires(post): desktop-file-utils >= 0.8 Requires(postun): desktop-file-utils >= 0.8 Requires: wine-core = %{version}-%{release} Requires: wine-common = %{version}-%{release} -%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7 Requires: wine-systemd = %{version}-%{release} -%endif -%if 0%{?rhel} == 6 -Requires: wine-sysvinit = %{version}-%{release} -%endif Requires: hicolor-icon-theme BuildArch: noarch @@ -493,9 +472,7 @@ Requires: wine-webdings-fonts = %{version}-%{release} Requires: wine-wingdings-fonts = %{version}-%{release} # intermediate fix for #593140 Requires: liberation-sans-fonts liberation-serif-fonts liberation-mono-fonts -%if 0%{?fedora} > 12 Requires: liberation-narrow-fonts -%endif %description fonts %{summary} @@ -840,14 +817,8 @@ chrpath --delete %{buildroot}%{_bindir}/wineserver32 mkdir -p %{buildroot}%{_sysconfdir}/wine # Allow users to launch Windows programs by just clicking on the .exe file... -%if 0%{?rhel} < 7 -mkdir -p %{buildroot}%{_initrddir} -install -p -c -m 755 %{SOURCE1} %{buildroot}%{_initrddir}/wine -%endif -%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7 mkdir -p %{buildroot}%{_binfmtdir} install -p -c -m 644 %{SOURCE2} %{buildroot}%{_binfmtdir}/wine.conf -%endif # add wine dir to desktop mkdir -p %{buildroot}%{_sysconfdir}/xdg/menus/applications-merged @@ -864,7 +835,6 @@ mkdir -p %{buildroot}%{_datadir}/wine/gecko mkdir -p %{buildroot}%{_datadir}/wine/mono # extract and install icons -%if 0%{?fedora} > 10 mkdir -p %{buildroot}%{_datadir}/icons/hicolor/scalable/apps # This replacement masks a composite program icon .SVG down @@ -919,8 +889,6 @@ install -p -m 644 programs/wordpad/wordpad.svg \ %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/wordpad.svg sed -i -e "$PROGRAM_ICONFIX" %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/wordpad.svg -%endif - # install desktop files desktop-file-install \ --dir=%{buildroot}%{_datadir}/applications \ @@ -1024,9 +992,7 @@ do iconv -f iso8859-1 -t utf-8 README.$lang > \ done; popd -%if 0%{?fedora} || 0%{?rhel} > 6 rm -f %{buildroot}%{_initrddir}/wine -%endif # wine makefiles are currently broken and don't install the wine man page install -p -m 0644 loader/wine.man %{buildroot}%{_mandir}/man1/wine.1 @@ -1041,22 +1007,6 @@ install -p -m 0644 %{SOURCE150} %{buildroot}/%{_metainfodir}/%{name}.appdata.xml appstream-util validate-relax --nonet %{buildroot}/%{_metainfodir}/%{name}.appdata.xml -%if 0%{?rhel} == 6 -%post sysvinit -if [ $1 -eq 1 ]; then -/sbin/chkconfig --add wine -/sbin/chkconfig --level 2345 wine on -/sbin/service wine start &>/dev/null || : -fi - -%preun sysvinit -if [ $1 -eq 0 ]; then -/sbin/service wine stop >/dev/null 2>&1 -/sbin/chkconfig --del wine -fi -%endif - -%if 0%{?fedora} >= 15 || 0%{?rhel} > 6 %post systemd %binfmt_apply wine.conf @@ -1064,7 +1014,6 @@ fi if [ $1 -eq 0 ]; then /bin/systemctl try-restart systemd-binfmt.service fi -%endif %ldconfig_post core @@ -1372,8 +1321,10 @@ fi %{_libdir}/wine/%{winepedir}/dxdiagn.dll %ghost %{_libdir}/wine/%{winepedir}/dxgi.dll %{_libdir}/wine/%{winepedir}/wine-dxgi.dll +%if 0%{?wine_staging} %{_libdir}/wine/%{winepedir}/dxgkrnl.sys %{_libdir}/wine/%{winepedir}/dxgmms1.sys +%endif %{_libdir}/wine/%{winepedir}/dxtrans.dll %{_libdir}/wine/%{winepedir}/dxva2.dll %{_libdir}/wine/%{winepedir}/esent.dll @@ -1439,9 +1390,7 @@ fi %{_libdir}/wine/%{winepedir}/ksproxy.ax %{_libdir}/wine/%{winepedir}/ksuser.dll %{_libdir}/wine/%{winepedir}/ktmw32.dll -%if 0%{?fedora} > 24 %{_libdir}/wine/%{winepedir}/l3codeca.acm -%endif %{_libdir}/wine/%{winepedir}/light.msstyles %{_libdir}/wine/%{winepedir}/loadperf.dll %{_libdir}/wine/%{winesodir}/localspl.so @@ -1729,18 +1678,20 @@ fi %{_libdir}/wine/%{winepedir}/wevtsvc.dll %{_libdir}/wine/%{winepedir}/wiaservc.dll %{_libdir}/wine/%{winepedir}/wimgapi.dll +%if 0%{?wine_staging} %{_libdir}/wine/%{winepedir}/win32k.sys +%endif %{_libdir}/wine/%{winepedir}/win32u.dll %{_libdir}/wine/%{winepedir}/windows.devices.enumeration.dll %{_libdir}/wine/%{winepedir}/windows.gaming.ui.gamebar.dll -%if 0%{?wine_staging} %{_libdir}/wine/%{winepedir}/windows.gaming.input.dll %{_libdir}/wine/%{winepedir}/windows.globalization.dll %{_libdir}/wine/%{winepedir}/windows.media.speech.dll -%endif %{_libdir}/wine/%{winepedir}/windows.media.dll %{_libdir}/wine/%{winepedir}/windows.media.devices.dll +%if 0%{?wine_staging} %{_libdir}/wine/%{winepedir}/windows.networking.connectivity +%endif %{_libdir}/wine/%{winepedir}/windows.networking.dll %{_libdir}/wine/%{winepedir}/windows.perception.stub.dll %{_libdir}/wine/%{winepedir}/windows.system.profile.systemmanufacturers.dll @@ -1792,11 +1743,9 @@ fi %{_libdir}/wine/%{winepedir}/wow64.dll %{_libdir}/wine/%{winepedir}/wow64win.dll %endif -%if 0%{?wine_staging} %ifarch x86_64 %{_libdir}/wine/%{winepedir}/wow64cpu.dll %endif -%endif %{_libdir}/wine/%{winepedir}/wpc.dll %{_libdir}/wine/%{winepedir}/wpcap.dll %{_libdir}/wine/%{winesodir}/wpcap.so @@ -1834,12 +1783,10 @@ fi %{_libdir}/wine/%{winepedir}/x3daudio1_5.dll %{_libdir}/wine/%{winepedir}/x3daudio1_6.dll %{_libdir}/wine/%{winepedir}/x3daudio1_7.dll -%if 0%{?wine_staging} %{_libdir}/wine/%{winepedir}/xactengine2_0.dll %{_libdir}/wine/%{winepedir}/xactengine2_4.dll %{_libdir}/wine/%{winepedir}/xactengine2_7.dll %{_libdir}/wine/%{winepedir}/xactengine2_9.dll -%endif %{_libdir}/wine/%{winepedir}/xactengine3_0.dll %{_libdir}/wine/%{winepedir}/xactengine3_1.dll %{_libdir}/wine/%{winepedir}/xactengine3_2.dll @@ -2495,11 +2442,9 @@ fi %{_libdir}/wine/%{winesodir}/win32u.dll.so %{_libdir}/wine/%{winesodir}/windows.devices.enumeration.dll.so %{_libdir}/wine/%{winesodir}/windows.gaming.ui.gamebar.dll.so -%if 0%{?wine_staging} %{_libdir}/wine/%{winesodir}/windows.gaming.input.dll.so %{_libdir}/wine/%{winesodir}/windows.globalization.dll.so %{_libdir}/wine/%{winesodir}/windows.media.speech.dll.so -%endif %{_libdir}/wine/%{winesodir}/windows.media.dll.so %{_libdir}/wine/%{winesodir}/windows.media.devices.dll.so %{_libdir}/wine/%{winesodir}/windows.networking.connectivity.so @@ -2744,19 +2689,10 @@ fi %{_datadir}/desktop-directories/Wine.directory %config %{_sysconfdir}/xdg/menus/applications-merged/wine.menu %{_metainfodir}/%{name}.appdata.xml -%if 0%{?fedora} >= 10 %{_datadir}/icons/hicolor/scalable/apps/*svg -%endif -%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7 %files systemd %config %{_binfmtdir}/wine.conf -%endif - -%if 0%{?rhel} == 6 -%files sysvinit -%{_initrddir}/wine -%endif # ldap subpackage %files ldap From b687a89edfe026a78ed4986d689ce62f63370acd Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sat, 1 Apr 2023 23:43:28 -0500 Subject: [PATCH 699/715] Update to 8.5 --- sources | 6 ++-- wine.init | 89 ------------------------------------------------------- wine.spec | 23 ++++++++------ 3 files changed, 17 insertions(+), 101 deletions(-) delete mode 100644 wine.init diff --git a/sources b/sources index 4c4169a..c4f3e18 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-8.4.tar.xz) = 8de144a65c0a3a2984fabc1294b647b8581da5fa8bd28a9ff756ab59256ee2b453d898453fc902bbc372a4e017a8e29b1eeef917f137ec1134ac08b671eccc7d -SHA512 (wine-8.4.tar.xz.sign) = 45ee2bc5d8c68d47e4e8ffc112f5cb9c772ae8c2b24e77c758aaecd8e4566c1fe4ea2ade369147a48230874c77389a25ee6af2675d5282072cdb417be143c856 -SHA512 (wine-staging-8.4.tar.gz) = 96a6a870020e59f8437c65604536fec4b80d7d9e5a937e5d0a6cb0b2b4e544e6153fa0cdf2a8fd2c32d090001334e68124c2855c6a2a1454fdcdb6ea23d75fd7 +SHA512 (wine-8.5.tar.xz) = f6aaab8a32eb7bce7f48d21d99417c9e6e8fe41b3d36320762775ef954db7ddd4fcff01d56475f35038d814557834a41a9e3ae85e5cae8a1b820c5044b42a327 +SHA512 (wine-8.5.tar.xz.sign) = e06378b8d1230ab25842b2595fac0aa436e22850a5bb3708bba02c4a80b4f2ea502ccf69c3f81182dfc5f646361b08289799f1235307efe510225493e7bf441d +SHA512 (wine-staging-8.5.tar.gz) = 9d347c55a62f661bdcc102d373e05d162217b7b1348bdb6f2b114d20e35146862379d2cf03a96916bd1d52166a538af55d48e25a169cd6ee23818673bd35909a diff --git a/wine.init b/wine.init deleted file mode 100644 index 990bb83..0000000 --- a/wine.init +++ /dev/null @@ -1,89 +0,0 @@ -#!/bin/sh -# -# wine Allow users to run Windows(tm) applications by just clicking on them -# (or typing ./file.exe) -# -# chkconfig: 35 98 10 -# description: Allow users to run Windows(tm) applications by just clicking \ -# on them (or typing ./file.exe) -### BEGIN INIT INFO -# Provides: wine-binfmt -# Required-Start: -# Required-Stop: -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: Add and remove wine binary handler -# Description: Allow users to run Windows(tm) applications by just clicking -# on them (or typing ./file.exe) -### END INIT INFO - - -. /etc/rc.d/init.d/functions -RETVAL=0 - -start() { -# fix bug on changing runlevels #213230 - if [ -e /proc/sys/fs/binfmt_misc/windows ]; then - echo -n $"Binary handler for Windows applications already registered" - else - echo -n $"Registering binary handler for Windows applications: " - /sbin/modprobe binfmt_misc &>/dev/null - echo ':windows:M::MZ::/usr/bin/wine:' >/proc/sys/fs/binfmt_misc/register || : - echo ':windowsPE:M::PE::/usr/bin/wine:' >/proc/sys/fs/binfmt_misc/register || : - RETVAL=$? - [ $RETVAL -eq 0 ] && success || failure - fi - echo -} - -stop() { - echo -n $"Unregistering binary handler for Windows applications: " - echo "-1" >/proc/sys/fs/binfmt_misc/windows || : - echo "-1" >/proc/sys/fs/binfmt_misc/windowsPE || : - RETVAL=$? - [ $RETVAL -eq 0 ] && success || failure - echo -} - -wine_status() { - if [ -e /proc/sys/fs/binfmt_misc/windows ]; then - echo $"Wine binary format handlers are registered." - return 0 - else - echo $"Wine binary format handlers are not registered." - return 3 - fi -} - -case "$1" in - start) - start - ;; - stop) - stop - ;; - status) - wine_status - RETVAL=$? - ;; - restart) - stop - start - ;; - reload) - stop - start - ;; - condrestart|try-restart) - - if [ -e /proc/sys/fs/binfmt_misc/windows ]; then - stop - start - fi - ;; - *) - echo $"Usage: $prog {start|stop|status|restart|reload|try-restart}" - exit 1 -esac -exit $RETVAL - diff --git a/wine.spec b/wine.spec index 2c413b7..36db13f 100644 --- a/wine.spec +++ b/wine.spec @@ -40,7 +40,7 @@ %endif Name: wine -Version: 8.4 +Version: 8.5 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -49,10 +49,10 @@ URL: https://www.winehq.org/ Source0: https://dl.winehq.org/wine/source/8.0/wine-%{version}.tar.xz Source10: https://dl.winehq.org/wine/source/8.0/wine-%{version}.tar.xz.sign -Source2: wine.systemd -Source3: wine-README-Fedora -Source4: wine-32.conf -Source5: wine-64.conf +Source1: wine.systemd +Source2: wine-README-Fedora +Source3: wine-32.conf +Source4: wine-64.conf # desktop files Source100: wine-notepad.desktop @@ -818,7 +818,7 @@ mkdir -p %{buildroot}%{_sysconfdir}/wine # Allow users to launch Windows programs by just clicking on the .exe file... mkdir -p %{buildroot}%{_binfmtdir} -install -p -c -m 644 %{SOURCE2} %{buildroot}%{_binfmtdir}/wine.conf +install -p -c -m 644 %{SOURCE1} %{buildroot}%{_binfmtdir}/wine.conf # add wine dir to desktop mkdir -p %{buildroot}%{_sysconfdir}/xdg/menus/applications-merged @@ -940,18 +940,18 @@ desktop-file-install \ --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE300} -cp -p %{SOURCE3} README-FEDORA +cp -p %{SOURCE2} README-FEDORA cp -p %{SOURCE502} README-tahoma mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d/ %ifarch %{ix86} %{arm} -install -p -m644 %{SOURCE4} %{buildroot}%{_sysconfdir}/ld.so.conf.d/ +install -p -m644 %{SOURCE3} %{buildroot}%{_sysconfdir}/ld.so.conf.d/ %endif %ifarch x86_64 aarch64 -install -p -m644 %{SOURCE5} %{buildroot}%{_sysconfdir}/ld.so.conf.d/ +install -p -m644 %{SOURCE4} %{buildroot}%{_sysconfdir}/ld.so.conf.d/ %endif @@ -1346,6 +1346,7 @@ fi %{_libdir}/wine/%{winepedir}/gphoto2.ds %{_libdir}/wine/%{winesodir}/gphoto2.so %{_libdir}/wine/%{winepedir}/gpkcsp.dll +%{_libdir}/wine/%{winepedir}/graphicscapture.dll %{_libdir}/wine/%{winepedir}/hal.dll %{_libdir}/wine/%{winepedir}/hh.exe %{_libdir}/wine/%{winepedir}/hhctrl.ocx @@ -2127,6 +2128,7 @@ fi %{_libdir}/wine/%{winesodir}/glu32.dll.so %{_libdir}/wine/%{winesodir}/gphoto2.ds.so %{_libdir}/wine/%{winesodir}/gpkcsp.dll.so +%{_libdir}/wine/%{winesodir}/graphicscapture.dll.so %{_libdir}/wine/%{winesodir}/hal.dll.so %{_libdir}/wine/%{winesodir}/hh.exe.so %{_libdir}/wine/%{winesodir}/hhctrl.ocx.so @@ -2775,6 +2777,9 @@ fi %endif %changelog +* Sat Apr 01 2023 Michael Cronenworth - 8.5-1 +- version update + * Tue Mar 21 2023 Michael Cronenworth - 8.4-1 - version update From 8e731b9cb954cd4da53ec325d8d8df80a7e06c9f Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 19 Apr 2023 08:11:59 -0500 Subject: [PATCH 700/715] Update to 8.6 --- sources | 6 +++--- wine.spec | 7 +++++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/sources b/sources index c4f3e18..e561c67 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-8.5.tar.xz) = f6aaab8a32eb7bce7f48d21d99417c9e6e8fe41b3d36320762775ef954db7ddd4fcff01d56475f35038d814557834a41a9e3ae85e5cae8a1b820c5044b42a327 -SHA512 (wine-8.5.tar.xz.sign) = e06378b8d1230ab25842b2595fac0aa436e22850a5bb3708bba02c4a80b4f2ea502ccf69c3f81182dfc5f646361b08289799f1235307efe510225493e7bf441d -SHA512 (wine-staging-8.5.tar.gz) = 9d347c55a62f661bdcc102d373e05d162217b7b1348bdb6f2b114d20e35146862379d2cf03a96916bd1d52166a538af55d48e25a169cd6ee23818673bd35909a +SHA512 (wine-8.6.tar.xz) = 602680675f5e062121767769106199179c52a6dd93e97b9b8b4d8365134c72f7745e37d4e3edf6c89c553fb1bfe55b914e77177508fb4f032410d423359abba7 +SHA512 (wine-8.6.tar.xz.sign) = 4227f67fe187e78ce648f3e2afbbf51f4a6d5c2ad38ea250cdb5a918d1af873b93eb7b3eea046a1ac58fb5969fe2f6599bd1dbfb2434db37559c6c570be6a0f3 +SHA512 (wine-staging-8.6.1.tar.gz) = 28bb066b55293e73df072cceb27a191365d6a319d859e6797bc443e830bb6ddd22cdbf7d9692b43e8eb7f2feb68ac1205aa440c60b37ab7c10ebeab83aa590ce diff --git a/wine.spec b/wine.spec index 36db13f..d769a18 100644 --- a/wine.spec +++ b/wine.spec @@ -40,7 +40,7 @@ %endif Name: wine -Version: 8.5 +Version: 8.6 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -93,7 +93,7 @@ Patch511: wine-cjk.patch %if 0%{?wine_staging} # wine-staging patches # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar.gz#/wine-staging-%{version}.tar.gz +Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.1.tar.gz#/wine-staging-%{version}.1.tar.gz %endif %if !%{?no64bit} @@ -2777,6 +2777,9 @@ fi %endif %changelog +* Wed Apr 19 2023 Michael Cronenworth - 8.6-1 +- version update + * Sat Apr 01 2023 Michael Cronenworth - 8.5-1 - version update From ad5e9c3120ab21bbb0298fc5b02ff867e4a83a98 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 19 Apr 2023 12:54:40 -0500 Subject: [PATCH 701/715] Update wine-gecko due to wine 8.6 --- wine.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index d769a18..82a3d59 100644 --- a/wine.spec +++ b/wine.spec @@ -2,7 +2,7 @@ %undefine _hardened_build %global no64bit 0 -%global winegecko 2.47.3 +%global winegecko 2.47.4 %global winemono 7.4.0 #global _default_patch_fuzz 2 %ifarch %{ix86} From ebc7fa10002c4a6ff21a5b315f49f67c4adf7c60 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Wed, 19 Apr 2023 15:55:47 -0500 Subject: [PATCH 702/715] Hack for wine-staging patch bug https://bugs.winehq.org/show_bug.cgi?id=54868 --- wine.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/wine.spec b/wine.spec index 82a3d59..8207409 100644 --- a/wine.spec +++ b/wine.spec @@ -688,6 +688,8 @@ This package adds the opencl driver for wine. # setup and apply wine-staging patches gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 +# https://bugs.winehq.org/show_bug.cgi?id=54868 +sed -i 's/DWORD pitch_in, DWORD pitch_out/unsigned int pitch_in, unsigned int pitch_out/' patches/wined3d-WINED3DFMT_B8G8R8X8_UNORM/0001-wined3d-Implement-WINED3DFMT_B8G8R8X8_UNORM-to-WINED.patch staging/patchinstall.py DESTDIR="`pwd`" --all %endif From ca2ad08c44dc54d595ef8027cfdbd5bacad80868 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 25 Jun 2023 22:02:22 -0500 Subject: [PATCH 703/715] Update to 8.11 --- sources | 6 +++--- wine.spec | 14 +++++++++++--- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/sources b/sources index e561c67..4625260 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-8.6.tar.xz) = 602680675f5e062121767769106199179c52a6dd93e97b9b8b4d8365134c72f7745e37d4e3edf6c89c553fb1bfe55b914e77177508fb4f032410d423359abba7 -SHA512 (wine-8.6.tar.xz.sign) = 4227f67fe187e78ce648f3e2afbbf51f4a6d5c2ad38ea250cdb5a918d1af873b93eb7b3eea046a1ac58fb5969fe2f6599bd1dbfb2434db37559c6c570be6a0f3 -SHA512 (wine-staging-8.6.1.tar.gz) = 28bb066b55293e73df072cceb27a191365d6a319d859e6797bc443e830bb6ddd22cdbf7d9692b43e8eb7f2feb68ac1205aa440c60b37ab7c10ebeab83aa590ce +SHA512 (wine-8.11.tar.xz) = f3e37f51f0a13aacbd41b017fc3d35e197614b03c00f5b9959c0fabc4e89975b5c3f411b38329e45ce6f9d2a2d82952b95e0907fbe2d6ae35cc4bec293825769 +SHA512 (wine-8.11.tar.xz.sign) = 9fd6bdc5cc9df5e6d0d22d55d15de83f15e2dc472b37c30ec8013f229cdedec4ba8d8e92f5ff7cac340191f2b9a8e316b7818250e70d61c5f690ff034f4ca8db +SHA512 (wine-staging-8.11.tar.gz) = fb7a5f575c092e84afa78868e3b15fa33d67205a5e20deae61a60613714df784b18d54cd32167355ae38543f047f4304bfbc7f2ba2b3f6050c9f738812a15154 diff --git a/wine.spec b/wine.spec index 8207409..7000e8f 100644 --- a/wine.spec +++ b/wine.spec @@ -3,7 +3,7 @@ %global no64bit 0 %global winegecko 2.47.4 -%global winemono 7.4.0 +%global winemono 8.0.0 #global _default_patch_fuzz 2 %ifarch %{ix86} %global winepedir i386-windows @@ -40,7 +40,7 @@ %endif Name: wine -Version: 8.6 +Version: 8.11 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -93,7 +93,7 @@ Patch511: wine-cjk.patch %if 0%{?wine_staging} # wine-staging patches # pulseaudio-patch is covered by that patch-set, too. -Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.1.tar.gz#/wine-staging-%{version}.1.tar.gz +Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar.gz#/wine-staging-%{version}.tar.gz %endif %if !%{?no64bit} @@ -1357,6 +1357,7 @@ fi %{_libdir}/wine/%{winepedir}/hidparse.sys %{_libdir}/wine/%{winepedir}/hlink.dll %{_libdir}/wine/%{winepedir}/hnetcfg.dll +%{_libdir}/wine/%{winepedir}/hrtfapo.dll %{_libdir}/wine/%{winepedir}/http.sys %{_libdir}/wine/%{winepedir}/httpapi.dll %{_libdir}/wine/%{winepedir}/ia2comproxy.dll @@ -1640,6 +1641,7 @@ fi %{_libdir}/wine/%{winepedir}/tdi.sys %{_libdir}/wine/%{winepedir}/threadpoolwinrt.dll %{_libdir}/wine/%{winepedir}/traffic.dll +%{_libdir}/wine/%{winepedir}/twinapi.appcore.dll %{_libdir}/wine/%{winepedir}/tzres.dll %{_libdir}/wine/%{winepedir}/ucrtbase.dll %{_libdir}/wine/%{winepedir}/uianimation.dll @@ -1768,6 +1770,7 @@ fi %{_libdir}/wine/%{winepedir}/security.dll %{_libdir}/wine/%{winepedir}/sfc.dll %{_libdir}/wine/%{winepedir}/wineps.drv +%{_libdir}/wine/%{winesodir}/wineps.so %{_libdir}/wine/%{winepedir}/d3d8.dll %{_libdir}/wine/%{winepedir}/d3d8thk.dll %ghost %{_libdir}/wine/%{winepedir}/d3d9.dll @@ -2139,6 +2142,7 @@ fi %{_libdir}/wine/%{winesodir}/hidparse.sys.so %{_libdir}/wine/%{winesodir}/hlink.dll.so %{_libdir}/wine/%{winesodir}/hnetcfg.dll.so +%{_libdir}/wine/%{winesodir}/hrtfapo.dll.so %{_libdir}/wine/%{winesodir}/http.sys.so %{_libdir}/wine/%{winesodir}/httpapi.dll.so %{_libdir}/wine/%{winesodir}/ia2comproxy.dll.so @@ -2401,6 +2405,7 @@ fi %{_libdir}/wine/%{winesodir}/tdi.sys.so %{_libdir}/wine/%{winesodir}/threadpoolwinrt.dll.so %{_libdir}/wine/%{winesodir}/traffic.dll.so +%{_libdir}/wine/%{winesodir}/twinapi.appcore.dll.so %{_libdir}/wine/%{winesodir}/ucrtbase.dll.so %if 0%{?wine_staging} %{_libdir}/wine/%{winesodir}/uianimation.dll.so @@ -2779,6 +2784,9 @@ fi %endif %changelog +* Sun Jun 25 2023 Michael Cronenworth - 8.11-1 +- version update + * Wed Apr 19 2023 Michael Cronenworth - 8.6-1 - version update From eaa22d0e410a7eb0b8e5f7a0186a0813b96643b6 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 25 Jun 2023 22:26:22 -0500 Subject: [PATCH 704/715] AR files are not shipped in ARM now --- wine.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/wine.spec b/wine.spec index 7000e8f..4050610 100644 --- a/wine.spec +++ b/wine.spec @@ -2757,7 +2757,9 @@ fi %ifarch %{ix86} x86_64 aarch64 %{_libdir}/wine/%{winepedir}/*.a %endif +%ifarch %{ix86} x86_64 %{_libdir}/wine/%{winesodir}/*.a +%endif %files pulseaudio From 20cf6562e1f31b3707a6bca268f116497fa910aa Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 10 Jul 2023 11:53:34 -0500 Subject: [PATCH 705/715] Update to 8.12 --- sources | 6 +++--- wine.spec | 13 ++++++++++++- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/sources b/sources index 4625260..d4fd3ec 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-8.11.tar.xz) = f3e37f51f0a13aacbd41b017fc3d35e197614b03c00f5b9959c0fabc4e89975b5c3f411b38329e45ce6f9d2a2d82952b95e0907fbe2d6ae35cc4bec293825769 -SHA512 (wine-8.11.tar.xz.sign) = 9fd6bdc5cc9df5e6d0d22d55d15de83f15e2dc472b37c30ec8013f229cdedec4ba8d8e92f5ff7cac340191f2b9a8e316b7818250e70d61c5f690ff034f4ca8db -SHA512 (wine-staging-8.11.tar.gz) = fb7a5f575c092e84afa78868e3b15fa33d67205a5e20deae61a60613714df784b18d54cd32167355ae38543f047f4304bfbc7f2ba2b3f6050c9f738812a15154 +SHA512 (wine-8.12.tar.xz) = 6b9eab7ca1ed5a13202b1250d8d95f6bd8ee5176f0c39b5358aedaf28f7f23543f4a73bf0782c3b4e50936813fc2a459582b5d294569c976ace784fbd9e0af1b +SHA512 (wine-8.12.tar.xz.sign) = 3657d1143beed2cdfc87cfc4ce5f829240288cf193be42e2ab6c11a2c165ccb9c760db18f425cf5bae67db3e5ddb4bf7bbccdfe47bdb9ee5a6767503778dcc7a +SHA512 (wine-staging-8.12.tar.gz) = 11364b2367e25706b98c168710288b796e9dea1e3400efc0d010ea8827cb8c4187385f53aebd1fda46611902f6619282ea97ce9d7c20fe18aa48c14f15c99d14 diff --git a/wine.spec b/wine.spec index 4050610..5cde043 100644 --- a/wine.spec +++ b/wine.spec @@ -40,7 +40,7 @@ %endif Name: wine -Version: 8.11 +Version: 8.12 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1162,6 +1162,7 @@ fi %{_libdir}/wine/%{winepedir}/ntoskrnl.exe %{_libdir}/wine/%{winepedir}/oleview.exe %{_libdir}/wine/%{winepedir}/ping.exe +%{_libdir}/wine/%{winepedir}/pnputil.exe %{_libdir}/wine/%{winepedir}/powershell.exe %{_libdir}/wine/%{winepedir}/reg.exe %{_libdir}/wine/%{winepedir}/regasm.exe @@ -1687,7 +1688,9 @@ fi %{_libdir}/wine/%{winepedir}/win32k.sys %endif %{_libdir}/wine/%{winepedir}/win32u.dll +%{_libdir}/wine/%{winepedir}/windows.devices.bluetooth.dll %{_libdir}/wine/%{winepedir}/windows.devices.enumeration.dll +%{_libdir}/wine/%{winepedir}/windows.devices.geolocation.geolocator.dll %{_libdir}/wine/%{winepedir}/windows.gaming.ui.gamebar.dll %{_libdir}/wine/%{winepedir}/windows.gaming.input.dll %{_libdir}/wine/%{winepedir}/windows.globalization.dll @@ -1698,6 +1701,7 @@ fi %{_libdir}/wine/%{winepedir}/windows.networking.connectivity %endif %{_libdir}/wine/%{winepedir}/windows.networking.dll +%{_libdir}/wine/%{winepedir}/windows.networking.hostname.dll %{_libdir}/wine/%{winepedir}/windows.perception.stub.dll %{_libdir}/wine/%{winepedir}/windows.system.profile.systemmanufacturers.dll %{_libdir}/wine/%{winepedir}/windows.ui.dll @@ -1966,6 +1970,7 @@ fi %{_libdir}/wine/%{winesodir}/ntoskrnl.exe.so %{_libdir}/wine/%{winesodir}/oleview.exe.so %{_libdir}/wine/%{winesodir}/ping.exe.so +%{_libdir}/wine/%{winesodir}/pnputil.exe.so %{_libdir}/wine/%{winesodir}/powershell.exe.so %{_libdir}/wine/%{winesodir}/reg.exe.so %{_libdir}/wine/%{winesodir}/regasm.exe.so @@ -2449,7 +2454,9 @@ fi %{_libdir}/wine/%{winesodir}/wimgapi.dll.so %{_libdir}/wine/%{winesodir}/win32k.sys.so %{_libdir}/wine/%{winesodir}/win32u.dll.so +%{_libdir}/wine/%{winesodir}/windows.devices.bluetooth.dll.so %{_libdir}/wine/%{winesodir}/windows.devices.enumeration.dll.so +%{_libdir}/wine/%{winesodir}/windows.devices.geolocation.geolocator.dll.so %{_libdir}/wine/%{winesodir}/windows.gaming.ui.gamebar.dll.so %{_libdir}/wine/%{winesodir}/windows.gaming.input.dll.so %{_libdir}/wine/%{winesodir}/windows.globalization.dll.so @@ -2458,6 +2465,7 @@ fi %{_libdir}/wine/%{winesodir}/windows.media.devices.dll.so %{_libdir}/wine/%{winesodir}/windows.networking.connectivity.so %{_libdir}/wine/%{winesodir}/windows.networking.dll.so +%{_libdir}/wine/%{winesodir}/windows.networking.hostname.dll.so %{_libdir}/wine/%{winesodir}/windows.perception.stub.dll.so %{_libdir}/wine/%{winesodir}/windows.system.profile.systemmanufacturers.dll.so %{_libdir}/wine/%{winesodir}/windows.ui.so @@ -2786,6 +2794,9 @@ fi %endif %changelog +* Mon Jul 10 2023 Michael Cronenworth - 8.12-1 +- version update + * Sun Jun 25 2023 Michael Cronenworth - 8.11-1 - version update From 3789343596125b0ae614ffa0240b261adb5b6c9b Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 10 Jul 2023 12:58:04 -0500 Subject: [PATCH 706/715] Skip the vkd3d-latest staging patch due to compile error https://bugs.winehq.org/show_bug.cgi?id=55221 --- wine.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 5cde043..9c5dc5b 100644 --- a/wine.spec +++ b/wine.spec @@ -690,7 +690,7 @@ gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 # https://bugs.winehq.org/show_bug.cgi?id=54868 sed -i 's/DWORD pitch_in, DWORD pitch_out/unsigned int pitch_in, unsigned int pitch_out/' patches/wined3d-WINED3DFMT_B8G8R8X8_UNORM/0001-wined3d-Implement-WINED3DFMT_B8G8R8X8_UNORM-to-WINED.patch -staging/patchinstall.py DESTDIR="`pwd`" --all +staging/patchinstall.py DESTDIR="`pwd`" --all -W vkd3d-latest %endif # 0%%{?wine_staging} From 3cbd6000b6bbe639274dfa2c837eb504fa6d5641 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 22 Jul 2023 18:13:52 +0000 Subject: [PATCH 707/715] Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- wine.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 9c5dc5b..fad2f5f 100644 --- a/wine.spec +++ b/wine.spec @@ -41,7 +41,7 @@ Name: wine Version: 8.12 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A compatibility layer for windows applications License: LGPL-2.1-or-later @@ -2794,6 +2794,9 @@ fi %endif %changelog +* Sat Jul 22 2023 Fedora Release Engineering - 8.12-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + * Mon Jul 10 2023 Michael Cronenworth - 8.12-1 - version update From d64a90d5271db25258add0f201a1c0bcfcd43e33 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Thu, 17 Aug 2023 11:34:10 -0500 Subject: [PATCH 708/715] Update to 8.13 --- sources | 6 +++--- wine-32.conf | 1 - wine-64.conf | 1 - wine.spec | 25 ++++++++----------------- 4 files changed, 11 insertions(+), 22 deletions(-) delete mode 100644 wine-32.conf delete mode 100644 wine-64.conf diff --git a/sources b/sources index d4fd3ec..902f183 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-8.12.tar.xz) = 6b9eab7ca1ed5a13202b1250d8d95f6bd8ee5176f0c39b5358aedaf28f7f23543f4a73bf0782c3b4e50936813fc2a459582b5d294569c976ace784fbd9e0af1b -SHA512 (wine-8.12.tar.xz.sign) = 3657d1143beed2cdfc87cfc4ce5f829240288cf193be42e2ab6c11a2c165ccb9c760db18f425cf5bae67db3e5ddb4bf7bbccdfe47bdb9ee5a6767503778dcc7a -SHA512 (wine-staging-8.12.tar.gz) = 11364b2367e25706b98c168710288b796e9dea1e3400efc0d010ea8827cb8c4187385f53aebd1fda46611902f6619282ea97ce9d7c20fe18aa48c14f15c99d14 +SHA512 (wine-8.13.tar.xz) = 952c670635f91879cf6908343a04c0f41ae54e213123242e24fc282f9705fbe3b800dc1de454b6cfb1ebb89431b0e6eb3df3b094c1d9f4e69835d0f1b8f4fcb5 +SHA512 (wine-8.13.tar.xz.sign) = 20f8ab9513ffddf0fee7c8506b2de252a5e67eb936433ee18c6a62e1fc8de83f677c337f3736bc45d57fdd6a94b2ab8e30bcb4a58dd4399969d4956cfc60bf84 +SHA512 (wine-staging-8.13.tar.gz) = b2104b0893ba27ee7f4f5495f7dee990962ff668786fd95e11af6d3975b7d00bc4ecb2572f280d27fbb6d1672745e0acbdb392ec7b3fd5b330a846783c23e12d diff --git a/wine-32.conf b/wine-32.conf deleted file mode 100644 index d9d71cd..0000000 --- a/wine-32.conf +++ /dev/null @@ -1 +0,0 @@ -/usr/lib/wine/ diff --git a/wine-64.conf b/wine-64.conf deleted file mode 100644 index 268f698..0000000 --- a/wine-64.conf +++ /dev/null @@ -1 +0,0 @@ -/usr/lib64/wine/ diff --git a/wine.spec b/wine.spec index fad2f5f..7660765 100644 --- a/wine.spec +++ b/wine.spec @@ -40,8 +40,8 @@ %endif Name: wine -Version: 8.12 -Release: 2%{?dist} +Version: 8.13 +Release: 1%{?dist} Summary: A compatibility layer for windows applications License: LGPL-2.1-or-later @@ -51,8 +51,6 @@ Source10: https://dl.winehq.org/wine/source/8.0/wine-%{version}.tar.xz.sig Source1: wine.systemd Source2: wine-README-Fedora -Source3: wine-32.conf -Source4: wine-64.conf # desktop files Source100: wine-notepad.desktop @@ -690,7 +688,7 @@ gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 # https://bugs.winehq.org/show_bug.cgi?id=54868 sed -i 's/DWORD pitch_in, DWORD pitch_out/unsigned int pitch_in, unsigned int pitch_out/' patches/wined3d-WINED3DFMT_B8G8R8X8_UNORM/0001-wined3d-Implement-WINED3DFMT_B8G8R8X8_UNORM-to-WINED.patch -staging/patchinstall.py DESTDIR="`pwd`" --all -W vkd3d-latest +staging/patchinstall.py DESTDIR="`pwd`" --all %endif # 0%%{?wine_staging} @@ -948,14 +946,6 @@ cp -p %{SOURCE502} README-tahoma mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d/ -%ifarch %{ix86} %{arm} -install -p -m644 %{SOURCE3} %{buildroot}%{_sysconfdir}/ld.so.conf.d/ -%endif - -%ifarch x86_64 aarch64 -install -p -m644 %{SOURCE4} %{buildroot}%{_sysconfdir}/ld.so.conf.d/ -%endif - # install Tahoma font for system package install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-tahoma-fonts @@ -1113,13 +1103,11 @@ fi %{_bindir}/wine32 %{_bindir}/wine32-preloader %{_bindir}/wineserver32 -%config %{_sysconfdir}/ld.so.conf.d/wine-32.conf %endif %ifarch x86_64 aarch64 %{_bindir}/wine64 %{_bindir}/wineserver64 -%config %{_sysconfdir}/ld.so.conf.d/wine-64.conf %endif %ifarch x86_64 aarch64 %{_bindir}/wine64-preloader @@ -1345,6 +1333,7 @@ fi %{_libdir}/wine/%{winepedir}/gamingtcui.dll %{_libdir}/wine/%{winepedir}/gdi32.dll %{_libdir}/wine/%{winepedir}/gdiplus.dll +%{_libdir}/wine/%{winepedir}/geolocation.dll %{_libdir}/wine/%{winepedir}/glu32.dll %{_libdir}/wine/%{winepedir}/gphoto2.ds %{_libdir}/wine/%{winesodir}/gphoto2.so @@ -1690,7 +1679,6 @@ fi %{_libdir}/wine/%{winepedir}/win32u.dll %{_libdir}/wine/%{winepedir}/windows.devices.bluetooth.dll %{_libdir}/wine/%{winepedir}/windows.devices.enumeration.dll -%{_libdir}/wine/%{winepedir}/windows.devices.geolocation.geolocator.dll %{_libdir}/wine/%{winepedir}/windows.gaming.ui.gamebar.dll %{_libdir}/wine/%{winepedir}/windows.gaming.input.dll %{_libdir}/wine/%{winepedir}/windows.globalization.dll @@ -2135,6 +2123,7 @@ fi %{_libdir}/wine/%{winesodir}/gamingtcui.dll.so %{_libdir}/wine/%{winesodir}/gdi32.dll.so %{_libdir}/wine/%{winesodir}/gdiplus.dll.so +%{_libdir}/wine/%{winesodir}/geolocation.dll.so %{_libdir}/wine/%{winesodir}/glu32.dll.so %{_libdir}/wine/%{winesodir}/gphoto2.ds.so %{_libdir}/wine/%{winesodir}/gpkcsp.dll.so @@ -2456,7 +2445,6 @@ fi %{_libdir}/wine/%{winesodir}/win32u.dll.so %{_libdir}/wine/%{winesodir}/windows.devices.bluetooth.dll.so %{_libdir}/wine/%{winesodir}/windows.devices.enumeration.dll.so -%{_libdir}/wine/%{winesodir}/windows.devices.geolocation.geolocator.dll.so %{_libdir}/wine/%{winesodir}/windows.gaming.ui.gamebar.dll.so %{_libdir}/wine/%{winesodir}/windows.gaming.input.dll.so %{_libdir}/wine/%{winesodir}/windows.globalization.dll.so @@ -2794,6 +2782,9 @@ fi %endif %changelog +* Thu Aug 17 2023 Michael Cronenworth - 8.13-1 +- version update + * Sat Jul 22 2023 Fedora Release Engineering - 8.12-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild From f2dd5f32e3e7999de0d45603af9b431a9a1d7d89 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Thu, 17 Aug 2023 11:51:51 -0500 Subject: [PATCH 709/715] Add new DLLs --- wine.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/wine.spec b/wine.spec index 7660765..ad89910 100644 --- a/wine.spec +++ b/wine.spec @@ -1140,7 +1140,7 @@ fi %{_libdir}/wine/%{winepedir}/fsutil.exe %{_libdir}/wine/%{winepedir}/hostname.exe %{_libdir}/wine/%{winepedir}/ipconfig.exe -%{_libdir}/wine/%{winepedir}/winhlp32.exe +%{_libdir}/wine/%{winepedir}/klist.exe %{_libdir}/wine/%{winepedir}/mshta.exe %{_libdir}/wine/%{winepedir}/msidb.exe %{_libdir}/wine/%{winepedir}/msiexec.exe @@ -1178,6 +1178,7 @@ fi %{_libdir}/wine/%{winepedir}/winemenubuilder.exe %{_libdir}/wine/%{winepedir}/winecfg.exe %{_libdir}/wine/%{winepedir}/winedevice.exe +%{_libdir}/wine/%{winepedir}/winhlp32.exe %{_libdir}/wine/%{winepedir}/wmplayer.exe %{_libdir}/wine/%{winepedir}/wscript.exe %{_libdir}/wine/%{winepedir}/uninstaller.exe @@ -1210,6 +1211,7 @@ fi %{_libdir}/wine/%{winepedir}/avrt.dll %{_libdir}/wine/%{winesodir}/bcrypt.so %{_libdir}/wine/%{winepedir}/bcrypt.dll +%{_libdir}/wine/%{winepedir}/bcryptprimitives.dll %{_libdir}/wine/%{winepedir}/bluetoothapis.dll %{_libdir}/wine/%{winepedir}/browseui.dll %{_libdir}/wine/%{winepedir}/bthprops.cpl @@ -1946,6 +1948,7 @@ fi %{_libdir}/wine/%{winesodir}/fsutil.exe.so %{_libdir}/wine/%{winesodir}/hostname.exe.so %{_libdir}/wine/%{winesodir}/ipconfig.exe.so +%{_libdir}/wine/%{winesodir}/klist.exe.so %{_libdir}/wine/%{winesodir}/winhlp32.exe.so %{_libdir}/wine/%{winesodir}/mshta.exe.so %if 0%{?wine_staging} @@ -2009,6 +2012,7 @@ fi %{_libdir}/wine/%{winesodir}/avifil32.dll.so %{_libdir}/wine/%{winesodir}/avrt.dll.so %{_libdir}/wine/%{winesodir}/bcrypt.dll.so +%{_libdir}/wine/%{winesodir}/bcryptprimitives.dll.so %{_libdir}/wine/%{winesodir}/bluetoothapis.dll.so %{_libdir}/wine/%{winesodir}/browseui.dll.so %{_libdir}/wine/%{winesodir}/bthprops.cpl.so From 4bd4c29784004226ec85e720ebed823197c00eb5 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Tue, 22 Aug 2023 08:29:43 -0500 Subject: [PATCH 710/715] Update to 8.14 --- sources | 6 +++--- wine.spec | 13 ++++++++++++- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/sources b/sources index 902f183..584d24f 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-8.13.tar.xz) = 952c670635f91879cf6908343a04c0f41ae54e213123242e24fc282f9705fbe3b800dc1de454b6cfb1ebb89431b0e6eb3df3b094c1d9f4e69835d0f1b8f4fcb5 -SHA512 (wine-8.13.tar.xz.sign) = 20f8ab9513ffddf0fee7c8506b2de252a5e67eb936433ee18c6a62e1fc8de83f677c337f3736bc45d57fdd6a94b2ab8e30bcb4a58dd4399969d4956cfc60bf84 -SHA512 (wine-staging-8.13.tar.gz) = b2104b0893ba27ee7f4f5495f7dee990962ff668786fd95e11af6d3975b7d00bc4ecb2572f280d27fbb6d1672745e0acbdb392ec7b3fd5b330a846783c23e12d +SHA512 (wine-8.14.tar.xz) = cf293546c29379237e8c2b7526b16faa0df6a255aa1718097be4382604da4f84f7fad8486a931f39020fe63548625641cf68a822c975f56c30aaa2aa8a024176 +SHA512 (wine-8.14.tar.xz.sign) = d8d4a0abf672f11f5a53c8098fa0e27370ed8d14a21f58af5db39a1b796c5f14f0f892809e914d1e6872ea9c5b859ba44d6d20c8002fd6ea83b22a36e5940164 +SHA512 (wine-staging-8.14.tar.gz) = c126ddd49f2c89b61448c71779f022f7031b19f1bc346d4aa1e8dbe4845f2c5d80e92810db5e0bbc0cae3d5f8466e2ab9a2c5685923318aedfb766669504a7db diff --git a/wine.spec b/wine.spec index ad89910..3e45b73 100644 --- a/wine.spec +++ b/wine.spec @@ -40,7 +40,7 @@ %endif Name: wine -Version: 8.13 +Version: 8.14 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -1352,6 +1352,7 @@ fi %{_libdir}/wine/%{winepedir}/hrtfapo.dll %{_libdir}/wine/%{winepedir}/http.sys %{_libdir}/wine/%{winepedir}/httpapi.dll +%{_libdir}/wine/%{winepedir}/hvsimanagementapi.dll %{_libdir}/wine/%{winepedir}/ia2comproxy.dll %{_libdir}/wine/%{winepedir}/icacls.exe %{_libdir}/wine/%{winepedir}/iccvid.dll @@ -1394,6 +1395,7 @@ fi %{_libdir}/wine/%{winepedir}/localui.dll %{_libdir}/wine/%{winepedir}/lodctr.exe %{_libdir}/wine/%{winepedir}/lz32.dll +%{_libdir}/wine/%{winepedir}/magnification.dll %{_libdir}/wine/%{winepedir}/mapi32.dll %{_libdir}/wine/%{winepedir}/mapistub.dll %{_libdir}/wine/%{winepedir}/mciavi32.dll @@ -1479,6 +1481,7 @@ fi %{_libdir}/wine/%{winepedir}/msvcp140_1.dll %{_libdir}/wine/%{winepedir}/msvcp140_2.dll %{_libdir}/wine/%{winepedir}/msvcp140_atomic_wait.dll +%{_libdir}/wine/%{winepedir}/msvcp140_codecvt_ids.dll %{_libdir}/wine/%{winepedir}/msvcr70.dll %{_libdir}/wine/%{winepedir}/msvcr71.dll %{_libdir}/wine/%{winepedir}/msvcr80.dll @@ -1681,6 +1684,7 @@ fi %{_libdir}/wine/%{winepedir}/win32u.dll %{_libdir}/wine/%{winepedir}/windows.devices.bluetooth.dll %{_libdir}/wine/%{winepedir}/windows.devices.enumeration.dll +%{_libdir}/wine/%{winepedir}/windows.devices.usb.dll %{_libdir}/wine/%{winepedir}/windows.gaming.ui.gamebar.dll %{_libdir}/wine/%{winepedir}/windows.gaming.input.dll %{_libdir}/wine/%{winepedir}/windows.globalization.dll @@ -2143,6 +2147,7 @@ fi %{_libdir}/wine/%{winesodir}/hrtfapo.dll.so %{_libdir}/wine/%{winesodir}/http.sys.so %{_libdir}/wine/%{winesodir}/httpapi.dll.so +%{_libdir}/wine/%{winesodir}/hvsimanagementapi.dll.so %{_libdir}/wine/%{winesodir}/ia2comproxy.dll.so %{_libdir}/wine/%{winesodir}/icacls.exe.so %{_libdir}/wine/%{winesodir}/iccvid.dll.so @@ -2180,6 +2185,7 @@ fi %{_libdir}/wine/%{winesodir}/localspl.dll.so %{_libdir}/wine/%{winesodir}/localui.dll.so %{_libdir}/wine/%{winesodir}/lodctr.exe.so +%{_libdir}/wine/%{winesodir}/magnification.dll.so %{_libdir}/wine/%{winesodir}/mapi32.dll.so %{_libdir}/wine/%{winesodir}/mapistub.dll.so %{_libdir}/wine/%{winesodir}/mciavi32.dll.so @@ -2260,6 +2266,7 @@ fi %{_libdir}/wine/%{winesodir}/msvcp140_1.dll.so %{_libdir}/wine/%{winesodir}/msvcp140_2.dll.so %{_libdir}/wine/%{winesodir}/msvcp140_atomic_wait.dll.so +%{_libdir}/wine/%{winesodir}/msvcp140_codecvt_ids.dll.so %{_libdir}/wine/%{winesodir}/msvcr70.dll.so %{_libdir}/wine/%{winesodir}/msvcr71.dll.so %{_libdir}/wine/%{winesodir}/msvcr80.dll.so @@ -2449,6 +2456,7 @@ fi %{_libdir}/wine/%{winesodir}/win32u.dll.so %{_libdir}/wine/%{winesodir}/windows.devices.bluetooth.dll.so %{_libdir}/wine/%{winesodir}/windows.devices.enumeration.dll.so +%{_libdir}/wine/%{winesodir}/windows.devices.usb.dll.so %{_libdir}/wine/%{winesodir}/windows.gaming.ui.gamebar.dll.so %{_libdir}/wine/%{winesodir}/windows.gaming.input.dll.so %{_libdir}/wine/%{winesodir}/windows.globalization.dll.so @@ -2786,6 +2794,9 @@ fi %endif %changelog +* Tue Aug 22 2023 Michael Cronenworth - 8.14-1 +- version update + * Thu Aug 17 2023 Michael Cronenworth - 8.13-1 - version update From 0c6186e21cc07ad7a31df44c53cece9f72d59aca Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 1 Oct 2023 14:59:42 -0500 Subject: [PATCH 711/715] Update to 8.17 --- sources | 6 +++--- wine.spec | 27 +++++++++++++++++++++------ 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/sources b/sources index 584d24f..4914460 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-8.14.tar.xz) = cf293546c29379237e8c2b7526b16faa0df6a255aa1718097be4382604da4f84f7fad8486a931f39020fe63548625641cf68a822c975f56c30aaa2aa8a024176 -SHA512 (wine-8.14.tar.xz.sign) = d8d4a0abf672f11f5a53c8098fa0e27370ed8d14a21f58af5db39a1b796c5f14f0f892809e914d1e6872ea9c5b859ba44d6d20c8002fd6ea83b22a36e5940164 -SHA512 (wine-staging-8.14.tar.gz) = c126ddd49f2c89b61448c71779f022f7031b19f1bc346d4aa1e8dbe4845f2c5d80e92810db5e0bbc0cae3d5f8466e2ab9a2c5685923318aedfb766669504a7db +SHA512 (wine-8.17.tar.xz) = 3826e20494a919ef1972d91c9391a3ae916d52b55e62e8fb7fc2c9c3ae6a7b363b40d8388cb4b9b3e45bae134a2de46e8158f8eaec7948216d9cd8ef32ab627f +SHA512 (wine-8.17.tar.xz.sign) = 37b34ac554fa614f28199b65d2ec6798d7e87f45ad1c7dee22af27ec8c13c2fadea56ca2b94a888ad3b5ec1d9b796c367a9ebcff60dc9f233a69b7a94edde2d7 +SHA512 (wine-staging-8.17.tar.gz) = 699d3caec080686986a3b66a6c905d4542a3f06a12def3f30ad9d97484c9a0c2ba00ab81ae75a8ec83eaad0ef8029fcc702ac2c1f0a46c60118b9e451afe7613 diff --git a/wine.spec b/wine.spec index 3e45b73..de46309 100644 --- a/wine.spec +++ b/wine.spec @@ -40,7 +40,7 @@ %endif Name: wine -Version: 8.14 +Version: 8.17 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -193,8 +193,8 @@ BuildRequires: mingw32-libxml2 BuildRequires: mingw64-libxml2 BuildRequires: mingw32-libxslt BuildRequires: mingw64-libxslt -BuildRequires: mingw32-vkd3d -BuildRequires: mingw64-vkd3d +BuildRequires: mingw32-vkd3d >= 1.9 +BuildRequires: mingw64-vkd3d >= 1.9 BuildRequires: mingw32-vulkan-headers BuildRequires: mingw64-vulkan-headers BuildRequires: mingw32-zlib @@ -327,7 +327,7 @@ Requires: mingw32-libpng Requires: mingw32-libtiff Requires: mingw32-libxml2 Requires: mingw32-libxslt -Requires: mingw32-vkd3d +Requires: mingw32-vkd3d >= 1.9 Requires: mingw32-win-iconv Requires: mingw32-zlib %endif @@ -361,7 +361,7 @@ Requires: mingw64-libpng Requires: mingw64-libtiff Requires: mingw64-libxml2 Requires: mingw64-libxslt -Requires: mingw64-vkd3d +Requires: mingw64-vkd3d >= 1.9 Requires: mingw64-win-iconv Requires: mingw64-zlib %endif @@ -688,7 +688,9 @@ gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 # https://bugs.winehq.org/show_bug.cgi?id=54868 sed -i 's/DWORD pitch_in, DWORD pitch_out/unsigned int pitch_in, unsigned int pitch_out/' patches/wined3d-WINED3DFMT_B8G8R8X8_UNORM/0001-wined3d-Implement-WINED3DFMT_B8G8R8X8_UNORM-to-WINED.patch -staging/patchinstall.py DESTDIR="`pwd`" --all +# https://bugs.winehq.org/show_bug.cgi?id=55695 +staging/patchinstall.py DESTDIR="`pwd`" --all \ + -W eventfd_synchronization %endif # 0%%{?wine_staging} @@ -1197,6 +1199,7 @@ fi %{_libdir}/wine/%{winepedir}/apisetschema.dll %{_libdir}/wine/%{winepedir}/apphelp.dll %{_libdir}/wine/%{winepedir}/appwiz.cpl +%{_libdir}/wine/%{winepedir}/appxdeploymentclient.dll %{_libdir}/wine/%{winepedir}/atl.dll %{_libdir}/wine/%{winepedir}/atl80.dll %{_libdir}/wine/%{winepedir}/atl90.dll @@ -1311,6 +1314,7 @@ fi %{_libdir}/wine/%{winepedir}/dwrite.dll %{_libdir}/wine/%{winesodir}/dwrite.so %{_libdir}/wine/%{winepedir}/dx8vb.dll +%{_libdir}/wine/%{winepedir}/dxcore.dll %{_libdir}/wine/%{winepedir}/dxdiagn.dll %ghost %{_libdir}/wine/%{winepedir}/dxgi.dll %{_libdir}/wine/%{winepedir}/wine-dxgi.dll @@ -1617,6 +1621,7 @@ fi %{_libdir}/wine/%{winepedir}/sppc.dll %{_libdir}/wine/%{winepedir}/srclient.dll %{_libdir}/wine/%{winepedir}/srvcli.dll +%{_libdir}/wine/%{winepedir}/srvsvc.dll %{_libdir}/wine/%{winepedir}/sspicli.dll %{_libdir}/wine/%{winepedir}/stdole2.tlb %{_libdir}/wine/%{winepedir}/stdole32.tlb @@ -1682,6 +1687,7 @@ fi %{_libdir}/wine/%{winepedir}/win32k.sys %endif %{_libdir}/wine/%{winepedir}/win32u.dll +%{_libdir}/wine/%{winepedir}/windows.applicationmodel.dll %{_libdir}/wine/%{winepedir}/windows.devices.bluetooth.dll %{_libdir}/wine/%{winepedir}/windows.devices.enumeration.dll %{_libdir}/wine/%{winepedir}/windows.devices.usb.dll @@ -1724,6 +1730,7 @@ fi %{_libdir}/wine/%{winesodir}/winspool.so %{_libdir}/wine/%{winepedir}/winsta.dll %{_libdir}/wine/%{winepedir}/wintypes.dll +%{_libdir}/wine/%{winepedir}/wldp.dll %{_libdir}/wine/%{winepedir}/wmasf.dll %{_libdir}/wine/%{winepedir}/wmi.dll %{_libdir}/wine/%{winepedir}/wmic.exe @@ -2004,6 +2011,7 @@ fi %{_libdir}/wine/%{winesodir}/amstream.dll.so %{_libdir}/wine/%{winesodir}/apphelp.dll.so %{_libdir}/wine/%{winesodir}/appwiz.cpl.so +%{_libdir}/wine/%{winesodir}/appxdeploymentclient.dll.so %{_libdir}/wine/%{winesodir}/atl.dll.so %{_libdir}/wine/%{winesodir}/atl80.dll.so %{_libdir}/wine/%{winesodir}/atl90.dll.so @@ -2109,6 +2117,7 @@ fi %{_libdir}/wine/%{winesodir}/dwmapi.dll.so %{_libdir}/wine/%{winesodir}/dwrite.dll.so %{_libdir}/wine/%{winesodir}/dx8vb.dll.so +%{_libdir}/wine/%{winesodir}/dxcore.dll.so %{_libdir}/wine/%{winesodir}/dxdiagn.dll.so %ghost %{_libdir}/wine/%{winesodir}/dxgi.dll.so %{_libdir}/wine/%{winesodir}/wine-dxgi.dll.so @@ -2393,6 +2402,7 @@ fi %if 0%{?wine_staging} %{_libdir}/wine/%{winesodir}/srvcli.dll.so %endif +%{_libdir}/wine/%{winesodir}/srvsvc.dll.so %{_libdir}/wine/%{winesodir}/sspicli.dll.so %{_libdir}/wine/%{winesodir}/sti.dll.so %{_libdir}/wine/%{winesodir}/strmdll.dll.so @@ -2454,6 +2464,7 @@ fi %{_libdir}/wine/%{winesodir}/wimgapi.dll.so %{_libdir}/wine/%{winesodir}/win32k.sys.so %{_libdir}/wine/%{winesodir}/win32u.dll.so +%{_libdir}/wine/%{winesodir}/windows.applicationmodel.dll.so %{_libdir}/wine/%{winesodir}/windows.devices.bluetooth.dll.so %{_libdir}/wine/%{winesodir}/windows.devices.enumeration.dll.so %{_libdir}/wine/%{winesodir}/windows.devices.usb.dll.so @@ -2487,6 +2498,7 @@ fi %{_libdir}/wine/%{winesodir}/winprint.dll.so %{_libdir}/wine/%{winesodir}/winspool.drv.so %{_libdir}/wine/%{winesodir}/winsta.dll.so +%{_libdir}/wine/%{winesodir}/wldp.dll.so %{_libdir}/wine/%{winesodir}/wmasf.dll.so %{_libdir}/wine/%{winesodir}/wmic.exe.so %{_libdir}/wine/%{winesodir}/wmiutils.dll.so @@ -2794,6 +2806,9 @@ fi %endif %changelog +* Sun Oct 01 2023 Michael Cronenworth - 8.17-1 +- version update + * Tue Aug 22 2023 Michael Cronenworth - 8.14-1 - version update From cd1d45170bc1db4ac9af3550f23bd636355df948 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Sun, 15 Oct 2023 14:47:10 -0500 Subject: [PATCH 712/715] Update to 8.18 --- sources | 6 +++--- wine.spec | 24 ++++++++++++++---------- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/sources b/sources index 4914460..0102728 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-8.17.tar.xz) = 3826e20494a919ef1972d91c9391a3ae916d52b55e62e8fb7fc2c9c3ae6a7b363b40d8388cb4b9b3e45bae134a2de46e8158f8eaec7948216d9cd8ef32ab627f -SHA512 (wine-8.17.tar.xz.sign) = 37b34ac554fa614f28199b65d2ec6798d7e87f45ad1c7dee22af27ec8c13c2fadea56ca2b94a888ad3b5ec1d9b796c367a9ebcff60dc9f233a69b7a94edde2d7 -SHA512 (wine-staging-8.17.tar.gz) = 699d3caec080686986a3b66a6c905d4542a3f06a12def3f30ad9d97484c9a0c2ba00ab81ae75a8ec83eaad0ef8029fcc702ac2c1f0a46c60118b9e451afe7613 +SHA512 (wine-8.18.tar.xz) = 0f8e6b5c6709930bc7f774d92cd025976f6442c3785a224b5988a37152f3a875150b228f12442e9b9c0d9e7884568aca26159df86d48f2550a630625fef3c8b9 +SHA512 (wine-8.18.tar.xz.sign) = a474013e2ebe8643670421b047c26829238a274bd30ca4bcd3cd07c530afb3e50956e186c25a01e03986345299d664bd9a2fa0e790b0a14d2a6acb3cdd5187d9 +SHA512 (wine-staging-8.18.tar.gz) = 1016849b3381a3ac039c2376517a5c7857f632eb1e49e9e3d6feedbc8c4e182da1a7117e89a1a1e4798121176e04b8f91cf3f3c001abf767398a3c3cd38850fb diff --git a/wine.spec b/wine.spec index de46309..28ce66d 100644 --- a/wine.spec +++ b/wine.spec @@ -40,7 +40,7 @@ %endif Name: wine -Version: 8.17 +Version: 8.18 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -688,9 +688,7 @@ gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 # https://bugs.winehq.org/show_bug.cgi?id=54868 sed -i 's/DWORD pitch_in, DWORD pitch_out/unsigned int pitch_in, unsigned int pitch_out/' patches/wined3d-WINED3DFMT_B8G8R8X8_UNORM/0001-wined3d-Implement-WINED3DFMT_B8G8R8X8_UNORM-to-WINED.patch -# https://bugs.winehq.org/show_bug.cgi?id=55695 -staging/patchinstall.py DESTDIR="`pwd`" --all \ - -W eventfd_synchronization +staging/patchinstall.py DESTDIR="`pwd`" --all %endif # 0%%{?wine_staging} @@ -767,10 +765,7 @@ unset PKG_CONFIG_PATH %install -%makeinstall \ - includedir=%{buildroot}%{_includedir} \ - sysconfdir=%{buildroot}%{_sysconfdir}/wine \ - dlldir=%{buildroot}%{_libdir}/wine \ +%make_install \ LDCONFIG=/bin/true \ UPDATE_DESKTOP_DATABASE=/bin/true @@ -1694,15 +1689,18 @@ fi %{_libdir}/wine/%{winepedir}/windows.gaming.ui.gamebar.dll %{_libdir}/wine/%{winepedir}/windows.gaming.input.dll %{_libdir}/wine/%{winepedir}/windows.globalization.dll -%{_libdir}/wine/%{winepedir}/windows.media.speech.dll %{_libdir}/wine/%{winepedir}/windows.media.dll %{_libdir}/wine/%{winepedir}/windows.media.devices.dll +%{_libdir}/wine/%{winepedir}/windows.media.mediacontrol.dll +%{_libdir}/wine/%{winepedir}/windows.media.speech.dll %if 0%{?wine_staging} %{_libdir}/wine/%{winepedir}/windows.networking.connectivity %endif %{_libdir}/wine/%{winepedir}/windows.networking.dll %{_libdir}/wine/%{winepedir}/windows.networking.hostname.dll %{_libdir}/wine/%{winepedir}/windows.perception.stub.dll +%{_libdir}/wine/%{winepedir}/windows.security.credentials.ui.userconsentverifier.dll +%{_libdir}/wine/%{winepedir}/windows.storage.applicationdata.dll %{_libdir}/wine/%{winepedir}/windows.system.profile.systemmanufacturers.dll %{_libdir}/wine/%{winepedir}/windows.ui.dll %{_libdir}/wine/%{winepedir}/windowscodecs.dll @@ -2471,13 +2469,16 @@ fi %{_libdir}/wine/%{winesodir}/windows.gaming.ui.gamebar.dll.so %{_libdir}/wine/%{winesodir}/windows.gaming.input.dll.so %{_libdir}/wine/%{winesodir}/windows.globalization.dll.so -%{_libdir}/wine/%{winesodir}/windows.media.speech.dll.so %{_libdir}/wine/%{winesodir}/windows.media.dll.so %{_libdir}/wine/%{winesodir}/windows.media.devices.dll.so +%{_libdir}/wine/%{winesodir}/windows.media.media.mediacontrol.dll.so +%{_libdir}/wine/%{winesodir}/windows.media.speech.dll.so %{_libdir}/wine/%{winesodir}/windows.networking.connectivity.so %{_libdir}/wine/%{winesodir}/windows.networking.dll.so %{_libdir}/wine/%{winesodir}/windows.networking.hostname.dll.so %{_libdir}/wine/%{winesodir}/windows.perception.stub.dll.so +%{_libdir}/wine/%{winesodir}/windows.security.credentials.ui.userconsentverifier.dll.so +%{_libdir}/wine/%{winesodir}/windows.storage.applicationdata.dll.so %{_libdir}/wine/%{winesodir}/windows.system.profile.systemmanufacturers.dll.so %{_libdir}/wine/%{winesodir}/windows.ui.so %{_libdir}/wine/%{winesodir}/windowscodecs.dll.so @@ -2806,6 +2807,9 @@ fi %endif %changelog +* Sun Oct 15 2023 Michael Cronenworth - 8.18-1 +- version update + * Sun Oct 01 2023 Michael Cronenworth - 8.17-1 - version update From 38d5389de5701f63f3bdd45a16429dc069fdae12 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 30 Oct 2023 11:39:14 -0500 Subject: [PATCH 713/715] Update to 8.19 --- sources | 6 +++--- wine.spec | 7 +++++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/sources b/sources index 0102728..5569b3d 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (wine-8.18.tar.xz) = 0f8e6b5c6709930bc7f774d92cd025976f6442c3785a224b5988a37152f3a875150b228f12442e9b9c0d9e7884568aca26159df86d48f2550a630625fef3c8b9 -SHA512 (wine-8.18.tar.xz.sign) = a474013e2ebe8643670421b047c26829238a274bd30ca4bcd3cd07c530afb3e50956e186c25a01e03986345299d664bd9a2fa0e790b0a14d2a6acb3cdd5187d9 -SHA512 (wine-staging-8.18.tar.gz) = 1016849b3381a3ac039c2376517a5c7857f632eb1e49e9e3d6feedbc8c4e182da1a7117e89a1a1e4798121176e04b8f91cf3f3c001abf767398a3c3cd38850fb +SHA512 (wine-8.19.tar.xz) = ad4178c5e9f336eb968f0c378e3819794507447728acd10d642c1d66e0745837e47a70579bc9c7d9bec4510ca47e230bf4ab05ddf39323669ed24a6fce9f8c02 +SHA512 (wine-8.19.tar.xz.sign) = d89e0cc1d6bbee93805906a7071e60044c9d9c3a9d5fedc270d7d85f0f167157afa047183ba1f4a801df11fa879168402097bb8a88e3c88ca77f2e6608046308 +SHA512 (wine-staging-8.19.tar.gz) = 764cb824250aba7390dcede8b5269fc2c58f3bab8e0bef5e7bfb33ba553d1b506e0e5d8e11e6ee960958bd22086127c178e418767e8051c2767949b74df2afb1 diff --git a/wine.spec b/wine.spec index 28ce66d..daca90b 100644 --- a/wine.spec +++ b/wine.spec @@ -3,7 +3,7 @@ %global no64bit 0 %global winegecko 2.47.4 -%global winemono 8.0.0 +%global winemono 8.1.0 #global _default_patch_fuzz 2 %ifarch %{ix86} %global winepedir i386-windows @@ -40,7 +40,7 @@ %endif Name: wine -Version: 8.18 +Version: 8.19 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -2807,6 +2807,9 @@ fi %endif %changelog +* Mon Oct 30 2023 Michael Cronenworth - 8.19-1 +- version update + * Sun Oct 15 2023 Michael Cronenworth - 8.18-1 - version update From 1710080362647b1f68545cddc6f34294f4c201c9 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Mon, 30 Oct 2023 12:04:30 -0500 Subject: [PATCH 714/715] Upstream only builds vcruntime140_1 on x86-64 starting with 8.19 --- wine.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/wine.spec b/wine.spec index daca90b..9f53d47 100644 --- a/wine.spec +++ b/wine.spec @@ -1661,7 +1661,9 @@ fi %{_libdir}/wine/%{winepedir}/vcomp120.dll %{_libdir}/wine/%{winepedir}/vcomp140.dll %{_libdir}/wine/%{winepedir}/vcruntime140.dll +%ifarch x86_64 %{_libdir}/wine/%{winepedir}/vcruntime140_1.dll +%endif %{_libdir}/wine/%{winepedir}/vdmdbg.dll %{_libdir}/wine/%{winepedir}/version.dll %{_libdir}/wine/%{winepedir}/vga.dll From ab34f63b3d2b16fa3bb7eb88737029e108f092a7 Mon Sep 17 00:00:00 2001 From: MSVSphere Packaging Team Date: Wed, 22 Nov 2023 16:41:30 +0300 Subject: [PATCH 715/715] Remove unnecessary files --- SPECS/wine.spec | 3017 +++++++++++++++++++++++++++++++++++++++++++++++ sources | 3 - 2 files changed, 3017 insertions(+), 3 deletions(-) create mode 100644 SPECS/wine.spec delete mode 100644 sources diff --git a/SPECS/wine.spec b/SPECS/wine.spec new file mode 100644 index 0000000..9f53d47 --- /dev/null +++ b/SPECS/wine.spec @@ -0,0 +1,3017 @@ +# Compiling the preloader fails with hardening enabled +%undefine _hardened_build + +%global no64bit 0 +%global winegecko 2.47.4 +%global winemono 8.1.0 +#global _default_patch_fuzz 2 +%ifarch %{ix86} +%global winepedir i386-windows +%global winesodir i386-unix +%endif +%ifarch x86_64 +%global winepedir x86_64-windows +%global winesodir x86_64-unix +%endif +%ifarch %{arm} +%global winepedir arm-windows +%global winesodir arm-unix +%endif +%ifarch aarch64 +%global winepedir aarch64-windows +%global winesodir aarch64-unix +%global __brp_llvm_compile_lto_elf %nil +%global __brp_strip_lto %nil +%global __brp_strip_static_archive %nil +%endif + +# build with wine-staging patches, see: https://github.com/wine-staging/wine-staging +%if 0%{?fedora} || 0%{?rhel} +%global wine_staging 1 +%endif +# 0%%{?fedora} + +# binfmt macros for RHEL +%if 0%{?rhel} == 7 +%global _binfmtdir /usr/lib/binfmt.d +%global binfmt_apply() \ +/usr/lib/systemd/systemd-binfmt %{?*} >/dev/null 2>&1 || : \ +%{nil} +%endif + +Name: wine +Version: 8.19 +Release: 1%{?dist} +Summary: A compatibility layer for windows applications + +License: LGPL-2.1-or-later +URL: https://www.winehq.org/ +Source0: https://dl.winehq.org/wine/source/8.0/wine-%{version}.tar.xz +Source10: https://dl.winehq.org/wine/source/8.0/wine-%{version}.tar.xz.sign + +Source1: wine.systemd +Source2: wine-README-Fedora + +# desktop files +Source100: wine-notepad.desktop +Source101: wine-regedit.desktop +Source102: wine-uninstaller.desktop +Source103: wine-winecfg.desktop +Source104: wine-winefile.desktop +Source105: wine-winemine.desktop +Source106: wine-winhelp.desktop +Source107: wine-wineboot.desktop +Source108: wine-wordpad.desktop +Source109: wine-oleview.desktop + +# AppData files +Source150: wine.appdata.xml + +# wine bugs + +# desktop dir +Source200: wine.menu +Source201: wine.directory + +# mime types +Source300: wine-mime-msi.desktop + + +# smooth tahoma (#693180) +# disable embedded bitmaps +Source501: wine-tahoma.conf +# and provide a readme +Source502: wine-README-tahoma + +# Autoconf 2.72 support - https://bugzilla.redhat.com/show_bug.cgi?id=2143724 +Patch100: wine-7.22-autoconf-2.72.patch + +Patch511: wine-cjk.patch + +%if 0%{?wine_staging} +# wine-staging patches +# pulseaudio-patch is covered by that patch-set, too. +Source900: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar.gz#/wine-staging-%{version}.tar.gz +%endif + +%if !%{?no64bit} +%if 0%{?fedora} > 36 +ExclusiveArch: %{ix86} x86_64 aarch64 +%else +# Fedora 36 Clang doesn't build PE binaries on ARM at the moment +ExclusiveArch: %{ix86} x86_64 +%endif +%else +ExclusiveArch: %{ix86} +%endif + +BuildRequires: bison +BuildRequires: flex +%ifarch %{arm} aarch64 +BuildRequires: clang >= 5.0 +BuildRequires: lld +%else +BuildRequires: gcc +%endif +BuildRequires: autoconf +BuildRequires: make +BuildRequires: desktop-file-utils +BuildRequires: alsa-lib-devel +BuildRequires: audiofile-devel +BuildRequires: freeglut-devel +BuildRequires: libieee1284-devel + +BuildRequires: librsvg2 +BuildRequires: librsvg2-devel +BuildRequires: libstdc++-devel +BuildRequires: pkgconfig(libusb-1.0) +%if 0%{?fedora} +BuildRequires: ocl-icd-devel +BuildRequires: opencl-headers +%endif +BuildRequires: openldap-devel +BuildRequires: perl-generators +BuildRequires: unixODBC-devel +BuildRequires: sane-backends-devel +BuildRequires: systemd-devel +BuildRequires: fontforge freetype-devel +BuildRequires: libgphoto2-devel +BuildRequires: libpcap-devel +# modular x +BuildRequires: libX11-devel +BuildRequires: mesa-libGL-devel mesa-libGLU-devel mesa-libOSMesa-devel +BuildRequires: libXxf86dga-devel libXxf86vm-devel +BuildRequires: libXrandr-devel libXrender-devel +BuildRequires: libXext-devel +BuildRequires: libXinerama-devel +BuildRequires: libXcomposite-devel +BuildRequires: fontconfig-devel +BuildRequires: giflib-devel +BuildRequires: cups-devel +BuildRequires: libXmu-devel +BuildRequires: libXi-devel +BuildRequires: libXcursor-devel +BuildRequires: dbus-devel +BuildRequires: gnutls-devel +BuildRequires: pulseaudio-libs-devel +BuildRequires: gsm-devel +BuildRequires: libv4l-devel +BuildRequires: fontpackages-devel +BuildRequires: gettext-devel +BuildRequires: chrpath +BuildRequires: gstreamer1-devel +BuildRequires: gstreamer1-plugins-base-devel +%if 0%{?fedora} > 24 +BuildRequires: mpg123-devel +%endif +BuildRequires: SDL2-devel +BuildRequires: vulkan-devel +BuildRequires: libappstream-glib + +# Silverlight DRM-stuff needs XATTR enabled. +%if 0%{?wine_staging} +BuildRequires: gtk3-devel +BuildRequires: libattr-devel +BuildRequires: libva-devel +%endif +# 0%%{?wine_staging} + +BuildRequires: icoutils + +%ifarch %{ix86} x86_64 +BuildRequires: mingw32-FAudio +BuildRequires: mingw64-FAudio +BuildRequires: mingw32-gcc +BuildRequires: mingw64-gcc +BuildRequires: mingw32-lcms2 +BuildRequires: mingw64-lcms2 +BuildRequires: mingw32-libpng +BuildRequires: mingw64-libpng +BuildRequires: mingw32-libtiff +BuildRequires: mingw64-libtiff +BuildRequires: mingw32-libxml2 +BuildRequires: mingw64-libxml2 +BuildRequires: mingw32-libxslt +BuildRequires: mingw64-libxslt +BuildRequires: mingw32-vkd3d >= 1.9 +BuildRequires: mingw64-vkd3d >= 1.9 +BuildRequires: mingw32-vulkan-headers +BuildRequires: mingw64-vulkan-headers +BuildRequires: mingw32-zlib +BuildRequires: mingw64-zlib +%endif + +Requires: wine-common = %{version}-%{release} +Requires: wine-desktop = %{version}-%{release} +Requires: wine-fonts = %{version}-%{release} + +# x86-32 parts +%ifarch %{ix86} x86_64 +%if 0%{?fedora} || 0%{?rhel} <= 6 +Requires: wine-core(x86-32) = %{version}-%{release} +Requires: wine-cms(x86-32) = %{version}-%{release} +Requires: wine-ldap(x86-32) = %{version}-%{release} +Requires: wine-twain(x86-32) = %{version}-%{release} +Requires: wine-pulseaudio(x86-32) = %{version}-%{release} +%if 0%{?fedora} +Requires: wine-opencl(x86-32) = %{version}-%{release} +%endif +%if 0%{?fedora} >= 17 +Requires: mingw32-wine-gecko = %winegecko +Requires: wine-mono = %winemono +%endif +# wait for rhbz#968860 to require arch-specific samba-winbind-clients +Requires: /usr/bin/ntlm_auth +Requires: mesa-dri-drivers(x86-32) +%endif +%if 0%{?fedora} >= 33 +Recommends: wine-dxvk(x86-32) +Recommends: dosbox-staging +%endif +Recommends: gstreamer1-plugins-good(x86-32) +%endif + +# x86-64 parts +%ifarch x86_64 +Requires: wine-core(x86-64) = %{version}-%{release} +Requires: wine-cms(x86-64) = %{version}-%{release} +Requires: wine-ldap(x86-64) = %{version}-%{release} +Requires: wine-twain(x86-64) = %{version}-%{release} +Requires: wine-pulseaudio(x86-64) = %{version}-%{release} +%if 0%{?fedora} +Requires: wine-opencl(x86-64) = %{version}-%{release} +%endif +%if 0%{?fedora} >= 17 +Requires: mingw64-wine-gecko = %winegecko +Requires: wine-mono = %winemono +%endif +Requires: mesa-dri-drivers(x86-64) +%if 0%{?fedora} >= 33 +Recommends: wine-dxvk(x86-64) +Recommends: dosbox-staging +%endif +Recommends: gstreamer1-plugins-good(x86-64) +%endif + +# ARM parts +%ifarch %{arm} aarch64 +Requires: wine-core = %{version}-%{release} +Requires: wine-cms = %{version}-%{release} +Requires: wine-ldap = %{version}-%{release} +Requires: wine-twain = %{version}-%{release} +Requires: wine-pulseaudio = %{version}-%{release} +%if 0%{?fedora} +Requires: wine-opencl = %{version}-%{release} +%endif +Requires: mesa-dri-drivers +Requires: samba-winbind-clients +%endif + +# aarch64 parts +%ifarch aarch64 +Requires: wine-core(aarch-64) = %{version}-%{release} +Requires: wine-cms(aarch-64) = %{version}-%{release} +Requires: wine-ldap(aarch-64) = %{version}-%{release} +Requires: wine-twain(aarch-64) = %{version}-%{release} +Requires: wine-pulseaudio(aarch-64) = %{version}-%{release} +Requires: wine-opencl(aarch-64) = %{version}-%{release} +Requires: mingw64-wine-gecko = %winegecko +Requires: mesa-dri-drivers(aarch-64) +%endif + +%description +Wine as a compatibility layer for UNIX to run Windows applications. This +package includes a program loader, which allows unmodified Windows +3.x/9x/NT binaries to run on x86 and x86_64 Unixes. Wine can use native system +.dll files if they are available. + +In Fedora wine is a meta-package which will install everything needed for wine +to work smoothly. Smaller setups can be achieved by installing some of the +wine-* sub packages. + +%package core +Summary: Wine core package +Requires(postun): /sbin/ldconfig +Requires(posttrans): %{_sbindir}/alternatives +Requires(preun): %{_sbindir}/alternatives + +# require -filesystem +Requires: wine-filesystem = %{version}-%{release} + +%ifarch %{ix86} +# CUPS support uses dlopen - rhbz#1367537 +Requires: cups-libs(x86-32) +Requires: freetype(x86-32) +Requires: (nss-mdns(x86-32) if nss-mdns(x86-64)) +Requires: gnutls(x86-32) +Requires: libXcomposite(x86-32) +Requires: libXcursor(x86-32) +Requires: libXinerama(x86-32) +Requires: libXrandr(x86-32) +Requires: libXrender(x86-32) +#dlopen in windowscodesc (fixes rhbz#1085075) +Requires: libpng(x86-32) +Requires: libpcap(x86-32) +Requires: mesa-libOSMesa(x86-32) +Requires: libv4l(x86-32) +Requires: unixODBC(x86-32) +Requires: SDL2(x86-32) +Requires: vulkan-loader(x86-32) +%if 0%{?wine_staging} +Requires: libva(x86-32) +%endif +Requires: mingw32-FAudio +Requires: mingw32-lcms2 +Requires: mingw32-libjpeg-turbo +Requires: mingw32-libpng +Requires: mingw32-libtiff +Requires: mingw32-libxml2 +Requires: mingw32-libxslt +Requires: mingw32-vkd3d >= 1.9 +Requires: mingw32-win-iconv +Requires: mingw32-zlib +%endif + +%ifarch x86_64 +# CUPS support uses dlopen - rhbz#1367537 +Requires: cups-libs(x86-64) +Requires: freetype(x86-64) +Requires: (nss-mdns(x86-64) if nss-mdns(x86-32)) +Requires: gnutls(x86-64) +Requires: libXcomposite(x86-64) +Requires: libXcursor(x86-64) +Requires: libXinerama(x86-64) +Requires: libXrandr(x86-64) +Requires: libXrender(x86-64) +#dlopen in windowscodesc (fixes rhbz#1085075) +Requires: libpng(x86-64) +Requires: libpcap(x86-64) +Requires: mesa-libOSMesa(x86-64) +Requires: libv4l(x86-64) +Requires: unixODBC(x86-64) +Requires: SDL2(x86-64) +Requires: vulkan-loader(x86-64) +%if 0%{?wine_staging} +Requires: libva(x86-64) +%endif +Requires: mingw64-FAudio +Requires: mingw64-lcms2 +Requires: mingw64-libjpeg-turbo +Requires: mingw64-libpng +Requires: mingw64-libtiff +Requires: mingw64-libxml2 +Requires: mingw64-libxslt +Requires: mingw64-vkd3d >= 1.9 +Requires: mingw64-win-iconv +Requires: mingw64-zlib +%endif + +%ifarch %{arm} aarch64 +# CUPS support uses dlopen - rhbz#1367537 +Requires: cups-libs +Requires: freetype +Requires: nss-mdns +Requires: gnutls +Requires: libXrender +Requires: libXcursor +#dlopen in windowscodesc (fixes rhbz#1085075) +Requires: libpng +Requires: libpcap +Requires: mesa-libOSMesa +Requires: libv4l +Requires: unixODBC +Requires: SDL2 +Requires: vulkan-loader +%if 0%{?wine_staging} +Requires: libva +%endif +%endif + +Provides: bundled(libjpeg) = 9e +Provides: bundled(mpg123-libs) = 1.29.3 + +# removed as of 7.21 +Obsoletes: wine-openal < 7.21 +Provides: wine-openal = %{version}-%{release} + +%description core +Wine core package includes the basic wine stuff needed by all other packages. + +%package systemd +Summary: Systemd config for the wine binfmt handler +Requires: systemd >= 23 +BuildArch: noarch +Requires(post): systemd +Requires(postun): systemd +Obsoletes: wine-sysvinit < %{version}-%{release} + +%description systemd +Register the wine binary handler for windows executables via systemd binfmt +handling. See man binfmt.d for further information. + +%package filesystem +Summary: Filesystem directories for wine +BuildArch: noarch + +%description filesystem +Filesystem directories and basic configuration for wine. + +%package common +Summary: Common files +Requires: wine-core = %{version}-%{release} +BuildArch: noarch + +%description common +Common wine files and scripts. + +%package desktop +Summary: Desktop integration features for wine +Requires(post): desktop-file-utils >= 0.8 +Requires(postun): desktop-file-utils >= 0.8 +Requires: wine-core = %{version}-%{release} +Requires: wine-common = %{version}-%{release} +Requires: wine-systemd = %{version}-%{release} +Requires: hicolor-icon-theme +BuildArch: noarch + +%description desktop +Desktop integration features for wine, including mime-types and a binary format +handler service. + +%package fonts +Summary: Wine font files +BuildArch: noarch +# arial-fonts are available with wine-staging patchset, only. +%if 0%{?wine_staging} +Requires: wine-arial-fonts = %{version}-%{release} +%else +# 0%%{?wine_staging} +Obsoletes: wine-arial-fonts <= %{version}-%{release} +%endif +# 0%%{?wine_staging} +Requires: wine-courier-fonts = %{version}-%{release} +Requires: wine-fixedsys-fonts = %{version}-%{release} +Requires: wine-small-fonts = %{version}-%{release} +Requires: wine-system-fonts = %{version}-%{release} +Requires: wine-marlett-fonts = %{version}-%{release} +Requires: wine-ms-sans-serif-fonts = %{version}-%{release} +Requires: wine-tahoma-fonts = %{version}-%{release} +# times-new-roman-fonts are available with wine_staging-patchset, only. +%if 0%{?wine_staging} +Requires: wine-times-new-roman-fonts = %{version}-%{release} +%else +# 0%%{?wine_staging} +Obsoletes: wine-times-new-roman-fonts <= %{version}-%{release} +Obsoletes: wine-times-new-roman-fonts-system <= %{version}-%{release} +%endif +# 0%%{?wine_staging} +Requires: wine-symbol-fonts = %{version}-%{release} +Requires: wine-webdings-fonts = %{version}-%{release} +Requires: wine-wingdings-fonts = %{version}-%{release} +# intermediate fix for #593140 +Requires: liberation-sans-fonts liberation-serif-fonts liberation-mono-fonts +Requires: liberation-narrow-fonts + +%description fonts +%{summary} + +%if 0%{?wine_staging} +%package arial-fonts +Summary: Wine Arial font family +BuildArch: noarch +Requires: fontpackages-filesystem + +%description arial-fonts +%{summary} +%endif +# 0%%{?wine_staging} + +%package courier-fonts +Summary: Wine Courier font family +BuildArch: noarch +Requires: fontpackages-filesystem + +%description courier-fonts +%{summary} + +%package fixedsys-fonts +Summary: Wine Fixedsys font family +BuildArch: noarch +Requires: fontpackages-filesystem + +%description fixedsys-fonts +%{summary} + +%package small-fonts +Summary: Wine Small font family +BuildArch: noarch +Requires: fontpackages-filesystem + +%description small-fonts +%{summary} + +%package system-fonts +Summary: Wine System font family +BuildArch: noarch +Requires: fontpackages-filesystem + +%description system-fonts +%{summary} + + +%package marlett-fonts +Summary: Wine Marlett font family +BuildArch: noarch +Requires: fontpackages-filesystem + +%description marlett-fonts +%{summary} + + +%package ms-sans-serif-fonts +Summary: Wine MS Sans Serif font family +BuildArch: noarch +Requires: fontpackages-filesystem + +%description ms-sans-serif-fonts +%{summary} + +# rhbz#693180 +# http://lists.fedoraproject.org/pipermail/devel/2012-June/168153.html +%package tahoma-fonts +Summary: Wine Tahoma font family +BuildArch: noarch +Requires: wine-filesystem = %{version}-%{release} + +%description tahoma-fonts +%{summary} +Please note: If you want system integration for wine tahoma fonts install the +wine-tahoma-fonts-system package. + +%package tahoma-fonts-system +Summary: Wine Tahoma font family system integration +BuildArch: noarch +Requires: fontpackages-filesystem +Requires: wine-tahoma-fonts = %{version}-%{release} + +%description tahoma-fonts-system +%{summary} + +%if 0%{?wine_staging} +%package times-new-roman-fonts +Summary: Wine Times New Roman font family +BuildArch: noarch +Requires: wine-filesystem = %{version}-%{release} + +%description times-new-roman-fonts +%{summary} +Please note: If you want system integration for wine times new roman fonts install the +wine-times-new-roman-fonts-system package. + +%package times-new-roman-fonts-system +Summary: Wine Times New Roman font family system integration +BuildArch: noarch +Requires: fontpackages-filesystem +Requires: wine-times-new-roman-fonts = %{version}-%{release} + +%description times-new-roman-fonts-system +%{summary} +%endif + +%package symbol-fonts +Summary: Wine Symbol font family +BuildArch: noarch +Requires: fontpackages-filesystem + +%description symbol-fonts +%{summary} + +%package webdings-fonts +Summary: Wine Webdings font family +BuildArch: noarch +Requires: fontpackages-filesystem + +%description webdings-fonts +%{summary} + +%package wingdings-fonts +Summary: Wine Wingdings font family +BuildArch: noarch +Requires: fontpackages-filesystem + +%description wingdings-fonts +%{summary} +Please note: If you want system integration for wine wingdings fonts install the +wine-wingdings-fonts-system package. + +%package wingdings-fonts-system +Summary: Wine Wingdings font family system integration +BuildArch: noarch +Requires: fontpackages-filesystem +Requires: wine-wingdings-fonts = %{version}-%{release} + +%description wingdings-fonts-system +%{summary} + + +%package ldap +Summary: LDAP support for wine +Requires: wine-core = %{version}-%{release} + +%description ldap +LDAP support for wine + +%package cms +Summary: Color Management for wine +Requires: wine-core = %{version}-%{release} + +%description cms +Color Management for wine + +%package twain +Summary: Twain support for wine +Requires: wine-core = %{version}-%{release} +%ifarch %{ix86} +Requires: sane-backends-libs(x86-32) +%endif +%ifarch x86_64 +Requires: sane-backends-libs(x86-64) +%endif +%ifarch %{arm} aarch64 +Requires: sane-backends-libs +%endif + +%description twain +Twain support for wine + +%package devel +Summary: Wine development environment +Requires: wine-core = %{version}-%{release} + +%description devel +Header, include files and library definition files for developing applications +with the Wine Windows(TM) emulation libraries. + +%package pulseaudio +Summary: Pulseaudio support for wine +Requires: wine-core = %{version}-%{release} +# midi output +Requires: wine-alsa%{?_isa} = %{version}-%{release} + +%description pulseaudio +This package adds a pulseaudio driver for wine. + +%package alsa +Summary: Alsa support for wine +Requires: wine-core = %{version}-%{release} + +%description alsa +This package adds an alsa driver for wine. + +%if 0%{?fedora} +%package opencl +Summary: OpenCL support for wine +Requires: wine-core = %{version}-%{release} + +%Description opencl +This package adds the opencl driver for wine. +%endif + +%prep +%setup -qn wine-%{version} +%patch -P 100 -p1 -b.autoconf +%patch -P 511 -p1 -b.cjk + +%if 0%{?wine_staging} +# setup and apply wine-staging patches +gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 + +# https://bugs.winehq.org/show_bug.cgi?id=54868 +sed -i 's/DWORD pitch_in, DWORD pitch_out/unsigned int pitch_in, unsigned int pitch_out/' patches/wined3d-WINED3DFMT_B8G8R8X8_UNORM/0001-wined3d-Implement-WINED3DFMT_B8G8R8X8_UNORM-to-WINED.patch +staging/patchinstall.py DESTDIR="`pwd`" --all + +%endif +# 0%%{?wine_staging} + +%build +# This package uses top level ASM constructs which are incompatible with LTO. +# Top level ASMs are often used to implement symbol versioning. gcc-10 +# introduces a new mechanism for symbol versioning which works with LTO. +# Converting packages to use that mechanism instead of toplevel ASMs is +# recommended. +# Disable LTO +%define _lto_cflags %{nil} + +# disable fortify as it breaks wine +# http://bugs.winehq.org/show_bug.cgi?id=24606 +# http://bugs.winehq.org/show_bug.cgi?id=25073 +%undefine _fortify_level +# Disable Red Hat specs for package notes (Fedora 38+) and annobin. +# MinGW GCC does not support these options. +%if 0%{?fedora_version} == 36 +export LDFLAGS="$(echo "%{build_ldflags}" | sed -e 's/-Wl,-z,relro//' -e 's/-Wl,--build-id=sha1//' -e 's/-Wl,-dT,\/home\/abuild\/rpmbuild\/BUILD\/wine.*//' -e 's/-specs=\/usr\/lib\/rpm\/redhat\/redhat-annobin-cc1//')" +%else +export LDFLAGS="$(echo "%{build_ldflags}" | sed -e 's/-Wl,-z,relro//' -e 's/-Wl,--build-id=sha1//' -e 's/-specs=\/usr\/lib\/rpm\/redhat\/redhat-package-notes//' -e 's/-specs=\/usr\/lib\/rpm\/redhat\/redhat-annobin-cc1//')" +%endif +%ifarch x86_64 +export CFLAGS="$(echo "%{optflags}" | sed -e 's/-O2//' -e 's/-fcf-protection//' -e 's/-fstack-protector-strong//' -e 's/-fstack-clash-protection//' -e 's/-specs=\/usr\/lib\/rpm\/redhat\/redhat-annobin-cc1//') -O2" +%else +export CFLAGS="$(echo "%{optflags}" | sed -e 's/-fcf-protection//' -e 's/-fstack-protector-strong//' -e 's/-fstack-clash-protection//' -e 's/-specs=\/usr\/lib\/rpm\/redhat\/redhat-annobin-cc1//')" +%endif + +%ifarch %{arm} aarch64 +# Wine enabled -Wl,-WX that turns linker warnings into errors +# Fedora passes '--as-needed' for all binaries and this is a warning from the linker, now an error, so disable flag for now +sed -i 's/-Wl,-WX//g' configure +%if 0%{?fedora} >= 33 +%global toolchain clang +%else +# ARM64 now requires clang +# https://source.winehq.org/git/wine.git/commit/8fb8cc03c3edb599dd98f369e14a08f899cbff95 +export CC="/usr/bin/clang" +# Fedora's default compiler flags now conflict with what clang supports +# https://bugzilla.redhat.com/show_bug.cgi?id=1658311 +export CFLAGS="`echo $CFLAGS | sed -e 's/-fstack-clash-protection//'`" +%endif +%endif +%ifarch armv7hl +export CFLAGS="`echo $CFLAGS | sed -e 's/-fexceptions//'`" +%endif + +# required so that both Linux and Windows development files can be found +unset PKG_CONFIG_PATH + +%configure \ + --sysconfdir=%{_sysconfdir}/wine \ + --x-includes=%{_includedir} --x-libraries=%{_libdir} \ + --with-dbus \ + --with-x \ +%ifarch %{arm} + --with-float-abi=hard \ +%endif +%ifarch x86_64 aarch64 + --enable-win64 \ +%ifarch x86_64 + --with-system-dllpath=%{mingw64_bindir} \ +%endif +%endif +%ifarch %{ix86} + --with-system-dllpath=%{mingw32_bindir} \ +%endif +%{?wine_staging: --with-xattr} \ + --disable-tests + +%make_build TARGETFLAGS="" + +%install + +%make_install \ + LDCONFIG=/bin/true \ + UPDATE_DESKTOP_DATABASE=/bin/true + +# setup for alternatives usage +%ifarch x86_64 aarch64 +%ifarch aarch64 +mv %{buildroot}%{_bindir}/wine %{buildroot}%{_bindir}/wine64 +mv %{buildroot}%{_bindir}/wine-preloader %{buildroot}%{_bindir}/wine64-preloader +%endif +mv %{buildroot}%{_bindir}/wineserver %{buildroot}%{_bindir}/wineserver64 +%endif +%ifarch %{ix86} %{arm} +mv %{buildroot}%{_bindir}/wine %{buildroot}%{_bindir}/wine32 +mv %{buildroot}%{_bindir}/wineserver %{buildroot}%{_bindir}/wineserver32 +%endif +%ifnarch aarch64 x86_64 +mv %{buildroot}%{_bindir}/wine-preloader %{buildroot}%{_bindir}/wine32-preloader +%endif +touch %{buildroot}%{_bindir}/wine +touch %{buildroot}%{_bindir}/wine-preloader +touch %{buildroot}%{_bindir}/wineserver +mv %{buildroot}%{_libdir}/wine/%{winepedir}/dxgi.dll %{buildroot}%{_libdir}/wine/%{winepedir}/wine-dxgi.dll +mv %{buildroot}%{_libdir}/wine/%{winepedir}/d3d9.dll %{buildroot}%{_libdir}/wine/%{winepedir}/wine-d3d9.dll +mv %{buildroot}%{_libdir}/wine/%{winepedir}/d3d10.dll %{buildroot}%{_libdir}/wine/%{winepedir}/wine-d3d10.dll +mv %{buildroot}%{_libdir}/wine/%{winepedir}/d3d10_1.dll %{buildroot}%{_libdir}/wine/%{winepedir}/wine-d3d10_1.dll +mv %{buildroot}%{_libdir}/wine/%{winepedir}/d3d10core.dll %{buildroot}%{_libdir}/wine/%{winepedir}/wine-d3d10core.dll +mv %{buildroot}%{_libdir}/wine/%{winepedir}/d3d11.dll %{buildroot}%{_libdir}/wine/%{winepedir}/wine-d3d11.dll +touch %{buildroot}%{_libdir}/wine/%{winepedir}/dxgi.dll +touch %{buildroot}%{_libdir}/wine/%{winepedir}/d3d9.dll +touch %{buildroot}%{_libdir}/wine/%{winepedir}/d3d10.dll +touch %{buildroot}%{_libdir}/wine/%{winepedir}/d3d10_1.dll +touch %{buildroot}%{_libdir}/wine/%{winepedir}/d3d10core.dll +touch %{buildroot}%{_libdir}/wine/%{winepedir}/d3d11.dll + +# remove rpath +chrpath --delete %{buildroot}%{_bindir}/wmc +chrpath --delete %{buildroot}%{_bindir}/wrc +%ifarch x86_64 aarch64 +chrpath --delete %{buildroot}%{_bindir}/wine64 +chrpath --delete %{buildroot}%{_bindir}/wineserver64 +%else +chrpath --delete %{buildroot}%{_bindir}/wine32 +chrpath --delete %{buildroot}%{_bindir}/wineserver32 +%endif + +mkdir -p %{buildroot}%{_sysconfdir}/wine + +# Allow users to launch Windows programs by just clicking on the .exe file... +mkdir -p %{buildroot}%{_binfmtdir} +install -p -c -m 644 %{SOURCE1} %{buildroot}%{_binfmtdir}/wine.conf + +# add wine dir to desktop +mkdir -p %{buildroot}%{_sysconfdir}/xdg/menus/applications-merged +install -p -m 644 %{SOURCE200} \ +%{buildroot}%{_sysconfdir}/xdg/menus/applications-merged/wine.menu +mkdir -p %{buildroot}%{_datadir}/desktop-directories +install -p -m 644 %{SOURCE201} \ +%{buildroot}%{_datadir}/desktop-directories/Wine.directory + +# add gecko dir +mkdir -p %{buildroot}%{_datadir}/wine/gecko + +# add mono dir +mkdir -p %{buildroot}%{_datadir}/wine/mono + +# extract and install icons +mkdir -p %{buildroot}%{_datadir}/icons/hicolor/scalable/apps + +# This replacement masks a composite program icon .SVG down +# so that only its full-size scalable icon is visible +PROGRAM_ICONFIX='s/height="272"/height="256"/;'\ +'s/width="632"/width="256"\n'\ +' x="368"\n'\ +' y="8"\n'\ +' viewBox="368, 8, 256, 256"/;' +MAIN_ICONFIX='s/height="272"/height="256"/;'\ +'s/width="632"/width="256"\n'\ +' x="8"\n'\ +' y="8"\n'\ +' viewBox="8, 8, 256, 256"/;' + +# This icon file is still in the legacy format +install -p -m 644 dlls/user32/resources/oic_winlogo.svg \ + %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/wine.svg +sed -i -e "$MAIN_ICONFIX" %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/wine.svg + +# The rest come from programs/, and contain larger scalable icons +# with a new layout that requires the PROGRAM_ICONFIX sed adjustment +install -p -m 644 programs/notepad/notepad.svg \ + %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/notepad.svg +sed -i -e "$PROGRAM_ICONFIX" %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/notepad.svg + +install -p -m 644 programs/regedit/regedit.svg \ + %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/regedit.svg +sed -i -e "$PROGRAM_ICONFIX" %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/regedit.svg + +install -p -m 644 programs/msiexec/msiexec.svg \ + %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/msiexec.svg +sed -i -e "$PROGRAM_ICONFIX" %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/msiexec.svg + +install -p -m 644 programs/winecfg/winecfg.svg \ + %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/winecfg.svg +sed -i -e "$PROGRAM_ICONFIX" %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/winecfg.svg + +install -p -m 644 programs/winefile/winefile.svg \ + %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/winefile.svg +sed -i -e "$PROGRAM_ICONFIX" %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/winefile.svg + +install -p -m 644 programs/winemine/winemine.svg \ + %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/winemine.svg +sed -i -e "$PROGRAM_ICONFIX" %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/winemine.svg + +install -p -m 644 programs/winhlp32/winhelp.svg \ + %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/winhelp.svg +sed -i -e "$PROGRAM_ICONFIX" %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/winhelp.svg + +install -p -m 644 programs/wordpad/wordpad.svg \ + %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/wordpad.svg +sed -i -e "$PROGRAM_ICONFIX" %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/wordpad.svg + +# install desktop files +desktop-file-install \ + --dir=%{buildroot}%{_datadir}/applications \ + %{SOURCE100} + +desktop-file-install \ + --dir=%{buildroot}%{_datadir}/applications \ + %{SOURCE101} + +desktop-file-install \ + --dir=%{buildroot}%{_datadir}/applications \ + %{SOURCE102} + +desktop-file-install \ + --dir=%{buildroot}%{_datadir}/applications \ + %{SOURCE103} + +desktop-file-install \ + --dir=%{buildroot}%{_datadir}/applications \ + %{SOURCE104} + +desktop-file-install \ + --dir=%{buildroot}%{_datadir}/applications \ + %{SOURCE105} + +desktop-file-install \ + --dir=%{buildroot}%{_datadir}/applications \ + %{SOURCE106} + +desktop-file-install \ + --dir=%{buildroot}%{_datadir}/applications \ + %{SOURCE107} + +desktop-file-install \ + --dir=%{buildroot}%{_datadir}/applications \ + %{SOURCE108} + +desktop-file-install \ + --dir=%{buildroot}%{_datadir}/applications \ + %{SOURCE109} + +desktop-file-install \ + --dir=%{buildroot}%{_datadir}/applications \ + --delete-original \ + %{buildroot}%{_datadir}/applications/wine.desktop + +#mime-types +desktop-file-install \ + --dir=%{buildroot}%{_datadir}/applications \ + %{SOURCE300} + +cp -p %{SOURCE2} README-FEDORA + +cp -p %{SOURCE502} README-tahoma + +mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d/ + + +# install Tahoma font for system package +install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-tahoma-fonts +pushd %{buildroot}/%{_datadir}/fonts/wine-tahoma-fonts +ln -s ../../wine/fonts/tahoma.ttf tahoma.ttf +ln -s ../../wine/fonts/tahomabd.ttf tahomabd.ttf +popd + +# add config and readme for tahoma +install -m 0755 -d %{buildroot}%{_fontconfig_templatedir} \ + %{buildroot}%{_fontconfig_confdir} +install -p -m 0644 %{SOURCE501} %{buildroot}%{_fontconfig_templatedir}/20-wine-tahoma-nobitmaps.conf + +ln -s %{_fontconfig_templatedir}/20-wine-tahoma-nobitmaps.conf \ + %{buildroot}%{_fontconfig_confdir}/20-wine-tahoma-nobitmaps.conf + +%if 0%{?wine_staging} +# install Times New Roman font for system package +install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-times-new-roman-fonts +pushd %{buildroot}/%{_datadir}/fonts/wine-times-new-roman-fonts +ln -s ../../wine/fonts/times.ttf times.ttf +popd +%endif + +# install Wingdings font for system package +install -p -m 0755 -d %{buildroot}/%{_datadir}/fonts/wine-wingdings-fonts +pushd %{buildroot}/%{_datadir}/fonts/wine-wingdings-fonts +ln -s ../../wine/fonts/wingding.ttf wingding.ttf +popd + +# clean readme files +pushd documentation +for lang in it hu sv es pt pt_br; +do iconv -f iso8859-1 -t utf-8 README.$lang > \ + README.$lang.conv && mv -f README.$lang.conv README.$lang +done; +popd + +rm -f %{buildroot}%{_initrddir}/wine + +# wine makefiles are currently broken and don't install the wine man page +install -p -m 0644 loader/wine.man %{buildroot}%{_mandir}/man1/wine.1 +install -p -m 0644 loader/wine.de.UTF-8.man %{buildroot}%{_mandir}/de.UTF-8/man1/wine.1 +install -p -m 0644 loader/wine.fr.UTF-8.man %{buildroot}%{_mandir}/fr.UTF-8/man1/wine.1 +mkdir -p %{buildroot}%{_mandir}/pl.UTF-8/man1 +install -p -m 0644 loader/wine.pl.UTF-8.man %{buildroot}%{_mandir}/pl.UTF-8/man1/wine.1 + +# install and validate AppData file +mkdir -p %{buildroot}/%{_metainfodir}/ +install -p -m 0644 %{SOURCE150} %{buildroot}/%{_metainfodir}/%{name}.appdata.xml +appstream-util validate-relax --nonet %{buildroot}/%{_metainfodir}/%{name}.appdata.xml + + +%post systemd +%binfmt_apply wine.conf + +%postun systemd +if [ $1 -eq 0 ]; then +/bin/systemctl try-restart systemd-binfmt.service +fi + +%ldconfig_post core + +%posttrans core +# handle upgrades for a few package updates +%{_sbindir}/alternatives --remove 'wine-dxgi%{?_isa}' %{_libdir}/wine/wine-dxgi.dll 2>/dev/null +%{_sbindir}/alternatives --remove 'wine-d3d9%{?_isa}' %{_libdir}/wine/wine-d3d9.dll 2>/dev/null +%{_sbindir}/alternatives --remove 'wine-d3d10%{?_isa}' %{_libdir}/wine/wine-d3d10.dll 2>/dev/null +%{_sbindir}/alternatives --remove 'wine-d3d11%{?_isa}' %{_libdir}/wine/wine-d3d11.dll 2>/dev/null +%ifarch x86_64 aarch64 +%{_sbindir}/alternatives --install %{_bindir}/wine \ + wine %{_bindir}/wine64 10 \ + --slave %{_bindir}/wine-preloader wine-preloader %{_bindir}/wine64-preloader +%{_sbindir}/alternatives --install %{_bindir}/wineserver \ + wineserver %{_bindir}/wineserver64 20 +%else +%{_sbindir}/alternatives --install %{_bindir}/wine \ + wine %{_bindir}/wine32 20 \ + --slave %{_bindir}/wine-preloader wine-preloader %{_bindir}/wine32-preloader +%{_sbindir}/alternatives --install %{_bindir}/wineserver \ + wineserver %{_bindir}/wineserver32 10 +%endif +%{_sbindir}/alternatives --install %{_libdir}/wine/%{winepedir}/dxgi.dll \ + 'wine-dxgi%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-dxgi.dll 10 +%{_sbindir}/alternatives --install %{_libdir}/wine/%{winepedir}/d3d9.dll \ + 'wine-d3d9%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-d3d9.dll 10 +%{_sbindir}/alternatives --install %{_libdir}/wine/%{winepedir}/d3d10.dll \ + 'wine-d3d10%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-d3d10.dll 10 \ + --slave %{_libdir}/wine/%{winepedir}/d3d10_1.dll 'wine-d3d10_1%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-d3d10_1.dll \ + --slave %{_libdir}/wine/%{winepedir}/d3d10core.dll 'wine-d3d10core%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-d3d10core.dll +%{_sbindir}/alternatives --install %{_libdir}/wine/%{winepedir}/d3d11.dll \ + 'wine-d3d11%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-d3d11.dll 10 + +%postun core +%{?ldconfig} +if [ $1 -eq 0 ] ; then +%ifarch x86_64 aarch64 + %{_sbindir}/alternatives --remove wine %{_bindir}/wine64 + %{_sbindir}/alternatives --remove wineserver %{_bindir}/wineserver64 +%else + %{_sbindir}/alternatives --remove wine %{_bindir}/wine32 + %{_sbindir}/alternatives --remove wineserver %{_bindir}/wineserver32 +%endif + %{_sbindir}/alternatives --remove 'wine-dxgi%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-dxgi.dll + %{_sbindir}/alternatives --remove 'wine-d3d9%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-d3d9.dll + %{_sbindir}/alternatives --remove 'wine-d3d10%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-d3d10.dll + %{_sbindir}/alternatives --remove 'wine-d3d11%{?_isa}' %{_libdir}/wine/%{winepedir}/wine-d3d11.dll +fi + +%ldconfig_scriptlets ldap + +%ldconfig_scriptlets cms + +%ldconfig_scriptlets twain + +%ldconfig_scriptlets alsa + +%files +# meta package + +%files core +%doc ANNOUNCE +%doc COPYING.LIB +%doc LICENSE +%doc LICENSE.OLD +%doc AUTHORS +%doc README-FEDORA +%doc README +%doc VERSION +# do not include huge changelogs .OLD .ALPHA .BETA (#204302) +%doc documentation/README.* +%{_bindir}/msidb +%{_bindir}/winedump +%{_libdir}/wine/%{winepedir}/explorer.exe +%{_libdir}/wine/%{winepedir}/cabarc.exe +%{_libdir}/wine/%{winepedir}/control.exe +%{_libdir}/wine/%{winepedir}/cmd.exe +%{_libdir}/wine/%{winepedir}/dxdiag.exe +%{_libdir}/wine/%{winepedir}/notepad.exe +%{_libdir}/wine/%{winepedir}/plugplay.exe +%{_libdir}/wine/%{winepedir}/progman.exe +%{_libdir}/wine/%{winepedir}/taskmgr.exe +%{_libdir}/wine/%{winepedir}/winedbg.exe +%{_libdir}/wine/%{winepedir}/winefile.exe +%{_libdir}/wine/%{winepedir}/winemine.exe +%{_libdir}/wine/%{winepedir}/winemsibuilder.exe +%{_libdir}/wine/%{winepedir}/winepath.exe +%{_libdir}/wine/%{winepedir}/winmgmt.exe +%{_libdir}/wine/%{winepedir}/winver.exe +%{_libdir}/wine/%{winepedir}/wordpad.exe +%{_libdir}/wine/%{winepedir}/write.exe +%{_libdir}/wine/%{winepedir}/wusa.exe + +%ifarch %{ix86} %{arm} +%{_bindir}/wine32 +%{_bindir}/wine32-preloader +%{_bindir}/wineserver32 +%endif + +%ifarch x86_64 aarch64 +%{_bindir}/wine64 +%{_bindir}/wineserver64 +%endif +%ifarch x86_64 aarch64 +%{_bindir}/wine64-preloader +%endif + +%ghost %{_bindir}/wine +%ghost %{_bindir}/wine-preloader +%ghost %{_bindir}/wineserver + +%dir %{_libdir}/wine + +%{_libdir}/wine/%{winepedir}/attrib.exe +%{_libdir}/wine/%{winepedir}/arp.exe +%{_libdir}/wine/%{winepedir}/aspnet_regiis.exe +%{_libdir}/wine/%{winepedir}/cacls.exe +%{_libdir}/wine/%{winepedir}/certutil.exe +%{_libdir}/wine/%{winepedir}/conhost.exe +%{_libdir}/wine/%{winepedir}/cscript.exe +%{_libdir}/wine/%{winepedir}/dism.exe +%{_libdir}/wine/%{winepedir}/dllhost.exe +%{_libdir}/wine/%{winepedir}/dplaysvr.exe +%{_libdir}/wine/%{winepedir}/dpnsvr.exe +%{_libdir}/wine/%{winepedir}/dpvsetup.exe +%{_libdir}/wine/%{winepedir}/eject.exe +%{_libdir}/wine/%{winepedir}/expand.exe +%{_libdir}/wine/%{winepedir}/extrac32.exe +%{_libdir}/wine/%{winepedir}/fc.exe +%{_libdir}/wine/%{winepedir}/find.exe +%{_libdir}/wine/%{winepedir}/findstr.exe +%{_libdir}/wine/%{winepedir}/fsutil.exe +%{_libdir}/wine/%{winepedir}/hostname.exe +%{_libdir}/wine/%{winepedir}/ipconfig.exe +%{_libdir}/wine/%{winepedir}/klist.exe +%{_libdir}/wine/%{winepedir}/mshta.exe +%{_libdir}/wine/%{winepedir}/msidb.exe +%{_libdir}/wine/%{winepedir}/msiexec.exe +%{_libdir}/wine/%{winepedir}/net.exe +%{_libdir}/wine/%{winepedir}/netstat.exe +%{_libdir}/wine/%{winepedir}/ngen.exe +%{_libdir}/wine/%{winepedir}/ntoskrnl.exe +%{_libdir}/wine/%{winepedir}/oleview.exe +%{_libdir}/wine/%{winepedir}/ping.exe +%{_libdir}/wine/%{winepedir}/pnputil.exe +%{_libdir}/wine/%{winepedir}/powershell.exe +%{_libdir}/wine/%{winepedir}/reg.exe +%{_libdir}/wine/%{winepedir}/regasm.exe +%{_libdir}/wine/%{winepedir}/regedit.exe +%{_libdir}/wine/%{winepedir}/regsvcs.exe +%{_libdir}/wine/%{winepedir}/regsvr32.exe +%{_libdir}/wine/%{winepedir}/rpcss.exe +%{_libdir}/wine/%{winepedir}/rundll32.exe +%{_libdir}/wine/%{winepedir}/schtasks.exe +%{_libdir}/wine/%{winepedir}/sdbinst.exe +%{_libdir}/wine/%{winepedir}/secedit.exe +%{_libdir}/wine/%{winepedir}/servicemodelreg.exe +%{_libdir}/wine/%{winepedir}/services.exe +%{_libdir}/wine/%{winepedir}/setx.exe +%{_libdir}/wine/%{winepedir}/start.exe +%{_libdir}/wine/%{winepedir}/tasklist.exe +%{_libdir}/wine/%{winepedir}/termsv.exe +%{_libdir}/wine/%{winepedir}/view.exe +%{_libdir}/wine/%{winepedir}/wevtutil.exe +%{_libdir}/wine/%{winepedir}/where.exe +%{_libdir}/wine/%{winepedir}/whoami.exe +%{_libdir}/wine/%{winepedir}/wineboot.exe +%{_libdir}/wine/%{winepedir}/winebrowser.exe +%{_libdir}/wine/%{winepedir}/wineconsole.exe +%{_libdir}/wine/%{winepedir}/winemenubuilder.exe +%{_libdir}/wine/%{winepedir}/winecfg.exe +%{_libdir}/wine/%{winepedir}/winedevice.exe +%{_libdir}/wine/%{winepedir}/winhlp32.exe +%{_libdir}/wine/%{winepedir}/wmplayer.exe +%{_libdir}/wine/%{winepedir}/wscript.exe +%{_libdir}/wine/%{winepedir}/uninstaller.exe + +%{_libdir}/wine/%{winepedir}/acledit.dll +%{_libdir}/wine/%{winepedir}/aclui.dll +%{_libdir}/wine/%{winepedir}/activeds.dll +%{_libdir}/wine/%{winepedir}/activeds.tlb +%{_libdir}/wine/%{winepedir}/actxprxy.dll +%{_libdir}/wine/%{winepedir}/adsldp.dll +%{_libdir}/wine/%{winepedir}/adsldpc.dll +%{_libdir}/wine/%{winepedir}/advapi32.dll +%{_libdir}/wine/%{winepedir}/advpack.dll +%{_libdir}/wine/%{winepedir}/amsi.dll +%{_libdir}/wine/%{winepedir}/amstream.dll +%{_libdir}/wine/%{winepedir}/apisetschema.dll +%{_libdir}/wine/%{winepedir}/apphelp.dll +%{_libdir}/wine/%{winepedir}/appwiz.cpl +%{_libdir}/wine/%{winepedir}/appxdeploymentclient.dll +%{_libdir}/wine/%{winepedir}/atl.dll +%{_libdir}/wine/%{winepedir}/atl80.dll +%{_libdir}/wine/%{winepedir}/atl90.dll +%{_libdir}/wine/%{winepedir}/atl100.dll +%{_libdir}/wine/%{winepedir}/atl110.dll +%{_libdir}/wine/%{winepedir}/atlthunk.dll +%{_libdir}/wine/%{winepedir}/atmlib.dll +%{_libdir}/wine/%{winepedir}/authz.dll +%{_libdir}/wine/%{winepedir}/avicap32.dll +%{_libdir}/wine/%{winesodir}/avicap32.so +%{_libdir}/wine/%{winepedir}/avifil32.dll +%{_libdir}/wine/%{winepedir}/avrt.dll +%{_libdir}/wine/%{winesodir}/bcrypt.so +%{_libdir}/wine/%{winepedir}/bcrypt.dll +%{_libdir}/wine/%{winepedir}/bcryptprimitives.dll +%{_libdir}/wine/%{winepedir}/bluetoothapis.dll +%{_libdir}/wine/%{winepedir}/browseui.dll +%{_libdir}/wine/%{winepedir}/bthprops.cpl +%{_libdir}/wine/%{winepedir}/cabinet.dll +%{_libdir}/wine/%{winepedir}/cards.dll +%{_libdir}/wine/%{winepedir}/cdosys.dll +%{_libdir}/wine/%{winepedir}/cfgmgr32.dll +%{_libdir}/wine/%{winepedir}/chcp.com +%{_libdir}/wine/%{winepedir}/clock.exe +%{_libdir}/wine/%{winepedir}/clusapi.dll +%{_libdir}/wine/%{winepedir}/cng.sys +%{_libdir}/wine/%{winepedir}/combase.dll +%{_libdir}/wine/%{winepedir}/comcat.dll +%{_libdir}/wine/%{winepedir}/comctl32.dll +%{_libdir}/wine/%{winepedir}/comdlg32.dll +%{_libdir}/wine/%{winepedir}/compstui.dll +%{_libdir}/wine/%{winepedir}/comsvcs.dll +%{_libdir}/wine/%{winepedir}/concrt140.dll +%{_libdir}/wine/%{winepedir}/connect.dll +%{_libdir}/wine/%{winepedir}/credui.dll +%{_libdir}/wine/%{winepedir}/crtdll.dll +%{_libdir}/wine/%{winesodir}/crypt32.so +%{_libdir}/wine/%{winepedir}/crypt32.dll +%{_libdir}/wine/%{winepedir}/cryptdlg.dll +%{_libdir}/wine/%{winepedir}/cryptdll.dll +%{_libdir}/wine/%{winepedir}/cryptext.dll +%{_libdir}/wine/%{winepedir}/cryptnet.dll +%{_libdir}/wine/%{winepedir}/cryptowinrt.dll +%{_libdir}/wine/%{winepedir}/cryptsp.dll +%{_libdir}/wine/%{winepedir}/cryptui.dll +%{_libdir}/wine/%{winepedir}/ctapi32.dll +%{_libdir}/wine/%{winesodir}/ctapi32.so +%{_libdir}/wine/%{winepedir}/ctl3d32.dll +%{_libdir}/wine/%{winepedir}/d2d1.dll +%ghost %{_libdir}/wine/%{winepedir}/d3d10.dll +%ghost %{_libdir}/wine/%{winepedir}/d3d10_1.dll +%ghost %{_libdir}/wine/%{winepedir}/d3d10core.dll +%{_libdir}/wine/%{winepedir}/wine-d3d10.dll +%{_libdir}/wine/%{winepedir}/wine-d3d10_1.dll +%{_libdir}/wine/%{winepedir}/wine-d3d10core.dll +%ghost %{_libdir}/wine/%{winepedir}/d3d11.dll +%{_libdir}/wine/%{winepedir}/wine-d3d11.dll +%{_libdir}/wine/%{winepedir}/d3d12.dll +%{_libdir}/wine/%{winepedir}/d3d12core.dll +%{_libdir}/wine/%{winepedir}/d3dcompiler_*.dll +%{_libdir}/wine/%{winepedir}/d3dim.dll +%{_libdir}/wine/%{winepedir}/d3dim700.dll +%{_libdir}/wine/%{winepedir}/d3drm.dll +%{_libdir}/wine/%{winepedir}/d3dx9_*.dll +%{_libdir}/wine/%{winepedir}/d3dx10_*.dll +%{_libdir}/wine/%{winepedir}/d3dx11_42.dll +%{_libdir}/wine/%{winepedir}/d3dx11_43.dll +%{_libdir}/wine/%{winepedir}/d3dxof.dll +%{_libdir}/wine/%{winepedir}/davclnt.dll +%{_libdir}/wine/%{winepedir}/dbgeng.dll +%{_libdir}/wine/%{winepedir}/dbghelp.dll +%{_libdir}/wine/%{winepedir}/dciman32.dll +%{_libdir}/wine/%{winepedir}/dcomp.dll +%{_libdir}/wine/%{winepedir}/ddraw.dll +%{_libdir}/wine/%{winepedir}/ddrawex.dll +%{_libdir}/wine/%{winepedir}/devenum.dll +%{_libdir}/wine/%{winepedir}/dhcpcsvc.dll +%{_libdir}/wine/%{winepedir}/dhcpcsvc6.dll +%{_libdir}/wine/%{winepedir}/dhtmled.ocx +%{_libdir}/wine/%{winepedir}/diasymreader.dll +%{_libdir}/wine/%{winepedir}/difxapi.dll +%{_libdir}/wine/%{winepedir}/dinput.dll +%{_libdir}/wine/%{winepedir}/dinput8.dll +%{_libdir}/wine/%{winepedir}/directmanipulation.dll +%{_libdir}/wine/%{winepedir}/dispex.dll +%{_libdir}/wine/%{winepedir}/dmband.dll +%{_libdir}/wine/%{winepedir}/dmcompos.dll +%{_libdir}/wine/%{winepedir}/dmime.dll +%{_libdir}/wine/%{winepedir}/dmloader.dll +%{_libdir}/wine/%{winepedir}/dmscript.dll +%{_libdir}/wine/%{winepedir}/dmstyle.dll +%{_libdir}/wine/%{winepedir}/dmsynth.dll +%{_libdir}/wine/%{winepedir}/dmusic.dll +%{_libdir}/wine/%{winepedir}/dmusic32.dll +%{_libdir}/wine/%{winepedir}/dplay.dll +%{_libdir}/wine/%{winepedir}/dplayx.dll +%{_libdir}/wine/%{winepedir}/dpnaddr.dll +%{_libdir}/wine/%{winepedir}/dpnet.dll +%{_libdir}/wine/%{winepedir}/dpnhpast.dll +%{_libdir}/wine/%{winepedir}/dpnhupnp.dll +%{_libdir}/wine/%{winepedir}/dpnlobby.dll +%{_libdir}/wine/%{winepedir}/dpvoice.dll +%{_libdir}/wine/%{winepedir}/dpwsockx.dll +%{_libdir}/wine/%{winepedir}/drmclien.dll +%{_libdir}/wine/%{winepedir}/dsound.dll +%{_libdir}/wine/%{winepedir}/dsdmo.dll +%{_libdir}/wine/%{winepedir}/dsquery.dll +%{_libdir}/wine/%{winepedir}/dssenh.dll +%{_libdir}/wine/%{winepedir}/dsuiext.dll +%{_libdir}/wine/%{winepedir}/dswave.dll +%{_libdir}/wine/%{winepedir}/dwmapi.dll +%{_libdir}/wine/%{winepedir}/dwrite.dll +%{_libdir}/wine/%{winesodir}/dwrite.so +%{_libdir}/wine/%{winepedir}/dx8vb.dll +%{_libdir}/wine/%{winepedir}/dxcore.dll +%{_libdir}/wine/%{winepedir}/dxdiagn.dll +%ghost %{_libdir}/wine/%{winepedir}/dxgi.dll +%{_libdir}/wine/%{winepedir}/wine-dxgi.dll +%if 0%{?wine_staging} +%{_libdir}/wine/%{winepedir}/dxgkrnl.sys +%{_libdir}/wine/%{winepedir}/dxgmms1.sys +%endif +%{_libdir}/wine/%{winepedir}/dxtrans.dll +%{_libdir}/wine/%{winepedir}/dxva2.dll +%{_libdir}/wine/%{winepedir}/esent.dll +%{_libdir}/wine/%{winepedir}/evr.dll +%{_libdir}/wine/%{winepedir}/explorerframe.dll +%{_libdir}/wine/%{winepedir}/faultrep.dll +%{_libdir}/wine/%{winepedir}/feclient.dll +%{_libdir}/wine/%{winepedir}/fltlib.dll +%{_libdir}/wine/%{winepedir}/fltmgr.sys +%{_libdir}/wine/%{winepedir}/fntcache.dll +%{_libdir}/wine/%{winepedir}/fontsub.dll +%{_libdir}/wine/%{winepedir}/fusion.dll +%{_libdir}/wine/%{winepedir}/fwpuclnt.dll +%{_libdir}/wine/%{winepedir}/gameux.dll +%{_libdir}/wine/%{winepedir}/gamingtcui.dll +%{_libdir}/wine/%{winepedir}/gdi32.dll +%{_libdir}/wine/%{winepedir}/gdiplus.dll +%{_libdir}/wine/%{winepedir}/geolocation.dll +%{_libdir}/wine/%{winepedir}/glu32.dll +%{_libdir}/wine/%{winepedir}/gphoto2.ds +%{_libdir}/wine/%{winesodir}/gphoto2.so +%{_libdir}/wine/%{winepedir}/gpkcsp.dll +%{_libdir}/wine/%{winepedir}/graphicscapture.dll +%{_libdir}/wine/%{winepedir}/hal.dll +%{_libdir}/wine/%{winepedir}/hh.exe +%{_libdir}/wine/%{winepedir}/hhctrl.ocx +%{_libdir}/wine/%{winepedir}/hid.dll +%{_libdir}/wine/%{winepedir}/hidclass.sys +%{_libdir}/wine/%{winepedir}/hidparse.sys +%{_libdir}/wine/%{winepedir}/hlink.dll +%{_libdir}/wine/%{winepedir}/hnetcfg.dll +%{_libdir}/wine/%{winepedir}/hrtfapo.dll +%{_libdir}/wine/%{winepedir}/http.sys +%{_libdir}/wine/%{winepedir}/httpapi.dll +%{_libdir}/wine/%{winepedir}/hvsimanagementapi.dll +%{_libdir}/wine/%{winepedir}/ia2comproxy.dll +%{_libdir}/wine/%{winepedir}/icacls.exe +%{_libdir}/wine/%{winepedir}/iccvid.dll +%{_libdir}/wine/%{winepedir}/icinfo.exe +%{_libdir}/wine/%{winepedir}/icmp.dll +%{_libdir}/wine/%{winepedir}/ieframe.dll +%{_libdir}/wine/%{winepedir}/ieproxy.dll +%{_libdir}/wine/%{winepedir}/imaadp32.acm +%{_libdir}/wine/%{winepedir}/imagehlp.dll +%{_libdir}/wine/%{winepedir}/imm32.dll +%{_libdir}/wine/%{winepedir}/inetcomm.dll +%{_libdir}/wine/%{winepedir}/inetcpl.cpl +%{_libdir}/wine/%{winepedir}/inetmib1.dll +%{_libdir}/wine/%{winepedir}/infosoft.dll +%{_libdir}/wine/%{winepedir}/initpki.dll +%{_libdir}/wine/%{winepedir}/inkobj.dll +%{_libdir}/wine/%{winepedir}/inseng.dll +%{_libdir}/wine/%{winepedir}/iphlpapi.dll +%{_libdir}/wine/%{winepedir}/iprop.dll +%{_libdir}/wine/%{winepedir}/irprops.cpl +%{_libdir}/wine/%{winepedir}/ir50_32.dll +%{_libdir}/wine/%{winepedir}/itircl.dll +%{_libdir}/wine/%{winepedir}/itss.dll +%{_libdir}/wine/%{winepedir}/joy.cpl +%{_libdir}/wine/%{winepedir}/jscript.dll +%{_libdir}/wine/%{winepedir}/jsproxy.dll +%{_libdir}/wine/%{winesodir}/kerberos.so +%{_libdir}/wine/%{winepedir}/kerberos.dll +%{_libdir}/wine/%{winepedir}/kernel32.dll +%{_libdir}/wine/%{winepedir}/kernelbase.dll +%{_libdir}/wine/%{winepedir}/ksecdd.sys +%{_libdir}/wine/%{winepedir}/ksproxy.ax +%{_libdir}/wine/%{winepedir}/ksuser.dll +%{_libdir}/wine/%{winepedir}/ktmw32.dll +%{_libdir}/wine/%{winepedir}/l3codeca.acm +%{_libdir}/wine/%{winepedir}/light.msstyles +%{_libdir}/wine/%{winepedir}/loadperf.dll +%{_libdir}/wine/%{winesodir}/localspl.so +%{_libdir}/wine/%{winepedir}/localspl.dll +%{_libdir}/wine/%{winepedir}/localui.dll +%{_libdir}/wine/%{winepedir}/lodctr.exe +%{_libdir}/wine/%{winepedir}/lz32.dll +%{_libdir}/wine/%{winepedir}/magnification.dll +%{_libdir}/wine/%{winepedir}/mapi32.dll +%{_libdir}/wine/%{winepedir}/mapistub.dll +%{_libdir}/wine/%{winepedir}/mciavi32.dll +%{_libdir}/wine/%{winepedir}/mcicda.dll +%{_libdir}/wine/%{winepedir}/mciqtz32.dll +%{_libdir}/wine/%{winepedir}/mciseq.dll +%{_libdir}/wine/%{winepedir}/mciwave.dll +%{_libdir}/wine/%{winepedir}/mf.dll +%{_libdir}/wine/%{winepedir}/mf3216.dll +%{_libdir}/wine/%{winepedir}/mferror.dll +%{_libdir}/wine/%{winepedir}/mfmediaengine.dll +%{_libdir}/wine/%{winepedir}/mfplat.dll +%{_libdir}/wine/%{winepedir}/mfplay.dll +%{_libdir}/wine/%{winepedir}/mfreadwrite.dll +%{_libdir}/wine/%{winepedir}/mfsrcsnk.dll +%{_libdir}/wine/%{winepedir}/mgmtapi.dll +%{_libdir}/wine/%{winepedir}/midimap.dll +%{_libdir}/wine/%{winepedir}/mlang.dll +%{_libdir}/wine/%{winepedir}/mmcndmgr.dll +%{_libdir}/wine/%{winepedir}/mmdevapi.dll +%{_libdir}/wine/%{winepedir}/mofcomp.exe +%{_libdir}/wine/%{winesodir}/mountmgr.so +%{_libdir}/wine/%{winepedir}/mountmgr.sys +%{_libdir}/wine/%{winepedir}/mp3dmod.dll +%{_libdir}/wine/%{winepedir}/mpr.dll +%{_libdir}/wine/%{winepedir}/mprapi.dll +%{_libdir}/wine/%{winepedir}/msacm32.dll +%{_libdir}/wine/%{winepedir}/msacm32.drv +%{_libdir}/wine/%{winepedir}/msado15.dll +%{_libdir}/wine/%{winepedir}/msadp32.acm +%{_libdir}/wine/%{winepedir}/msasn1.dll +%{_libdir}/wine/%{winepedir}/msauddecmft.dll +%{_libdir}/wine/%{winepedir}/mscat32.dll +%{_libdir}/wine/%{winepedir}/mscoree.dll +%{_libdir}/wine/%{winepedir}/mscorwks.dll +%{_libdir}/wine/%{winepedir}/msctf.dll +%{_libdir}/wine/%{winepedir}/msctfmonitor.dll +%{_libdir}/wine/%{winepedir}/msctfp.dll +%{_libdir}/wine/%{winepedir}/msdaps.dll +%{_libdir}/wine/%{winepedir}/msdasql.dll +%{_libdir}/wine/%{winepedir}/msdelta.dll +%{_libdir}/wine/%{winepedir}/msdmo.dll +%{_libdir}/wine/%{winepedir}/msdrm.dll +%{_libdir}/wine/%{winepedir}/msftedit.dll +%{_libdir}/wine/%{winepedir}/msg711.acm +%{_libdir}/wine/%{winepedir}/msgsm32.acm +%{_libdir}/wine/%{winepedir}/mshtml.dll +%{_libdir}/wine/%{winepedir}/mshtml.tlb +%{_libdir}/wine/%{winepedir}/msi.dll +%{_libdir}/wine/%{winepedir}/msident.dll +%{_libdir}/wine/%{winepedir}/msimtf.dll +%{_libdir}/wine/%{winepedir}/msimg32.dll +%{_libdir}/wine/%{winepedir}/msimsg.dll +%{_libdir}/wine/%{winepedir}/msinfo32.exe +%{_libdir}/wine/%{winepedir}/msisip.dll +%{_libdir}/wine/%{winepedir}/msisys.ocx +%{_libdir}/wine/%{winepedir}/msls31.dll +%{_libdir}/wine/%{winepedir}/msmpeg2vdec.dll +%{_libdir}/wine/%{winepedir}/msnet32.dll +%{_libdir}/wine/%{winepedir}/mspatcha.dll +%{_libdir}/wine/%{winepedir}/msports.dll +%{_libdir}/wine/%{winepedir}/msscript.ocx +%{_libdir}/wine/%{winepedir}/mssign32.dll +%{_libdir}/wine/%{winepedir}/mssip32.dll +%{_libdir}/wine/%{winepedir}/msrle32.dll +%{_libdir}/wine/%{winepedir}/mstask.dll +%{_libdir}/wine/%{winepedir}/msv1_0.dll +%{_libdir}/wine/%{winesodir}/msv1_0.so +%{_libdir}/wine/%{winepedir}/msvcirt.dll +%{_libdir}/wine/%{winepedir}/msvcm80.dll +%{_libdir}/wine/%{winepedir}/msvcm90.dll +%{_libdir}/wine/%{winepedir}/msvcp_win.dll +%{_libdir}/wine/%{winepedir}/msvcp60.dll +%{_libdir}/wine/%{winepedir}/msvcp70.dll +%{_libdir}/wine/%{winepedir}/msvcp71.dll +%{_libdir}/wine/%{winepedir}/msvcp80.dll +%{_libdir}/wine/%{winepedir}/msvcp90.dll +%{_libdir}/wine/%{winepedir}/msvcp100.dll +%{_libdir}/wine/%{winepedir}/msvcp110.dll +%{_libdir}/wine/%{winepedir}/msvcp120.dll +%{_libdir}/wine/%{winepedir}/msvcp120_app.dll +%{_libdir}/wine/%{winepedir}/msvcp140.dll +%{_libdir}/wine/%{winepedir}/msvcp140_1.dll +%{_libdir}/wine/%{winepedir}/msvcp140_2.dll +%{_libdir}/wine/%{winepedir}/msvcp140_atomic_wait.dll +%{_libdir}/wine/%{winepedir}/msvcp140_codecvt_ids.dll +%{_libdir}/wine/%{winepedir}/msvcr70.dll +%{_libdir}/wine/%{winepedir}/msvcr71.dll +%{_libdir}/wine/%{winepedir}/msvcr80.dll +%{_libdir}/wine/%{winepedir}/msvcr90.dll +%{_libdir}/wine/%{winepedir}/msvcr100.dll +%{_libdir}/wine/%{winepedir}/msvcr110.dll +%{_libdir}/wine/%{winepedir}/msvcr120.dll +%{_libdir}/wine/%{winepedir}/msvcr120_app.dll +%{_libdir}/wine/%{winepedir}/msvcrt.dll +%{_libdir}/wine/%{winepedir}/msvcrt20.dll +%{_libdir}/wine/%{winepedir}/msvcrt40.dll +%{_libdir}/wine/%{winepedir}/msvcrtd.dll +%{_libdir}/wine/%{winepedir}/msvfw32.dll +%{_libdir}/wine/%{winepedir}/msvidc32.dll +%{_libdir}/wine/%{winepedir}/mswsock.dll +%{_libdir}/wine/%{winepedir}/msxml.dll +%{_libdir}/wine/%{winepedir}/msxml2.dll +%{_libdir}/wine/%{winepedir}/msxml3.dll +%{_libdir}/wine/%{winepedir}/msxml4.dll +%{_libdir}/wine/%{winepedir}/msxml6.dll +%{_libdir}/wine/%{winepedir}/mtxdm.dll +%{_libdir}/wine/%{winepedir}/nddeapi.dll +%{_libdir}/wine/%{winepedir}/ncrypt.dll +%{_libdir}/wine/%{winepedir}/ndis.sys +%{_libdir}/wine/%{winesodir}/netapi32.so +%{_libdir}/wine/%{winepedir}/netapi32.dll +%{_libdir}/wine/%{winepedir}/netcfgx.dll +%{_libdir}/wine/%{winepedir}/netio.sys +%{_libdir}/wine/%{winepedir}/netprofm.dll +%{_libdir}/wine/%{winepedir}/netsh.exe +%{_libdir}/wine/%{winepedir}/netutils.dll +%{_libdir}/wine/%{winepedir}/newdev.dll +%{_libdir}/wine/%{winepedir}/ninput.dll +%{_libdir}/wine/%{winepedir}/normaliz.dll +%{_libdir}/wine/%{winepedir}/npmshtml.dll +%{_libdir}/wine/%{winepedir}/npptools.dll +%{_libdir}/wine/%{winepedir}/nsi.dll +%{_libdir}/wine/%{winesodir}/nsiproxy.so +%{_libdir}/wine/%{winepedir}/nsiproxy.sys +%{_libdir}/wine/%{winesodir}/ntdll.so +%{_libdir}/wine/%{winepedir}/ntdll.dll +%{_libdir}/wine/%{winepedir}/ntdsapi.dll +%{_libdir}/wine/%{winepedir}/ntprint.dll +%if 0%{?wine_staging} +#%%{_libdir}/wine/%%{winepedir}/nvcuda.dll +#%%{_libdir}/wine/%%{winesodir}/nvcuda.dll.so +#%%{_libdir}/wine/%%{winepedir}/nvcuvid.dll +#%%{_libdir}/wine/%%{winesodir}/nvcuvid.dll.so +%endif +%{_libdir}/wine/%{winepedir}/objsel.dll +%{_libdir}/wine/%{winesodir}/odbc32.so +%{_libdir}/wine/%{winepedir}/odbc32.dll +%{_libdir}/wine/%{winepedir}/odbcbcp.dll +%{_libdir}/wine/%{winepedir}/odbccp32.dll +%{_libdir}/wine/%{winepedir}/odbccu32.dll +%{_libdir}/wine/%{winepedir}/ole32.dll +%{_libdir}/wine/%{winepedir}/oleacc.dll +%{_libdir}/wine/%{winepedir}/oleaut32.dll +%{_libdir}/wine/%{winepedir}/olecli32.dll +%{_libdir}/wine/%{winepedir}/oledb32.dll +%{_libdir}/wine/%{winepedir}/oledlg.dll +%{_libdir}/wine/%{winepedir}/olepro32.dll +%{_libdir}/wine/%{winepedir}/olesvr32.dll +%{_libdir}/wine/%{winepedir}/olethk32.dll +%{_libdir}/wine/%{winepedir}/opcservices.dll +%{_libdir}/wine/%{winepedir}/packager.dll +%{_libdir}/wine/%{winepedir}/pdh.dll +%{_libdir}/wine/%{winepedir}/photometadatahandler.dll +%{_libdir}/wine/%{winepedir}/pidgen.dll +%{_libdir}/wine/%{winepedir}/powrprof.dll +%{_libdir}/wine/%{winepedir}/presentationfontcache.exe +%{_libdir}/wine/%{winepedir}/printui.dll +%{_libdir}/wine/%{winepedir}/prntvpt.dll +%{_libdir}/wine/%{winepedir}/propsys.dll +%{_libdir}/wine/%{winepedir}/psapi.dll +%{_libdir}/wine/%{winepedir}/pstorec.dll +%{_libdir}/wine/%{winepedir}/pwrshplugin.dll +%{_libdir}/wine/%{winepedir}/qasf.dll +%{_libdir}/wine/%{winepedir}/qcap.dll +%{_libdir}/wine/%{winesodir}/qcap.so +%{_libdir}/wine/%{winepedir}/qdvd.dll +%{_libdir}/wine/%{winepedir}/qedit.dll +%{_libdir}/wine/%{winepedir}/qmgr.dll +%{_libdir}/wine/%{winepedir}/qmgrprxy.dll +%{_libdir}/wine/%{winepedir}/quartz.dll +%{_libdir}/wine/%{winepedir}/query.dll +%{_libdir}/wine/%{winepedir}/qwave.dll +%{_libdir}/wine/%{winepedir}/rasapi32.dll +%{_libdir}/wine/%{winepedir}/rasdlg.dll +%{_libdir}/wine/%{winepedir}/regapi.dll +%{_libdir}/wine/%{winepedir}/regini.exe +%{_libdir}/wine/%{winepedir}/resutils.dll +%{_libdir}/wine/%{winepedir}/riched20.dll +%{_libdir}/wine/%{winepedir}/riched32.dll +%{_libdir}/wine/%{winepedir}/robocopy.exe +%{_libdir}/wine/%{winepedir}/rpcrt4.dll +%{_libdir}/wine/%{winepedir}/rsabase.dll +%{_libdir}/wine/%{winepedir}/rsaenh.dll +%{_libdir}/wine/%{winepedir}/rstrtmgr.dll +%{_libdir}/wine/%{winepedir}/rtutils.dll +%{_libdir}/wine/%{winepedir}/rtworkq.dll +%{_libdir}/wine/%{winepedir}/samlib.dll +%{_libdir}/wine/%{winepedir}/sapi.dll +%{_libdir}/wine/%{winepedir}/sas.dll +%{_libdir}/wine/%{winepedir}/sc.exe +%{_libdir}/wine/%{winepedir}/scarddlg.dll +%{_libdir}/wine/%{winepedir}/scardsvr.dll +%{_libdir}/wine/%{winepedir}/sccbase.dll +%{_libdir}/wine/%{winepedir}/schannel.dll +%{_libdir}/wine/%{winepedir}/scrobj.dll +%{_libdir}/wine/%{winepedir}/scrrun.dll +%{_libdir}/wine/%{winepedir}/scsiport.sys +%{_libdir}/wine/%{winepedir}/sechost.dll +%{_libdir}/wine/%{winepedir}/secur32.dll +%{_libdir}/wine/%{winesodir}/secur32.so +%{_libdir}/wine/%{winepedir}/sensapi.dll +%{_libdir}/wine/%{winepedir}/serialui.dll +%{_libdir}/wine/%{winepedir}/setupapi.dll +%{_libdir}/wine/%{winepedir}/sfc_os.dll +%{_libdir}/wine/%{winepedir}/shcore.dll +%{_libdir}/wine/%{winepedir}/shdoclc.dll +%{_libdir}/wine/%{winepedir}/shdocvw.dll +%{_libdir}/wine/%{winepedir}/schedsvc.dll +%{_libdir}/wine/%{winepedir}/shell32.dll +%{_libdir}/wine/%{winepedir}/shfolder.dll +%{_libdir}/wine/%{winepedir}/shlwapi.dll +%{_libdir}/wine/%{winepedir}/shutdown.exe +%{_libdir}/wine/%{winepedir}/slbcsp.dll +%{_libdir}/wine/%{winepedir}/slc.dll +%{_libdir}/wine/%{winepedir}/snmpapi.dll +%{_libdir}/wine/%{winepedir}/softpub.dll +%{_libdir}/wine/%{winepedir}/spoolsv.exe +%{_libdir}/wine/%{winepedir}/sppc.dll +%{_libdir}/wine/%{winepedir}/srclient.dll +%{_libdir}/wine/%{winepedir}/srvcli.dll +%{_libdir}/wine/%{winepedir}/srvsvc.dll +%{_libdir}/wine/%{winepedir}/sspicli.dll +%{_libdir}/wine/%{winepedir}/stdole2.tlb +%{_libdir}/wine/%{winepedir}/stdole32.tlb +%{_libdir}/wine/%{winepedir}/sti.dll +%{_libdir}/wine/%{winepedir}/strmdll.dll +%{_libdir}/wine/%{winepedir}/subst.exe +%{_libdir}/wine/%{winepedir}/svchost.exe +%{_libdir}/wine/%{winepedir}/svrapi.dll +%{_libdir}/wine/%{winepedir}/sxs.dll +%{_libdir}/wine/%{winepedir}/systeminfo.exe +%{_libdir}/wine/%{winepedir}/t2embed.dll +%{_libdir}/wine/%{winepedir}/tapi32.dll +%{_libdir}/wine/%{winepedir}/taskkill.exe +%{_libdir}/wine/%{winepedir}/taskschd.dll +%{_libdir}/wine/%{winepedir}/tbs.dll +%{_libdir}/wine/%{winepedir}/tdh.dll +%{_libdir}/wine/%{winepedir}/tdi.sys +%{_libdir}/wine/%{winepedir}/threadpoolwinrt.dll +%{_libdir}/wine/%{winepedir}/traffic.dll +%{_libdir}/wine/%{winepedir}/twinapi.appcore.dll +%{_libdir}/wine/%{winepedir}/tzres.dll +%{_libdir}/wine/%{winepedir}/ucrtbase.dll +%{_libdir}/wine/%{winepedir}/uianimation.dll +%{_libdir}/wine/%{winepedir}/uiautomationcore.dll +%{_libdir}/wine/%{winepedir}/uiribbon.dll +%{_libdir}/wine/%{winepedir}/unicows.dll +%{_libdir}/wine/%{winepedir}/unlodctr.exe +%{_libdir}/wine/%{winepedir}/updspapi.dll +%{_libdir}/wine/%{winepedir}/url.dll +%{_libdir}/wine/%{winepedir}/urlmon.dll +%{_libdir}/wine/%{winepedir}/usbd.sys +%{_libdir}/wine/%{winepedir}/user32.dll +%{_libdir}/wine/%{winepedir}/usp10.dll +%{_libdir}/wine/%{winepedir}/utildll.dll +%{_libdir}/wine/%{winepedir}/uxtheme.dll +%{_libdir}/wine/%{winepedir}/userenv.dll +%{_libdir}/wine/%{winepedir}/vbscript.dll +%{_libdir}/wine/%{winepedir}/vcomp.dll +%{_libdir}/wine/%{winepedir}/vcomp90.dll +%{_libdir}/wine/%{winepedir}/vcomp100.dll +%{_libdir}/wine/%{winepedir}/vcomp110.dll +%{_libdir}/wine/%{winepedir}/vcomp120.dll +%{_libdir}/wine/%{winepedir}/vcomp140.dll +%{_libdir}/wine/%{winepedir}/vcruntime140.dll +%ifarch x86_64 +%{_libdir}/wine/%{winepedir}/vcruntime140_1.dll +%endif +%{_libdir}/wine/%{winepedir}/vdmdbg.dll +%{_libdir}/wine/%{winepedir}/version.dll +%{_libdir}/wine/%{winepedir}/vga.dll +%{_libdir}/wine/%{winepedir}/virtdisk.dll +%{_libdir}/wine/%{winepedir}/vssapi.dll +%{_libdir}/wine/%{winepedir}/vulkan-1.dll +%{_libdir}/wine/%{winepedir}/wbemdisp.dll +%{_libdir}/wine/%{winepedir}/wbemprox.dll +%{_libdir}/wine/%{winepedir}/wdscore.dll +%{_libdir}/wine/%{winepedir}/webservices.dll +%{_libdir}/wine/%{winepedir}/websocket.dll +%{_libdir}/wine/%{winepedir}/wer.dll +%{_libdir}/wine/%{winepedir}/wevtapi.dll +%{_libdir}/wine/%{winepedir}/wevtsvc.dll +%{_libdir}/wine/%{winepedir}/wiaservc.dll +%{_libdir}/wine/%{winepedir}/wimgapi.dll +%if 0%{?wine_staging} +%{_libdir}/wine/%{winepedir}/win32k.sys +%endif +%{_libdir}/wine/%{winepedir}/win32u.dll +%{_libdir}/wine/%{winepedir}/windows.applicationmodel.dll +%{_libdir}/wine/%{winepedir}/windows.devices.bluetooth.dll +%{_libdir}/wine/%{winepedir}/windows.devices.enumeration.dll +%{_libdir}/wine/%{winepedir}/windows.devices.usb.dll +%{_libdir}/wine/%{winepedir}/windows.gaming.ui.gamebar.dll +%{_libdir}/wine/%{winepedir}/windows.gaming.input.dll +%{_libdir}/wine/%{winepedir}/windows.globalization.dll +%{_libdir}/wine/%{winepedir}/windows.media.dll +%{_libdir}/wine/%{winepedir}/windows.media.devices.dll +%{_libdir}/wine/%{winepedir}/windows.media.mediacontrol.dll +%{_libdir}/wine/%{winepedir}/windows.media.speech.dll +%if 0%{?wine_staging} +%{_libdir}/wine/%{winepedir}/windows.networking.connectivity +%endif +%{_libdir}/wine/%{winepedir}/windows.networking.dll +%{_libdir}/wine/%{winepedir}/windows.networking.hostname.dll +%{_libdir}/wine/%{winepedir}/windows.perception.stub.dll +%{_libdir}/wine/%{winepedir}/windows.security.credentials.ui.userconsentverifier.dll +%{_libdir}/wine/%{winepedir}/windows.storage.applicationdata.dll +%{_libdir}/wine/%{winepedir}/windows.system.profile.systemmanufacturers.dll +%{_libdir}/wine/%{winepedir}/windows.ui.dll +%{_libdir}/wine/%{winepedir}/windowscodecs.dll +%{_libdir}/wine/%{winepedir}/windowscodecsext.dll +%{_libdir}/wine/%{winepedir}/winebus.sys +%{_libdir}/wine/%{winesodir}/winegstreamer.so +%{_libdir}/wine/%{winepedir}/winegstreamer.dll +%{_libdir}/wine/%{winepedir}/winehid.sys +%{_libdir}/wine/%{winepedir}/winemapi.dll +%{_libdir}/wine/%{winepedir}/wineusb.sys +%{_libdir}/wine/%{winesodir}/wineusb.so +%{_libdir}/wine/%{winesodir}/winevulkan.so +%{_libdir}/wine/%{winepedir}/winevulkan.dll +%{_libdir}/wine/%{winepedir}/winewayland.drv +%{_libdir}/wine/%{winesodir}/winewayland.so +%{_libdir}/wine/%{winepedir}/winex11.drv +%{_libdir}/wine/%{winesodir}/winex11.so +%{_libdir}/wine/%{winepedir}/wing32.dll +%{_libdir}/wine/%{winepedir}/winhttp.dll +%{_libdir}/wine/%{winepedir}/wininet.dll +%{_libdir}/wine/%{winepedir}/winmm.dll +%{_libdir}/wine/%{winepedir}/winnls32.dll +%{_libdir}/wine/%{winepedir}/winprint.dll +%{_libdir}/wine/%{winepedir}/winspool.drv +%{_libdir}/wine/%{winesodir}/winspool.so +%{_libdir}/wine/%{winepedir}/winsta.dll +%{_libdir}/wine/%{winepedir}/wintypes.dll +%{_libdir}/wine/%{winepedir}/wldp.dll +%{_libdir}/wine/%{winepedir}/wmasf.dll +%{_libdir}/wine/%{winepedir}/wmi.dll +%{_libdir}/wine/%{winepedir}/wmic.exe +%{_libdir}/wine/%{winepedir}/wmiutils.dll +%{_libdir}/wine/%{winepedir}/wmp.dll +%{_libdir}/wine/%{winepedir}/wmvcore.dll +%{_libdir}/wine/%{winepedir}/spoolss.dll +%{_libdir}/wine/%{winesodir}/win32u.so +%{_libdir}/wine/%{winesodir}/winebus.so +%{_libdir}/wine/%{winepedir}/winexinput.sys +%{_libdir}/wine/%{winepedir}/wintab32.dll +%{_libdir}/wine/%{winepedir}/wintrust.dll +%{_libdir}/wine/%{winepedir}/winusb.dll +%{_libdir}/wine/%{winepedir}/wlanapi.dll +%{_libdir}/wine/%{winepedir}/wlanui.dll +%{_libdir}/wine/%{winepedir}/wmphoto.dll +%{_libdir}/wine/%{winepedir}/wnaspi32.dll +%{_libdir}/wine/%{winepedir}/wofutil.dll +%ifarch x86_64 aarch64 +%{_libdir}/wine/%{winepedir}/wow64.dll +%{_libdir}/wine/%{winepedir}/wow64win.dll +%endif +%ifarch x86_64 +%{_libdir}/wine/%{winepedir}/wow64cpu.dll +%endif +%{_libdir}/wine/%{winepedir}/wpc.dll +%{_libdir}/wine/%{winepedir}/wpcap.dll +%{_libdir}/wine/%{winesodir}/wpcap.so +%{_libdir}/wine/%{winepedir}/ws2_32.dll +%{_libdir}/wine/%{winesodir}/ws2_32.so +%{_libdir}/wine/%{winepedir}/wsdapi.dll +%{_libdir}/wine/%{winepedir}/wshom.ocx +%{_libdir}/wine/%{winepedir}/wsnmp32.dll +%{_libdir}/wine/%{winepedir}/wsock32.dll +%{_libdir}/wine/%{winepedir}/wtsapi32.dll +%{_libdir}/wine/%{winepedir}/wuapi.dll +%{_libdir}/wine/%{winepedir}/wuaueng.dll +%{_libdir}/wine/%{winepedir}/wuauserv.exe +%ifarch %{arm} +%{_libdir}/wine/%{winesodir}/wuauserv.exe.so +%endif +%{_libdir}/wine/%{winepedir}/security.dll +%{_libdir}/wine/%{winepedir}/sfc.dll +%{_libdir}/wine/%{winepedir}/wineps.drv +%{_libdir}/wine/%{winesodir}/wineps.so +%{_libdir}/wine/%{winepedir}/d3d8.dll +%{_libdir}/wine/%{winepedir}/d3d8thk.dll +%ghost %{_libdir}/wine/%{winepedir}/d3d9.dll +%{_libdir}/wine/%{winepedir}/wine-d3d9.dll +%{_libdir}/wine/%{winesodir}/opengl32.so +%{_libdir}/wine/%{winepedir}/opengl32.dll +%{_libdir}/wine/%{winepedir}/wined3d.dll +%{_libdir}/wine/%{winepedir}/dnsapi.dll +%{_libdir}/wine/%{winesodir}/dnsapi.so +%{_libdir}/wine/%{winepedir}/iexplore.exe +%{_libdir}/wine/%{winepedir}/x3daudio1_0.dll +%{_libdir}/wine/%{winepedir}/x3daudio1_1.dll +%{_libdir}/wine/%{winepedir}/x3daudio1_2.dll +%{_libdir}/wine/%{winepedir}/x3daudio1_3.dll +%{_libdir}/wine/%{winepedir}/x3daudio1_4.dll +%{_libdir}/wine/%{winepedir}/x3daudio1_5.dll +%{_libdir}/wine/%{winepedir}/x3daudio1_6.dll +%{_libdir}/wine/%{winepedir}/x3daudio1_7.dll +%{_libdir}/wine/%{winepedir}/xactengine2_0.dll +%{_libdir}/wine/%{winepedir}/xactengine2_4.dll +%{_libdir}/wine/%{winepedir}/xactengine2_7.dll +%{_libdir}/wine/%{winepedir}/xactengine2_9.dll +%{_libdir}/wine/%{winepedir}/xactengine3_0.dll +%{_libdir}/wine/%{winepedir}/xactengine3_1.dll +%{_libdir}/wine/%{winepedir}/xactengine3_2.dll +%{_libdir}/wine/%{winepedir}/xactengine3_3.dll +%{_libdir}/wine/%{winepedir}/xactengine3_4.dll +%{_libdir}/wine/%{winepedir}/xactengine3_5.dll +%{_libdir}/wine/%{winepedir}/xactengine3_6.dll +%{_libdir}/wine/%{winepedir}/xactengine3_7.dll +%{_libdir}/wine/%{winepedir}/xapofx1_1.dll +%{_libdir}/wine/%{winepedir}/xapofx1_2.dll +%{_libdir}/wine/%{winepedir}/xapofx1_3.dll +%{_libdir}/wine/%{winepedir}/xapofx1_4.dll +%{_libdir}/wine/%{winepedir}/xapofx1_5.dll +%{_libdir}/wine/%{winepedir}/xaudio2_0.dll +%{_libdir}/wine/%{winepedir}/xaudio2_1.dll +%{_libdir}/wine/%{winepedir}/xaudio2_2.dll +%{_libdir}/wine/%{winepedir}/xaudio2_3.dll +%{_libdir}/wine/%{winepedir}/xaudio2_4.dll +%{_libdir}/wine/%{winepedir}/xaudio2_5.dll +%{_libdir}/wine/%{winepedir}/xaudio2_6.dll +%{_libdir}/wine/%{winepedir}/xaudio2_7.dll +%{_libdir}/wine/%{winepedir}/xaudio2_8.dll +%{_libdir}/wine/%{winepedir}/xaudio2_9.dll +%{_libdir}/wine/%{winepedir}/xcopy.exe +%{_libdir}/wine/%{winepedir}/xinput1_1.dll +%{_libdir}/wine/%{winepedir}/xinput1_2.dll +%{_libdir}/wine/%{winepedir}/xinput1_3.dll +%{_libdir}/wine/%{winepedir}/xinput1_4.dll +%{_libdir}/wine/%{winepedir}/xinput9_1_0.dll +%{_libdir}/wine/%{winepedir}/xinputuap.dll +%{_libdir}/wine/%{winepedir}/xmllite.dll +%{_libdir}/wine/%{winepedir}/xolehlp.dll +%{_libdir}/wine/%{winepedir}/xpsprint.dll +%{_libdir}/wine/%{winepedir}/xpssvcs.dll + +%if 0%{?wine_staging} +%ifarch x86_64 aarch64 +#%%{_libdir}/wine/%%{winepedir}/nvapi64.dll +#%%{_libdir}/wine/%%{winepedir}/nvencodeapi64.dll +#%%{_libdir}/wine/%%{winesodir}/nvencodeapi64.dll.so +%else +#%%{_libdir}/wine/%%{winepedir}/nvapi.dll +%ifarch %{arm} +#%%{_libdir}/wine/%%{winesodir}/nvapi.dll.so +%endif +#%%{_libdir}/wine/%%{winepedir}/nvencodeapi.dll +#%%{_libdir}/wine/%%{winesodir}/nvencodeapi.dll.so +%endif +%endif + +# 16 bit and other non 64bit stuff +%ifnarch x86_64 %{arm} aarch64 +%{_libdir}/wine/%{winepedir}/winevdm.exe +%{_libdir}/wine/%{winepedir}/ifsmgr.vxd +%{_libdir}/wine/%{winepedir}/mmdevldr.vxd +%{_libdir}/wine/%{winepedir}/monodebg.vxd +%{_libdir}/wine/%{winepedir}/rundll.exe16 +%{_libdir}/wine/%{winepedir}/vdhcp.vxd +%{_libdir}/wine/%{winepedir}/user.exe16 +%{_libdir}/wine/%{winepedir}/vmm.vxd +%{_libdir}/wine/%{winepedir}/vnbt.vxd +%{_libdir}/wine/%{winepedir}/vnetbios.vxd +%{_libdir}/wine/%{winepedir}/vtdapi.vxd +%{_libdir}/wine/%{winepedir}/vwin32.vxd +%{_libdir}/wine/%{winepedir}/w32skrnl.dll +%{_libdir}/wine/%{winepedir}/avifile.dll16 +%{_libdir}/wine/%{winepedir}/comm.drv16 +%{_libdir}/wine/%{winepedir}/commdlg.dll16 +%{_libdir}/wine/%{winepedir}/compobj.dll16 +%{_libdir}/wine/%{winepedir}/ctl3d.dll16 +%{_libdir}/wine/%{winepedir}/ctl3dv2.dll16 +%{_libdir}/wine/%{winepedir}/ddeml.dll16 +%{_libdir}/wine/%{winepedir}/dispdib.dll16 +%{_libdir}/wine/%{winepedir}/display.drv16 +%{_libdir}/wine/%{winepedir}/gdi.exe16 +%{_libdir}/wine/%{winepedir}/imm.dll16 +%{_libdir}/wine/%{winepedir}/krnl386.exe16 +%{_libdir}/wine/%{winepedir}/keyboard.drv16 +%{_libdir}/wine/%{winepedir}/lzexpand.dll16 +%{_libdir}/wine/%{winepedir}/mmsystem.dll16 +%{_libdir}/wine/%{winepedir}/mouse.drv16 +%{_libdir}/wine/%{winepedir}/msacm.dll16 +%{_libdir}/wine/%{winepedir}/msvideo.dll16 +%{_libdir}/wine/%{winepedir}/ole2.dll16 +%{_libdir}/wine/%{winepedir}/ole2conv.dll16 +%{_libdir}/wine/%{winepedir}/ole2disp.dll16 +%{_libdir}/wine/%{winepedir}/ole2nls.dll16 +%{_libdir}/wine/%{winepedir}/ole2prox.dll16 +%{_libdir}/wine/%{winepedir}/ole2thk.dll16 +%{_libdir}/wine/%{winepedir}/olecli.dll16 +%{_libdir}/wine/%{winepedir}/olesvr.dll16 +%{_libdir}/wine/%{winepedir}/rasapi16.dll16 +%{_libdir}/wine/%{winepedir}/setupx.dll16 +%{_libdir}/wine/%{winepedir}/shell.dll16 +%{_libdir}/wine/%{winepedir}/sound.drv16 +%{_libdir}/wine/%{winepedir}/storage.dll16 +%{_libdir}/wine/%{winepedir}/stress.dll16 +%{_libdir}/wine/%{winepedir}/system.drv16 +%{_libdir}/wine/%{winepedir}/toolhelp.dll16 +%{_libdir}/wine/%{winepedir}/twain.dll16 +%{_libdir}/wine/%{winepedir}/typelib.dll16 +%{_libdir}/wine/%{winepedir}/ver.dll16 +%{_libdir}/wine/%{winepedir}/w32sys.dll16 +%{_libdir}/wine/%{winepedir}/win32s16.dll16 +%{_libdir}/wine/%{winepedir}/win87em.dll16 +%{_libdir}/wine/%{winepedir}/winaspi.dll16 +%{_libdir}/wine/%{winepedir}/windebug.dll16 +%{_libdir}/wine/%{winepedir}/wineps16.drv16 +%{_libdir}/wine/%{winepedir}/wing.dll16 +%{_libdir}/wine/%{winepedir}/winhelp.exe16 +%{_libdir}/wine/%{winepedir}/winnls.dll16 +%{_libdir}/wine/%{winepedir}/winoldap.mod16 +%{_libdir}/wine/%{winepedir}/winsock.dll16 +%{_libdir}/wine/%{winepedir}/wintab.dll16 +%{_libdir}/wine/%{winepedir}/wow32.dll +%endif + +# ARM SOs +%ifarch %{arm} +%{_libdir}/wine/%{winesodir}/explorer.exe.so +%{_libdir}/wine/%{winesodir}/cabarc.exe.so +%{_libdir}/wine/%{winesodir}/control.exe.so +%{_libdir}/wine/%{winesodir}/cmd.exe.so +%{_libdir}/wine/%{winesodir}/dxdiag.exe.so +%{_libdir}/wine/%{winesodir}/notepad.exe.so +%{_libdir}/wine/%{winesodir}/plugplay.exe.so +%{_libdir}/wine/%{winesodir}/progman.exe.so +%{_libdir}/wine/%{winesodir}/taskmgr.exe.so +%{_libdir}/wine/%{winesodir}/winebrowser.exe.so +%{_libdir}/wine/%{winesodir}/winecfg.exe.so +%{_libdir}/wine/%{winesodir}/winedbg.exe.so +%{_libdir}/wine/%{winesodir}/winefile.exe.so +%{_libdir}/wine/%{winesodir}/winemenubuilder.exe.so +%{_libdir}/wine/%{winesodir}/winemine.exe.so +%{_libdir}/wine/%{winesodir}/winemsibuilder.exe.so +%{_libdir}/wine/%{winesodir}/winepath.exe.so +%{_libdir}/wine/%{winesodir}/winmgmt.exe.so +%{_libdir}/wine/%{winesodir}/winver.exe.so +%{_libdir}/wine/%{winesodir}/wordpad.exe.so +%{_libdir}/wine/%{winesodir}/write.exe.so +%{_libdir}/wine/%{winesodir}/wusa.exe.so +%{_libdir}/wine/%{winesodir}/attrib.exe.so +%{_libdir}/wine/%{winesodir}/arp.exe.so +%{_libdir}/wine/%{winesodir}/aspnet_regiis.exe.so +%{_libdir}/wine/%{winesodir}/cacls.exe.so +%{_libdir}/wine/%{winesodir}/conhost.exe.so +%{_libdir}/wine/%{winesodir}/cscript.exe.so +%{_libdir}/wine/%{winesodir}/dism.exe.so +%{_libdir}/wine/%{winesodir}/dllhost.exe.so +%{_libdir}/wine/%{winesodir}/dplaysvr.exe.so +%{_libdir}/wine/%{winesodir}/dpnsvr.exe.so +%{_libdir}/wine/%{winesodir}/dpvsetup.exe.so +%{_libdir}/wine/%{winesodir}/eject.exe.so +%{_libdir}/wine/%{winesodir}/expand.exe.so +%{_libdir}/wine/%{winesodir}/extrac32.exe.so +%{_libdir}/wine/%{winesodir}/fc.exe.so +%{_libdir}/wine/%{winesodir}/find.exe.so +%{_libdir}/wine/%{winesodir}/findstr.exe.so +%{_libdir}/wine/%{winesodir}/fsutil.exe.so +%{_libdir}/wine/%{winesodir}/hostname.exe.so +%{_libdir}/wine/%{winesodir}/ipconfig.exe.so +%{_libdir}/wine/%{winesodir}/klist.exe.so +%{_libdir}/wine/%{winesodir}/winhlp32.exe.so +%{_libdir}/wine/%{winesodir}/mshta.exe.so +%if 0%{?wine_staging} +%{_libdir}/wine/%{winesodir}/msidb.exe.so +%endif +%{_libdir}/wine/%{winesodir}/msiexec.exe.so +%{_libdir}/wine/%{winesodir}/net.exe.so +%{_libdir}/wine/%{winesodir}/netstat.exe.so +%{_libdir}/wine/%{winesodir}/ngen.exe.so +%{_libdir}/wine/%{winesodir}/ntoskrnl.exe.so +%{_libdir}/wine/%{winesodir}/oleview.exe.so +%{_libdir}/wine/%{winesodir}/ping.exe.so +%{_libdir}/wine/%{winesodir}/pnputil.exe.so +%{_libdir}/wine/%{winesodir}/powershell.exe.so +%{_libdir}/wine/%{winesodir}/reg.exe.so +%{_libdir}/wine/%{winesodir}/regasm.exe.so +%{_libdir}/wine/%{winesodir}/regedit.exe.so +%{_libdir}/wine/%{winesodir}/regsvcs.exe.so +%{_libdir}/wine/%{winesodir}/regsvr32.exe.so +%{_libdir}/wine/%{winesodir}/rpcss.exe.so +%{_libdir}/wine/%{winesodir}/rundll32.exe.so +%{_libdir}/wine/%{winesodir}/schtasks.exe.so +%{_libdir}/wine/%{winesodir}/sdbinst.exe.so +%{_libdir}/wine/%{winesodir}/secedit.exe.so +%{_libdir}/wine/%{winesodir}/servicemodelreg.exe.so +%{_libdir}/wine/%{winesodir}/services.exe.so +%{_libdir}/wine/%{winesodir}/start.exe.so +%{_libdir}/wine/%{winesodir}/tasklist.exe.so +%{_libdir}/wine/%{winesodir}/termsv.exe.so +%{_libdir}/wine/%{winesodir}/view.exe.so +%{_libdir}/wine/%{winesodir}/wevtutil.exe.so +%{_libdir}/wine/%{winesodir}/where.exe.so +%{_libdir}/wine/%{winesodir}/whoami.exe.so +%{_libdir}/wine/%{winesodir}/wineboot.exe.so +%{_libdir}/wine/%{winesodir}/wineconsole.exe.so +%{_libdir}/wine/%{winesodir}/winedevice.exe.so +%{_libdir}/wine/%{winesodir}/wmplayer.exe.so +%{_libdir}/wine/%{winesodir}/wscript.exe.so +%{_libdir}/wine/%{winesodir}/uninstaller.exe.so +%{_libdir}/wine/%{winesodir}/acledit.dll.so +%{_libdir}/wine/%{winesodir}/aclui.dll.so +%{_libdir}/wine/%{winesodir}/activeds.dll.so +%{_libdir}/wine/%{winesodir}/actxprxy.dll.so +%{_libdir}/wine/%{winesodir}/adsldp.dll.so +%{_libdir}/wine/%{winesodir}/adsldpc.dll.so +%{_libdir}/wine/%{winesodir}/advapi32.dll.so +%{_libdir}/wine/%{winesodir}/advpack.dll.so +%{_libdir}/wine/%{winesodir}/amsi.dll.so +%{_libdir}/wine/%{winesodir}/amstream.dll.so +%{_libdir}/wine/%{winesodir}/apphelp.dll.so +%{_libdir}/wine/%{winesodir}/appwiz.cpl.so +%{_libdir}/wine/%{winesodir}/appxdeploymentclient.dll.so +%{_libdir}/wine/%{winesodir}/atl.dll.so +%{_libdir}/wine/%{winesodir}/atl80.dll.so +%{_libdir}/wine/%{winesodir}/atl90.dll.so +%{_libdir}/wine/%{winesodir}/atl100.dll.so +%{_libdir}/wine/%{winesodir}/atl110.dll.so +%{_libdir}/wine/%{winesodir}/atlthunk.dll.so +%{_libdir}/wine/%{winesodir}/atmlib.dll.so +%{_libdir}/wine/%{winesodir}/authz.dll.so +%{_libdir}/wine/%{winesodir}/avicap32.dll.so +%{_libdir}/wine/%{winesodir}/avifil32.dll.so +%{_libdir}/wine/%{winesodir}/avrt.dll.so +%{_libdir}/wine/%{winesodir}/bcrypt.dll.so +%{_libdir}/wine/%{winesodir}/bcryptprimitives.dll.so +%{_libdir}/wine/%{winesodir}/bluetoothapis.dll.so +%{_libdir}/wine/%{winesodir}/browseui.dll.so +%{_libdir}/wine/%{winesodir}/bthprops.cpl.so +%{_libdir}/wine/%{winesodir}/cabinet.dll.so +%{_libdir}/wine/%{winesodir}/cards.dll.so +%{_libdir}/wine/%{winesodir}/cdosys.dll.so +%{_libdir}/wine/%{winesodir}/cfgmgr32.dll.so +%{_libdir}/wine/%{winesodir}/chcp.com.so +%{_libdir}/wine/%{winesodir}/clock.exe.so +%{_libdir}/wine/%{winesodir}/clusapi.dll.so +%{_libdir}/wine/%{winesodir}/cng.sys.so +%{_libdir}/wine/%{winesodir}/combase.dll.so +%{_libdir}/wine/%{winesodir}/comcat.dll.so +%{_libdir}/wine/%{winesodir}/comctl32.dll.so +%{_libdir}/wine/%{winesodir}/comdlg32.dll.so +%{_libdir}/wine/%{winesodir}/compstui.dll.so +%{_libdir}/wine/%{winesodir}/comsvcs.dll.so +%{_libdir}/wine/%{winesodir}/concrt140.dll.so +%{_libdir}/wine/%{winesodir}/connect.dll.so +%{_libdir}/wine/%{winesodir}/credui.dll.so +%{_libdir}/wine/%{winesodir}/crtdll.dll.so +%{_libdir}/wine/%{winesodir}/crypt32.dll.so +%{_libdir}/wine/%{winesodir}/cryptdlg.dll.so +%{_libdir}/wine/%{winesodir}/cryptdll.dll.so +%{_libdir}/wine/%{winesodir}/cryptext.dll.so +%{_libdir}/wine/%{winesodir}/cryptnet.dll.so +%{_libdir}/wine/%{winesodir}/cryptowinrt.dll.so +%{_libdir}/wine/%{winesodir}/cryptsp.dll.so +%{_libdir}/wine/%{winesodir}/cryptui.dll.so +%{_libdir}/wine/%{winesodir}/ctapi32.dll.so +%{_libdir}/wine/%{winesodir}/ctl3d32.dll.so +%{_libdir}/wine/%{winesodir}/d2d1.dll.so +%{_libdir}/wine/%{winesodir}/d3d10.dll.so +%{_libdir}/wine/%{winesodir}/d3d10_1.dll.so +%{_libdir}/wine/%{winesodir}/d3d10core.dll.so +%{_libdir}/wine/%{winesodir}/d3d11.dll.so +%{_libdir}/wine/%{winesodir}/d3d12.dll.so +%{_libdir}/wine/%{winesodir}/d3d12core.dll.so +%{_libdir}/wine/%{winesodir}/d3dcompiler_*.dll.so +%{_libdir}/wine/%{winesodir}/d3dim.dll.so +%{_libdir}/wine/%{winesodir}/d3dim700.dll.so +%{_libdir}/wine/%{winesodir}/d3drm.dll.so +%{_libdir}/wine/%{winesodir}/d3dx9_*.dll.so +%{_libdir}/wine/%{winesodir}/d3dx10_*.dll.so +%{_libdir}/wine/%{winesodir}/d3dx11_42.dll.so +%{_libdir}/wine/%{winesodir}/d3dx11_43.dll.so +%{_libdir}/wine/%{winesodir}/d3dxof.dll.so +%{_libdir}/wine/%{winesodir}/davclnt.dll.so +%{_libdir}/wine/%{winesodir}/dbgeng.dll.so +%{_libdir}/wine/%{winesodir}/dbghelp.dll.so +%{_libdir}/wine/%{winesodir}/dciman32.dll.so +%{_libdir}/wine/%{winesodir}/dcomp.dll.so +%{_libdir}/wine/%{winesodir}/ddraw.dll.so +%{_libdir}/wine/%{winesodir}/ddrawex.dll.so +%{_libdir}/wine/%{winesodir}/devenum.dll.so +%{_libdir}/wine/%{winesodir}/dhcpcsvc.dll.so +%{_libdir}/wine/%{winesodir}/dhcpcsvc6.dll.so +%{_libdir}/wine/%{winesodir}/dhtmled.ocx.so +%{_libdir}/wine/%{winesodir}/diasymreader.dll.so +%{_libdir}/wine/%{winesodir}/difxapi.dll.so +%{_libdir}/wine/%{winesodir}/dinput.dll.so +%{_libdir}/wine/%{winesodir}/dinput8.dll.so +%{_libdir}/wine/%{winesodir}/directmanipulation.dll.so +%{_libdir}/wine/%{winesodir}/dispex.dll.so +%{_libdir}/wine/%{winesodir}/dmband.dll.so +%{_libdir}/wine/%{winesodir}/dmcompos.dll.so +%{_libdir}/wine/%{winesodir}/dmime.dll.so +%{_libdir}/wine/%{winesodir}/dmloader.dll.so +%{_libdir}/wine/%{winesodir}/dmscript.dll.so +%{_libdir}/wine/%{winesodir}/dmstyle.dll.so +%{_libdir}/wine/%{winesodir}/dmsynth.dll.so +%{_libdir}/wine/%{winesodir}/dmusic.dll.so +%{_libdir}/wine/%{winesodir}/dmusic32.dll.so +%{_libdir}/wine/%{winesodir}/dplay.dll.so +%{_libdir}/wine/%{winesodir}/dplayx.dll.so +%{_libdir}/wine/%{winesodir}/dpnaddr.dll.so +%{_libdir}/wine/%{winesodir}/dpnet.dll.so +%{_libdir}/wine/%{winesodir}/dpnhpast.dll.so +%{_libdir}/wine/%{winesodir}/dpnhupnp.dll.so +%{_libdir}/wine/%{winesodir}/dpnlobby.dll.so +%{_libdir}/wine/%{winesodir}/dpvoice.dll.so +%{_libdir}/wine/%{winesodir}/dpwsockx.dll.so +%{_libdir}/wine/%{winesodir}/drmclien.dll.so +%{_libdir}/wine/%{winesodir}/dsound.dll.so +%{_libdir}/wine/%{winesodir}/dsdmo.dll.so +%{_libdir}/wine/%{winesodir}/dsquery.dll.so +%{_libdir}/wine/%{winesodir}/dssenh.dll.so +%{_libdir}/wine/%{winesodir}/dsuiext.dll.so +%{_libdir}/wine/%{winesodir}/dswave.dll.so +%{_libdir}/wine/%{winesodir}/dwmapi.dll.so +%{_libdir}/wine/%{winesodir}/dwrite.dll.so +%{_libdir}/wine/%{winesodir}/dx8vb.dll.so +%{_libdir}/wine/%{winesodir}/dxcore.dll.so +%{_libdir}/wine/%{winesodir}/dxdiagn.dll.so +%ghost %{_libdir}/wine/%{winesodir}/dxgi.dll.so +%{_libdir}/wine/%{winesodir}/wine-dxgi.dll.so +%{_libdir}/wine/%{winesodir}/dxgkrnl.sys.so +%{_libdir}/wine/%{winesodir}/dxgmms1.sys.so +%{_libdir}/wine/%{winesodir}/dxtrans.dll.so +%{_libdir}/wine/%{winesodir}/dxva2.dll.so +%{_libdir}/wine/%{winesodir}/esent.dll.so +%{_libdir}/wine/%{winesodir}/evr.dll.so +%{_libdir}/wine/%{winesodir}/explorerframe.dll.so +%{_libdir}/wine/%{winesodir}/faultrep.dll.so +%{_libdir}/wine/%{winesodir}/feclient.dll.so +%{_libdir}/wine/%{winesodir}/fltlib.dll.so +%{_libdir}/wine/%{winesodir}/fltmgr.sys.so +%{_libdir}/wine/%{winesodir}/fntcache.dll.so +%{_libdir}/wine/%{winesodir}/fontsub.dll.so +%{_libdir}/wine/%{winesodir}/fusion.dll.so +%{_libdir}/wine/%{winesodir}/fwpuclnt.dll.so +%{_libdir}/wine/%{winesodir}/gameux.dll.so +%{_libdir}/wine/%{winesodir}/gamingtcui.dll.so +%{_libdir}/wine/%{winesodir}/gdi32.dll.so +%{_libdir}/wine/%{winesodir}/gdiplus.dll.so +%{_libdir}/wine/%{winesodir}/geolocation.dll.so +%{_libdir}/wine/%{winesodir}/glu32.dll.so +%{_libdir}/wine/%{winesodir}/gphoto2.ds.so +%{_libdir}/wine/%{winesodir}/gpkcsp.dll.so +%{_libdir}/wine/%{winesodir}/graphicscapture.dll.so +%{_libdir}/wine/%{winesodir}/hal.dll.so +%{_libdir}/wine/%{winesodir}/hh.exe.so +%{_libdir}/wine/%{winesodir}/hhctrl.ocx.so +%{_libdir}/wine/%{winesodir}/hid.dll.so +%{_libdir}/wine/%{winesodir}/hidclass.sys.so +%{_libdir}/wine/%{winesodir}/hidparse.sys.so +%{_libdir}/wine/%{winesodir}/hlink.dll.so +%{_libdir}/wine/%{winesodir}/hnetcfg.dll.so +%{_libdir}/wine/%{winesodir}/hrtfapo.dll.so +%{_libdir}/wine/%{winesodir}/http.sys.so +%{_libdir}/wine/%{winesodir}/httpapi.dll.so +%{_libdir}/wine/%{winesodir}/hvsimanagementapi.dll.so +%{_libdir}/wine/%{winesodir}/ia2comproxy.dll.so +%{_libdir}/wine/%{winesodir}/icacls.exe.so +%{_libdir}/wine/%{winesodir}/iccvid.dll.so +%{_libdir}/wine/%{winesodir}/icinfo.exe.so +%{_libdir}/wine/%{winesodir}/ieframe.dll.so +%{_libdir}/wine/%{winesodir}/ieproxy.dll.so +%{_libdir}/wine/%{winesodir}/imaadp32.acm.so +%{_libdir}/wine/%{winesodir}/imagehlp.dll.so +%{_libdir}/wine/%{winesodir}/imm32.dll.so +%{_libdir}/wine/%{winesodir}/inetcomm.dll.so +%{_libdir}/wine/%{winesodir}/inetcpl.cpl.so +%{_libdir}/wine/%{winesodir}/inetmib1.dll.so +%{_libdir}/wine/%{winesodir}/infosoft.dll.so +%{_libdir}/wine/%{winesodir}/initpki.dll.so +%{_libdir}/wine/%{winesodir}/inkobj.dll.so +%{_libdir}/wine/%{winesodir}/inseng.dll.so +%{_libdir}/wine/%{winesodir}/iphlpapi.dll.so +%{_libdir}/wine/%{winesodir}/iprop.dll.so +%{_libdir}/wine/%{winesodir}/irprops.cpl.so +%{_libdir}/wine/%{winesodir}/ir50_32.dll.so +%{_libdir}/wine/%{winesodir}/itircl.dll.so +%{_libdir}/wine/%{winesodir}/itss.dll.so +%{_libdir}/wine/%{winesodir}/joy.cpl.so +%{_libdir}/wine/%{winesodir}/jscript.dll.so +%{_libdir}/wine/%{winesodir}/jsproxy.dll.so +%{_libdir}/wine/%{winesodir}/kerberos.dll.so +%{_libdir}/wine/%{winesodir}/kernel32.dll.so +%{_libdir}/wine/%{winesodir}/kernelbase.dll.so +%{_libdir}/wine/%{winesodir}/ksecdd.sys.so +%{_libdir}/wine/%{winesodir}/ksproxy.ax.so +%{_libdir}/wine/%{winesodir}/ksuser.dll.so +%{_libdir}/wine/%{winesodir}/ktmw32.dll.so +%{_libdir}/wine/%{winesodir}/l3codeca.acm.so +%{_libdir}/wine/%{winesodir}/loadperf.dll.so +%{_libdir}/wine/%{winesodir}/localspl.dll.so +%{_libdir}/wine/%{winesodir}/localui.dll.so +%{_libdir}/wine/%{winesodir}/lodctr.exe.so +%{_libdir}/wine/%{winesodir}/magnification.dll.so +%{_libdir}/wine/%{winesodir}/mapi32.dll.so +%{_libdir}/wine/%{winesodir}/mapistub.dll.so +%{_libdir}/wine/%{winesodir}/mciavi32.dll.so +%{_libdir}/wine/%{winesodir}/mcicda.dll.so +%{_libdir}/wine/%{winesodir}/mciqtz32.dll.so +%{_libdir}/wine/%{winesodir}/mciseq.dll.so +%{_libdir}/wine/%{winesodir}/mciwave.dll.so +%{_libdir}/wine/%{winesodir}/mf.dll.so +%{_libdir}/wine/%{winesodir}/mf3216.dll.so +%{_libdir}/wine/%{winesodir}/mfmediaengine.dll.so +%{_libdir}/wine/%{winesodir}/mfplat.dll.so +%{_libdir}/wine/%{winesodir}/mfplay.dll.so +%{_libdir}/wine/%{winesodir}/mfreadwrite.dll.so +%{_libdir}/wine/%{winesodir}/mfsrcsnk.dll.so +%{_libdir}/wine/%{winesodir}/mgmtapi.dll.so +%{_libdir}/wine/%{winesodir}/midimap.dll.so +%{_libdir}/wine/%{winesodir}/mlang.dll.so +%{_libdir}/wine/%{winesodir}/mmcndmgr.dll.so +%{_libdir}/wine/%{winesodir}/mmdevapi.dll.so +%{_libdir}/wine/%{winesodir}/mofcomp.exe.so +%{_libdir}/wine/%{winesodir}/mountmgr.sys.so +%{_libdir}/wine/%{winesodir}/mp3dmod.dll.so +%{_libdir}/wine/%{winesodir}/mpr.dll.so +%{_libdir}/wine/%{winesodir}/mprapi.dll.so +%{_libdir}/wine/%{winesodir}/msacm32.dll.so +%{_libdir}/wine/%{winesodir}/msacm32.drv.so +%{_libdir}/wine/%{winesodir}/msado15.dll.so +%{_libdir}/wine/%{winesodir}/msadp32.acm.so +%{_libdir}/wine/%{winesodir}/msasn1.dll.so +%{_libdir}/wine/%{winesodir}/msauddecmft.dll.so +%{_libdir}/wine/%{winesodir}/mscat32.dll.so +%{_libdir}/wine/%{winesodir}/mscoree.dll.so +%{_libdir}/wine/%{winesodir}/mscorwks.dll.so +%{_libdir}/wine/%{winesodir}/msctf.dll.so +%{_libdir}/wine/%{winesodir}/msctfmonitor.dll.so +%{_libdir}/wine/%{winesodir}/msctfp.dll.so +%{_libdir}/wine/%{winesodir}/msdaps.dll.so +%{_libdir}/wine/%{winesodir}/msdasql.dll.so +%{_libdir}/wine/%{winesodir}/msdelta.dll.so +%{_libdir}/wine/%{winesodir}/msdmo.dll.so +%{_libdir}/wine/%{winesodir}/msdrm.dll.so +%{_libdir}/wine/%{winesodir}/msftedit.dll.so +%{_libdir}/wine/%{winesodir}/msg711.acm.so +%{_libdir}/wine/%{winesodir}/mshtml.dll.so +%{_libdir}/wine/%{winesodir}/msgsm32.acm.so +%{_libdir}/wine/%{winesodir}/msi.dll.so +%{_libdir}/wine/%{winesodir}/msident.dll.so +%{_libdir}/wine/%{winesodir}/msimtf.dll.so +%{_libdir}/wine/%{winesodir}/msimg32.dll.so +%{_libdir}/wine/%{winesodir}/msinfo32.exe.so +%{_libdir}/wine/%{winesodir}/msisip.dll.so +%{_libdir}/wine/%{winesodir}/msisys.ocx.so +%{_libdir}/wine/%{winesodir}/msls31.dll.so +%{_libdir}/wine/%{winesodir}/msmpeg2vdec.dll.so +%{_libdir}/wine/%{winesodir}/msnet32.dll.so +%{_libdir}/wine/%{winesodir}/mspatcha.dll.so +%{_libdir}/wine/%{winesodir}/msports.dll.so +%{_libdir}/wine/%{winesodir}/msscript.ocx.so +%{_libdir}/wine/%{winesodir}/mssign32.dll.so +%{_libdir}/wine/%{winesodir}/mssip32.dll.so +%{_libdir}/wine/%{winesodir}/msrle32.dll.so +%{_libdir}/wine/%{winesodir}/mstask.dll.so +%{_libdir}/wine/%{winesodir}/msv1_0.dll.so +%{_libdir}/wine/%{winesodir}/msvcirt.dll.so +%{_libdir}/wine/%{winesodir}/msvcm80.dll.so +%{_libdir}/wine/%{winesodir}/msvcm90.dll.so +%{_libdir}/wine/%{winesodir}/msvcp_win.dll.so +%{_libdir}/wine/%{winesodir}/msvcp60.dll.so +%{_libdir}/wine/%{winesodir}/msvcp70.dll.so +%{_libdir}/wine/%{winesodir}/msvcp71.dll.so +%{_libdir}/wine/%{winesodir}/msvcp80.dll.so +%{_libdir}/wine/%{winesodir}/msvcp90.dll.so +%{_libdir}/wine/%{winesodir}/msvcp100.dll.so +%{_libdir}/wine/%{winesodir}/msvcp110.dll.so +%{_libdir}/wine/%{winesodir}/msvcp120.dll.so +%{_libdir}/wine/%{winesodir}/msvcp120_app.dll.so +%{_libdir}/wine/%{winesodir}/msvcp140.dll.so +%{_libdir}/wine/%{winesodir}/msvcp140_1.dll.so +%{_libdir}/wine/%{winesodir}/msvcp140_2.dll.so +%{_libdir}/wine/%{winesodir}/msvcp140_atomic_wait.dll.so +%{_libdir}/wine/%{winesodir}/msvcp140_codecvt_ids.dll.so +%{_libdir}/wine/%{winesodir}/msvcr70.dll.so +%{_libdir}/wine/%{winesodir}/msvcr71.dll.so +%{_libdir}/wine/%{winesodir}/msvcr80.dll.so +%{_libdir}/wine/%{winesodir}/msvcr90.dll.so +%{_libdir}/wine/%{winesodir}/msvcr100.dll.so +%{_libdir}/wine/%{winesodir}/msvcr110.dll.so +%{_libdir}/wine/%{winesodir}/msvcr120.dll.so +%{_libdir}/wine/%{winesodir}/msvcr120_app.dll.so +%{_libdir}/wine/%{winesodir}/msvcrt.dll.so +%{_libdir}/wine/%{winesodir}/msvcrt20.dll.so +%{_libdir}/wine/%{winesodir}/msvcrt40.dll.so +%{_libdir}/wine/%{winesodir}/msvcrtd.dll.so +%{_libdir}/wine/%{winesodir}/msvfw32.dll.so +%{_libdir}/wine/%{winesodir}/msvidc32.dll.so +%{_libdir}/wine/%{winesodir}/mswsock.dll.so +%{_libdir}/wine/%{winesodir}/msxml.dll.so +%{_libdir}/wine/%{winesodir}/msxml2.dll.so +%{_libdir}/wine/%{winesodir}/msxml3.dll.so +%{_libdir}/wine/%{winesodir}/msxml4.dll.so +%{_libdir}/wine/%{winesodir}/msxml6.dll.so +%{_libdir}/wine/%{winesodir}/mtxdm.dll.so +%{_libdir}/wine/%{winesodir}/nddeapi.dll.so +%{_libdir}/wine/%{winesodir}/ncrypt.dll.so +%{_libdir}/wine/%{winesodir}/ndis.sys.so +%{_libdir}/wine/%{winesodir}/netapi32.dll.so +%{_libdir}/wine/%{winesodir}/netcfgx.dll.so +%{_libdir}/wine/%{winesodir}/netio.sys.so +%{_libdir}/wine/%{winesodir}/netprofm.dll.so +%{_libdir}/wine/%{winesodir}/netsh.exe.so +%if 0%{?wine_staging} +%{_libdir}/wine/%{winesodir}/netutils.dll.so +%endif +%{_libdir}/wine/%{winesodir}/newdev.dll.so +%{_libdir}/wine/%{winesodir}/ninput.dll.so +%{_libdir}/wine/%{winesodir}/npmshtml.dll.so +%{_libdir}/wine/%{winesodir}/npptools.dll.so +%{_libdir}/wine/%{winesodir}/nsi.dll.so +%{_libdir}/wine/%{winesodir}/nsiproxy.sys.so +%{_libdir}/wine/%{winesodir}/ntdll.dll.so +%{_libdir}/wine/%{winesodir}/ntdsapi.dll.so +%{_libdir}/wine/%{winesodir}/ntprint.dll.so +%{_libdir}/wine/%{winesodir}/objsel.dll.so +%{_libdir}/wine/%{winesodir}/odbc32.dll.so +%{_libdir}/wine/%{winesodir}/odbcbcp.dll.so +%{_libdir}/wine/%{winesodir}/odbccp32.dll.so +%{_libdir}/wine/%{winesodir}/odbccu32.dll.so +%{_libdir}/wine/%{winesodir}/ole32.dll.so +%{_libdir}/wine/%{winesodir}/oleacc.dll.so +%{_libdir}/wine/%{winesodir}/oleaut32.dll.so +%{_libdir}/wine/%{winesodir}/olecli32.dll.so +%{_libdir}/wine/%{winesodir}/oledb32.dll.so +%{_libdir}/wine/%{winesodir}/oledlg.dll.so +%{_libdir}/wine/%{winesodir}/olepro32.dll.so +%{_libdir}/wine/%{winesodir}/olesvr32.dll.so +%{_libdir}/wine/%{winesodir}/olethk32.dll.so +%{_libdir}/wine/%{winesodir}/opcservices.dll.so +%{_libdir}/wine/%{winesodir}/opengl32.dll.so +%{_libdir}/wine/%{winesodir}/packager.dll.so +%{_libdir}/wine/%{winesodir}/pdh.dll.so +%{_libdir}/wine/%{winesodir}/photometadatahandler.dll.so +%{_libdir}/wine/%{winesodir}/pidgen.dll.so +%{_libdir}/wine/%{winesodir}/powrprof.dll.so +%{_libdir}/wine/%{winesodir}/presentationfontcache.exe.so +%{_libdir}/wine/%{winesodir}/printui.dll.so +%{_libdir}/wine/%{winesodir}/prntvpt.dll.so +%{_libdir}/wine/%{winesodir}/propsys.dll.so +%{_libdir}/wine/%{winesodir}/psapi.dll.so +%{_libdir}/wine/%{winesodir}/pstorec.dll.so +%{_libdir}/wine/%{winesodir}/pwrshplugin.dll.so +%{_libdir}/wine/%{winesodir}/qasf.dll.so +%{_libdir}/wine/%{winesodir}/qcap.dll.so +%{_libdir}/wine/%{winesodir}/qdvd.dll.so +%{_libdir}/wine/%{winesodir}/qedit.dll.so +%{_libdir}/wine/%{winesodir}/qmgr.dll.so +%{_libdir}/wine/%{winesodir}/qmgrprxy.dll.so +%{_libdir}/wine/%{winesodir}/quartz.dll.so +%{_libdir}/wine/%{winesodir}/query.dll.so +%{_libdir}/wine/%{winesodir}/qwave.dll.so +%{_libdir}/wine/%{winesodir}/rasapi32.dll.so +%{_libdir}/wine/%{winesodir}/rasdlg.dll.so +%{_libdir}/wine/%{winesodir}/regapi.dll.so +%{_libdir}/wine/%{winesodir}/regini.exe.so +%{_libdir}/wine/%{winesodir}/resutils.dll.so +%{_libdir}/wine/%{winesodir}/riched20.dll.so +%{_libdir}/wine/%{winesodir}/riched32.dll.so +%{_libdir}/wine/%{winesodir}/robocopy.exe.so +%{_libdir}/wine/%{winesodir}/rpcrt4.dll.so +%{_libdir}/wine/%{winesodir}/rsabase.dll.so +%{_libdir}/wine/%{winesodir}/rsaenh.dll.so +%{_libdir}/wine/%{winesodir}/rstrtmgr.dll.so +%{_libdir}/wine/%{winesodir}/rtutils.dll.so +%{_libdir}/wine/%{winesodir}/rtworkq.dll.so +%{_libdir}/wine/%{winesodir}/samlib.dll.so +%{_libdir}/wine/%{winesodir}/sapi.dll.so +%{_libdir}/wine/%{winesodir}/sas.dll.so +%{_libdir}/wine/%{winesodir}/sc.exe.so +%{_libdir}/wine/%{winesodir}/scarddlg.dll.so +%{_libdir}/wine/%{winesodir}/scardsvr.dll.so +%{_libdir}/wine/%{winesodir}/sccbase.dll.so +%{_libdir}/wine/%{winesodir}/schannel.dll.so +%{_libdir}/wine/%{winesodir}/scrobj.dll.so +%{_libdir}/wine/%{winesodir}/scrrun.dll.so +%{_libdir}/wine/%{winesodir}/scsiport.sys.so +%{_libdir}/wine/%{winesodir}/sechost.dll.so +%{_libdir}/wine/%{winesodir}/secur32.dll.so +%{_libdir}/wine/%{winesodir}/sensapi.dll.so +%{_libdir}/wine/%{winesodir}/serialui.dll.so +%{_libdir}/wine/%{winesodir}/setupapi.dll.so +%{_libdir}/wine/%{winesodir}/sfc_os.dll.so +%{_libdir}/wine/%{winesodir}/shcore.dll.so +%{_libdir}/wine/%{winesodir}/shdocvw.dll.so +%{_libdir}/wine/%{winesodir}/schedsvc.dll.so +%{_libdir}/wine/%{winesodir}/shell32.dll.so +%{_libdir}/wine/%{winesodir}/shfolder.dll.so +%{_libdir}/wine/%{winesodir}/shlwapi.dll.so +%{_libdir}/wine/%{winesodir}/shutdown.exe.so +%{_libdir}/wine/%{winesodir}/slbcsp.dll.so +%{_libdir}/wine/%{winesodir}/slc.dll.so +%{_libdir}/wine/%{winesodir}/snmpapi.dll.so +%{_libdir}/wine/%{winesodir}/softpub.dll.so +%{_libdir}/wine/%{winesodir}/spoolsv.exe.so +%{_libdir}/wine/%{winesodir}/sppc.dll.so +%{_libdir}/wine/%{winesodir}/srclient.dll.so +%if 0%{?wine_staging} +%{_libdir}/wine/%{winesodir}/srvcli.dll.so +%endif +%{_libdir}/wine/%{winesodir}/srvsvc.dll.so +%{_libdir}/wine/%{winesodir}/sspicli.dll.so +%{_libdir}/wine/%{winesodir}/sti.dll.so +%{_libdir}/wine/%{winesodir}/strmdll.dll.so +%{_libdir}/wine/%{winesodir}/subst.exe.so +%{_libdir}/wine/%{winesodir}/svchost.exe.so +%{_libdir}/wine/%{winesodir}/svrapi.dll.so +%{_libdir}/wine/%{winesodir}/sxs.dll.so +%{_libdir}/wine/%{winesodir}/systeminfo.exe.so +%{_libdir}/wine/%{winesodir}/t2embed.dll.so +%{_libdir}/wine/%{winesodir}/tapi32.dll.so +%{_libdir}/wine/%{winesodir}/taskkill.exe.so +%{_libdir}/wine/%{winesodir}/taskschd.dll.so +%{_libdir}/wine/%{winesodir}/tbs.dll.so +%{_libdir}/wine/%{winesodir}/tdh.dll.so +%{_libdir}/wine/%{winesodir}/tdi.sys.so +%{_libdir}/wine/%{winesodir}/threadpoolwinrt.dll.so +%{_libdir}/wine/%{winesodir}/traffic.dll.so +%{_libdir}/wine/%{winesodir}/twinapi.appcore.dll.so +%{_libdir}/wine/%{winesodir}/ucrtbase.dll.so +%if 0%{?wine_staging} +%{_libdir}/wine/%{winesodir}/uianimation.dll.so +%endif +%{_libdir}/wine/%{winesodir}/uiautomationcore.dll.so +%{_libdir}/wine/%{winesodir}/uiribbon.dll.so +%{_libdir}/wine/%{winesodir}/unicows.dll.so +%{_libdir}/wine/%{winesodir}/unlodctr.exe.so +%{_libdir}/wine/%{winesodir}/updspapi.dll.so +%{_libdir}/wine/%{winesodir}/url.dll.so +%{_libdir}/wine/%{winesodir}/urlmon.dll.so +%{_libdir}/wine/%{winesodir}/usbd.sys.so +%{_libdir}/wine/%{winesodir}/user32.dll.so +%{_libdir}/wine/%{winesodir}/utildll.dll.so +%{_libdir}/wine/%{winesodir}/uxtheme.dll.so +%{_libdir}/wine/%{winesodir}/userenv.dll.so +%{_libdir}/wine/%{winesodir}/vbscript.dll.so +%{_libdir}/wine/%{winesodir}/vcomp.dll.so +%{_libdir}/wine/%{winesodir}/vcomp90.dll.so +%{_libdir}/wine/%{winesodir}/vcomp100.dll.so +%{_libdir}/wine/%{winesodir}/vcomp110.dll.so +%{_libdir}/wine/%{winesodir}/vcomp120.dll.so +%{_libdir}/wine/%{winesodir}/vcomp140.dll.so +%{_libdir}/wine/%{winesodir}/vcruntime140.dll.so +%{_libdir}/wine/%{winesodir}/vcruntime140_1.dll.so +%{_libdir}/wine/%{winesodir}/vdmdbg.dll.so +%{_libdir}/wine/%{winesodir}/version.dll.so +%{_libdir}/wine/%{winesodir}/vga.dll.so +%{_libdir}/wine/%{winesodir}/virtdisk.dll.so +%{_libdir}/wine/%{winesodir}/vssapi.dll.so +%{_libdir}/wine/%{winesodir}/vulkan-1.dll.so +%{_libdir}/wine/%{winesodir}/wbemdisp.dll.so +%{_libdir}/wine/%{winesodir}/wbemprox.dll.so +%{_libdir}/wine/%{winesodir}/wdscore.dll.so +%{_libdir}/wine/%{winesodir}/webservices.dll.so +%{_libdir}/wine/%{winesodir}/websocket.dll.so +%{_libdir}/wine/%{winesodir}/wer.dll.so +%{_libdir}/wine/%{winesodir}/wevtapi.dll.so +%{_libdir}/wine/%{winesodir}/wevtsvc.dll.so +%{_libdir}/wine/%{winesodir}/wiaservc.dll.so +%{_libdir}/wine/%{winesodir}/wimgapi.dll.so +%{_libdir}/wine/%{winesodir}/win32k.sys.so +%{_libdir}/wine/%{winesodir}/win32u.dll.so +%{_libdir}/wine/%{winesodir}/windows.applicationmodel.dll.so +%{_libdir}/wine/%{winesodir}/windows.devices.bluetooth.dll.so +%{_libdir}/wine/%{winesodir}/windows.devices.enumeration.dll.so +%{_libdir}/wine/%{winesodir}/windows.devices.usb.dll.so +%{_libdir}/wine/%{winesodir}/windows.gaming.ui.gamebar.dll.so +%{_libdir}/wine/%{winesodir}/windows.gaming.input.dll.so +%{_libdir}/wine/%{winesodir}/windows.globalization.dll.so +%{_libdir}/wine/%{winesodir}/windows.media.dll.so +%{_libdir}/wine/%{winesodir}/windows.media.devices.dll.so +%{_libdir}/wine/%{winesodir}/windows.media.media.mediacontrol.dll.so +%{_libdir}/wine/%{winesodir}/windows.media.speech.dll.so +%{_libdir}/wine/%{winesodir}/windows.networking.connectivity.so +%{_libdir}/wine/%{winesodir}/windows.networking.dll.so +%{_libdir}/wine/%{winesodir}/windows.networking.hostname.dll.so +%{_libdir}/wine/%{winesodir}/windows.perception.stub.dll.so +%{_libdir}/wine/%{winesodir}/windows.security.credentials.ui.userconsentverifier.dll.so +%{_libdir}/wine/%{winesodir}/windows.storage.applicationdata.dll.so +%{_libdir}/wine/%{winesodir}/windows.system.profile.systemmanufacturers.dll.so +%{_libdir}/wine/%{winesodir}/windows.ui.so +%{_libdir}/wine/%{winesodir}/windowscodecs.dll.so +%{_libdir}/wine/%{winesodir}/windowscodecsext.dll.so +%{_libdir}/wine/%{winesodir}/winebus.sys.so +%{_libdir}/wine/%{winesodir}/wined3d.dll.so +%{_libdir}/wine/%{winesodir}/winegstreamer.dll.so +%{_libdir}/wine/%{winesodir}/winehid.sys.so +%{_libdir}/wine/%{winesodir}/winemapi.dll.so +%{_libdir}/wine/%{winesodir}/wineusb.sys.so +%{_libdir}/wine/%{winesodir}/winevulkan.dll.so +%{_libdir}/wine/%{winesodir}/winexinput.sys.so +%{_libdir}/wine/%{winesodir}/wing32.dll.so +%{_libdir}/wine/%{winesodir}/winhttp.dll.so +%{_libdir}/wine/%{winesodir}/wininet.dll.so +%{_libdir}/wine/%{winesodir}/winmm.dll.so +%{_libdir}/wine/%{winesodir}/winnls32.dll.so +%{_libdir}/wine/%{winesodir}/winprint.dll.so +%{_libdir}/wine/%{winesodir}/winspool.drv.so +%{_libdir}/wine/%{winesodir}/winsta.dll.so +%{_libdir}/wine/%{winesodir}/wldp.dll.so +%{_libdir}/wine/%{winesodir}/wmasf.dll.so +%{_libdir}/wine/%{winesodir}/wmic.exe.so +%{_libdir}/wine/%{winesodir}/wmiutils.dll.so +%{_libdir}/wine/%{winesodir}/wmp.dll.so +%{_libdir}/wine/%{winesodir}/wmvcore.dll.so +%{_libdir}/wine/%{winesodir}/spoolss.dll.so +%{_libdir}/wine/%{winesodir}/wintab32.dll.so +%{_libdir}/wine/%{winesodir}/wintrust.dll.so +%{_libdir}/wine/%{winesodir}/wintypes.dll.so +%{_libdir}/wine/%{winesodir}/winusb.dll.so +%{_libdir}/wine/%{winesodir}/wlanapi.dll.so +%{_libdir}/wine/%{winesodir}/wlanui.dll.so +%{_libdir}/wine/%{winesodir}/wmphoto.dll.so +%{_libdir}/wine/%{winesodir}/wnaspi32.dll.so +%{_libdir}/wine/%{winesodir}/wofutil.dll.so +%{_libdir}/wine/%{winesodir}/wpc.dll.so +%{_libdir}/wine/%{winesodir}/wpcap.dll.so +%{_libdir}/wine/%{winesodir}/ws2_32.dll.so +%{_libdir}/wine/%{winesodir}/wsdapi.dll.so +%{_libdir}/wine/%{winesodir}/wshom.ocx.so +%{_libdir}/wine/%{winesodir}/wsnmp32.dll.so +%{_libdir}/wine/%{winesodir}/wsock32.dll.so +%{_libdir}/wine/%{winesodir}/wtsapi32.dll.so +%{_libdir}/wine/%{winesodir}/wuapi.dll.so +%{_libdir}/wine/%{winesodir}/wuaueng.dll.so +%{_libdir}/wine/%{winesodir}/wineps.drv.so +%{_libdir}/wine/%{winesodir}/d3d8.dll.so +%{_libdir}/wine/%{winesodir}/d3d8thk.dll.so +%{_libdir}/wine/%{winesodir}/d3d9.dll.so +%{_libdir}/wine/%{winesodir}/dnsapi.dll.so +%{_libdir}/wine/%{winesodir}/iexplore.exe.so +%{_libdir}/wine/%{winesodir}/xcopy.exe.so +%{_libdir}/wine/%{winesodir}/x3daudio1_0.dll.so +%{_libdir}/wine/%{winesodir}/x3daudio1_1.dll.so +%{_libdir}/wine/%{winesodir}/x3daudio1_2.dll.so +%{_libdir}/wine/%{winesodir}/x3daudio1_3.dll.so +%{_libdir}/wine/%{winesodir}/x3daudio1_4.dll.so +%{_libdir}/wine/%{winesodir}/x3daudio1_5.dll.so +%{_libdir}/wine/%{winesodir}/x3daudio1_6.dll.so +%{_libdir}/wine/%{winesodir}/x3daudio1_7.dll.so +%{_libdir}/wine/%{winesodir}/xactengine2_0.dll.so +%{_libdir}/wine/%{winesodir}/xactengine2_4.dll.so +%{_libdir}/wine/%{winesodir}/xactengine2_7.dll.so +%{_libdir}/wine/%{winesodir}/xactengine2_9.dll.so +%{_libdir}/wine/%{winesodir}/xactengine3_0.dll.so +%{_libdir}/wine/%{winesodir}/xactengine3_1.dll.so +%{_libdir}/wine/%{winesodir}/xactengine3_2.dll.so +%{_libdir}/wine/%{winesodir}/xactengine3_3.dll.so +%{_libdir}/wine/%{winesodir}/xactengine3_4.dll.so +%{_libdir}/wine/%{winesodir}/xactengine3_5.dll.so +%{_libdir}/wine/%{winesodir}/xactengine3_6.dll.so +%{_libdir}/wine/%{winesodir}/xactengine3_7.dll.so +%{_libdir}/wine/%{winesodir}/xapofx1_1.dll.so +%{_libdir}/wine/%{winesodir}/xapofx1_2.dll.so +%{_libdir}/wine/%{winesodir}/xapofx1_3.dll.so +%{_libdir}/wine/%{winesodir}/xapofx1_4.dll.so +%{_libdir}/wine/%{winesodir}/xapofx1_5.dll.so +%{_libdir}/wine/%{winesodir}/xaudio2_0.dll.so +%{_libdir}/wine/%{winesodir}/xaudio2_1.dll.so +%{_libdir}/wine/%{winesodir}/xaudio2_2.dll.so +%{_libdir}/wine/%{winesodir}/xaudio2_3.dll.so +%{_libdir}/wine/%{winesodir}/xaudio2_4.dll.so +%{_libdir}/wine/%{winesodir}/xaudio2_5.dll.so +%{_libdir}/wine/%{winesodir}/xaudio2_6.dll.so +%{_libdir}/wine/%{winesodir}/xaudio2_7.dll.so +%{_libdir}/wine/%{winesodir}/xaudio2_8.dll.so +%{_libdir}/wine/%{winesodir}/xaudio2_9.dll.so +%{_libdir}/wine/%{winesodir}/xinput1_1.dll.so +%{_libdir}/wine/%{winesodir}/xinput1_2.dll.so +%{_libdir}/wine/%{winesodir}/xinput1_3.dll.so +%{_libdir}/wine/%{winesodir}/xinput1_4.dll.so +%{_libdir}/wine/%{winesodir}/xinput9_1_0.dll.so +%{_libdir}/wine/%{winesodir}/xinputuap.dll.so +%{_libdir}/wine/%{winesodir}/xmllite.dll.so +%{_libdir}/wine/%{winesodir}/xolehlp.dll.so +%{_libdir}/wine/%{winesodir}/xpsprint.dll.so +%{_libdir}/wine/%{winesodir}/xpssvcs.dll.so +%endif + +%files filesystem +%doc COPYING.LIB +%dir %{_datadir}/wine +%dir %{_datadir}/wine/gecko +%dir %{_datadir}/wine/mono +%dir %{_datadir}/wine/fonts +%{_datadir}/wine/wine.inf +%{_datadir}/wine/nls/ + +%files common +%{_bindir}/notepad +%{_bindir}/winedbg +%{_bindir}/winefile +%{_bindir}/winemine +%{_bindir}/winemaker +%{_bindir}/winepath +%{_bindir}/msiexec +%{_bindir}/regedit +%{_bindir}/regsvr32 +%{_bindir}/wineboot +%{_bindir}/wineconsole +%{_bindir}/winecfg +%{_mandir}/man1/wine.1* +%{_mandir}/man1/wineserver.1* +%{_mandir}/man1/msiexec.1* +%{_mandir}/man1/notepad.1* +%{_mandir}/man1/regedit.1* +%{_mandir}/man1/regsvr32.1* +%{_mandir}/man1/wineboot.1* +%{_mandir}/man1/winecfg.1* +%{_mandir}/man1/wineconsole.1* +%{_mandir}/man1/winefile.1* +%{_mandir}/man1/winemine.1* +%{_mandir}/man1/winepath.1* +%lang(de) %{_mandir}/de.UTF-8/man1/wine.1* +%lang(de) %{_mandir}/de.UTF-8/man1/wineserver.1* +%lang(fr) %{_mandir}/fr.UTF-8/man1/wine.1* +%lang(fr) %{_mandir}/fr.UTF-8/man1/wineserver.1* +%lang(pl) %{_mandir}/pl.UTF-8/man1/wine.1* + +%files fonts +# meta package + +%if 0%{?wine_staging} +%files arial-fonts +%doc COPYING.LIB +%{_datadir}/wine/fonts/arial* +%endif +#0%%{?wine_staging} + +%files courier-fonts +%doc COPYING.LIB +%{_datadir}/wine/fonts/cou* + +%files fixedsys-fonts +%doc COPYING.LIB +%{_datadir}/wine/fonts/*vgafix.fon + +%files system-fonts +%doc COPYING.LIB +%{_datadir}/wine/fonts/cvgasys.fon +%{_datadir}/wine/fonts/hvgasys.fon +%{_datadir}/wine/fonts/jvgasys.fon +%{_datadir}/wine/fonts/svgasys.fon +%{_datadir}/wine/fonts/vgas1255.fon +%{_datadir}/wine/fonts/vgas1256.fon +%{_datadir}/wine/fonts/vgas1257.fon +%{_datadir}/wine/fonts/vgas874.fon +%{_datadir}/wine/fonts/vgasys.fon +%{_datadir}/wine/fonts/vgasyse.fon +%{_datadir}/wine/fonts/vgasysg.fon +%{_datadir}/wine/fonts/vgasysr.fon +%{_datadir}/wine/fonts/vgasyst.fon + +%files small-fonts +%doc COPYING.LIB +%{_datadir}/wine/fonts/sma* +%{_datadir}/wine/fonts/jsma* + +%files marlett-fonts +%doc COPYING.LIB +%{_datadir}/wine/fonts/marlett.ttf + +%files ms-sans-serif-fonts +%doc COPYING.LIB +%{_datadir}/wine/fonts/sse* +%if 0%{?wine_staging} +%{_datadir}/wine/fonts/msyh.ttf +%endif + +%files tahoma-fonts +%doc COPYING.LIB +%{_datadir}/wine/fonts/tahoma*ttf + +%files tahoma-fonts-system +%doc README-tahoma +%{_datadir}/fonts/wine-tahoma-fonts +%{_fontconfig_confdir}/20-wine-tahoma*conf +%{_fontconfig_templatedir}/20-wine-tahoma*conf + +%if 0%{?wine_staging} +%files times-new-roman-fonts +%doc COPYING.LIB +%{_datadir}/wine/fonts/times.ttf + +%files times-new-roman-fonts-system +%{_datadir}/fonts/wine-times-new-roman-fonts +%endif + +%files symbol-fonts +%doc COPYING.LIB +%{_datadir}/wine/fonts/symbol.ttf + +%files webdings-fonts +%doc COPYING.LIB +%{_datadir}/wine/fonts/webdings.ttf + +%files wingdings-fonts +%doc COPYING.LIB +%{_datadir}/wine/fonts/wingding.ttf + +%files wingdings-fonts-system +%{_datadir}/fonts/wine-wingdings-fonts + +%files desktop +%{_datadir}/applications/wine-notepad.desktop +%{_datadir}/applications/wine-winefile.desktop +%{_datadir}/applications/wine-winemine.desktop +%{_datadir}/applications/wine-mime-msi.desktop +%{_datadir}/applications/wine.desktop +%{_datadir}/applications/wine-regedit.desktop +%{_datadir}/applications/wine-uninstaller.desktop +%{_datadir}/applications/wine-winecfg.desktop +%{_datadir}/applications/wine-wineboot.desktop +%{_datadir}/applications/wine-winhelp.desktop +%{_datadir}/applications/wine-wordpad.desktop +%{_datadir}/applications/wine-oleview.desktop +%{_datadir}/desktop-directories/Wine.directory +%config %{_sysconfdir}/xdg/menus/applications-merged/wine.menu +%{_metainfodir}/%{name}.appdata.xml +%{_datadir}/icons/hicolor/scalable/apps/*svg + +%files systemd +%config %{_binfmtdir}/wine.conf + +# ldap subpackage +%files ldap +%{_libdir}/wine/%{winepedir}/wldap32.dll +%ifarch %{arm} +%{_libdir}/wine/%{winesodir}/wldap32.dll.so +%endif + +# cms subpackage +%files cms +%{_libdir}/wine/%{winepedir}/mscms.dll +%ifarch %{arm} +%{_libdir}/wine/%{winesodir}/mscms.dll.so +%endif + +# twain subpackage +%files twain +%{_libdir}/wine/%{winepedir}/twain_32.dll +%ifarch %{arm} +%{_libdir}/wine/%{winesodir}/twain_32.dll.so +%endif +%{_libdir}/wine/%{winepedir}/sane.ds +%ifarch %{arm} +%{_libdir}/wine/%{winesodir}/sane.ds.so +%endif +%{_libdir}/wine/%{winesodir}/sane.so + +%files devel +%{_bindir}/function_grep.pl +%{_bindir}/widl +%{_bindir}/winebuild +%{_bindir}/winecpp +%{_bindir}/winedump +%{_bindir}/wineg++ +%{_bindir}/winegcc +%{_bindir}/winemaker +%{_bindir}/wmc +%{_bindir}/wrc +%{_mandir}/man1/widl.1* +%{_mandir}/man1/winebuild.1* +%{_mandir}/man1/winecpp.1* +%{_mandir}/man1/winedump.1* +%{_mandir}/man1/winegcc.1* +%{_mandir}/man1/winemaker.1* +%{_mandir}/man1/wmc.1* +%{_mandir}/man1/wrc.1* +%{_mandir}/man1/winedbg.1* +%{_mandir}/man1/wineg++.1* +%lang(de) %{_mandir}/de.UTF-8/man1/winemaker.1* +%lang(fr) %{_mandir}/fr.UTF-8/man1/winemaker.1* +%attr(0755, root, root) %dir %{_includedir}/wine +%{_includedir}/wine/* +%ifarch %{ix86} x86_64 aarch64 +%{_libdir}/wine/%{winepedir}/*.a +%endif +%ifarch %{ix86} x86_64 +%{_libdir}/wine/%{winesodir}/*.a +%endif + + +%files pulseaudio +%{_libdir}/wine/%{winepedir}/winepulse.drv +%{_libdir}/wine/%{winesodir}/winepulse.so +%ifarch %{arm} +%{_libdir}/wine/%{winesodir}/winepulse.drv.so +%endif + +%files alsa +%{_libdir}/wine/%{winepedir}/winealsa.drv +%{_libdir}/wine/%{winesodir}/winealsa.so +%ifarch %{arm} +%{_libdir}/wine/%{winesodir}/winealsa.drv.so +%endif + +%if 0%{?fedora} +%files opencl +%{_libdir}/wine/%{winepedir}/opencl.dll +%ifarch %{arm} +%{_libdir}/wine/%{winesodir}/opencl.dll.so +%endif +%{_libdir}/wine/%{winesodir}/opencl.so +%endif + +%changelog +* Mon Oct 30 2023 Michael Cronenworth - 8.19-1 +- version update + +* Sun Oct 15 2023 Michael Cronenworth - 8.18-1 +- version update + +* Sun Oct 01 2023 Michael Cronenworth - 8.17-1 +- version update + +* Tue Aug 22 2023 Michael Cronenworth - 8.14-1 +- version update + +* Thu Aug 17 2023 Michael Cronenworth - 8.13-1 +- version update + +* Sat Jul 22 2023 Fedora Release Engineering - 8.12-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Mon Jul 10 2023 Michael Cronenworth - 8.12-1 +- version update + +* Sun Jun 25 2023 Michael Cronenworth - 8.11-1 +- version update + +* Wed Apr 19 2023 Michael Cronenworth - 8.6-1 +- version update + +* Sat Apr 01 2023 Michael Cronenworth - 8.5-1 +- version update + +* Tue Mar 21 2023 Michael Cronenworth - 8.4-1 +- version update + +* Wed Feb 22 2023 Michael Cronenworth - 8.2-3 +- fix missing requires for win-iconv + +* Tue Feb 21 2023 Michael Cronenworth - 8.2-2 +- fix missing requires for libjpeg and libtiff + +* Mon Feb 20 2023 Michael Cronenworth - 8.2-1 +- version update + +* Mon Feb 06 2023 Michael Cronenworth - 8.1-1 +- version update + +* Tue Jan 24 2023 Michael Cronenworth - 8.0-1 +- version update + +* Sat Jan 21 2023 Fedora Release Engineering - 8.0-0.rc4.1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Mon Jan 16 2023 Michael Cronenworth - 8.0-0.rc4.1 +- version update + +* Mon Nov 28 2022 Michael Cronenworth - 7.22-2 +- fix typo in openal obsoletes + +* Sun Nov 27 2022 Michael Cronenworth - 7.22-1 +- version update +- drop openal package + +* Mon Oct 31 2022 Michael Cronenworth - 7.20-1 +- version update + +* Mon Oct 24 2022 Michael Cronenworth - 7.19-1 +- version update + +* Thu Oct 13 2022 Michael Cronenworth - 7.18-2 +- Require MinGW FAudio + +* Tue Oct 11 2022 Michael Cronenworth - 7.18-1 +- version update +- Drop isdn4k-utils from Recommends + +* Sat Jul 23 2022 Fedora Release Engineering - 7.12-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Thu Jul 14 2022 Michael Cronenworth - 7.12-2 +- Requires on vkd3d + +* Tue Jul 05 2022 Michael Cronenworth - 7.12-1 +- versuon update +- Unbundle vkd3d + +* Wed Jun 22 2022 Michael Cronenworth - 7.11-1 +- version update + +* Mon Jun 06 2022 Michael Cronenworth - 7.10-2 +- Require new Mono + +* Mon Jun 06 2022 Michael Cronenworth - 7.10-1 +- version update + +* Mon May 23 2022 Michael Cronenworth - 7.9-1 +- version update + +* Tue Mar 29 2022 Michael Cronenworth - 7.5-1 +- version update +- drop 32-bit ARM +- require on Fedora MinGW dependencies + +* Fri Mar 25 2022 Sandro Mani - 7.3-2 +- Rebuild with mingw-gcc-12 + +* Fri Mar 11 2022 Michael Cronenworth - 7.3-1 +- version update + +* Sun Feb 13 2022 Björn Esser - 7.2-1 +- version update + +* Mon Jan 31 2022 Björn Esser - 7.1-2 +- Revert to wine-mono 7.0.0 + +* Sat Jan 29 2022 Björn Esser - 7.1-1 +- version update + +* Sat Jan 22 2022 Fedora Release Engineering - 7.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Wed Jan 19 2022 Björn Esser - 7.0-1 +- version update + +* Sat Jan 15 2022 Björn Esser - 7.0-0.6rc6 +- version update + +* Sun Jan 09 2022 Björn Esser - 7.0-0.5rc5 +- version update + +* Mon Jan 03 2022 Michael Cronenworth 7.0-0.4rc4 +- version update + +* Mon Jan 03 2022 FeRD (Frank Dana) 7.0-0.3rc3 +- Silence messages from expected failures during rpm scriptlets + +* Mon Dec 27 2021 Björn Esser - 7.0-0.2rc3 +- version update + +* Mon Dec 20 2021 Michael Cronenworth 7.0-0.1rc2 +- version update + +* Wed Nov 10 2021 Michael Cronenworth 6.21-1 +- version update + +* Mon Oct 04 2021 Michael Cronenworth 6.18-1 +- version update + +* Mon Aug 30 2021 Michael Cronenworth 6.16-1 +- version update + +* Wed Jul 07 2021 Michael Cronenworth 6.12-1 +- version update + +* Sat Jun 19 2021 Michael Cronenworth 6.11-1 +- version update + +* Mon Jun 07 2021 Michael Cronenworth 6.10-1 +- version update + +* Mon May 24 2021 Michael Cronenworth 6.9-1 +- version update + +* Sat May 08 2021 Michael Cronenworth 6.8-1 +- version update + +* Sat Apr 24 2021 Michael Cronenworth 6.7-1 +- version update + +* Sun Apr 11 2021 Michael Cronenworth 6.6-1 +- version update + +* Mon Mar 15 2021 Michael Cronenworth 6.4-1 +- version update + +* Sat Feb 27 2021 Michael Cronenworth 6.3-1 +- version update + +* Sat Feb 13 2021 Michael Cronenworth 6.2-1 +- version update + +* Mon Feb 01 2021 Michael Cronenworth 6.1-1 +- version update + +* Wed Jan 27 2021 Fedora Release Engineering - 6.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Thu Jan 14 2021 Michael Cronenworth 6.0-1 +- version update + +* Sun Jan 10 2021 Michael Cronenworth 6.0-0.6rc6 +- version update + +* Thu Jan 07 2021 Michael Cronenworth 6.0-0.5rc5 +- version update + +* Sat Dec 26 2020 Michael Cronenworth 6.0-0.4rc4 +- version update + +* Sat Dec 19 2020 Michael Cronenworth 6.0-0.3rc3 +- version update + +* Sat Dec 12 2020 Michael Cronenworth 6.0-0.2rc2 +- version update + +* Tue Dec 08 2020 Michael Cronenworth 6.0-0.1rc1 +- version update + diff --git a/sources b/sources deleted file mode 100644 index 5569b3d..0000000 --- a/sources +++ /dev/null @@ -1,3 +0,0 @@ -SHA512 (wine-8.19.tar.xz) = ad4178c5e9f336eb968f0c378e3819794507447728acd10d642c1d66e0745837e47a70579bc9c7d9bec4510ca47e230bf4ab05ddf39323669ed24a6fce9f8c02 -SHA512 (wine-8.19.tar.xz.sign) = d89e0cc1d6bbee93805906a7071e60044c9d9c3a9d5fedc270d7d85f0f167157afa047183ba1f4a801df11fa879168402097bb8a88e3c88ca77f2e6608046308 -SHA512 (wine-staging-8.19.tar.gz) = 764cb824250aba7390dcede8b5269fc2c58f3bab8e0bef5e7bfb33ba553d1b506e0e5d8e11e6ee960958bd22086127c178e418767e8051c2767949b74df2afb1