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

Modified the binary files to use MSYS2 environment of GTK (mingw64 fo… #6

Merged
merged 4 commits into from Feb 20, 2017
Merged

Modified the binary files to use MSYS2 environment of GTK (mingw64 fo… #6

merged 4 commits into from Feb 20, 2017

Conversation

peterbud
Copy link
Contributor

@peterbud peterbud commented Sep 5, 2016

Hi Tom,

I have modified the binary files to use MSYS2 MINGW64 GTK binaries.
Also added a bash script which copies all necessary files from the appropriate MSYS2/mingw64 folders to the bin folder of the install environment (runs only under MSYS2 or MINW64 prompt)
Updated GTK3 NSI script to use the new files, there were some additions and two files which I believe not necessary. Also please note I was using NSIS 3.0

I'm not a big GTK expert, so I'm not sure whether we need to update files under /share or /etc or /lib.
Also, I believe (but I'm not certain) that we need additionally libpixbufloader*. dll files under /lib/gdk-pixbuf-2.0, ie: libpixbufloader-svg.dll - I'll test it further later on.

Please check out how this work on your end.

This PR is only about GTK3 script - if that works well, I can update the GTK2 version as well

…lder)

Also added a script which copies all necessary files from the appropriate MSYS2/mingw64 folders to the bin folder of the install environment
Updated GTK3 NSI script
@tschoonj
Copy link
Owner

tschoonj commented Sep 6, 2016

Hi Peter,

Many thanks for opening the PR. It will take me a couple of days before I can test this properly. There some important differences in the dependency hierarchy that I used before versus the one found in MSYS2. Also I am pretty sure that there are some differences in configuration options, which I hope won't impact anything.

Could you please also copy the files under /share, /lib and /etc? They are important.

You seem to have added the GTK2 dlls (libgtk-win32-2.0-0.dll and libgdk-win32-2.0-0.dll) into the GTK3 script. Could you please remove these?

Thanks!

Tom

Extended the copy script, did a deep dependency research and modified installed libraries
@peterbud
Copy link
Contributor Author

peterbud commented Sep 6, 2016

Hi Tom,

I have updated as suggested, and removed libgtk-win32-2.0-0.dll and libgdk-win32-2.0-0.dll
Also did a further research, and updated the list of files which are included in the installer. I have added a comment next to each file name in the NSI script to see which module/package required the given file.

My (pretty complex) GTK app runs if I install this version, however I have noticed a few issues:
There are two cache files in the installer:

  • /lib/gdk-pixbuf-2.0/2.10.0/loaders.cache
  • /lib/gtk-2.0/2.10.0/immodules.cache
    these are containing absolute path to my existing MSYS2 environment, and I believe they should be generated as a post-install step. However I was not able even by hand to run gdk-pixbuf-query-loaders.exe and gtk-query-immodules-2.0.exe, altough I believe they suppose to recreate/update those caches. Do you know what would be needed to run these programs?

We are getting close I believe, BTW.

Best regards,

Peter

@tschoonj
Copy link
Owner

tschoonj commented Sep 7, 2016

Thanks, I will have a look at it as soon as I can (which may be several days, sorry)

@peterbud
Copy link
Contributor Author

Hi Tom,

in the meantime I have found that gdk-pixbuf-query-loaders.exe was missing 2 dependencies, and I have added them to the installer (see latest commit). We need to add post-install to run gdk-pixbuf-query-loaders.exe, but you will need admin rights to change the loaders file.

Peter

@tschoonj
Copy link
Owner

Thanks Peter for the update.

I haven't had time to give any of this a try though 😢

@peterbud
Copy link
Contributor Author

Hi Tom, is there any news? The PR is older than a month :)

@tschoonj
Copy link
Owner

Sorry Peter, I will try and work on this a bit next week...

@tschoonj
Copy link
Owner

Hi Peter,

Just to give you an update: I am currently setting up msys2 on my Windows 7 VM and am testing my existing software with it. Will get to your PR soon...

Tom

@peterbud
Copy link
Contributor Author

Hi Tom, greet that you have time for this ;)
If you want to test only the installer, then you don't need MSYS2 on the machine - there is no dependency on any other at all. If you want to test the build procedure, then you need the bash for the copy script. Also be careful, in the last week in MSYS2 update the GTK3 package, and my first experience with that was not without issues.

Peter

@tschoonj
Copy link
Owner

tschoonj commented Nov 4, 2016

after some initial testing, I found that your installer works fine, even with the latest packages from MSYS2. The only thing that bothers me a bit is the theme: it looks like Adwaita to me, while I thought that gtk ships with a win32 specific theme...

I will push to your branch next week with my latest changes.

I will also need to update the gtk2 installer with modifications similar to your work.

@tschoonj
Copy link
Owner

Hi Peter,

I updated the gtk2 installer and made a commit but I cannot seem to push to your branch. Can you please verify that I have sufficient permissions to do so? (information on how to do so is here)

Thanks!

@peterbud
Copy link
Contributor Author

peterbud commented Dec 6, 2016

Hi Tom, why would you need to push it to my branch? You can always push it to your master branch.

@tschoonj
Copy link
Owner

tschoonj commented Dec 7, 2016

I know, but this is still a work in progress as I feel it needs proper testing before merging this in.

I will put the installers I have now online and give you (and others) the opportunity to give them a try.

@tschoonj
Copy link
Owner

tschoonj commented Dec 7, 2016

New gtk2/gtk3 installers are here

@tschoonj
Copy link
Owner

tschoonj commented Jan 6, 2017

I have run into the first real showstopper since testing the msys2 binaries: g_spawn_async_with_pipes is broken as the stdin, stderr and stdout file descriptors are garbage 😢

Am trying to fix it...

@tschoonj
Copy link
Owner

Turns out I had a massive buffer overflow problem in my code and g_spawn_async_with_pipes is fine 😄

@peterbud
Copy link
Contributor Author

Cool :)

@tschoonj tschoonj merged commit 939e50d into tschoonj:master Feb 20, 2017
tschoonj added a commit that referenced this pull request Feb 20, 2017
Everything appears to work fine...

Closes #5
Closes #6
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants