Redistribution of GTK DLLs

2014-03-04 Thread Chris Angelico
I have a Pike GTK app that works on Windows and Linux (and
theoretically other platforms but I haven't tested it). The Windows
version of Pike distributes GTK DLLs for 2.12.11, which has some flaws
compared to 2.24.10 which I use elsewhere. So it would be convenient
for my users if I could have a simple command inside my app that goes
and fetches eighteen files (including Pango, Cairo, etc) and deploys
them to the correct location.

And therein is a licensing problem. GTK is licensed LGPL, but my app
is under the freer MIT license. So the question is: Am I making a
derivative/combined work by making an installer that fetches GTK DLLs?

I don't want to have to mess with the licensing of my project (putting
some of it under the (L)GPL) for the sake of a convenience feature,
but on the flip side, there's no point listing lengthy instructions
saying go download this, extract this, put this this this and this in
here, then restart the program if I can say enter this one-word
command.

What's the rule on distributing DLLs with non-GPL software? The GPL
FAQ has a lot, but not really what I'm after.

Thanks!

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


Re: Redistribution of GTK DLLs

2014-03-04 Thread Daniel Kasak
Standard disclaimer: I am not a lawyer.

If you're in doubt, I think the best way to do this is to distribute things
separately. Just make an installer / updater for the GTK libs ( that would
be handy, by the way ... oh and if you build some Windows themes, *please*
distribute these too ). Then in your MIT licensed app, say You'll need GTK
libs ... and an installer / updater exists at location blah.

This would surely not break any licenses, as they're separate projects.

Dan


On Wed, Mar 5, 2014 at 7:16 AM, Chris Angelico ros...@gmail.com wrote:

 I have a Pike GTK app that works on Windows and Linux (and
 theoretically other platforms but I haven't tested it). The Windows
 version of Pike distributes GTK DLLs for 2.12.11, which has some flaws
 compared to 2.24.10 which I use elsewhere. So it would be convenient
 for my users if I could have a simple command inside my app that goes
 and fetches eighteen files (including Pango, Cairo, etc) and deploys
 them to the correct location.

 And therein is a licensing problem. GTK is licensed LGPL, but my app
 is under the freer MIT license. So the question is: Am I making a
 derivative/combined work by making an installer that fetches GTK DLLs?

 I don't want to have to mess with the licensing of my project (putting
 some of it under the (L)GPL) for the sake of a convenience feature,
 but on the flip side, there's no point listing lengthy instructions
 saying go download this, extract this, put this this this and this in
 here, then restart the program if I can say enter this one-word
 command.

 What's the rule on distributing DLLs with non-GPL software? The GPL
 FAQ has a lot, but not really what I'm after.

 Thanks!

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

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


Re: Redistribution of GTK DLLs

2014-03-04 Thread Chris Angelico
On Wed, Mar 5, 2014 at 12:27 PM, Daniel Kasak d.j.kasak...@gmail.com wrote:
 If you're in doubt, I think the best way to do this is to distribute things
 separately. Just make an installer / updater for the GTK libs ( that would
 be handy, by the way ... oh and if you build some Windows themes, *please*
 distribute these too ). Then in your MIT licensed app, say You'll need GTK
 libs ... and an installer / updater exists at location blah.

So, effectively, I make a separately-downloadable thing that I'd
license more restrictively than the rest of my app. Hmm. Seems an odd
way to do things.

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


GTK signals question.

2014-03-04 Thread Chris Moller

Okay, I'm out of ideas...

I'm writing an app, that among a lot of other stuff, has three mutually 
interacting spinbuttuns, i.e., if I increment spinbutton A, its callback 
then updates values in B and C.  B and then would try to update A, and 
C, etc., resulting in a bottomless recursion.  So, what I need to do is, 
while I'm in A's callback, block the B and C callbacks; while in in B, 
block A and C and so on.


Every combination of g_signal_handler_block(), 
g_signal_handlers_block_matched(), etc, I've tried just results in seg 
faults--all that stuff works fine outside the callbacks, but the moment 
I stick them in a callback, death happens.


Any suggestions?

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


Re: Redistribution of GTK DLLs

2014-03-04 Thread Tristan Van Berkom
On Wed, 2014-03-05 at 17:13 +1100, Chris Angelico wrote:
 On Wed, Mar 5, 2014 at 12:27 PM, Daniel Kasak d.j.kasak...@gmail.com wrote:
  If you're in doubt, I think the best way to do this is to distribute things
  separately. Just make an installer / updater for the GTK libs ( that would
  be handy, by the way ... oh and if you build some Windows themes, *please*
  distribute these too ). Then in your MIT licensed app, say You'll need GTK
  libs ... and an installer / updater exists at location blah.
 
 So, effectively, I make a separately-downloadable thing that I'd
 license more restrictively than the rest of my app. Hmm. Seems an odd
 way to do things.

Personally I wouldnt like to do it this way either, on win32 I would
rather not trust DLL sharing - and rather just pack everything into
the same bundle and run it, avoiding any possible binary
incompatibilities which might otherwise creep in.

I don't believe that your MIT licensing problem is any different than
a proprietary license for your app, at least with regards to the
usage of LGPL libraries.

I.e. using LGPL libraries does not infect the calling code which
links these libraries in with the GPL contagion - what is required
is that if you do distribute these libraries in compiled form, you
must also make available those LGPL sources which were used to build
those said libraries.

Since these particular LGPL sources are already made available by
other parties (i.e. GTK+  friends by GNOME etc) - I believe
that you do not need to host these files directly - but must somehow
at least link to these sources when distributing your app, possibly
in your application release notes, on your website if any, and
ideally in some text which reaches those people you distribute software
to (I.e. perhaps in a GtkAboutDialog somewhere it would be prudent to
mention that the application is built with LGPL libraries which are
available at some specific location).

I am not a lawyer either, but this is my understanding of the issue.

Cheers,
-Tristan


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


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


Re: GTK signals question.

2014-03-04 Thread Tristan Van Berkom
On Wed, 2014-03-05 at 18:01 +1100, Chris Angelico wrote:
 On Wed, Mar 5, 2014 at 5:43 PM, Chris Moller mol...@mollerware.com wrote:
  I'm writing an app, that among a lot of other stuff, has three mutually
  interacting spinbuttuns, i.e., if I increment spinbutton A, its callback
  then updates values in B and C.  B and then would try to update A, and C,
  etc., resulting in a bottomless recursion.  So, what I need to do is, while
  I'm in A's callback, block the B and C callbacks; while in in B, block A and
  C and so on.
 
 Are you simply setting the three to the same value? If so, just check
 first to see if it's already that value, and if it is, don't set it.
 That's a technique that's worked for me since my earliest GUI
 programming days on VX-REXX... great system, that, pity it's bound to
 the obscure and forgotten platform of OS/2! :)

In case this is of any help, the GtkAdjustment::value-changed signal
does this check for this exact reason (to avoid some unneeded feedback
when the value has not actually changed).

Cheers,
-Tristan

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


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


Re: GTK signals question.

2014-03-04 Thread Chris Angelico
On Wed, Mar 5, 2014 at 6:20 PM, Chris Moller mol...@mollerware.com wrote:
 No, they're not the same value.  They're all for setting an angle, in
 radians, pi-radians, and degrees, and I want the user to be able to set the
 angle in any unit and have the equivalent angle in the other units show up
 in the other spinbuttons.

Ah, okay. Same consideration does apply, though - if you query first
and then set, you avoid spurious signal delivery much more
conveniently than fiddling with signal blocking.

In the specific case cited, Tristan's solution is likely what you
want, but for generalities, the query-before-set model is always
there as a fall-back.

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


Re: GTK signals question.

2014-03-04 Thread Tristan Van Berkom
On Wed, 2014-03-05 at 02:20 -0500, Chris Moller wrote:
 On 03/05/14 02:01, Chris Angelico wrote:
  On Wed, Mar 5, 2014 at 5:43 PM, Chris Moller mol...@mollerware.com wrote:
  I'm writing an app, that among a lot of other stuff, has three mutually
  interacting spinbuttuns, i.e., if I increment spinbutton A, its callback
  then updates values in B and C.  B and then would try to update A, and C,
  etc., resulting in a bottomless recursion.  So, what I need to do is, while
  I'm in A's callback, block the B and C callbacks; while in in B, block A 
  and
  C and so on.
  Are you simply setting the three to the same value? If so, just check
  first to see if it's already that value, and if it is, don't set it.
  That's a technique that's worked for me since my earliest GUI
  programming days on VX-REXX... great system, that, pity it's bound to
  the obscure and forgotten platform of OS/2! :)
 
 No, they're not the same value.  They're all for setting an angle, in 
 radians, pi-radians, and degrees, and I want the user to be able to set 
 the angle in any unit and have the equivalent angle in the other units 
 show up in the other spinbuttons.

Interesting, if I were you I would try to share the same adjustment
between all of your views.

I.e. I would keep the adjustment in the finest grained unit of each
unit you want to display, and have your spin buttons format the value
differently depending on what they are used for (or perhaps use GtkScale
if that makes sense in your UI).

The idea of multiple GtkAdjustments holding separate values when you
really only want a single value that is displayed differently by
different widgets - is a bit maddening.

Note that this might prove challenging with the way GtkAdjustment is
designed, I was just speculating that this approach of multiple
adjustments is not ideal... ideally these views should share the
same value.

Cheers,
-Tristan


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


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


Re: GTK signals question.

2014-03-04 Thread Chris Angelico
On Wed, Mar 5, 2014 at 6:29 PM, Tristan Van Berkom
tris...@upstairslabs.com wrote:
 Interesting, if I were you I would try to share the same adjustment
 between all of your views.

 I.e. I would keep the adjustment in the finest grained unit of each
 unit you want to display, and have your spin buttons format the value
 differently depending on what they are used for (or perhaps use GtkScale
 if that makes sense in your UI).

Now *that* is an elegant solution, if it can be done!

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