blob: 7aea5def9bc8e779b40ac7cc4f22e0e1865a50ee [file] [log] [blame] [edit]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Contributing to op-build &#8212; OpenPOWER Firmware v2.6-257-g5b5624c2
documentation</title>
<link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="op-build Linux Kernel" href="KernelTree.html" />
<link rel="prev" title="Development Process" href="index.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="contributing-to-op-build">
<h1>Contributing to op-build<a class="headerlink" href="#contributing-to-op-build" title="Permalink to this headline"></a></h1>
<p>op-build is the open source build system for OpenPOWER firmware. It assembles
many individual components (only a few of which are OpenPOWER specific) into
a single firmware image. op-build is implemented as a buildroot overlay.</p>
<p>If you haven’t already, join us on IRC (#openpower on Freenode) and on
the mailing list ( openpower-firmware&#64;lists.ozlabs.org - subscribe by
going to https://lists.ozlabs.org/listinfo/openpower-firmware )</p>
<p>We use GitHub Issues and Pull Requests for tracking contributions. We
expect participants to adhere to the GitHub Community Guidelines (found
at https://help.github.com/articles/github-community-guidelines/ ).</p>
<p>If you are unable or unwilling to use GitHub, we can accept contributions
via the mailing list.</p>
<p>All contributions should have a Developer Certificate of Origin (see below).</p>
<div class="section" id="development-philosophy">
<h2>Development Philosophy<a class="headerlink" href="#development-philosophy" title="Permalink to this headline"></a></h2>
<p>Our development philosophy is:</p>
<ol class="simple">
<li>Don’t re-invent the wheel</li>
<li>Upstream first</li>
</ol>
<p>As such, we don’t like to carry patches in op-build, we prefer to interact
with upstream projects and get patches accepted there. Where we do need
to patch things locally, we prefer to carry backports from upstream, which
can be removed when we move to more recent upstream.</p>
</div>
<div class="section" id="development-environment">
<h2>Development Environment<a class="headerlink" href="#development-environment" title="Permalink to this headline"></a></h2>
<p>For working on op-build you will need a reasonably recent Linux distribution.
We aim to have all current major distros be suitable development platforms
(focused on Ubuntu and Fedora, as that’s what most developers currently use).</p>
<p>A host GCC of at least 4.9 is recommended (all modern Linux distributions
provide this).</p>
<p>You can build on x86-64, ppc64 or ppc64le, op-build will build appropriate
cross-compilers for you (thanks to the magic of buildroot).</p>
<p>You will need 8-15GB of disk space to do a full build of any one configuration.</p>
</div>
<div class="section" id="development-process">
<h2>Development Process<a class="headerlink" href="#development-process" title="Permalink to this headline"></a></h2>
<p>The main source repository is on GitHub. We use GitHub issues and pull requests
as well as a mailing list (https://lists.ozlabs.org/listinfo/openpower-firmware).</p>
<p>We tag a new op-build release roughly every 6 weeks.</p>
<p>We use GitHub milestones: https://github.com/open-power/op-build/milestones</p>
<p>Starting with the v1.15 release, active development occurs against the master
branch. When we’re nearing a release, we move the content of the master branch
over to a ‘release’ branch, ensuring development can continue while the release
is prepared.</p>
<p>We accept pull requests on GitHub: https://github.com/open-power/op-build/pulls</p>
</div>
<div class="section" id="developer-certificate-of-origin">
<h2>Developer Certificate of Origin<a class="headerlink" href="#developer-certificate-of-origin" title="Permalink to this headline"></a></h2>
<p>Contributions to this project should conform to the <code class="docutils literal notranslate"><span class="pre">Developer</span> <span class="pre">Certificate</span> <span class="pre">of</span> <span class="pre">Origin</span></code> as defined at http://elinux.org/Developer_Certificate_Of_Origin.
Commits to this project need to contain the following line to indicate
the submitter accepts the DCO:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">Signed</span><span class="o">-</span><span class="n">off</span><span class="o">-</span><span class="n">by</span><span class="p">:</span> <span class="n">Your</span> <span class="n">Name</span> <span class="o">&lt;</span><span class="n">your_email</span><span class="nd">@domain</span><span class="o">.</span><span class="n">com</span><span class="o">&gt;</span>
</pre></div>
</div>
<p>By contributing in this way, you agree to the terms as follows:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">Developer</span> <span class="n">Certificate</span> <span class="n">of</span> <span class="n">Origin</span>
<span class="n">Version</span> <span class="mf">1.1</span>
<span class="n">Copyright</span> <span class="p">(</span><span class="n">C</span><span class="p">)</span> <span class="mi">2004</span><span class="p">,</span> <span class="mi">2006</span> <span class="n">The</span> <span class="n">Linux</span> <span class="n">Foundation</span> <span class="ow">and</span> <span class="n">its</span> <span class="n">contributors</span><span class="o">.</span>
<span class="mi">660</span> <span class="n">York</span> <span class="n">Street</span><span class="p">,</span> <span class="n">Suite</span> <span class="mi">102</span><span class="p">,</span>
<span class="n">San</span> <span class="n">Francisco</span><span class="p">,</span> <span class="n">CA</span> <span class="mi">94110</span> <span class="n">USA</span>
<span class="n">Everyone</span> <span class="ow">is</span> <span class="n">permitted</span> <span class="n">to</span> <span class="n">copy</span> <span class="ow">and</span> <span class="n">distribute</span> <span class="n">verbatim</span> <span class="n">copies</span> <span class="n">of</span> <span class="n">this</span>
<span class="n">license</span> <span class="n">document</span><span class="p">,</span> <span class="n">but</span> <span class="n">changing</span> <span class="n">it</span> <span class="ow">is</span> <span class="ow">not</span> <span class="n">allowed</span><span class="o">.</span>
<span class="n">Developer</span><span class="s1">&#39;s Certificate of Origin 1.1</span>
<span class="n">By</span> <span class="n">making</span> <span class="n">a</span> <span class="n">contribution</span> <span class="n">to</span> <span class="n">this</span> <span class="n">project</span><span class="p">,</span> <span class="n">I</span> <span class="n">certify</span> <span class="n">that</span><span class="p">:</span>
<span class="p">(</span><span class="n">a</span><span class="p">)</span> <span class="n">The</span> <span class="n">contribution</span> <span class="n">was</span> <span class="n">created</span> <span class="ow">in</span> <span class="n">whole</span> <span class="ow">or</span> <span class="ow">in</span> <span class="n">part</span> <span class="n">by</span> <span class="n">me</span> <span class="ow">and</span> <span class="n">I</span>
<span class="n">have</span> <span class="n">the</span> <span class="n">right</span> <span class="n">to</span> <span class="n">submit</span> <span class="n">it</span> <span class="n">under</span> <span class="n">the</span> <span class="nb">open</span> <span class="n">source</span> <span class="n">license</span>
<span class="n">indicated</span> <span class="ow">in</span> <span class="n">the</span> <span class="n">file</span><span class="p">;</span> <span class="ow">or</span>
<span class="p">(</span><span class="n">b</span><span class="p">)</span> <span class="n">The</span> <span class="n">contribution</span> <span class="ow">is</span> <span class="n">based</span> <span class="n">upon</span> <span class="n">previous</span> <span class="n">work</span> <span class="n">that</span><span class="p">,</span> <span class="n">to</span> <span class="n">the</span> <span class="n">best</span>
<span class="n">of</span> <span class="n">my</span> <span class="n">knowledge</span><span class="p">,</span> <span class="ow">is</span> <span class="n">covered</span> <span class="n">under</span> <span class="n">an</span> <span class="n">appropriate</span> <span class="nb">open</span> <span class="n">source</span>
<span class="n">license</span> <span class="ow">and</span> <span class="n">I</span> <span class="n">have</span> <span class="n">the</span> <span class="n">right</span> <span class="n">under</span> <span class="n">that</span> <span class="n">license</span> <span class="n">to</span> <span class="n">submit</span> <span class="n">that</span>
<span class="n">work</span> <span class="k">with</span> <span class="n">modifications</span><span class="p">,</span> <span class="n">whether</span> <span class="n">created</span> <span class="ow">in</span> <span class="n">whole</span> <span class="ow">or</span> <span class="ow">in</span> <span class="n">part</span>
<span class="n">by</span> <span class="n">me</span><span class="p">,</span> <span class="n">under</span> <span class="n">the</span> <span class="n">same</span> <span class="nb">open</span> <span class="n">source</span> <span class="n">license</span> <span class="p">(</span><span class="n">unless</span> <span class="n">I</span> <span class="n">am</span>
<span class="n">permitted</span> <span class="n">to</span> <span class="n">submit</span> <span class="n">under</span> <span class="n">a</span> <span class="n">different</span> <span class="n">license</span><span class="p">),</span> <span class="k">as</span> <span class="n">indicated</span>
<span class="ow">in</span> <span class="n">the</span> <span class="n">file</span><span class="p">;</span> <span class="ow">or</span>
<span class="p">(</span><span class="n">c</span><span class="p">)</span> <span class="n">The</span> <span class="n">contribution</span> <span class="n">was</span> <span class="n">provided</span> <span class="n">directly</span> <span class="n">to</span> <span class="n">me</span> <span class="n">by</span> <span class="n">some</span> <span class="n">other</span>
<span class="n">person</span> <span class="n">who</span> <span class="n">certified</span> <span class="p">(</span><span class="n">a</span><span class="p">),</span> <span class="p">(</span><span class="n">b</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="n">c</span><span class="p">)</span> <span class="ow">and</span> <span class="n">I</span> <span class="n">have</span> <span class="ow">not</span> <span class="n">modified</span>
<span class="n">it</span><span class="o">.</span>
<span class="p">(</span><span class="n">d</span><span class="p">)</span> <span class="n">I</span> <span class="n">understand</span> <span class="ow">and</span> <span class="n">agree</span> <span class="n">that</span> <span class="n">this</span> <span class="n">project</span> <span class="ow">and</span> <span class="n">the</span> <span class="n">contribution</span>
<span class="n">are</span> <span class="n">public</span> <span class="ow">and</span> <span class="n">that</span> <span class="n">a</span> <span class="n">record</span> <span class="n">of</span> <span class="n">the</span> <span class="n">contribution</span> <span class="p">(</span><span class="n">including</span> <span class="nb">all</span>
<span class="n">personal</span> <span class="n">information</span> <span class="n">I</span> <span class="n">submit</span> <span class="k">with</span> <span class="n">it</span><span class="p">,</span> <span class="n">including</span> <span class="n">my</span> <span class="n">sign</span><span class="o">-</span><span class="n">off</span><span class="p">)</span> <span class="ow">is</span>
<span class="n">maintained</span> <span class="n">indefinitely</span> <span class="ow">and</span> <span class="n">may</span> <span class="n">be</span> <span class="n">redistributed</span> <span class="n">consistent</span> <span class="k">with</span>
<span class="n">this</span> <span class="n">project</span> <span class="ow">or</span> <span class="n">the</span> <span class="nb">open</span> <span class="n">source</span> <span class="n">license</span><span class="p">(</span><span class="n">s</span><span class="p">)</span> <span class="n">involved</span><span class="o">.</span>
</pre></div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="../index.html">OpenPOWER Firmware</a></h1>
<h3>Navigation</h3>
<p class="caption"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../introduction.html">Introduction to OpenPOWER Firmware</a></li>
<li class="toctree-l1"><a class="reference internal" href="../testing.html">Testing op-build</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Development Process</a><ul class="current">
<li class="toctree-l2 current"><a class="current reference internal" href="#">Contributing to op-build</a></li>
<li class="toctree-l2"><a class="reference internal" href="KernelTree.html">op-build Linux Kernel</a></li>
<li class="toctree-l2"><a class="reference internal" href="building-with-ci.html">Building with ci scripts</a></li>
<li class="toctree-l2"><a class="reference internal" href="stable-rules.html">op-build stable tree rules and releases</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../boot-devices.html">Supported Boot Devices</a></li>
<li class="toctree-l1"><a class="reference internal" href="../versioning.html">Version Scheme</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release-notes/index.html">op-build Release Notes</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../index.html">Documentation overview</a><ul>
<li><a href="index.html">Development Process</a><ul>
<li>Previous: <a href="index.html" title="previous chapter">Development Process</a></li>
<li>Next: <a href="KernelTree.html" title="next chapter">op-build Linux Kernel</a></li>
</ul></li>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2017, OpenPOWER Foundation System Software Work Group.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 1.7.9</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
<a href="../_sources/process/CONTRIBUTING.md.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>