Re: the 2.18 endgame

2009-07-13 Thread Kristian Rietveld
Hi,

On Fri, Jul 10, 2009 at 4:45 PM, Matthias
Clasenmatthias.cla...@gmail.com wrote:
 Unfortunately, I haven't heard anything about GTK+-related events at
 Guadec yet, so my proposal may not quite be in line with what was
 discussed there. Please let me know if thats the case...

I will be getting back about the GTK+-related events on the mailing
list soonish.

 GTK+ 2.90:
  - Outstanding GSEAL issues have not been resolved. bratsche spent
 some time on it,  but gave up for lack of feedback

As was already mentioned in this thread, GIMP almost compiles under
GSEAL.  Mitch claims GIMP uses a lot of GTK+ API and thus is a pretty
good test case.  From this I think we can deduce that the work is
close to being done.  There are some API issues left to figure out
such as the get-by-ref and get-by-value as Cody mentioned, class
private data (there is a patch for this already) and widget flags (for
which Mitch seems to have a patch already).  Part of the getting
back I mentioned above will be evaluating exactly what is still left
to be done according to the original plans.

 Here is my proposal:
 - Consider the current GLib api final (modulo minor tweaks)
 - Push gdbus, gvariant, extended geometry management to the next cycle
 - Focus on fixing CSW regressions and making CSW work on win32, doing
 weekly releases from now on. Alex will be on vacation for a while,
 unfortunately.
 - If client-side decorations are ready in the next week or two, we may
 merge that
 - Do weekly devel snapshots from now on, to track CSW regression fixes
 - Do the final 2.18 release when CSW regressions are under control,
 but no later than Gnome 2.28, obviously (which gives us a hard
 deadline of September 21)

If I am allowed to comment on this, this seems very reasonable to me.


regards,

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


Re: GTK on Macintosh OSX

2009-07-13 Thread Tor Lillqvist
 I believe Tor is the only win32 contributor;

Not true, there are several other people who contribute, too. Cody
Russell (bratsche), Hans Breuer, and Dominic Lachowicz are ones that
immediately come to mind. Myself, I work much less on it than I would
like to. (Oh well, to be frank, I am just fooling myself; if I
*really* was highly motivated, I would find the time...) My visibility
is perhaps higher because I build the official win32 and win64
binaries (but then, traditionally there is or has been non-official
binaries in perhaps more widespread use), and I often take part in
Windows-related threads on the mailing lists.

Just like apparently in the Mac OSX port, there are areas in the Win32
port that are well known to be broken and nobody has had the
inspiration to fix properly. Some issues are truly hard to solve and
perhaps not that important after all (we have managed so far), others
just require inspiration and some intensive hacking.

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


test locations

2009-07-13 Thread Benjamin Otte
Hi,

This is about 5694ab7642c9ba6fbb85424e71d1c42c17661dd1 and the
location of tests.
When hacking on gio, I had complained that make always decided to
rebuild the tests in gio/tests while I was hacking on the library.
That has quite a few inconveniences:
- It results in increased output while building and in turn me not
noticing compiler warnings or even error messages (when running make
-j)
- It results in increased build time, because it not only rebuilds the
one file I changed, but all tests, too.
So after getting an ok from Alex, I moved the files into tests/gio/,
and got what I wanted.

Apparently this was not the desired result, as Matthias moved them
back. I tried to read up in the git log about why, but didn't find
anything conclusive. So I'm wondering:
- Should tests be located in $LIB/tests or tests/$LIB and why?
- Is there a reason for tests being in both $LIB/tests and tests/$LIB?
- Why are the tests built during make and not only for make check?
Which are all really just subquestions in helping solve the most
important question for me:
- How can I solve the two problems listed above?

I assume that long-term, these problems will only be getting worse as
more tests are added.

Cheers,
Benjamin
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: client-side-windows merged

2009-07-13 Thread Frederic Peters
Matthias Clasen wrote:

 Yes, the api breakage was discovered soon after the merge and is
 fixed in 2.17.4

Perfect; I didn't notice I was still tracking the csw branch; sorry
for the noise.


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


Re: GTK on Macintosh OSX

