-
Notifications
You must be signed in to change notification settings - Fork 4
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
Special case Gtk related dlls to dl_load from the unpacked inc dir #8
Conversation
This allows packed Gtk2 apps to run on Windows as they otherwise do not work with their internal PAR names. The xs.dll pattern is specific to Strawberry Perl and could be generalised to any file with a .dll extension.
What is the exact problem? What do you mean by "internal PAR names"?
If it's not needed, leave it out. Putting in unnecessary stuff is not "future-proofing". This is a gross hack without any justification (though I know that the |
(Edited after posting - an overly sensitive touchpad caused a commit of a partial response).
Sorry, I should have given links. This is a long-standing problem with Gtk related modules under PAR. Some relevant links are: Your post at https://www.nntp.perl.org/group/perl.par/2019/02/msg6667.html allowed me to zero-in on the part of PAR where it manifests.
These are the "mangled" names PAR uses to store files at its top level. For example "d8b0e911.xs.dll" instead of "Cairo.xs.dll" (that's not the correct rename but it serves as an example).
I'll get Gtk3 up and running to check if it has the same problems. I expect it will since it also depends on Cairo. I'll remove Gtk4.
Fair enough, but there are still legacy applications that use Gtk2. FWIW, I did also try to use the files under |
Right, that's the original sin: linking
My take on this idea is in branch
Please try it out. |
Thanks Roderich. That's a more generic solution. It works on my machine for the Gtk2 and Gtk3 test cases, as well as the larger Biodiverse code base. |
…ache This solves the problems mentioned in GitHub PR #8 ("Special case Gtk related dlls to dl_load from the unpacked inc dir") with applications using modules GTK2, Pango, Cairo and othes (this is a Windows only problem)
Thanks for testing Shawn, released as PAR 1.019 Close PR as superseded by 7626a9c |
This allows packed Gtk2 apps to run on Windows as they otherwise do not work with their internal PAR names.
The xs.dll pattern is specific to Strawberry Perl and could be generalised to any file with a .dll extension.
Gtk3 might not need the treatment. Gtk4 is listed for future-proofing and also might not be needed.
Tested with the script below on Strawberry Perl 5.38.0.1, packed using pp_autolink.
Alien::GtkStack::Windows is needed for the script to run. It can be installed using cpanm.
The readme for that repo also includes installation instructions for the Gtk2, Pango, Cairo and Glib modules for Strawberry Perl 5.38 via PPMs.
Test script: