Share

TiEmu - a TI89(ti)/92(+)/V200 emulator.

Tracker: Bugs

5 TiEmu can't find glib-2.0-0.dll from Glib 2.14.3 - ID: 1891657
Last Update: Comment added ( kevinkofler )

TiEmu sometimes can't find glib-2.0-0.dll installed by other programs.

Steps to reproduce:
1. On a clean system, install Pidgin 2.3.1 from http://pidgin.im/
This installs Gtk+ Runtime: 2.12.1, Glib Runtime: 2.14.3

2. Install TiEmu 3.02 from tiemu-3.02-win32-setup.exe (with gdb).
3. Click OK at these prompts:
Incomplete GTK+ installation: libxml2.dll not found. If you proceed,
libxml2-2.6.27.zip will be downloaded and unpacked automatically.

Incomplete GTK+ installation: libglade-2.0-0.dll not found. If you proceed,
libxml-2.6.0.zip will be downloaded and unpacked automatically.
4. Start TiEmu.

Results:
This application has failed to start because libglib-2.0-0.dll was not
found. Re-installing the application may fix this problem.


Gtk+ Runtime 2.12.1 is installed to C:\Program Files\Common
Files\GTK\2.0\bin\libglib-2.0-0.dll. I'm not sure if I have to specify this
path to TiEmu somehow, but the installer didn't ask to download it. Should
the installer check for libglib-2.0-0.dll, and download + unpack it if it
isn't found?

(See also another issue with libraries from Pidgin and TiEmu conflicting:
https://sourceforge.net/tracker/?func=detail&atid=377680&aid=1891382&group_
id=23169 )


Jeff Connelly aka shellreef ( jeffconnelly ) - 2008-02-12 02:34

5

Open

None

Nobody/Anonymous

None

None

Public


Comments ( 13 )

Date: 2008-04-28 19:35
Sender: kevinkofler


(Sorta like I already do with libxml and libglade which I just download,
unzip and drop into the GTK+ directory if they aren't already there as
they're supposed to. Hey folks, libglade is the recommended way to use
Glade and has been for years, it's even the only way with Glade 3, are you
all drawing your UIs by hand in code? Or do you think dropping libglade
into each application directory is a solution? Why do you still ship GTK+
runtimes without libglade? The gladewin32.sourceforge.net runtime packages
are the only ones I can recommend because they actually contain what's
needed, I support the others out of necessity, but IMHO they're all
broken.)


Date: 2008-04-28 19:32
Sender: kevinkofler


What I could also do, of course, is to simply "fix" the GTK+ installation
by adding the PATH entry if it isn't there yet.


Date: 2008-04-28 19:31
Sender: kevinkofler


So that explains how Pidgin does it.
TiEmu doesn't have a launcher, the main executable is registered directly
in the start menu.

We can do the AppPath magic, but entering GTK+ into the PATH is what all
the other GTK+ runtime packages around do, so I don't know how many other
programs break with the Pidgin package (which adds the registry keys as if
it was one of those GTK+ runtimes, but omits the PATH entry). I'm sure
TiLP, GFM and TilEm all break. TilEm doesn't even use an installer which
could be used to register AppPath, it's just a ZIP package.

So basically this is doing things optimally vs. doing things compatibly,
tough tradeoff.

And I know different versions of GTK+ are likely to conflict, we get some
reports of this, I always close them as invalid and clearly state that ONE
AND ONLY ONE version of GTK+ has to be on the system, with reinstalling the
operating system as the suggested fix. I don't see a valid reason for
having zillions of copies of GTK+ around anyway (and absolutely hate
programs which dump private copies of GTK+ into some directory instead of
using a shared runtime, they are the ones causing those conflicts -
Pidgin's "semi-shared" runtime is interesting, but I'm not convinced I like
it either, given the compatibility implications).


Date: 2008-04-28 18:12
Sender: jeffconnelly


