Archive for June, 2011

PackageKit backend for Software Center: late week 4 report

Since third week’s report was no report – basically because I was delayed by missing parts in the architecture (the saga hasn’t finished yet), I’m posting this late 4th week report:

Workspace 1_003Yep, the PK InstallBackend is shaping up :D !

Unfortunately, the only machine running this code is mine, the reason being this chain of dependencies:

- static Python bindings for PK are dead

- PK gi depends on pygobject invoke-rewrite branch of J5 (which isn’t
yet merged into master, but will make it to 3.2 release);

- PK gi breaks statically loaded glib in software-center master; therefore, the -gtk3 port of software-center should be used;

- software-center-gtk3 isn’t ready for merging into trunk – experimental design changes towards a friendlier 5.0 are being done.

Therefore I’m testing the install/remove routines on the small modules, such as the PendingView in the above screenshot, waiting for components stabilization.

Next week – and probably until week 6 report, I will continue work on the install parts and start developing the PK PackageInfo class.

PS: I’m undecided if I should make my reports biweekly or milestone based :-/




PackageKit backend for Software Center: week 2 report

A week of fail and win has almost ended.

On the fail part, I had a hard time building pygobject, gobject-introspection and glib from git.gnome.org. At first I’ve trying pulling from git, configuring and building, without luck. Then I switched to jhbuild, which after a few sanitychecks, bootstraps and configuration, worked; a day after I found that I’m on the stable branch (-2-28/gnome-3) which wasn’t good enough for my aim at patching master, and have switched branches to master, trying build -n. Of course it didn’t work until I hacked PKG_CONFIG_PATH to include paths such as /usr/share/pkgconfig, /usr/lib/pkgconfig and /usr/lib/i386-linux-gnu/pkgconfig – with help from walters on #introspection. This week my hard drive was about to die – because of a bug in the kernel driver for ata, it was reset every 30 seconds, causing everything to freeze. Different liveCDs have failed, the symptoms were ambigous and hard to reproduce – almost an entire day of fun.

On the win side, I figured out the hdd problem, and locked the kernel version to 2.6.38-9 for now. Hacked pygobject, posted patch in bugzilla B-), I’m one step further into making packagekit python bindings work; also I used the remaining time to push forward some more preparation refactor on software-center.

I have also updated the GSoC timeline – I’ll try to keep it up to date.

For the next week, same objectives remain.

PS: If you’re a python hacker and feel like helping out :-) , please check this bug report out.




PackageKit backend for Software Center: week 1 report

This week was a good week for coding, and the best part about it: most of my changes are now in s-c’s upstream trunk.

I started out trying to populate s-c database with only a few applications; this meant updating the update-software-center tool, and also changing some bits on the database update module. I was glad to discover that some functionality I have planned to develop in week 6 (parsing AppStream app-data xmls) was already there, thus making my job easier :-)

After that, work continued by abstracting backend parts, such as InstallBackend and TransactionsWatcher, and also isolating as much as posible apt and apt_pkg usage. I have then expanded the PackageInfo abstraction to implement a dictionary like interface, containing _Package objects (before that, apt.Package were returned). It took some small steps, and sometimes mistakes from my side, but in the end, I guess I have got it done right. Work still needs to be done regarding usage of candidate and installed properties (which currently are apt.Version objects), and also on AptCache try_install_and_*depends methods (this should be either abstracted, either made apt-backend specific.

At the end of the week, preparing the next point of focus, I have managed to get a developing environment with PackageKit with Python gobject introspection data. Here comes the bad news: the py GI for packagekit is not ready for prime time. Reasons for that: GI is relatively new, there are no other users of PK from Python (only C and Vala). With help from ximion, hughsie, dantti and tomeu (and many other kind souls on #PackageKit, #introspection or #python), we isolated the problem inside pygobject, apparently an incomplete implementation of GPtrArray. I hope to get it fixed next week :-) , so that I can continue work with PK.

Although I am a bit worried seeing segfaults in Python, it’s a sunny day out here (so I can finish my report on a non-technical note) so I’m sure that with help from these awesome people on IRC,  problem will be solved, and my project will continue according to the plan.

Next week: gi ninja and more PK!