Tuesday, September 14, 2010

MeeGo diary notes: getting ready for packaging

Got myself a build.meego.com account and am attempting to start a new package around meego for pandaboard - an OMAP4 based platform. This series of blog posts will hopefully contain my day to day notes for a better lack of word all under the label of MeeGo ;)..

Note: the good folks at DeviceVM had already done a MeeGo port to OMAP4 Blaze platform sometime back, my approach is a bit different in getting MeeGo port available in main MeeGo repository itself. Different challenge - mostly of the packaging kind as I am starting to realize ;)

I've started my first experience with packaging for MeeGo with trying to put together a package for U-Boot. my lack of previous experience with rpm packaging has me stumped so far :(.

On the base level, MeeGo uses rpm packaging - essentially what folks call a spec file. MeeGo folks have added one layering on top with yaml file which is translated by a set of tools called spectacle to translate the yaml to rpm spec file.

Spectacle
Since I like to get my hands on the tools as I learn, the first task of the day was to get spectacle tools loaded and running. Ran into issues immediately trying to get my ubuntu 9.10 box to automagically install the spectacle debian packages. few hours of trying to work around apt sources.list files, I gave up and filed a bug - steps that worked for me:
  • Downloaded spectacle_0.19_all.deb
  • sudo apt-get install python-yaml libyaml-0-1
  • sudo dpkg --install spectacle_0.19_all.deb
Bingo, I now have the specify and other spectacle utilities.

osc - the OBS command line util
MeeGo works with opensuse build system (or OBS) - more or less a centralized build system which effectively reuses packages from all around for various build configuration. OBS has a command line utility called osc - installed this with:
sudo apt-get install osc


So far so good. I now needed to get osc to talk to build.meego.com's servers.. given that I was behind a firewall, I needed a configuration file setup to be done. Bit of help from the good folks on #meego-arm and #meego-dev irc chatrooms on freenode.net later my ~/.oscrc:
[general]
apiurl = http://api.meego.com
packagecachedir = /home/nmenon/src/meego/osbuild-packagecache
[http://api.meego.com]
user = my_obs_login
pass = my_obs_passwd
aliases = meego
email = my_email_id
http_proxy="https://proxy:80/"
Cute.. "osc ls" worked out of the box after this.

osc is a must have tool if you want to effectively work with OBS IMHO.

I am all ready now to create my u-boot repo:
Following the wiki steps (note the build.meego.com looks a bit different from the time the wiki was created ;) but that is expected) Went to the obs site and clicked on projects and added a new project for uboot under my namespace (home:nm:bootloader:u-boot) - This probably will be different when it enters mainline devel:tools:something/something i guess.. not worrying about it for the moment.

on my pc:
osc co home:nm:bootloader:u-boot
and viola I have a clone!

Things to do next - the real thing: figuring out how to add the spec file and related packaging gimmicry to build in obs..

No comments: