TumblThree icon indicating copy to clipboard operation
TumblThree copied to clipboard

[Feature Request] Wine/Linux compatiblity

Open ZenythFactor opened this issue 7 years ago • 6 comments

Hello, i was wondering if TumblThree will be able to work correctly on compatibility programs like Wine?

TumblTwo is able to work in it, but it's useless since i'm not using TumblThree instead. (also function weirdly...)

Yes i've tried to work it on Wine, but i keep getting a program error prompt forcing me to exit. screenshot from 2017-04-10 13 55 37

ZenythFactor avatar Apr 10 '17 17:04 ZenythFactor

I've never tried it.

You'd need to install .NET 4.5. I've found this wine website about installing .NET 4.5 in wine and possible errors.

It might crash because I'm using the WinAPI for the ClipboardMonitor to grab Tumblr urls from the clipboard. I remember that I've removed that code from TumblTwo in the mono version in order to make it run. I'm not sure if thats an issue for Wine at all. I've never really used it.

The UI is separated from the logic so it should actually be possible to "simply" put a different UI on TumblThree using Gtk#/Qt# or something else to have a fully native Linux version.

Do have any real error message? That text there basically says nothing.. Maybe be clicking on Show Details?

johanneszab avatar Apr 10 '17 18:04 johanneszab

ah, yes i do have a proper error log to present

Unhandled exception: 0xe0434352 in 32-bit code (0x7b43e462).
Register dump:
 CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
 EIP:7b43e462 ESP:0033eb94 EBP:0033ec08 EFLAGS:00000283(   - --  I S - - -C)
 EAX:7b428c99 EBX:7b640000 ECX:80131534 EDX:0033ebb4
 ESI:00000005 EDI:00000001
Stack dump:
0x0033eb94:  0033ec7c 00000014 7bc3ee0d e0434352
0x0033eba4:  00000001 00000000 7b43e462 00000005
0x0033ebb4:  80131534 00000000 00000000 00000000
0x0033ebc4:  00770000 00000000 0151df7c 00000005
0x0033ebd4:  00000000 00000000 00145fd0 0033ecd0
0x0033ebe4:  00000001 00000000 0033eca4 00000000
Backtrace:
=>0 0x7b43e462 in kernel32 (+0x2e462) (0x0033ec08)
  1 0x008948c7 in clr (+0x1248c6) (0x0033ecb0)
  2 0x008952b5 in clr (+0x1252b4) (0x0033ed84)
  3 0x0f46c104 (0x0033eda8)
  4 0x04bf2aea (0x0033ede4)
  5 0x04e30b48 (0x0033ee28)
  6 0x04e30a46 (0x0033ee94)
  7 0x04d2fe17 (0x0033eea8)
  8 0x04d2fd53 (0x0033eec4)
  9 0x04d2fc20 (0x0033ef00)
  10 0x04d2f7ff (0x0033ef3c)
  11 0x04d2f4f9 (0x0033ef74)
  12 0x04bf2e4b (0x0033efb4)
  13 0x04bf2d8b (0x0033efd4)
  14 0x04bf2c65 (0x0033eff0)
  15 0x04bf2aea (0x0033f02c)
  16 0x04bf25b2 (0x0033f07c)
  17 0x04c0f03a (0x0033f0c4)
  18 0x0039a08e (0x0033f0f8)
  19 0xf71b43ca WINPROC_wrapper+0x19() in user32 (0x0033f128)
  20 0xf71b4a9c in user32 (+0xa4a9b) (0x0033f178)
  21 0xf71b7363 in user32 (+0xa7362) (0x0033f1c8)
  22 0xf7175547 DispatchMessageW+0xb6() in user32 (0x0033f2d8)
  23 0x04d2f45f (0x0033f318)
  24 0x04d2e8b9 (0x0033f360)
  25 0x04d2e716 (0x0033f36c)
  26 0x04d2e686 (0x0033f378)
  27 0x04d2e433 (0x0033f38c)
  28 0x04d2e249 (0x0033f39c)
  29 0x039737c5 (0x0033f3a8)
  30 0x00772652 in clr (+0x2651) (0x0033f3b4)
  31 0x0078264f in clr (+0x1264e) (0x0033f408)
  32 0x00782e95 in clr (+0x12e94) (0x0033f480)
  33 0x008374ec in clr (+0xc74eb) (0x0033f5ac)
  34 0x00837610 in clr (+0xc760f) (0x0033f820)
  35 0x008c1dc4 in clr (+0x151dc3) (0x0033fd24)
  36 0x008c1e67 in clr (+0x151e66) (0x0033fd80)
  37 0x008c1f7a in clr (+0x151f79) (0x0033fdc0)
  38 0x008c416a in clr (+0x154169) (0x0033fdfc)
  39 0x1000f5a3 in mscoreei (+0xf5a2) (0x0033fe38)
  40 0x79007f16 in mscoree (+0x7f15) (0x0033fe48)
  41 0x79004de3 in mscoree (+0x4de2) (0x0033fe68)
  42 0x7b466f29 in kernel32 (+0x56f28) (0x0033feb8)
  43 0x7bc84bb0 call_thread_func_wrapper+0xb() in ntdll (0x0033fed8)
  44 0x7bc87e0d call_thread_func+0x7c() in ntdll (0x0033ffa8)
  45 0x7bc84b8e RtlRaiseException+0x21() in ntdll (0x0033ffc8)
  46 0x7bc54eaa call_dll_entry_point+0x359() in ntdll (0x0033ffe8)
  47 0xf755d89d wine_call_on_stack+0x1c() in libwine.so.1 (0x00000000)
  48 0xf755d95b wine_switch_to_stack+0x2a() in libwine.so.1 (0xffec9278)
  49 0x7bc5b2fd LdrInitializeThunk+0x27c() in ntdll (0xffec92d8)
  50 0x7b46d768 __wine_kernel_init+0x997() in kernel32 (0xffeca3f8)
  51 0x7bc5c273 __wine_process_init+0x182() in ntdll (0xffeca488)
  52 0xf755bc8a wine_init+0x299() in libwine.so.1 (0xffeca4e8)
  53 0x7c000acb main+0x8a() in <wine-loader> (0xffeca938)
  54 0xf737caf3 __libc_start_main+0xf2() in libc.so.6 (0x00000000)
