Tuesday, November 4, 2008

Packaging Policy change proposal

After long and heated discussions, we finally managed to finish the Better Package Categories task. When I started the discussion in April, I knew it would not be an easy task. It remained on my task lists over a lot of sprints, but now we have a result.

Ryan posted about this and proposed future in his blog.

"So, what's next?"

Now we need to get these proposed changes accepted into the Packaging Policy, so we can start to apply them. I created a wiki page for the proposed changes to the policy. Please see if you would like to see the wording changed. I will push this task for the November 2008 Sprint.

The autobuilder and Extras Assistant will soon start to give warnings when your package is not using one of the official categories. These warnings will not prevent you from uploading your package, but please try to update your package to make it comply with the policy.

As we are going to change the policy, the wiki page might also be a good place to propose other changes you would like to see in the document.

Tuesday, October 21, 2008

New features autobuilder and Extras Assistant

Rejecting packages when the same version is uploaded for the second time.

The autobuilder has been modified to reject a package when the same version is already available in the extras-devel repository. This change will force developers to increase their package version number after each successful upload and build. In the past we've had problems in the repository where a package was uploaded twice and caused 'Size Mismatch' errors.

Package signing no longer required.

The autobuilder and Extras Assistant no longer require packages to be GPG signed. It seemed to cause a lot of grief for developers without any real benefits. This change is targetted to making uploading packages easier. Every uploader has to be authenticated to upload a package, so we can already trace back the uploader. The autobuilder signs packages which are moved into the repository.

Upload to multiple repositories at the same time.

You can now use the Extras Assistant to upload a source package to chinook and diablo at the same time. No need to do two separate uploads anymore. This feature has been requested for quite some time, let's hope it helps.

Thursday, October 2, 2008

Reducing number of external repositories #1

In my talk at the Maemo summit 2008, I talked about starting an effort to reduce the number of external repositories. Talking about this helps, but actively contacting developers and repository owners helps even more. This week I started by creating a list of all repositories we need to target. When this was done, I started to contact a lot of developers to convince them to move their packages into Extras and then close their repository.

A funny thing to mention is: Nobody had any objections to this.

Most responses were apologies for not doing it sooner. When I started this, I expected to have some resistance, but so far there was none.

This is a good thing! It seems the community wants things to change too.

How can you help?

If you know somebody developing applications in their own repository, try to convince them to move their packages into Extras(-devel). Please edit the wiki page to reflect the status of each repository.

With the help of a few people, I think we can get number of repositories in the list down quickly!

Visible results

When looking at the Gronmayer listing, you can see that more and more repositories are being removed and end up as: 'Repository is offline'.

Wednesday, September 24, 2008

Talk: Reducing number of external repositories

At the Maemo Summit, I had a talk about the Extras repositories and the plans for the future. The slides can be found on Slideshare: The huge number of external repositories makes it increasingly hard to have a flawless experience for the user when it comes to package selection and installation. The proplems we currently face is:
  • Users are unable to easily find packages
  • Users experience conflicts between repositories
  • Unable to do quality testing on huge amount of repositories
  • maemo.nokia.com – Is not able to hand pick packages from external repositories
One of the many things announced by Nokia was the creation of maemo.nokia.com, where the best community made applications will be featured. I guess there will be more posts from Nokia on that topic later.

Back to the external repositories problem:
We started to retrieve all source packages from all know repositories found on Gronmayer. These packages are fed to the autobuilder to see if they would build. The status page looks like this:

Our plan to reduce the number of external repositories:
  • Build all source packages available in external repositories
  • Show status of builds
  • Try to discover missing sources (a lot of packages have no source available in the repo)
  • Help developers to fix build problems
  • Convince developers to move their packages into Extras
  • Convince teams inside Nokia to do the same
We hope to get visible results for this effort. Help with this effort would be very appreciated. Please try to convince developers to move their packages into Extras, when they haven't done so yet.

Together with Dave Neary, I did another talk. This one was about the history of the Maemo community and the changes we went through in the last few months. The slides for this talk are also available:

Monday, September 22, 2008

Maemo Summit 2008, Awesome!

The gathering of everybody Maemo has ended yesterday. 2 days filled with very interesting or even amazing meetings, talks and gossip. There was a very sharp contrast with the days before that at OSiM. I want to bet that the Maemo community was able to achieve more at the summit than all projects at OSiM together.

I've met a lot of people and it was very good to see the faces behind the email addresses or IRC nicks. We should not forget the benefit of meeting people in real life. Going to a bar or a restaurant together to have a nice dinner and have some German beers even adds more to this of course.

I'm glad that some of our rockstar hackers had a chance to meet the Nokia people involved in their favourite subjects. A lot of the explanations, about why something was decided this way, are better explained in a personal conversation.

Special props for lardman doing a talk on dsp programming in 30 minutes. The amount of information he managed to put in one talk was mind boggling.

As a maemo.org guy, I have had the opportunity to discuss a many plans and this will likely be more than enough work for me for the coming 10 years ;) Ed and Sasha(Wii tennis king!) had some valuable ideas for managing the repositories and reporting problems. I really hope we can implement those as soon as possible.

Next blog post will be about my talks and I will make the slides available there.

See you at a next meeting?

[Edit: Somehow this didn't get posted while I was at Tegel Airport yesterday]

Monday, July 7, 2008

maemo.org/downloads automatic updates from Extras

The maemo.org downloads section now automatically picks up updated versions from the Maemo Extras repository. The 'Fresh' list will show the applications that were recently uploaded or promoted to Extras. Developers used to need to update their application entry themselves. By doing the updating automatically, users should not see outdated information about applications.

For the automatic update to work your application needs to be:
  1. Available in Maemo Extras
  2. Available in the maemo.org downloads section where the 'Project ID' equals the name of your debian package.
Package updates are fetched from the most recent repository for each OS we support. Diablo for OS2008, Bora for OS2007 and gregale for OS2006.

One enhancement I would like to add is automatically update the 'Changes in latest version' field for the entry in downloads. I would like comments from the community on how developers should supply this information.

One option would be to fetch it from the changelog. Problems here are that there aren't many packages using a changelog at the moment and we would need to filter out the real changes from the packaging revision updates.

Another option would be to let the developer enter this data while promoting the package to extras. We could add this step to the promotion interface.

Comments are appreciated.

Wednesday, July 2, 2008

Application in Extras-Devel OK? Promote it!

Now that we have the autobuilder in place for Diablo, it is a good time to talk about how to get your package from Extras-Devel into the Maemo Extras repository.

Before a package will end up in Extras and is installable for end-users on their device, it will go through a few steps:
  1. source package uploaded to autobuilder incoming queue
  2. autobuilder builds package and moves it into the incoming queue from Extras-Devel
  3. queuemanager for Extras-Devel will put the package in the Extras-Devel repository
  4. developer checks packages from Extras-Devel and if the package is OK:
  5. promote the package to Extras using the Promoter.
Step 5 is the step where you can use the Promoter to promote your package. Make sure you test your application while it is in Extras-Devel, so you don't promote a broken package. After promotion and a bit of patience, your package will show up in Extras and everybody will be able to download it.

We have two Promoters is place:
The Promoter is a community project on garage.maemo.org. The code can be found in the svn repository. If you have any suggestions on how to improve the interface or would like to add functionality, please propose and discuss it on the maemo-developers mailinglist.

We are still working on documenting Extras and Uploading to extras in the wiki and of course work towards The Big Plan. Feel free to edit the wiki and improve the articles, this is a community project.

Let's work together to get more applications available in Maemo Extras!

Monday, June 16, 2008

Rebuild all chinook source packages on autobuilder

Currently Ed Bartosh and I are working on taking all source packages from the extras repository and try to build them on the autobuilder. The goal of this chinook rebuild effort is to get a set of packages buildable 'from scratch'.

Once we are able to build all(most?) packages on chinook, we can try to automatically build them for diablo. So we can have a lot of packages in the diablo repository at release of diablo.

There is a web page up with the first run, which was done over the weekend. All packages are listed in build order, based on dependencies, with their build results for i386 and armel. If a package build failed, a link to the build log is provided.

If you provide a source package in extras, please check if your package is building OK. If you only provide binary packages in extras, we would like to encourage you to provide source packages too! We could really use some help from the community in pushing towards 100% OK build of every package in extras.

When you have updated your package to fix the issues, please use the 'request rebuild' option on the packages list. This gives us the opportunity to track changes as a result of the list. We will rebuild packages on a regular interval and post a summary to maemo-developers. Let's see if we can get all packages to build!

Wednesday, June 4, 2008

Autobuilder for maemo extras repository part 2

Some time has passed since we first announced the maemo autobuilder for the extras repositories. Some people have tested it and we got a little bit of feedback. Not as much as we hoped, but I'm sure that is going to get better shortly.

Ed has been working on making the autobuilder more user-friendly. You will now receive a status message per mail when your package has been processed. If there were any errors (md5 sum failed, files missing, wrong pgp key or package not signed), you will find that out in the email.

Some benefits of using the maemo autobuilder:
  • Source packages always available in the repository
  • i386 packages are automatically added to the repository, so you can use them in the SDK.
  • Prevent obviously broken packages from entering the repositories.
I have been improving the assistant by adding more checking and fixing more bugs. It turned out that not everybody was able to request rights to upload packages to the repository. Sorry about that!

I would like to ask all developers to try out the autobuilder and assistant, so we can be in a good shape before Diablo gets released. We can only move forward if you get involved!

Feel free to contact me if you need any help or information.

Monday, June 2, 2008

maemo packaging policy draft

A draft for the maemo packaging policy has been released for comments by the community.

What is the maemo packaging policy good for?

Like it's Debian counter part, the maemo policy specifies how packages should be built. It will exactly tell you what your package should implement to be a proper maemo package.

The maemo packaging policy is essentially the same as the Debian policy, but there are some changes especially for the tablets as opposed to desktops.

What good does it do me?

Well, not a lot at the moment. But it can soon! We (the maemo community) need to agree on this policy and see how we can implement it.

We want to setup a wiki page where you can annotate the policy draft and talk about things you think should change. This will be done soon, I hope.

Until then, please discuss the topic on the maemo-developers list.

Your input is welcomed.

Friday, April 25, 2008

Autobuilder for extras repository public beta

A while ago we discussed the idea of an autobuilder for the extras repository. We have been working on creating such an autobuilder and have been testing it in private. As a result we now think it is time to do a tests with a larger group and make it publicly known. Please give it a try and tell us your results.

- What does the autobuilder do?

The autobuilder takes a source package from the incoming queue and tries to build it in a fresh environment. The builder fetches all dependencies from the extras-devel repository. If it can't find the dependency in extras-devel, it will fail and send a mail to the extras-cauldron-builds list.

If there are no problems with the package, the builder can create armel, i386 and source packages. Those will be put in the extras-devel repository after a successful build.

Instructions for the builder can be found at here.

The builder only handles building one package at a time. If you have dependencies that are not present in the extras-devel repository, please upload these first.

- web-based assistant

We have also created a web-based assistant to help you with requesting rights to upload and creating/uploading of source packages. You can upload packages to the builder with either dput or the assistant.

- How do I get my package into extras?

After a successful build a package will appear in the extras-devel repository. You can move your packages from extras-devel to extras with the promotion interface. Instructions for the promotion interface can be found here.

We would like to invite all developers to take a look at the autobuilder and try it out. Please discuss problems and feature requests on the maemo-developers list.

More information about our effort can be found at the extras-cauldron website.

Thursday, April 17, 2008

[RFC] Maemo package guidelines: mandatory categories

Here is my first suggestion to clean up the complete mess we have at the moment when it comes to package categories in the maemo extras repository. There is no official list of categories, which has brought us to state we are in now.

We have these nice categories for example: 'Boingo', 'Canola'. Those should never be a category by themselves. We also have a lot of duplicates like 'cli' ,'Commandline' and 'Web','www' and 'Utilities','utils'.

This really has to stop as this is confusing for end users. We, the maemo community, need to find a solution and fix this.

If we look at Debian, we can see that they have the following list of categories:

admin, base, comm, contrib, devel, doc, editors, electronics, embedded, games, gnome, graphics, hamradio, interpreters, kde, libs, libdevel, mail, math, misc, net, news, non-free, oldlibs, otherosfs, perl, python, science, shells, sound, tex, text, utils, web, x11

My suggestion would be to base our list off the Debian list and remove the categories that are not suitable for Maemo. We might also want to add some categories if we find some missing.

admin, comm, devel, doc, editors, games, graphics, interpreters, mail, net, news, utils

and add:

desktop, database, education, internet, multimedia, office, scientific, security, system, travel

Please feel free to suggest other categories. Try to keep them as broad as possible. I would really like to get a list of categories where every application can be in at least one category. It would be nice not to need the 'misc' or 'other' category.

Perhaps it would also be a good idea to have the Application Manager display the pretty name for each category. e.g. comm -> Communication. That might be step 2 though.

I also would like your feedback on this idea:
"For diablo we only accept packages in the extras/extras-devel repositories when they have a valid category."

I'm really not sure if we can do this in time for diablo, but at least we can try to get the community to agree on this. I don't think we can do anything for existing repositories, but at least we could try for the new ones.

Please respond with your ideas in the comments section, but keep it to the category subject only.


There seems to be a list of categories for the Application Manager. I don't think that list has enough categories, but it is a start.

Tuesday, April 15, 2008

Self charging N810

A while ago I found out that it was possible to charge my N810 via USB connected to a regular PC. This can be very convenient if you don't have a socket available for a charger.

The Nokia N810 has the ability to be a USB host. It can provide a little bit of power via it's micro-USB port. As you can see in the picture, the device notices that the charger is connected.

Tools needed for this trick:
  • Nokia USB charger
  • USB F-F adapter
  • Standard micro-USB cable

Urho Konttori's usbcontrol

By now you should probably already know that this about the same as Perpetual motion, a great idea, but impossible (Without rewriting the laws of physics).

But still, it is good fun to see the charging notification pop up.