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

Add Logos 30+ Support #118

Merged
merged 51 commits into from
Aug 1, 2024
Merged

Add Logos 30+ Support #118

merged 51 commits into from
Aug 1, 2024

Conversation

thw26
Copy link
Collaborator

@thw26 thw26 commented Jun 29, 2024

This PR fixes #22.

It adds an installer step that downloads a .tar.gz from GitHub and then untars it into place.

We need to come up with an appropriate installer check to be able to skip this step if possible.


BLOCKED

TODO

@thw26 thw26 requested a review from n8marti June 29, 2024 04:31
@thw26 thw26 marked this pull request as draft June 29, 2024 04:33
@thw26 thw26 force-pushed the 22-logos-30plus branch 3 times, most recently from c458ce7 to f21bd19 Compare June 29, 2024 04:50
@Freilichtbuehne
Copy link
Contributor

I tested with this branch (installed for the first time) and it works without any problems.

@thw26 thw26 marked this pull request as ready for review July 2, 2024 04:51
@thw26 thw26 changed the title [WIP] Add Logos 30+ Support Add Logos 30+ Support Jul 2, 2024
@thw26
Copy link
Collaborator Author

thw26 commented Jul 2, 2024

Given @Freilichtbuehne's testing, I have marked this as ready for review.

@n8marti
Copy link
Collaborator

n8marti commented Jul 2, 2024

Testing with GUI I get this error:

Traceback (most recent call last):
  File "/opt/lib/python3.12/threading.py", line 1073, in _bootstrap_inner
    self.run()
  File "/opt/lib/python3.12/threading.py", line 1010, in run
    self._target(*self._args, **self._kwargs)
  File "/home/nate/g/LogosLinuxInstaller/installer.py", line 644, in ensure_launcher_shortcuts
    ensure_launcher_executable(app=app)
  File "/home/nate/g/LogosLinuxInstaller/installer.py", line 622, in ensure_launcher_executable
    ensure_config_file(app=app)
  File "/home/nate/g/LogosLinuxInstaller/installer.py", line 584, in ensure_config_file
    ensure_product_installed(app=app)
  File "/home/nate/g/LogosLinuxInstaller/installer.py", line 566, in ensure_product_installed
    ensure_winetricks_applied(app=app)
  File "/home/nate/g/LogosLinuxInstaller/installer.py", line 513, in ensure_winetricks_applied
    ensure_icu_data_files(app=app)
  File "/home/nate/g/LogosLinuxInstaller/installer.py", line 507, in ensure_icu_data_files
    wine.installICUDataFiles()
  File "/home/nate/g/LogosLinuxInstaller/wine.py", line 285, in installICUDataFiles
    icu_filename = os.path.basename(logoslinuxinstaller_url)  # noqa: #501
                                    ^^^^^^^^^^^^^^^^^^^^^^^
NameError: name 'logoslinuxinstaller_url' is not defined

@andyhunne
Copy link

I just tested with the latest commit. It passes the logoslinuxinstaller_url error, then stops here:

Copying: icu.tar.gz into: /home/andy/downloads Traceback (most recent call last): File "/home/andy/code/LogosLinuxInstaller/./LogosLinuxInstaller.py", line 358, in <module> main() File "/home/andy/code/LogosLinuxInstaller/./LogosLinuxInstaller.py", line 347, in main config.ACTION() File "/home/andy/code/LogosLinuxInstaller/./LogosLinuxInstaller.py", line 259, in run_control_panel tui_app.control_panel_app() File "/home/andy/code/LogosLinuxInstaller/tui_app.py", line 106, in control_panel_app installer.ensure_launcher_shortcuts() File "/home/andy/code/LogosLinuxInstaller/installer.py", line 644, in ensure_launcher_shortcuts ensure_launcher_executable(app=app) File "/home/andy/code/LogosLinuxInstaller/installer.py", line 622, in ensure_launcher_executable ensure_config_file(app=app) File "/home/andy/code/LogosLinuxInstaller/installer.py", line 584, in ensure_config_file ensure_product_installed(app=app) File "/home/andy/code/LogosLinuxInstaller/installer.py", line 566, in ensure_product_installed ensure_winetricks_applied(app=app) File "/home/andy/code/LogosLinuxInstaller/installer.py", line 513, in ensure_winetricks_applied ensure_icu_data_files(app=app) File "/home/andy/code/LogosLinuxInstaller/installer.py", line 507, in ensure_icu_data_files wine.installICUDataFiles() File "/home/andy/code/LogosLinuxInstaller/wine.py", line 287, in installICUDataFiles utils.untar_file(f"{config.MYDOWNLOADS}/icu.tar.gz", f"{config.APPDIR}/wine64_bottle/drive_c") ^^^^^^^^^^^^^ AttributeError: module 'config' has no attribute 'APPDIR'

@n8marti
Copy link
Collaborator

n8marti commented Jul 2, 2024

I'm currently working through another issue: in the GUI I choose v34.x, and it downloads it correctly, but then it still copies v29.x into the INSTALLDIR. This might be from my config file, but choosing a different version in the installer should override what the config file says.

@n8marti
Copy link
Collaborator

n8marti commented Jul 2, 2024

