<p>We deploy everything through RPM packages.</p>

<p>This adds a spec file template and the Makefile logic to create first a Source RPM and (optionally for testing) a Binary RPM. Typical use case looks like this:</p>

<pre><code>$ make srpm RPM_OUTDIR=dist RPM_EXTRA_REV=.is24
... cut lots of make output ...
Wrote: dist/ipxe-4479-2bdd.is24.src.rpm
</code></pre>

<p>Then we build this Source RPM into a Binary RPM with our existing RPM build automation.</p>

<p>iPXE binaries are installed into <code>/usr/share/ipxe</code>, similar to how RHEL6 packages syslinux.</p>

<p>Since ipxe does not do binary releases the current version number (1.0.0) is pretty meaningless. The GITVERSION used in the Makefile is also not suitable as it is guaruanteed to be monotonous increasing.</p>

<p>To simplify things and to reflect the development model of iPXE i chose to use the amount of git commits in src/ as the "version" counter and the GITVERSION as "release" to assist in finding the exact git revision that the RPM was built from.</p>

<hr>

<h4>You can merge this Pull Request by running</h4>
<pre>  git pull https://github.com/ImmobilienScout24/ipxe master</pre>
<p>Or view, comment on, or merge it at:</p>
<p>  <a href='https://github.com/ipxe/ipxe/pull/17'>https://github.com/ipxe/ipxe/pull/17</a></p>

<h4>Commit Summary</h4>
<ul>
  <li>Add SPEC file to create an RPM with iPXE</li>
  <li>Extend Makefile to create Source and Binary RPMs.</li>
  <li>RHEL6 git can only export to tar, not to tar.gz.</li>
  <li>Add missing build dependency</li>
  <li>Added RPM_EXTRA_REV and %dist to RPM Revision</li>
  <li>Correctly handle RPM_EXTRA_REV to append more stuff to RPM Revision</li>
</ul>

<h4>File Changes</h4>
<ul>
  <li>
    <strong>M</strong>
    <a href="https://github.com/ipxe/ipxe/pull/17/files#diff-0">src/.gitignore</a>
    (1)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/ipxe/ipxe/pull/17/files#diff-1">src/Makefile</a>
    (31)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/ipxe/ipxe/pull/17/files#diff-2">src/ipxe.spec.in</a>
    (56)
  </li>
</ul>

<h4>Patch Links:</h4>
<ul>
  <li><a href='https://github.com/ipxe/ipxe/pull/17.patch'>https://github.com/ipxe/ipxe/pull/17.patch</a></li>
  <li><a href='https://github.com/ipxe/ipxe/pull/17.diff'>https://github.com/ipxe/ipxe/pull/17.diff</a></li>
</ul>