0x7b43e462: movl	0xfffffff4(%ebp),%ecx
Modules:
Module	Address			Debug info	Name (128 modules)
PE	  400000-  436000	Deferred        tumblthree
PE	  770000-  e02000	Export          clr
PE	  e10000-  ee3000	Deferred        msvcr110_clr0400
PE	 38e0000- 394e000	Deferred        clrjit
PE	 4620000- 47bd000	Deferred        wpfgfx_v0400
PE	 47c0000- 4880000	Deferred        presentationnative_v0400
PE	10000000-1007a000	Export          mscoreei
PE	1ff00000-1ff13000	Deferred        dxva2
PE	5e0d0000-5e1a4000	Deferred        diasymreader
PE	79000000-7904a000	Export          mscoree
ELF	7a800000-7a931000	Deferred        opengl32<elf>
  \-PE	7a820000-7a931000	\               opengl32
ELF	7b400000-7b7e8000	Dwarf           kernel32<elf>
  \-PE	7b410000-7b7e8000	\               kernel32
ELF	7bc00000-7bcf9000	Dwarf           ntdll<elf>
  \-PE	7bc10000-7bcf9000	\               ntdll
ELF	7c000000-7c004000	Dwarf           <wine-loader>
ELF	7ed64000-7ed70000	Deferred        libnss_files.so.2
ELF	7ed70000-7ed7c000	Deferred        libnss_nis.so.2
ELF	7ed7c000-7ed95000	Deferred        libnsl.so.1
ELF	7ef95000-7efdb000	Deferred        libm.so.6
ELF	f4842000-f4900000	Deferred        msvcrt<elf>
  \-PE	f4860000-f4900000	\               msvcrt
ELF	f4c17000-f4c2e000	Deferred        uiautomationcore<elf>
  \-PE	f4c20000-f4c2e000	\               uiautomationcore
ELF	f4c3e000-f4d00000	Deferred        windowscodecs<elf>
  \-PE	f4c50000-f4d00000	\               windowscodecs
ELF	f4e99000-f4ec0000	Deferred        wmp<elf>
  \-PE	f4ea0000-f4ec0000	\               wmp
ELF	f5607000-f563e000	Deferred        libtxc_dxtn.so
ELF	f5663000-f566e000	Deferred        libpciaccess.so.0
ELF	f566e000-f568c000	Deferred        libgcc_s.so.1
ELF	f5794000-f57a1000	Deferred        libdrm_radeon.so.1
ELF	f57a1000-f57aa000	Deferred        libdrm_nouveau.so.2
ELF	f57aa000-f57cd000	Deferred        libdrm_intel.so.1
ELF	f57cd000-f5d88000	Deferred        i965_dri.so
ELF	f5d88000-f5d91000	Deferred        librt.so.1
ELF	f5d91000-f5ddc000	Deferred        libdbus-1.so.3
ELF	f5ddc000-f5df5000	Deferred        libnih.so.1
ELF	f5df5000-f5e13000	Deferred        libcgmanager.so.0
ELF	f5e13000-f5e26000	Deferred        libudev.so.1
ELF	f5e26000-f5ebb000	Deferred        libgl.so.1
ELF	f5ebb000-f6000000	Deferred        wined3d<elf>
  \-PE	f5ed0000-f6000000	\               wined3d
ELF	f6102000-f610c000	Deferred        libnih-dbus.so.1
ELF	f610c000-f611c000	Deferred        libdrm.so.2
ELF	f611c000-f611f000	Deferred        libxshmfence.so.1
ELF	f611f000-f6126000	Deferred        libxcb-sync.so.1
ELF	f6126000-f612c000	Deferred        libxcb-dri2.so.0
ELF	f612c000-f6144000	Deferred        libxcb-glx.so.0
ELF	f6144000-f615d000	Deferred        libglapi.so.0
ELF	f6182000-f61c2000	Deferred        d3d9<elf>
  \-PE	f6190000-f61c2000	\               d3d9
ELF	f61c2000-f61ff000	Deferred        ws2_32<elf>
  \-PE	f61d0000-f61ff000	\               ws2_32
ELF	f61ff000-f627c000	Deferred        wininet<elf>
  \-PE	f6210000-f627c000	\               wininet
ELF	f627c000-f64d0000	Deferred        shell32<elf>
  \-PE	f6290000-f64d0000	\               shell32
ELF	f64d0000-f6575000	Deferred        urlmon<elf>
  \-PE	f64e0000-f6575000	\               urlmon
ELF	f65cc000-f65d0000	Deferred        libxcb-present.so.0
ELF	f65d0000-f65e6000	Deferred        dwmapi<elf>
  \-PE	f65e0000-f65e6000	\               dwmapi
ELF	f65e6000-f65fe000	Deferred        wtsapi32<elf>
  \-PE	f65f0000-f65fe000	\               wtsapi32
ELF	f65fe000-f6627000	Deferred        mpr<elf>
  \-PE	f6600000-f6627000	\               mpr
ELF	f6627000-f6660000	Deferred        uxtheme<elf>
  \-PE	f6630000-f6660000	\               uxtheme
ELF	f6660000-f67a5000	Deferred        oleaut32<elf>
  \-PE	f6680000-f67a5000	\               oleaut32
ELF	f67a5000-f680c000	Deferred        dwrite<elf>
  \-PE	f67b0000-f680c000	\               dwrite
ELF	f680c000-f68dd000	Deferred        crypt32<elf>
  \-PE	f6820000-f68dd000	\               crypt32
ELF	f68dd000-f6920000	Deferred        rsaenh<elf>
  \-PE	f68e0000-f6920000	\               rsaenh
ELF	f6920000-f6940000	Deferred        combase<elf>
  \-PE	f6930000-f6940000	\               combase
ELF	f6964000-f696a000	Deferred        libxfixes.so.3
ELF	f696a000-f6975000	Deferred        libxcursor.so.1
ELF	f6975000-f6985000	Deferred        libxi.so.6
ELF	f6985000-f6989000	Deferred        libxcomposite.so.1
ELF	f6989000-f6994000	Deferred        libxrandr.so.2
ELF	f6994000-f699f000	Deferred        libxrender.so.1
ELF	f699f000-f69a5000	Deferred        libxxf86vm.so.1
ELF	f69a5000-f69a9000	Deferred        libxinerama.so.1
ELF	f69a9000-f69b0000	Deferred        libxdmcp.so.6
ELF	f69b0000-f69b4000	Deferred        libxau.so.6
ELF	f69b4000-f69d6000	Deferred        libxcb.so.1
ELF	f69d6000-f6b0a000	Deferred        libx11.so.6
ELF	f6b0a000-f6b1d000	Deferred        libxext.so.6
ELF	f6b42000-f6bd5000	Deferred        winex11<elf>
  \-PE	f6b50000-f6bd5000	\               winex11
ELF	f6bd6000-f6bda000	Deferred        libxcb-dri3.so.0
ELF	f6bda000-f6bdd000	Deferred        libx11-xcb.so.1
ELF	f6bdd000-f6be1000	Deferred        libxdamage.so.1
ELF	f6be1000-f6bf5000	Deferred        api-ms-win-core-winrt-l1-1-0<elf
PE	f6bf0000-f6bf5000	Deferred        api-ms-win-core-winrt-l1-1-0
ELF	f6bf5000-f6c7b000	Deferred        rpcrt4<elf>
  \-PE	f6c00000-f6c7b000	\               rpcrt4
ELF	f6c7b000-f6dc4000	Deferred        ole32<elf>
  \-PE	f6c90000-f6dc4000	\               ole32
ELF	f6dc4000-f6dea000	Deferred        imm32<elf>
  \-PE	f6dd0000-f6dea000	\               imm32
