Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Combine Versions #98

Merged
merged 17 commits into from
Jan 8, 2023
Merged

Combine Versions #98

merged 17 commits into from
Jan 8, 2023

Conversation

thw26
Copy link
Collaborator

@thw26 thw26 commented Nov 29, 2022

This PR originally sought to resolve #36 only by combining LogosLinuxInstaller9.sh and LogosLinuxInstaller10.sh into a single script with version specific install routines. But from there it has ballooned into also resolving #81, #97, #99, #102, #103, #107, #109, #112, #113. It also may fix #100 and lays groundwork for #108. Notable commentary:

  • It creates a new user-facing dialog that allows the user to select their install version.
  • It revamps the installation method dialog to dynamically generate a list of wine64 binaries, curate that same list, then present those options to the user. This required having a dynamic WINE_EXE variable, rather than solely relying on the AppImage updating the user's $PATH variable to override the system wine64 binary.
  • It moves more code to functions following Refactor for main(). Fix #93. #95.
  • It checks whether certain downloads are already downloaded and uses them if available instead of downloading anew.
  • It cleans up some minor text and typos and removes some echo output and makes the code more readable, which will make Decouple Script from Zenity #104 easier.
  • It implements two new optargs commands: -f|--force-root and -D|--debug.
  • It begins updating the controlPanel.sh and Logos.sh scripts.

Outstanding Reported Issues:


UPDATED STATUS: As soon as I have confirmation that this works on Ubuntu 22.04, I will merge.

Copy link

@t1kt0k-tech t1kt0k-tech left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested Logos 10 .exe installer below is output of crash prior to getting to login screen.

Unhandled exception: page fault on read access to 0x09ab0f46 in 32-bit code (0x63891a05).
Register dump:
CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
EIP:63891a05 ESP:0069f140 EBP:0069f248 EFLAGS:00010202( R- -- I - - - )
EAX:01926c48 EBX:007e7fc8 ECX:0069f140 EDX:09ab0f3e
ESI:00000001 EDI:01929fa4
Stack dump:
0x0069f140: 007e7fc8 6389c123 00000000 007e7fc8
0x0069f150: 0069f1e0 007e5de8 007e5ae8 007e12a8
0x0069f160: 6389c034 00000003 0069f188 6389756c
0x0069f170: 00000000 63898420 007e12a8 007e39c0
0x0069f180: 01929ef0 007e54f8 6ab2ea30 007e7fc8
0x0069f190: 6389c034 0069f1c0 6389c3a4 007e12a8
Backtrace:
=>0 0x63891a05 in wintrust (+0x11a05) (0x0069f248)
1 0x63892ed8 in wintrust (+0x12ed8) (0x007e12a8)
2 0x638949bd in wintrust (+0x149bd) (0x00010020)
3 0x6389552c in wintrust (+0x1552c) (0x0069f3a8)
4 0x63896039 in wintrust (+0x16039) (0x0069f3c8)
5 0x6e41bf2e in msi (+0x5bf2e) (0x0069f488)
6 0x00420060 in logossetup (+0x20060) (0x0069f638)
7 0x0041c304 in logossetup (+0x1c304) (0x0069fafc)
8 0x00426092 in logossetup (+0x26092) (0x0069fee4)
9 0x00433032 in logossetup (+0x33032) (0x0069ff30)
10 0x7b629170 in kernel32 (+0x29170) (0x0069ff48)
11 0x7bc5de37 in ntdll (+0x5de37) (0x0069ff5c)
12 0x7bc5e638 in ntdll (+0x5e638) (0x0069ffec)
0x63891a05 wintrust+0x11a05: testb $0x2,0x8(%edx)
Modules:
Module Address Debug info Name (91 modules)
PE 00400000-00492000 Export logossetup
PE 00a60000-00cfe000 Deferred crypt32
PE 00d00000-0113d000 Deferred ole32
PE 01140000-01355000 Deferred rpcrt4
PE 02490000-02893000 Deferred actxprxy
PE 61600000-61631000 Deferred mspatcha
PE 61c40000-61c65000 Deferred userenv
PE 622c0000-6234d000 Deferred rsaenh
PE 62500000-628be000 Deferred oleaut32
PE 63880000-63917000 Dwarf-5 wintrust
PE 643c0000-64443000 Deferred ws2_32
PE 64a80000-64ad6000 Deferred win32u
PE 65340000-65354000 Deferred msimg32
PE 65680000-658cf000 Deferred msvcrt
PE 66080000-66174000 Deferred shlwapi
PE 66300000-6631a000 Deferred msisip
PE 663c0000-663d5000 Deferred atlthunk
PE 66480000-664b2000 Deferred imagehlp
PE 66640000-6665b000 Deferred version
PE 667c0000-66804000 Deferred shcore
PE 67500000-6754f000 Deferred imm32
PE 67bc0000-67ff2000 Deferred comctl32
PE 68100000-6813a000 Deferred sxs
PE 684c0000-685fd000 Deferred combase
PE 68880000-68d59000 Deferred user32
PE 69840000-69926000 Deferred advapi32
PE 6aac0000-6ad6d000 Deferred ucrtbase
PE 6afc0000-6afe2000 Deferred aclui
PE 6ba40000-6ba75000 Deferred odbccp32
PE 6bb40000-6bbc0000 Deferred winex11
PE 6bbc0000-6bc4f000 Deferred sechost
PE 6c100000-6c2a0000 Deferred wininet
PE 6da80000-6dc75000 Deferred gdi32
PE 6e000000-6e062000 Deferred cabinet
PE 6e200000-6e240000 Deferred bcrypt
PE 6e3c0000-6e89f000 Dwarf-5 msi
PE 70000000-70237000 Deferred dbghelp
PE 70380000-705e3000 Deferred urlmon
PE 70d80000-70e1c000 Deferred uxtheme
PE 71140000-711c9000 Deferred qmgrprxy
PE 712c0000-71314000 Deferred mpr
PE 71400000-7209c000 Deferred shell32
PE 7b000000-7b4df000 Deferred kernelbase
PE 7b600000-7b745000 Dwarf-5 kernel32
PE 7bc00000-7be97000 Dwarf-5 ntdll
ELF 7d000000-7d005000 Deferred
ELF 7d49c000-7d4c1000 Deferred libgcc_s.so.1
ELF 7d5c1000-7d654000 Deferred libgmp.so.10
ELF 7d769000-7d7ad000 Deferred libhogweed.so.6
ELF 7d7ad000-7d7ff000 Deferred libnettle.so.8
ELF 7d7ff000-7d9b5000 Deferred libunistring.so.2
ELF 7d9b5000-7da00000 Deferred libidn2.so.0
ELF 7da00000-7dc4b000 Deferred libgnutls.so.30
ELF 7dc71000-7dc7c000 Deferred libffi.so.8
ELF 7dc7c000-7dc94000 Deferred libtasn1.so.6
ELF 7dc94000-7ddd7000 Deferred libp11-kit.so.0
ELF 7dde7000-7dded000 Deferred ws2_32.so
ELF 7de6a000-7de72000 Deferred libxfixes.so.3
ELF 7de72000-7de7f000 Deferred libxcursor.so.1
ELF 7decc000-7dee0000 Deferred libxi.so.6
ELF 7dee0000-7dee5000 Deferred libxcomposite.so.1
ELF 7dee5000-7def4000 Deferred libxrandr.so.2
ELF 7def4000-7df02000 Deferred libxrender.so.1
ELF 7df02000-7df09000 Deferred libxxf86vm.so.1
ELF 7df09000-7df0e000 Deferred libxinerama.so.1
ELF 7df0e000-7df14000 Deferred libxau.so.6
ELF 7df14000-7df42000 Deferred libxcb.so.1
ELF 7df42000-7e097000 Deferred libx11.so.6
ELF 7e097000-7e0ae000 Deferred libxext.so.6
ELF 7e0b2000-7e0b8000 Deferred crypt32.so
ELF 7e0b8000-7e0c2000 Deferred bcrypt.so
ELF 7e0c4000-7e144000 Deferred winex11.so
ELF 7e1af000-7e1de000 Deferred liblzma.so.5
ELF 7e1de000-7e36b000 Deferred libxml2.so.2
ELF 7e36b000-7e3be000 Deferred libfontconfig.so.1
ELF 7e3be000-7e45b000 Deferred libpcre2-8.so.0
ELF 7e45b000-7e47e000 Deferred libbrotlicommon.so.1
ELF 7e47e000-7e49e000 Deferred libgraphite2.so.3
ELF 7e49e000-7e5fc000 Deferred libglib-2.0.so.0
ELF 7e5fc000-7e60a000 Deferred libbrotlidec.so.1
ELF 7e60a000-7e705000 Deferred libharfbuzz.so.0
ELF 7e705000-7e71e000 Deferred libz.so.1
ELF 7e71e000-7e75c000 Deferred libpng16.so.16
ELF 7e75c000-7e828000 Deferred libfreetype.so.6
ELF 7e828000-7e987000 Deferred win32u.so
ELF 7ee21000-7efa8000 Dwarf libwine.so.1
ELF f7b34000-f7c04000 Deferred libm.so.6
ELF f7c04000-f7cc5000 Deferred ntdll.so
ELF f7cc5000-f7eb1000 Deferred libc.so.6
ELF f7eb2000-f7ec5000 Deferred libbz2.so.1
ELF f7ec9000-f7eff000 Deferred ld-linux.so.2
Threads:
process tid prio name (all IDs are in hex)
00000020 start.exe
00000024 0
00000038 services.exe
0000003c 0
00000040 0 wine_rpcrt4_server
0000004c 0 wine_rpcrt4_io
00000070 0 wine_rpcrt4_io
0000009c 0 wine_rpcrt4_io
000000b4 0 wine_rpcrt4_io
000000e4 0 wine_rpcrt4_io
00000124 0 wine_rpcrt4_io
00000044 winedevice.exe
00000048 0
00000054 0
00000058 0 wine_sechost_service
0000005c 0
00000060 0
00000064 0
000000c0 0
00000068 winedevice.exe
0000006c 0
00000074 0
00000078 0 wine_sechost_service
0000007c 0
00000080 0
00000084 0
00000088 0
0000008c 0
00000090 0
00000094 plugplay.exe
00000098 0
000000a0 0
000000a4 0 wine_sechost_service
000000a8 0 wine_rpcrt4_server
000000ac svchost.exe
000000b0 0
000000b8 0
000000bc 0 wine_sechost_service
000000c4 explorer.exe
000000c8 0
000000cc 0
000000d0 0 wine_rpcrt4_server
000000dc rpcss.exe
000000e0 0
000000ec 0
000000f0 0 wine_sechost_service
000000f4 0 wine_rpcrt4_server
000000f8 0 wine_rpcrt4_server
000000fc 0 wine_rpcrt4_io
00000114 0 wine_rpcrt4_io
00000134 0 wine_rpcrt4_io
000001a8 0 wine_rpcrt4_io
00000104 conhost.exe
00000108 0
0000010c (D) Z:\home\mike\LogosBible10\LogosSetup.exe
["Z:\home\mike\LogosBible10\LogosSetup.exe" ]
00000110 0 <==
0000015c 0 wine_rpcrt4_server
00000160 0 wine_rpcrt4_io
0000016c 0 wine_rpcrt4_io
00000194 0
0000011c svchost.exe
00000120 0
00000128 0
0000012c 0 wine_sechost_service
00000130 0 wine_rpcrt4_server
00000138 0
0000013c 0 wine_rpcrt4_io
00000148 0 wine_rpcrt4_io
0000014c 0 wine_rpcrt4_io
00000150 0 wine_rpcrt4_io
00000154 0 wine_rpcrt4_io
00000198 explorer.exe
0000019c 0
000001a0 0
000001a4 0 wine_rpcrt4_server
System information:
Wine build: wine-7.22 (Staging)
Platform: i386 (WOW64)
Version: Windows 10
Host system: Linux
Host version: 6.0.9-300.fc37.x86_64

