User:Jaffa/mud design

m (Requirements)
m (Examples: Document the examples)
Line 12: Line 12:
== Examples ==
== Examples ==
 +
Create new packages within mud's <code>packages/</code> directory. They can then be manipulated, built, edited and uploaded:
  mud create http://packages.debian.org/source/lenny/cal
  mud create http://packages.debian.org/source/lenny/cal
  mud create http://packages.ubuntu.com/source/hardy/libgee
  mud create http://packages.ubuntu.com/source/hardy/libgee
Line 17: Line 18:
  mud create new-package
  mud create new-package
 +
Take a package (for example, from the upstream deb source - in the above case - Ubuntu Hardy), build it; sign it and upload it to diablo-extras-builder:
  mud build libgee
  mud build libgee
  mud upload libgee
  mud upload libgee
 +
Typical workflow for getting a package, unpacking the source, editing it, checking the result and then cleaning out the working copy:
  mud get vala
  mud get vala
  mud compile vala
  mud compile vala

Revision as of 14:21, 29 June 2008

With the new extras process, mud-builder should be re-focused[1] and re-invigorated to help packaging in accordance with the Maemo Packaging Policy[2] and Uploading_to_extras.

Contents

Requirements

  • Any package patched, or not from a existing deb source, needs to have a maemo version suffix.
    • For example, if the base version is 7.0, the package version from mud should be 7.0-0maemo1 for the first upload, 7.0-0maemo2 for the second, etc.
    • If the upstream package comes from Debian (with version 3.5-7) and is unpatched, the package uploaded from mud is also 3.5-7.
    • If the upstream package comes from Debian (with version 3.5-7) and is patched, the package uploaded from mud is 3.5-7maemo1 for the first upload, 3.5-7maemo2 for the second, etc.
  • Warnings should be given when uploading a package with "Section: user/(.*)" where $1 is not in the accepted list.
  • It is an error to try and upload a package with no description.
  • Auto-sign & upload to ...-extras-builder in one-step
    • Use scp to upload all the files, uploading .changes and .dsc last, to avoid auto-builder issues (driven by .dsc files)

Examples

Create new packages within mud's packages/ directory. They can then be manipulated, built, edited and uploaded:

mud create http://packages.debian.org/source/lenny/cal
mud create http://packages.ubuntu.com/source/hardy/libgee
mud create http://download.gnome.org/sources/vala/0.3/vala-0.3.4.tar.bz2
mud create new-package

Take a package (for example, from the upstream deb source - in the above case - Ubuntu Hardy), build it; sign it and upload it to diablo-extras-builder:

mud build libgee
mud upload libgee

Typical workflow for getting a package, unpacking the source, editing it, checking the result and then cleaning out the working copy:

mud get vala
mud compile vala
...
mud diff vala
...
mud compile vala
mud clean vala

Workflow

TBC

Internals

Awaiting consensus on usage.

Install steps

  1. Ensure mmap given permission in host OS.
  2. Add extras and extras-devel to /etc/apt/sources.list.d in Scratchbox
  3. Install mud.
  4. Create ~/.mudrc containing garage username and gnupg key to use

For example:

echo 4096 | sudo tee /proc/sys/vm/mmap_min_addr
/scratchbox/login
for j in  '-src'; do for i in  '-devel'; do
  echo "deb$j http://repository.maemo.org/extras$i diablo free non-free" >>/etc/apt/sources.list.d/extras-repo.list
done; done
apt-get update && apt-get install mud
cat >~/.mudrc <<EOM
USERNAME=jaffa
GPG_KEY=FC11178D
EOM