prev
Issue 114
8th June 2008
by Danny Allen
next


This Week...
Global keyboard shortcuts for applets, and an Amarok and "python expression" runner in Plasma. A Java test applet and various interaction improvements in Plasma. Simple network and CPU monitors in the system-monitor Plasmoid. Initial import of PeachyDock, a Plasma-based alternative panel. The Oxygen window decoration gets the "on-all-desktops" button. Continued development toward Amarok 2.0. KDevelop gets a new context browser, and various other improvements. Initial work on SVG theming in Parley and Step. Support for OpenGL rendering in Palapeli. Enhancements for KDiamond 4.2. Nonogram switches to its own package format, with the import of a collection of game files in this format. Planned developments start to materialise in KColorEdit. Map-based searches in Digikam. Digikam-related libraries move to kdegraphics for KDE 4.1. Enhanced printing support (selections, zooming) in KSpread. KThumb, a simple command-line utility for managing freedesktop.org thumbnails. Optimisations in Kate, Dolphin, and kjs-frostbyte. Ruby bindings for various KDE facilities (QtWebKit, NEPOMUK, etc). Decibel strips some of its KDE dependencies, and moves to kdesupport. KDiskManager is removed to make way for a replacement. Mailody moves to kdeextragear. KPilot, KMobileTools, and the Kontact Planner summary plugin are disabled for the KDE-PIM 4.1 release.

Nikolaj Hald Nielsen writes about various recent developments toward Amarok 2.0:
I have been asked to write up a small text about what has been happening on planet Amarok for the last few months. My big issue now, as always, is where to start, as so many cool things are being added all the time. Also, with some of our Summer of Code students starting to get up to speed, the pace is even faster than usual.

In general work has been progressing nicely all over the application. Feature additions, bug fixes, and updates to the look and feel are all coming in daily. A while back, we decided to try a new theme (again...) and for the first time, I think we have something that will stay until at least the first release. This new theme allows the different parts of Amarok to blend together smoothly, and allows us to achieve a look that is in many ways similar to the vision we started out with. The theme also supports the automatic color scheme adaption that we started working on with the last theme we tried. This is what my Amarok currently looks like:



While this theme might not be as fancy and colorful as some would have liked, it provides a good base to start from. Also, this theme introduces a new way of handling themes in Amarok 2. All the SVG elements are now loaded from a single, annotated, SVG file. This, along with a new D-Bus call to load a new theme file, without recompiling or even restarting Amarok, makes it much easier for artists to contribute, especially now that Project Neon (see below) is out. The theme is still being worked on, so lots of small details still need adjusting.

For quite some time now, our tireless (or maybe just sleep-deprived) release manager, Harald Sitter (aka. apachelogger) has been working on a nightly build system for Amarok 2 and all dependencies. This went live a while back, and we have lovingly codenamed this new service Neon. Neon allows you to test out fresh builds of Amarok 2 each day to track development, help find bugs, or work on artwork, all without having the compile a single line of pre-release code. This service has greatly increased the number of users running Amarok 2 and contributing suggestions and bug reports.

Of other cool new features, we now have a scripted service for listening to free, public domain, audio books from Librivox, our podcast support is coming together nicely, and along with the new video context applet, and the OPML Podcast directory service, we now have nice support for video podcasts. The Magnatune service now has support for the newly-launched Magnatune memberships, and Last.fm support via the new Last.fm service blows Amarok 1 out of the water. Work is also happening on making moving content between any of these collections or services completely transparent, so, for instance, filling up your MP3tunes locker with free audio books can be done just by selecting the books you would like and pointing them at the collection you would like to copy them to. This is still a work in progress though.

All this is without even touching on all the really cool stuff that is getting worked on as part of Google Summer of Code. We have 7 students hacking away on different parts of Amarok. Some of these things will hopefully make it into 2.0, while some will most likely get deferred to a later release.

All in all, Amarok 2 is shaping up to be something very different but still very much in the spirit of Amarok. And with the new frameworks in place we have a solid foundation for building cool features for many releases beyond 2.0.

If you want to read more about what is happening with Amarok 2, our blog is the place to go. Here you will also find a ton of screenshots from different stages of development.

Riccardo Iaconelli and several other people have a KDE development-related proposal titled "The Great History of Git, Gitorious and KDE (or, What Happens When Three Awesome FLOSS Projects Join Forces)":
A possible future migration of the KDE source code to a distributed version control system is a complex matter, and has to be thoroughly discussed before undertaking such task.

Distributed Version Control Systems (VCS) remove certain boundaries in the workflow that we have become quite familiar with by using regular a centralized VCS (such as Subversion, as currently used by KDE). Although DVCS's are still quite young, they have already proven their worth in various projects, ranging from small projects and scaling all the way to projects such as the Linux kernel and Mozilla. One of these new generation systems is Git.

Anyway, this article is not so much about the greatness of Git (there are plenty of great decentralized VCS's), rather it will discuss the merits of a migration to Git for KDE development, and will suggest tools and services which could be implemented to assist in a (hopefully!) seamless transition.

As of today, various people in the KDE community have been lobbying for a migration to some of the DVCS's. Lately, the diverse experimentation has focused on Git with the import of most KDE modules, including kdelibs and kdebase.

Git and its main merits:
Git is great at merging because it keeps a history of merges so that repeating merges is not a painful task. Git also comes with a whole load of goodies, such as an editable commit history, automatic tracking of remote repositories, cherry picking commits you like from other branches, nice debugging features to check who's responsible for a particular piece of code, and so on. Mix all this with offline commits (so you can do many commits instead of a huge one when you're not connected) and great distributed functionality and you get the perfect fit for a distributed development environment such as KDE.

With Git and most DVCS's, every contributor has a full history of the repository. This way, everyone has a clone of the original repository and can commit to his own clone. The former makes it way easier to contribute to a project as one doesn't need an account or any permission to start committing to a KDE project.

Enough DVCS propaganda for now, let's talk about the GitoriousKDE project whose current specs/discussions can be found on this techbase page.

What is Gitorious:
For those who don't know, Gitorious is a free web application which aims at making collaboration and keeping track of clones and branches easily by:
  • Seeing what they're doing
  • Knowing where they can be found
  • Allowing anyone to contribute without being blessed with "commit bits"
  • Making it easier for maintainers to accept contributions
GitoriousKDE:
The goal is to have a "WebSVN on steroids", with collaboration, event tracking, and social features in mind. Naturally, it will be developed with input from the KDE community in order stay in line with the needs of KDE and not just add tons of unneeded features.

We really don't want to set any features in stone yet. For a quick overview of what we are thinking about, do visit the appropriate techbase page. Some people of the Gitorious team will try to attend Akademy this year, to further discuss development of GitoriousKDE, and helping out in making a migration plan for KDE.

That means meeting up with the developers who will have to use it on a daily basis, especially the groups which have been mostly left out from previous discussions: i18n and admins/release managers.

So, looking forward to see you there! =)

On a personal note, last week I finally jumped over to KDE 4, using the development snapshots of KDE 4.1 provided by OpenSUSE (this switch is *not* the reason for the delay in producing these Digests!).

I really like what I have seen so far. There are certainly rough edges, but they are outweighed by the positives (such as visual effects and much-improved support for colour schemes, and countless enhancements all around), and the experience will only get better looking ahead.

I feel another burst of excitement at the possibilities this solid base will provide in the coming releases.

Also, in the spirit of the season, I will be at Akademy 2009.

I don't know which one I prefer!

Rotten tomatoes may or may not be provided.


Statistics
Commits: 3138 by 272 developers, 10369 lines modified, 1926 new files.
Open Bugs: 16526
Open Wishes: 14125
Bugs Opened: 501 in the last 7 days.
Bugs Closed: 518 in the last 7 days.

Commit Summary
Module Commits
/trunk/l10n-kde4
813
/trunk/KDE
786
/trunk/extragear
310
/trunk/playground
276
/branches/work
191
/branches/stable
143
/trunk/www
120
/trunk/koffice
88
/branches/kdepim
79
/trunk/kdesupport
67
Lines Developer Commits
415
Allen Winter
153
215
Gilles Caulier
89
148
David Faure
80
181
Pino Toscano
72
62
Chusslove Illich
68
101
Laurent Montel
58
204
George Goldberg
55
115
Lukas Appelhans
55
70
Marc Mutz
54
819
Jens-Michael Hoffmann
51

Bug Killers and Buzz
Bug Killer Number Of Bugs Closed
Eduardo Robles Elvira
65
Pino Toscano
47
Leonardo Finetti
34
Christophe Giboudeaux
30
Jaime Torres
30
Peter Penz
24
Aaron J. Seigo
22
Rui Gomes
20
Sebastian Sauer
19
Luboš Luňák
19

Program Buzz
Amarok
  9815
K3B
  4875
KMail
  4840
Kopete
  3320
KDevelop
  2595
Plasma
  2489
Kaffeine
  2037
Kate
  2001
Solid
  1873
Kontact
  1790


Person Buzz
David Faure
  2110
Stephan Kulow
  1749
Aaron Seigo
  1390
Torsten Rahn
  1367
Jonathan Riddell
  1132
Laurent Montel
  1030
Stephan Binner
  782
Thiago Macieira
  668
Zack Rusin
  638
Adriaan de Groot
  631
Commit Countries

Commit Demographics
Sex
94.7 %       Male
7.25 %       (unknown)
1.72 %       Female
Motivation
50.5 %       Volunteer
37.0 %       (unknown)
12.7 %       Commercial
 
Ages
60.7 %       (unknown)
23.8 %       25 to 34
7.90 %       18 to 24
7.37 %       35 to 44
3.35 %       45 to 54
0.491 %       Under 18


Contents
  Bug Fixes Features Optimise Security Other
Accessibility
Development Tools [*] [*] [*] [*]
Educational [*] [*] [*]
Graphics [*] [*] [*]
KDE-Base [*] [*] [*] [*]
KDE-PIM [*] [*] [*]
Office [*] [*]
Konqueror
Multimedia [*] [*] [*]
Networking Tools [*] [*] [*]
User Interface [*] [*]
Utilities [*] [*]
Games [*] [*]
Other [*] [*] [*]

There are 194 selections this week.

Bug Fixes
Development Tools
Allen Winter committed changes in /trunk/quality/krazy2:
fixes for making the "textedit" export mode work as planned in an IDE.
Erik, please test and let me know
Diffs: 1, 2 Revision 817224

Josef Weidendorfer committed a change to /trunk/KDE/kdesdk/kcachegrind/kcachegrind/callgraphview.cpp:
KCachegrind: fix for bug 161276

For detail level "normal", we want function nodes in the graph to contain 2 lines of space for the symbol name, and the 3rdline for cost display.

Up to now (and also in KDE3 times), we used hard coded scaling factors of the width/height numbers given by dot.

Thus, the number of lines was dependent on the general KDE font *and* the default font used by dot for space calculation.

Of course, this can be different on every system.

Now we calculate the needed scaling by looking at the general KDE font, such that in "normal" detail level, it is guaranteed that 3 lines fit into function nodes.

In addition, we set a maximal line number of the symbol space so that there is always a line free for cost display.
Diff Revision 817266

Graphics
Pino Toscano committed a change to /trunk/KDE/kdegraphics/okular/core/document.cpp:
handle relative paths in browse links, as shown by the testcase provided by knusperfrosch and, btw, master dfaure rocks once again!
Diff Revision 817340

Andi Clemens committed changes in /branches/extragear/kde3/graphics/digikam:
fixes the following issues:

* simple and advanced search doesn't work for "tag names"
* new operators for "album" search added (LIKE, NLIKE) to be consistant with "tag" search
* lineedit widget in advanced search needs to expand, it was too short if window is resized
* some items in the operator combobox were not readable, because the box was resized on key change.

Now the box is prepopulated with all operators first and its size is restored on every key change.
Bug 163227: Searching for tag names in simple and advanced search doesn't wor...
Diffs: 1, 2, 3 Revision 817988

Pino Toscano committed changes in /trunk/KDE/kdegraphics/okular:
Keep an open file handle on the local file currently open: this way, we can get it back from it, in case for some reason (read: Firefox blindly removing temporary files) it gets "deleted".

Of course, this works (and thus it is activated) only on UNIX systems (as the file is not deleted for real until there are open handles on it).

(If not wanted, this behavior can be disabled by export'ing OKULAR_NO_KEEP_FILE_OPEN to 1.)

Also, in case the local file gets deleted but the real document is remote, use its (remote) URL for the copy.
Bug 163363: cannot save open documents to new location
Diffs: 1, 2 Revision 818136

KDE-Base
Eduardo Robles Elvira committed a change to /trunk/KDE/kdebase/apps/konqueror/src/konqview.cpp:
Fixing *huge* memory leak in konqueror: in KonqView::~KonqView() we were just not deleting the HistoryEntries.

No kidding. Each view can contain *a lot* of HistoryEntries, and each entry contains lots of data: url, locationBarURL, title, buffer, postData, etc.

All that was being leaked when deleting konqviews (i.e. closing a tab).

Thanks pinotree for helping out with valgrind and giving me the valgrind output, you rock!
Diff Revision 815027

Carlo Segato committed changes in /trunk/KDE/kdebase/runtime/kioslave/smb:
preserve the modification time when copying a file over the smb kioslave
it works only on systems with utime
Bug 79937: provide option for remote protocols to preserve permissions on co...
Diffs: 1, 2, 3, 4 Revision 815042

Rafael Fernández López committed a change to /trunk/KDE/kdebase/apps/dolphin/src/dolphinmodel.cpp:
Fix problem when descending order on "Today" and "Thursday" for example.
Now we also have week independent maths, so we get a Yesterday tag even if yesterday was 31st and today is 1st.

Peter, the order should be correct now, please recheck (I added a '-', so the order now is the inverse that the one shown on the kfm-devel thread).