After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 673387 - Intl.dll file clash with HP protecttools
Intl.dll file clash with HP protecttools
Status: RESOLVED NOTGNOME
Product: GIMP
Classification: Other
Component: General
2.6.12
Other Windows
: Normal critical
: ---
Assigned To: GIMP Bugs
GIMP Bugs
Depends on:
Blocks:
 
 
Reported: 2012-04-02 20:27 UTC by Manuel Tuthill
Modified: 2012-09-11 14:10 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Manuel Tuthill 2012-04-02 20:27:17 UTC
Installing GIMP on a HP laptop with version 5 or 6 of the facial recognition protecttools software will result in halted initialization.

Error is caused due to both programs sharing the use of the file intl.dll. HP's version gets priorities due to location in /windows/system32.

Current work around is to disable the protecttools software.
Comment 1 Michael Natterer 2012-04-02 20:52:20 UTC
If HP software installs its DLLs in /windows/system32 then it's utterly
broken and breaks any other application that correctly ships their
intl.dll in their own provate folders. Please tell HP to fix their
software, we cannot do anything about it.
Comment 2 Michael Schumacher 2012-04-02 21:30:38 UTC
The idea as to point HP to this bug report.
Comment 3 Manuel Tuthill 2012-04-03 09:51:40 UTC
Just recived the following from HP

"Please request user to contact the support team of this freeware application and they might have any patch/update to fix this error message."

I'll forward HP this Bugzilla entry as per the above comment.
Comment 4 Manuel Tuthill 2012-04-03 11:59:08 UTC
"I am afraid to say that the hp protect tool application is a Security application for our units and we cannot tweak this application to get it compatible with GIMP Application as suggested by their support team.

If GIMP development team believes if there is any conflict between these two applications they should work with hp directly and get there application certified and tested with our units and application."

Any further advice?
Comment 5 Michael Schumacher 2012-04-03 14:51:22 UTC
Avoid HP.

For the actual matter, it might help to get through to someone with technical knowledge at HP.
Comment 6 Manuel Tuthill 2012-04-19 18:01:30 UTC
HP closed the ticket saying "as per 2nd level as well no other options are left to try so we had to close the case."

The HP Case ref. 4637361842
Comment 7 Mark Mundy 2012-08-06 16:23:18 UTC
This case has been escalated to Third Level Support. Please contact me via email to discuss getting this case resolved. support.protecttools@hp.com 

Mark Mundy 
3rd Level Support 
Systems/Software Engineer 
HEWLETT-PACKARD COMPANY
Comment 8 Michael Schumacher 2012-08-07 14:19:07 UTC
The problem is as follows:

1. the intl.dll file should not be in a system directory (in this case /windows/system32).

Preferably, HP Protecttools would be installed in a directory und Program Files (or the localized version of that) and also keep its DLL files there. GIMP does that, countless other programs do that.

This is what we want HP to do.


2. However, our Windows installer maintainer has decided to switch to a pragmatic approach - if a conflicting dll file is found in a system directory, it gets overwritten.

The installer software tries to figure out if the existing file is newer, but all we really care about is whether GIMP works after it is installed. As long as there is binary compatibility, then other apps will continue to work with the replaced dll files. If not... well, the user apparently wants to use GIMP *now*, so all other apps are secondary.
Comment 9 Michael Natterer 2012-08-07 15:25:05 UTC
Mark, see the last comment, I hope you don't mind to have the conversation
here instead of using the email you pasted, so everybody can follow it.
Comment 10 Mark Mundy 2012-08-07 21:50:17 UTC
That will be fine. I will need to do some ivestigative work on my end to discover the HP ProtectTools component(s) that installs the intl.dll. When I have that information, I will post additional comments. 

Mark Mundy 
3rd Level Support 
Systems/Software Engineer 
HEWLETT-PACKARD COMPANY
Comment 11 Manuel Tuthill 2012-08-07 22:16:11 UTC
Face Recognition for HP ProtectTools is the problem component. I've tested both version 5 and 6 IIRC and they both have the fault.
Comment 12 Mark Mundy 2012-08-08 14:45:35 UTC
(In reply to comment #11)
> Face Recognition for HP ProtectTools is the problem component. I've tested both
> version 5 and 6 IIRC and they both have the fault.

Thank you. That will help me reproduce the problem. 

Mark Mundy 
3rd Level Support 
Systems/Software Engineer 
HEWLETT-PACKARD COMPANY
Comment 13 Mark Mundy 2012-08-23 14:16:08 UTC
This our current analysis of the intl.dll conflict between Face Recognition and GIMP:

"I noticed that GIMP placed the file intl.dll under its installation folder and the file version is 0.18.  Face Recognition placed the file under system folder and its file version is 0.12. 

"GIMP will look for intl.dll from system folder at first and found the file 0.12 does not include a function 'libintl_snprintf', so it ran into a bug which is described on page http://gimp-win.sourceforge.net/faq.html . 

"I think Face Recognition could update the file intl.dll from version 0.12 to 0.18.  This is a small and reasonable change in FR."

I have recommended that we update the version of intl.dll that we are installing in future updates of the Face Recognition component for ProtectTools.


However, I don't understand why GIMP is finding the intl.dll installed in the Windows System directory if it is installed in the same location as the GIMP executable. 

According to MS, http://msdn.microsoft.com/en-US/library/7d83bc18(v=vs.100).aspx 

With both implicit and explicit linking, Windows first searches for "known DLLs", such as Kernel32.dll and User32.dll. Windows then searches for the DLLs in the following sequence:
1.	The directory where the executable module for the current process is located.
2.	The current directory.
3.	The Windows system directory. The GetSystemDirectory function retrieves the path of this directory.
4.	The Windows directory. The GetWindowsDirectory function retrieves the path of this directory.
5.	The directories listed in the PATH environment variable.


Can you explain why the GIMP version of intl.dll isn't found at stage 1 or 2?

Mark Mundy 
3rd Level Support 
Systems/Software Engineer 
HEWLETT-PACKARD COMPANY
Comment 14 Jernej Simončič 2012-08-30 18:53:57 UTC
GIMP's plug-ins run as separate processes - they're self-contained executables. Due to some unfortunate decisions made a long time ago, these plugins are stored in a different directory than the main GIMP executable, and as such rely on PATH to load dependant DLLs. GIMP sets PATH to only contain it's bin\ subdirectory (where all of the DLLs are), but due to Windows first searching System32, any library from that directory will be loaded first.

This isn't as much of a problem with GIMP 2.8.2 anymore, since I switched to OpenSuSE's Windows repository for GIMP's dependencies, which uses a different name for intl.dll - libintl-8.dll, however intl.dll is still shipped for compatibility with old plug-ins.
Comment 15 Mark Mundy 2012-09-11 14:10:26 UTC
I understand that. I just had a report this week on one of the application I develeloped 4 years ago causing a problem under Windows 7 (it worked fine for Vista :) 

We have a new release of the Face Recognition set for release sometime in October that upgrades intl.dll to version 0.18. The version number is 7.2.1.4244. 

We are not planning on releasing this fix in previous versions at this point. 

Mark Mundy 
3rd Level Support 
Systems/Software Engineer 
HEWLETT-PACKARD COMPANY