January 21, 2010
There is a pretty slick new development tool for the Maemo platform out now called MADDE. It is aimed at the Maemo sweetspot: Qt development. It works on the big three platforms, though I have only installed it on Linux.
MADDE is designed to make cross compiling and generally building applications easier, and it appears to be doing just that. Installation went smoothly and the documentation is concise and clear. MADDE even provides a debian directory, which is my particular interest at the moment, so let’s take a closer look there to see how MADDE can help you build debs.
The first thing you notice when using MADDE is that when you create a project with it, it creates not just project files, but debian files for you as well. In that debian directory you’ll see a bunch of example files – things you can use if you are going to create a debian README file, man pages and the like. For Maemo, we don’t use man pages, so you can simply remove any file that ends in .ex that you don’t want or need.
There are of course a variety of details of packaging you can go into, but what is very interesting with MADDE is that the package building is included. This means that you can call ‘mad dpkg-buildpackage’ and MADDE knows what to do and goes ahead and does it. You don’t need to fiddle with your environment, unless of course you want to, MADDE saves you a great deal of time by including all the needed tools for packaging.
I will discuss the implications of MADDE and packaging further, and I also hope to dive into some of the source code. (Dear Nokia, please consider releasing your perl modules to CPAN.) But my first impression of MADDE is that it is a huge time saver, and a great maemo development environment – try it out!
January 11, 2010
Recently, while researching a blog post or two about how to package python apps, I’ve run across some really good resources on packaging that I’d like to point out. One is Ubuntu-oriented and the other is debian-oriented, but a deb is a deb so use which every one you prefer.
The first: https://wiki.ubuntu.com/PackagingGuide/Python is from the Ubuntu wiki which is a really good source for all things Ubuntu. The wiki entries tend to be clearly written and easy to read which is a blessing. This particular wiki entry takes one through packaging a python app from beginning to end in a straight forward manner – nothing really complex here. It should cover about 90% of the packaging requirements of python Maemo apps.
The second: http://www.debian-administration.org/articles/336 is from the site Debian Administration which is a great site. The site has an active community and some experienced admins post there so you’ll definitely find advanced topics like chroots, MTA configuration, etc. The article I pointed out is a fairly thorough discussion on packaging with some theory at the beginning.
The downside of the first article is that it describes using CDBS which requires more editing of files and is not as widely used as debhelper. The second article is a little older and doesn’t take advantage of the changes to debhelper that have come along in later versions. But between them I am sure you’ll find something useful and they are a great way to get started.
December 29, 2009
Gandhi said one has to become the change that one desires. To enable a change towards more openness, and make community generated bug fixes and improvements available to everyone who wants them, I’ve set up a community repository for updates to software that is not being maintained by anyone else. This repository hopefully can show that we are a committed group who can manage our own software distribution system and work together.
The repo is not yet public. It is currently set up on the new hardware that Nokia has generously provided us. I am looking for brave testers and for packages that might be suitable to put in our community repo. The discussion that was held at the Maemo summit in Amsterdam spoke only about SSU updates and that is all I think is really appropriate at this time, regular packages should of course end up in the usual place: extras. This does not mean that we should limit ourselves to just SSUs, but let’s start there and see what else needs to be added.
I thought I would set up a thread on Talk -> Development where we can co-ordinate our work.
Hope to see you there!
December 4, 2009
This is a short article / post on installing Web::Simple on Debian’s testing version codenamed Squeeze.
Sometimes you may not need all the powerful tools that are bundled into Catalyst, the perl web framework. But you may want to use a module or two from the CPAN that you can be reasonably sure is tested and follows some best practices. Web::Simple might be that. It is written by notorious perl gadfly Matt Trout, and whatever one says about his profane grandeloquence, one must admit he writes valuable modules for perl. So let’s take it for a spin while noting that it is new so we oughtn’t complain too loudly if things break.
The first thing we need to do is to install Web::Simple and we’ll need to go to CPAN to get it since it is not packaged for debian. I just used cpan to install;
cpan -i Web::Simple
Now, lets test it out using the synopsis! One of the great advantages of perl is that there is often working code in the synopsis of a perl module on CPAN, I am just going to take the synopsis and put it into a file, chmod the file to 755, and run it. If I run it from the command line first, like this;
I get this message:
“No path passed – use ./web-simple / for root at
/usr/local/share/perl/5.10.1/Web/Simple/Application.pm line 249.”
So I re-run my program (web-simple) the way they recommend, with a “/” and viola, a 200 status message!
HTTP/1.1 200 OK
Date: Fri, 04 Dec 2009 11:41:57 GMT
Now this might not be useful enough to write a shopping cart, but it certainly is a handy module to sketch out ideas and make some prototypes without having to set up an entire Catalyst installation. Good stuff, thanks Matt!
October 16, 2009
I subscribe to the debian policy mailing list which often has some really interesting posts. This is one that I thought people would like to see, it needs wider distribution. The reason is that it is a pretty clear set of graphs showing how a package gets installed on debian and the consequences of installer scripts.
Go directly to the post by Manoj to read more about this. He is going to continue work on the graphs but in the state they are in now they are pretty useful to describe what happens.
September 17, 2009
While interesting articles from Reuters are one way to measure the hype around the new Maemo device, another way is to measure developer participation.
There is some data to go on, though a lot is anecdotal. Firstly, I think we have seen increased traffic on the IRC channel (irc.freenode.net #maemo) with lots of new users of various backgrounds. That is an easy thing to do, to show up on IRC and ask some questions, but there are other signs of increased developer interest. Firstly, we are seeing lots of new apps come into garage, Maemo’s development platform. That is a positive thing. Not only new applications, but applications that have been around for a while are returning as well. People are fixing bugs, uploading new packages, and generally getting their software ready to put on the devices.
Another significant measure is the traffic on the developer’s list. Already through the first two weeks of September, there has been more email to the list than any other month this year except for May. In May we had 430 emails to the developer list for the entire month; sin September we have had 381 emails to the list and the month is only half over.
So taking these little data points into account, I am willing to predict the platform is going to be a big success, maybe bigger than we imagined.
August 24, 2009
Benjamin Mako Hill has written a great deal on Ubuntu and Debian and has been around both projects for a while. I just discovered a new article written by him and Kyle Rankin called
Package Management in Ubuntu Server. It appears to be part of a book although I can’t tell which one.
At first it might seem pretty straight forward and something that many of the people who read Planet Maemo would know already, but once I got past the first page I saw that the authors went into some pretty good detail.
The site also has some other interesting articles for Ubuntu and Debian admins and users.
August 21, 2009
It’s a normal day, I am being bombarded by twitter, facebook, the intertubes, et. al. and I come across a tweet from @debian mentioning the new packages available from the last few weeks. I look at what has come into debian for something interesting and there is a lot, like an ofono package.
What catchse my eye is vala-terminal since vala is something I would like to learn more about. Clicking on the vala-link in the debian packages web interface shows another interesting link to some web site called freesmartphone.org. I click there to find that the same people behind the freesmartphone.org site have created a commercial entity that used to be funded by OpenMoko. So its good to see that the OpenMoko stuff has found its way into the community and that these tools are making there way into debian which is upstream for Maemo.
Things move so quickly nowadays, it’s just amazing to watch the ecosystem for free software expand.
July 24, 2009
On the debian developers mailing list madduck asked about various package checking tools in debian. The resulting discussion revealed how many tools there are in debian to check packages; tools like piuparts, PET, and packagecheck. In contrast to Maemo, debian hackers seemed to be obsessed with the quality of their packages. The mantra “Policy is your friend” is ubiquitous in debian.
I don’t want to place the differences between the two projects in a negative light since the goals are so different. Debian aims to be an easy to use operating system whereas Maemo is a device. Maemo developers often want the device to do cool things, for them packaging is an after-thought. This is why there is a maemo.org debmaster of course; to help developers with packaging and integrate into the operating system so they can focus on cool features and libraries.
Having a debian background I am constantly thinking about the overall system, trying to assure that packages install well, that things “just work” for users. This sometimes makes me wonder if I am doing everything I can for maemo developers and what is the most effective way to encourage best practices and assure quality. While I am excited by the work Niels has done with package promotion and the potential that maemian has, I feel there is more that one can do. While I am sure it is boring to many developers, packaging policy is critical for building the kind of tools that Niels has built. You need to know that the developer has submitted the right email address, declared the correct dependencies, etc. Policy truly is your friend.
I hope to get the chance to speak about packaging at the Maemo Summit, I have submitted a talk anyway, we’ll see if it gets accepted. I also would like to encourage developers who target the Maemo platform to think more about making life easier for their users – after all, it will bring you more users if you can easily install and use your application. I would also like to know more specifically where the pain is, what sucks about the QA process, what sucks about packaging (aside from having to do it at all. :P) Let’s make packaging policy a tool to make everyone’s life easier.
May 22, 2009
This post is an introduction to some of the higher level concepts of packaging, more about the whys than the hows. I plan to start a series of posts on the anatomy of your average deb for Maemo, but before that I wanted to go through some of the reasons for packaging so that the details fit into a larger purpose. That purpose is simply to make life easier for your users by doing the hard work for them.
The hard work is compiling, determining dependencies, and building for the chip architecture of your software. All this stuff is quite esoteric to the average user – they just want to know: how do I install? Does it work with my tablet? With packaging we can answer in the affirmative the latter question and we can make install painless. That makes users of your software happy and more likely to use it.
Debian has as part of its mission the goal of putting users first, this makes Nokia’s choices of debian as an operating system fortuitous. Debian has worked really hard at making software easy to install and their success has made it one of the most popular linux distros out there. Debian’s user-centric focus created the APT (Advanced Packaging Tool) system, with apt-get and aptitude, which Maemo has inherited. This means that maemo packages can take advantage of all the well tested debian tools and the infrastructure which debian has built.
Building packages correctly allows you to insert software onto a variety of architectures, Maemo supports two and Debian supports at least eight.
Packaging has some fringe benefits as well, it forces a certain amount of discipline upon the developer and alerts them to the needs of their users. This is unfortunately something that we as programmers forget to do – to put the user at the center of the experience. Software should be written with users and usability in mind, otherwise no matter how good it is, no one will use it. Packaging helps to enforce best practices which make the installation and upgrade of software standardized. By standardizing distribution of software we are realizing the spirit of the GPL and bringing some pretty amazing technology to everyone, not just the alpha geeks who know their way around a C compiler.
Quick recap: Packaging allow us to
- Build software for numerous architectures
- Make software easy to install
- Follow best practices in the development and distribution of software
So that is the point of packaging; to make software easy to install. It’s good to remember this when you are jumping through the hoops of dpkg and its various tools.