======================================== Python for Series 60 Community Edition https://launchpad.net/pys60community ======================================== Python for Series 60 Community Edition is an effort to enhance the original Nokia PyS60 distribution and provide long term support and viability for it. Python for Series 60 Community Edition is an open development branch for PyS60. The goal of the project is to make it easier to build high quality PyS60 applications. To achieve this, the project has created a new build chain to make custom Python deployments possible. The project also serves as an umbrella to collect useful extensions and patches into a maintained distributed version control repository - unlike in the original Nokia PyS60, the codebase is open for all developers. == What's different to official PyS60? == - More extensions - Patches and fixes included - More complex example applications - Possible to build and distribute commercial grade applications - Open for contributions == Extensions == The following extensions are included appuifw2 - Extends appuifw with additional and improved features. - http://code.google.com/p/appuifw2/ miso - Various Series 60 platform utilities - http://www.hiit.fi/files/fi/da/miso/utils/web/ uikludges - Original: http://ssalmine.googlepages.com/somepys60extensions - Another: http://code.google.com/p/uikludges/ - This extension is deprecated. Same functionality already implemented in appuifw2 progressnotes - S60 progress and wait notes. - http://code.google.com/p/uikludges/ applicationmanager - show, hide and terminate applications - improved appswitch - http://code.google.com/p/uikludges/ elocation - Extended location - To be merged with 'location'. - http://chris.berger.cx/PyS60/ Extensions not included: - location : Conflicts with elocation. To be merged. - gles, glcanvas: Uses Tls:Dll. Requires special treatment when built-in. Not done yet. - sensor: Requires support from phone. == Applications == The following example applications are included. They compile to standard Symbian EXE files and are more than just Python script files. GPSPoller - Wraps a web browser and periodically posts user's GPS coordinates to web server, making it possible to create location aware web services. SMSGateway - Use phone as a SMS gateway and send/receive text messages over simple HTTP server interface. Filebrowser - Stand-alone application based on the official filebrowser.py script. Console - Stand-alone PUTools Bluetooth console. Hello world - Always start with something simple. Application Watcher( not installed in release ) - This daemon application is started on-boot and configured to watch and launch your application when it is closed. Good for watching your background task that needs to be running. Small memory footprint. - Configured at build-time - Thus not part of release at this time - Can be disabled, enabled and closed with a configuration file. == Patches == The following patches are included - Better access point selection support which static access point ids. == Distributing and deployment == In short: PyS60 CE has a new build system to create PyS60 package, which doesn't conflict with other PyS60 installations. The goal of the project is to make it easier to build high quality PyS60 applications. To do this, we need to avoid conflicts with official PyS60 installation and with any additional extensions user might have installed. The following issues must be taken into account when creating PyS60 application, which have major impact on how your application is going to work: - How to be sure that user has: - PyS60 installed? - the right PyS60 version installed? - all the PyS60 extensions you find so useful? You could embed PyS60 and the extensions into SIS package yourself, but: - what if user has previous PyS60, extension or Python library installed. Can you replace it without breaking user's other applications? Symbian Platform security prevents installing conflicting binaries. Thus, one can effectively have one Nokia PyS60 application in the phone once. To make life a bit easier, the PyS60 Community Edition provides a solution by merging all the extensions into a single DLL: the python.dll. The binaries are not the only problem: resources, icons and uids all need to be changed starting from filenames to C/C++ source modification. The CE build system automates the process. After that it is simply a matter of deciding a good name for your application, getting UIDS and finding out what capabilities you need for signing and focus more on the cool Python application you are about to create. == Future plans == - Continue to improve build system - Make it easier to include reqular Symbian applications. - Currently py2sis apps only - Currently optimizing PKG files require manual work and build chain's automatic PKG generation can't be used at all times. - What to do with python libraries you never need - 'tarfile.py' is hefty 59KB! - To be solved with use of PKG templating provided by Scons for Symbian - More extensions - Merge extensions to keep the amount of extensions bearable. == Release history == === Version 2008-12-11 === UID range:0xe1000000 - 0xe1000009 Based on PyS60 1.4.5 Shell looks scripts also from [c/e]:\data\python folder. - Allows one to update files with PC-Suite easily Reworked build system: - Based on Scons for Symbian tool chain. - No more MMPs, build scripts are in Python. SCons allows one to configure build scripts easily straight from the command line without tedious configuring. - Allows one to build different Python installations, which do not conflict each other. - Allows creating applications with special Python version without requiring user to install PyS60 or avoid problems with users having wrong PyS60 installed. - Ideal for stand-alone apps that need Python. - Main motivation: creating commercial applications using PyS60