I also have a minor issue where downloading the ICU files doesn't change the progress bar to show download progress, nor file verification progress. I think in the longer term I should probably rethink how the GUI handles these things, because a big part of the progress bar handling is more or less hard-coded and not too flexible.

@n8marti
Copy link
Collaborator

n8marti commented Jul 2, 2024

I'm currently working through another issue: in the GUI I choose v34.x, and it downloads it correctly, but then it still copies v29.x into the INSTALLDIR. This might be from my config file, but choosing a different version in the installer should override what the config file says.

Removing the config file does fix this problem. But then I get an error when the MSI starts:

2024-07-02 10:00:48 ERROR: Error running '/home/nate/LogosBible10/data/bin/wine-devel_8.19-x86_64.AppImage msiexec /i /home/nate/LogosBible10/data/Logos_v34.1.0.0009-x64.msi': 67

Up till now I've been using wine-devel 8.19 appimage. I think I need to switch to 9.x to continue testing.

@n8marti
Copy link
Collaborator

n8marti commented Jul 2, 2024

More progress made, but now if the 9.11-devel appimage is chosen from the EXE dropdown list, it immediately reverts the choice to the 8.19-devel appimage. I'm out of time for today.

@andyhunne
Copy link

andyhunne commented Jul 3, 2024

Install failed when the 'Welcome to Logos Setup' windows dialogue displayed, with the notification:
'Logos Bible study requires Windows to be fully updated. Please install system updates.'

Thanks for all the effort to get this working with the latest version btw!

wine.py Show resolved Hide resolved
@thw26 thw26 force-pushed the 22-logos-30plus branch from ea43885 to 4d4f6b5 Compare July 3, 2024 14:30
@Freilichtbuehne
Copy link
Contributor

Freilichtbuehne commented Jul 6, 2024

With #120 the previous errors are fixed. But using Logos 34.1.0.0009 it not fails with the following error (while downloading the books after installation):

Error ID: 5313
Error detail: EntryPointNotFoundException: Unable to find an entry point named 'GetThreadDpiHostingBehavior' in DLL 'USER32.dll'.

System.EntryPointNotFoundException: Unable to find an entry point named 'GetThreadDpiHostingBehavior' in DLL 'USER32.dll'.
   at System.Windows.Forms.DpiHelper.DpiAwarenessScope..ctor(DPI_AWARENESS_CONTEXT context, DPI_HOSTING_BEHAVIOR behavior)
   at System.Windows.Forms.DpiHelper.EnterDpiAwarenessScope(DPI_AWARENESS_CONTEXT awareness, DPI_HOSTING_BEHAVIOR dpiHosting)
   at System.Windows.Forms.NativeWindow.CreateHandle(CreateParams cp)
   at System.Windows.Forms.Control.CreateHandle()
   at System.Windows.Forms.Application.ThreadContext.get_MarshalingControl()
   at System.Windows.Forms.WindowsFormsSynchronizationContext..ctor()
   at System.Windows.Forms.WindowsFormsSynchronizationContext.InstallIfNeeded()
   at System.Windows.Forms.Control..ctor(Boolean autoInstallSyncContext)
   at System.Windows.Forms.ScrollableControl..ctor()
   at System.Windows.Forms.ContainerControl..ctor()
   at System.Windows.Forms.Form..ctor()
   at Libronix.Utility.Windows.GlobalHotKeys.GlobalHotKeysForm..ctor()
   at Libronix.Utility.Windows.GlobalHotKeys.GlobalHotKeysThread(Object obj)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)

And according to this it should be fixed by upgrading wine to 9.0-rc1 or later... Like @n8marti said earlier.

On Logos 30 it works without any problem.

@thw26
Copy link
Collaborator Author

thw26 commented Jul 6, 2024

I merged your PR. Thank you!

And we have found that using Wine 9.10+ has been good. Wine 9.0/9.1 had some known crashes on our end, but 9.10 has been pretty stable. I will see about pushing a PR with the latest Wine AppImage and we can run further testing hopefully to get this merged soon!

@n8marti
Copy link
Collaborator

n8marti commented Jul 6, 2024

GUI now seems to properly handle Logos 30+, including ICU files

@thw26 thw26 mentioned this pull request Jul 7, 2024
1 task
thw26 added a commit that referenced this pull request Jul 7, 2024
@thw26 thw26 force-pushed the 22-logos-30plus branch 2 times, most recently from 9286516 to 71d55ff Compare July 7, 2024 01:04
thw26 added a commit that referenced this pull request Jul 7, 2024
thw26 added a commit that referenced this pull request Jul 8, 2024
thw26 added a commit that referenced this pull request Jul 8, 2024
@n8marti
Copy link
Collaborator

n8marti commented Jul 25, 2024

commit 8eed39d fixes #136

@thw26 thw26 linked an issue Jul 30, 2024 that may be closed by this pull request
@thw26 thw26 force-pushed the 22-logos-30plus branch from 10fc5ee to 041e7d4 Compare July 31, 2024 01:12
Copy link
Collaborator

@n8marti n8marti left a comment

Choose a reason for hiding this comment

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

I think we're good here.

@thw26 thw26 merged commit 4110a2f into main Aug 1, 2024
@n8marti n8marti deleted the 22-logos-30plus branch August 25, 2024 20:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
6 participants