@thw26
Copy link
Collaborator Author

thw26 commented Nov 29, 2022

Thanks @t1kt0k-tech. I'm wondering if that is an issue related to #90. It looks like you are using native wine (7.22), and we've been wondering if there is some kind of problem with Wine 7.19+.

@thw26
Copy link
Collaborator Author

thw26 commented Nov 29, 2022

Logos 10 via native wine confirmed by @t1kt0k-tech. The caveat is that he had to use the MSI rather than the EXE, which seems to be related to issue #90.

I have verified that Logos 10 appimage installer works.

Logos 9 via native wine needs to be tested now.

@thw26
Copy link
Collaborator Author

thw26 commented Nov 29, 2022

I have verified Logos 9 completes successfully on the native wine installer.

If I recall correctly, the appimage version for Logos 9 has not worked for some time.

@thw26 thw26 self-assigned this Nov 29, 2022
@thw26 thw26 added this to the Combine Install Scripts milestone Nov 29, 2022
@thw26 thw26 requested a review from jg00dman November 29, 2022 23:35
@waa1523
Copy link

waa1523 commented Nov 30, 2022

I tested this pull request on an Ubuntu 22.04 container. I ran the installation choosing to install the wine appimage. It ran as expected but after Logos supposedly installed, the wine control center launched and I didn't get to the splash login screen. This is consistent with the behavior I have experienced with the other Logos 10 scripts and is one of the reasons why I went back to the Logos 9 script. If you tell me where to find the error message and how to upload them, I would be happy to do so.

@thw26
Copy link
Collaborator Author

thw26 commented Nov 30, 2022

I tested this pull request on an Ubuntu 22.04 container. It ran as expected but after Logos supposedly installed, the wine control center launched and I didn't get to the splash login screen. This is consistent with the behavior I have experienced with the other Logos 10 scripts and is one of the reasons why I went back to the Logos 9 script. If you tell me where to find the error message and how to upload them, I would be happy to do so.

