Wine makes TC x32_x64 installer abort on Ubuntu 12.04x64

English support forum

Moderators: Hacker, petermad, Stefan2, white

User avatar
karlchen
Power Member
Power Member
Posts: 4605
Joined: 2003-02-06, 22:23 UTC
Location: Germany

Post by *karlchen »

Hello, Christian.

Thanks a lot for the new install.exe.

Let me mention that this thread here seems to monitored on the Wine Bugzilla site : Total Commander 8.0 64-bit installer crashes due to pointer truncation (image base address > 4 GiB) => in particular the comment #5 about the current state of the T.C. 8 64-bit installer: comment #5.

Now back to testing the install.exe:

Platform:
  • Ubuntu 12.04 x64 "Precise Pangolin", available updates installed
  • Wine 1.4 x86_x64 installed
  • Total Commander 8.0 combined setup programmes for x32/x64, e.g. tcm801x32_64_rc4.exe
Test #1:
  • Extracted the SFX installer to folder /home/karl/Downloads/tc800install
  • extracted install64.zip to the same folder thus overwriting the 32-bit install.exe.
  • launched the install.exe and did a normal install.
  • result:
    The installation basically went fine, installing both versions of T.C. 8.01 rc4, i.e. 32-bit and 64-bit.
    Yet, in the start menu only a link for T.C. 8.01rc4 32-bit was created, none for T.C. 8.01rc4 64-bit
    Hm, somehow to be expected, because install.exe is meant to perform the 32-bit setup only
Test #2:
  • Extracted the SFX installer to folder /home/karl/Downloads/tc800install
  • extracted install.exe from install64.zip to the same folder. But this time extracted it as install64.exe thus overwriting the original install64.exe.
  • launched the install64.exe and did a normal install again.
  • result:
    The installation went fine, installing both versions of T.C. 8.01 rc4, i.e. 32-bit and 64-bit.
    This time a startup link for T.C. 8.01 rc4 32-bit and T.c. 8.01 rc4 64-bit were created.
So I guess the install.exe inside the install64.zip ZIP-file actually is the replacement of install64.exe and therefore should have been named install64.exe, too, to avoid confusion. Correct? :wink:

Kind regards,
Karl
MX Linux 21.3 64-bit xfce, Total Commander 11.50 64-bit
The people of Alderaan keep on bravely fighting back the clone warriors sent out by the unscrupulous Sith Lord Palpatine.
The Prophet's Song
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50817
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Thanks for your tests! Actually it's named install.exe in the 64-bit only install package, and install64.exe in the 32+64 bit package! So yes, you need to rename it to install64.exe for the latter.

Btw, any idea whether the internal 64-bit CAB unpack dll in Wine will be fixed? The 32-bit dll works just fine with TC, but the 64-bit doesn't work - neither with the installer nor with TC. I couldn't find any calling errors in my code here.
Author of Total Commander
https://www.ghisler.com
User avatar
karlchen
Power Member
Power Member
Posts: 4605
Joined: 2003-02-06, 22:23 UTC
Location: Germany

Post by *karlchen »

Hello, Christian.

Thanks for clarifying the sophisticated naming rules affecting install(64).exe - I might have guessed. Yet, on 64-bit OSes I have been using the combined installer ever since you released it for the first time. :wink:

About the Wine 64-bit CAB extractor:
I should simply create another new thread about it in the Wine forum and ask whether I should file a bug. Maybe the friendly moderator will point me to an existing bug thread inside the Wine Bugzilla area one more time. :)

Kind regards,
Karl
MX Linux 21.3 64-bit xfce, Total Commander 11.50 64-bit
The people of Alderaan keep on bravely fighting back the clone warriors sent out by the unscrupulous Sith Lord Palpatine.
The Prophet's Song
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50817
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

After some more tests, I found the bug in the cab unpacker dll in Wine! I have now written a workaround so the installer does work with the Wine dll without the need to use the Windows dll. Please test it!

The problem is that the structure FDINOTIFICATION which is passed as the second paramter to the FNFDINOTIFY callback is misaligned. On Windows, all fields are aligned to 8 bytes. In the Linux dll, they are not aligned, they follow directly after each other.

I'm now simply checking whether FDINOTIFICATION is misaligned by checking whether the file name parameter (psz1) is a bad pointer, and if yes, I'm using the misaligned version of the structure.

Unfortunately I haven't had the time yet to add this to Total Commander itself too, because its CAB functions are much more complex. I will add it to the next beta, though.

Of course it would be nice if this could be fixed in Wine, but since it can take a while, I will add it.
Author of Total Commander
https://www.ghisler.com
User avatar
karlchen
Power Member
Power Member
Posts: 4605
Joined: 2003-02-06, 22:23 UTC
Location: Germany

Post by *karlchen »

