Difference between revisions of "Documentation Team/Obsolete/Services Wrap native packages HOWTO"

From Sugar Labs
Jump to navigation Jump to search
Line 131: Line 131:
  
 
== Known issue ==
 
== Known issue ==
 +
 +
* in RO mode(check if some package is installed), 0install could work only with deb and rpm based distributions
 +
* to install packages, system should have PackageKit

Revision as of 17:50, 23 December 2009


Introduction

The purpose of this Guide is describing how to simplify process of usage, by activity developers, packages that are not included to Sugar Platform but well packaged to various GNU/Linux distributions.

Detailed description

To use native packages, they should be wrapped into services. Such services are lightweight and contain only proper information about native packages. Also having service wrappers let us collect all distro specific information in one place, because various GNU/Linux distributions could have different names for the same upstream application.

Primal distributions list

In according to http://distrowatch.com/, there are several distributions whose names could be mentioned in service. Followed table is a list of primal distributions from top 100 for 2009 year, in most cases theirs names will be the same in all derivate distributions.

Popularity Name in service Packages Sugar support
2 fedora RPM (yum) yes
4 suse RPM yes
5 debian DEB yes
6 mandriva RPM (urpmi) yes
7 puppy PET no
10 arch Pacman yes
13 slackware TXZ no
17 gentoo portage yes
38 moblin RPM no
40 frugalware FPM (TAR.BZ2) no
41 pardus PiSi no
74 altlinux RPM (APT) yes
89 turbolinux RPM no
91 crux TAR.GZ no
96 linuxconsole LCM no
99 yoper RPM no

Package wrappers are regular services, so read Service Developers Guide first.

service.info file

In addition to standard service.info file, wrappers' file:

  • does not have version, stability, licence fields
  • should contain one or more Distro:<name> sections
  • Distro: section with name *, describes common distro parameters

Each Distro: section:

  • should contain name field which is local package name for service
  • for applications, could contain main field with full path to exec file(could be different for different distributions)

Workflow

  • using 0sugar-publish tool, create service/service.info file with followed fields in section Service
    • name
    • summary
    • description
    • homepage
  • add Distro:* section with common distro parameters
  • add optional Distro:<name> section for particular distributions
  • exec 0sugar-publish push to upload changes to the server

Known issue

  • in RO mode(check if some package is installed), 0install could work only with deb and rpm based distributions
  • to install packages, system should have PackageKit