Planet Closed Fist

July 01, 2009

Clutter

Clutter 0.9.6 - developers snapshot

hi everyone;

Clutter 0.9.6 is now available for download at:

  http://www.clutter-project.org/sources/clutter/0.9/

MD5 Checksums:

  e8b92cfb5180935f1aba497948f37166  clutter-0.9.6.tar.gz
  30653168bca6d36a560562e14867b804  clutter-0.9.6.tar.bz2

Clutter is an open source software library for creating fast, visually rich and animated graphical user interfaces. Clutter is licensed under the terms of the GNU Lesser General Public License version 2.1.

Clutter currently requires:

  • GLib >= 2.16.0
  • Cairo >= 1.6
  • Pango >= 1.20
  • OpenGL >= 1.4, OpenGL ES 1.1 or OpenGL ES 2.0
  • GLX, SDL, WGL, Quartz or an EGL Implementation

To subscribe to the Clutter mailing list, send mail to: clutter+subscribe_at_o-hand.com
The official mailing list archive is: http://lists.o-hand.com/clutter/
API reference: Clutter, COGL

Notes

  • This is a development release of Clutter 0.9 leading towards the 1.0 stable cycle. It is the second release candidate for the 1.0.0 release: the Clutter high-level API is to be considered frozen, as well as the COGL low-level API.
  • This version is fully API and ABI incompatible with the previous 0.8 releases.
  • This version is parallel installable with Clutter 0.8.
  • Installing this version will overwrite the files from the installation of a git clone of the current development branch (master).
  • Bugs should be reported to: http://bugzilla.o-hand.com

What’s new in Clutter 0.9.6

  • Allow the manipulation of the actor’s transformation matrix, so that it is possible to apply additional transformations in a way that is compatible with the transformations already applied by the scene graph.
  • Fix a race in the X11 backend that happened between resizing the stage drawable and the call to glViewport().
  • Merge the cogl-journal-batching branch; this branch implements batching the geometry of the elements of the scene graph before sending it to OpenGL, thus minimizing the number of state changes and improving the overall performance of Clutter-based applications.
  • Add more debugging states for Clutter and COGL, which allow the developer to track the state of the journal; to check the VBO fallback paths; to disable picking for reliable profiling; to disable software-side matrix transformations in favour of the driver/GPU ones.
  • Improve the ability to “break out” of COGL by using gl_begin/gl_end semantics; applications that drop into raw GL are, though, ignoring all the caching performed by COGL and might incur in performance issues.
  • Fixed the :load-async and :load-data-async properties of Texture by removing the unneeded G_PARAM_CONSTRUCT flag.
  • Added an initial migration guide that shows the porting process from older releases of Clutter to the 1.0 API; the first chapter deals with the migration from ClutterEffect to the new implicit animations API.
  • Fixed MT-safety for the master clock.

Many thanks to:

  Ole André Vadla Ravnås
  Tim Horton

by Emmanuele at July 01, 2009 03:58 PM

Patrick Ohly

Linux 2.6.30: Hardware Assisted Time Stamping of Network Packets

It might not be breaking news anymore, but it’s still the latest kernel release, so here we go… Linux 2.6.30 was released.

It includes my patches which add the new timestamping.txt user space API ( for hardware assisted time stamping of network packets. I also updated the igb driver for the Intel NIC 82576 and the user space PTPd, an implementation of IEEE 1588/Precision Time Protocol (PTP), so that finally there is a decent replacement for NTP in LANs and clusters. For details, see the LCI 2008 paper about that aspect.

This is my first Linux kernel patch. It would not have been possible without support by managers and colleagues at Intel and the patient code review by the Linux community, so kudos to everyone involved. Please contact the Intel Ethernet driver team if you have further questions about PTP or the Intel NIC 82576 features, I myself focus exclusively on SyncEvolution nowadays.

Unfortunately, PTPd is now officially unmaintained after a long period of no activity, so my patches for it were never looked at. Anyone interested in taking over the project?

by Patrick Ohly at July 01, 2009 02:55 PM

Gran Canaria Desktop Summit 2009: Talk about SyncEvolution

Gran Canaria Desktop Summit: GUADEC + Akademy 2009 – I’m going. I won’t be able to attend the full week, but at least I’ll be there from Saturday evening till Tuesday morning.

It is not in the published schedule yet, but I’ll give a talk about the SyncEvolution project and our plans on Monday as part of the GUADEC track. While the project is currently mostly targeting Moblin+Evolution, it was always meant to be open for other contributions, so I hope non-GNOME developers will also attend the talk.

I also look forward to discussions about the architecture of our upcoming SyncML server and direct sync support. Now is the time to tell me how wrong I am with those ideas… before we implement them and find it out the hard way. ;-)