That error is probably meaning that the symlinks for the program aren't being created properly in the bin directory. What are the contents of LogosBible10/data/bin?

I fixed this once in #95.

Also, what were the install options you selected, primarily, native wine or appimage?

Also, what option did you select for winetricks?

@waa1523
Copy link

waa1523 commented Nov 30, 2022

I used the wine appimage.

I don't recall the options for winetricks. Perhaps if you let me know what they are I can remember which one I selected.

The LogosBible10/data/bin folder contains the following files: selected_wine.Appimage, wine, wine64 and wineserver.

@thw26
Copy link
Collaborator Author

thw26 commented Nov 30, 2022

I don't recall the options for winetricks. Perhaps if you let me know what they are I can remember which one I selected.

Native or a version from the internet. If native, what version is winetricks?

@thw26
Copy link
Collaborator Author

thw26 commented Nov 30, 2022

@jg00dman found the script is not working on Steamdeck with these changes. More investigation necessary.

@waa1523
Copy link

waa1523 commented Nov 30, 2022

I imagine I just clicked through whichever option was presented. Since I didn't do a native wine install, perhaps it was a version of winetricks from the internet.

@thw26
Copy link
Collaborator Author

thw26 commented Nov 30, 2022

I imagine I just clicked through whichever option was presented. Since I didn't do a native wine install, perhaps it was a version of winetricks from the internet.

Okay. Default option is native winetricks. Can you report your winetricks version?

There was an issue we had to resolve by permitting users to obtain a newer version of winetricks, which is why I ask.

@waa1523
Copy link

waa1523 commented Nov 30, 2022

I reran the script because I didn't know where to locate the winetricks version that was used. The same result happened: the wine control center loaded and I didn't get to the splash screen.

From the terminal output there was this: "Using winetricks 20220411" which was followed by the sha256sum.

@thw26
Copy link
Collaborator Author

thw26 commented Nov 30, 2022

@waa1523, do you have a Logos binary?

Should be at:

/home/$USER/LogosBible10/data/wine64_bottle/drive_c/users/$USER/AppData/Local/Logos/Logos.exe

@waa1523
Copy link

waa1523 commented Nov 30, 2022

No, I do not. There should be a Logos folder with the .exe in it. There is only a Microsoft folder. Odd.

@thw26
Copy link
Collaborator Author

thw26 commented Nov 30, 2022

No, I do not. There should be a Logos folder with the .exe in it. There is only a Microsoft folder. Odd.

Great! So this tells us Logos never actually installed for some reason!

That would mean we are either failing in the prepareWineBottle() or the installLogos10().

@thw26
Copy link
Collaborator Author

thw26 commented Dec 1, 2022

@waa1523, I've pushed an update to this PR of the script. This reverts some changes from #84. There are some minor changes to the script, but I have also attempted a fix on what I believe were accidental changes to some registry editing and a change to make github's shellcheck happy. See if there is any difference with this update.

If this doesn't work, my assumption is that it breaks somewhere in the installLogos10(), either line 1025 or later.

@thw26
Copy link
Collaborator Author

thw26 commented Dec 1, 2022

@waa1523, I've implemented a check at the end of the script that hopefully will catch if the Logos executable is present or not. This should then report as an error, which should be more satisfying being told the install failed rather than being told it was successful.

@waa1523
Copy link

waa1523 commented Dec 1, 2022

@thw26 Let me know if there is a new version to test.

@thw26
Copy link
Collaborator Author

thw26 commented Dec 1, 2022

@thw26 Let me know if there is a new version to test.

@waa1523 yes, go for it.

@thw26
Copy link
Collaborator Author

thw26 commented Dec 1, 2022

Reported in chat that puppy linux is failing the zenity install check

@thw26
Copy link
Collaborator Author

thw26 commented Dec 1, 2022

Reported in chat that Gentoo Linux fails to install Logos 10 when executing LogosSetup.exe. Possibly #90?

@thw26 thw26 force-pushed the combine-versions branch 5 times, most recently from e5ce4e6 to 8db7380 Compare December 29, 2022 05:45
@thw26 thw26 linked an issue Dec 29, 2022 that may be closed by this pull request
@thw26 thw26 force-pushed the combine-versions branch 2 times, most recently from 49af7a4 to cb0d300 Compare December 31, 2022 14:09
@thw26 thw26 linked an issue Dec 31, 2022 that may be closed by this pull request
@thw26 thw26 force-pushed the combine-versions branch 2 times, most recently from 473c67d to 21ee1e8 Compare January 1, 2023 04:23
@thw26
Copy link
Collaborator Author

thw26 commented Jan 6, 2023

Note to self: switch WINEBIN path and WINESERVERBIN path to a var for easier to read code.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment