[Bug 35398] New: Unable to run internal linux programs

wine-bugs at winehq.org wine-bugs at winehq.org
Thu Jan 16 12:47:04 CST 2014


http://bugs.winehq.org/show_bug.cgi?id=35398

            Bug ID: 35398
           Summary: Unable to run internal linux programs
           Product: Wine
           Version: 1.7.10
          Hardware: x86-64
                OS: Linux
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: P2
         Component: cmd
          Assignee: wine-bugs at winehq.org
          Reporter: lovyagin at mail.com
    Classification: Unclassified

Since wine version 1.6.x or so on I'm not able to run linux applications from
applications running under wine. For example, I can't open terminal from Far
Manager or even run ls from cmd.exe shell. Since using Far Manager is very
comfortable and important for me, I can't update from wine 1.5.x where
everything works properly.

I've looked through source file wcmdmain.c and found that all things related to
running internal command wiped out from function

void WCMD_run_program (WCHAR *command, BOOL called);

The following lines absent:

BOOL  assumeInternal = FALSE;

   /* Internal programs won't be picked up by this search, so even
      though not found, try one last createprocess and wait for it
      to complete.
      Note: Ideally we could tell between a console app (wait) and a
      windows app, but the API's for it fail in this case           */
    if (!found && pathposn == NULL) {
        WINE_TRACE("ASSUMING INTERNAL\n");
        assumeInternal = TRUE;
    } else {
        WINE_TRACE("Found as %s\n", wine_dbgstr_w(thisDir));
    }

following changed

from

    /* Once found, launch it */
    if (found || assumeInternal) {

to

    /* Once found, launch it */
    if (found) {

from 

   status = CreateProcessW(assumeInternal?NULL : thisDir,
                           command, NULL, NULL, TRUE, 0, NULL, NULL, &st, &pe);

to

   status = CreateProcessW(thisDir,
                           command, NULL, NULL, TRUE, 0, NULL, NULL, &st, &pe);


from 

   if (assumeInternal || !interactive || (console && !HIWORD(console)))
       WaitForSingleObject (pe.hProcess, INFINITE);

to

   if (!interactive || (console && !HIWORD(console)))
       WaitForSingleObject (pe.hProcess, INFINITE);

Restoring them all results that at last cmd.exe staring to work properly. I
suppose that every other attempt to run linux app from windows app will work
too.

Forum thread also: http://forum.winehq.org/viewtopic.php?f=8&t=20709

Why this very reasonable feature was removed? I suppose that everything should
be restored back.

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list