• About

    Twinapex Blog is the voice of mobile and Internet experts. We tell tales about our exciting life in the world where communication methods convergence and you can access whatever information you wish, wherever, on whichever device you want.

    If you find us interesting and talented and you are looking for developers, please contact us and we might just be able to help you.

    Creative Commons License
    This work is licensed under a Creative Commons Attribution 3.0 Unported License.

PyS60 application release build toolchain

Posted on April 19, 2008  by Mikko Ohtamaa
Filed Under mobile, pys60, python, series 60, symbian

A common question for Python for Series 60 newcomers is how to build standalone Symbian applications from Python source code. We have been using Makefile based toolchain internally. I describe it in this picture, I didn’t bother to add thumbnail for the image, since it’s a 3400 pixels wide diagram.

The diagram describes building a PyS60 application with some Python extensions (Symbian native C++) mixed in and bundling it all to one downloadable SIS file. The application will appear as any first class S60 application in the menu and the user does not know it’s running Python internally, besides bad installation experience (it challenges Microsoft installers with all those unnecessary yes/no questions), extra uninstaller entries and slow start-up time.

The biggest problems are caused by embedded SISs (SIS inside other SIS files) which are not treaded very wel by several Symbian parties.  In theory, it could be build one monolithic SIS, but you’d need to recompile PyS60 from scratch and patch UIDs inside it for your own UIDs received from symbiansigned.com. We are planning to explore SCons based build solution to address this problem, since Makefiles are a bit unflexible with tasks like PKG file and UID range generation.

Here is a PKG file example for final user distributable SIS file.

Also, see UIKludges project for additional details for PKG files of Python extensions.

You need to have

  • Ensymble tool
  • Series 60 SDK (contains some old GNU make)

You need to master

  • A build tool (make)
  • Symbian PKG file structure
  • Lots of different command line tools

Pros

  • It’s the best one we have for now

Cons

  • Symbian signing and certification companies don’t understand embedded SIS files (all SIS files must be signed prior embedding) and may have hard time signing SIS files containing only an extension DLL for Pyton. Symbian Signed test criteria has been built only UI application based SIS files in the mind.
  • You cannot cook your own patched PyS60 distribution without revamping some hardcoded UIDs and paths, since otherwise there are UID conflicts (EXE and DLL file UIDs are in Nokia’s protected range)
  • S60 installers askes extra confirmation for every embedded SIS file, even in the middle of the progress bar, so the user experience of installation is screwed up
  • There will extra uninstallation entry for every embedded SIS file in S60 application manager confusing the user
  • As you can see, most cons come from Symbian and Symbian signing limitations and have nothing to do with Python

Ps. I would have put this thing to wiki.opensource.nokia.com, but their webmaster email address is non-functional and one cannot upload images to their Wiki.

 

Other posts by Mikko Ohtamaa

 

Comments

6 Responses to “PyS60 application release build toolchain”

  1. Jouni on April 19th, 2008 4:30 pm
    Gravatar

    Nice story, pictures always help! Symbian (Nokia) should have done it in the first place!

    Btw do you mean user can screw up the installation by REMOVING parts of the application/system by mistake?

    Scary,

    –jouni feeling sorry for Customer Support

     
  2. Mikko Ohtamaa on April 19th, 2008 5:08 pm
    Gravatar

    Yes, it’s 100% possible to screw it up =)

     
  3. Stefan Jenkner » Blog Archiv » Python S60 on April 28th, 2008 1:08 pm
    Gravatar

    [...] Etwas verwirrend finde ich jedoch den Zertifizierungs-Prozess. Mehr dazu findet man hier. [...]

     
  4. Vince on August 28th, 2008 12:59 pm
    Gravatar

    Where do I get the Series 60 SDK and must it be specific for python?

     
  5. Stefan Jenkner » Python S60 on November 13th, 2008 5:03 pm
    Gravatar

    [...] Etwas verwirrend finde ich jedoch den Build and Certification Process. Mehr dazu findet man hier. [...]

     
  6. waseemkhan on October 1st, 2009 12:40 am
    Gravatar

    hello sir plz send this application to my email ok thanks

     

Leave a Reply