User:Jaffa/mud design
m (→Requirements: Flesh out a little.) |
m (→Requirements: Re-order) |
||
Line 2: | Line 2: | ||
== Requirements == | == Requirements == | ||
- | * Any package patched, or not from a existing deb source, needs to have a ''maemo'' version suffix. | + | * Taking an upstream project (from somewhere) and applying zero or more patches for Maemo. |
- | ** 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. | + | ** Automate creation of projects. |
- | ** 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'''. | + | ** Take URL of upstream source deb info page (fish out .dsc, .diff.gz and .tar.gz). |
- | ** 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. | + | ** Take URL of upstream tarball. |
- | * Warnings should be given when uploading a package with "Section: user/(.*)" where <code>$1</code> is not in the accepted list. | + | * Provide easy in-life management, e.g. changelogs and maintaining the patch. |
- | * It is an error to try and upload a package with no description. | + | * Proper debification and Maemo additions (like Section: user/ and the icon) |
+ | * Conformant with the Maemo Packaging Policy: | ||
+ | ** 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 <code>$1</code> 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 | * 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) | ** Use scp to upload all the files, uploading .changes and .dsc ''last'', to avoid auto-builder issues (driven by .dsc files) | ||
- | |||
- | |||
- | |||
- | |||
== Examples == | == Examples == |
Revision as of 14:29, 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
- Taking an upstream project (from somewhere) and applying zero or more patches for Maemo.
- Automate creation of projects.
- Take URL of upstream source deb info page (fish out .dsc, .diff.gz and .tar.gz).
- Take URL of upstream tarball.
- Provide easy in-life management, e.g. changelogs and maintaining the patch.
- Proper debification and Maemo additions (like Section: user/ and the icon)
- Conformant with the Maemo Packaging Policy:
- 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.
- Any package patched, or not from a existing deb source, needs to have a maemo version suffix.
- 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
- Ensure mmap given permission in host OS.
- Add extras and extras-devel to /etc/apt/sources.list.d in Scratchbox
- Install mud.
- 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