Archive for the ‘Ubuntu’ Category

Translating package descriptions

November 19, 2008

The apt version we use in Ubuntu has the nice feature to support translated package descriptions. This means that “apt-cache show apt” (or synaptic) will display a german translation if the user has a default german locale. Translating those this is a big task, there are plenty of packages so there are plenty of descriptions.

To make working with the translations of these descriptions in launchpad easier there is a now new website that sorts the package descriptions and presents them in a nice and easy way. It was written by István Nyitrai and is available at http://people.ubuntu.com/~mvo/nightmonkey . I think its very cool, have a look and give feedback to the author.

The debian project uses a system called DDTSS: http://ddtp.debian.net/ddtss/index.cgi/xx that looks a bit different (and does of course not contain ubuntu specific package like the ones in restricted). We are currently working with Debian on a way so that we can push the translations.launchpad.net translations back to Debian. We already sync regularly from Debian, having a working system in both direction is going to rock :)

compiz/compiz-fusion 0.7.8 availale

September 24, 2008

The excellent compiz and compiz-fusion people have released a new version 0.7.8!

The deb packages are available for intrepid in the compiz team PPA at:

 deb http://ppa.launchpad.net/compiz/ubuntu intrepid main

If you are a compiz user, give it a go :)

xorg, evdev and EmulateWheel

August 15, 2008

With the switch to evdev as the input for the xserver in intrepid I lost my EmulateWheel settings. I use this option on my Thinkpad a lot. I have configured the middle mouse button so that I can scroll up and down with the trackpoint. I really love this option and use it quite a lot.

So today I decided to look into what can be done to get it back :) With the help of Timo Aaltonen and Julien Cristau I made it work again.

You need a very recent xserver-xorg-input-evdev (git snapshot) that I put into my PPA at “deb http://ppa.launchpad.net/mvo/ubuntu intrepid main” and then a fdi file in /etc/hal/fdi/policy/mouse-wheel.fdi that looks like this:

<match key="info.product" string="TPPS/2 IBM TrackPoint">
 <merge key="input.x11_options.EmulateWheel" type="string">true</merge>
 <merge key="input.x11_options.EmulateWheelButton" type="string">2</merge>
 <merge key="input.x11_options.ZAxsisMapping" type="string">4 5</merge>
 <merge key="input.x11_options.Emulate3Buttons" type="string">true</merge>
</match>

You may have to alter the “info.product” key for your system to make it work. After restarting hal and the xserver, that gave me my middle button scroll back and I’m a happy (and productive) man again.

Git For Bzr Users

July 3, 2008

I love bzr, it is elegant, simple and does not get in my way. And it has never let me down, everything I wanted to do with it worked in the way I expected it to work. But sometimes I have to use git and usually I’m confused by it. I would like to share some of my finding about the sources of this confusion in the hope that you have a easier time with it then :)

Please note that this list is by far not complete and its just what I found from a user perspective. Please also note that I’m far from a git expert.

git has some important conceptional differences from bzr. Those can be confusing for people like me used to bzr.

The big differences on a glance:

  • git uses a intermediate layer between the working tree and the commited items called “the index”
  • git uses repositories (container of branches) that contains multiple branches and uses the working tree to switch between branches
  • some commands do different things (bzr revert, git revert)

The index

The index is a stagging area for changes. It sits between the working tree and the current HEAD of the branch. If you want to commit to HEAD, you first need to run “git add file” before a “git commit” will consider it to be part of the commit. Because this is a pretty uncommon model a option “git commit -a” was added that basicly tells git to ignore the index and implicitly add all changed files (but not new files) to the commit. So the “git add” command is really more about “add this content” (that maybe a new file too) than the bzr “add this file”.

The index has some side-effects that can be suprising. A “git add file” means that from that point on, “git diff” does not show the changes to “file” anymore. If you then change file again “diff” will show the changes relative to the last “add”. Why? I don’t really know, but it seems to be a huge part of the git philospohy [1],[2].

A lot of commands in git work against the index, not the HEAD of the current branch. For example a “git diff” will diff against the index not against HEAD. The commands “git diff –cached” will tell you the diff between working tree and index and “git diff HEAD” the difference between the working tree and the current branch HEAD.

Commands