by Patrick Ohly at July 01, 2009 02:07 PM

SyncEvolution 0.9 beta 2: with GTK GUI and included in Moblin 2.0 beta

While I was away on my family vacation, the SyncEvolution branch with the new GTK GUI and various other improvements was published as part of the Moblin 2.0 beta release.

Since then we have added some minor fixes and improvements and later released the source as SyncEvolution 0.9 beta 2.

Changes

A GTK GUI! The “sync-ui” program depends on a backend D-Bus service (”synevo-dbus-server“) and several auxiliary files. Therefore it only runs without hacks after “sudo make install”, in contrast to the normal command line which can be invoked directly.

New configuration templates can be added to /etc/default/applications/syncevolution. These templates may contain icons which are used by the GUI (no icons shipped right now).

Information about previous synchronization sessions is now stored in a machine-readable format and can be accessed via the new --print-sessions options. The output of this information is more complete and more nicely formatted.

--status now not only shows data changes since the last sync, but also the item changes (see README for the difference between the two).

The new --restore option allows restoring local data to the state as it was before or after a sync. For this to work, “logdir” must be set (done by default for new configurations). The format of database dumps was changed to implement this feature: instead of in a flat file, items are now saved as individual files in a directory. To get the previous format back (for example, to import as one .vcf or .ics file manually) concatenate these files.

With --remove one can remove configurations. It leaves data files and the local databases untouched.

