| # Contributing to SELinux |
| |
| Contributing to the SELinux userspace project is a similar process to |
| other open source projects. Bug reports, new features to the existing |
| code, additional tools, or updated documentation are all welcome. |
| |
| You can find a list of open issues where you might contribute to the SELinux kernel code at |
| https://github.com/SELinuxProject/selinux-kernel/issues or to the SELinux userspace code at |
| https://github.com/SELinuxProject/selinux/issues. |
| |
| See the selinuxproject.org [user resources |
| page](http://selinuxproject.org/page/User_Resources) for more |
| information on mailing lists, documentation, and other resources. |
| |
| ## Reporting Bugs |
| |
| All bugs and patches should be submitted to the [SELinux mailing |
| list](https://lore.kernel.org/selinux) at [email protected]. |
| |
| When reporting bugs please include versions of SELinux related libraries and |
| tools (libsepol, libselinux, libsemanage, checkpolicy). If you are |
| using a custom policy please include it as well. |
| |
| ## Compiling |
| |
| There are a number of dependencies required to build the userspace |
| tools/libraries. On a Fedora system you can install them with yum: |
| |
| # yum install audit-libs-devel bison bzip2-devel dbus-devel dbus-glib-devel flex flex-devel flex-static glib2-devel libcap-devel libcap-ng-devel pam-devel pcre2-devel python-devel setools-devel swig ustr-devel |
| |
| The tools and libraries can be built and installed under a private directory from the top level with make, e.g. |
| |
| $ make DESTDIR=~/obj install install-pywrap |
| |
| ## Contributing Code |
| |
| After obtaining the code of the repository (see below), create a patch |
| against the repository, and post that patch to the [SELinux mailing |
| list](https://lore.kernel.org/selinux) at [email protected]. When preparing |
| patches, please follow these guidelines: |
| |
| - Patches should apply with -p1 |
| - Must apply against HEAD of the master branch |
| - Separate large patches into logical patches |
| - Patch descriptions must end with your "Signed-off-by" line. This means your |
| code meets the Developer's certificate of origin, see below. |
| |
| When adding new, large features or tools it is best to discuss the |
| design on the mailing list prior to submitting the patch. |
| |
| ## Development Repository |
| |
| Git is a modern source code management system. For more information |
| about Git please see the Git website. |
| |
| To get an anonymous checkout of the SELinux userland repository you can |
| run: |
| |
| $ git clone https://github.com/SELinuxProject/selinux.git |
| |
| # Developer Certificate of Origin |
| |
| 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. |