Re: Reg. modifying GTK+ to add menu option

2013-04-11 Thread Vlasov Vitaly
Hello.

Hmm...
I use goldendict for similar functionality. goldendict has a special key
(default win+alt). When special key is pressed, current selected word will
be translated in pop-up window, as it is shown in your first screenshot.
How does goldendict do it? I think he scan all keypress actions from X
server, may be Qt helps him. As I know, GNOME can add user's action to
keypress. May be you need hack GNOME dict and GNONE, not gtk+.

I think, adding new context menu to gtk+ is a bad choice. gtk+ is toolkit
for making GUI and is not suitable for this purpose. gtk+ is used on
systems that do not have GNOME dict or GNOME. New context menu is useless
for those systems.

How I see the solution to this problem: GNOME must have special key with
action look up word. On this action GNOME must send selected word (I
think it's not a big problem to get selected word) to GNOME dict. dict
shows pop-up window with definition.

Good luck with this feature.
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: GtkAppChooser custom command patch

2013-04-11 Thread Bernhard Schuster
I did not look at your implementation, but the screenshots look very
promising - in fact I think that is a highly desirable feature and your
implementation is (imho) how it should be done!




2013/4/8 tarn...@tarnyko.net

 Hi folks,
 Could someone please review the following patch/suggestion :
 https://bugzilla.gnome.org/**show_bug.cgi?id=650284#c36https://bugzilla.gnome.org/show_bug.cgi?id=650284#c36
 It adds a Use custom command on the lower part of the GtkAppChooser
 window, so users can specify an unlisted application (case of uncomplete
 mimetypes or .desktop associations).
 Screenshots are available in the comment.
 The patch itself is unfinished, I'm mostly asking for feedback about the
 general idea and design.
 Regards,
 Tarnyko
 __**_
 gtk-devel-list mailing list
 gtk-devel-list@gnome.org
 https://mail.gnome.org/**mailman/listinfo/gtk-devel-**listhttps://mail.gnome.org/mailman/listinfo/gtk-devel-list

___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: GtkAppChooser custom command patch

2013-04-11 Thread Bernhard Schuster
It does not fix the issue on a permanent basis nor does it fix the issue
for other users. But the single user can fix it _instantly_ himself without
having to read the .desktop file specification. And I think that is an
actual advantage. An alternative would be to create an application to write
.desktop files (a bunch of entries with suggestions), probably linked
from the application chooser dialog - that would be a viable solution, but
on the other hand side, this is more nasty for the end-user.

Best


2013/4/8 Matthias Clasen matthias.cla...@gmail.com

 On Mon, Apr 8, 2013 at 7:48 AM, Bernhard Schuster
 schuster.bernh...@googlemail.com wrote:
  There will always be the case that some application will not do it
 properly.
  Instead of annoying the end-user, give him/her the option to fix it
  him/herself. It is not that it would hurt, it's rather a salvation for
 the
  daily highcups and struggle with beta/commercial applications.

 But selecting 'custom command' doesn't fix it in any way. Fixing it
 would involved editing the desktop file, adding the necessary mime
 type, and sending a patch to the application author.

 I don't doubt that 'custom command' functionality is useful. But I
 don't think it should live in the app chooser dialog.

___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: Abuse of 'const' ?

2013-04-11 Thread Bernhard Schuster
const is left binding unless there is nothing to the left - then it binds
to the right.


2013/4/8 John Emmas john...@tiscali.co.uk

 On 08/04/2013 14:09, Ryan Lortie wrote:


 A 'const gchar **' is (in this case) an array of 'const gchar *' (ie:
 const string pointers).  It is the strings that are immutable.  The array
 itself is fully writable, and indeed you should free what
 g_variant_get_bytestring_**array() returns to you, using g_free().


 Good clarification Ryan.  Thanks!

 __**_
 gtk-devel-list mailing list
 gtk-devel-list@gnome.org
 https://mail.gnome.org/**mailman/listinfo/gtk-devel-**listhttps://mail.gnome.org/mailman/listinfo/gtk-devel-list

___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-devel-list


RE: GTK+3 win32/64 build environment

2013-04-11 Thread Fox, Kevin M
What the software does not technically disallow and what the software license 
allows are two different things.

IANAL, but the license appears to only allow it to run on a physical machine, 
not a virtual one.

Kevin

From: gtk-devel-list [gtk-devel-list-boun...@gnome.org] On Behalf Of 
tarn...@tarnyko.net [tarn...@tarnyko.net]
Sent: Wednesday, April 10, 2013 5:10 AM
To: gtk-devel-list@gnome.org
Subject: Re: GTK+3 win32/64 build environment

Colin,

 First, please note that we don't have to buy a Windows license. There is a
 *free* (as in free beer) edition of Windows named Hyper-V Server. It's
 stripped-down in terms of GUI, but works well for this purpose.

 Here is a link to licensing stuff :

 http://social.technet.microsoft.com/Forums/en-US/winserverhyperv/thread/db3f
 c7d7-1772-41fb-b878-4574b3c39703/

 Hmmm...but it looks to me like this edition is only designed for
 physical deployments, whereas I think we'd really want it virtualized
 (both for developers running Linux on their laptops who want to test,
 and inside the GNOME infrastructure).  Or does it run in a VM ok?


 At least for GNOME servers it'd likely be worth paying for an actually
 supported version of Windows so it gets security updates, even if it is
 completely firewalled off from the world.


It runs in a VM. You have to allocate 2 Gb of RAM to it during install time,
but can decrease that later.
It can get security updates automatically, or manually via pre-downloaded
packages, too.
But you won't be able to use some software on it (MSVC e.g.). So if it's
wanted, yes a mainstream version of Windows would be better in this case.e,

 MinGW under Linux is mostly installed via a package manager (yum install
 mingw32-gcc-c++ on Fedora e.g.). You don't get to choose which version of
 the compiler you install. Same thing for the dependencies (libtool, expat,
 perl, python...). These versions are likely to change regarding the distro
 your are using, and you cannot copy their files from one computer to another
 because binaries are compiled dynamically (= depend on this particular box'
 libc a.s.o).

 There are hybrid approaches here - the most realistic to me is to reuse
 a current distribution cross toolchain (e.g. we're not building
 mingw-gcc in GNOME), but if we need to update some other dependency, we
 could do so.

 I guess you're right though, the full SDK case does kind of explode
 due to the perl/python dependencies.


Yes, Python and Perl are the worst problems. Doing this right on the long
run with a cross-compile env would require some effort.

 A solution would be to have a standalone MinGW install for Linux. I've
 googled for one without success. If one doesn't exist, the ultimate solution
 whould be to create one by recompiling MinGW statically myself, that means
 recompiling the compiler : I don't know anything about that, it will take
 lots of time.

 That doesn't help us though even if it existed due to the Perl/Python
 deps among others.


Correct, didn't even realize that.

  - GTK+3 build process sometimes needs to run the binaries it has just
 generated.

 Now an important part - gobject-introspection as used by the bindings at
 the moment requires doing this.  But see:
 https://bugzilla.gnome.org/show_bug.cgi?id=592311


Ouch. Will see your link.

 For instance, it runs glib-compile-schemas on its XML files to create the
 schemas.compiled catalog. Without it, GTK+ programs won't run.

 The way this is solved for the e.g. GNU/Linux cross case is it's assumed
 you have glib-genmarshal on the host.  See:
 https://git.gnome.org/browse/glib/tree/configure.ac#n2630

 We can definitely do some of this for Windows, but we have to be careful
 about files that are architecture dependent.  For glib-compile-schemas
 in particular, variants are host endianness by default.

Didn't know about that, thanks, will take a look.

  - You won't be able to test and Q/A the binaries you just produced.

 That's where virtualization comes in.

 Wine cannot be used because it's not reliable with GTK+3 ; last time I tried
 under Debian, fonts were disproportional and pictures sometimes stripped.
 You have to run them on a native Windows OS.

 Wine admittedly is an insane monstrosity, but some of that is likely
 fixable.


 So at a high level...there's quite a bit to figure out.  The SDK problem
 is just hard =/



Yes, that's why the native build option is easier, works around this problem
and lots of others too.

PS : Don't forget that I'm alone doing this work now. I'm documenting
everything as time goes on, but choosing difficult options will make my work
more difficult too ;-).

Regards,
Tarnyko
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-devel-list
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org

RE: GTK+3 win32/64 build environment

2013-04-11 Thread Fox, Kevin M
I dug up the license for Microsoft Hyper-V Server. Here it is:
http://www.microsoft.com/en-us/download/details.aspx?id=497

See USE RIGHTS. section 'e' bullet 2. Does compiling gtk mesh with bullet 2? If 
so, your good to go. If not, you do not have a license to do what you are 
attempting. Looking at it, unless you are running at least one vm under it, and 
you are building the software for the purposes of managing and servicing the 
virtual machine (One might be able to make that argument), I'd guess not. IANAL

Thanks,
Kevin


From: gtk-devel-list [gtk-devel-list-boun...@gnome.org] On Behalf Of 
tarn...@tarnyko.net [tarn...@tarnyko.net]
Sent: Wednesday, April 10, 2013 3:50 AM
To: gtk-devel-list@gnome.org
Subject: Re: GTK+3 win32/64 build environment

OK folks.

As the initial contributor of the win32 buildenv, here are my reasons for
preferring a native build instead of cross-compiling from Linux. Sorry if it
is long, but I think explaining things will help.

First, please note that we don't have to buy a Windows license. There is a
*free* (as in free beer) edition of Windows named Hyper-V Server. It's
stripped-down in terms of GUI, but works well for this purpose.

Here is a link to licensing stuff :

http://social.technet.microsoft.com/Forums/en-US/winserverhyperv/thread/db3f
c7d7-1772-41fb-b878-4574b3c39703/

and a screenshot of it running gtk3-demo while buildenv is compiling GLib
:

http://www.tarnyko.net/repo/hyperv_gtk3.png

 

Short version : cross-compiling GTK+3 is a headaches generator. It's not
easy nor efficient, and hard to maintain.

Long version with individual points for techs :

 - MinGW/GCC for Windows is a standalone compiling environment : basically,
you just drop all files in a directory, and it will work, regardless of the
OS version you are using. That's because most of the base utils and
libraries are compiled statically.

MinGW under Linux is mostly installed via a package manager (yum install
mingw32-gcc-c++ on Fedora e.g.). You don't get to choose which version of
the compiler you install. Same thing for the dependencies (libtool, expat,
perl, python...). These versions are likely to change regarding the distro
your are using, and you cannot copy their files from one computer to another
because binaries are compiled dynamically (= depend on this particular box'
libc a.s.o).

That means you depend on a precise distro version.
Plus, my tests have proven that it matters while building. There are some
fixes for libtool and the compiler itself in the buildenv (see the 64-bit
one) ; if you use a different version, it will sometimes break the build.

A solution would be to have a standalone MinGW install for Linux. I've
googled for one without success. If one doesn't exist, the ultimate solution
whould be to create one by recompiling MinGW statically myself, that means
recompiling the compiler : I don't know anything about that, it will take
lots of time.

 - GTK+3 build process sometimes needs to run the binaries it has just
generated.
For instance, it runs glib-compile-schemas on its XML files to create the
schemas.compiled catalog. Without it, GTK+ programs won't run.

You cannot obviously run Win binaries under Linux -and using wine is not an
option here. The only way is to generate, at the same time, the Linux
version of the same binary ; that is to say, generate the stack *twice*. One
time you obtain glib-compile-schemas for Linux, put it safe somewhere,
then later during the Windows build you tell it to use
*this* particular binary at this particular point. Ugly patches. Or you let
the end-user do this, which is not user-friendly.

 - You won't be able to test and Q/A the binaries you just produced.
Wine cannot be used because it's not reliable with GTK+3 ; last time I tried
under Debian, fonts were disproportional and pictures sometimes stripped.
You have to run them on a native Windows OS.

I think I have covered the most important points ; opinions and arguments
are welcome. I'm sometimes available on IRC channel for discussions, too.

Regards,
Tarnyko
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-devel-list
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-devel-list