Response from http://developer.pidgin.im/ticket/5651 :
---
04/28/2008 12:40:44 PM changed by datallah ΒΆ
owner changed from lschiere to datallah.
component changed from unclassified to winpidgin (gtk).
pending set to 1.

In general, it is best to avoid polluting the System Path with stuff that
is likely to conflict (as some components of the GTK+ runtime are likely to
do). It would cause all sorts of problems for other programs if we did
this.

The best thing to do would be for the TiEmu installer to add an AppPath
(or to make the launcher not depend on GTK+ and fix the path at runtime
(like what pidgin does)).
---

Can the TiEmu installer do this?


Date: 2008-04-28 01:55
Sender: jeffconnelly


Filed this in Pidgin's bug tracker at
http://developer.pidgin.im/ticket/5651 .



Date: 2008-04-27 17:25
Sender: kevinkofler


I looked at Pidgin's gtk-installer.nsi and I have come to the conclusion
that it's Pidgin's GTK+ runtime installer which appears to need fixing. The
GTK+ runtime installer is supposed to add "$INSTDIR\bin" to the system PATH
(HKCU\Environment\PATH). Again, I have no idea how Pidgin itself locates
the GTK+ DLLs, but other apps (such as TiEmu) definitely can't find them if
they aren't in the PATH, and I don't see how I could fix this in TiEmu
because the OS isn't even loading the executable. I could only hack around
it in the TiEmu installer and I think getting Pidgin's GTK+ runtime
installer fixed is a better solution.


Date: 2008-02-14 02:15
Sender: jeffconnelly


Supposedly, this kind of configuration shouldn't allow the packaged
libraries to conflict with installed libraries. It was designed to allow
programs to run of USB drives, for example, without installing anything on
the host system.


Date: 2008-02-14 02:03
Sender: kevinkofler


I don't think that's a good idea, I've seen all sorts of strange problems
caused by having more than one GTK+ version installed on a Window$ system
at a time.


Date: 2008-02-13 16:45
Sender: jeffconnelly


One possible solution could be to use a "portable" installation, such as
described for Pidgin on
http://developer.pidgin.im/wiki/Using%20Pidgin#RunningWindowsPidginFromaUSBDrivePortableMode
- this will allow TiEmu to use a different Gtk+ runtime than on the system,
but that might be overkill.


Date: 2008-02-13 04:37
Sender: kevinkofler


Hmmm, anything we can do for this? I'd really like to fix this sooner
rather than later, but with no idea as to what's wrong, I can't really do
anything about it. :-(


Date: 2008-02-12 04:40
Sender: kevinkofler


I'm afraid I really don't understand what's going on. :-( Apps built
against an older glib (as TiEmu is) should still work with the latest one
(that's why the DLL name is still the same). I have no idea why it fails to
load the library.


Date: 2008-02-12 04:21
Sender: jeffconnelly


Nope, I'm not setting any search paths. Probably the search path isn't the
problem if the Gtk+ installer sets it up automatically. Pidgin finds it
just fine.

If you think DLL hell is bad, try installing multiple versions of Cygwin
:), but that's for another thread...


Date: 2008-02-12 03:26
Sender: kevinkofler


How does Pidgin find its libraries? Are you setting a per-application DLL
search path on pidgin.exe?

TiEmu currently expects the DLLs to be in the system-wide global library
search path, and all the GTK+ runtime installers we've previously
encountered set it up that way, so this has never been a problem before.

(I hate that operating system. Always in DLL Hell. I don't understand how
it got the reputation to be easy to install software on!)


Attached File

No Files Currently Attached

Changes ( 7 )

Field Old Value Date By
close_date 2008-04-27 17:25 2008-04-28 19:31 kevinkofler
status_id Deleted 2008-04-28 19:31 kevinkofler
resolution_id Duplicate 2008-04-28 18:12 jeffconnelly
resolution_id Invalid 2008-04-28 01:55 jeffconnelly
status_id Open 2008-04-27 17:25 kevinkofler
close_date - 2008-04-27 17:25 kevinkofler
resolution_id None 2008-04-27 17:25 kevinkofler