##(see the SpecSpec for an explanation) ''Please check the status of this specification in Launchpad before editing it. If it is Approved, contact the Assignee or another knowledgeable person before making changes.'' * '''Launchpad Entry''': UbuntuSpec:mobile-maemo-packaging-cleanup * '''Packages affected''': most packages from the Maemo repository == Summary == The Maemo packages were created for an older Debian base, and have various problems due to being out of date. They use some obsolete interfaces, and are not compliant with current policy. == Rationale == These problems should be fixed in order to make the packages more maintainable, and bring them into line with expectations for quality and consistency in Ubuntu. == Use Cases == * Guido, a developer interested in the new Ubuntu Mobile and Embedded project, wants to learn more about how the system is put together. He reads the description of each component in order to understand what it does. * Shawn, a developer of a new Ubuntu-based mobile operating system, finds that he needs to fix a bug in one of the Maemo packages. She downloads the source with apt, makes some modifications, and builds it. Everything is in the expected place, and no warning messages are displayed, giving her a crisp and clean development experience. == Implementation == The following issues have been noted during test builds: * Old debhelper compatibility levels * Convert Python modules to the new Debian Python Policy (v2), preferably to python-central, see http://wiki.debian.org/DebianPython/NewPolicy * Incorrect debhelper dependencies compared to `debian/compat` * Incomplete copyright files (for example download URL is often missing) * Lack of package descriptions * Tommi Komulainen from Nokia posted [[https://lists.ubuntu.com/archives/ubuntu-mobile/2007-May/000098.html|a detailed and helpful list]] of components and their descriptions * Missing maintainer scripts (e.g. postinst-must-call-ldconfig) * Incomplete `debian/rules clean` targets * Dangerous constructs, such as: {{{ version=`ls src/.libs/lib*.so.* | \ awk '{if (match($$0,/[0-9]+\.[0-9]+\.[0-9]+$$/)) print substr($$0,RSTART)}'`)}}} * Misc syntactic cleanups: commented out code in rules (this is kept in version control, disabled code should simply be removed), spaces instead of tabs in rules... Packages being cleaned up should be listed in the MaemoPackaging/TODO page as such. ---- CategorySpec