ELF	f6e59000-f6e82000	Deferred        libexpat.so.1
ELF	f6e82000-f6ebd000	Deferred        libfontconfig.so.1
ELF	f6ebd000-f6ee5000	Deferred        libpng12.so.0
ELF	f6ee5000-f6eff000	Deferred        libz.so.1
ELF	f6eff000-f6f9f000	Deferred        libfreetype.so.6
ELF	f6fc4000-f70f9000	Deferred        gdi32<elf>
  \-PE	f6fd0000-f70f9000	\               gdi32
ELF	f70f9000-f725d000	Dwarf           user32<elf>
  \-PE	f7110000-f725d000	\               user32
ELF	f725d000-f72d8000	Deferred        shlwapi<elf>
  \-PE	f7270000-f72d8000	\               shlwapi
ELF	f72d8000-f7354000	Deferred        advapi32<elf>
  \-PE	f72f0000-f7354000	\               advapi32
ELF	f7354000-f735d000	Deferred        libnss_compat.so.2
ELF	f735e000-f7363000	Deferred        libdl.so.2
ELF	f7363000-f7513000	Dwarf           libc.so.6
ELF	f7514000-f7530000	Deferred        libpthread.so.0
ELF	f753a000-f7554000	Deferred        version<elf>
  \-PE	f7540000-f7554000	\               version
ELF	f7555000-f770c000	Dwarf           libwine.so.1
ELF	f770e000-f7730000	Deferred        ld-linux.so.2
ELF	f7732000-f7733000	Deferred        [vdso].so
Threads:
process  tid      prio (all id:s are in hex)
0000000e services.exe
	0000004f    0
	0000004e    0
	00000033    0
	00000032    0
	0000002c    0
	00000023    0
	00000018    0
	00000010    0
	0000000f    0
00000014 mscorsvw.exe
	0000001e    0
	0000001d    0
	0000001c    0
	00000015    0
00000016 explorer.exe
	0000003c    0
	0000003b    0
	0000003a    0
	00000039    0
	00000038    0
	00000017    0
00000021 winedevice.exe
	0000002b    0
	00000026    0
	00000025    0
	00000022    0
00000029 plugplay.exe
	0000002f    0
	0000002e    0
	0000002a    0
00000030 winedevice.exe
	0000003d    0
	00000035    0
	00000034    0
	00000031    0
0000003e (D) Z:\home\umbraaether\Documents\TumblThree\TumblThree.exe
	0000004b    0
	0000004a    0
	00000049    0
	00000048    0
	00000047    0
	00000046    0
	00000045    0
	00000044    0
	00000043    0
	00000042    0
	00000041    2
	00000040    0
	0000003f    0 <==
System information:
    Wine build: wine-2.4
    Platform: i386 (WOW64)
    Version: Windows 10
    Host system: Linux
    Host version: 3.19.0-32-generic

ZenythFactor avatar Apr 10 '17 19:04 ZenythFactor

Okay, I think that doesn't really say much either. The Unhandled exception: 0xe0434352 in 32-bit code seems to be a general .NET exception.

I'll give it a try in May. I won't have time any earlier.

If you want to try around, you can make sure you've installed .NET 4.5 and if that does not help, you could try to take out the Win32 api stuff (ClipboardMonitor.cs). Otherwise its probably the GUI/WPF .. I'm just guessing though.

johanneszab avatar Apr 11 '17 06:04 johanneszab

Well, I wouldn't call this working since it's crashing alot, but if you disable the image preview and use the .42 release (without the internet explorer cookies) and turn off the clipboard manager, it kinda works:

Steps I've done (on fedora):

# dnf install wine
export WINEARCH="win32"
export WINEPREFIX=~/.wine-tumblthree/
wineboot -u
./winetricks 
winecfg 
wine TumblThree.exe

I've used wintricks to install .NET 4.5, whichs seems to install all it's dependencies automatically (for instance .NET 4.0). Later I've used winecfg to set the Windows version to Windows 7.

tumblthree_wine

Bonus: It's ugly as hell too

johanneszab avatar May 07 '17 10:05 johanneszab

Aside from some occasional crashes due to various exceptions (e.g. access violation, invalid TCP packets), not properly closing after you press "X" (the GUI closes but the process stays running), and not saving settings until the program has been cleanly closed and re-opened (making it extra annoying when it crashes), it works fine for me. I'm using wine-3.21 (Staging) on Arch Linux. And it's not even "ugly as hell" because I have the silver Windows XP theme set up on all of my wineprefixes.

cebtenzzre avatar Dec 07 '18 12:12 cebtenzzre

Thanks for the report and sharing your experience!

johanneszab avatar Dec 08 '18 07:12 johanneszab