A git revert reverts a *commit* not the changes in the working tree (like bzr does). Instead, you use “git checkout .” to revert everything back to the index. Stuff that is already added to the index is left untouched (“git diff –cached” will show it) or “git checkout -f” to throw away changes in the index too. Suprised? Me too :) There is also “git revert –hard” that may or may not behave different from “git checkout -f”.

Repositories

git uses a repository to have collections of branches that can then be checkout out into the working tree (in contrast to the simple model of bzr where each dir is a branch). “git branch” tells you about the available (local) branches and “git checkout branchname” switches the working copy over to the “branchname” branch. With “git branch newname” you can start a new branch but *not* switch the working tree to it. There “git checkout -b newname” to create the branch and switch the working tree to it in one go.

To work with remote repositories you first have to clone them with “git clone sftp://remote-repo”. If the remote repository has branches they will not show up with “git branch”. You have to use “git branch -r” for this (-r apparently means “remote”). Why? I have no idea.

So to work with a specifc remote branch (instead of master) you run:

$ git checkout origin/remote-branch
$ git checkout --track -b my-branch-based-on-the-remote-branch-name
[hack away]
$ git pull

So git pull gets all of the new changes from the “origin” repository and then merge the tracked  branch into your branch. You can say “git pull origin branch-name” to merge other branches.

I hope the above helps you if you use git and come from a bzr backend to have a easier start. There is probably tons more that I haven’t mentioned or discovered or just got wrong :) I used this post as a start to create a wiki page so that others can add their findings to it too.

Compiz 0.7.4 available in my hardy PPA

April 7, 2008

I updated compiz and compiz-fusion to 0.7.4 over the weekend. The resulting packages are available in my PPA on launchpad. Feedback and testing is very welcome! The packages are at:

deb http://ppa.launchpad.net/mvo/ubuntu hardy main

apt-get install compiz should give you the latest compiz stuff. apt-get install simple-ccsm the latest configuration tools.

I will try to push this update into hardy but because we are already quite late in the freeze it will not be easy. The more feedback I get on this (both good and bad) the better the release team can judge if the update is safe for hardy or not. Please give it a whirl and let me know how it works for you :)

New language-selector fontconfig love

October 1, 2007

The new version of language-selector (0.2.8) comes with improved
fontconfig defaults for a CJK environment (kudos to Arne
Goetje) and a lot of bugfixes. If you use gutsy and CJK language on your desktop,
please test and send us feedback!

Compiz ready for beta

September 25, 2007

Gutsy is approaching the beta release and the Ubuntu compiz team feels like our packages from the 0.6.0 upstream branch are in good shape for it! We spend a couple of days in London last week to work on high priority problems and got a great deal of work done. A big kudos to the wonderful compiz-fusion upstream community that was a great help (both the people who attended the sprint directly and the ones who supported us via irc).

Travis mentioned some of the fixes already in his post. There are a lot more, for example Mirco improved the look and feel of the gnome-apperance-capplet that lets users switch between compiz and metacity. It looks really good now. We also fixed some annoying session management problems that caused hangs on startup and we switch to use the compiz-manager script for starting compiz. This is a big improvement over our self-made wrapper script. All the details can be found in the package changelogs for those you want to see all the details :)

Judging from the bug reports we get, we feel we are in good shape for beta. But not everybody reports bugs so I would like to get a better idea on how well compiz works in the real world. Please fill in https://wiki.ubuntu.com/CompizFeedback if it works or if it does not work for you.

Compiz by default

September 13, 2007

The technical board voted for compiz by default for Ubuntu 7.10! This is a very exciting step. Compiz (and the fusion plugins) will be enabled for new installs on all hardware that supports it. A lot of work was put into making this happen, a special thanks goes to the great compiz and compiz-fusion community.

scale plugin in action

We now need the help of the ubuntu community to find bugs and issue with this new default. Please test current gutsy livecd images. If you run gutsy already, please enable compiz (System/Preferences/Appearance/Desktop Effects) and report any problem to the launchpad bug tracker. We will have to disable it on some hardware because its either too slow or the drivers are not yet good enough to make it a pleasant experience. Real world testing is essential to figure out which ones. It is important that we get as much test coverage as possible on a wide variety of hardware at this stage of development. Please help and report bugs!