PyMaemo/Scratchboxless packaging guide: Difference between revisions

From Maemo Wiki
Jump to navigationJump to search
imported>lmoura
imported>lmoura
Line 35: Line 35:
It'll create a folder called deb_dist with the source and binary packages. Alternatively, the "sdist_dsc" command will create only the source package.
It'll create a folder called deb_dist with the source and binary packages. Alternatively, the "sdist_dsc" command will create only the source package.


After generating, you can copy the package to your device and install it.
After generating, you can copy the package to your device and install it:
 
$ scp myscript_0.0.0_all.deb root@n900 ip>:/root
$ ssh root@<n900 ip>
# dpkg -i myscript_0.0.0_all.deb


= Building a basic debian directory =
= Building a basic debian directory =

Revision as of 20:57, 11 June 2010

Introduction

The usual way of developing Maemo applications is using or Scratchbox or MADDE, which are quite heavy for Python development. An alternative is using stdeb, a set of extensions to distutils that allows generating debian packages, both binary and source, that can be installed on the device or sent to the extra-devel repository.

This tutorial will show how to integrate it into your project, building the packages and uploading it to extras-devel.

Preparing the package

As stdeb extends distutils, it is necessary that you have a working setup.py script. For our example application, which consists of a single script named "myscript" and support files like .desktop and an icon, the setup.py will look like this:

from distutils.core import setup

setup(
    name='myscript',
    author='Lauro Moura',
    author_email='lauro.neto@donotspamme.com',
    scripts=['myscript'],
    data_files=[('share/applications/hildon', ['myscript.desktop']),
                ('share/pixmaps', ['myscript.png'])],
)

A file named stdeb.cgf in the same directory as setup.py is required, with stdeb maemo-specific options.

[DEFAULT]
XS-Python-Version: 2.5 # Only version currently supported by pymaemo.
Package:myscript # Binary package name. stdeb adds the prefix "python-" by default
Section: user/other # Section should start with user/ to appear in the menu.

Building the packages

The basic command is

python setup.py --command-packages=stdeb.command bdist_deb

It'll create a folder called deb_dist with the source and binary packages. Alternatively, the "sdist_dsc" command will create only the source package.

After generating, you can copy the package to your device and install it:

$ scp myscript_0.0.0_all.deb root@n900 ip>:/root
$ ssh root@<n900 ip>
# dpkg -i myscript_0.0.0_all.deb

Building a basic debian directory

Another useful command is debianize. It will read the configuration file and write a directory named debian in the same directory. This can be used for manually creating the packages using dpkg tools directly.

Note: sdist_dsc and bdist_deb do not use this directory, generating a new one in the source dir under deb_dist/.

Uploading to extras

Future work

Support for non-debian systems.