Editing PyMaemo/Scratchboxless packaging guide
Warning: You are not logged in.
Your IP address will be recorded in this page's edit history.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
- | + | = Introduction = | |
- | The usual way of developing Maemo applications is using | + | The usual way of developing Maemo applications is using or Scratchbox or MADDE, which are quite heavy for Python development. An alternative is using [http://github.com/astraw/stdeb 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, | + | 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 [http://pymaemo.garage.maemo.org/stdeb_example/myscript-app/myscript single script] named "myscript" and support files like [http://pymaemo.garage.maemo.org/stdeb_example/myscript-app/myscript.desktop .desktop] and an [http://pymaemo.garage.maemo.org/stdeb_example/myscript-app/myscript.png icon], the [http://pymaemo.garage.maemo.org/stdeb_example/myscript-app/setup.py 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 [http://pymaemo.garage.maemo.org/stdeb_example/myscript-app/stdeb.cfg stdeb.cgf] in the same directory as setup.py is required, with stdeb maemo-specific options. A detailed list of options can be found in the [http://github.com/astraw/stdeb stdeb website]. | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | A file named [http://pymaemo.garage.maemo.org/stdeb_example/myscript-app/stdeb.cfg stdeb. | + | |
[DEFAULT] | [DEFAULT] | ||
- | XS-Python-Version: 2.5 # Only version currently supported by | + | XS-Python-Version: 2.5 # Only version currently supported by pymaemo. |
- | Package: | + | Package:myscript # Binary package name. stdeb adds the prefix "python-" by default |
- | Section: user/ | + | Section: user/other # Section should start with user/ to appear in the menu. |
- | Depends: python-gtk2 # extra dependencies | + | Depends: python-gtk2 # add extra dependencies here |
- | + | = Building the packages = | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
The basic command is | The basic command is | ||
Line 63: | Line 36: | ||
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. | + | $ scp myscript_0.0.0_all.deb root@n900 ip>:/root |
$ ssh root@<n900 ip> | $ ssh root@<n900 ip> | ||
- | # dpkg -i myscript_0. | + | # 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 | + | 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/. | 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 = | |
To upload to extras, use the debianize command and then call dpkg-buildpackage: | To upload to extras, use the debianize command and then call dpkg-buildpackage: | ||
Line 81: | Line 54: | ||
$ dpkg-buildpackage -rfakeroot -uc -us -S | $ dpkg-buildpackage -rfakeroot -uc -us -S | ||
- | This command will create the .dsc, .tar.gz and .changes files that can be used to | + | This command will create the .dsc, .tar.gz and .changes files that can be used to upload the application to the extras devel following the instructions [http://wiki.maemo.org/Uploading_to_Extras here]. |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | = Future work = | |
- | + | Support for non-debian systems. | |
- | + |
Learn more about Contributing to the wiki.