| # Contributing to dtc or libfdt |
| |
| There are two ways to submit changes for dtc or libfdt: |
| |
| * Post patches directly to the the |
| [devicetree-compiler](mailto:devicetree-compiler@vger.kernel.org) |
| mailing list. |
| * Submit pull requests via |
| [Github](https://github.com/dgibson/dtc/pulls) |
| |
| ## Adding a new function to libfdt.h |
| |
| The shared library uses `libfdt/version.lds` to list the exported |
| functions, so add your new function there. Check that your function |
| works with pylibfdt. If it cannot be supported, put the declaration in |
| `libfdt.h` behind `#ifndef SWIG` so that swig ignores it. |
| |
| ## Tests |
| |
| Test files are kept in the `tests/` directory. Use `make check` to build and run |
| all tests. |
| |
| If you want to adjust a test file, be aware that `tree_tree1.dts` is compiled |
| and checked against a binary tree from assembler macros in `trees.S`. So |
| if you change that file you must change `tree.S` also. |
| |
| ## Developer's Certificate of Origin |
| |
| Like many other projects, dtc and libfdt have adopted the "Developer's |
| Certificate of Origin" (Signed-off-by) process created by the Linux |
| kernel community to improve tracking of who did what. Here's how it |
| works (this is a very slight modification of the description from |
| `Documentation/process/submitting-patches.rst` in the kernel tree): |
| |
| The sign-off is a simple line at the end of the explanation for the |
| patch, which certifies that you wrote it or otherwise have the right |
| to pass it on as an open-source patch. The rules are pretty simple: |
| if you can certify the below: |
| |
| Developer's Certificate of Origin 1.1 |
| |
| By making a contribution to this project, I certify that: |
| |
| (a) The contribution was created in whole or in part by me and I |
| have the right to submit it under the open source license |
| indicated in the file; or |
| |
| (b) The contribution is based upon previous work that, to the best |
| of my knowledge, is covered under an appropriate open source |
| license and I have the right under that license to submit that |
| work with modifications, whether created in whole or in part |
| by me, under the same open source license (unless I am |
| permitted to submit under a different license), as indicated |
| in the file; or |
| |
| (c) The contribution was provided directly to me by some other |
| person who certified (a), (b) or (c) and I have not modified |
| it. |
| |
| (d) I understand and agree that this project and the contribution |
| are public and that a record of the contribution (including all |
| personal information I submit with it, including my sign-off) is |
| maintained indefinitely and may be redistributed consistent with |
| this project or the open source license(s) involved. |
| |
| then you just add a line saying:: |
| |
| Signed-off-by: Random J Developer <random@developer.example.org> |
| |
| using your real name (sorry, no pseudonyms or anonymous |
| contributions.) This will be done for you automatically if you use |
| `git commit -s`. Reverts should also include "Signed-off-by". `git |
| revert -s` does that for you. |
| |
| Any further SoBs (Signed-off-by:'s) following the author's SoB are |
| from people handling and transporting the patch, but were not involved |
| in its development. SoB chains should reflect the **real** route a |
| patch took as it was propagated to the maintainers, with the first SoB |
| entry signalling primary authorship of a single author. |