RE: GTK+3 win32/64 build environment

2013-04-11 Thread Fox, Kevin M
No worries. Just trying to keep everyone safe.

Thanks,
Kevin

From: gtk-devel-list [gtk-devel-list-boun...@gnome.org] On Behalf Of 
tarn...@tarnyko.net [tarn...@tarnyko.net]
Sent: Wednesday, April 10, 2013 10:03 AM
To: gtk-devel-list@gnome.org
Subject: Re: GTK+3 win32/64 build environment

Kevin,

Fox, Kevin M writes:

 I dug up the license for Microsoft Hyper-V Server. Here it is:
 http://www.microsoft.com/en-us/download/details.aspx?id=497

 See USE RIGHTS. section 'e' bullet 2. Does compiling gtk mesh with bullet 2? 
 If so, your good to go. If not, you do not have a license to do what you are 
 attempting. Looking at it, unless you are running at least one vm under it, 
 and you are building the software for the purposes of managing and servicing 
 the virtual machine (One might be able to make that argument), I'd guess not. 
 IANAL


You are making a point here. I didn't read this section carefully. IANAL
neither, but if there is a doubt, we should not use the software. Sorry for
having suggested that btw, shoud have been more precautionous.

Regards,
Tarnyko

 Thanks,
 Kevin

 
 From: gtk-devel-list [gtk-devel-list-boun...@gnome.org] On Behalf Of 
 tarn...@tarnyko.net [tarn...@tarnyko.net]
 Sent: Wednesday, April 10, 2013 3:50 AM
 To: gtk-devel-list@gnome.org
 Subject: Re: GTK+3 win32/64 build environment

 OK folks.

 As the initial contributor of the win32 buildenv, here are my reasons for
 preferring a native build instead of cross-compiling from Linux. Sorry if it
 is long, but I think explaining things will help.

 First, please note that we don't have to buy a Windows license. There is a
 *free* (as in free beer) edition of Windows named Hyper-V Server. It's
 stripped-down in terms of GUI, but works well for this purpose.

 Here is a link to licensing stuff :

 http://social.technet.microsoft.com/Forums/en-US/winserverhyperv/thread/db3f
 c7d7-1772-41fb-b878-4574b3c39703/

 and a screenshot of it running gtk3-demo while buildenv is compiling GLib
 :

 http://www.tarnyko.net/repo/hyperv_gtk3.png

  

 Short version : cross-compiling GTK+3 is a headaches generator. It's not
 easy nor efficient, and hard to maintain.

 Long version with individual points for techs :

  - MinGW/GCC for Windows is a standalone compiling environment : basically,
 you just drop all files in a directory, and it will work, regardless of the
 OS version you are using. That's because most of the base utils and
 libraries are compiled statically.

 MinGW under Linux is mostly installed via a package manager (yum install
 mingw32-gcc-c++ on Fedora e.g.). You don't get to choose which version of
 the compiler you install. Same thing for the dependencies (libtool, expat,
 perl, python...). These versions are likely to change regarding the distro
 your are using, and you cannot copy their files from one computer to another
 because binaries are compiled dynamically (= depend on this particular box'
 libc a.s.o).

 That means you depend on a precise distro version.
 Plus, my tests have proven that it matters while building. There are some
 fixes for libtool and the compiler itself in the buildenv (see the 64-bit
 one) ; if you use a different version, it will sometimes break the build.

 A solution would be to have a standalone MinGW install for Linux. I've
 googled for one without success. If one doesn't exist, the ultimate solution
 whould be to create one by recompiling MinGW statically myself, that means
 recompiling the compiler : I don't know anything about that, it will take
 lots of time.

  - GTK+3 build process sometimes needs to run the binaries it has just
 generated.
 For instance, it runs glib-compile-schemas on its XML files to create the
 schemas.compiled catalog. Without it, GTK+ programs won't run.

 You cannot obviously run Win binaries under Linux -and using wine is not an
 option here. The only way is to generate, at the same time, the Linux
 version of the same binary ; that is to say, generate the stack *twice*. One
 time you obtain glib-compile-schemas for Linux, put it safe somewhere,
 then later during the Windows build you tell it to use
 *this* particular binary at this particular point. Ugly patches. Or you let
 the end-user do this, which is not user-friendly.

  - You won't be able to test and Q/A the binaries you just produced.
 Wine cannot be used because it's not reliable with GTK+3 ; last time I tried
 under Debian, fonts were disproportional and pictures sometimes stripped.
 You have to run them on a native Windows OS.

 I think I have covered the most important points ; opinions and arguments
 are welcome. I'm sometimes available on IRC channel for discussions, too.

 Regards,
 Tarnyko
 ___
 gtk-devel-list mailing list
 gtk-devel-list@gnome.org
 https://mail.gnome.org/mailman/listinfo/gtk-devel-list
___

Re: GtkAppChooser custom command patch

2013-04-11 Thread Olav Vitters
On Mon, Apr 08, 2013 at 01:53:37PM +0200, tarn...@tarnyko.net wrote:
 I won't debate this again, points have already been widely made
 before (Bernhard does have some here). Personally, what I regret the
 most is having spent time writing a useless patch. It does imply
 something for my past and future-planned contributions, too.

It is good that you're trying to help, and I can understand you think a
custom command is helpful. But what you really need is a desktop file.
A desktop file ensures that things work correctly (correct mime types,
startup notification, etc). There are programs which already allow you
to create such desktop files, e.g. alacarte (though it had some issues).

Note that some time will always be wasted. E.g. Mattias probably looks
at various patches which have bugs in them. Pretty much wasted time
because he wouldn't have to spend time if people did exactly what he
visioned.
Or in other words: accepting patches because you spend time on the patch
is not how things are or should be done.

-- 
Regards,
Olav
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: GTK+3 win32/64 build environment

2013-04-11 Thread Olav Vitters
On Wed, Apr 10, 2013 at 11:05:07AM +0200, tarn...@tarnyko.net wrote:
 Marc-André Lureau writes:
 
 It would be better if you could check in your scripts in a repository, so
 one could more easily study and eventually contribute to your effort. All
 the binaries should be fetched or build from the source (and verified). It
 should be easy and safe to reproduce and modify the build, by anyone at
 anytime.
 
 Agreed. What's GNOME preferred repo system, Git ? Should I get a
 account on git.gnome.org ?

