Botspot / pi-apps

Raspberry Pi App Store for Open Source Projects
GNU General Public License v3.0
2.05k stars 208 forks source link

wine (x86 with box86) #151

Closed Itai-Nelken closed 3 years ago

Itai-Nelken commented 3 years ago

Wine (x86).zip uninstaller not finished yet! can someone on RPiOS test it? also I don't know how to remove the wine .debs, can someone that knows add the needed commands to the uninstall script?

ilobilo commented 3 years ago

There are several ways to uninstall .deb packages https://linuxhint.com/uninstall-debian-packages/

Itai-Nelken commented 3 years ago

There are several ways to uninstall .deb packages https://linuxhint.com/uninstall-debian-packages/

@ilobilo thanks! could you test it? I don't have a sd card with RPiOS right now. My problem is I can't test it because I'm on TwisterOS that has wine pre installed and I don't wan't to mess with it, so I can't see how the packages are called so I don't know the command to remove them.

Itai-Nelken commented 3 years ago

Wine (x86).zip Uninstaller still not finished! @Botspot pi-apps runs pkg-install before running the rest of the commands, right? because winetricks (that this script also installs) needs cabextract to run (and it's used to install .net 20).

Itai-Nelken commented 3 years ago

Wine (x86).zip fixed a few bugs, installer (should be) finished. it doesn't work at all for me. it downloads and extracts the debs, than copies everything. but when running wine wineboot it errors out. no need to uninstall the debs as they are extracted and not installed (I didn't understand that until now).

can someone test it please?

Botspot commented 3 years ago

I haven't had time to look at this yet, but perhaps this would help: https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=292105&p=1766662&hilit=wine+twister#p1766662

Itai-Nelken commented 3 years ago

Wine (x86).zip

I haven't had time to look at this yet, but perhaps this would help: https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=292105&p=1766662&hilit=wine+twister#p1766662

Thanks @Botspot, I used the TwisterOS wine, and now everything is simpler. I just needs testing.

Itai-Nelken commented 3 years ago

Wine (x86).zip I removed winetricks because it's malfunctioning. but wine works, I installed 7zip with it. left to do:

can someone test it just to be sure it really works?

Botspot commented 3 years ago

You're welcome to put pkg-install wherever you want.
Does the script rely on the cabextract package?

Concerning your YAD dialogs, do you think that is such a good idea? It would be pretty cool if somebody could click Install, and then leave for work. Currently those YAD dialogs will hold up the script until a button is clicked.
Speaking of buttons, do you think many people would actually want to click "Cancel"?

Let's suppress these errors:

Installing Wine (x86) with install-32 script
gio: file:///home/pi/wine-old: Error trashing file /home/pi/wine-old: No such file or directory
gio: file:///home/pi/.wine-old: Error trashing file /home/pi/.wine-old: No such file or directory
mv: cannot stat '/usr/local/bin/wine': No such file or directory
mv: cannot stat '/usr/local/bin/winecfg': No such file or directory
mv: cannot stat '/usr/local/bin/wineserver': No such file or directory

Suppressing those errors is easy enough: just add &>/dev/null to the end of each mv, rm, and gio trash command.

Botspot commented 3 years ago

And I just got this error:

2020-12-26 08:27:31 (18.0 MB/s) - ‘/home/pi/wine.tgz’ saved [67938781/67938781]

tar: /home/pi/wine: Not found in archive
tar: Exiting with failure status due to previous errors
Itai-Nelken commented 3 years ago

And I just got this error:

2020-12-26 08:27:31 (18.0 MB/s) - ‘/home/pi/wine.tgz’ saved [67938781/67938781]

tar: /home/pi/wine: Not found in archive
tar: Exiting with failure status due to previous errors

I thought i fixed it... its caused by a typo: tar zxvf ~/wine instead of tar zxvf ~/wine.tgz. @Botspot can you test this version: Wine (x86).zip its the version that worked for me (but I commented out winetricks), I might have messed up to different versions of the script accidentally.

Botspot commented 3 years ago

I'm working on my own version of the script at the moment.

Botspot commented 3 years ago

Any idea why my box86 says "Error: file is not found (check BOX86_PATH)"?

Itai-Nelken commented 3 years ago

Any idea why my box86 says "Error: file is not found (check BOX86_PATH)"?

