Editing User:Jaffa/mud design

Warning: You are not logged in. Your IP address will be recorded in this page's edit history.
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
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>
+
-
&lt;extras&gt;
+
-
  &lt;file name="foo.sh"&gt;
+
-
    &lt;destination path="/usr/bin/foo.sh" [mode="auto|0755" ][owner="..."][group="..." ]/&gt;
+
-
    &lt;destination path="/usr/bin/foo2.sh" /&gt;
+
-
  &lt;/file&gt;
+
-
&lt;/extras&gt;
+
-
</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 />
+

Learn more about Contributing to the wiki.


Please note that all contributions to maemo.org wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see maemo.org wiki:Copyrights for details). Do not submit copyrighted work without permission!


Cancel | Editing help (opens in new window)