Suggest to do so. Follow https://live.gnome.org/NewAccounts. Note that
we want your real name.

As 'module voucher' select 'bugzilla.gnome.org' and I'll vouch for you.

Anyone on git.gnome.org can create repositories.

-- 
Regards,
Olav
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: GTK+3 win32/64 build environment

2013-04-11 Thread Simon McVittie
On 10/04/13 11:50, tarn...@tarnyko.net wrote:
 Plus, my tests have proven that it matters while building. There are
 some fixes for libtool and the compiler itself in the buildenv (see the
 64-bit one) ; if you use a different version, it will sometimes break
 the build.

If libtool as shipped by $DISTRO is broken, surely the solution to that
is to report bugs and get it fixed, preferably upstream, but failing
that, in your favourite distribution? Likewise for the (cross-)compiler.

 A solution would be to have a standalone MinGW install for Linux.

There are several MinGW installations, in several distributions; I'm
aware of at least Debian, OpenSUSE and Fedora having it. If the GNOME
project wants to cross-compile Windows binaries, the minimum requirement
is that building on *one* of those distributions works (OBS seems to be
a popular choice); people who want broader support than that are welcome
to improve their respective distributions' MinGW stacks, but that's some
way off the critical path :-)

While I'm sure it would be possible to put together a standalone MinGW
tree that expects to be installed in /opt/mingw (or whatever), lots of
distribution developers have already done the equivalent work for you.
Doing a mini-distribution for that seems somewhat redundant.

If users of one Linux distro need to do GNOME-for-Windows builds in a
chroot, virtual machine or container with a different distro, that
doesn't seem like the end of the world: best-practice in Debian/Ubuntu
is to do production package builds in a chroot anyway (via
pbuilder or sbuild).

Also, if something works on (say) OpenSUSE's stack but not Debian's,
then that's either a simple matter of the compiler is in a different
place (probably meaning that something is insufficiently automatic), or
a bug in Debian's stack (quite possibly of the form please upgrade to
gcc x.y.z). Neither seems insurmountable.

S
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: GTK+3 win32/64 build environment

2013-04-11 Thread Colin Walters
On Wed, 2013-04-10 at 14:44 +0200, Marc-André Lureau wrote:
 Hi

 Their build requirements is similar to yours or anyone:
 http://docs.gstreamer.com/display/GstSDK/Building+from+source+using
 +Cerbero. We are building the same set of packages after all. Building
 only gtk+ is really not enough in many cases. It's not going to fly if
 each project distribute its own set of binaries.

Reading the code, Cerebo looks pretty nice.  The only obviously lame
thing I saw so far is:

gstreamer-clutter.package:
...
sys_deps_devel = {
Distro.DEBIAN: ['libgl1-mesa-dev', 'libdrm-dev',
'libx11-dev', 'libxext-dev', 'libxfixes-dev',
'libxdamage-dev', 'libxcomposite-dev', 'libxi-dev'],
Distro.REDHAT: [
'libXrender-devel', 'libXv-devel',
'mesa-libGL-devel', 'libXcomposite-devel',
'libXi-devel']}

jhbuild's sysdeps implementation is a lot better because it avoids this
tedious duplicative package name hardcoding.

 Maintenance of a shared and proven project can be easier than a new
 standalone one. Many people who have experience with distro and
 windows build contributed to it. Also I think cerbero isn't that
 complicated, it looks quite elegant and powerful for what it does. 

So, as far as doing native Windows builds, it looks to me like since
Cerebo is actively used in the GStreamer world which is architecturally
close to GTK+/GNOME, it'd make a lot of sense to use it here.  

Tarnyko, have you looked at Cerebo at all?




___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: GTK+3 win32/64 build environment

2013-04-11 Thread Paul Davis
On Thu, Apr 11, 2013 at 8:47 AM, Colin Walters walt...@verbum.org wrote:

 So, as far as doing native Windows builds, it looks to me like since
 Cerebo is actively used in the GStreamer world which is architecturally
 close to GTK+/GNOME, it'd make a lot of sense to use it here.

 Tarnyko, have you looked at Cerebo at all?


as was discussed on IRC, i think we need to differentiate clearly between
the 3 different workflows that are involved here:

  (1) people building GTK+ Windows SDK's for official distribution or
personal use
  (2) people use the GTK+ Windows SDK to develop/build applications on
Windows
  (3) people attempting to package Windows applications that use GTK+

Cerebo looks useful for (1).

A zip file with good documentation looks good for (2)

Various Windows installers plus good documentation looks good for (3)

--p
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: GTK+3 win32/64 build environment

2013-04-11 Thread tarnyko
Arnel, 

Arnel A. Borja writes: 

I don't know that there's a free version of Windows :D. 



