More Windows Build

I haven’t gotten any farther in documenting the Windows
build procedures. I took a quick look at building it again
and decided it was too complicated for the amount of time
that I had.

But I’m in the process of trying to build a redistributable
binary package for my application. As part of that I installed
the Windows gems. I noticed a problem.

If I do “gem install gtk2”, it installs several gems (gtk-2,
glib2, atk, etc, etc). But the vendor/local/bin directories
contain the same dlls over and over again. Even if I
delete all the source code, libs, includes, and executables,
the result is over 200 MB in size. I can’t ask my users
to do a 250 MB download (including Ruby) for my tiny
app.

Is there any way to get rid of the duplication of DLLs?
This is an area where I have no knowledge. I will
volunteer to work on improving it, but I need some
help.

MikeC

Hi,

In [email protected]
“[ruby-gnome2-devel-en] More Windows Build” on Thu, 20 Jan 2011
16:26:26 +0900,
Mike C. [email protected] wrote:

If I do “gem install gtk2”, it installs several gems (gtk-2,
glib2, atk, etc, etc). But the vendor/local/bin directories
contain the same dlls over and over again. Even if I
delete all the source code, libs, includes, and executables,
the result is over 200 MB in size. I can’t ask my users
to do a 250 MB download (including Ruby) for my tiny
app.

I think so too.
We need to reduce duplicated DLLs.

Is there any way to get rid of the duplication of DLLs?
This is an area where I have no knowledge. I will
volunteer to work on improving it, but I need some
help.

You can find which binaries are required by a gem in
Rakefile. For examlpe, you can find the following code in
gtk2/Rakefile:

packages = ["glib", "atk", "gdk-pixbuf", "pango", "gtk+"]
dependencies = ["gettext-runtime", "zlib", "freetype", "expat",
                "fontconfig", "cairo", "libpng"]

It means “Ruby/GTK2 uses glib, atk, gdk-pixbuf, pango, gtk+
and so on”. They are downloaded from
Index of /pub/gnome/binaries/win32

(See glib2/lib/gnome-win32-binary-downloader.rb for details.)

All gems include all depend Windows binaries but some
binaries aren’t needed. For example, Ruby/ATK gem depends on
Ruby/GLib2 but both of them include GLib Windows binary. We
will be able to remove GLib Windows binary from
Ruby/ATK.

But I didn’t it yet because I can’t try and error on
Windows. I only have Debian GNU/Linux… We need help who
can work on Windows. Patches for it are welcome!

Thanks,

kou

Thank you for the explanation. I will try to
do it next week if I have time!

      MikeC