Re: Fwd: Plans for GTK+ Bundles for win32 and win64?
- From: Kean Johnston <kean johnston gmail com>
- To: Alberto Ruiz <aruiz gnome org>
- Cc: gtk-devel-list gnome org
- Subject: Re: Fwd: Plans for GTK+ Bundles for win32 and win64?
- Date: Thu, 08 Sep 2011 14:57:45 +0200
That's a really bad idea for several reasons. First, we don't have the
resources to test ABI compatibility on windows, there has been cases where
some versions have crashed windows apps.
Are you talking about ABI compatibility between varying GTK releases or
between various Windows releases? If the latter, that has almost never been
an issue. Windows is remarkably good with backwards compatibility. If the
former, that is trivially solved with better library naming (see my other
post in this thread on the topic).
Second, Windows is not as good at managing shared .dlls as Linux is. It can
become a nightmare. You need to either wire up the Side by Side plumbing or
mess with %PATH% to get things right, and both approaches have their own
set of problems.
*cough* ldconfig *cough*. Windows is no worse than other environments in
this regard. You have to have a way to inform programs where their "stuff"
is, whether its manipulating the PATH, or /etc/ld.conf (which is mainly
glibc based systems, other UNIX variants have yet other mechanisms) or
whatever. In fact Windows may even be slightly better because you can do it
in only ONE place: the registry, whereas on UNIX there are multiple ways
(if you are talking about UNIX in the broader sense and not as an alias for
Linux).
In the Qt world and other toolkits, most people just bundle their
dependencies. That's the standard and the right thing to do on Windows.
Application developers are in charge of delivering a Gtk+ (and other deps)
version that works for their app.
I highly question the "and right thing to do" part of that. Its the
expedient thing to do, its the lazy thing to do, but right? I disagree. A
large part of the entire purpose of DLL's is to make them accessible to
more than one bit of code. If your view of "bit of code" is as narrow as
your application then your statement holds true: you can have 10 .exe's in
your application all link against your own private copy of the DLL's and
you've saved some space. But there is a much broader scope and intention:
making them shared components that ALL applications can use. Like the .Net
framework or the various systems-provided DLL's. There is absolutely no
reason that GTK can't be treated exactly the same way, and it is my goal to
achieve exactly that.
Third, and the most important. Windows has no package manager. You should
not delegate on users the responsibility of making sure that a working copy
of GTK is installed. This is annoying enough with Java.
That's completely irrelevant. While Windows may not have a single command
that operates on identically formatted files (and even that is not true -
think .MSI) it most certainly DOES have a package manager. It knows exactly
what has been installed and where, provides an API for querying that and a
central mechanism for various packages to communicate information with each
other. Just as Microsoft creates "redistributables" that install specific
versions of the runtime or .Net framework or a number of other things that
your application can bundle and install if required, so can we provide a
"GTK redistributable" that is a single .msi or .exe that application
authors can bundle with their application and install as part of their
installation to ensure that the GTK they care about is present. That's for
end users. For developers, they can use the same redistributable to get the
runtime portion, and unzip an extra "development" bundle that has the
headers and import libraries.
Kean
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]