|
|
Line 1: |
Line 1: |
− | {{Stub}}
| + | * [[Kernel patches]] |
− | | + | * [[Userspace patches]] |
− | | |
− | == Setting up working environment ==
| |
− | | |
− | === Obtaining the source code ===
| |
− | | |
− | The sources of OpenVZ components are tracked by Git SCM and placed on [[OpenVZ infrastructure|repositories]].
| |
− | You either could download packed sources or use git tool itself.
| |
− | | |
− | For example to clone vzctl one need to type
| |
− | | |
− | git clone git://git.openvz.org/vzctl.git
| |
− | | |
− | | |
− | === Compiling the source code ===
| |
− | | |
− | {{FIXME|describe how to compile OpenVZ components}}
| |
− | | |
− | | |
− | == Changing the source code ==
| |
− | | |
− | === Kernel ===
| |
− | | |
− | When you change the source code keep in mind - we prefer tabs and indentations
| |
− | to be 8 characters width. Consider reading [https://www.kernel.org/doc/Documentation/CodingStyle Linux kernel coding style].
| |
− | | |
− | Other "rules" could be learned from the source code - just make your code
| |
− | to look similar.
| |
− | | |
− | === Userspace ===
| |
− | | |
− | {{FIXME|describe code style}}
| |
− | | |
− | | |
− | == Producing a patch ==
| |
− | | |
− | === Kernel ===
| |
− | | |
− | There are at least two ways to make it right.
| |
− | | |
− | 1) git format-patch
| |
− | | |
− | You might need to read documentation on Git SCM how to prepare patch
| |
− | for mail submission. Take a look on http://book.git-scm.com/ and/or
| |
− | http://git-scm.com/documentation for details. It should not be hard
| |
− | at all.
| |
− | | |
− | 2) Use "diff -up"
| |
− | | |
− | Use <code>diff -up</code> or <code>diff -uprN</code> to create patches.
| |
− | | |
− | | |
− | === Userspace ===
| |
− | | |
− | {{FIXME|describe preparing patch}}
| |
− | | |
− | | |
− | == Checking patches for errors ==
| |
− | | |
− | === Kernel ===
| |
− | | |
− | Basic style error checking is provided by scripts/checkpatch.pl script
| |
− | from linux kernel source tree. You might have headers or complete sources
| |
− | of linux kernel at /usr/src/. Run
| |
− | | |
− | checkpatch.pl my_patch.patch (consider --no-tree option for headers-only)
| |
− | | |
− | It will produce detailed report on style problems in your patch.
| |
− | Make sure to fix all _errors_(some warnings may be ignored).
| |
− | | |
− | | |
− | === Userspace ===
| |
− | | |
− | Several of our components contains tests. To check whether your patches don't harm anything run:
| |
− | | |
− | make test
| |
− | | |
− | It will launch tests. Check for error messages produced by it.
| |
− | Beside to functional and unit tests it would be good to check new code with [[Static code analysis|static
| |
− | analysis tools]].
| |
− | | |
− | == Sending patches ==
| |
− | | |
− | === Kernel ===
| |
− | | |
− | Patches related to kernel should be sent to development mailing list devel@openvz.org
| |
− | which is located at https://openvz.org/mailman/listinfo/devel. Pay attention that mails
| |
− | from emails not subscribed to list must pass moderation (i.e. not so fast).
| |
− | | |
− | Please make sure the email client you're using doesn't screw your patch
| |
− | (line wrapping and so on).
| |
− | | |
− | === Userspace ===
| |
− | | |
− | Patches related to userspace tools should be submitted to code review system (FIXME).
| |
− | | |
| | | |
| == Wait for response == | | == Wait for response == |