Various bug fixes and improvements:

  • compiles and works again on Debian Etch if Boost 1.35 is installed from www.backports.org (without GUI, see Bugzilla #3358)
  • uses XDG_CACHE_HOME (= ~/.cache) for logs and database dumps to avoid interfering with .desktop search in XDG_DATA_HOME; the directory there is automatically moved when running syncevolution (Bugzilla #3309)
  • re-enabled certain config options (clientAuthType, maxMsgSize, maxObjSize); normally it shouldn’t be necessary to modify those (Bugzilla #3242, #2784)
  • fixed error handling of unexpected server reply in libsoup transport (Bugzilla #3041)
  • message logging is enabled at logLevel 3 (XML translation) and 4 (also original XML or WBXML message)
  • GTK GUI fixes since initial Moblin 2.0 beta: only start it once if libunique is available (Bugzilla #3154), wrap text in change sync service” button (Bugzilla #2064), sort sources alphabetically in UI (Bugzilla #2070)

Next Steps

The goal right now is to work towards a stable 0.9 as quickly as possible. Primarily that involves interoperability testing with several different servers. The issue tracker contains a complete list of known issues that we would like to address. Some of them might have to be postponed, though.

Translation of the GTK GUI will be coordinated as part of the Moblin translation project, which will be open for external contributors. The Italian GNOME/Translation Project has already contributed a translation, many thanks! It has not been included in beta 2 only because we are still figuring out how the translation process will work.

Other contributions are also welcome. The Bugzilla contains a long list of ideas for enhancements: anything currently assigned to the team mail alias is fair game for anyone who wants to start hacking on something.

Not covered with specific work items is the implementation of a SyncML server mode in SyncEvolution. A design document for that is available, join the SyncEvolution mailing list if you are interested.

Source, Installation, Further information

See 0.9 beta 1: SyncEvolution 0.9 beta 1: Full-time Project, using Synthesis SyncML Engine
http://moblin.org/projects/syncevolution/
http://www.estamos.de/projects/SyncML/

by Patrick Ohly at July 01, 2009 01:55 PM

June 30, 2009

Chris Lord

GCDS 2009 Query

Dear lazyweb, why is there no iCal for the schedule? Or Google Calendar? Or at least a PDF booklet, or something? I guess this is something I could do myself, but I'm busy/lazy and I figure that someone must have done this already, right? Like previous Guadecs?

June 30, 2009 11:02 AM

Richard Purdie

Mechanical Suffering

When checking the bike over I discovered the chain and sprockets are unlikely to last another trip out and one of the rear wheel bearings has play in it. I took some photos of the suffering of the bike:


A little bit of erosion


and plenty of scratches to the handguards.


A sick looking front sprocket


and a not much better looking rear


The front panel has finally been ripped from its mount on the radiator. This has been likely to happen for a while as it was already badly cracked. I haven’t decided how to fix this yet.


A standard bike footpeg


The footpeg I mostly rebuilt from bits of steel bar


The bike, showing signs of wear but not holding up badly considering.

by Richard at June 30, 2009 10:57 AM

June 29, 2009

Richard Purdie

Riding in the Mist

I went out on the bike on Saturday meeting up with three other local TRF people. The weather wasn’t too nice being think mist/drizzle in the Tyne valley and making riding with glasses + visor a pain. After going around Slaley forest we headed for the Wear valley and there was briefly sun for a while before the stop for lunch in Alston. Just before lunch the CRM developed a tendency to stall and refusal to start which turned out to be an oiled up plug – I had spares. Of note was the group leader falling into the Wear which makes a change from me falling off.

After lunch we headed back via some trails I’ve done before. On a downhill rocky section I picked up a bit of speed I had difficulty losing and ended up dropping the bike and sliding down the rocks with the bike on my leg. I was trapped under the bike for a while until I worked out how to lift the bike off without putting pressure on my leg. The bike boots did their job well and its just a bit bruised thankfully. The bike was fine after a little adjustment of the handguards.

Apart from the CRM stalling whilst holding another persons bike for a gate and refusing to restart, the rest of the trip was without incident. For this trip I had my new Garmin Oregon 300 in a pocket so I can now work out where I’ve been and start contributing to OpenStreetMap. I need to sort out a bikemount/batteries/charger for it but it seems to have kept a reasonable track of my position despite the horrible weather and being in a pocket.

by Richard at June 29, 2009 10:20 PM

Chris Lord

Building Moblin Web Browser

I've been meaning to put some documentation together for mozilla-headless and the various related components, but a pretty hectic schedule (both work and personal life) has meant that I've been pretty short on spare time lately. So just to get the ball rolling, the following is a guide on building the Moblin Web Browser. I'll try to turn it into real documentation and stick on moblin.org later.

Some notes

I'm going to assume that you build all of this in $HOME/moblin and that you're ok with mozilla living in /opt/mozilla-headless (trust me, it's for the best). I'm also going to assume that you have a system already setup for building GNOME applications. And that you have Mercurial installed. For those with non-debian systems without sudo setup, replace 'sudo [stuff]' with 'su -c "[stuff]"' (or setup sudo).

Step 1

Checking out the source

cd ~/moblin
git clone git://git.clutter-project.org/clutter
git clone git://git.clutter-project.org/clutter-gtk
git clone git://git.clutter-project.org/clutter-mozembed
git clone git://anongit.freedesktop.org/ccss
git clone git://git.moblin.org/clutter-imcontext
git clone git://git.moblin.org/nbtk
git clone git://git.moblin.org/mozilla-headless-services
git clone git://git.moblin.org/moblin-web-browser
hg clone http://hg.mozilla.org/incubator/offscreen mozilla-headless

You may also need a check-out of libunique; instructions here.

Step 2

Building Clutter

cd ~/moblin/clutter
./autogen
make
sudo make install

cd ~/moblin/clutter-gtk
./autogen
make
sudo make install

cd ~/moblin/clutter-imcontext
./autogen
make
sudo make install

Note that if you want documentation, all three of these accept '--enable-gtk-doc' as a configure parameter. These should all install in /usr/local by default, you should check that this is setup in /etc/ld.so.conf.d, and you may need to run 'sudo ldconfig' after installation.

Step 3

Building Nbtk

cd ~/moblin/ccss
./autogen --without-rsvg --without-soup --disable-ccss-cairo --disable-ccss-gtk --disable-examples
make
sudo make install

cd ~/moblin/nbtk
./autogen
make
sudo make install

Note about documentation still applies. You can get nicer build output from libccss by specifying '--enable-shave' too (used by Clutter and co by default), and if you're a developer, you may also want '--enable-debug'.

Step 4

Building Mozilla

Download this file to your home directory before starting.

cd ~/moblin/mozilla-headless
hg checkout headless
make -f client.mk configure
cd ../mozilla-build
make
sudo mkdir /opt/mozilla-headless
sudo chown $USER:$USER /opt/mozilla-headless
make SKIP_GRE_REGISTRATION=1 install

Now, this is the slightly less straight-forward bit. You'll either need to add a file to /etc/ld.so.conf.d to add '/opt/mozilla-headless/lib/xulrunner-1.9.2a1pre/' and '/opt/mozilla-headless/lib/xulrunner-devel-1.9.2a1pre/' to your default library search path, or you'll need to alter your environment to add them to your $LD_LIBRARY_PATH. I'd recommend the latter, and doing it in your ~/.bashrc, making it easier if something goes wrong.

You'll also need to add '/opt/mozilla-headless/lib/pkgconfig/' to your $PKG_CONFIG_PATH. Again, I'd recommend doing this in your ~/.bashrc. Don't forget to run 'sudo ldconfig' after installation, if necessary.

Step 5

Building ClutterMozEmbed

We're almost there now :) If you've followed all the previous steps correctly, it should all be downhill from here (in a good way).

cd ~/moblin/mozilla-headless-services
./autogen --enable-gnome-proxy
make
sudo make install

cd ~/moblin/clutter-mozembed
./autogen --enable-plugins
make
sudo make install

Again, the only slightly non-standard thing here is that mozilla-headless-services is a dbus daemon and you may need to setup your system for dbus service activation to work from the /usr/local prefix. Most distributions do this by default, but if yours doesn't, have a look in /etc/dbus-1. If you can't get that to work, you can run the daemon manually with '/usr/local/libexec/mhs-service'. Don't forget 'sudo ldconfig'!

Step 6

Building Moblin Web Browser

cd ~/moblin/moblin-web-browser
./autogen
make
sudo make install

You should now just be able to run 'moblin-web-browser', although you may want to run 'moblin-web-browser -w' so that it doesn't launch full-screen (and you may also want to alter the .desktop file to do this by default when launching from the applications menu). I'm plenty aware of bugs, but if you find something that isn't totally obvious, file it over here. Happy surfing :)

June 29, 2009 03:40 PM

June 28, 2009

Nick Richards

Links for 2009-06-27 [del.icio.us]

  • HelloLucky .co.uk
    "Wedding Invitations, Birth Announcements And Letterpress Greeting Cards"

June 28, 2009 07:00 AM

June 25, 2009

Clutter

Embedding GTK+ widgets inside a Clutter scene

Alex Larsson of Nautilus and GIO fame, and hacker extraordinaire has really outdone himself, this time.

Alex has been working for a while on the client-side window branch of GTK+, and apart from smooth and flicker-less resizing, simplified backends and transparency support even without the XComposite extension on every supported platform, this branch also allows embedding GTK+ widgets inside other toolkits — toolkits like Clutter.

so, here’s a screencap from Alex showing what it’s going to be possible in the near future:

Clutter Gtk integration from Alexander Larsson on Vimeo.

very exciting times ahead!

by Emmanuele at June 25, 2009 11:17 AM

The (Irregular) Clutter Weekly Report - w26

ouch: long time, no report. sorry about that. we’ve been incredibly busy — and not just with Clutter: the Moblin 2.0 netbook user interface, written using Clutter, has been released and everyone is incredibly excited about it.

what happened since week 7, then? well:

  • Clutter 0.9.2 has been released
  • Clutter 0.9.4 has been released
  • performance optimizations all over the board
  • clean up of the whole API, with the removal of deprecated and unused entry points
  • ClutterFixed and ClutterUnit have been removed, replaced by CoglFixed and ClutterUnits
  • simplified the internals of ClutterAnimation and made it much more generic; increased the convenience of clutter_actor_animate()
  • ClutterText supports ellipsis after wrapping, to cover the whole assigned area; it also supports double and triple click selection of words and lines, respectively
  • event processing, advancing of timelines, layouting and repainting are now handled by the master clock, which uses the sync-to-vblank (if available) to compress all the operations into discrete packets and removes the potential for starving the main loop with animations and event handling
  • ClutterTimeline is now completely time based — the speed and current frame properties have been removed since it’s all a function of time
  • all the API entry points and structures dealing with size and position are now using floating point for pixels with precision; this reduces the amount of type casting and unifies the API
  • COGL handles blend modes and texture combining using a string-based notation that should greatly simplify the life of developers

and much, much more.

also, Clutter-GTK+ 0.9.2 has been released and Clutter-GStreamer has a new maintainer that already fixed long-standing bugs and added new cool features, like the ability to do colorspace conversion using shaders.

by Emmanuele at June 25, 2009 11:10 AM

Clutter 0.9.4 - developers snapshot

hi everyone;

Clutter 0.9.4 is now available for download at:

  http://www.clutter-project.org/sources/clutter/0.9/

MD5 Checksums:

  912974d177f748b5dbf2b9c7fd39a57c  clutter-0.9.4.tar.gz
  f2bddf6ceabd7294996463a1e9637b3f  clutter-0.9.4.tar.bz2

Clutter is an open source software library for creating fast, visually rich and animated graphical user interfaces. Clutter is licensed under the terms of the GNU Lesser General Public License version 2.1.

Clutter currently requires:

  • GLib >= 2.16.0
  • Cairo >= 1.6
  • Pango >= 1.20
  • OpenGL >= 1.4, OpenGL ES 1.1 or OpenGL ES 2.0
  • GLX, SDL, WGL, Quartz or an EGL Implementation

To subscribe to the Clutter mailing list, send mail to: clutter+subscribe_at_o-hand.com
The official mailing list archive is: http://lists.o-hand.com/clutter/
API reference: Clutter, COGL

Notes

  • This is a development release of Clutter 0.9 leading towards the 1.0 stable cycle. It is the first release candidate for the 1.0.0 release: the Clutter high-level API is to be considered frozen, though there might be last minutes additions to the COGL low-level API to accommodate the performance improvements done in the cogl-journal-batching branch that is going to be merged next week.
  • This version is fully API and ABI incompatible with the previous 0.8 releases.
  • This version is parallel installable with Clutter 0.8.
  • Installing this version will overwrite the files from the installation of a git clone of the current development branch (master).
  • Bugs should be reported to: http://bugzilla.o-hand.com

What’s new in Clutter 0.9.4

  • Set the layout height in ClutterText, so that wrapping and ellipsization work correctly to fill all the allocated area.
  • Remove all the units-based API from ClutterActor, and migrate all the positional and dimensional accessors to use floating point values when dealing with pixels. All the properties dealing with pixels now take a floating point value as well. This change does have repercussions on functions with variadic arguments like clutter_actor_animate(), g_object_new(), g_object_set() and g_object_get().
  • Add the ability to track whether an actor is going to be painted or not, using the “mapped” flag. This also allows Clutter to be more strict in the handling of the scenegraph, ensuring correctness and avoiding wasting resources on nodes that won’t be painted.
  • Add debugging facilities for COGL, similar to those of Clutter; through them is also possible to have an on screen debugging mode that shows the boundaries of each rectangle sent to the GPU.
  • Rework “units” into real logical distance units that can be converted between millimeters, typographic points and ems, into pixels.
  • Simplify the Animation class to avoid redundancy and the possibility of it going out of sync with the Timeline and Alpha instances it uses.
  • Move every operation into a single “master clock” source that advances the timelines, dispatches events and redraws the stages in a predictable sequence, thus avoiding unneeded redraws. The default is to follow the sync-to-vblank cycle, if it is supported by the drivers.
  • Cache the glyphs geometry into a vertex buffer object to avoid resubmitting too much information to the GPU.
  • Rework the behaviour of ClutterModel when a filter is applied.
  • Allow submitting premultiplied texture data; this removes the need for unpremultiplying data in CairoTexture.
  • Add a simple API for submitting blending and texture combining modes through a string description.
  • Move Timelines to pure time-based objects.
  • The Input devices API has been cleaned up. Currently, the X11 support for XInput 1.x is disabled by default, and Clutter must be configured with –enable-xinput in order to enable it; XInput 1.x is going to be replaced by XInput2, which is a far better API. Support for XInput2 will be added during the 1.x cycle.
  • Lots of performance improvements.
  • Removal of all the deprecated API.
  • Removal of all the fixed point entry points.
  • Lots of documentation fixes - the coverage is now 99% of the exported 1600 symbols for Clutter and 80%+ of the 300 exported symbols for COGL.
  • Generate the GObject Introspection data for both Clutter and COGL at build time.
  • Build environment fixes.

Many thanks to:

    Owen W. Taylor
    Thomas Wood
    Havoc Pennington
    Bastian Winkler
    Chris Lord
    Garry Bodsworth
    Rob Bradford
    Johan Bilien
    Jonas Bonn
    Raymond Liu
    Damien Lespiau
    Dan Winship
    Marc-André Lureau
    Robert Staudinger
    Tommi Komulainen

by Emmanuele at June 25, 2009 11:10 AM