|
|
| Line 1: |
Line 1: |
| - | With the new [[Extras repository process definition|extras process]], [http://mud-builder.garage.maemo.org/ mud-builder] should be re-focused<ref>[https://garage.maemo.org/pipermail/mud-builder-users/2008-June/000255.html MUD Direction?], ''Andrew Flegg'', 26 June 2008</ref> and re-invigorated to help packaging in accordance with the Maemo Packaging Policy<ref>[https://maemo.org/forrest-images/pdf/maemo-policy.pdf Maemo Packaging Policy], ''Eero Tamminen'', 28 May 2008</ref> and [[Uploading to Extras-devel]].
| + | THX that's a great anwesr! |
| - | | + | |
| - | == 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 <strike>done</strike>
| + | |
| - | * 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) <strike>done</strike>
| + | |
| - | * 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
| + | |
| - | ** 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])
| + | |
| - | * Auto-determine Build-Depends <strike>r234</strike>
| + | |
| - | | + | |
| - | == 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.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 ==
| + | |
| - | Use quilt<ref>[http://www.suse.de/~agruen/quilt.pdf "Introduction to Quilt", ''Andreas Gr¨unbacher'', June 12 2005</ref>?
| + | |
| - | | + | |
| - | TBC
| + | |
| - | | + | |
| - | == Internals ==
| + | |
| - | | + | |
| - | === Package structure ===
| + | |
| - | Instead of having <code>''package''.xml</code>, <code>patches/''package''.patch</code> and <code>icon/''package''</code>, v2.0 of mud should have more consolidation:
| + | |
| - | | + | |
| - | ''package''.pkg/
| + | |
| - | mud.xml - required
| + | |
| - | ''package''.png - optional icon, used if -nn not present
| + | |
| - | ''package''-26.png - optional, if present copied to right place
| + | |
| - | ''package''-64.png - optional, if present copied to right place
| + | |
| - | ''package''.desktop - if present, auto-copied to right place
| + | |
| - | ''package''.service - if present, auto-copied to right place
| + | |
| - | extras.xml- optional specification of file destinations, modes, owners, groups etc.
| + | |
| - | extras/ - copied to ''build-dir''/mud-extras
| + | |
| - | ...
| + | |
| - | patches/ - contains quilt patch set
| + | |
| - | ...
| + | |
| - | ...
| + | |
| - | | + | |
| - | Icon files, desktop and service files are auto-considered part of 'extras' with implicit rules for their destination.
| + | |
| - | | + | |
| - | <pre>
| + | |
| - | <extras>
| + | |
| - | <file name="foo.sh">
| + | |
| - | <destination path="/usr/bin/foo.sh" [mode="auto|0755" ][owner="..."][group="..." ]/>
| + | |
| - | <destination path="/usr/bin/foo2.sh" />
| + | |
| - | </file>
| + | |
| - | </extras>
| + | |
| - | </pre>
| + | |
| - | | + | |
| - | Mode is optional (set to 0644 if unspecified, unless the file starts #!). Owner and group default to root. <code>install -D</code> lines are auto-added to end of <code>debian/rules:install</code>.
| + | |
| - | | + | |
| - | === Install steps ===
| + | |
| - | # Add extras and extras-devel to /etc/apt/sources.list.d in Scratchbox
| + | |
| - | # Install mud.
| + | |
| - | # Create <code>~/.mudrc</code> containing garage username and gnupg key to use
| + | |
| - | | + | |
| - | For example:
| + | |
| - | /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
| + | |
| - | | + | |
| - | === Extras package ===
| + | |
| - | mud should be in Extras, and needs dependencies on:
| + | |
| - | * xsltproc
| + | |
| - | * devscripts
| + | |
| - | * gnupg
| + | |
| - | * sharutils
| + | |
| - | | + | |
| - | Suggests:
| + | |
| - | * imagemagick
| + | |
| - | | + | |
| - | == Notes ==
| + | |
| - | | + | |
| - | <references />
| + | |