PyGObject 3.7.5 released
4 February 2013

I just released a new PyGObject for GNOME 3.7.5. Unfortunately master.gnome.org is out of space right now, so I put the new tarball on my Ubuntu people account for the time being. This again brings a nice set of memory leak and bug fixes, some more reduction of static bindings, and better support for building under Windows. Thanks to all contributors! Move various signal methods from static bindings to gi and python (Simon Feltman) (#692918) GLib overrides: Support unpacking ‘maybe’ variants (Paolo Borelli) (#693032) Fix ref count leak when creating pygobject wrappers for input args (Mike Gorse) (#675726) Prefix names of typeless enums and flags for GType registration (Simon Feltman) (#692515) Fix compilation with non-C99 compilers such as Visual C++ (Chun-wei Fan) (#692856) gi/overrides/Glib. ... Read More

PyGObject 3.7.4 released
14 January 2013

I just released a new PyGObject, for GNOME 3.7.4 which is due on Wednesday. This release saw a lot of bug and memory leak fixes again, as well as enabling some more data types such as GParamSpec, boxed list properties, or directly setting string members in structs. Thanks to all contributors! Summary of changes (see change log for complete details): Allow setting values through GtkTreeModelFilter (Simonas Kazlauskas) (#689624) Support GParamSpec signal arguments from Python (Martin Pitt) (#683099) pygobject_emit(): Fix cleanup on error (Martin Pitt) Add signal emission methods to TreeModel which coerce the path argument (Simon Feltman) (#682933) Add override for GValue (Bastian Winkler) (#677473) Mark caller-allocated boxed structures as having a slice allocated (Mike Gorse) (#699501) pygi-property: Support boxed GSList/GList types (Olivier CrĂȘte) (#684059) tests: Add missing backwards compat methods for Python 2. ... Read More

PyGObject 3.7.3 released
17 December 2012

I just released a new PyGObject, for GNOME 3.7.3 which is due on Wednesday. This is mostly a bug fix release. There is one API addition, it brings back official support for calling GLib.io_add_watch() with a Python file object or fd as first argument, in addition to the official API which expects a GLib.IOChannel object. These modes were marked as deprecated in 3.7.2 (only). Thanks to all contributors! Summary of changes (see change log for complete details): ... Read More
When writing system integration tests it often happens that I want to mount some tmpfses over directories like /etc/postgresql/ or /home, and run the whole script with an unshared mount namespace so that (1) it does not interfere with the real system, and (2) is guaranteed to clean up after itself (unmounting etc.) after it ends in any possible way (including SIGKILL, which breaks usual cleanup methods like “trap”, “finally”, “def tearDown()”, “atexit()” and so on). ... Read More
I just released Apport 2.7. The main new feature is supporting foreign architectures in apport-retrace. If apport-retrace works in sandbox mode and works on a crash that was not produced on the same architecture as apport-retrace is running on, it will now build a sandbox for the report’s architecture and invoke gdb with the necessary magic options to produce a proper stack trace (and the other gdb information). Right now this works for i386, x86_64, and ARMv7, but if someone is interested in making this work for other architectures, please ping me. ... Read More

PyGObject 3.7.2 released
19 November 2012

just released a new PyGObject, for GNOME 3.7.2 which is due on Wednesday. In this version PyGObject went through some major refactoring: Some 5.000 lines of static bindings were removed and replaced with proper introspection and some overrides for backwards compatibility, and the static/GI/overrides code structure was simplified. For the developer this means that you can now use the full GLib API, a lot of which was previously hidden by old and incomplete static bindings; also you can and should now use the officially documented GLib API instead of PyGObject’s static one, which has been marked as deprecated. ... Read More

python-dbusmock templates
15 November 2012

With python-dbusmock you can provide mocks for arbitrary D-BUS services for your test suites or if you want to reproduce a bug. However, when writing actual tests for gnome-settings-daemon etc. I noticed that it is rather cumbersome to always have to set up the “skeleton” of common services such as UPower. python-dbusmock 0.2 now introduces the concept of “templates” which provide those skeletons for common standard services so that your code only needs to set up the particular properties and specific D-BUS objects that you need. ... Read More

PyGObject 3.4.2 released
12 November 2012

I just released PyGObject 3.4.2, a bug fix release for GNOME 3.6.2. Thanks to all contributors! Fix marshalling of GByteArrays (Martin Pitt) Fix marshalling of ssize_t to smaller ints (Martin Pitt) Fix crash with GLib.child_watch_add (Daniel Narvaez) (#688067) Fix various bugs in GLib.IOChannel (Martin Pitt) Work around wrong 64 bit constants in GLib Gir (Martin Pitt) (#685022) Fix OverflowError in source_remove() (Martin Pitt) (#684526) Fix Signal decorator to not use base class gsignals dict (Simon Feltman) (#686496)
A few days ago Olav Vitters announced the GNOME 3.8 goal of porting to Python 3. This has been discussed on desktop-devel-list@ in the past days, and the foundations for this are now ready: pygobject now has a –with-python option. (commit) JHBuild now defaults to building pygobject for Python 3, but introduces a “pygobject-python2” project for the transition phase which provides pygobject built for Python 2. (commit) All dependencies to “pygobject” were changed to “pygobject-python2” to avoid breaking modules. ... Read More
For writing tests for GVFS (current tests, proposed improvements) I want to run Samba as normal user, so that we can test gvfs’ smb backend without root privileges and thus can run them safely and conveniently in a “make check” environment for developers and in JHBuild for continuous integration testing. Before these tests could only run under gvfs-testbed, which needs root. Unlike other servers such as ssh or ftp, this turned out surprisingly non-obvious and hard, so I want to document it in this blog post for posterity’s benefit. ... Read More