2009-07-13 Thread Christian Dywan
Am Sun, 12 Jul 2009 19:47:21 -0700
schrieb John Ralls jra...@ceridwen.us:

 
 On Jul 12, 2009, at 6:18 PM, Dominic Lachowicz wrote:
 
  Glib on Win32 has routines to solve this problem. It resolves things
  relative to where the Glib DLL is installed. If your applications
  use the XDG data directory functions in Glib, you might get away
  with this too. Maybe you could invent something similar that used
  the OSX bundle as your point of reference.
 
 
 
 The routines only solve the problem if they're used.
 
 Don't need to invent anything. The core foundation functions are
 easy to use, and Richard Hult already abstracted it into a gobject.
 But the code still has to be patched. It's not just application code,
 either, but infrastructure libraries like gconf, gnome-keyring, dbus,
 etc.
 
 I set up a $PREFIX of /usr/local/gtk, built Gnucash, and ran `find / 
 usr/local/gtk -name *.dylib -exec strings \{\} | grep -H 'local/gtk'  
 \; ` and got more than 100 hits. Many of them are likely to be just
 a define that isn't used for anything, but every one would have to
 be examined, and a goodly number of them would require patching.

It's common enough to scan $PREFIX *and* runtime discovered paths
because the application may be installed in a non-standard place that
is not included in eg. XDG_DATADIRS, so that's not a mistake and will
yield lots of false positives.

Just my 2 cents,
Christian
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: gtk-doc for non-library.

2009-07-13 Thread Bastien Nocera
On Mon, 2009-07-13 at 01:28 +0200, Ali Abdallah wrote:
 Hi,
 
 I want to document C code written let's say in files obj.c obj.h contain 
 GObject, signals, properties, in order to doc these gtk-doc needs the 
 _get_type function to produce GObject doc, but this code is not a 
 library and i don't want to have .la  library in the project just to doc 
 the code.

gtk-doc only works with libraries. Make sure your library is
noinst_LTLIBRARIES instead of lib_LTLIBRARIES and it won't install any
gunk on the filesystem.

Cheers

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


Re: GTK on Macintosh OSX

2009-07-13 Thread Dominic Lachowicz
It sounds like you want magic to happen. Either you have to use some
sort of script to re-normalize the paths, or you can use glib's
functions to look up data files relative to the bundle itself, without
needing to write (much) OSX-specific ObjC code. It's not inventing
anything. It's just implementing these APIs in terms of how the
operating system's packaging conventions behave.

Best,
Dom

On Sun, Jul 12, 2009 at 10:47 PM, John Rallsjra...@ceridwen.us wrote:

 On Jul 12, 2009, at 6:18 PM, Dominic Lachowicz wrote:

 Glib on Win32 has routines to solve this problem. It resolves things
 relative to where the Glib DLL is installed. If your applications use
 the XDG data directory functions in Glib, you might get away with this
 too. Maybe you could invent something similar that used the OSX bundle
 as your point of reference.



 The routines only solve the problem if they're used.

 Don't need to invent anything. The core foundation functions are easy to
 use, and Richard Hult already abstracted it into a gobject. But the code
 still has to be patched. It's not just application code, either, but
 infrastructure libraries like gconf, gnome-keyring, dbus, etc.

 I set up a $PREFIX of /usr/local/gtk, built Gnucash, and ran `find
 /usr/local/gtk -name *.dylib -exec strings \{\} | grep -H 'local/gtk' \; `
 and got more than 100 hits. Many of them are likely to be just a define that
 isn't used for anything, but every one would have to be examined, and a
 goodly number of them would require patching.

 Regards,
 John Ralls
 ___
 gtk-devel-list mailing list
 gtk-devel-list@gnome.org
 http://mail.gnome.org/mailman/listinfo/gtk-devel-list




-- 
I like to pay taxes. With them, I buy civilization. --  Oliver Wendell Holmes
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: gtk-doc for non-library.

2009-07-13 Thread Ali Abdallah

Bastien Nocera wrote:

On Mon, 2009-07-13 at 01:28 +0200, Ali Abdallah wrote:
  

Hi,

I want to document C code written let's say in files obj.c obj.h contain 
GObject, signals, properties, in order to doc these gtk-doc needs the 
_get_type function to produce GObject doc, but this code is not a 
library and i don't want to have .la  library in the project just to doc 
the code.



gtk-doc only works with libraries. Make sure your library is
noinst_LTLIBRARIES instead of lib_LTLIBRARIES and it won't install any
gunk on the filesystem.
  