Now, regarding what Kevin digged out with the license, we know that it's not 
so free :-(. 

Short version : cross-compiling GTK+3 is a headaches generator. It's not 
easy nor efficient, and hard to maintain.


I agree, it is hard to maintain. Though I still prefer cross-compilation, 
since it's faster in compiling. I sometimes fell asleep while compiling in 
MinGW in native Windows. 



Agreed, it's a lot faster. Just harder ;-). 


Long version with individual points for techs :
- MinGW/GCC for Windows is a standalone compiling environment : 
basically, you just drop all files in a directory, and it will work, 
regardless of the OS version you are using. That's because most of the 
base utils and libraries are compiled statically.


Is it really compiled statically? I don't see any difference when I moved 
from native MinGW to OBS. Some packages are static, most are not. Or 
atleast the old GTK+ 2 builds in www.gtk.org have most of libraries 
compiled dynamically. 



I was mostly speaking about MinGW core binaries (the compiler, linker, etc). 
ldd shows that the compilers refers to the current libc on Debian for 
instance. Could work though, but needs some trial-and-error. 

MinGW under Linux is mostly installed via a package manager (yum install 
mingw32-gcc-c++ on Fedora e.g.). You don't get to choose which version 
of the compiler you install. Same thing for the dependencies (libtool, 
expat, perl, python...). These versions are likely to change regarding 
the distro your are using, and you cannot copy their files from one 
computer to another because binaries are compiled dynamically (= depend 
on this particular box' libc a.s.o).


Cross-compiled GTK+ and other libraries use msvcrt, so usually the 
difference in compiler versions is not a problem except for libstdc++. 



Don't get me into the libstdc++ thing, it will remind me of hard times :-D 
(I provide gtkmm packages for win32, was a pain to get right). 

I'm using Ubuntu, and use the builds for 32-bit and 64-bit Windows that 
are built using OpenSUSE 12.3. I mix my libraries and programs compiled 
using GCC 4.6.3 with the ones from OBS that use GCC 4.8.0. Seems to work 
fine (I've been using them for two years now, I think), except that you 
should make sure that you use the libstdc++ that comes with your compiler 
(though it is used by g++, not gcc, and there are no GTK+ dependency that 
use g++, I believe; I only got this problem last week when I started 
porting Anjuta since its C++ parser uses g++). 



Correct, C++ isn't used anywhere during the build process. 

The problem might be python though, the cross-compiled Python that OBS 
uses are quite old (2.6). I don't use python so I'm not sure how big the 
impact would be, but you could compile the base GTK+ stack without python. 



Because it doesn't work with newer Python (2.7 and ). I think GLib needs it 
; could be patched around, have to check. 


That means you depend on a precise distro version.


I recently moved from the builds for OpenSUSE 12.1 to 12.3 (and did that 
before many times before), upgraded my system many times too (since Ubuntu 
Oneiric I think), and been using it for about 2 years, so I don't think it 
is a problem. And I still use the packages I compiled myself before along 
with the newer set of libraries, seems like there are no problems. 

Plus, my tests have proven that it matters while building. There are some 
fixes for libtool and the compiler itself in the buildenv (see the 64-bit 
one) ; if you use a different version, it will sometimes break the build.
A solution would be to have a standalone MinGW install for Linux. I've 
googled for one without success. If one doesn't exist, the ultimate 
solution whould be to create one by recompiling MinGW statically myself, 
that means recompiling the compiler : I don't know anything about that, 
it will take lots of time.


Ubuntu, Fedora and OpenSUSE have the cross-compilers in their repos. OBS 
uses MinGW-w64 GCC 4.8 while I use MinGW-w64 GCC 4.6.3 in Ubuntu. I use 
their builds alongside each other. A year before I even combine MinGW-32 
and MinGW-w64 builds, though I thought that might be a bad idea, and 
Ubuntu has MinGW-w64 cross-compilers anyway. If you want to build 
MinGW-w64, you could check OBS which have the most recent GCC 
cross-compilers. 

- GTK+3 build process sometimes needs to run the binaries it has just 
generated.
For instance, it runs glib-compile-schemas on its XML files to create 
the schemas.compiled catalog. Without it, GTK+ programs won't run.
You cannot obviously run Win binaries under Linux -and using wine is not 
an option here. The only way is to generate, at the same time, the Linux 
version of the same binary ; that is to say, generate the stack *twice*. 
One time you obtain glib-compile-schemas for Linux, put it safe 
somewhere, then later during the Windows build you tell it to use

Re: Reg. modifying GTK+ to add menu option

2013-04-11 Thread Dieter Verfaillie

On 2013-04-10 19:52, Sindhu S wrote:

I want to add this to GTK+ because it will automatically benefit
every GNOME Application, and have consistency for the user.


Hi Sindhu,

Just some thoughts:

* It might be possible to do this as a GNOME Shell extension, where I
can imagine pressing some keyboard combination or whatever to activate
the query. Then, by using the accessibility framework a look-up
would not be limited to applications using GTK+ but you'd get support
for LibreOffice, Firefox, QT and anything else talking AT-SPI basically
for free.

As an example, attached is a standalone (very incomplete and not very
well tested) Python script using Atspi, Wnck and Gdk via 
gobject-introspection

(originally based on code from Accerciser) that retrieves the word
under the mouse pointer (if any) using AT-SPI.

To test the script:
- open a terminal,
- type get_text_under_pointer.py
- put the mouse pointer somewhere, for example point at a word in a
  GEdit or LibreOffice Writer document or web page in Firefox or 
Epiphany etc

- your terminal still having focus, hit enter

* Maybe a translate option in addition to look up in dictionary
might be useful for some people too?

mvg,
Dieter
#!/usr/bin/python3


import os

from gi.repository import Atspi, Gdk, Wnck


my_pid = str(os.getpid())


def is_my_app(acc):
'''
Based on isMyApp() from https://git.gnome.org/browse/accerciser/tree/src/lib/accerciser/tools.py
'''

if not acc:
return False
else:
pid = str(acc.get_application().get_process_id())

if pid == my_pid:
return True
else:
return False

def inspect_under_pointer():
'''
Based on _inspectUnderMouse() from https://git.gnome.org/browse/accerciser/tree/plugins/quick_select.py
'''

gdk_display = Gdk.Display.open(Gdk.get_display())
screen, x, y, flags = gdk_display.get_pointer()

wnck_screen = Wnck.Screen.get_default()
wnck_screen.force_update()
wnck_workspace = wnck_screen.get_active_workspace()
window_order = [w.get_name() for w in wnck_screen.get_windows_stacked()]

top_window = (None, -1)

desktop_acc = Atspi.get_desktop(0)
desktop_acc_child_count = desktop_acc.get_child_count()
for desktop_acc_child in range(0, desktop_acc_child_count):
app_acc = desktop_acc.get_child_at_index(desktop_acc_child)
if not app_acc or is_my_app(app_acc):
continue
else:
app_acc_child_count = app_acc.get_child_count()
for app_acc_child in range(0, app_acc_child_count):
frame_acc = app_acc.get_child_at_index(app_acc_child)
if not frame_acc:
continue
else:
child_acc = get_component_at_coords(frame_acc, x, y)
if child_acc:
try:
z_order = window_order.index(frame_acc.get_name())
except ValueError:
pass
else:
if z_order  top_window[1]:
top_window = (child_acc, z_order)

if top_window[0]:
  return top_window[0], x, y

def get_component_at_coords(parent, x, y):
'''
Based on _getComponentAtCoords() from https://git.gnome.org/browse/accerciser/tree/plugins/quick_select.py
'''

container = parent
inner_container = None

while True:
container_role = container.get_role()
if container_role == Atspi.Role.PAGE_TAB_LIST:
try:
si = container.get_selection()
container = si.get_selected_child(0)
except NotImplementedError:
pass

try:
ci = container.get_component()
except:
break
else:
inner_container = container

acc_at_point = ci.get_accessible_at_point(x, y, Atspi.CoordType.SCREEN)
if acc_at_point is not None:
container = acc_at_point
else:
break

if not container or container.get_component() == ci:
# The gecko bridge simply has getAccessibleAtPoint return itself
# if there are no further children
break

if inner_container == parent:
return None
else:

return inner_container

def get_text_under_pointer():
acc, x, y = inspect_under_pointer()
if acc:
text = acc.get_text()
if text:
offset = text.get_offset_at_point(x, y, Atspi.CoordType.SCREEN)
text_range = text.get_text_at_offset(offset, Atspi.TextBoundaryType.WORD_START)
text_value = Atspi.Text.get_text(text, text_range.start_offset, text_range.end_offset)
return text_value

return None

if __name__ == '__main__':
text = get_text_under_pointer()
if text:
print(text.strip())
else:
print('No text found :(')

Re: GTK+3 win32/64 build environment

2013-04-11 Thread tarnyko
Thanks folks. 

Now, regarding what was said previoulsy in this thread, I will try to list 
pros and cons of, respectively, native build and cross-compilation. Points 
listed in the end of each list have less importance or accuracy than the 
first ones. Then a decision regarding the choice might be made. 


Native build

+ easier (works around most problems in configure scripts and Makefiles)
+ independant from OS/distro
- harder integration with GNOME infrastructure
- slower
- might need a commercial license of Windows 


Cross-compilation
-
+ better integration with GNOME infrastructure
+ faster
- needs patches in most configure scripts
- needs to use standalone versions of Perl/Python OR patch Makefiles to be 
compatible with most common versions of Perl/Python (possible ? needs study)
- needs to build stack twice (Linux native versions of some tools needed). 
So the speed gain might be countered (needs study)
- might not be independant from OS/distro (need to choose a particular 
distro/package manager and stick to it ?) 

Regardless of what will be decided, I think that I need a Git account to 
push the current build scripts to the GNOME infrastructure. Will apply for 
it now. 


Regards,
Tarnyko
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: GTK+3 win32/64 build environment

2013-04-11 Thread Erik van Pienbroek
tarn...@tarnyko.net schreef op do 11-04-2013 om 15:12 [+0200]:
 Native build
  
 + easier (works around most problems in configure scripts and Makefiles)

I'd have to disagree here. In order to build gtk on a windows host then
you basically need to arrange these things yourself first:
- Install msys (which contains sh.exe which is needed to
  run the configure script)
- Install the mingw.org or mingw-w64 compiler
- Manually build (or download precompiled files for) all gtk+
  dependencies (like gettext, libiconv, pixman, cairo, libjpeg, ...)

When you use the cross-compiled packages which various distros are
providing then all these steps are already arranged for you. For example
on Fedora it's sufficient to run 'yum-builddep mingw32-gtk3' and all
dependencies which are needed to allow building of gtk3 will be
installed automatically (including the compiler).

Once all dependencies are installed it's sufficient to run
'mingw32-configure  make' from your source tree and there you go.

For Fedora we've created an instruction which describes how commonly
used cross-compiling tasks can be performed:
https://fedoraproject.org/wiki/MinGW/Tutorial

Regards,

Erik van Pienbroek
Fedora MinGW SIG



___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: GTK+3 win32/64 build environment

2013-04-11 Thread Daniel Sabo
Hacking on GTK-Win32 is very annoying if you have to cross compile  copy
every time you make a change. It would be nice if the build system that
comes out of this thread would be useful for more than just making the
stock GTK packages.

Another flaw with cross compiling is I don't believe there's any way to
link to a newer msvcrt.dll. The official windows version of python links
against msvcr90 and mixing versions leads to a lot of subtle problems.


On Thu, Apr 11, 2013 at 8:44 AM, Erik van Pienbroek e...@vanpienbroek.nlwrote:

 tarn...@tarnyko.net schreef op do 11-04-2013 om 15:12 [+0200]:
  Native build
   
  + easier (works around most problems in configure scripts and Makefiles)

 I'd have to disagree here. In order to build gtk on a windows host then
 you basically need to arrange these things yourself first:
 - Install msys (which contains sh.exe which is needed to
   run the configure script)
 - Install the mingw.org or mingw-w64 compiler
 - Manually build (or download precompiled files for) all gtk+
   dependencies (like gettext, libiconv, pixman, cairo, libjpeg, ...)

 When you use the cross-compiled packages which various distros are
 providing then all these steps are already arranged for you. For example
 on Fedora it's sufficient to run 'yum-builddep mingw32-gtk3' and all
 dependencies which are needed to allow building of gtk3 will be
 installed automatically (including the compiler).

 Once all dependencies are installed it's sufficient to run
 'mingw32-configure  make' from your source tree and there you go.

 For Fedora we've created an instruction which describes how commonly
 used cross-compiling tasks can be performed:
 https://fedoraproject.org/wiki/MinGW/Tutorial

 Regards,

 Erik van Pienbroek
 Fedora MinGW SIG



 ___
 gtk-devel-list mailing list
 gtk-devel-list@gnome.org
 https://mail.gnome.org/mailman/listinfo/gtk-devel-list

___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-devel-list


Windows 32/64bit downloads and/or bundles for 2.x and 3.x

2013-04-11 Thread Martyn Russell

Hello all,

I was approached by Berke Viktor today and asked to include the site:

  http://gtk.hexchat.org

On the GTK+ Win32/Win64 pages on gtk.org.

I thought I would bring it up here for discussion.
This is for v2.x only at this point.

I've CCed Berke because he is not on the mailing list and sadly isn't 
interested in joining, so don't forget to reply-all ;)


Berke insists he is interested in continuing maintenance of this site 
though.


--

Just to be clear, I have no problem adding this to gtk.org, but my goal 
here is not to confuse end user/developers who want a win32/win64 build 
with multiple different hosted downloads. It doesn't look like _we_ the 
community are doing it if we do that and it's not a clear consistent 
well formed message either IMO.


I am also aware of the bundles work that Tarnyko has been doing and am 
interested to know how that relates here. At this stage the fact that 
work is for GTK+ 3.x is the only main difference I can see from my quick 
look.


In an ideal world, the goal would be to merge ALL works from Tarnyko, 
Berke and what we already have on the site into something that's well 
documented and clear to people wanting to use GTK+ 2.x and 3.x on 
Windows 32 and 64 bit.


I am especially interested in hearing from Tarnyko on this since he has 
been pushing the win32 bundles for GTK+ 3.x lately. Including in this 
bug, which I'm in the process of working on with him:


  https://bugzilla.gnome.org/show_bug.cgi?id=695600

Thoughts?

--
Regards,
Martyn

Founder and CEO of Lanedo GmbH.
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: GTK+3 win32/64 build environment

2013-04-11 Thread Emmanuele Bassi
hi;

On 11 April 2013 17:32, Daniel Sabo daniels...@gmail.com wrote:
 Hacking on GTK-Win32 is very annoying if you have to cross compile  copy
 every time you make a change. It would be nice if the build system that
 comes out of this thread would be useful for more than just making the stock
 GTK packages.

that's the optimal way to kill this thing in the crib.

let's start with something that has fairly well specified constraints
and targets and deliverables, and let's leave the future unicorns and
rainbows to another time.

ciao,
 Emmanuele.

--
W: http://www.emmanuelebassi.name
B: http://blogs.gnome.org/ebassi/
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: Composite GtkBuilder template

2013-04-11 Thread Federico Mena Quintero
On Thu, 2013-04-11 at 13:36 +0900, Tristan Van Berkom wrote:

First, let me apologize for the rather harsh tone in my message
yesterday.  I had a big WTF moment when I saw how the composite
templates patches played badly with my branch.  Your message made things
look easier to fix than I expected.

 So, this is how I propose we handle the situation:
 
   o First, you rebase your branch in such a way
 that the filechooserdefault is reverted as
 the first commit in your branch.

I'll do something like this.  First, revert the commit.  Then, merge my
branch.  Doing a straight rebase is not trivial, as places-sidebar has
gotten master merged into it a few times to keep up with general
development.  And finally, apply your commit again with lots of changes.

   o Second, I know you wont like this part but
 I need you to put the instance members on
 a private structure.
 
 We do not support automatically assigning
 component pointers to public structure offsets.
 
 And frankly, using a public structure defined
 openly in gtkfilechooserprivate.h is an open
 invitation for other components to access
 the components of GtkFileChooserDefault directly
 (which I think we both feel is unintended).

I totally agree with this for *public* widgets, those that go into the
public API.

But for GtkFileChooserDefault, I have two objections:

1. It's a private, internal widget, never meant to be exported.

2. I'd really really really like to keep the file chooser's code as
similar as possible between gtk2 and gtk3.  Otherwise, cherry-picking
fixes becomes much harder.

I do appreciate having the private stuff in the .c file.  And I
definitely don't like the current state (well, before your patches)
where the GtkFileChooserDefault struct is not in
gtkfilechooserdefault.h, but in a gtkfilechooserprivate.h file.  I don't
remember why it ended up there; probably so that the unit tests would be
able to poke at internal widgets.  *That* is not the right thing to do,
anyway, so I'm happy to see the struct move elsewhere.  But the
objections still stand.

I haven't even seen how the code for composite templates pokes at
structs... but why does it have to care whether the struct is private or
public?  Could we have:

gtkfilechooserdefault.h:

  /* no struct definitions at all */
  typedef struct GtkFileChooserDefault *GtkFileChooserDefault;
  typedef struct GtkFileChooserDefaultClass *GtkFileChooserDefaultClass;

gtkfilechooserdefault.c:

  /* complete structure definitions */
  struct GtkFileChooserDefault {
 GtkBox parent;
 blah blah;
  }

?

   o If you have made any changes to the UI, i.e.
 changes like spacing settings, expand/align
 settings of any widgets in the filechooser,
 any newly added widgets, anything that actually
 changes the UI components, I would like you
 to list those changes to me so I can make
 the changes while splitting up gtkfilechooserdefault.ui
 into 2 .ui files.

Sorry, you lost me - what would those two files be for?

(GtkPlacesSidebar is a self-contained thing which is mostly a
GtkTreeView...)

  Federico

___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: Windows 32/64bit downloads and/or bundles for 2.x and 3.x

2013-04-11 Thread Arnavion
Hello,

I am a fellow Hexchat dev with bviktor, and I thought I'd just provide a
few clarifications:-

1. The instructions to build GTK+ on gtk.hexchat.org are for building using
Visual Studio 2012, as opposed to Tarnkyo's work that uses MinGW. We use VS
to build our entire stack (GTK and its deps, openssl, and Hexchat itself).

2. We have indeed found several problems getting these to build with VS. To
that end, we have a bunch of patches scoured from the GTK bug tracker and
other places, as well as a few we've written ourselves. These patches can
be seen on https://github.com/hexchat/gtk-win32

3. Our goal was to make it easy for the user to build the stack using our
instructions, for which we also provide a build script on the same
repository. (hexchat-build.ps1)

Thanks,
Arnav


On Thu, Apr 11, 2013 at 10:17 AM, Martyn Russell mar...@lanedo.com wrote:

 Hello all,

 I was approached by Berke Viktor today and asked to include the site:

   http://gtk.hexchat.org

 On the GTK+ Win32/Win64 pages on gtk.org.

 I thought I would bring it up here for discussion.
 This is for v2.x only at this point.

 I've CCed Berke because he is not on the mailing list and sadly isn't
 interested in joining, so don't forget to reply-all ;)

 Berke insists he is interested in continuing maintenance of this site
 though.

 --

 Just to be clear, I have no problem adding this to gtk.org, but my goal
 here is not to confuse end user/developers who want a win32/win64 build
 with multiple different hosted downloads. It doesn't look like _we_ the
 community are doing it if we do that and it's not a clear consistent well
 formed message either IMO.

 I am also aware of the bundles work that Tarnyko has been doing and am
 interested to know how that relates here. At this stage the fact that work
 is for GTK+ 3.x is the only main difference I can see from my quick look.

 In an ideal world, the goal would be to merge ALL works from Tarnyko,
 Berke and what we already have on the site into something that's well
 documented and clear to people wanting to use GTK+ 2.x and 3.x on Windows
 32 and 64 bit.

 I am especially interested in hearing from Tarnyko on this since he has
 been pushing the win32 bundles for GTK+ 3.x lately. Including in this bug,
 which I'm in the process of working on with him:

   
 https://bugzilla.gnome.org/**show_bug.cgi?id=695600https://bugzilla.gnome.org/show_bug.cgi?id=695600

 Thoughts?

 --
 Regards,
 Martyn

 Founder and CEO of Lanedo GmbH.
 __**_
 gtk-devel-list mailing list
 gtk-devel-list@gnome.org
 https://mail.gnome.org/**mailman/listinfo/gtk-devel-**listhttps://mail.gnome.org/mailman/listinfo/gtk-devel-list

___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: GTK+3 win32/64 build environment

2013-04-11 Thread Arnel A. Borja

Hello,

On Thursday, 11 April, 2013 08:52 PM, tarn...@tarnyko.net wrote:
Short version : cross-compiling GTK+3 is a headaches generator. It's 
not easy nor efficient, and hard to maintain.


I agree, it is hard to maintain. Though I still prefer 
cross-compilation, since it's faster in compiling. I sometimes fell 
asleep while compiling in MinGW in native Windows.


Agreed, it's a lot faster. Just harder ;-).
Usually the harder part is only in the GTK+ package, which includes some 
tools that it also uses during compilation. In the other packages, 
especially libraries, it-just-works, since Autoconf will do the stuff 
for you and most packages don't need porting anyway since they use GLib 
(and the developers of GLib and GTK+ are always working to ensure that 
cross-compilation and native compilation with Visual Studio works, so 
you don't need to worry much about it). In my my computer, I only run 
./install glib-2.36.0 then I will get GLib after some minutes.


For me, native compilation with MinGW is a lot harder than 
cross-compilation apart from the speed, since your distribution will 
provide most of the stuff you need (cross-compiler, libtool, autoconf, 
intltool, ...), they are up-to-date (OBS have the latest cross-compilers 
- GCC 4.8.0, while MinGW has 4.7.2; distros usually have the latest 
autotools, intltool, etc.). In MinGW in Windows, we have to look for 
things ourselves (intltool is in the GNOME FTP site, compilers in MinGW, 
etc.). Also, MinGW in Windows uses its own (older) versions of make, 
which sometimes have problems with sh and other stuff - I always get the 
headache when some packages will compile for infinity, trying to rebuild 
itself until the world ends :D (or you kill them using the task manager).


The hard part in maintaining is usually checking if the packages are in 
their latest versions. And sometimes some releases of packages have bugs 
in Windows (for example, I have some problems with pixman-0.28.2, though 
I don't think the latest version is required anyway)



Long version with individual points for techs :
- MinGW/GCC for Windows is a standalone compiling environment : 
basically, you just drop all files in a directory, and it will work, 
regardless of the OS version you are using. That's because most of 
the base utils and libraries are compiled statically.


Is it really compiled statically? I don't see any difference when I 
moved from native MinGW to OBS. Some packages are static, most are 
not. Or atleast the old GTK+ 2 builds in www.gtk.org have most of 
libraries compiled dynamically.


I was mostly speaking about MinGW core binaries (the compiler, linker, 
etc). ldd shows that the compilers refers to the current libc on 
Debian for instance. Could work though, but needs some trial-and-error.
You don't need to worry about them anyway, since Ubuntu, Fedora and 
OpenSUSE will provide them for you (other distros also have them). Let 
the distros themselves worry about their own tools.


The problem might be python though, the cross-compiled Python that 
OBS uses are quite old (2.6). I don't use python so I'm not sure how 
big the impact would be, but you could compile the base GTK+ stack 
without python.


Because it doesn't work with newer Python (2.7 and ). I think GLib 
needs it ; could be patched around, have to check.
I could cross-compile GLib with Python 2.6 without any patches. I don't 
think GLib requires it, though if you are planning to cross-compile 
gobject-introspection, you will need (though as far as I know, it only 
requires Python 2.5).



That means you depend on a precise distro version.


I recently moved from the builds for OpenSUSE 12.1 to 12.3 (and did 
that before many times before), upgraded my system many times too 
(since Ubuntu Oneiric I think), and been using it for about 2 years, 
so I don't think it is a problem. And I still use the packages I 
compiled myself before along with the newer set of libraries, seems 
like there are no problems.
Plus, my tests have proven that it matters while building. There are 
some fixes for libtool and the compiler itself in the buildenv (see 
the 64-bit one) ; if you use a different version, it will sometimes 
break the build.
A solution would be to have a standalone MinGW install for Linux. 
I've googled for one without success. If one doesn't exist, the 
ultimate solution whould be to create one by recompiling MinGW 
statically myself, that means recompiling the compiler : I don't 
know anything about that, it will take lots of time.


Ubuntu, Fedora and OpenSUSE have the cross-compilers in their repos. 
OBS uses MinGW-w64 GCC 4.8 while I use MinGW-w64 GCC 4.6.3 in Ubuntu. 
I use their builds alongside each other. A year before I even combine 
MinGW-32 and MinGW-w64 builds, though I thought that might be a bad 
idea, and Ubuntu has MinGW-w64 cross-compilers anyway. If you want to 
build MinGW-w64, you could check OBS which have the most recent GCC 
cross-compilers.
- GTK+3 build process