User:Jaffa/mud design

(Requirements: Update and mark complete)
m (Requirements: Mark complete)
Line 5: Line 5:
** Automate creation of projects.
** Automate creation of projects.
** Take URL of upstream source deb info page (fish out .dsc, .diff.gz and .tar.gz).
** Take URL of upstream source deb info page (fish out .dsc, .diff.gz and .tar.gz).
-
** Take URL of upstream tarball.
+
** Take URL of upstream tarball <strike>done</strike>
* Provide easy in-life management, e.g. changelogs and maintaining the patch.
* Provide easy in-life management, e.g. changelogs and maintaining the patch.
-
* Proper debification and Maemo additions (like <code>Section: user/</code> and the icon)
+
* Proper debification and Maemo additions (like <code>Section: user/</code> and the icon) <strike>done</strike>
* Conformant with the Maemo Packaging Policy:
* Conformant with the Maemo Packaging Policy:
** Any package patched, or not from a existing deb source, needs to have a ''maemo'' version suffix.
** Any package patched, or not from a existing deb source, needs to have a ''maemo'' version suffix.
Line 17: Line 17:
* 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 and [https://bugs.maemo.org/show_bug.cgi?id=3354 #3354])
** Use scp to upload all the files, uploading .changes and .dsc ''last'', to avoid auto-builder issues (driven by .dsc files and [https://bugs.maemo.org/show_bug.cgi?id=3354 #3354])
-
* <strike>Auto-determine Build-Depends</strike>
+
* Auto-determine Build-Depends <strike>r234</strike>
== Examples ==
== Examples ==

Revision as of 15:14, 1 July 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 done
  • Provide easy in-life management, e.g. changelogs and maintaining the patch.
  • Proper debification and Maemo additions (like Section: user/ and the icon) done
  • 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.
  • 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 and #3354)
  • Auto-determine Build-Depends r234

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