Yes i know, but i was wondering if there is a way to just document the 
source code with correct hierarchy properties signals, ... .



Cheers

  

Cheers.


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


Re: GTK on Macintosh OSX

2009-07-13 Thread Owen Taylor
On Sun, 2009-07-12 at 19:47 -0700, John Ralls wrote:
 On Jul 12, 2009, at 6:18 PM, Dominic Lachowicz wrote:
 
  Glib on Win32 has routines to solve this problem. It resolves things
  relative to where the Glib DLL is installed. If your applications use
  the XDG data directory functions in Glib, you might get away with this
  too. Maybe you could invent something similar that used the OSX bundle
  as your point of reference.
 
 
 
 The routines only solve the problem if they're used.
 
 Don't need to invent anything. The core foundation functions are easy  
 to use, and Richard Hult already abstracted it into a gobject. But the  
 code still has to be patched. It's not just application code, either,  
 but infrastructure libraries like gconf, gnome-keyring, dbus, etc.
 
 I set up a $PREFIX of /usr/local/gtk, built Gnucash, and ran `find / 
 usr/local/gtk -name *.dylib -exec strings \{\} | grep -H 'local/gtk'  
 \; ` and got more than 100 hits. Many of them are likely to be just a  
 define that isn't used for anything, but every one would have to be  
 examined, and a goodly number of them would require patching.

Well, it's hard to say how many places Gnucash hard codes paths, but the
number of places in the GTK+ stack is nowhere close to 100.

http://git.fishsoup.net/cgit/reinteract/tree/src/reinteract_wrapper_osx/main.m

Sets only 7 environment variables before initializing GTK+ to get
everything found properly within the bundle.

I did need:

 http://bugzilla.gnome.org/show_bug.cgi?id=554524

Hmm, Behdad gave me the commit approval on that; didn't see that.

Dom's suggestion of unifying with the Win32 functionality for locating
paths relative to the executable makes a lot of abstract sense though I
haven't looked into the practical details of how it works out.

- Owen


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


Re: GTK on Macintosh OSX

2009-07-13 Thread Owen Taylor
On Sun, 2009-07-12 at 07:29 -0400, Paul Davis wrote:

 Regarding the general question of non-X11 backends being 2nd-class
 citizens ... yes, I have seen and suffered from this problem when I
 was doing work on gtk/osx last year and the previous year. It would be
 nice if we could somehow get the core GTK team to commit to not making
 changes that are not tested on non-X11 backends, but this seems
 unlikely and the reasons are not totally unreasonable.

There is no fixed core GTK+ team.

The way we've always determined who gets listed in the GTK+ release
announcements as the team is simply to look at who has done lots of
work and taken ownership of components.

[ It looks like the team list in some of the recent release
announcements has gotten a bit stale; the 2.16 list includes me among
some other people not doing much work at the moment. ]

If someone wants to make sure that the OS/X port is released working out
of the box for 2.18, they have to be building from git, fixing problems
that come up, going through patches in bugzilla, etc.

And then that person will be on the team and the team can make the
commitment you want.

In the past, when I've made changes that require per-backend changes,
I've generally tried to stub out the necessary parts of the other
backends if stubs make any sense. E.g.,

  http://bugzilla.gnome.org/show_bug.cgi?id=587247

Adds a backend function that is called after processing updates;
backends that don't need to do anything there don't need to do anything
so stubbing out was very reasonable. But other changes do require actual
work, and requiring every person submitting a patch to GDK to:

 A) Have a OS/X machine and a windows machine
 B) Know enough about OS/X and windows programming to make changes

Doesn't seem reasonable. (As you say.) Requiring people making changes
to GDK to provide the docs and test cases so that the people maintaining
the backends can easily add the missing functionality is, on the other
hand, quite reasonable.

- Owen


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


Re: test locations

2009-07-13 Thread Matthias Clasen
On Mon, Jul 13, 2009 at 5:32 AM, Benjamin Otteo...@gnome.org wrote:

 Apparently this was not the desired result, as Matthias moved them
 back. I tried to read up in the git log about why, but didn't find
 anything conclusive. So I'm wondering:
 - Should tests be located in $LIB/tests or tests/$LIB and why?
 - Is there a reason for tests being in both $LIB/tests and tests/$LIB?

tests/ is the old location that was used for scattered tests, before
we had the unified test framework we have now. tests were moved from
tests/ to $LIB/tests as there were integrated in the test framework.

Having the tests in $LIB/tests makes sense to me for a number of reasons:
a) Moves the tests closer to the code
b) cd $LIB; make check actually tests the library with all available tests

 - Why are the tests built during make and not only for make check?

That is certainly something that can be fixed. I'd welcome a patch to so.


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


Re: test locations

2009-07-13 Thread Martin Nordholts

On 07/13/2009 03:47 PM, Matthias Clasen wrote:

- Why are the tests built during make and not only for make check?
 


That is certainly something that can be fixed. I'd welcome a patch to so.
   


Always building the tests ensures that they are kept up do date with 
changes in the rest of the code base. If they are not built along with 
the rest of the code base then they will eventually become out of sync 
and someone has to fix them later, possibly months after the change that 
introduced the compilation errors were made.


 / Martin

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


Re: GTK on Macintosh OSX

2009-07-13 Thread John Ralls


On Jul 13, 2009, at 3:39 AM, Christian Dywan wrote:


Am Sun, 12 Jul 2009 19:47:21 -0700
schrieb John Ralls jra...@ceridwen.us:



On Jul 12, 2009, at 6:18 PM, Dominic Lachowicz wrote:


Glib on Win32 has routines to solve this problem. It resolves things
relative to where the Glib DLL is installed. If your applications
use the XDG data directory functions in Glib, you might get away
with this too. Maybe you could invent something similar that used
the OSX bundle as your point of reference.




The routines only solve the problem if they're used.

Don't need to invent anything. The core foundation functions are
easy to use, and Richard Hult already abstracted it into a gobject.
But the code still has to be patched. It's not just application code,
either, but infrastructure libraries like gconf, gnome-keyring, dbus,
etc.

I set up a $PREFIX of /usr/local/gtk, built Gnucash, and ran `find /
usr/local/gtk -name *.dylib -exec strings \{\} | grep -H 'local/gtk'
\; ` and got more than 100 hits. Many of them are likely to be just
a define that isn't used for anything, but every one would have to
be examined, and a goodly number of them would require patching.


It's common enough to scan $PREFIX *and* runtime discovered paths
because the application may be installed in a non-standard place that
is not included in eg. XDG_DATADIRS, so that's not a mistake and will
yield lots of false positives.



A valid point, and covered in my weasel-words.

XDG is a good line of attack that I hadn't really thought about, thanks.

Regards,
John Ralls
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: test locations

2009-07-13 Thread Benjamin Otte
On Mon, Jul 13, 2009 at 3:55 PM, Martin Nordholtsense...@gmail.com wrote:
 Always building the tests ensures that they are kept up do date with changes
 in the rest of the code base. If they are not built along with the rest of
 the code base then they will eventually become out of sync and someone has
 to fix them later, possibly months after the change that introduced the
 compilation errors were made.

That argument has essentially no value at all to me, for lots of reasons.

First of all, compiling all tests while I'm experimenting on the code
and nowhere near a checkin is just annoying.

Next, just compiling the tests and not actually running them is almost
useless, as it only finds API breakage. You need to actually run the
tests to find the bugs. And in the context of glib there's a
multiplied effect, as API breakage is found almost immediately.

Then, I expect someone to run make check before doing checkins anyway.
And if people forget it, there should be a build farm that catches it
and complains loudly (either on IRC or on mailing lists), flagging the
commit that broke.

And finally, it's trivial to figure out which checkin broke a test
with git bisect run.


Note that I'm not opposed to having a useful test suite in glib and
gtk - in fact, I'd welcome it. But it's important that the test suite
not just aids in finding bugs but also has a very limited impact on
hackers, so they don't outright reject it.
The current setup seems to not be very good at that, as the number of
tests does not seem to grow and people seem to never run it (yes, that
includes me). I'd even say they are annoyed by it (see this mail
thread), but that might just be me.
If you wanted to improve the testsuite situation, you should have a
look at other projects that successfully make heavy use of testsuites
and copy what they do. Examples of such projects I've contributed to
are Mozilla, Webkit or Cairo. (If a jibe is allowed: None of them
build the testsuite on make, as it would at least double build times.)

I've attached a patch that seems to work for me.

Cheers,
Benjamin


diff
Description: Binary data
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: test locations

2009-07-13 Thread Sven Herzberg
Benjamin,

Am Montag, den 13.07.2009, 16:52 +0200 schrieb Benjamin Otte:
 On Mon, Jul 13, 2009 at 3:55 PM, Martin Nordholtsense...@gmail.com wrote:
  Always building the tests ensures that they are kept up do date with changes
  in the rest of the code base. If they are not built along with the rest of
  the code base then they will eventually become out of sync and someone has
  to fix them later, possibly months after the change that introduced the
  compilation errors were made.
 
 That argument has essentially no value at all to me, for lots of reasons.

And your complaints have essentially no value to me. As make all-am is
already what you are looking for (and given that it already exists,
Martin's points seem to be really convincing).

What's the problem in just keeping to use make all-am for your
compile-warning-testing and before you commit, execute make all and be
happy (unless you changes the behavior, then you want to run make
check as well).

Regards,
  Sven

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


Re: test locations

2009-07-13 Thread Benjamin Otte
On Mon, Jul 13, 2009 at 5:02 PM, Sven Herzberghe...@gnome-de.org wrote:
 Benjamin,

 What's the problem in just keeping to use make all-am for your
 compile-warning-testing and before you commit, execute make all and be
 happy (unless you changes the behavior, then you want to run make
 check as well).

Huh?
Currently, while hacking, you want make all-am. Before committing,
you need make check.
When building from tarballs, you want a recursive make all-am.

Wouldn't it make sense to make the default make all useful in at
least one case?

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


Re: GTK on Macintosh OSX

2009-07-13 Thread Kevin Fox
On Mon, 2009-07-13 at 05:47 -0700, Owen Taylor wrote:
 On Sun, 2009-07-12 at 19:47 -0700, John Ralls wrote:
  On Jul 12, 2009, at 6:18 PM, Dominic Lachowicz wrote:
 
   Glib on Win32 has routines to solve this problem. It resolves
 things
   relative to where the Glib DLL is installed. If your applications
 use
   the XDG data directory functions in Glib, you might get away with
 this
   too. Maybe you could invent something similar that used the OSX
 bundle
   as your point of reference.
  
 
 
  The routines only solve the problem if they're used.
 
  Don't need to invent anything. The core foundation functions are
 easy 
  to use, and Richard Hult already abstracted it into a gobject. But
 the 
  code still has to be patched. It's not just application code,
 either, 
  but infrastructure libraries like gconf, gnome-keyring, dbus, etc.
 
  I set up a $PREFIX of /usr/local/gtk, built Gnucash, and ran `find /
  usr/local/gtk -name *.dylib -exec strings \{\} | grep -H
 'local/gtk' 
  \; ` and got more than 100 hits. Many of them are likely to be just
 a 
  define that isn't used for anything, but every one would have to be 
  examined, and a goodly number of them would require patching.
 
 Well, it's hard to say how many places Gnucash hard codes paths, but
 the
 number of places in the GTK+ stack is nowhere close to 100.
 
 http://git.fishsoup.net/cgit/reinteract/tree/src/reinteract_wrapper_osx/main.m
 
 Sets only 7 environment variables before initializing GTK+ to get
 everything found properly within the bundle.
 
 I did need:
 
  http://bugzilla.gnome.org/show_bug.cgi?id=554524
 
 Hmm, Behdad gave me the commit approval on that; didn't see that.
 
 Dom's suggestion of unifying with the Win32 functionality for locating
 paths relative to the executable makes a lot of abstract sense though
 I
 haven't looked into the practical details of how it works out.

Is this something that can be done at the glib level? (If not already
done). It would be useful to non gui apps too.

Kevin
 
 - Owen
 
 
 ___
 gtk-devel-list mailing list
 gtk-devel-list@gnome.org
 http://mail.gnome.org/mailman/listinfo/gtk-devel-list
 
 

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


Re: GTK on Macintosh OSX

2009-07-13 Thread John Ralls


On Jul 13, 2009, at 4:47 AM, Dominic Lachowicz wrote:


It sounds like you want magic to happen. Either you have to use some
sort of script to re-normalize the paths, or you can use glib's
functions to look up data files relative to the bundle itself, without
needing to write (much) OSX-specific ObjC code. It's not inventing
anything. It's just implementing these APIs in terms of how the
operating system's packaging conventions behave.

Best,
Dom

On Sun, Jul 12, 2009 at 10:47 PM, John Rallsjra...@ceridwen.us  
wrote:


On Jul 12, 2009, at 6:18 PM, Dominic Lachowicz wrote:


Glib on Win32 has routines to solve this problem. It resolves things
relative to where the Glib DLL is installed. If your applications  
use
the XDG data directory functions in Glib, you might get away with  
this
too. Maybe you could invent something similar that used the OSX  
bundle

as your point of reference.




The routines only solve the problem if they're used.

Don't need to invent anything. The core foundation functions are  
easy to
use, and Richard Hult already abstracted it into a gobject. But the  
code

still has to be patched. It's not just application code, either, but
infrastructure libraries like gconf, gnome-keyring, dbus, etc.

I set up a $PREFIX of /usr/local/gtk, built Gnucash, and ran `find
/usr/local/gtk -name *.dylib -exec strings \{\} | grep -H 'local/ 
gtk' \; `
and got more than 100 hits. Many of them are likely to be just a  
define that
isn't used for anything, but every one would have to be examined,  
and a

goodly number of them would require patching.

Regards,
John Ralls


Um, I think that's what I said, except for the part about magic.

The problem isn't in the code I'm working on (Gnucash), it's in many  
of the various libraries that Gnucash depends upon. While GTK+/Pango/ 
Cairo are included in that list, they're by no means all, or perhaps  
even any, of the problem. I brought it up here as a side issue to my  
main concern, and even added that I wasn't sure it's the right place.


Now I'm pretty sure that it isn't.

Regards,
John Ralls


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


Re: GTK on Macintosh OSX

2009-07-13 Thread John Ralls


On Jul 13, 2009, at 5:47 AM, Owen Taylor wrote:


On Sun, 2009-07-12 at 19:47 -0700, John Ralls wrote:

On Jul 12, 2009, at 6:18 PM, Dominic Lachowicz wrote:


Glib on Win32 has routines to solve this problem. It resolves things
relative to where the Glib DLL is installed. If your applications  
use
the XDG data directory functions in Glib, you might get away with  
this
too. Maybe you could invent something similar that used the OSX  
bundle

as your point of reference.




The routines only solve the problem if they're used.

Don't need to invent anything. The core foundation functions are easy
to use, and Richard Hult already abstracted it into a gobject. But  
the

code still has to be patched. It's not just application code, either,
but infrastructure libraries like gconf, gnome-keyring, dbus, etc.

I set up a $PREFIX of /usr/local/gtk, built Gnucash, and ran `find /
usr/local/gtk -name *.dylib -exec strings \{\} | grep -H 'local/gtk'
\; ` and got more than 100 hits. Many of them are likely to be just a
define that isn't used for anything, but every one would have to be
examined, and a goodly number of them would require patching.


Well, it's hard to say how many places Gnucash hard codes paths, but  
the

number of places in the GTK+ stack is nowhere close to 100.

http://git.fishsoup.net/cgit/reinteract/tree/src/reinteract_wrapper_osx/main.m

Sets only 7 environment variables before initializing GTK+ to get
everything found properly within the bundle.

I did need:

http://bugzilla.gnome.org/show_bug.cgi?id=554524

Hmm, Behdad gave me the commit approval on that; didn't see that.

Dom's suggestion of unifying with the Win32 functionality for locating
paths relative to the executable makes a lot of abstract sense  
though I

haven't looked into the practical details of how it works out.

- Owen




It is indeed hard to say. Gnucash includes binreloc code (an old copy  
and paste, not up to date) which I have patched to look in a bundle if  
one is available. This seems to have resolved the problem for the  
Gnucash part.


I know that GTK, Cairo, and Pango are not all of the problem; I even  
said so in my OP:
 I realize that this is a bigger problem than just GTK, but it needs  
to be addressed if GTK is to be a cross-platform framework  
competitive with Qt and WxWidgets. Perhaps if there is a better  
forum to discuss it someone here will point me at it.


The 100+ hits covered all of Gnucash's dependencies, and Gnucash is  
rather notorious for having a lot of dependencies. Most of them are  
likely to be harmless, but they all have to be checked.


Your solution in ticket 554524 is workable, if a bit inelegant. Have  
you committed it?


Regards,
John Ralls


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


Re: GTK on Macintosh OSX

2009-07-13 Thread John Ralls


On Jul 13, 2009, at 6:04 AM, Owen Taylor wrote:


On Sun, 2009-07-12 at 07:29 -0400, Paul Davis wrote:


Regarding the general question of non-X11 backends being 2nd-class
citizens ... yes, I have seen and suffered from this problem when I
was doing work on gtk/osx last year and the previous year. It would  
be
nice if we could somehow get the core GTK team to commit to not  
making

changes that are not tested on non-X11 backends, but this seems
unlikely and the reasons are not totally unreasonable.


There is no fixed core GTK+ team.

The way we've always determined who gets listed in the GTK+ release
announcements as the team is simply to look at who has done lots of
work and taken ownership of components.

[ It looks like the team list in some of the recent release
announcements has gotten a bit stale; the 2.16 list includes me among
some other people not doing much work at the moment. ]

If someone wants to make sure that the OS/X port is released working  
out
of the box for 2.18, they have to be building from git, fixing  
problems

that come up, going through patches in bugzilla, etc.

And then that person will be on the team and the team can make the
commitment you want.

In the past, when I've made changes that require per-backend changes,
I've generally tried to stub out the necessary parts of the other
backends if stubs make any sense. E.g.,

 http://bugzilla.gnome.org/show_bug.cgi?id=587247

Adds a backend function that is called after processing updates;
backends that don't need to do anything there don't need to do  
anything
so stubbing out was very reasonable. But other changes do require  
actual

work, and requiring every person submitting a patch to GDK to:

A) Have a OS/X machine and a windows machine
B) Know enough about OS/X and windows programming to make changes

Doesn't seem reasonable. (As you say.) Requiring people making changes
to GDK to provide the docs and test cases so that the people  
maintaining

the backends can easily add the missing functionality is, on the other
hand, quite reasonable.

- Owen



http://www.gtk.org/development.html certainly gives the impression  
that there exists a core and a team, though not necessarily a core team.


Perhaps I should rephrase my question a bit more harshly:
Is http://www.gtk.org/download-macos.html still true? Is there someone  
with commit authority who is working hard to finish gtk's quartz  
backend? Working on tickets? Applying patches?
Or should gtk-osx.sourceforge.net (and maybe live.gnome.org/gtk+)  
include a warning that GTK mostly works on OSX for the moment, but  
can't be recommended for new development because it has no active  
maintainer?


No, I'm not volunteering.

Regards
John Ralls

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


Re: GTK on Macintosh OSX

2009-07-13 Thread Allin Cottrell
On Sun, 12 Jul 2009, John Ralls wrote:

 On Jul 12, 2009, at 4:29 AM, Paul Davis wrote:

  We bundle Ardour for OS X and chose the include GTK framework in the
  .app. Ardour is fully relocatable - I believe I was responsible for
  the description of how to do this that Richard wrote up. Its basically
  a matter of using an apple-provided tool to both locate and reset the
  paths to every library the app depends on. I have a nice little shell
  script that recursively finds every dynamically linked object that the
  app uses, copies it into the app structure and then resets the
  link-time dependency so that its relative to the app bundle.

 Yes, the nice little shell script is part of ige-mac-bundler, a
 python program which populates a bundle and which is now in my care.

 But the problem isn't with rpaths. The problem is with path strings
 compiled into the library.

Those can be adjusted via environment variables and by using
relative paths in some of the config files.  See

http://ricardo.ecn.wfu.edu/pub/gretl/osxbuild/build.pdf

Allin Cottrell


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


Re: GTK on Macintosh OSX

2009-07-13 Thread John Ralls


On Jul 13, 2009, at 6:55 PM, Allin Cottrell wrote:


On Sun, 12 Jul 2009, John Ralls wrote:


But the problem isn't with rpaths. The problem is with path strings
compiled into the library.


Those can be adjusted via environment variables and by using
relative paths in some of the config files.  See

http://ricardo.ecn.wfu.edu/pub/gretl/osxbuild/build.pdf


Allin,

Sometimes. Perhaps always in GTK, Cairo, and Pango. Not in dbus or  
GConf. (Dbus at least uses XDG. GConf doesn't.)
Haven't yet looked at gnome-vfs or gnome-keychain. But none of those  
are GTK+ problems, so let's just drop it.


Regards,
John Ralls

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