Linux PowerPC 32 ELF ABI

= SGML and Stylesheets = This section enumerates stylesheet changes and what you can expect from the SGML:

 This figure will only show up in the Linux document.

Text to be stricken through Bold Text Italic Text Italic Bold Text

= Setting up Bazaar-NG on your system = 1. If you need to install Bazaar-NG follow the direction on the following website: http://bazaar-vcs.org/InstallationFaq 2. Get the Bazaar-NG Source Code Repository on your system: On Ubuntu Edgy this is the (bzr) application provided in the following packages: bzr bzrtools 3. Set your EDITOR env variable to your favorite editor (better yet, add it to your shell resource file): $ export EDITOR=vim 4. Download and install the bzr-tags plugin: $ bzr branch http://bzr.freestandards.org/unofficial/bzr-tags bzr-tags $ cd bzr-tags $ mkdir -p $HOME/.bazaar/plugins/tags $ cp __init__.py tests.py $HOME/.bazaar/plugins/tags 5. Set your email address in ~/.bazaar/bazaar.conf. Note that [DEFAULT] is case sensitive: [DEFAULT] email = Joe Public 

= Getting the PowerPC 32 Bit ELF ABI SGML Sources =

1. We're going to want to use the concept of a pristine tree to track the bundles that people send out. This tree only has bundles applied to it. You don't do work in this tree. You use it for branching other trees. Branching is a verb in the bzr world.

$ bzr branch http://bzr.freestandards.org/lsbspec-powerpc/devel/lsbspec lsbspec-pristine
 * Get a branch from freestandards.org for a pristine tree (where you don't do any work):

= Apply Bundles To Your Pristine Tree =

Bazaar-NG has the concept of bundles that will allow us to push our changes to freestandards.org. Their generic documentation on this process is located here: http://www.freestandards.org/en/Bazaar-NG_Patch_Queue_Manager#Alternative_Workflow

The following directions show how to apply a bundle to a pristine tree.

1. Pull the ppc32.clone.bundle.patch bundle into this new pristine tree $ cd lsbspec-pristine $ bzr pull /path-to/ppc32.clone.bundle.patch

2. Commit the bundle(s) into the pristine tree: [Depending on the version of bzr this stage probably won't be necessary.] $ bzr commit -m "Merge Ryan's bundle into my pristine branch"


 * People who just want to apply the two bundles we've created need only branch a pristine tree, and apply each bundle via a pull, commiting after each 'pull'.

= Making Changes =

You don't want to make actual changes in your pristine tree or you won't have anything to create the bundles against. For this reason you want to branch your pristine tree into a working tree.

1. Branch the pristine tree into a new working tree: $ cd ../ $ bzr branch lsbspec-pristine/ lsbspec-working

2. Make changes in the new working tree: $ cd lsbspec-working $ bzr commit;

3. Create a bundle to apply against the pristine tree from within the working tree. Notice we're in the lsbspec-working directory but we're creating the bundle against the lsbspec-pristine tree. This makes the bundle apply against the current revision level of the pristine tree:

$ cd lsbspec-working $ bzr bundle ../lsbspec-pristine --output ../new.bundle.patch

4. Apply the bundle to the pristine tree: $ cd lsbspec-pristine $ bzr pull ../new.bundle.patch

5. Commit the new bundle to the pristine tree: $ bzr commit -m "Apply new bundle to my pristine tree"

6. Distribute the bundle to other members of the team with an indication on it's dependencies [i.e. which bundles were applied to your pristine tree before you created your bundle].

= Changelog format =

Your editor will be invoked and you will be asked to provide a changelog. Please use the following template: year-mm-ddsubmitter's full name [BZ #number] * path/and/filename: description of the change. continue the desc. Notice no * char on the continuation line. * next/path/and/filename: description, etc.

2007-01-08 Ryan S. Arnold  
 * Example (from the ppc32-clone-bundle).

* ELF/ppc32/ : Cloned ELF/ppc64 directory. * ELF/ppc32/PPC-elf32abi-0.1.txt : Generated initial version. * ELF/ppc32/PPC-elf32abi.sgml : Cloned from ELF/ppc64, renamed, and changed chapter links to reflect elf32. * ELF/ppc32/chap1-elf32abi.sgml : Cloned from ELF/ppc64. * etc...


 * NOTE: Please include all the files that you modified in the changelog.

= Generated formatted output files from the SGML files =

1. Install the following programs: jw jade docbook2pdf docbook2html docbook2txt

docbook docbook-utils jade
 * On my system (Ubuntu Linux: Edgy Release) these were provided by the following packages:

2. In the ELF/ppc32 directory you'll see the 'makefile', which automates the building of the target files. Execute the following: $ make onehtmlspec $ make pdfspec $ make txtspec PPC-elf32abi.html PPC-elf32abi.pdf PPC-elf32abi.txt
 * The result will be the files:

3. In the cloned ELF/ppc32 bundle I generated and renamed these and provided initial 0.1 versions as follows: PPC-elf32abi-0.1.html PPC-elf32abi-0.1.pdf PPC-elf32abi-0.1.txt