# More Windows Build

**URL:** <https://www.ruby-forum.com/t/more-windows-build/202031>\
**Category:** Ruby-Gnome 2\
**Created:** [January 20, 2011, 8:27am UTC](https://www.ruby-forum.com/t/more-windows-build/202031 "2011-01-20T08:27:06Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![dubstep](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/cdc98d/32.png) [@dubstep](https://www.ruby-forum.com/u/dubstep)\
**Post date:** [January 20, 2011, 8:27am UTC](https://www.ruby-forum.com/t/more-windows-build/202031/1 "2011-01-20T08:27:06Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![mikec](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/977dab/32.png) [@mikec](https://www.ruby-forum.com/u/mikec)\
**Post date:** [January 21, 2011, 2:58pm UTC](https://www.ruby-forum.com/t/more-windows-build/202031/2 "2011-01-21T14:58:22Z")

</div>

Hi,

In [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
“[ruby-gnome2-devel-en] More Windows Build” on Thu, 20 Jan 2011  
16:26:26 +0900,  
Mike C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) 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  
[http://ftp.acc.umu.se/pub/gnome/binaries/win32/](http://ftp.acc.umu.se/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

---

<div class="post-metadata">

**Author:** ![mikec](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/977dab/32.png) [@mikec](https://www.ruby-forum.com/u/mikec)\
**Post date:** [January 21, 2011, 5:11pm UTC](https://www.ruby-forum.com/t/more-windows-build/202031/3 "2011-01-21T17:11:41Z")

</div>

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

```
      MikeC
```