No, when does that happen?

Botspot commented 3 years ago

Any idea why my box86 says "Error: file is not found (check BOX86_PATH)"?

No, when does that happen?

I think that was an issue caused by box86 somehow. I've updated it and it seems to be working now.

Botspot commented 3 years ago

Okay, using your latest zip:

mv: 'wine' and '/home/pi/wine' are the same file
Itai-Nelken commented 3 years ago

Okay, using your latest zip:

mv: 'wine' and '/home/pi/wine' are the same file

If I remember correctly it happened to me as well, but wine still worked. try to finish the installation and see if wine works. I'm not sure what causes it. maybe change to the home directory, and than download and extract wine.

Botspot commented 3 years ago

Okay I removed the mv line and now it seems to be working.

What were your thoughts on removing the pop-up dialogs? https://github.com/Botspot/pi-apps/issues/151#issuecomment-751361706

Botspot commented 3 years ago

Okay I removed the mv line and now it seems to be working.

Or not. Any ideas?

Saving to: ‘/home/pi/wine.tgz’

/home/pi/wine.tgz   100%[===================>]  64.79M  20.9MB/s    in 3.1s    

2020-12-26 09:14:36 (20.9 MB/s) - ‘/home/pi/wine.tgz’ saved [67938781/67938781]

Box86 with Dynarec v0.1.9 96f944c8 built on Dec 21 2020 00:03:56
Box86 with Dynarec v0.1.9 96f944c8 built on Dec 21 2020 00:03:56
wine: created the configuration directory '/home/pi/.wine'
Box86 with Dynarec v0.1.9 96f944c8 built on Dec 21 2020 00:03:56
0048:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hres=0x80004002
0048:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, 80004002
0048:err:ole:get_local_server_stream Failed: 80004002
0050:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hres=0x80004002
0050:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, 80004002
0050:err:ole:get_local_server_stream Failed: 80004002
005c:fixme:file:NtLockFile I/O completion on lock not implemented yet
005c:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
005c:err:mscoree:LoadLibraryShim error reading registry key for installroot
005c:err:mscoree:LoadLibraryShim error reading registry key for installroot
005c:err:mscoree:LoadLibraryShim error reading registry key for installroot
005c:err:mscoree:LoadLibraryShim error reading registry key for installroot
0064:fixme:file:NtLockFile I/O completion on lock not implemented yet
0064:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
0064:err:mscoree:LoadLibraryShim error reading registry key for installroot
0064:err:mscoree:LoadLibraryShim error reading registry key for installroot
0064:err:mscoree:LoadLibraryShim error reading registry key for installroot
0064:err:mscoree:LoadLibraryShim error reading registry key for installroot
0064:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 5)
0064:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 5)
005c:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
005c:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
0074:fixme:file:NtLockFile I/O completion on lock not implemented yet
0074:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
0074:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
0074:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
0040:err:winediag:SECUR32_initNTLMSP ntlm_auth was not found or is outdated. Make sure that ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of your distribution.
0040:fixme:dwmapi:DwmIsCompositionEnabled 6D95DD14
007c:fixme:iphlpapi:NotifyIpInterfaceChange (family 0, callback 0x6a0df537, context 0x7af49060, init_notify 0, handle 0x79b5fce8): stub
0040:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
wine: configuration in L"/home/pi/.wine" has been updated.
0024:err:module:__wine_process_init failed to load L"Z:\\home\\pi\\wine\\bin\\wineboot", error c000012f
Itai-Nelken commented 3 years ago

thats the errors I got with my original script, but they disappeared after using the TwisterOS wine.

Itai-Nelken commented 3 years ago

did the wine mono and gecko installers appear?

Botspot commented 3 years ago

