Re: ntdll: Use environment variable "WINESERVER" first on search for wineserver to start.
On 15.02.2017 15:27, Ralf Habacker wrote:
This fixes the issue that WINESERVER environment variable is only used if @bindir@/wineserver does not exist.
Maybe I'm missing something, but what would be the purpose of running a different wineserver? If the protocol version does not match this will not work anyway.
Signed-off-by: Ralf Habacker <ralf.habacker(a)freenet.de> --- libs/wine/config.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/libs/wine/config.c b/libs/wine/config.c index 3b5dd68..433666b 100644 --- a/libs/wine/config.c +++ b/libs/wine/config.c @@ -530,6 +530,13 @@ void wine_exec_wine_binary( const char *name, char **argv, const char *env_var )
It looks like your mail client corrupted the patch.
use_preloader = 0; #endif + /* first specified environment variable */ + if (env_var) + { + argv[0] = (char *)env_var; + preloader_exec( argv, use_preloader ); + } + if ((ptr = strrchr( name, '/' ))) { /* if we are in build dir and name contains a path, try that */ @@ -542,7 +549,7 @@ void wine_exec_wine_binary( const char *name, char **argv, const char *env_var ) name = ptr + 1; /* get rid of path */ } - /* first, bin directory from the current libdir or argv0 */ + /* then, bin directory from the current libdir or argv0 */ if (bindir) { argv[0] = build_path( bindir, name ); @@ -550,13 +557,6 @@ void wine_exec_wine_binary( const char *name, char **argv, const char *env_var ) free( argv[0] ); } - /* then specified environment variable */ - if (env_var) - { - argv[0] = (char *)env_var; - preloader_exec( argv, use_preloader ); - } - /* now search in the Unix path */ if ((path = getenv( "PATH" ))) {
Am 16.02.2017 um 22:10 schrieb Sebastian Lackner:
On 15.02.2017 15:27, Ralf Habacker wrote:
This fixes the issue that WINESERVER environment variable is only used if @bindir@/wineserver does not exist.
Fixes https://bugs.winehq.org/show_bug.cgi?id=40811 Maybe I'm missing something, but what would be the purpose of running a different wineserver? This is not to run a different wineserver. This is required to start wineserver with command line parameters e.g. by creating a wineserver.sh shell script with specific informations:
cat ~/wineserver.sh /usr/bin/wineserver --persistent=600 WINESERVER=~/wineserver.sh wine <myapp> Ralf
Ralf Habacker <ralf.habacker(a)freenet.de> writes:
Am 16.02.2017 um 22:10 schrieb Sebastian Lackner:
On 15.02.2017 15:27, Ralf Habacker wrote:
This fixes the issue that WINESERVER environment variable is only used if @bindir@/wineserver does not exist.
Fixes https://bugs.winehq.org/show_bug.cgi?id=40811 Maybe I'm missing something, but what would be the purpose of running a different wineserver? This is not to run a different wineserver. This is required to start wineserver with command line parameters e.g. by creating a wineserver.sh shell script with specific informations:
cat ~/wineserver.sh /usr/bin/wineserver --persistent=600
WINESERVER=~/wineserver.sh wine <myapp>
I'm not sure what your use case is for this, but I'd suggest adding a different mechanism to specify the server timeout, like a registry key. -- Alexandre Julliard julliard(a)winehq.org
Am 17.02.2017 um 15:14 schrieb Alexandre Julliard:
Ralf Habacker <ralf.habacker(a)freenet.de> writes:
Am 16.02.2017 um 22:10 schrieb Sebastian Lackner:
On 15.02.2017 15:27, Ralf Habacker wrote:
This fixes the issue that WINESERVER environment variable is only used if @bindir@/wineserver does not exist.
Fixes https://bugs.winehq.org/show_bug.cgi?id=40811 Maybe I'm missing something, but what would be the purpose of running a different wineserver? This is not to run a different wineserver. This is required to start wineserver with command line parameters e.g. by creating a wineserver.sh shell script with specific informations:
cat ~/wineserver.sh /usr/bin/wineserver --persistent=600
WINESERVER=~/wineserver.sh wine <myapp> I'm not sure what your use case is for this, but I'd suggest adding a different mechanism to specify the server timeout, like a registry key.
You are saying that the command line parameter -p or --persistent should be removed because it is useable only in very special situations and replaced by a related registry key according to https://wiki.winehq.org/UsefulRegistryKeys for example HKCU/Software/Wine/WineServer Value Persistent ? Ralf
Ralf Habacker <ralf.habacker(a)freenet.de> writes:
Am 17.02.2017 um 15:14 schrieb Alexandre Julliard:
Ralf Habacker <ralf.habacker(a)freenet.de> writes:
Am 16.02.2017 um 22:10 schrieb Sebastian Lackner:
On 15.02.2017 15:27, Ralf Habacker wrote:
This fixes the issue that WINESERVER environment variable is only used if @bindir@/wineserver does not exist.
Fixes https://bugs.winehq.org/show_bug.cgi?id=40811 Maybe I'm missing something, but what would be the purpose of running a different wineserver? This is not to run a different wineserver. This is required to start wineserver with command line parameters e.g. by creating a wineserver.sh shell script with specific informations:
cat ~/wineserver.sh /usr/bin/wineserver --persistent=600
WINESERVER=~/wineserver.sh wine <myapp> I'm not sure what your use case is for this, but I'd suggest adding a different mechanism to specify the server timeout, like a registry key.
You are saying that the command line parameter -p or --persistent should be removed because it is useable only in very special situations and replaced by a related registry key according to https://wiki.winehq.org/UsefulRegistryKeys for example HKCU/Software/Wine/WineServer Value Persistent ?
I'm not saying that it should be removed, I'm saying that if you have a situation where using the command line parameter is inconvenient, it would be possible to also make it configurable through a registry key. -- Alexandre Julliard julliard(a)winehq.org
Am 2017-02-16 um 22:21 schrieb Ralf Habacker:
This is not to run a different wineserver. This is required to start wineserver with command line parameters e.g. by creating a wineserver.sh shell script with specific informations:
cat ~/wineserver.sh /usr/bin/wineserver --persistent=600
WINESERVER=~/wineserver.sh wine <myapp> Why not simply execute wineserver with the persistent flag + whatever else you need before you run the actual wine command?
Am 17.02.2017 um 20:21 schrieb Stefan Dösinger:
Am 2017-02-16 um 22:21 schrieb Ralf Habacker:
This is not to run a different wineserver. This is required to start wineserver with command line parameters e.g. by creating a wineserver.sh shell script with specific informations:
cat ~/wineserver.sh /usr/bin/wineserver --persistent=600
WINESERVER=~/wineserver.sh wine <myapp> Why not simply execute wineserver with the persistent flag + whatever else you need before you run the actual wine command?
Does this work in a multi app environment. e.g starting wineserver up to 50 times in parallel ? See the screenshot for the related use case. Ralf
Am 21.02.2017 um 08:47 schrieb Ralf Habacker:
Am 17.02.2017 um 20:21 schrieb Stefan Dösinger:
Am 2017-02-16 um 22:21 schrieb Ralf Habacker:
This is not to run a different wineserver. This is required to start wineserver with command line parameters e.g. by creating a wineserver.sh shell script with specific informations:
cat ~/wineserver.sh /usr/bin/wineserver --persistent=600
WINESERVER=~/wineserver.sh wine <myapp> Why not simply execute wineserver with the persistent flag + whatever else you need before you run the actual wine command?
Does this work in a multi app environment. e.g starting wineserver up to 50 times in parallel ? See the screenshot for the related use case. It would be fine, if starting wineserver would be performed by wine on demand itself Ralf
Am 2017-02-21 um 08:03 schrieb Ralf Habacker:
It would be fine, if starting wineserver would be performed by wine on demand itself I don't know any situation where Wine is used and Wineserver doesn't run. It is needed for basic tasks like registry access and window message passing.
I believe running a single wineserver instance per prefix should be protected against race conditions if you start and stop wineserver and wine processes in quick succession. Although admittedly I haven't looked up the relevant source code.
participants (4)
-
Alexandre Julliard -
Ralf Habacker -
Sebastian Lackner -
Stefan Dösinger