Re: compiler warnings, -Werror, etc.

2012-07-28 Thread Benjamin Otte
12345678901234567890123456789012345678901234567890123456789012345678901234567890

Colin Walters walters at verbum.org writes:

 First, compiler warnings range widely in how important they are.  Some
 of them, like -Wmissing-prototypes, are pretty much always indicative of
 a serious problem in your code.  Others like -Wmaybe-uninitialzed are
 actually *heuristics* - the GCC manual clearly states that GCC may in
 fact be wrong, and that one even has maybe in the name.
 
I think the general consensus is that code that triggers these warnings is bad
code. The job of source code is not just to ensure that the compiler generates
correct output, but also to ensure that somebody who modifies that source code
later will still make the compiler generate correct output.

Second, I don't think you are the right person to determine which warnings are
or are not important. Apparently the GCC developers think otherwise and I
frankly trust them more than I trust you. (And the maybe in the name is because
the variabe is maybe uninitialized, not because gcc thinks it has maybe found
an uninitialized variable - in contrast to -Wuninitialized.)

 So I think what Dan has is more the Right Thing - make the compiler
 warnings that you should *never* hit into explicit errors.  That
 establishes a minimum baseline.  Maintainers should feel free to make
 some other things into errors as they wish (-Werror=unused-but-set), but
 please don't use -Werror=deprecated-declarations or
 -Werror=mabe-uninitialized.
 
I work in a module where people do not want to use -Werror. This leads to
regular commits with warnings and nobody fixes them but me. So I assume that 
in projects where I am not a member these warnings often go unfixed for a long
time. So what essentially happens is that we move QA from compile-time to
run-time. We ignore the warnings about brokenness that the compiler gives us 
for free and instead let users find those bugs the hard way. Isn't that a bad 
way to do development?
Sure, for a packager who just wants to compile stuff and whose work doesn't
involve makig sure things are bugfree it's a nuisance that we make him fix it.
But wouldn't we rather have them get it fixed than users who just lost their 
data?

 what actually ends up happening
 is your code only compiles on a *particular version* of gcc.  That just
 doesn't work in a distributed project like GNOME, where various bits get
 reused by different projects and products on different schedules etc.

I think what we should do is restrict the list of supported compilers - in
particular for git checkouts, but I'd argue we should require gcc = 4.4 for
GNOME compilation. We do the same thing with all the other stuff we depend on
(autoconf, make, libraries, you name it) so why are we so nice on the 
compiler front?

Benjamin

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


Re: compiler warnings, -Werror, etc.

2012-07-28 Thread Benjamin Otte
On Sat, Jul 28, 2012 at 4:45 PM, Dan Winship d...@gnome.org wrote:
 By that logic, you should never pass any extra -W options beyond -Wall
 either, since those warnings apparently aren't important.

http://en.wikipedia.org/wiki/Material_implication_%28rule_of_inference%29
is not invertible like that. :p

 Don't we have build bots somewhere? They could check this stuff... lots
 of other projects do that. (Having a build-warning-detecting bot would
 also help for the case where the warning only shows up with -O2, but the
 developer compiles with -O0 for ease of debugging...)

We're GNOME, we don't do QA. ;)
This is actually the core of the problem. If we had a buildbot like
for example WebKit, we'd have try bots that would compile with -Werror
and would flag the commit before it's committed. Just like they would
run make check and flock you for that.
But instead, we're very laissez-faire. So much in fact, that we don't
care about bugs that other people introduce when we're busy doing
something else...

 The problem isn't old gcc releases, it's either older or newer gcc
 releases. If you want everyone to get the same warnings, you need to
 require that everyone use a specific version of gcc, and compile with
 the same optimization level.

For random git checkouts, I would definitely favor doing that.

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


Re: 3.6 Feature: IBus/XKB integration

2012-05-12 Thread Benjamin Otte
Marguerite Su i at marguerite.su writes:

 what if after one or two years, a brand-new IM comes.
 
 then you guys will remove all ibus codes and start what you do today again?
 
 and after another one or two years, again again.
 
 then it becomes you guys' life-time career to fix bugs and reinvent the 
 wheels.
 

Yes, that is exactly what I do.
In fact, I enjoy it a lot to port to a new and better solution and making sure
that solution works really well [1] than trying to be compatible with lots of
different options.

If one chooses a single target, one has a lot of advantages:
- Tight integration is possible.
- One can rely on certain behaviors of that target
- New features can be used immediately
- We have a single point of contact for discussions about the future

Of course, this also requires a lot of things working well between that single
target and GNOME:
- A target that is working well for all use cases
- A willingness from both sides to cooperate
- A working relationship between the involved people

You can find a lot of examples where this works very well [2] and of course I
can also come up with some where it didn't work and we needed to change things
and start over. [3]

So what I think we as the GNOME project want to see happen is that we find a
team that is excited to work with us on improving input methods in GNOME
applications. [4] If that project is called IBus, fcitx, XIM or is something
that is redone from scratch, I don't know. I also don't know if the project of
choice will be ready as-is or will need significant improvements. I also don't
consider myself the person to decide it.

