I did a 0.2.2 maintenance release for umockdev to fix building with Vala 0.16.1, gcc 4.8 (the changed sizeof behaviour caused segfaults), and current udev releases (umockdev-record stumbled over the new “link priority” fields of udevadm). There are also a couple of bug fixes, but no new features.
Time for the first PyGObject release for GNOME 3.9.x! This release brings the performance optimizations (thanks to Daniel Drake), quite a lot of internal code cleanup, and various bug fixes.
Thanks to all contributors!
- gtk-demo: Wrap description strings at 80 characters (Simon Feltman) (#698547)
- gtk-demo: Use textwrap to reformat description for Gtk.TextView (Simon Feltman) (#698547)
- gtk-demo: Use GtkSource.View for showing source code (Simon Feltman) (#698547)
- Use correct class for GtkEditable’s get_selection_bounds() function (Mike Ruprecht) (#699096)
- Test results of g_base_info_get_name for NULL (Simon Feltman) (#698829)
- Remove g_type_init conditional call (Jose Rostagno) (#698763)
- Update deps versions also in README (Jose Rostagno) (#698763)
- Drop compat code for old python version (Jose Rostagno) (#698763)
- Remove duplicate call to _gi.Repository.require() (Niklas Koep) (#698797)
- Add ObjectInfo.get_class_struct() (Johan Dahlin) (#685218)
- Change interpretation of NULL pointer field from None to 0 (Simon Feltman) (#698366)
- Do not build tests until needed (Sobhan Mohammadpour) (#698444)
- pygi-convert: Support toolbar styles (Kai Willadsen) (#698477)
- pygi-convert: Support new-style constructors for Gio.File (Kai Willadsen) (#698477)
- pygi-convert: Add some support for recent manager constructs (Kai Willadsen) (#698477)
- pygi-convert: Check for double quote in require statement (Kai Willadsen) (#698477)
- pygi-convert: Don’t transform arbitrary keysym imports (Kai Willadsen) (#698477)
- Remove Python keyword escapement in Repository.find_by_name (Simon Feltman) (#697363)
- Optimize signal lookup in gi repository (Daniel Drake) (#696143)
- Optimize connection of Python-implemented signals (Daniel Drake) (#696143)
- Consolidate signal connection code (Daniel Drake) (#696143)
- Fix setting of struct property values (Daniel Drake)
- Optimize property get/set when using GObject.props (Daniel Drake) (#696143)
- configure.ac: Fix PYTHON_SO with Python3.3 (Christoph Reiter) (#696646)
- Simplify registration of custom types (Daniel Drake) (#696143)
- pygi-convert.sh: Add GStreamer rules (Christoph Reiter) (#697951)
- pygi-convert: Add rule for TreeModelFlags (Jussi Kukkonen)
- Unify interface struct to Python GI marshaling code (Simon Feltman) (#693405)
- Unify Python interface struct to GI marshaling code (Simon Feltman) (#693405)
- Unify Python float and double to GI marshaling code (Simon Feltman) (#693405)
- Unify filename to Python GI marshaling code (Simon Feltman) (#693405)
- Unify utf8 to Python GI marshaling code (Simon Feltman) (#693405)
- Unify unichar to Python GI marshaling code (Simon Feltman) (#693405)
- Unify Python unicode to filename GI marshaling code (Simon Feltman) (#693405)
- Unify Python unicode to utf8 GI marshaling code (Simon Feltman) (#693405)
- Unify Python unicode to unichar GI marshaling code (Simon Feltman) (#693405)
- Fix enum and flags marshaling type assumptions (Simon Feltman)
- Make AM_CHECK_PYTHON_LIBS not depend on AM_CHECK_PYTHON_HEADERS (Christoph Reiter) (#696648)
- Use distutils.sysconfig to retrieve the python include path. (Christoph Reiter) (#696648)
- Use g_strdup() consistently (Martin Pitt) (#696650)
- Support PEP 3149 (ABI version tagged .so files) (Christoph Reiter) (#696646)
- Fix stack corruption due to incorrect format for argument parser (Simon Feltman) (#696892)
- Deprecate GLib and GObject threads_init (Simon Feltman) (#686914)
- Drop support for Python 2.6 (Martin Pitt)
- Remove static PollFD bindings (Martin Pitt) (#686795)
- Drop test skipping due to too old g-i (Martin Pitt)
- Bump glib and g-i dependencies (Martin Pitt)
Paul Wise poked me this morning about uploading fatrace (“file access trace”, see the original announcement for details) to Debian, thanks for the reminder!
So I filed an Intent To Package, and will upload it in a few days, unless some discussion evolves.
I also took the opportunity to do some modernization: The
power-usage-report script now uses the current PowerTop 2.x instead of the old 1.13, uses Python 3 now, and includes the “process device activity” in the report. I released this as 0.5. The actual
fatrace binary didn’t change its behaviour, it just got some code optimizations; thanks to Yann Droneaud for those.
PostgreSQL just released security updates. 9.1 (as found in Debian testing and unstable and Ubuntu 11.10 and later) is affected by a critical remote vulnerability which potentially allows anyone who can access the TCP port (without credentials) to corrupt local files. If your PostgreSQL database exposes the TCP port to any potentially untrusted location, please shut down your servers and update now!
PostgreSQL 8.4 for Debian stable (squeeze) and Ubuntu 8.04 LTS and 10.04 LTS also got an update, but these are much less urgent.
Debian and Ubuntu advisories for all stable releases, as well as Debian testing are going out as we speak. The updates are already on
I also uploaded updates for Debian unstable (8.4, 9.1, and 9.2 in experimental) and the Ubuntu backports PPA, but it will take a bit for these to build as we don’t have embargoed staging builds for those. Christoph updated the
apt.postgresql.org repository as well.
Warning: If you use the current Ubuntu raring Beta-2 candidate images, you will still have the old version. So if you do anything serious with those installations, please make sure to upgrade immediately.
Update: Debian and Ubuntu security announcements have been sent out, and all packages in the backports PPA are built.
Please see the official FAQ if you want to know some more details about the nature of the vulnerabilities.
Calling a method on the mock now emits a
MethodCalled signal on the
org.freedesktop.DBus.Mock interface. In some cases this is easier to track than parsing the mock’s log or using
GetMethodCalls. Thanks to Lars Uebernickel for this.
DBusTestCase.spawn_server_template() can now load local templates from your own project by specifying a path to a
*.py file as template name. Thanks to Lucas De Marchi for this feature.
I also wrote a quite comprehensive template for systemd’s logind. It stubs out the power management functionality as well as user/seat/session objects, and is convincing enough for
loginctl. Some bits like
AttachDevice is missing, as this sounds unlikely to be required for D-BUS mock tests, but please let me know if you need anything else.
The mock processes now terminate automatically if their connected D-BUS goes down, as advertised in the documentation.
You can get the new tarball from Launchpad, and I uploaded it to Debian experimental now.
I just released a new PyGObject for GNOME 3.7.92. This fixes a couple of crashes and marshalling errors again, but most importantly got a change to automatically mute the PyGIDeprecationWarnings for stable versions. Please run
pythonX.X with the
-Wd option to still be able to see them.
We got through all our bugs that were milestoned for GNOME 3.8 and don’t want to or plan to introduce any major behavioural change at this point, so barring catastrophes this is what will be in GNOME 3.8.0.
Thanks to all contributors!
- Fix stack smasher when marshaling enums as a vfunc return value (Simon Feltman) (#637832)
- Change base class of PyGIDeprecationWarning based on minor version (Simon Feltman) (#696011)
- autogen.sh: Source gnome-autogen to fix out of source builddir (Alban Browaeys) (#694889)
- pygtkcompat: Make gdk.Window.get_geometry return tuple of 5 (Simon Feltman)
- pygtkcompat: Initialize hint to zero in set_geometry_hints (Simon Feltman)
- Remove incorrect bounds check with property helper flags (Simon Feltman)
- Fix crash when setting property of type object to an incorrect type (Simon Feltman) (#695420)
- Remove skipping of object property tests (Simon Feltman) (#695420)
- Give more informative error when setting property to incorrect type (Simon Feltman) (#695420)
One issue that I hear surprisingly often is “there is zero documentation for those bindings”. Tools for building documentation out of a .gir have existed for a long time already, just far too many people seem to not know about them.
For example, to build Yelp XML documentation out of the libnotify bindings for Python:
$ g-ir-doc-tool --language=Python -o /tmp/notify-doc /usr/share/gir-1.0/Notify-0.7.gir
Then you can call
yelp /tmp/notify-doc to browse the documentation. You can of course also use the standard Mallard tools to convert them to HTML for sticking them on a website:
$ cd /tmp/notify-doc $ yelp-build html .
Admittedly they are far from pretty, and there are still lots of refinements that should be done for the documentation itself (like adding language specific examples) and also for the generated result (prettification, dynamic search, and what not), but it’s certainly far from “nothign”, and a good start.
If you are interested in working on this, please show up in
#introspection or discuss it on bugzilla, desktop-devel-list@, or the library specific lists/bug trackers.
I just released a new PyGObject for GNOME 3.7.91. This brings some marshalling fixes, plugs tons of memory leaks, and now raises a Python
DeprecationWarning when your code calls a method which is marked as deprecated in the typelib. Please note that Python hides them by default, so if you are interested in those you need to run python with the
Thanks to all contributors!
- Fix many memory leaks (#675726, #693402, #691501, #510511, #672224, and several more which are detected by our test suite) (Martin Pitt)
- Dot not clobber original Gdk/Gtk functions with overrides (Martin Pitt) (#686835)
- Optimize GValue.get/set_value by setting GValue.g_type to a local (Simon Feltman) (#694857)
- Run tests with G_SLICE=debug_blocks (Martin Pitt) (#691501)
- Add override helper for stripping boolean returns (Martin Pitt) (#694431)
- Drop obsolete pygobject_register_sinkfunc() declaration (Martin Pitt) (#639849)
- Fix marshalling of C arrays with explicit length in signal arguments (Martin Pitt) (#662241)
- Fix signedness, overflow checking, and 32 bit overflow of GFlags (Martin Pitt) (#693121)
- gi/pygi-marshal-from-py.c: Fix build on Visual C++ (Chun-wei Fan) (#692856)
- Raise DeprecationWarning on deprecated callables (Martin Pitt) (#665084)
- pygtkcompat: Add Widget.window, scroll_to_mark, and window methods (Simon Feltman) (#694067)
- pygtkcompat: Add Gtk.Window.set_geometry_hints which accepts keyword arguments (Simon Feltman) (#694067)
- Ship pygobject.doap for autogen.sh (Martin Pitt) (#694591)
- Fix crashes in various GObject signal handler functions (Simon Feltman) (#633927)
- pygi-closure: Protect the GSList prepend with the GIL (Olivier Crête) (#684060)
- generictreemodel: Fix bad default return type for get_column_type (Simon Feltman)
- umockdev-wrapper: Use exec to avoid keeping the shell process around and make killing the subprogram from outside work properly.
- Fix building with automake 1.12, thanks Peter Hutterer.
- Support opening several netlink sockets (i. e. udev monitors) at the same time.
- Fix building with older kernels which don’t have the EVIOCGMTSLOTS ioctl yet.
This fixes the “bind: address already in use” errors that were popping up in X.org and upower when running under umockdev, and finally gets us working packages for Ubuntu 12.04 LTS (in the daily-builds PPA).