<!--#include file="header.html" -->

<div class="container">
<div class="row nh">
<div class="col-lg-10 col-lg-offset-1 col-md-12 col-sm-12 col-xs-12">

  <div class="panel panel-primary">
    <div class="panel-heading">Contribute</div>
    <div class="panel-body">
      <p>Buildroot is an open source project and we warmly welcome your
        contributions.<br />
	There are different ways you can get involved:</p>

      <ul>
	<li>Reproducing, analyzing and fixing bugs from our
	  <a href="https://gitlab.com/buildroot.org/buildroot/-/issues">bug tracker</a></li>
	<li>Analyzing and fixing <a href="http://autobuild.buildroot.org/">
	    autobuild failures</a></li>
	<li>Reviewing and testing patches sent by other developers. See the
	  <a href="http://lists.buildroot.org/mailman/listinfo/buildroot">mailing list
	  </a> or <a href="https://patchwork.ozlabs.org/project/buildroot/list/">
	    patchwork</a>.</li>
	<li>Working on items from the
	  <a href="http://www.elinux.org/Buildroot#Todo_list">TODO list</a></li>
	<li><a href="http://buildroot.org/manual.html#submitting-patches">Submitting
	  your own patches</a> through the
	  <a href="http://lists.buildroot.org/mailman/listinfo/buildroot">mailing list
	</a></li>
      </ul>

      <p>For more details on these topics, check out the
	<a href="http://buildroot.org/manual.html#_contributing_to_buildroot">
	  Contributing to buildroot</a> chapter in the Buildroot manual. Thanks for your help!</p>

      <p>If you need any support yourself, have a look at <a href="./support.html">
	  Support</a>.</p>
    </div>
  </div>

  <div class="panel panel-primary">
    <div class="panel-heading">Sponsor</div>
    <div class="panel-body">
      <p>Besides technical contributions, you can also support the project
        financially.<br />
	There are various ways make a financial contribution:</p>

      <ul>
	<li>Sponsor the <a href="./association.html">Buildroot Association</a>.
	  The association helps Buildroot with infrastructure (servers, domain
	  name, ...) and organising meetings. It relies on money from sponsors
	  to organise those.</li>
	<li>Practical help: providing a meeting room for developer meetings,
	  providing autobuilder instances, etc.</li>
	<li><a href="https://mind.be/buildroot-lts">Buildroot LTS Sponsoring</a>,
	  a specific effort to finance the maintenance of the Long Term Support
	  branch of Buildroot.</li>
      </ul>

      <p>All of these sponsors are thanked by listing them on the <a
        href="./sponsors.html">sponsors page</a>.</p>
    </div>
  </div>

</div><!--/.col-sm-10 -->
</div><!--/.row -->
</div>

<!--#include file="footer.html" -->
