Menu

#194 Failing on WINE

2.0 Beta Series
closed-fixed
General (291)
5
2003-11-28
2003-11-24
Anonymous
No

Hi,

when I run a setup created with v2.0b4 on Linux using
WINE, I get an error: "Error! Can't initialize plug-ins
directory. Please try again later.".
I found out, that it is only when TEMP variable is set
to /tmp (which is Linux file system). When setting TEMP
to a fat32 drive, it works.
Can you tell me what API call(s) will have to fail to get
this error message? Maybe it can be fixed on either NSIS
or WINE side...

Thank you,
Genrot

Discussion

  • Amir Szekely

    Amir Szekely - 2003-11-24
    • assigned_to: nobody --> kichik
    • status: open --> closed-invalid
     
  • Amir Szekely

    Amir Szekely - 2003-11-24

    Logged In: YES
    user_id=584402

    It fails because NSIS validates all paths to make sure they
    are valid Windows paths. Especially the temporary folder,
    without which installers using solid compression will not work
    and plug-ins will not load.

    There isn't any specific API function failing on WINE's side,
    it's just the fact that it allows to mix *nix paths with
    Windows paths. I think this is a bad idea, cool feature, but a
    bad idea if you want to retain full compatibility.

    If you want to change this behavior on the NSIS side take a
    look in the function validate_filename in
    Source\exehead\Util.c.

     
  • Amir Szekely

    Amir Szekely - 2003-11-27

    Logged In: YES
    user_id=584402

    On second thought, it was supposed to use
    C:\Windows\Temp if the %TEMP%/%TMP% was invalid... Yet
    another check...

    Still better than littering the hard disk as it was probably
    doing in b3.

     
  • Amir Szekely

    Amir Szekely - 2003-11-27
    • status: closed-invalid --> open-accepted
     
  • Gernot Frisch

    Gernot Frisch - 2003-11-27

    Logged In: YES
    user_id=905723

    Hi,

    If I set the TEMP env var to:
    C:\Windows\Temp (which
    becomes /home/me/.wine/faked_windows/windows/temp) it
    worked.
    Setting it to X:\ didn't work. somehow the '\' got cut off and
    the temp-dir was then "X:nsi21331\" which didn't really
    satisfy NSIS.
    Strangely, the system.dll plugins cannot be found. I think it
    might be a upper/lowercase problem, but I'm not sure. The
    dll's get extracted correctly. Maybe a LoadLibrary fails - I'm
    not quite sure.
    Any help about NSIS and WINE is highly welcome, since we
    have a lot of effort trying to make our programs WINEable
    instead of re-wrinting huge applications, now that the council
    of Munich/Germany is switching to Linux.

    Best regards,
    Gernot

     
  • Amir Szekely

    Amir Szekely - 2003-11-28
    • status: open-accepted --> closed-fixed
     
  • Amir Szekely

    Amir Szekely - 2003-11-28

    Logged In: YES
    user_id=584402

    In latest CVS version I have added yet another check that
    should make NSIS fall back to %WINDIR%\Temp for this case
    where the temporary directory given is not a fully qualified
    path. I have also made it add a trailing backslash for the
    temporary directory so specifying root directories will be
    possible and won't produce the problems gernotfrisch
    reported.

    Thanks.

     

Log in to post a comment.

MongoDB Logo MongoDB