Now no window is appearing at all anymore. :(
It's consistently saying:

Box86 with Dynarec v0.1.9 96f944c8 built on Dec 21 2020 00:03:56
Box86 with Dynarec v0.1.9 96f944c8 built on Dec 21 2020 00:03:56
Box86 with Dynarec v0.1.9 96f944c8 built on Dec 21 2020 00:03:56
0024:err:module:__wine_process_init failed to load L"J:\\home\\pi\\wine\\bin\\wineboot", error c000012f

Here's my minimal zip: Wine (x86).zip

Itai-Nelken commented 3 years ago

I'm testing your script right now. something to add to the description file is that the menu shortcuts stay even after uninstalling. and maybe add how to remove them before removing wine.

Itai-Nelken commented 3 years ago

@Botspot your script works! I installed 7zip and notepad ++ and they work (I tested 7zip by extracting its installer). also I forgot to add a menu shortcut to wine configuration (command: wine winecfg or wine ~/wine/bin/winecfg if the first one doesn't work (its supposed to).

fabianmendes commented 3 years ago

Amazing issue.

ilobilo commented 3 years ago

There are several ways to uninstall .deb packages https://linuxhint.com/uninstall-debian-packages/

@ilobilo thanks! could you test it? I don't have a sd card with RPiOS right now. My problem is I can't test it because I'm on TwisterOS that has wine pre installed and I don't wan't to mess with it, so I can't see how the packages are called so I don't know the command to remove them.

Sorry i dont have a rpi yet. But you can use Qemu to emulate pi4: https://blog.agchapman.com/using-qemu-to-emulate-a-raspberry-pi/

Itai-Nelken commented 3 years ago

@ilobilo doesn't matter anymore, but thanks!

Botspot commented 3 years ago

Okay, despite those errors and Wine's failure to display a pop-up during install, it seems to be working!

Botspot commented 3 years ago

@Itai-Nelken You mentioned that you removed winetricks. Do you hope to add it back, or should we remove your little "note: " text from the description?

Itai-Nelken commented 3 years ago

@Itai-Nelken You mentioned that you removed winetricks. Do you hope to add it back, or should we remove your little "note: " text from the description?

@Botspot remove it, its only causing problems also we need to make the script add a menu button for wine configuration (wine winecfg). and add how to use wine to the description (wine /path/to/file.exe)

Botspot commented 3 years ago

Do you think you could make the wine winecfg menu button?

Itai-Nelken commented 3 years ago

Do you think you could make the wine winecfg menu button?

yes, of course, I'll also add the usage instructions to the description file.

Itai-Nelken commented 3 years ago

Wine (x86).zip @Botspot can you test it, just to be sure it works and remove the _MACOSX folder (if it's there).

Itai-Nelken commented 3 years ago

Wine (x86).zip @Botspot, updated the description with a note about menu shortcuts created by wine. otherwise the same as last zip. (remove _MACOSX folder as well, and test it to see if it works). also maybe ask in your discord server if someone can test it, just to be sure that it really works before adding it to pi-apps.

PUP-Loki commented 3 years ago

just given it a test and I get this error

--2020-12-27 20:19:11--  https://twisteros.com/wine.tgz
Resolving twisteros.com (twisteros.com)... 185.199.108.153, 185.199.109.153, 185.199.110.153, ...
Connecting to twisteros.com (twisteros.com)|185.199.108.153|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 67938781 (65M) [application/octet-stream]
Saving to: ‘/home/pi/wine.tgz’

/home/pi/wine.tgz   100%[===================>]  64.79M  11.0MB/s    in 5.9s    

2020-12-27 20:19:20 (11.0 MB/s) - ‘/home/pi/wine.tgz’ saved [67938781/67938781]

/home/pi/pi-apps/apps/Wine (x86)/install-32: line 41: syntax error near unexpected token `('
/home/pi/pi-apps/apps/Wine (x86)/install-32: line 41: `Icon="$HOME/pi-apps/Wine (x86)/icon-64.png"'

Failed to install Wine (x86) with install-32 script!

Close this window to exit

it looks like you are missing and apps folder Icon="$HOME/pi-apps/Wine (x86)/icon-64.png" Icon="$HOME/pi-apps/apps/Wine (x86)/icon-64.png"

PUP-Loki commented 3 years ago

just got it working with this code Icon="$HOME/pi-apps/apps/Wine (x86)/icon-64.png"

Itai-Nelken commented 3 years ago

just got it working with this code Icon="$HOME/pi-apps/apps/Wine (x86)/icon-64.png"

@PUP-Loki thanks for finding this out!

Itai-Nelken commented 3 years ago

Wine (x86).zip fixed icon path in wine cfg menu button thanks to @PUP-Loki. otherwise the same as last zip. (remove _MACOSX folder as well, and test it to see if it works).

@PUP-Loki, run the uninstall script and try again with this zip.

PUP-Loki commented 3 years ago

fix error in install and uninstall scripts Wine.x86.zip

Botspot commented 3 years ago

@itai_nelken Is there really a good reason to remove ~/.wine upon installation?

Seems like this makes updating a pain.

Botspot commented 3 years ago

@Itai-Nelken I'm improving the menu button.
What category should winecfg go in? Let's not leave it in Other.

Itai-Nelken commented 3 years ago

@Itai-Nelken I'm improving the menu button. What category should winecfg go in? Let's not leave it in Other.

maybe Games? I don't know.

Itai-Nelken commented 3 years ago

@itai_nelken Is there really a good reason to remove ~/.wine upon installation?

Seems like this makes updating a pain.

it gets removed in case there is a broken wine prefix there, so you get a new one. I think it's necessary, even though it will be a pain when updating.

Itai-Nelken commented 3 years ago

@itai_nelken Is there really a good reason to remove ~/.wine upon installation?

Seems like this makes updating a pain.

@Botspot also, maybe instead of deleting, just make a backup of it so ~/.wine.old. than if that file exists, ask user if they want to keep it or create a new one.

Itai-Nelken commented 3 years ago

@Botspot I just cleared wine's cache (delete ~/.cache/wine) and tried this zip Wine.x86.zip, and the wine mono and gecko installers appeared. reason: wine caches the installers, so they don't appear after installing first time.

Botspot commented 3 years ago

What category should winecfg go in? Let's not leave it in Other.

maybe Games? I don't know.

I'm thinking of putting it in System Tools.

@Botspot I just cleared wine's cache (delete ~/.cache/wine) and tried this zip Wine.x86.zip, and the wine mono and gecko installers appeared. reason: wine coaches the installers, so they don't appear after installing first time.

Interesting. That looks like something we'll want to clear upon installation then. Right?

it gets removed in case there is a broken wine prefix there, so you get a new one. I think it's necessary, even though it will be a pain when updating.

Would it be possible to detect a "broken wine prefix"? If so, that would seem like the best of both worlds.

Itai-Nelken commented 3 years ago

What category should winecfg go in? Let's not leave it in Other.

maybe Games? I don't know.

I'm thinking of putting it in System Tools.

sounds good.

@Botspot I just cleared wine's cache (delete ~/.cache/wine) and tried this zip Wine.x86.zip, and the wine mono and gecko installers appeared. reason: wine coaches the installers, so they don't appear after installing first time.

Interesting. That looks like something we'll want to clear upon installation then. Right? yes, also uninstallation.

also I have a problem with wine (TwisterOS, and using this script) that it just stops working. you can install apps and run some of them from the installer, but everything else doesn't work.

also we need to add wine to the hidelist in TwsiterOS.

Itai-Nelken commented 3 years ago

it gets removed in case there is a broken wine prefix there, so you get a new one. I think it's necessary, even though it will be a pain when updating.

Would it be possible to detect a "broken wine prefix"? If so, that would seem like the best of both worlds.

If its possible than yes, it would be the best. after a quick google, I didn't find any way to detect a broken wine prefix.

Itai-Nelken commented 3 years ago

in TwisterOS, /usr/local/bin/wine is this script:

#!/bin/bash
setarch linux32 -L /home/pi/wine/bin/wine "$@"

there is also this: add this line application/x-ms-dos-executable=userapp-"wine"-9GU8V0.desktop;

To this file right at the end of the list for added associations right above default applications /home/pi/.config/mimeapps.list

This will let you just double click .exe files to open them

and this: You can also do this to see .exe icons. Looks nice especially if you're on an older windows theme like Raspbian 95 or Raspbian XP.

sudo pip3 install icoextract
wget https://raw.githubusercontent.com/jlu5/icoextract/master/exe-thumbnailer.thumbnailer && sudo mv exe-thumbnailer.thumbnailer /usr/share/thumbnailers/

reboot for thumbnailer to work

maybe we should use those?

Botspot commented 3 years ago

Nice finds, @Itai-Nelken!

Botspot commented 3 years ago

@Itai-Nelken Could you find where the wine desktop file is?

find / -name 'userapp-"wine"-9GU8V0.desktop'

I want to see what that file contains.