Forum Discussion
[MSIX] - Packaging GIMP
- Sep 20, 2019
pandaysumitroy Indeed, just tried it now and it doesn't work. Apparently this only suppresses the load failure of the plugins.
Apparently the GIMP community is also https://gitlab.gnome.org/GNOME/gimp/issues/1145/ (also somebody else already tried to put the plugins in System32 and System64 with the same exact results).
However, i did notice something, which i am not sure why is happening like this for the moment. While you capture GIMP, if you install it in other folder than the default one (C:\Test or C:\Gimp or any other folder), when you install the MSIX you won't receive the plugin failures anymore (so no need to copy the dlls in System32 and System64).
From my opinion this has something to do with how GIMP gets the paths and the whole logic of finding/loading plugins.
Still searching for a work around to make it work, will let you know if i have any further progress with this.
alexmarin89 Thank you for the workaround, above workaround resolves the startup error however "Plug-In Broswer" is not working.
You can access Plugin Browser from Help > Plugin Browser, it details list of plugin installed.
i doubt whether plugin are being loaded correctly.
PLUGIN BROWSERERROR
pandaysumitroy Indeed, just tried it now and it doesn't work. Apparently this only suppresses the load failure of the plugins.
Apparently the GIMP community is also https://gitlab.gnome.org/GNOME/gimp/issues/1145/ (also somebody else already tried to put the plugins in System32 and System64 with the same exact results).
However, i did notice something, which i am not sure why is happening like this for the moment. While you capture GIMP, if you install it in other folder than the default one (C:\Test or C:\Gimp or any other folder), when you install the MSIX you won't receive the plugin failures anymore (so no need to copy the dlls in System32 and System64).
From my opinion this has something to do with how GIMP gets the paths and the whole logic of finding/loading plugins.
Still searching for a work around to make it work, will let you know if i have any further progress with this.
- Mar 04, 2024
@pandaysumitroyalexmarin89 Oh, and I forgot that the free PsfTooling app also has a GUI program called Test_PeInfo that you can use to look at exes and dlls for this purpose.
- Mar 01, 2024
alexmarin89 Further research has shown that Gimp is using a windows API out of ucrtbase to load DLLs, and this API bypasses any of the PSF fixups, essentially bypassing the PSF for those calls. This is why copying the dlls to the SystemXXX folders helps on that loading.
Otherwise, Gimp developers have a habit of opening a file and then querying the handle to find that file's location, extract the directory, and use that to open different nearby file. This behavior frustrates and confuses ILV when a redirection was done. So ILV shouldn't be used on this app.
This app remains on my "can't do" list with additional issues preventing launch. -Tim
- atplsxMar 01, 2024Brass Contributor
You don't need these anymore, you can use this
<Extensions> <uap10:Extension Category="windows.installedLocationVirtualization"> <uap10:InstalledLocationVirtualization> <uap10:UpdateActions AddedItems="keep" DeletedItems="reset" ModifiedItems="keep" /> </uap10:InstalledLocationVirtualization> </uap10:Extension> <uap6:Extension Category="windows.loaderSearchPathOverride"> <uap6:LoaderSearchPathOverride> <uap6:LoaderSearchPathEntry FolderPath="VFS\ProgramFilesX64\GIMP 2\bin" /> <uap6:LoaderSearchPathEntry FolderPath="VFS\ProgramFilesX64\GIMP 2\lib" /> <uap6:LoaderSearchPathEntry FolderPath="VFS\ProgramFilesX64\GIMP 2\32" /> <uap6:LoaderSearchPathEntry FolderPath="VFS\ProgramFilesX64\GIMP 2\share" /> <uap6:LoaderSearchPathEntry FolderPath="VFS\ProgramFilesX64\GIMP 2" /> </uap6:LoaderSearchPathOverride> </uap6:Extension> </Extensions>
- TheStingPilotSep 21, 2019Copper Contributor
Hello,
I have installed GIMP in C:\APPS64\Gimp 2 but I still get the error messages that various .dll files cannot be found. (libgimp-2.0-0.dll for example).
I will do some troubleshooting.
With kind regards,
Willem
- alexmarin89Sep 22, 2019Iron Contributor
TheStingPilotI tested 2.10.12 by creating the folder structure specified in their git board (C:\Output\Gimp) and installed it there (the path should be after installation C:\Output\Gimp\Gimp 2).
After that in the capture with Advanced Installer i specified the application folder to be GIMP 2, that solved for me the problem of copying the dlls to system32 and system64. But that doesn't work either.
However, i've done more tests and i was thinking maybe something has changed since the 2.10 release of GIMP...and indeed something has changed.
I made a capture for GIMP 2.8.22. When you try to build it the first time you will receive some errors that GIMP 2\32\lib\gimp\2.0\python\gimp.pyd.debug' is not a valid Portable Executable for 'Build_MSIX_APPX->x64' build and other 4 or 5 .debug files.
I've deleted the files, doesn't seem to affect how it works. But of course i ran into the issues with the dlls that are not loading.
So again i've copied the dlls in System32 and System64. I also changed the Application Folder to be in GIMP 2.
And after that, everything works! GIMP 2.8.22.0 works with MSIX!
I am now curious what are the differences, i will try to do some more digging to see if maybe it's something that can be solved for the latest 2.10 releases also.
I thought maybe it's some hardcoding in some files, the only thing i found it in pygimp.interp located in lib\gimp\2.0\interpreters:
python=C:\Output\Gimp\GIMP 2\bin\pythonw.exe
python2=C:\Output\Gimp\GIMP 2\bin\pythonw.exe
/usr/bin/python=C:\Output\Gimp\GIMP 2\bin\pythonw.exe
:Python:E::py::python:However, trying to dehardcode that file doesn't solve much. And with a normal installation if you delete that file it doesn't seem to affect the functionality of GIMP, so that's a no go there also.
You can get the MSIX for 2.8.22.0 https://1drv.ms/u/s!Aur7_pRUgEnsiLljrcV30jjD_eWdpg?e=XHDVWV.