But I am very convinced about two things:
We want a single solution.
And we want you to be happy with it.

Benjamin


1: If you want references, look at the GTK Cairo work I did. And that is now
superseded by Clutter. You can also look at the transition from X11 to Wayland
for an example of that. I'm pretty sure we will make a rather seamless
transition at one point there and not try to support both.
2: Tight coupling of GNOME with X11, NetworkManager, WebKit or Pulseaudio
improved things a lot. At least that's my opinion.
3: The big example of a failed relationship is with Mozilla. It failed once
already (the Epiphany guys with GtkMozEmbed - they started over with WebKit) and
the Javascript situation (gjs is based on Mozilla's SpiderMonkey) isn't very
nice either. Another example that never worked out is spell-checking. Enchant
was never really integrated into GTK and that is why you can't spell-check
normal text entries...
4: As a GTK maintainer, I'm not happy about IM modules as they generally contain
very ugly and often just look plain bad when they try to pop up their own little
X windows in all the wrong places. I'd also be very happy if I could show more
useful information than an underlined pre-edit string.

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


Re: Rotting patches [was: Re: Reviewed-By: and pastebins]

2012-05-04 Thread Benjamin Otte
Andre Klapper ak-47 at gmx.net writes:

 Offtopic, but the obvious first step would be to improve the rate of
 reviewed patches in general.
 
 While peer reviews are great, **in some projects** teams miss manpower
 already to have reviews at all, without any peer.
 (And if you are a first-time contributor and you never receive feedback
 on your first patch you give up and won't know where to escalate. That's
 where GNOME's contributor base remains small.)
 
I think Bugzilla is a terrible tool if you lack manpower, in particular if the
manpower for a project is shrinking relative to the amount of bugs. I don't
think Bugzilla was ever designed for the you take over a project, here's 1000
bugs as a head start, it'll increase by 50 every week case.
Bugzilla works very well as long as you keep it in check, but once it grows too
much and the necessary triage doesn't happen, you lose without a real chance to
ever get it under control again. It's a bit like a zombie outbreak in that 
regard.

Another thing is that Bugzilla is essentially a large TO-DO list. Those lists
require a certain kind of mindset that is a given for every developer. I think a
large part can work well with it, but there are some that just can't [2]. I am
one of those people.[4]
Because I don't keep a TODO list though, I'm not usually in the need to get
anything done.[2] So you can just poke me on IRC and I there's a high chance
I'll review patches if I know things about the code you're looking at. I might
even fix a bug that you have, just because I know how.

 * gtk+: 637 unreviewed patches; 480 of them older than 12 months

I'm these days the main developer of GTK with Matthias together. GTK has  2500
open bugs[1]. So it has passed the zombie outbreak state by now.
So I don't look at bugzilla at all. I want to get things done. This means 2 
things:
(1) If you file a bug for something I broke, I'm not gonna know - unless
Matthias (who's the only one triaging those 2500 bugs sometimes) throws it at 
me.
(2) I'm not gonna care about bugzilla statistics, target milestones, bug
severity or anything else people do in there.

I have no idea how to improve that situation. The only possible solution I can
even come up with is getting more developers to work on GTK - first learning the
internals of the toolkit and then working on the bugs.
But I have no idea where those people would come from.
 
Benjamin


1: https://bugzilla.gnome.org/page.cgi?id=weekly-bug-summary.html
2:
http://slobotski.wordpress.com/the-pmarca-guide-to-personal-productivity/
3: http://www.paulgraham.com/makersschedule.html

4: A very sincere Thank You for that goes to both Red Hat and GNOME for
adjusting themselves to work with me this way. It's not easy to work with
someone who's so different than you are.[see also 3] This totally should not be
a postscript, but it'd really confuse what I wanted to say above. Again, thanks.

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


Re: Feature Proposal: Accessibility on by default

2012-04-24 Thread Benjamin Otte
Colin Walters walters at verbum.org writes:

 I'm not talking about the implementation details of the toggling
 of the switch, but rather the fallout on the rest of the stack.
 
So, here's a simple technical overview of how the a11y stack works for a GTK app
(Clutter is similar). Imagine this as layers.

1) GTK 3
   compile-time links against (*)
2) ATK
   may run-time load a plugin that is named
3) atk-bridge
   compile-time links against
4) libatspi
   talks over dbus with
5) libatspi
   compile-time links against
6) Orca

You can easily see that there is a very brittle link between step 2 and 3.
Toggling the switch to always-on would just mean we always load the plugin.
The big advantage in that approach is twofold:
A) a11y users don't have to hunt for the on toggle anymore which is one
crucial step less in bringing up an accessible desktop. With that, we can also
remove a lot of switch-toggling and -querying everywhere in our a11y plumbing.
B) We know that the next step of linking everything at compile-time will not
cause any fallout once we decide to do it.

 I suppose your proposed plan of try it and see what happens is
 about the best we can currently do given the state of our current
 technology, but I was wondering if you had any idea of what the
 results might be.
 
As the plugin does not do anything when no AT is loaded, there should be no
observable difference. Of course, that's the theory. And while theory and
practice are the same in theory, we know they might not be in practice. So the
goal is to find the bugs that the people running with a11y on (but no AT
running) have not yet discovered and fix them in the next 6 months.

Benjamin


(*) GTK 2 does this linkage at run-time, too, using the gail plugin. But GTK 3
has integrated gail recently, so this step is already always-on.

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


Re: Gtk+ 3.3.7+ bugfix will BREAK Xorg (before 1.12) unless patch is applied

2012-03-07 Thread Benjamin Otte
Here's a heads-up on this patch: We've held up on applying this patch
to give developers a chance to get their servers fixed. But we want
this patch in 3.4, so it has now landed. So if you are running a GTK
= 3.3.19, you need to have an up to date X server or you'll see weird
focus behavior.

A workaround exists: If you export GDK_CORE_DEVICE_EVENTS=1, GDK will
stop using XInput and use old-school X11 events, and that code path in
the X server doesn't have that bug.

Benjamin


On Mon, Jan 9, 2012 at 8:11 PM, Olav Vitters o...@vitters.nl wrote:
 Company found a bug in the XI2 handling of GTK+. The gtk+ bugfix exposes
 a very visible bug in Xorg. The Xorg bug will be in Xorg 1.12.

 If you're responsible for a distribution, please either run 1.12, or
 ensure the fixes from freedesktop bug 44079 are applied to your Xorg
 *asap*.

 Reference:
  - https://bugzilla.gnome.org/show_bug.cgi?id=657578
  - https://bugs.freedesktop.org/show_bug.cgi?id=44079 (not loading atm)

 In short:
  - in case gtk+ 3.3.x
  - ensure you have patch from 
 https://bugs.freedesktop.org/show_bug.cgi?id=44079
  - otherwise bad things happen (important focus events do not fire)


 In care you prefer IRC type announcements:
 Company       seb128!
 Company       seb128: is the next ubuntu gona have X server 1.12?
 seb128         Company, no
 seb128         1.11
 Company       seb128: because we want to push a bugfix for GTK 3.4
 that exposes a pretty visible bug in XI2 that they recently fixed
 Company       seb128: lemme link you up with the relevant bugs
 Company       seb128:
 https://bugzilla.gnome.org/show_bug.cgi?id=657578 and
 https://bugs.freedesktop.org/show_bug.cgi?id=44079
 Company       seb128: we have't applied the GTK fix yet, we wanted to
 wait until GTK devs have a proper X to run on first :)
 seb128         Company, thanks, I will make sure we get that
 fix in our xserver
 Company       great
 Company       i should probably poke the relevant people for suse and
 mageia

 --
 Regards,
 Olav
 --
 devel-announce-list mailing list
 devel-announce-l...@gnome.org
 http://mail.gnome.org/mailman/listinfo/devel-announce-list
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: GtkTable is deprecated

2011-09-29 Thread Benjamin Otte
On Thu, Sep 29, 2011 at 6:30 PM, Johannes Schmid j...@jsschmid.de wrote:
 This is a massive change to existing GtkBuilder .ui files so I would
 suggest that somebody able to do xml and/or sed/grep magic would write a
 script that just replaces GtkTable with GtkGrid in existing .ui files. If
 that is included in gtk+ it would a lot of peoples lives easier.

I am not sure that a simple script - and it'd probably be easy enough
to get a simple one going with some XSLT - because you need to fix the
expand and align flags of your widgets, and that means setting flags
on completely different widgets in the widget tree.
That transition is a thing I'd love to have seen tackled more by app
authors btw, but so far it wasn't necessary, so nobody bothered.
GtkBox and GtkTable didn't lose these flags in the transition to GTK3
after all.

Also, keep in mind that UI files won't cause deprecation warnings
during compilation. So unless you have code that live-edits tables,
your code will still continue to compile and run fine for the time
being.

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


GtkTable is deprecated

2011-09-28 Thread Benjamin Otte
Hey everyone,

So now with GNOME 3.2 out, it's time to make GTK break builds again.
So I deprecated GtkTable in GTK master[1]. GtkTable is turned more and
more problematic as GTK 3 evolves and the implementations of
height-for-width improved, which GtkTable does not support. So we were
ending up with more and more bugs about tables allocating way too much
space for widgets (feel free to ask the Empathy guys about it ;)).

GtkGrid should be pretty much a drop-in replacement for GtkTable. Keep
in mind that GtkGrid uses the align and expand flags of
GtkWidget[2][3][4][5] instead of having expand and fill child
properties.

As always, should you have any questions, don't hesitate to ask.

Happy hacking,
Benjamin


1: 
http://git.gnome.org/browse/gtk+/commit/?id=08d578dfcbbbc4769d8c26de4ea0de4f76e1b2de
2: 
http://developer.gnome.org/gtk3/unstable/GtkWidget.html#gtk-widget-set-hexpand
3: 
http://developer.gnome.org/gtk3/unstable/GtkWidget.html#gtk-widget-set-vexpand
4: http://developer.gnome.org/gtk3/unstable/GtkWidget.html#gtk-widget-set-halign
5: http://developer.gnome.org/gtk3/unstable/GtkWidget.html#gtk-widget-set-valign
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: GNOME user survey 2011 (v4)

2011-08-19 Thread Benjamin Otte
Felipe Contreras felipe.contreras at gmail.com writes:

 That doesn't change the fact that everyone understands the word happy.
 

http://www.ted.com/talks/daniel_kahneman_the_riddle_of_experience_vs_memory.html


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


More GTK breakage

2010-12-02 Thread Benjamin Otte
Hey everyone,

If you read this mail, it's probably because GTK made your compile
fail. Again. It might  be because the final part of the GTK3 rendering
cleanup has landed. This part only touches GDK APIs, so most
applications should not be affected at all.

If your app has been affected nonetheless, it's often one of these issues:

- GdkDrawable has been removed. In that case, just replace all
occurences of GdkDrawable with GdkWindow and you should be fine.

- The GDK_DRAWABLE() macro is gone. Oftentimes, it can just be
omitted. Otherwise, you likely want to use the GDK_WINDOW() macro.

- GDK_WINDOW_XWINDOW() is gone. Use the gdk_x11_window_get_xid() to
get it. I'm transitioning all code to provide a gdk_x11_foo_get_xid()
function exclusively, so futureproof code should use that function.

- A few remaining calls (mostly in gdkx.h) that were called
gdk_drawable_foo() are now called gdk_window_foo(). Most prominently
gdk_x11_drawable_get_xid() is now called gdk_x11_window_get_xid().

As always, if you have any issues, feel free to poke me.

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


Re: Please ship changelogs in your tarballs

2010-10-05 Thread Benjamin Otte
Dodji Seketeli dodji at seketeli.org writes:
 I personaly find
 ChangeLogs quite valuable for situations where people have the source
 packages (like a distribution DVD) but not necessarily an access to the
 internet and want to understand when/how something changed. I found
 myself in such a situation not very long ago and I was very happy to
 have a proper ChangeLog around.
 
Hrm, in 90% of the cases where I need information about why changes were made, I
need git blame/cvs annotate style output, and a ChangeLog cannot give me this
information. (Also, the tools to filter ChangeLogs suck, or are there
equivalents to git log -- $file?)

So I think it would be a lot better if instead of just generating a ChangeLog,
we would ship the full git history in the tarball. That way you have a history
that is as useful as possible.

It would also make GPL purists happy, because we'd ship it in the preferred form
of making modifications, which a tarball isn't - even with a ChangeLog.

Benjamin

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


GTK3 breakage

2010-09-26 Thread Benjamin Otte
Do you pine for the nice days of GTK 1.3, when men were men and wrote
their own widgets? Are you without a nice project and just dying to
cut your teeth on a desktop you can try to modify for your needs? Are
you finding it frustrating when everything works on GNOME 2? No more
all-nighters to get a nifty program working? Then this post might be
just for you :-)

As I mentioned a month(?) ago, I'm changing how GTK draws widgets. You
got the first batch of changes with the deprecation of the GDK drawing
routines. The second part of this rework has now landed in GTK3's
master branch. With it, a few other changes that touch public APIs
have landed or will soon land.
This also means that almost all projects are now broken when trying to
compile them against GTK3. We're going to look into fixing things
next. The ongoing work is tracked on
http://live.gnome.org/GnomeGoals/GTKRenderingCleanup - please add
yourself there if you work on it.

We expect this to be last big change to public APIs leading up to GTK3.


Here's a summary of changes that have happened. If you want more
details, the GTK API docs have an ever-expanding migration guide. It's
a bit rough at the moment because we don't really know what problems
people have. So please talk to us so we can expand it to disucss the
stuff you don't understand. Matthias Clasen and me will work on
updating the GNOME stack for GTK3 in the next weeks, so you know who
to poke.

- GDK lost GdkColormap and GdkPixmap
The replacement for GdkPixmap is cairo_surface_t. Colormaps are an
outdated concepts and are pretty much unused these days, so we decided
to no longer expose them in the GDK API.

- for GtkWidget the draw signal replaces the expose-event signal
The new draw signal takes a cairo_t so you no longer have to create
the cairo_t manually. All painting functions have been updated to take
a cairo_t, too. And best of all, we now have a gtk_widget_draw()
function that you can use to draw a widget to any cairo surface you
want.

- GtkObject is gone
With the existance of GObject, GtkObject became unnecessary. The
functions it provided are now either part of GObject or GtkWidget.

- GtkSizeRequest is gone (GTK3 only)
The newly introduced GtkSizeRequest interface has been merged into
GtkWidget directly. All code that already took advantage of it, will
need some adjustments in names.


Happy hacking,
Benjamin
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: rendering-cleanup

2010-08-07 Thread Benjamin Otte
Hi,

my rendering-cleanup work is pretty much done now. I expect the branch
to land in master during the next week while people (read: Matthias)
pound on it trying to find issues.

I've also deprecated as many APIs as is reasonable inside Gtk 2.22. So
if you are compiling with GDK_DISABLE_DEPRECATED and find your module
breaks, you need to update your drawing to Cairo (or disable the flag
;)).

I'm still in the process of updating the documentation (read: it's
missing stuff), so if anything is unclear for you, please poke me on
IRC or by mail and I'll try to clarify it. In the meantime you want to
read http://blogs.gnome.org/otte/2010/07/27/rendering-cleanup/ That
page will become the basis of what will be the porting documentation.

Benjamin


On Thu, Jul 22, 2010 at 4:54 AM, Benjamin Otte o...@gnome.org wrote:
 Hi,

 As many of you have already noticed, I've been frantically hacking
 away on my Gtk rendering-cleanup branch[1]. The branch is an attempt
 to move all GTK drawing to Cairo and remove all the outdated APIs that
 exist for rendering, including, but not limited to:
 - GdkRGB
 - GdkImage
 - gdk_draw_*()
 - GdkPangoRenderer
 - GdkGC
 More things could be removed (GdkColormap and GdkColor.pixel come to
 mind), but those aren't urgent for 3.0 IMO, so I didn't remove them.
 I did do this because the task of implementing and maintaining such a
 complex rendering API as Gdk2.0 provides is a very daunting task and
 looking at the non-X11 backends also quite complex, while Cairo
 provides a much smaller API and has fallbacks for almost everything.

 The work is done and the code runs now. Well, at least testgtk and
 gtk3-demo do. On X11. I'd be happy if others could take it for a spin
 and find issues with it or even have a go at Quartz and Win32 code.

 Even though this is a huge amount of API that is removed - it's close
 to 30.000 lines of code including docs - there don't seem to be a lot
 of users inside GNOME. Most of the users are really old parts of the
 code and in those cases switching to Cairo should be a reasonably
 easy. In fact, a lot of the functions can be replaced using similar
 functions from Cairo in a copy/paste style. Also, I'd like to point
 out that no API was changed. I only removed functions. So a proper
 transition from Gtk2 using deprecations is easily possible.

 So what do I intend to do next?
 1) Port some applications - the bigger users - to not use these
 functions anymore. That way I'll both review my branch and get some
 apps fixed.
 2) Cherry-pick the cleanup work into master and gtk-2-22
 3) Get an ok to merge the API cleanup to master (or at least
 partially) and deprecate related functions for 2.22.

 The work is tracked in bug 624255[2] and further discussions should
 happen there. This mail is just intended to make everyone aware of the
 effort and to answer any questions you might have.

 Also, I'm aware that we are very close to a release. I'd understand if
 that'd make people not want to merge it. But I think it's worth it and
 the impact is very small compared to the other changes in Gtk3.


 And last but not least, some diffstats:

 Whole patchset:
  146 files changed, 2730 insertions(+), 29384 deletions(-)

 gdk/ subdirectory:
  64 files changed, 590 insertions(+), 22215 deletions(-)
 This should prove that it's pretty much just removing code.

 gtk/ subdirectory:
  37 files changed, 1866 insertions(+), 3373 deletions(-)
 Half of that is fixing the default style, the other half is updating
 widgets to use Cairo.

 Cheers,
 Benjamin


 1: http://git.gnome.org/browse/gtk+/log/?h=rendering-cleanup
 2: https://bugzilla.gnome.org/show_bug.cgi?id=624255

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


Re: External dependency bump: Cairo 1.10

2010-06-29 Thread Benjamin Otte
Since the Cairo 1.9.10 happened on time and it looks like Cairo 1.10
is well on schedule, I've gone ahead and pushed my changes. So Gtk 3
git master requires the most recent Cairo snapshot now.

For more details on the change, see
https://bugzilla.gnome.org/show_bug.cgi?id=613284
I'm about to update modulesets and the wiki page.

Benjamin


On Thu, Jun 17, 2010 at 9:33 PM, Matthias Clasen
matthias.cla...@gmail.com wrote:
 On Thu, Jun 17, 2010 at 2:37 PM, Benjamin Otte o...@gnome.org wrote:
 Hi,

 I'd like to bump the Cairo dependency for 1.10 for Gtk 3. Cairo 1.10
 adds a few features that I want to use in the public GDK API - most
 notably regions - and this change needs to be done while we can break
 API.

 Cairo 1.10 is not released yet, but is scheduled for release on August
 16th. [1] Prereleases will appear every other week, the current one is
 1.9.8.

 Can I request that we are a little cautious here and at least wait to
 see if 1.9.10 appears on schedule before trusting the roadmap ?


 Matthias

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


Video Hackfest conclusions

2009-11-24 Thread Benjamin Otte
Hi,

As you may be aware, we held a video hackfest last week in Barcelona.
Developers met to discuss how best to improve GPU support for video
applications. See http://gstreamer.freedesktop.org/wiki/VideoHackfest
for more details. In particular, you might be interested in the notes
some people took while the hackfest was going on. These can be found
at http://gstreamer.freedesktop.org/wiki/VideoHackfest/Notes

What follows is the results we arrived at after the hackfest. They are
taken from http://gstreamer.freedesktop.org/wiki/VideoHackfest/Conclusions
but certainly deserve wide circulation. We're interested in any
comments (or questions) you might have about them, so please don't
heistate to reply.

If you do reply, please make sure to reduce the recipient list appropriately.

Cheers,
Benjamin,

on behalf of all hackfest paticipants.


== YUV in pixman ==
It has been a goal for a while to make video a first-class citizen in
the image stack. A concrete API proposal on how to integrate video
into pixman was reached and reviewed.
Links:
 * http://gstreamer.freedesktop.org/wiki/VideoHackfest/YCbCr_Formats
 * http://gstreamer.freedesktop.org/wiki/VideoHackfest/pixman
Actions:
 * GStreamer developers to provide a specification of important YUV formats
 * Write implementation

== YUV in Cairo ==
To make it easy for applications to use these different formats, the
Cairo API needs to be extended to allow them. A proposal does exist
and has been reviewed, details need to be finalized.
Links:
 * http://gstreamer.freedesktop.org/wiki/VideoHackfest/Cairo
Actions:
 * Finalize proposal
 * Write implementation

== locking in Cairo ==
GStreamer takes a lot of freedom in deciding which threads to schedule
elements in. Most hardware backends however require proper
serialization of commands. The current gst-plugins-cairo and
gst-plugins-gl code provide different, but ugly ways to achieve this.
Cairo's internal thread safety guarantees match these requirements
very well. But the different Cairo backends don't always keep these
guarantees. Interaction with these locking mechanisms from outside
applications is not possible yet either.
Links:
 * http://gstreamer.freedesktop.org/wiki/VideoHackfest/Cairo
Actions:
 * Improve Cairo backend implementations, in particular X11 and GL
 * Expose Cairo's locking API to allow interaction with it
 * Write testcases to squash bugs

== locking in Mesa ==
The GLX specification does not allow binding the same GLX context in
multiple threads at the same time. This is a requirement for both
Cairo's and GStreamer's threading model. An extension was proposed and
initial code developed to support this requirement in the same way as
Apple's GL does by default. Windows does not support this and would
require potentially expensive fallback code.
Links:
 * http://people.freedesktop.org/~anholt/MESA_multithread_makecurrent.spec
Actions:
 * Get review for suggested extension and include it in future Mesa releases
 * Make Windows developers investigate the situation

== switch GStreamer to Cairo as default video transport model ==
The current approach to handling video in GStreamer is very outdated.
It does not allow hw-accelerated buffers nor does it provide a unified
API to modify video buffers, which leads to fragmentation and
duplication. It was agreed that using Cairo to provide an abstraction
as a drawing API and abstraction over different backends was a good
idea.
Links:
 * http://gstreamer.freedesktop.org/wiki/VideoHackfest/Notes
 * http://cgit.freedesktop.org/~company/gst-plugins-cairo
Actions:
 * Rework gst-plugins-cairo to match improvements listed in previous points
 * Get more review on API and to avoid regressions
 * Merge into gst-plugins-base
 * Switch plugins gradually to use new Cairo code

== gst-plugins-gl ==
The general consensus was that gst-plugins-gl is a hack. It was
necessary in the past to get things to work, but is not a good way
forward. However, the functionality or performance provided by the
current elements needs to continue working. Developers shared the
opinion that gst-plugins-cairo with cairo-gl surfaces is the best way
to achieve this.
Links:
 * http://gstreamer.freedesktop.org/wiki/VideoHackfest/Notes
Actions:
 * Get review of cairo-gl/gst-plugins-cairo code from gst-plugins-gl developers
 * Port gst-plugins-gl elements to use Cairo early to ensure required
features are available

== XRenderPutImage ==
Currently there is no way to upload video data to the X server for
later use. The XV extension is not sufficient for anything more
complicated than a simple video player.
Links:
 * http://gstreamer.freedesktop.org/wiki/VideoHackfest/Cairo
Actions:
 * Figure out the best way to move YUV data into hw-accelerated Cairo
surfaces (GL vs X)
 * Possibly draft an extension to XRender to handle this in the no-GL case

== JIT in Pixman ==
ORC was investigated as a potential JIT for pixman. A lot of talk has
happened, but no clear conclusions were reached. The idea to share a

Re: libproxy as external dependency

2008-10-23 Thread Benjamin Otte
pros:
- current proxy handling in GNOME is a huge mess, we're all lucky we can live
without proxies
- the API looks extremely sane
- there is nothing else that does proxying
- Dan (who is going to be the main - or only? - user of it) likes it
- active maintainers
- no bugs

cons:
- I'm (luckily) not too knowledgable about proxy handling
- not a lot of users

Considering that all cons I can come up with aren't their fault, this has to be
a +1 from me.

Cheers,
Benjamin

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


Swfdec external dependency

2008-09-08 Thread Benjamin Otte
Hey,

now that we've released Swfdec 0.8.0[1] I updated swfdec-gnome to use
it[2] and did a new release of it. I've updated the wiki page[3]
already.
Due to lack of time I did not update jhbuild etc though.

Cheers,
Benjamin

1: http://lists.freedesktop.org/archives/swfdec/2008-September/001944.html
2: http://mail.gnome.org/archives/release-team/2008-July/msg00176.html
3: http://live.gnome.org/action/edit/TwoPointTwentythree/ExternalDependencies
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Swfdec version for 2.24

2008-07-30 Thread Benjamin Otte
Hey,

As Swfdec tracks GNOME development and provides a new major release
for every new GNOME release, we will release Swfdec 0.8 to go with it.
I hope updating the external dependencies is fine here.
Today Swfdec 0.7.4 was released and I updated the swfdec-gnome package
to not depend on Swfdec 0.6 anymore but track the 0.7 releases. I've
updated the jhbuild moduleset accordingly already.

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


Re: minimum cairo dependency

2008-06-07 Thread Benjamin Otte
Matthias Clasen matthias.clasen at gmail.com writes:

 
 It was pointed out to me that
 http://live.gnome.org/TwoPointTwentythree/ExternalDependencies still
 lists cairo 1.2.6 as minimum version.
 I recently bumped the cairo dependency in GTK+ 2.13 to 1.6 (it already
 was at 1.5.2 before).
 I think we should bump the minimum required version of cairo to 1.6.0
 for Gnome 2.24.
 
 Matthias
 
I'm still hoping or user font support in the next Pango version, which would
require Cairo 1.8.
I have no idea about the release schedule for future Cairo/Pango releases 
though.

Benjamin

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


Re: Reintroducing critical warnings?

2008-02-25 Thread Benjamin Otte
Havoc Pennington hp at pobox.com writes:

 Wait, that's the whole point is to crash the app 
 
 The issue is that if it just prints stuff, people don't fix the bug
 (in part, perhaps, because nothing goes through bug-buddy). Maybe the
 fix is to bug-buddy the warning, but don't crash the app. Not sure how
 hard that would be to code.
 
I guess this is the age-old question of How should we treat a non-critical bug
during development?
And I guess it is equivalent to Should we enable gcc's -Werror switch for svn
builds? which is the question I regularly clash about with Behdad.

In the end it's a tradeoff. A tradeoff between forcing users to make you care
about potentially harmless stuff that's not a real bug (to quote Behdad) and
missing real bugs because users don't care about bugs that don't bite them. It's
also a tradeoff between allowing you to be lazy and not fix warnings immediately
- or at least until the next gcc comes around that makes them real bugs - and
having to fix obscure warnings on weird platforms immediately because they break
the build or prevent the application from running.

I'm all for making warnings fatal and compiling with -Werror in svn builds. But
you'll have a hard time convincing other people.

Cheers,
Benjamin

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


Re: Swfdec: required external packages

2008-01-29 Thread Benjamin Otte
On Jan 29, 2008 6:16 PM, Luca Ferretti [EMAIL PROTECTED] wrote:

 Il giorno mar, 29/01/2008 alle 01.10 +0100, Benjamin Otte ha scritto:

  Additionally, we want to track Swfdec git master from swfdec-gnome
  until 0.6 is released. Is that ok - in particular with the jhbuild
  people?

 ???

I looked into jhbuild and external deps are always tarballs. So I was
wondering if there was a policy against depending on development
versions for external deps. It's a bit more work for jhbuilders after
all.
Otherwise I'd update the modules to depend on Swfdec git until 0.6.0 is out.

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


Swfdec: required external packages

2008-01-28 Thread Benjamin Otte
I've just parsed the external dependencies for 2.22 [1] and noticed
some issues relating to swfdec-gnome.

1) Swfdec version
The Swfdec version has been set to 0.5.5. However, we plan to do a
0.6.0 release for Gnome 2.22 (see [2] for details).
Additionally, we want to track Swfdec git master from swfdec-gnome
until 0.6 is released. Is that ok - in particular with the jhbuild
people?

2) shared-mime-info version
Listed is version 0.22, however version 0.23 contains an important fix
for Flash file detection that's necessary for roughly 95% of Flash
files. So it'd be nice if that version would be bumped, too.

Cheers,
Benjamin


[1]: http://live.gnome.org/TwoPointTwentyone/ExternalDependencies
[2]: http://lists.freedesktop.org/archives/swfdec/2008-January/001131.html
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: New module decisions for 2.22

2008-01-10 Thread Benjamin Otte
Brian Cameron Brian.Cameron at Sun.COM writes:

 Section 3a seems of the Adobe SWF and FLV File Format Specification
 License Agreement seems to be pretty clear that the specification
 does not allow additional client programs, players, etc. to use
 the format.  Even if this has been implemented by reverse-engineering
 or clean-room techniques, then this may require some legal review
 to ensure that this was done appropriately to avoid legal issue down
 the road for GNOME.  Has this been done?
 
I'm aware that this specification exists and that the Swfdec developers are not
allowed to use it. Which is what we have done. However, I am not a lawyer, so I
cannot say if that restriction is legal, nor if not reading that document is
enough to not cause problems.

So in short: Nothing has been done.
If you think this is necessary and want to do that, feel free to contact
[EMAIL PROTECTED] or me. I'd be very happy if I could answer this
question with a lawyer has told me ... the next time it comes up.

Cheers,
Benjamin


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


Re: Proposal: swfdec-gnome

2007-12-28 Thread Benjamin Otte
On Dec 27, 2007 8:34 PM, Andre Klapper [EMAIL PROTECTED] wrote:
 so i assume that using the gstreamer backend has been fixed in the
 latest swfdec release?

Yes.
Swfdec is using GStreamer by default for video and audio decoding now
(and has been for the last 2 releases).

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


Re: Proposal: swfdec-gnome

2007-10-26 Thread Benjamin Otte
Bastien Nocera hadess at hadess.net writes:

 Hey Benjamin.
 
 I think that using GStreamer for playback would be a must for swfdec to
 be accepted as a blessed dependency (and thus swfdec-gnome added to the
 desktop). We've been through not allowing other playback engines in the
 past, so I don't think we can let swfdec change that position.
 
 I hope you can work with the GStreamer guys to get the technical
 problems sorted out. Having bugs filed or discussions started on
 mailing-lists about the problems you've seen would also help the
 community see that efforts are being made in that direction.
 
To keep you guys updated:

After some discussion with Wim it seems there is a completely different solution
for the GStreamer backend that works fine with current releases. I'm pretty
confident that the GStreamer backend will work perfectly in the next Swfdec 
release.

Cheers,
Benjamin

PS: Bastien, Fedora is still the only distro not shipping Swfdec... ;)

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


Re: Proposal: swfdec-gnome

2007-10-23 Thread Benjamin Otte
Peter Gordon peter at thecodergeek.com writes:

 Unfortunately, swfdec's dependency on ffmpeg/libmad for multimedia
 decoding means that it cannot intrinsically be part of some distributions
 such as Fedora without being hosted in a third-party repository of some
 sort; and the current Gstreamer stack in swfdec does not work nearly as
 well as does ffpmeg/libmad. For one, YouTube videos (from my very brief
 testing with 0.5.3) play without sound and often freeze the X session
 entirely. :(
 
 Would this mean that its Gstreamer support would be heavily improved
 or perhaps even become the main playback focus for videos? That would be
 *awesome*. :)

The current GStreamer has some serious issues with the way Swfdec wants to use
it. I'll gladly go into details about why, but I guess this is the wrong place
to discuss this. The solution the GStreamer guys did for this was
appsrc/appsink, however there's no release yet which uses it, and it looks like
the next release will not have it either.

So in short: Yes, we'd like to improve GStreamer decoding options, but it's just
not possible.

Benjamin



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


Proposal: swfdec-gnome

2007-10-22 Thread Benjamin Otte
Hi,

I'd like to propose swfdec-gnome for inclusion into the GNOME 2.22
desktop. Swfdec-gnome is a recent addition to the Swfdec project [1].
Its purpose is integration of Flash files into the Gnome desktop. It
currently provides a thumbnailer and a playback application for local
files similar to the stand-alone application Adobe ships on Windows.
It is supposed to replace the support that is currently provided via
the Swfdec 0.3 GStreamer plugin/Totem.

This would of course add an external dependency on the Swfdec library.
The Swfdec library itself does not depend on anything that is not
already part of Gnome. In fact, it uses Glib, Cairo, Pango and Gtk
plus optional dependencies on GStreamer/FFmpeg/Mad for video/audio
decoding and ALSA/OSS for audio playback.

Currently swfdec-gnome is hosted in our git repo on Freedesktop and
uses its bugtracker, but I would prefer moving it to Gnome SVN and
using its bugtracker for ease of integration with the Gnome project.
This should also not be a problem because almost all developers of
Swfdec are already Gnome developers.

On to some Q/A for questions I imagine you people asking:

Do you really think Swfdec is mature enough to be used as an Adobe
Flash substitute?
I would be very (some say overly) careful about making that statement.
However, this proposal is not about a substitute for the Flash player
in your browser. It is about better support for the Flash files on
your desktop. Currently there is almost no integration for these. They
are played back and thumbnailed with an older version of Swfdec
through Totem and this solution is definitely far superior than that.

Isn't swfdec-gnome a bit young? Its git log looks like it's only a week old?
In fact, all these applications already existed as part of the Swfdec
source tree for over a year, they just weren't installed. We only
recently took the work to split them off to be able to make them
really GNOMEy without having loads of GNOME dependencies in the core
library.

Cheers,
Benjamin


[1] http://swfdec.freedesktop.org
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list