Difference between revisions of "Activity Team/Packaging"

From Sugar Labs
Jump to navigation Jump to search
 
(15 intermediate revisions by 10 users not shown)
Line 1: Line 1:
 +
Packaging is the making of a software package for use by a [https://en.wikipedia.org/wiki/Package_manager package manager] in Linux distributions such as Fedora, Debian, or Ubuntu.
 +
 
== Common issues ==
 
== Common issues ==
  
 
=== Publish source tarballs for each release ===
 
=== Publish source tarballs for each release ===
  
''If your activity is part of Fructose you should just follow [[DevelopmentTeam/Release#Module_release|Module Release]] instructions.''
+
Some packagers prefer to work from tarballs rather than the activity bundles.  This is because activity bundles contain built components instead of only source code.
 +
 
 +
''If your activity is part of Fructose follow [[Development Team/Release#Module_release|Module Release]] instead.''
  
* Generate a source tarball as follows. It will be placed inside the dist/ directory.
+
* Make a source tarball as follows. It will be placed inside the dist/ directory.
  ./setup.py dist_source
+
  python setup.py dist_source
* Upload it on the web. If you need a server to upload it to, please open a ticket on http://dev.sugarlabs.org, under the shell.sugarlabs.org component, to request a shell account. Remeber to attach your public ssh key. When you have access, create a directory under /pub/sugarlabs/sources/honey for your activity and copy the tarball in it.
+
* Upload it on the web. If you need a server to upload it to, [[Service/shell|ask for a shell account]]. When you have access, create a directory under /upload/sources/honey for your activity and copy the tarball to it.
* Update the Honey table on the [[DevelopmentTeam/Source_Code#Honey|Source Code]] page with a link to the latest version. Feel free to add an entry if your activity is not yet listed.
+
* Update the Honey table on the [[Development Team/Source_Code#Honey|Source Code]] page with a link to the latest version. Add an entry if your activity is not yet listed.
  
 
=== Create a trac component for your activity ===
 
=== Create a trac component for your activity ===
  
Packagers needs to be able to report problems about your activity. Please open a ticket on [http://dev.sugarlabs.org dev.sugarlabs.org], under the trac component, to request creation of a component for your activity.
+
Users or packagers may report problems with your activity, either;
 +
 
 +
* enable the Issues feature in the GitHub repository, or;
 +
* open a ticket on http://bugs.sugarlabs.org, under the trac component, to request a ''component'' for your activity.
  
 
=== Check copyright and licensing ===
 
=== Check copyright and licensing ===
  
* Many translations lacks copyright and licensing info completely or they provide just a boilerplate.The package maintainer should edit the .pot file to replace these:
+
* Many translations lack copyright and licensing info completely or they provide just a boilerplate.The package maintainer should edit the .pot file to replace these:
  
 
  SOME DESCRIPTIVE TITLE
 
  SOME DESCRIPTIVE TITLE
Line 32: Line 39:
 
processing, not crucial as the licensing problem.
 
processing, not crucial as the licensing problem.
  
== Activities ==
+
[[Category:Activity Team]]
 
 
This section is an attempt to summarize the problems distributions are having with packaging Sugar activities. Help from the activity maintainers to get them solved would be highly appreciated.
 
 
 
=== TamTam ===
 
 
 
* No source tarballs.
 
* XO specific hacks in the sound code.
 
 
 
=== Speak ===
 
 
 
* No source tarball.
 
 
 
=== Scratch ===
 
 
 
State unknown.
 
 
 
=== Ruler ===
 
 
 
* No source tarball.
 
* Hardware specific in that the scale of the ruler is hardcoded to the XO resolution and screen size.
 
 
 
=== Record ===
 
 
 
* No source tarball.
 
* Perhaps hardware specific. // issues related to XO's screen ?
 
 
 
=== Read ===
 
 
 
* Dependency on sugar-evince, which cannot be installed in parallel with evince.
 
 
 
=== Pippy ===
 
 
 
* No source tarball.
 
 
 
=== Paint ===
 
 
 
* No source tarball.
 
* C fill.so module - has source but no build process.
 
 
 
=== Memorize ===
 
 
 
* csound missing necessary patches on some distributions.
 
 
 
=== Measure ===
 
 
 
* No source tarball.
 
* Currently hardware specific(?) //issues related to the XO's audio chip
 
 
 
=== Maze ===
 
 
 
* No source tarball.
 
* Weird error on Fedora
 
from olpcgames import _cairoimage
 
ImportError: cannot import name _cairoimage
 
 
 
=== Implode ===
 
 
 
* No source tarball.
 
* Shebang/permission mismatch.
 
 
 
=== Distance ===
 
 
 
* No source tarball.
 
* Shebang/permission mismatch.
 
* Hardware specific?
 
 
 
=== Bounce ===
 
 
 
* No source tarball.
 
* C code in the bundle.
 
 
 
=== Etoys ===
 
 
 
No known problems.
 
 
 
=== Turtle Art ===
 
 
 
* When we fold in Turtle Art with Sensors, we'll have to make sure that proper python math packages are loaded (previously, we were using numeric):
 
 
 
from numpy.oldnumeric import *
 
from numpy.fft import *
 
 
 
=== Terminal ===
 
 
 
No known problems.
 
 
 
=== Jukebox ===
 
 
 
No known problems.
 
 
 
=== Log ===
 
 
 
No known problems.
 
 
 
=== Memorize ===
 
 
 
No known problems.
 
 
 
=== Moon ===
 
 
 
No known problems.
 
 
 
=== Analyze ===
 
 
 
No known problems.
 
 
 
=== Chat ===
 
 
 
No known problems.
 
 
 
=== Calculate ===
 
 
 
* Depends on sharedstate module which isn't officially released. Distros packaging sharedstate separately rely on git snapshots of sharedstate.
 
 
 
=== Browse ===
 
 
 
No known problems.
 

Latest revision as of 19:49, 16 January 2018

Packaging is the making of a software package for use by a package manager in Linux distributions such as Fedora, Debian, or Ubuntu.

Common issues

Publish source tarballs for each release

Some packagers prefer to work from tarballs rather than the activity bundles. This is because activity bundles contain built components instead of only source code.

If your activity is part of Fructose follow Module Release instead.

  • Make a source tarball as follows. It will be placed inside the dist/ directory.
python setup.py dist_source
  • Upload it on the web. If you need a server to upload it to, ask for a shell account. When you have access, create a directory under /upload/sources/honey for your activity and copy the tarball to it.
  • Update the Honey table on the Source Code page with a link to the latest version. Add an entry if your activity is not yet listed.

Create a trac component for your activity

Users or packagers may report problems with your activity, either;

  • enable the Issues feature in the GitHub repository, or;
  • open a ticket on http://bugs.sugarlabs.org, under the trac component, to request a component for your activity.

Check copyright and licensing

  • Many translations lack copyright and licensing info completely or they provide just a boilerplate.The package maintainer should edit the .pot file to replace these:
SOME DESCRIPTIVE TITLE
THE PACKAGE'S COPYRIGHT HOLDER
PACKAGE

When that is done, they should get in contact with each translator to make them adopt that improved boilerplate and themselves replace these:

FIRST AUTHOR <EMAIL@ADDRESS>
YEAR

When doing above, it makes good sense to also tidy the gettext hints to have proper info too, but that is just nice-to-have for semi-automated processing, not crucial as the licensing problem.