Hello, Christian.
bug in the cab unpacker dll in Wine! I have now written a workaround so the installer does work with the Wine dll without the need to use the Windows dll. Please test it!
Oops. When I first read this I had already installed Total Commander 8.01 RC5 x32/x64 on Precise Pangoline x64 by using the combined installer.
The installation worked fine and as expected.

Yet, of course, the genuine Windows CAB extractor DLLs were still in place. So the successful installation may have used them or not.

I will have to uninstall the 2 genuine DLLs first (1) and re-install Total Commander 8.01 RC5 x32/x64 next in order to be able to verify that the combined installer will succeed.

I'll post back as soon as the job has been done ...

Kind regards,
Karl
--
(1) Actually, renaming the genuine Windows DLLs and putting the original Wine DLLs back in their places should be sufficient.
MX Linux 21.3 64-bit xfce, Total Commander 11.50 64-bit
The people of Alderaan keep on bravely fighting back the clone warriors sent out by the unscrupulous Sith Lord Palpatine.
The Prophet's Song
User avatar
karlchen
Power Member
Power Member
Posts: 4605
Joined: 2003-02-06, 22:23 UTC
Location: Germany

Post by *karlchen »

Good evening, Christian.
bug in the cab unpacker dll in Wine! I have now written a workaround so the installer does work with the Wine dll without the need to use the Windows dll. Please test it!
I can confirm that the combined installer tcm801x32_64_rc5.exe does its job correctly and works around the CAB extractor bug when used on Ubuntu 12.04 x64 - Precise Pangolin - and Wine 1.4.

Testing Steps:
  • Code: Select all

    cd ~
    mv .wine .wine.orig
    winecfg # will create a new .wine folder using Wine defaults only
    cd ~/Downloads/TotalCommander
    wine ./tcm801x32_64_rc5.exe # performed a default installation, no problems or complaints
  • Launched Total Commander 8.01 rc5 32-bit from "Dash"
  • Opened archive ~/Downloads/TotalCommander/tcm801x32_64_rc5.exe and the install.cab inside. Works perfectly. CAB content can be viewed and extracted.
  • Closed Total Commander 8.01 rc5 32-bit
  • Launched Total Commander 8.01 rc5 64-bit from "Dash"
  • Opened archive ~/Downloads/TotalCommander/tcm801x32_64_rc5.exe and the install.cab inside. No crash this time. But the CAB appears to be empty (which we know is not true, but it proves that no genuine Windows DLL is being used)
  • Closed Total Commander 8.01 rc5 64-bit
Thanks a lot for bothering to implement this workaround which very likely will be appreciated by a small number of nerds only. 8)

Kind regards,
Karl
MX Linux 21.3 64-bit xfce, Total Commander 11.50 64-bit
The people of Alderaan keep on bravely fighting back the clone warriors sent out by the unscrupulous Sith Lord Palpatine.
The Prophet's Song
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50817
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Nice, thanks for your feedback! Adding the workaround to TC itself will be a lot harder, because there isn't just one, but 3 callbacks (for listing, unpacking, searching CAB archives). But I will try. It's hard because I can't debug on Linux, so it's a lof of try - re-upload - try again etc.
Author of Total Commander
https://www.ghisler.com
User avatar
karlchen
Power Member
Power Member
Posts: 4605
Joined: 2003-02-06, 22:23 UTC
Location: Germany

[T.C. 8.01x64] installer and programme file Wine compatible

Post by *karlchen »

Hello, Christian.

Confirmation:
Starting with Total Commander 8.01 final
  • both the combined 32-bit / 64-bit setup programme tcm801x32_64.exe
  • and the 64-bit version of Total Commander 8.01
work properly on Ubuntu 12.04 64-bit / Wine 1.4 even if one has not bothered to put the genuine CAB-view/extract DLLs, cabinet.dll and cabview.dll, into the Wine folders
  • ~/.wine/drive_c/windows/system32
  • ~/.wine/drive_c/windows/SysWow64
The 32-bit setup programme file install.exe and the 32-bit programme file totalcmd.exe file worked properly without the mentioned workaround in previous versions, too.
Noew the 64-bit programme file install64.exe and the 64-bit programme file totalcmd64.exe file work properly, too, without the mentioned workaround.

Thanks a lot for taking the time to implement the required corrections and workarounds.

Cheers,
Karl
---
Total Commander 8.01 64-bit on
Ubuntu 12.04 "Precise Pangolin" and
Wine 1.4
MX Linux 21.3 64-bit xfce, Total Commander 11.50 64-bit
The people of Alderaan keep on bravely fighting back the clone warriors sent out by the unscrupulous Sith Lord Palpatine.
The Prophet's Song
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50817
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Thanks for your help with testing these functions!
Author of Total Commander
https://www.ghisler.com
Post Reply