Source code

Revision control

Copy as Markdown

Other Tools

Snapshots of Pixman for mozilla usage.
We only include the relevant parts of each release (generally, src/*.[ch]), as
we have moz.build files used by the Mozilla build system. For documentation and
similar, please see the official tarballs at http://www.cairographics.org/.
The paths of the actual source files look a little silly:
gfx/pixman/pixman/pixman/pixman-arm.c
That's a lot of pixman. But this is deliberate:
- `gfx/pixman`: When we vendor libraries into Mozilla Central, we generally
parent them with a directory holding Mozilla-specific metadata like
`moz.build`, `moz.yaml`, and a `README` explaining the vendoring, like this
very file. `gfx/cairo` is another example.
- `gfx/pixman/pixman`: It seems best to have the actual vendored sources look
like a normal Git checkout. When you clone the upstream Pixman repository, by
default you get a directory named `pixman`.
- `gfx/pixman/pixman/pixman`: The Pixman repository itself has a metadata parent
directory, and places the actual sources in a subdirectory named `pixman`.
- `gfx/pixman/pixman/pixman/pixman-foo.c`: It is the Pixman project's convention
to give its source files names starting with `pixman-`.
The road to absurdity is paved with good intentions.
VERSIONS:
pixman (0.46.4)
==== Updating and Patching Pixman ====
To change Pixman in Mozilla Central:
- Make your changes to `gfx/pixman/pixman`, and test as necessary.
- Add an appropriate patch to `gfx/pixman/patches`, with filenames relative to
`gfx/pixman/pixman`. Edit the `patches` list in `gfx/pixman/moz.yaml` to apply
it at the appropriate point in the list --- typically the end.
- Test that UpdateBot can actually reconstruct the vendored Pixman sources with
the following command:
mach vendor gfx/pixman/moz.yaml -r $REVISION --patch-mode check --force
where `$REVISION` is the `revision` currently listed in `moz.yaml`. UpdateBot
should say that the "upstream hasn't modified files locally", and `git status`
should be clean.
- Submit a patch for review that includes both the changes to
`gfx/pixman/pixman` as well as the changes to `moz.yaml` and the new
patch file in `gfx/pixman/patches`.