<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Martin Pitt &#187; debian</title>
	<atom:link href="http://www.piware.de/category/debian/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.piware.de</link>
	<description>addicted to Ubuntu development</description>
	<lastBuildDate>Fri, 03 Feb 2012 07:03:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
		<item>
		<title>PostgreSQL 9.1 final packages available for Debian/Ubuntu</title>
		<link>http://www.piware.de/2011/09/postgresql-9-1-final-packages-available-for-debianubuntu/</link>
		<comments>http://www.piware.de/2011/09/postgresql-9-1-final-packages-available-for-debianubuntu/#comments</comments>
		<pubDate>Tue, 13 Sep 2011 04:19:20 +0000</pubDate>
		<dc:creator>pitti</dc:creator>
				<category><![CDATA[debian]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[announcement]]></category>
		<category><![CDATA[postgresql]]></category>

		<guid isPermaLink="false">http://www.piware.de/?p=519</guid>
		<description><![CDATA[Hot on the heels of the PostgreSQL 9.1.0 release I am happy to announce that the final version is now packaged for Debian unstable, the current Ubuntu development version &#8220;Oneiric&#8221;, and also in my Ubuntu backports PPA for Ubuntu 10.04 LTS, 10.10, and 11.04. Enjoy trying out all the cool new features like builtin synchronous [...]]]></description>
			<content:encoded><![CDATA[<p>Hot on the heels of the <a href="http://www.postgresql.org/about/news.1349">PostgreSQL 9.1.0 release</a> I am happy to announce that the final version is now packaged for <a href="http://packages.qa.debian.org/p/postgresql-9.1/news/20110912T144932Z.html">Debian unstable</a>, the <a href="https://launchpad.net/ubuntu/+source/postgresql-9.1/9.1.0-1">current Ubuntu development version &#8220;Oneiric&#8221;</a>, and also in my <a href="https://launchpad.net/~pitti/+archive/postgresql">Ubuntu backports PPA</a> for Ubuntu 10.04 LTS, 10.10, and 11.04.</p>
<p>Enjoy trying out all the cool new features like builtin synchronous replication or per-column collation settings for correctly handling international strings, or an even finer-grained access control for large environments. Please see <a href="http://wiki.postgresql.org/wiki/What%27s_new_in_PostgreSQL_9.1">the detailled explanation</a> of the new features.</p>
<p>As already <a href="http://www.piware.de/2011/09/dropping-postgresql-9-0-packages-for-debianubuntubackports/">announced a few days ago</a>, 9.0 is gone from Ubuntu 11.10, as it is still only a development version and not an LTS. 9.1 will be the version which the next 12.04 LTS will support, so this slightly reduces the number of major upgrades Ubuntu users will need to do. However, 9.0 will still be available in Debian unstable and backports, and the Ubuntu backports PPA for a couple of months to give DB administrators some time to migrate.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.piware.de/2011/09/postgresql-9-1-final-packages-available-for-debianubuntu/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Dropping PostgreSQL 9.0 packages for Debian/Ubuntu/backports</title>
		<link>http://www.piware.de/2011/09/dropping-postgresql-9-0-packages-for-debianubuntubackports/</link>
		<comments>http://www.piware.de/2011/09/dropping-postgresql-9-0-packages-for-debianubuntubackports/#comments</comments>
		<pubDate>Thu, 08 Sep 2011 14:28:06 +0000</pubDate>
		<dc:creator>pitti</dc:creator>
				<category><![CDATA[debian]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[announcement]]></category>
		<category><![CDATA[backports]]></category>
		<category><![CDATA[deprecation]]></category>
		<category><![CDATA[postgresql]]></category>

		<guid isPermaLink="false">http://www.piware.de/?p=513</guid>
		<description><![CDATA[PostgreSQL 9.1 has had its first release candidate out for some two weeks without major problem reports, so it&#8217;s time to promote this more heavily. If you use PostgreSQL, now is the time to try it out and report problems. We always strive to minimize the number of major versions which we have to support. [...]]]></description>
			<content:encoded><![CDATA[<p>PostgreSQL 9.1 has had its first release candidate out for some two weeks without major problem reports, so it&#8217;s time to promote this more heavily. If you use PostgreSQL, now is the time to try it out and report problems.</p>
<p>We always strive to minimize the number of major versions which we have to support. They not only mean more maintenance for developers, but also more upgrade cycles for the users.</p>
<p>9.0 has not been in any stable Debian or Ubuntu release, and 9.1 final will be released soon. So we recently updated the current Ubuntu development release for 11.10 (&#8220;oneiric&#8221;) <a href="https://launchpad.net/bugs/833684">to 9.1</a>. In Debian, the <a href="http://lists.alioth.debian.org/pipermail/pkg-postgresql-public/2011-August/000570.html">migration from 8.4/9.0 to 9.1</a> is making good progress, and there is not much which is left until <a href="http://bugs.debian.org/639465">postgresql-9.0 can be removed</a>.</p>
<p>Consequently, I also removed 9.0 from my <a href="https://launchpad.net/~pitti/+archive/postgresql">PostgreSQL backports PPA</a>, as there is nothing any more to backport it from. However, that mostly means that people will now set up installations with 9.1 instead of 9.0, and won&#8217;t magically make your already installed 9.0 packages go away. They will just be marked as obsolete in the postgresql-common debconf note.</p>
<p>If you want to build future 9.0 packages yourself, you can do this based on the current branch: <code>bzr branch lp:~pitti/postgresql/debian-9.0</code>, get a the new upstream tarball, name it accordingly, add a new changelog with a new upstream version number, and run <code>bzr bd</code> to build the package (you need to install the <code>bzr-builddeb</code> package for this).</p>
<p><strong>Update 2011-09-09:</strong> As I got a ton of pleas to continue the 9.0 backports for a couple of months, and to keep it in Debian unstable for a while longer, I put them back now. I also updated the removal request in Debian to point out that I&#8217;m mainly interested in getting 9.0 out of testing. I don&#8217;t mind much maintaining it for a couple of more months in unstable. My dear, I had no idea that my backports PPA was <em>that</em> popular!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.piware.de/2011/09/dropping-postgresql-9-0-packages-for-debianubuntubackports/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Debian/Ubuntu packages for PostgreSQL 9.1 Beta 2</title>
		<link>http://www.piware.de/2011/06/debianubuntu-packages-for-postgresql-9-1-beta-2/</link>
		<comments>http://www.piware.de/2011/06/debianubuntu-packages-for-postgresql-9-1-beta-2/#comments</comments>
		<pubDate>Tue, 14 Jun 2011 08:29:53 +0000</pubDate>
		<dc:creator>pitti</dc:creator>
				<category><![CDATA[debian]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[announcement]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[QA]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://www.piware.de/?p=498</guid>
		<description><![CDATA[Hot on the heels of the Announcement of the second 9.1 Beta release there are now packages for it in Debian experimental and backports for Ubuntu 10.04 LTS, 10.10. and 11.04 in my PostgreSQL backports for stable Ubuntu releases PPA. Warning for upgrades from Beta 1: The on-disk database format changed since Beta-1. So if [...]]]></description>
			<content:encoded><![CDATA[<p>Hot on the heels of the <a href="http://www.postgresql.org/about/news.1323">Announcement of the second 9.1 Beta release</a> there are now packages for it in <a href="http://packages.debian.org/source/experimental/postgresql-9.1">Debian experimental</a> and backports for Ubuntu 10.04 LTS, 10.10. and 11.04 in my <a href="https://launchpad.net/~pitti/+archive/postgresql">PostgreSQL backports for stable Ubuntu releases PPA</a>.</p>
<p><strong>Warning for upgrades from Beta 1:</strong> The on-disk database format changed since Beta-1. So if you already have the beta-1 packages installed, you need to <code>pg_dumpall</code> your 9.1 clusters (if you still need them), and <code>pg_dropcluster</code> all 9.1 clusters before the upgrade. I added a check to the pre-install script to make the <code>postgresql-9.1</code> package fail early to upgrade if you still have existing 9.1 clusters to avoid data loss.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.piware.de/2011/06/debianubuntu-packages-for-postgresql-9-1-beta-2/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Packages for PostgreSQL 9.1 Beta 1 now available</title>
		<link>http://www.piware.de/2011/05/packages-for-postgresql-9-1-beta-1-now-available/</link>
		<comments>http://www.piware.de/2011/05/packages-for-postgresql-9-1-beta-1-now-available/#comments</comments>
		<pubDate>Wed, 11 May 2011 10:51:48 +0000</pubDate>
		<dc:creator>pitti</dc:creator>
				<category><![CDATA[debian]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[announcement]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[QA]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://www.piware.de/?p=493</guid>
		<description><![CDATA[Two weeks ago, PostgreSQL announced the first beta version of the new major 9.1 version, with a lot of anticipated new features like synchronous replication or better support for multilingual databases. Please see the release announcement for details. Due to my recent moving and the Ubuntu Developer Summit it took me a bit to package [...]]]></description>
			<content:encoded><![CDATA[<p>Two weeks ago, <a href="http://www.postgresql.org">PostgreSQL</a> announced the first beta version of the new major 9.1 version, with a lot of anticipated new features like synchronous replication or better support for multilingual databases. Please see the <a href="http://www.postgresql.org/about/news.1313">release announcement</a> for details.</p>
<p>Due to my recent moving and the Ubuntu Developer Summit it took me a bit to package them for Debian and Ubuntu, but here they are at last. I uploaded <a href="http://packages.qa.debian.org/p/postgresql-9.1.html">postgresql-9.1</a> to Debian experimental; currently they are sitting in the <a href="http://ftp-master.debian.org/new.html">NEW queue</a>, but I&#8217;m sure our restless Debian archive admins will get to it in a few days. I also provided builds for Ubuntu 10.04 LTS, 10.10. and 11.04 in my <a href="https://launchpad.net/~pitti/+archive/postgresql">PostgreSQL backports for stable Ubuntu releases PPA</a>.</p>
<p>I provided full <a href="http://people.debian.org/~mpitt/architecture.html">postgresql-common</a> integration, i. e. you can use all the usual tools like <code>pg_createcluster</code>, <code>pg_upgradecluster</code> etc. to install 9.1 side by side with your 8.4/9.0 instances, attempt an upgrade of your existing instances to 9.1 without endangering the running clusters, etc. Fortunately this time there were no deprecated configuration options, so <code>pg_upgradecluster</code> does not actually have to touch your <code>postgresql.conf</code> for the 9.0 →9.1 upgrade.</p>
<p>They pass upstream&#8217;s and postgresql-common&#8217;s integration test suite, so should be reasonably working. But please let me know about everything that doesn&#8217;t, so that we can get them in perfect shape in time for the final release.</p>
<p>I anticipate that 9.1 will be the default (and only supported) version in the next Debian release (wheezy), and will most likely be the one shipped in the next Ubuntu LTS (in 12.04). It might be that the next Ubuntu release 11.10 will still ship with 9.0, but that pretty much depends on how many extensions get ported to 9.1 by feature freeze.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.piware.de/2011/05/packages-for-postgresql-9-1-beta-1-now-available/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Improved PyGI documentation</title>
		<link>http://www.piware.de/2011/04/improved-pygi-documentation/</link>
		<comments>http://www.piware.de/2011/04/improved-pygi-documentation/#comments</comments>
		<pubDate>Tue, 12 Apr 2011 18:16:26 +0000</pubDate>
		<dc:creator>pitti</dc:creator>
				<category><![CDATA[debian]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[announcement]]></category>
		<category><![CDATA[application-developers]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[gobject-introspection]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[pygobject]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.piware.de/?p=463</guid>
		<description><![CDATA[As a followup action to my recent Talk about PyGI I now re-used my notes to provide some real wiki documentation. It would be great if you could add package name info for Fedora/SUSE/etc., and perhaps add more example links for porting different kinds of software! Please also let me know if you have suggestions [...]]]></description>
			<content:encoded><![CDATA[<p>As a followup action to my recent <a href="http://www.piware.de/2011/04/pygtk-is-dead-long-live-pygi-app-developer-week-talk/">Talk about PyGI</a> I now re-used my notes to provide some real <a href="https://live.gnome.org/PyGObject/IntrospectionPorting">wiki documentation</a>. </p>
<p>It would be great if you could add package name info for Fedora/SUSE/etc., and perhaps add more example links for porting different kinds of software! Please also let me know if you have suggestions how to improve the structure of the page.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.piware.de/2011/04/improved-pygi-documentation/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>PyGTK is dead, long live PyGI! &#8211; App Developer Week Talk</title>
		<link>http://www.piware.de/2011/04/pygtk-is-dead-long-live-pygi-app-developer-week-talk/</link>
		<comments>http://www.piware.de/2011/04/pygtk-is-dead-long-live-pygi-app-developer-week-talk/#comments</comments>
		<pubDate>Fri, 08 Apr 2011 14:08:15 +0000</pubDate>
		<dc:creator>pitti</dc:creator>
				<category><![CDATA[debian]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[announcement]]></category>
		<category><![CDATA[application-developers]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[gobject-introspection]]></category>
		<category><![CDATA[presentation]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.piware.de/?p=456</guid>
		<description><![CDATA[On next Monday this cycle&#8217;s Ubuntu Application Developer Week classes will start. The topic that kept me busy most in this cycle was Python gobject-introspection, and porting pygtk2 apps to PyGI (see my initial steps and my report from the PyGI hackfest.) To spread the love, there will be two talks about this next week: [...]]]></description>
			<content:encoded><![CDATA[<p>On next Monday this cycle&#8217;s <a href="https://wiki.ubuntu.com/UbuntuAppDeveloperWeek">Ubuntu Application Developer Week</a> classes will start.</p>
<p>The topic that kept me busy most in this cycle was Python <a href="http://live.gnome.org/GObjectIntrospection">gobject-introspection</a>, and porting pygtk2 apps to PyGI (see <a href="http://www.piware.de/2010/11/gtk-3-0gir-application-porting-successes-and-problems/">my initial steps</a> and <a href="http://www.piware.de/2011/01/na-zdravi-pygi/">my report from the PyGI hackfest</a>.)</p>
<p>To spread the love, there will be two talks about this next week: On Monday 17:00 UTC the very Tomeu Vizoso himself will explain what gobject-introspection (&#8220;GI&#8221;) is, why we need it, and how library developers use it to ship a good and useful GI binding (&#8220;typelib&#8221;) for application developers. I will then follow up on Tuesday 16:00 UTC about the app developer side, in particular how to use the GI typelibs in Python, and how to port PyGTK2 applications to PyGI.</p>
<p>For the most part these sessions are distribution neutral (we don&#8217;t have any special sauce for this in Debian/Ubuntu, it all happened right upstream <img src='http://www.piware.de/wp/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ); only a very small fraction of it (where I explain package names, etc.) will be specific to Debian/Ubuntu, but shouldn&#8217;t be hard to apply to other distributions as well.</p>
<p>So please feel invited to join, and bombard us with questions!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.piware.de/2011/04/pygtk-is-dead-long-live-pygi-app-developer-week-talk/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Na zdraví PyGI!</title>
		<link>http://www.piware.de/2011/01/na-zdravi-pygi/</link>
		<comments>http://www.piware.de/2011/01/na-zdravi-pygi/#comments</comments>
		<pubDate>Mon, 24 Jan 2011 10:44:20 +0000</pubDate>
		<dc:creator>pitti</dc:creator>
				<category><![CDATA[debian]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[brmlab]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[gobject-introspection]]></category>
		<category><![CDATA[gtk]]></category>
		<category><![CDATA[hackfest]]></category>
		<category><![CDATA[prague]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[pygobject]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.piware.de/?p=435</guid>
		<description><![CDATA[(Update: Link to Tomeu&#8217;s blog post, repost for planet.gnome.org) Last week I was in Prague to attend the GNOME/Python 2011 Hackfest for gobject-introspection, to which Tomeu Vizoso kindly invited me after I started working with PyGI some months ago. It happened at a place called brmlab which was quite the right environment for a bunch [...]]]></description>
			<content:encoded><![CDATA[<p>(<strong>Update:</strong> Link to Tomeu&#8217;s blog post, repost for <a href="http://planet.gnome.org/">planet.gnome.org</a>)</p>
<p>Last week I was in Prague to attend the <a href="http://live.gnome.org/Hackfests/Python2011">GNOME/Python 2011 Hackfest for gobject-introspection</a>, to which Tomeu Vizoso kindly invited me after I <a href="http://www.piware.de/2010/11/gtk-3-0gir-application-porting-successes-and-problems/">started working with PyGI some months ago</a>. It happened at a place called <a href="http://brmlab.cz/place">brmlab</a> which was quite the right environment for a bunch of 9 hackers: Some comfy couches and chairs, soldering irons, lots of old TV tubes, chips, and other electronics, a big Pirate flag, really good Wifi, plenty of Club Mate and Coke supplies, and not putting unnecessary effort into mundane things like wallpapers.</p>
<p>It was really nice to get to know the upstream experts John (J5) Palmieri and Tomeu Vizoso (check out <a href="http://blog.tomeuvizoso.net/2011/01/wrap-up-python-gnome-hackfest-2011.html">Tomeu&#8217;s blog post</a> for his summary and some really nice photos). When sitting together in a room, fully focussing on this area for a full week, it&#8217;s so much easier to just ask them about something and getting things done and into upstream than on IRC or bugzilla, where you don&#8217;t know each other personally. I certainly learned a lot this week (and not only how great Czech beer tastes <img src='http://www.piware.de/wp/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  )!</p>
<p>So what did I do?</p>
<h3>Application porting</h3>
<p>After already having ported four Ubuntu PyGTK applications to GI before (<a href="https://launchpad.net/apport">apport</a>, <a href="https://launchpad.net/jockey">jockey</a>, <a href="https://launchpad.net/aptdaemon">aptdaemon</a>, and <a href="https://launchpad.net/language-selector">language-selector</a>),<br />
my main goal and occupation during this week was to start porting a bigger PyGTK application. I picked <a href="http://cyberelk.net/tim/software/system-config-printer/">system-config-printer</a>, as it&#8217;s two magnitudes bigger than the previous projects, exercises quite a lot more of the GTK GI bindings, and thus also exposes a lot more GTK annotation and pygobject bugs. This resulted in a new <a href="http://git.fedorahosted.org/git/?p=system-config-printer.git;a=shortlog;h=refs/heads/pygi">pygi s-c-p branch</a> which has the first 100 rounds of &#8220;test, break, fix&#8221; iterations. It now at least starts, and you can do a number of things with it, but a lot of functionality is still broken.</p>
<p>As a kind of &#8220;finger exercise&#8221; and also to check for how well pygi-convert works for small projects now, I also <a href="https://code.launchpad.net/~pitti/computer-janitor/pygi/+merge/46779">ported computer-janitor</a>. This went really well (I had it working after about 30 minutes), and also led me to finally <a href="http://git.gnome.org/browse/pygobject/commit/?id=7a0548dbfbdfe481f75315b6bc7824a9f1a8a87b">fixing</a> the unicode vs. str mess for GtkTreeView that you got so far with Python 2.x.</p>
<h3>pygobject and GTK fixes</h3>
<p>Porting system-config-printer and computer-janitor uncovered a lot of opportunities to <a href="http://git.gnome.org/browse/pygobject/log/pygi-convert.sh?qt=author&amp;q=martin.pitt">improve pygi-convert.sh</a>, a big &#8220;perl -e&#8221; kind of script to do the mechanical grunt work of the porting process. It doesn&#8217;t fix up changed signatures (such as adding missing arguments which were default arguments in PyGTK, or the ubiquitous &#8220;user_data&#8221; argument for signal handlers), but at least it gets a lot of namespaces, method, and constant names right.</p>
<p>I also fixed three <a href="http://git.gnome.org/browse/gtk+/log/?qt=author&amp;q=martin.pitt">annotation fixes in GTK+</a>. We also collaboratively reviewed and tested <a href="http://git.gnome.org/browse/gtk+/log/?qt=author&amp;q=Pavel+Holejsovsky">Pavel&#8217;s annotation branch</a> which helped to fix tons of problems, especially after Steve Frécinaux&#8217;s excellent <a href="http://git.gnome.org/browse/pygobject/commit/?id=f0a0b6c2eda89622de2b1e5ebb6a48103ad72a42">reference leak fix</a>, so if you play around with current pygobject git head, you really also have to use the current GTK+ git head.</p>
<p>Speaking of which, if you want to port applications and always stay on top of the pygobject/GTK development without having to clutter your package system with &#8220;make install&#8221;s of those, it works very well to have this in your ~/.bashrc:</p>
<pre>export GI_TYPELIB_PATH=$HOME/projects/gtk/gtk:$HOME/projects/gtk/gdk
export PYTHONPATH=$HOME/projects/pygobject</pre>
<h3>Better GVariant/GDBus support</h3>
<p>The GNOME world is moving from the old dbus-glib python bindings to GDBus, which is integrated into GLib. However, dbus-python exposed a really nice and convenient way of doing D-Bus calls, while using GDBus from Python was hideously complicated, especially for <a href="https://bugzilla.gnome.org/show_bug.cgi?id=639939">nontrivial arguments</a> with empty or nested arrays:</p>
<pre>from gi.repository import Gio, GLib
from gi._gi import variant_type_from_string

d = Gio.bus_get_sync(Gio.BusType.SESSION, None)
notify = Gio.DBusProxy.new_sync(d, 0, None, 'org.freedesktop.Notifications',
    '/org/freedesktop/Notifications', 'org.freedesktop.Notifications', None)

vb = GLib.VariantBuilder()
vb.init(variant_type_from_string('r'))
vb.add_value(GLib.Variant('s', 'test'))
vb.add_value(GLib.Variant('u', 1))
vb.add_value(GLib.Variant('s', 'gtk-ok'))
vb.add_value(GLib.Variant('s', 'Hello World!'))
vb.add_value(GLib.Variant('s', 'Subtext'))
# add an empty array
eavb = GLib.VariantBuilder()
eavb.init(variant_type_from_string('as'))
vb.add_value(eavb.end())
# add an empty dict
eavb = GLib.VariantBuilder()
eavb.init(variant_type_from_string('a{sv}'))
vb.add_value(eavb.end())
vb.add_value(GLib.Variant('i', 10000))
args = vb.end()

result = notify.call_sync('Notify', args, 0, -1, None)
id = result.get_child_value(0).get_uint32()
print id</pre>
<p>So I went to making the GLib.Variant constructor work properly with <a href="http://git.gnome.org/browse/pygobject/commit/?id=6d8ff4d5bdda5480089543869535cc3ee83da2f5">nested types</a> and <a href="http://git.gnome.org/browse/pygobject/commit/?id=e97e28048efb966ecc1a03277d36cbaa81b8db7d">boxed variants</a>, adding <a href="http://git.gnome.org/browse/pygobject/commit/?id=b1a98083cdc50653e1d7bfb809bdf089f833df3d">Pythonic GVariant iterators and indexing</a> (so that you can treat GVariant dictionaries/arrays/tuples just like their Python equivalents), and finally a <a href="http://git.gnome.org/browse/pygobject/commit/?id=ecb9f824c503c529d43e585b4cdb4c1c9ab14593">Variant.unpack()</a> method for converting the return value of a D-Bus call back into a native Python data type. This looks a lot friendlier now:</p>
<pre>from gi.repository import Gio, GLib

d = Gio.bus_get_sync(Gio.BusType.SESSION, None)
notify = Gio.DBusProxy.new_sync(d, 0, None, 'org.freedesktop.Notifications',
    '/org/freedesktop/Notifications', 'org.freedesktop.Notifications', None)

args = GLib.Variant('(susssasa{sv}i)', ('test', 1, 'gtk-ok', 'Hello World!',
    'Subtext', [], {}, 10000))
result = notify.call_sync('Notify', args, 0, -1, None)
id = result.unpack()[0]
print id</pre>
<p>I also prepared another patch in <a href="https://bugzilla.gnome.org/show_bug.cgi?id=640181">GNOME#640181</a> which will provide the icing on the cake, i. e. handle the variant building/unpacking transparently and make the explicit call_sync() unnecessary:</p>
<pre>from gi.repository import Gio, GLib

d = Gio.bus_get_sync(Gio.BusType.SESSION, None)
notify = Gio.DBusProxy.new_sync(d, 0, None, 'org.freedesktop.Notifications',
    '/org/freedesktop/Notifications', 'org.freedesktop.Notifications', None)

result = notify.Notify('(susssasa{sv}i)', 'test', 1, 'gtk-ok', 'Hello World!',
            'Subtext', [], {}, 10000)
print result[0]</pre>
<p>I hope that I can get this reviewed and land this soon.</p>
<p><img class="alignleft" src="http://live.gnome.org/Travel/Policy?action=AttachFile&amp;do=get&amp;target=sponsored-badge-shadow.png" alt="" width="138" height="138" /></p>
<h3>Thanks to our sponsors!</h3>
<p>Many thanks to the <a href="http://foundation.gnome.org/">GNOME Foundation</a> and <a href="http://www.collabora.co.uk">Collabora</a> for sponsoring this event!</p>
<p><img src="http://www.collabora.co.uk/logos/collabora-logo-big.png" width="25%" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.piware.de/2011/01/na-zdravi-pygi/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>PostgreSQL 9.0 final released</title>
		<link>http://www.piware.de/2010/09/postgresql-9-0-final-released/</link>
		<comments>http://www.piware.de/2010/09/postgresql-9-0-final-released/#comments</comments>
		<pubDate>Mon, 20 Sep 2010 15:37:20 +0000</pubDate>
		<dc:creator>pitti</dc:creator>
				<category><![CDATA[debian]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[announcement]]></category>
		<category><![CDATA[backports]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[postgresql]]></category>

		<guid isPermaLink="false">http://www.piware.de/?p=391</guid>
		<description><![CDATA[After 20 days of final polishing and maturing since the release candidate, the PostgreSQL team released the final 9.0 version today. Hot off the press, I uploaded postgresql-9.0 final into Debian unstable; they will not go into Debian Squeeze, because Squeeze is frozen and it will take a long time to port all the packaged [...]]]></description>
			<content:encoded><![CDATA[<p>After 20 days of final polishing and maturing since <a href="http://www.piware.de/2010/09/postgresql-9-0-rc1-available-for-testing/">the release candidate</a>, the PostgreSQL team <a href="http://www.postgresql.org/about/news.1235">released the final 9.0</a> version today.</p>
<p>Hot off the press, I <a href="http://packages.qa.debian.org/p/postgresql-9.0/news/20100920T133241Z.html">uploaded</a> <code>postgresql-9.0</code> final into Debian unstable; they will not go into Debian Squeeze, because Squeeze is frozen and it will take a long time to port all the packaged server side extensions to 9.0.</p>
<p>If you are on Ubuntu 10.04 LTS or Ubuntu 10.10, you can add  my <a href="https://launchpad.net/~pitti/+archive/postgresql">PostgreSQL backports for stable Ubuntu releases</a> PPA, which will carry 9.0 until it can be moved to the official Ubuntu backports (i. e. when 9.0 goes into Ubuntu Natty).</p>
<p>Enjoy, and kudos to the PostgreSQL team!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.piware.de/2010/09/postgresql-9-0-final-released/feed/</wfw:commentRss>
		<slash:comments>54</slash:comments>
		</item>
		<item>
		<title>What I do</title>
		<link>http://www.piware.de/2010/09/what-i-do/</link>
		<comments>http://www.piware.de/2010/09/what-i-do/#comments</comments>
		<pubDate>Tue, 14 Sep 2010 07:08:49 +0000</pubDate>
		<dc:creator>pitti</dc:creator>
				<category><![CDATA[debian]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[Apport]]></category>
		<category><![CDATA[canonical]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[history]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[udev]]></category>

		<guid isPermaLink="false">http://www.piware.de/?p=371</guid>
		<description><![CDATA[It&#8217;s been a decade ago when I did my first steps with contributing to Free Software, about seven years when I joined Debian, and about 6 with Canonical and Ubuntu. Time for some reflection what I have done over these years! Distribution Packaging and Maintenance My first sponsored Debian upload ever was cracklib2, which seriously [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a decade ago when I did my first steps with contributing to Free Software, about seven years when I joined Debian, and about 6 with Canonical and Ubuntu. Time for some reflection what I have done over these years!</p>
<h3>Distribution Packaging and Maintenance</h3>
<p>
My first sponsored Debian upload ever was <a href="http://packages.qa.debian.org/c/cracklib2.html">cracklib2</a>, which seriously needed some love and was looking for a new maintainer. So in <a href="http://packages.debian.org/changelogs/pool/main/c/cracklib2/current/changelog#versionversion2.7-9">that upload</a> I managed to close all outstanding bugs. Thanks to my mentor Martin Godisch about providing a lot of guidance for this!</p>
</p>
<p>Since then I&#8217;ve maintained various packages, where the most popular ones are certainly the free database server &#8220;PostgreSQL&#8221; (see next section) and the e-book management software &#8220;Calibre&#8221;.</p>
<p>&#8220;Maintaining&#8221; by and large means &#8220;making it really easy to get and use this software&#8221;. This decomposes to:</p>
<ul>
<li>Packaging it in a way that a simple apt-get install makes the software work out of the box (as far as possible)</li>
<li>Provide a default configuration/customizations so that it integrates and plays well with the rest of the system; this includes the paths and permissions for log files, log rotation, debconf, configuration file standards, etc.</li>
<li>Be the front line for bug reports from users, sort, answer, and de-duplicate them, and either fix them myself, or forward useful bugs to upstream.</li>
<li>Providing security updates for stable releases</li>
<li>To some extent, help with the development of the software; this gets mostly driven by user demand, and of course my personal interests.</li>
</ul>
<p>In August 2004 I got employed by Canonical to work full time on Ubuntu, which pretty much turned a hobby into a profession. I never regretted this in the past years, it&#8217;s an awesome job to do!</p>
<p>In principle I&#8217;m doing the same thing in Ubuntu as well: Bring stuff from developers to the people out there. Except with a different focus, in Ubuntu my daily bread and butter is the GNOME desktop and stuff around (and immediately below) it. And even though after a long day of bug triaging and debugging I feel a bit low-hearted (&#8220;50.000 bugs away from perfection&#8221;), when I take a step back and see how much the usage of Free Software in the world has grown since 2004, I am very proud of being part of Ubuntu, which certainly has its fair contribution and share in this growth. So what seemed like a crazy idea from Mark back in 2004 actually has made a remarkable progress.</p>
<p>In the beginning of Ubuntu I mostly sent back patches to the Debian bug tracker, but this evolved quite a bit on both sides: These days I try to keep &#8220;my&#8221; packages in sync and commit stuff directly to Debian, which works very well with e. g. the pkg-utopia team, which is responsible for HAL, udisks, upower, PolicyKit, and related packages. At this point I want to thank Michael Biebl for being such an awesome guy on the Debian side! Also, it seems that Debian has moved a fair bit away from the strong &#8220;Big Maintainer Lock&#8221; towards team based maintenance, so these days it is easier than ever to commit stuff directly to Debian for a lot of packages, without much fuss.</p>
<h3>PostgreSQL</h3>
<p>I have done a <a href="http://git.postgresql.org/gitweb?p=postgresql.git&#038;a=search&#038;h=HEAD&#038;st=commit&#038;s=Martin+Pitt">handful of changes to PostgreSQL</a>, but these mostly concerned easy packaging and crash fixes, nothing out of the ordinary. I&#8217;m not really a PostgreSQL upstream developer.</p>
<p>The thing I am really proud of is the <a href="http://packages.debian.org/sid/postgresql-common">postgresql-common</a> package, which is a very nice example what a distro can provide on top of upstream: If you install the upstream tarball, you have to manually care for creating clusters, providing a sensible configuration for them, set up SSL, set up log rotation, etc. With postgresql-common, this is all done automatically.  The biggest feature it provides is a robust and automatic way of upgrading between major releases with the pg_upgradecluster tool, which takes care of a dozen corner cases and the nontrivial process of dumping the old cluster and reloading the new one. Also, you can effortlessy run several instances of the same version in parallel, so that you can e. g. have a production and a development instance, or try the new 9.0 RC1 while still running the 8.4 production one.  (<a href="http://people.debian.org/~mpitt/architecture.html">more details</a>) </p>
<h3>Crash Reporting with Apport</h3>
<p>This has been a pet peeve of mine pretty much from day 1. Back in the old days, crashes in software were a pain to track down: many crashes are hard to reproduce, it takes ages to get useful information from bug reporters, and a lot of data cannot be recovered any more when you try to reproduce and analyze a crash after the fact.</p>
<p>With the growing demand for QA from both Canonical and Ubuntu, in 2006 I finally got some time to start <a href="https://wiki.ubuntu.com/Apport">Apport</a>, which would make all this a lot easier: It intercepts crashes as they happen, collects the data that we as a developer need, and makes it very easy for the user to submit them as a bug report. This is accompanied by a backend service (called &#8220;retracers&#8221;) which would reprocess the bug reports by taking the core dump, reproducing a chroot with the packages and versions that the reporter had, installing the debugging symbols, and re-running gdb, to produce a fully symbolic stack trace.</p>
<p>See <a href="https://launchpad.net/bugs/564766">this bug report</a> for how this looks like. Since then, tons of crashes were fixed, way more than we could ever have done &#8220;the old way&#8221; with asking users to rebuild with &#8220;-g -O0&#8243;, running gdb, etc.</p>
<p>By today, Apport has grown quite a bit: rich bug reports, per-package hooks, automatic duplication of crashes, interactive GUI elements in hooks, etc.</p>
<h3>Plumbing Development</h3>
<p>Handling hotpluggable hardware has always interested me, since the day when I got my first USB stick and it was ridiculously hard (from an user perspective) to use it:</p>
<pre>    $ su -
    # mount -t vfat -o uid=1000 /dev/sda1 /mnt
</pre>
<p> My first go at this was to write <a href="http://packages.debian.org/sid/pmount">pmount</a> which would allow normal users to mount hotpluggable storage without root privileges and worrying about mount paths and options, and then integrate it into GNOME and HAL.  Personally I abandoned it years ago, but it seems other people still use it, so I&#8217;m glad that Vincent Fourmond took over the maintenance now.</p>
<p>Since then, the entire stack evolved quite a bit: HAL grew to something useful and rather secure, and finally into some monstrous unmaintainable beast, which is why it was <a href="http://lists.freedesktop.org/archives/hal/2008-May/011560.html">declared dead</a> in 2008, and replaced with the &#8220;U&#8221; stack: udev, udisks, upower, etc. I enjoy hacking on that a lot, and since it&#8217;s part of my Desktop Team Tech Lead/Developer role in Canonical, I can spend some company time on it. so far I worked on bug fixes, small new features, and writing a rather comprehensive test suite for udisks (see <a href="http://cgit.freedesktop.org/udisks/log/?qt=author&#038;q=Martin+Pitt">my udisks commits so far</a>). I also did a fair share of <a href="https://wiki.ubuntu.com/Halsectomy">porting stuff away from HAL to the new stack</a>, including some permanent commitments like maintaining the <a href="http://git.kernel.org/?p=linux%2Fhotplug%2Fudev.git&#038;a=search&#038;h=HEAD&#038;st=committer&#038;s=Martin+Pitt">keymaps</a> in udev.</p>
<h3>GNOME</h3>
<p>Before I started with Canonical I was never much of a GUI person: I was fully content with <a href="http://www.fvwm.org/">fvwm</a> and a few xterms around it. But as an Ubuntu developer I do dogfooding, and thus I switched to GNOME for my day to day work. It didn&#8217;t take long before I really fell in love with it!</p>
</p>
<p>Similar to my Debian packages, my upstream involvement with GNOME is mostly integration and bug fixing. As already explained, we get a looooot of bug reports, so my focus is mostly on bug fixing. To date, I sent <a href="https://bugzilla.gnome.org/buglist.cgi?type0-1-0=equals;field0-1-0=attachments.ispatch;field0-0-0=attachments.submitter;query_format=advanced;value0-1-0=1;bug_status=UNCONFIRMED;bug_status=NEW;bug_status=ASSIGNED;bug_status=REOPENED;bug_status=NEEDINFO;bug_status=RESOLVED;bug_status=VERIFIED;type0-0-0=substring;value0-0-0=martin.pitt">93 patches to bugzilla</a>. Since January 2010 I became a committer, so that it&#8217;s easier for me to get patches upstream.</p>
<p>Debugging problems and fixing bugs is a pretty tedious task, but I still enjoy the rewarding nice feeling when you finally tracked down something and can close a bug with 50 duplicates, and you have made people&#8217;s life a little bit easier from now on.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.piware.de/2010/09/what-i-do/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>PostgreSQL 9.0 RC1 available for testing</title>
		<link>http://www.piware.de/2010/09/postgresql-9-0-rc1-available-for-testing/</link>
		<comments>http://www.piware.de/2010/09/postgresql-9-0-rc1-available-for-testing/#comments</comments>
		<pubDate>Wed, 01 Sep 2010 10:41:40 +0000</pubDate>
		<dc:creator>pitti</dc:creator>
				<category><![CDATA[debian]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[announcement]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[QA]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://www.piware.de/?p=361</guid>
		<description><![CDATA[PostgreSQL 9.0 with a whole lot of new features and improvements is nearing completion. The first release candidate was just announced. As with the beta versions, I uploaded RC1 to Debian experimental again. If you want to test/use them on Ubuntu 10.04 (Lucid Lynx), you can get packages from my &#8220;PostgreSQL backports for stable Ubuntu [...]]]></description>
			<content:encoded><![CDATA[<p>PostgreSQL 9.0 with a whole lot of <a href="http://developer.postgresql.org/pgdocs/postgres/release-9-0.html">new features and improvements</a> is nearing completion. The first release candidate was just <a href="http://www.postgresql.org/about/news.1230">announced</a>.</p>
<p>As with the beta versions, I uploaded RC1 to Debian experimental again. If you want to test/use them on Ubuntu 10.04 (Lucid Lynx), you can get packages from my <a href="https://launchpad.net/~pitti/+archive/postgresql">&#8220;PostgreSQL backports for stable Ubuntu releases&#8221; PPA</a>. Please let me know if you need them for other releases.</p>
<p>Just for the records, both Debian 6.0 &#8220;Squeeze&#8221; and Ubuntu 10.10 &#8220;Maverick Meerkat&#8221; will release and officially support 8.4 only, as 9.0 is too late for the feature freezes of both. Also, it will take quite some time to update all the packaged extensions to 9.0. As usual, 9.0 will be provided as official backports for both Debian and Ubuntu.</p>
<p>Happy testing!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.piware.de/2010/09/postgresql-9-0-rc1-available-for-testing/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

