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

<h3>News</h3>

<p>

<ul>
  <li><b>19 February 2012 -- 2012.02-rc2 released</b>

    <p>Another week, another release candidate with more cleanups and
    build fixes. See the <a
    href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2012.02_rc2">CHANGES</a>
    file for details.</p>

    <p>Head to the <a href="/downloads/">downloads page</a> to pick up the
    <a href="/downloads/buildroot-2012.02-rc2.tar.bz2">2012.02-rc2
    release candidate</a>, and report any problems found to the <a
    href="lists.html">mailing list</a> or <a
    href="https://bugs.uclibc.org">bug tracker</a>.</p>

  <li><b>12 February 2012 -- 2012.02-rc1 released</b>

    <p>We have a new release candidate! Lots of changes all over the
    tree, see the <a
    href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2012.02_rc1">CHANGES</a>
    file for details, and read the
    <a href="http://lists.busybox.net/pipermail/buildroot/2012-February/050234.html">announcement</a>.</p>

    <p>Head to the <a href="/downloads/">downloads page</a> to pick up the
    <a href="/downloads/buildroot-2012.02-rc1.tar.bz2">2012.02-rc1
    release candidate</a>, and report any problems found to the <a
    href="lists.html">mailing list</a> or <a
    href="https://bugs.uclibc.org">bug tracker</a>.</p>

  <li><b>31 January 2012 -- Buildroot Developer Day</b>

    <p>Another <i>Buildroot Developer Day</i> will take place on
    Friday, February 3rd in Brussels, Belgium - The day before <a
    href="http://fosdem.org">FOSDEM</a>. See the
    <a href="http://lists.busybox.net/pipermail/buildroot/2012-January/049340.html">announcement</a>
    or the <a href="http://free-electrons.com/blog/bdd-2012-brussels/">Free Electrons blog</a>
    for more info.</p>

  <li><b>30 November 2011 -- 2011.11 released</b>

    <p>The stable 2011.11 release is out - Thanks to everyone
    contributing and testing the release candidates. See the
    <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.11">CHANGES</a>
    file for more details, read the
    <a href="http://lists.busybox.net/pipermail/buildroot/2011-November/047926.html">announcement</a>
    and go to the <a href="/downloads/">downloads page</a> to pick up the
    <a href="/downloads/buildroot-2011.11.tar.bz2">2011.11 release</a>.</p>

  <li><b>26 November 2011 -- 2011.11-rc3 released</b>

    <p>RC3 is out with more bugfixes - See the <a
    href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.11_rc3">CHANGES</a>
    file for details.

    <p>Head to the <a href="/downloads/">downloads page</a> to pick up the
    <a href="/downloads/buildroot-2011.11-rc3.tar.bz2">2011.11-rc3
    release candidate</a>, and report any problems found to the <a
    href="lists.html">mailing list</a> or <a
    href="https://bugs.uclibc.org">bug tracker</a>.</p>

  <li><b>18 November 2011 -- 2011.11-rc2 released</b>

    <p>Another week, another release candidate with a bunch of
    cleanups and build fixes. See the <a
    href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.11_rc2">CHANGES</a>
    file for details.</p>

    <p>Head to the <a href="/downloads/">downloads page</a> to pick up the
    <a href="/downloads/buildroot-2011.11-rc2.tar.bz2">2011.11-rc2
    release candidate</a>, and report any problems found to the <a
    href="lists.html">mailing list</a> or <a
    href="https://bugs.uclibc.org">bug tracker</a>.</p>

  <li><b>11 November 2011 -- 2011.11-rc1 released</b>

    <p>We have a new release candidate! Lots of changes all over the
    tree, see the <a
    href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.11_rc1">CHANGES</a>
    file for details, and read the
    <a href="http://lists.busybox.net/pipermail/buildroot/2011-November/047395.html">announcement</a>

    <p>Head to the <a href="/downloads/">downloads page</a> to pick up the
    <a href="/downloads/buildroot-2011.11-rc1.tar.bz2">2011.11-rc1
    release candidate</a>, and report any problems found to the <a
    href="lists.html">mailing list</a> or <a
    href="https://bugs.uclibc.org">bug tracker</a>.</p>

  <li><b>31 August 2011 -- 2011.08 released</b>

    <p>The stable 2011.08 release is out - Thanks to everyone
    contributing and testing the release candidates. See the
    <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.08">CHANGES</a>
    file for more details, and go to the <a href="/downloads/">downloads page</a> to pick up the
    <a href="/downloads/buildroot-2011.08.tar.bz2">2011.08 release</a>.</p>

  <li><b>29 August 2011 -- 2011.08-rc2 released</b>

    <p>RC2 is out with more bugfixes. See the <a
    href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.08_rc2">CHANGES</a>
    file for details, and read the
    <a href="http://lists.busybox.net/pipermail/buildroot/2011-August/045211.html">announcement</a>.

    <p>Head to the <a href="/downloads/">downloads page</a> to pick up the
    <a href="/downloads/buildroot-2011.08-rc2.tar.bz2">2011.08-rc2
    release candidate</a>, and report any problems found to the <a
    href="lists.html">mailing list</a> or <a
    href="https://bugs.uclibc.org">bug tracker</a>.</p>

  <li><b>4 August 2011 -- 2011.08-rc1 released</b>

    <p>We have a new release candidate! Lots of changes all over the
    tree, see the <a
    href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.08_rc1">CHANGES</a>
    file for details, and read the
    <a href="http://lists.busybox.net/pipermail/buildroot/2011-August/044855.html">announcement</a>.

    <p>Head to the <a href="/downloads/">downloads page</a> to pick up the
    <a href="/downloads/buildroot-2011.08-rc1.tar.bz2">2011.08-rc1
    release candidate</a>, and report any problems found to the <a
    href="lists.html">mailing list</a> or <a
    href="https://bugs.uclibc.org">bug tracker</a>.</p>

  <li><b>27 May 2011 -- 2011.05 released</b>

    <p>The stable 2011.05 release is out - Thanks to everyone
    contributing and testing the release candidates. See the
    <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.05">CHANGES</a>
    file for more details, and go to the <a href="/downloads/">downloads page</a> to pick up the
    <a href="/downloads/buildroot-2011.05.tar.bz2">2011.05 release</a>.</p>

  <li><b>24 May 2011 -- 2011.05-rc2 released</b>

    <p>RC2 is out with more bugfixes. See the <a
    href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.05_rc2">CHANGES</a>
    file for details.

    <p>Head to the <a href="/downloads/">downloads page</a> to pick up the
    <a href="/downloads/buildroot-2011.05-rc2.tar.bz2">2011.05-rc2
    release candidate</a>, and report any problems found to the <a
    href="lists.html">mailing list</a> or <a
    href="https://bugs.uclibc.org">bug tracker</a>.</p>

  <li><b>18 May 2011 -- 2011.05-rc1 released</b>

    <p>We have a new release candidate! Lots of changes all over the
    tree, see the <a
    href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.05_rc1">CHANGES</a>
    file for details, and read the
    <a href="http://lists.busybox.net/pipermail/buildroot/2011-May/043317.html">announcement</a>.

    <p>Head to the <a href="/downloads/">downloads page</a> to pick up the
    <a href="/downloads/buildroot-2011.05-rc1.tar.bz2">2011.05-rc1
    release candidate</a>, and report any problems found to the <a
    href="lists.html">mailing list</a> or <a
    href="https://bugs.uclibc.org">bug tracker</a>.</p>

  <li><b>28 February 2011 -- 2011.02 released</b>

    <p>The stable 2011.02 release is out - Thanks to everyone
    contributing and testing the release candidates. See the
    <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.02">CHANGES</a>
    file for more details, read the
    <a href="http://lists.busybox.net/pipermail/buildroot/2011-February/041662.html">announcement</a>
    and go to the <a href="/downloads/">downloads page</a> to pick up the
    <a href="/downloads/buildroot-2011.02.tar.bz2">2011.02 release</a>.</p>

  <li><b>24 February 2011 -- 2011.02-rc2 released</b>

    <p>RC2 is out with more cleanups and bugfixes, see the <a
    href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.02_rc2">CHANGES</a>
    file for details.</p>

    <p>Head to the <a href="/downloads/">downloads page</a> to pick up the
    <a href="/downloads/buildroot-2011.02-rc2.tar.bz2">2011.02-rc2
    release candidate</a>, and report any problems found to the <a
    href="lists.html">mailing list</a> or <a
    href="https://bugs.uclibc.org">bug tracker</a>.</p>

  <li><b>14 February 2011 -- 2011.02-rc1 released</b>

    <p>We have a new release candidate! Lots of changes all over the
    tree, see the <a
    href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.02_rc1">CHANGES</a>
    file for details, and read the
    <a href="http://lists.busybox.net/pipermail/buildroot/2011-February/041365.html">announcement</a>.

    <p>Head to the <a href="/downloads/">downloads page</a> to pick up the
    <a href="/downloads/buildroot-2011.02-rc1.tar.bz2">2011.02-rc1
    release candidate</a>, and report any problems found to the <a
    href="lists.html">mailing list</a> or <a
    href="https://bugs.uclibc.org">bug tracker</a>.</p>

  <li><b>30 November 2010 -- 2010.11 released</b>

    <p>The stable 2010.11 release is out - Thanks to everyone
    contributing and testing the release candidates. See the
    <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2010.11">CHANGES</a>
    file for more details, read the
    <a href="http://lists.busybox.net/pipermail/buildroot/2010-November/039135.html">announcement</a>
    and go to the <a href="/downloads/">downloads page</a> to pick up the
    <a href="/downloads/buildroot-2010.11.tar.bz2">2010.11 release</a>.</p>

  <li><b>25 November 2010 -- 2010.11-rc2 released</b>

    <p>RC2 is out with more cleanups and bugfixes, see the <a
    href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2010.11_rc2">CHANGES</a>
    file for details.</p>

    <p>Head to the <a href="/downloads/">downloads page</a> to pick up the
    <a href="/downloads/buildroot-2010.11-rc2.tar.bz2">2010.11-rc2
    release candidate</a>, and report any problems found to the <a
    href="lists.html">mailing list</a> or <a
    href="https://bugs.uclibc.org">bug tracker</a>.</p>

  <li><b>8 November 2010 -- 2010.11-rc1 released</b>

    <p>We have a new release candidate! Lots of changes all over the
    tree, see the <a
    href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2010.11_rc1">CHANGES</a>
    file for details, and read the
    <a href="http://lists.busybox.net/pipermail/buildroot/2010-November/038645.html">announcement</a>.

    <p>Head to the <a href="/downloads/">downloads page</a> to pick up the
    <a href="/downloads/buildroot-2010.11-rc1.tar.bz2">2010.11-rc1
    release candidate</a>, and report any problems found to the <a
    href="lists.html">mailing list</a> or <a
    href="https://bugs.uclibc.org">bug tracker</a>.</p>

  <li><b>28 September 2010 - Buildroot Developer Day</b>

    <p>A <i>Buildroot Developer Day</i> will take place on
    Friday, October 29th in Cambridge, UK - Just the day after the
    <a href="http://www.embeddedlinuxconference.com/elc_europe10/">Embedded
    Linux Conference Europe</a>. This <i>Developer Day</i> aims
    at allowing Buildroot developers to meet and exchange ideas on the
    project and its future. See the
    <a href="http://lists.busybox.net/pipermail/buildroot/2010-September/037930.html">announcement</a>
    for more info.</p>

    <p>Thanks to Thomas Petazzoni for taking care of the practical
    arrangements.</p>

  <li><b>31 August 2010 -- 2010.08 released</b>

    <p>The stable 2010.08 release is out - Thanks to everyone
    contributing and testing the release candidates. See the
    <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2010.08">CHANGES</a>
    file for more details, read the
    <a href="http://lists.busybox.net/pipermail/buildroot/2010-August/037078.html">announcement</a>
    and go to the <a href="/downloads/">downloads page</a> to pick up the
    <a href="/downloads/buildroot-2010.08.tar.bz2">2010.08 release</a>.</p>

  <li><b>30 August 2010 -- 2010.08-rc2 released</b>

    <p>RC2 is out with more cleanups and bugfixes, see the <a
    href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2010.08_rc2">CHANGES</a>
    file for details.

    <p>Head to the <a href="/downloads/">downloads page</a> to pick up the
    <a href="/downloads/buildroot-2010.08-rc2.tar.bz2">2010.08-rc2
    release candidate</a>, and report any problems found to the <a
    href="lists.html">mailing list</a> or <a
    href="https://bugs.uclibc.org">bug tracker</a>.</p>

    This is very much expected to be the final release
    candidate, so give it a good test and expect a final 2010.08
    release before September unless critical issues are found.</p>

  <li><b>30 July 2010 -- 2010.08-rc1 released</b>

    <p>We have a new release candidate! Lots of changes all over the
    tree, see the <a
    href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2010.08_rc1">CHANGES</a>
    file for details.

    <p>Head to the <a href="/downloads/">downloads page</a> to pick up the
    <a href="/downloads/buildroot-2010.08-rc1.tar.bz2">2010.08-rc1
    release candidate</a>, and report any problems found to the <a
    href="lists.html">mailing list</a> or <a
    href="https://bugs.uclibc.org">bug tracker</a>.</p>

  <li><b>30 May 2010 -- 2010.05 released</b>

    <p>The stable 2010.05 release is out - Thanks to everyone
    contributing and testing the release candidates. See the
    <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2010.05">CHANGES</a>
    file for more details, read the
    <a href="http://lists.busybox.net/pipermail/buildroot/2010-May/034878.html">announcement</a>
    and go to the <a href="/downloads/">downloads page</a> to pick up the
    <a href="/downloads/buildroot-2010.05.tar.bz2">2010.05 release</a>.</p>

  <li><b>27 May 2010 -- 2010.05-rc3 released</b>

    <p>RC3 is out with more cleanups and bugfixes, see the <a
    href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2010.05_rc3">CHANGES</a>
    file for details.

    <p>Head to the <a href="/downloads/">downloads page</a> to pick up the
    <a href="/downloads/buildroot-2010.05-rc3.tar.bz2">2010.05-rc3
    release candidate</a>, and report any problems found to the <a
    href="lists.html">mailing list</a> or <a
    href="https://bugs.uclibc.org">bug tracker</a>.</p>

  <li><b>11 May 2010 -- 2010.05-rc2 released</b>

    <p>Another week, another release candidate with a bunch of
    cleanups and build fixes.</p>

    <p>Head to the <a href="/downloads/">downloads page</a> to pick up the
    <a href="/downloads/buildroot-2010.05-rc2.tar.bz2">2010.05-rc2
    release candidate</a>, and report any problems found to the <a
    href="lists.html">mailing list</a> or <a
    href="https://bugs.uclibc.org">bug tracker</a>.</p>

  <li><b>3 May 2010 -- 2010.05-rc1 released</b>

    <p>We have a new release candidate! Lots of changes all over the
    tree, see the <a
    href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2010.05_rc1">CHANGES</a>
    file for details.

    <p>Head to the <a href="/downloads/">downloads page</a> to pick up the
    <a href="/downloads/buildroot-2010.05-rc1.tar.bz2">2010.05-rc1
    release candidate</a>, and report any problems found to the <a
    href="lists.html">mailing list</a> or <a
    href="https://bugs.uclibc.org">bug tracker</a>.</p>

  <li><b>2 May 2010 - FOSDEM slides online</b>

    <p>The slides from the <a
    href="http://fosdem.org/2010/schedule/events/emb_cross_build">Cross
    Build Systems: Present & Future</a> session at <a
    href="http://fosdem.org/2010">FOSDEM</a> are now <a
    href="http://send-patches.org/news/20100211-1-FOSDEM-Crossdev-Workshop.pdf">online</a>.

  <li><b>26 February 2010 -- 2010.02 released</b>

    <p>The stable 2010.02 release is out - Thanks to everyone
    contributing and testing the release candidates. See the
    <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2010.02">CHANGES</a>
    file for more details, and go to the <a href="/downloads/">downloads page</a>
    to pick up the <a href="/downloads/buildroot-2010.02.tar.bz2">2010.02
    release</a>.</p>

  <li><b>23 February 2010 -- 2010.02-rc2 released</b>

    <p>RC2 is out with more cleanups and bugfixes, see the <a
    href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2010.02_rc2">CHANGES</a>
    file for details.

    <p>Head to the <a href="/downloads/">downloads page</a> to pick up the
    <a href="/downloads/buildroot-2010.02-rc2.tar.bz2">2010.02-rc2
    release candidate</a>, and report any problems found to the <a
    href="lists.html">mailing list</a> or <a
    href="https://bugs.uclibc.org">bug tracker</a>.</p>

  <li><b>9 February 2010 -- 2010.02-rc1 released</b>

    <p>We have a new release candidate! Lots of changes all over the
    tree, see the <a
    href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2010.02_rc1">CHANGES</a>
    file for details.

    <p>Head to the <a href="/downloads/">downloads page</a> to pick up the
    <a href="/downloads/buildroot-2010.02-rc1.tar.bz2">2010.02-rc1
    release candidate</a>, and report any problems found to the <a
    href="lists.html">mailing list</a> or <a
    href="https://bugs.uclibc.org">bug tracker</a>.</p>

  <li><b>1 December 2009 -- 2009.11 released</b>

    <p>The stable 2009.11 release is out - Thanks to everyone
    contributing and testing the release candidates. See the
    <a href="http://lists.busybox.net/pipermail/buildroot/2009-December/030672.html">announcement</a>
    or <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.11">CHANGES</a>
    for more details, and go to the <a href="/downloads/">downloads page</a>
    to pick up the <a href="/downloads/buildroot-2009.11.tar.bz2">2009.11
    release</a>.</p>

  <li><b>29 November 2009 -- 2009.11-rc2 released</b>

    <p>RC2 is out with more cleanups and bugfixes, see the <a
    href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.11_rc2">CHANGES</a>
    file for details.

    <p>Head to the <a href="/downloads/">downloads page</a> to pick up the
    <a href="/downloads/buildroot-2009.11-rc2.tar.bz2">2009.11-rc2
    release candidate</a>, and report any problems found to the <a
    href="lists.html">mailing list</a> or <a
    href="https://bugs.uclibc.org">bug tracker</a>.</p>

  <li><b>23 November 2009 -- 2009.11-rc1 released</b>

    <p>We have a new release candidate! Lots of changes all over the
    tree, see the <a
    href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.11_rc1">CHANGES</a>
    file for details.

    <p>Head to the <a href="/downloads/">downloads page</a> to pick up the
    <a href="/downloads/buildroot-2009.11-rc1.tar.bz2">2009.11-rc1
    release candidate</a>, and report any problems found to the <a
    href="lists.html">mailing list</a> or <a
    href="https://bugs.uclibc.org">bug tracker</a>.</p>

  <li><b>7 September 2009 -- First Buildroot Developer Day</b>

    <p>The first <i>Buildroot Developer Day</i> will take place on
    Saturday, October 17th in Grenoble, France, just the day after
    Embedded Linux Conference Europe. This <i>Developer Day</i> aims
    at allowing Buildroot developers to meet and exchange ideas on the
    project and its future.</p>

    <p>As the number of places is limited, interested candidates are
    invited to send an e-mail to Peter Korsgaard (<code>jacmet at
    uclibc dot org</code>) and Thomas Petazzoni (<code>thomas dot
    petazzoni at free-electrons dot com</code>).</p>

    <p>This <i>Developer Day</i> will take place thanks to the
    sponsoring of <a href="http://www.calao-systems.com">Calao
    Systems</a> and <a href="http://www.free-electrons.com">Free
    Electrons</a>.</p>

  <li><b>31 August 2009 -- 2009.08 released</b>

    <p>The stable 2009.08 release is out - Thanks to everyone
    contributing and testing the release candidates. See the
    <a href="http://lists.busybox.net/pipermail/buildroot/2009-August/029018.html">announcement</a>
    or <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.08">CHANGES</a>
    for more details, and go to the <a href="/downloads/">downloads page</a>
    to pick up the <a href="/downloads/buildroot-2009.08.tar.bz2">2009.08
    release</a>.</p>

  <li><b>26 August 2009 -- 2009.08-rc3 released</b>
    <p>A number of bugfixes have been added to the tree since RC2
    (especially thanks to Thomas Petazzoni) - See the <a
    href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.08_rc3">CHANGES</a>
    file for details. This is very much expected to be the final release
    candidate, so give it a good test and expect a final 2009.08
    release next weekend unless critical issues are found.</p>

    <p>Head to the <a href="/downloads/">downloads page</a> to pick up the
    <a href="/downloads/buildroot-2009.08-rc3.tar.bz2">2009.08-rc3
    release candidate</a>, and report any problems found to the <a
    href="lists.html">mailing list</a> or <a
    href="https://bugs.uclibc.org">bug tracker</a>.</p>

  <li><b>6 August 2009 -- 2009.08-rc2 released</b>

    <p>RC2 is out with more cleanups and bugfixes, see the <a
    href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.08_rc2">CHANGES</a>
    file for details.

    <p>Head to the <a href="/downloads/">downloads page</a> to pick up the
    <a href="/downloads/buildroot-2009.08-rc2.tar.bz2">2009.08-rc2
    release candidate</a>, and report any problems found to the <a
    href="lists.html">mailing list</a> or <a
    href="https://bugs.uclibc.org">bug tracker</a>.</p>

  <li><b>2 August 2009 -- 2009.08-rc1 released</b>

    <p>We have a new release candidate! Lots of changes all over the
    tree, see the <a
    href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.08_rc1">CHANGES</a>
    file for details.

    <p>Head to the <a href="/downloads/">downloads page</a> to pick up the
    <a href="/downloads/buildroot-2009.08-rc1.tar.bz2">2009.08-rc1
    release candidate</a>, and report any problems found to the <a
    href="lists.html">mailing list</a> or <a
    href="https://bugs.uclibc.org">bug tracker</a>.</p>

  <li><b>1 June 2009 -- 2009.05 released</b>

    <p>The stable 2009.05 release is out - Thanks to everyone
    contributing and testing the release candidates. See the
    <a href="http://lists.busybox.net/pipermail/buildroot/2009-June/027640.html">announcement</a>
    or <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.05">CHANGES</a>
    for more details, and go to the <a href="/downloads/">downloads page</a>
    to pick up the <a href="/downloads/buildroot-2009.05.tar.bz2">2009.05
    release</a>.</p>

  <li><b>27 May 2009 -- 2009.05-rc3 released</b>

    <p>We had a number of fixes post-RC2, so RC3 is out (see <a
    href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.05_rc3">CHANGES</a>
    for details). Now is the moment to test and verify that everything
    is working for your favorite config - Expect a final 2009.05 very soon.</p>

    <p>Head to the <a href="/downloads/">downloads page</a> to pick up the
    <a href="/downloads/buildroot-2009.05-rc3.tar.bz2">2009.05-rc3
    release candidate</a>, and report any problems found to the <a
    href="lists.html">mailing list</a> or <a
    href="https://bugs.uclibc.org">bug tracker</a>.</p>

  <li><b>19 May 2009 -- 2009.05-rc2 released</b>

    <p>RC2 is out with more cleanups and bug fixes (see <a
    href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.05_rc2">CHANGES</a>).
    Unless big issues are found, expect this to be the last release
    candidate before the release - So give it a good test.</p>

    <p>Head to the <a href="/downloads/">downloads page</a> to pick up the
    <a href="/downloads/buildroot-2009.05-rc2.tar.bz2">2009.05-rc2
    release candidate</a>, and report any problems found to the <a
    href="lists.html">mailing list</a> or <a
    href="https://bugs.uclibc.org">bug tracker</a>.</p>

  <li><b>14 May 2009 -- Buildroot.org</b>

    <p>Earl Levine has been so kind to donate the <b>buildroot.org</b>
    domain to us, so the website can now also be reached at <a
    href="http://www.buildroot.org">www.buildroot.org</a> (and git at
    <a href="http://git.buildroot.org/buildroot">git.buildroot.org</a>).

    Thanks a lot Earl!</p>

  <li><b>5 May 2009 -- 2009.05-rc1 released</b>

    <p>We have a new release candidate! Lots of changes all over the
    tree, see the <a
    href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.05_rc1">CHANGES</a>
    file for details.

    <p>Head to the <a href="/downloads/">downloads page</a> to pick up the
    <a href="/downloads/buildroot-2009.05-rc1.tar.bz2">2009.05-rc1
    release candidate</a>, and report any problems found to the <a
    href="lists.html">mailing list</a> or <a
    href="https://bugs.uclibc.org">bug tracker</a>.</p>

  <li><b>3 May 2009 -- Moved to git</b>

    <p>We've moved the source code from <a
    href="http://subversion.tigris.org">Subversion</a> to <a
    href="http://git-scm.org">Git</a>. You can browse the repo online
    <a href="http://git.buildroot.net/buildroot">here</a>, and clone
    the repo using:
    <pre>git clone git://git.buildroot.net/buildroot</pre>
    See the <a href="/git.html">Git Access</a> page for more details.
    </p>

  <li><b>27 March 2009 -- new Logo</b>

    <p>We have a <a href="images/logo.png">logo</a>! We have so far
    been using the <a href="http://busybox.net">Busybox</a> logo on
    the website, as the website was a copy of the <a
    href="http://busybox.net">Busybox</a> one - But not anymore, we
    now have a shiny new logo of our own.</p>

  <li><b>12 February 2009 -- 2009.02 released</b>
    <p>The stable 2009.02 release is out - Thanks to everyone
    contributing and testing the release candidates. See the
    <a href="http://lists.busybox.net/pipermail/buildroot/2009-February/025974.html">announcement</a>
    for more details, and go to the <a href="/downloads/">downloads page</a>
    to pick up the <a href="/downloads/buildroot-2009.02.tar.bz2">2009.02
    release</a>.</p>

  <li><b>9 February 2009 -- 2009.02-rc4 released</b>
    <p>We had more than 50 changes since RC3, several of them
    toolchain related, so decided to make a RC4 as well. This is
    very much expected to be the final release candidate, so give it
    a good test and expect a final 2009.02 release this week unless
    critical issues are found.</p>

    <p>Head to the <a href="/downloads/">downloads page</a> to pick up the
    <a href="/downloads/buildroot-2009.02-rc4.tar.bz2">2009.02-rc4
    release candidate</a>, and report any problems found to the <a
    href="lists.html">mailing list</a> or <a
    href="https://bugs.uclibc.org">bug tracker</a>.</p>

  <li><b>31 January 2009 -- 2009.02-rc3 released</b>
      <p>RC3 is out with more cleanups and bug fixes. Unless big issues
    are found, expect this to be the last release candidate before the
    release - So give it a good test.</p>

    <p>Head to the <a href="/downloads/">downloads page</a> to pick up the
    <a href="/downloads/buildroot-2009.02-rc3.tar.bz2">2009.02-rc3
    release candidate</a>, and report any problems found to the <a
    href="lists.html">mailing list</a> or <a
    href="https://bugs.uclibc.org">bug tracker</a>.</p>

  <li><b>23 January 2009 -- 2009.02-rc2 released</b>
    <p>Another week, another release candidate with a bunch of
    cleanups and build fixes.</p>

    <p>Head to the <a href="/downloads/">downloads page</a> to pick up the
    <a href="/downloads/buildroot-2009.02-rc2.tar.bz2">2009.02-rc2
    release candidate</a>, and report any problems found to the <a
    href="lists.html">mailing list</a> or <a
    href="https://bugs.uclibc.org">bug tracker</a>.</p>

  <li><b>16 January 2009 -- Release candidate and new maintainer</b>
    <p>It has been a long time coming, but we finally have a new
    release candidate! - And a new maintainer to match (Peter Korsgaard).</p>

    <p>Head to the <a href="/downloads/">downloads page</a> to pick up the
    <a href="/downloads/buildroot-2009.02-rc1.tar.bz2">2009.02-rc1
    release candidate</a>, and report any problems found to the <a
    href="lists.html">mailing list</a> or <a
    href="https://bugs.uclibc.org">bug tracker</a>. The plan is to
    release 2009.02 in time for <a
    href="http://www.fosdem.org/2009/">FOSDEM</a>.</p>

  <li><b>16 July 2006 -- Buildroot mailing list</b>
    <p>Buildroot now has its own <a href=lists.html>mailing list</a>.</p>

  <li><b>21 February 2005 -- Buildroot webpage added</b><p>

    Buildroot is a set of Makefiles and patches that makes it easy generate a
    cross-compilation toolchain and root filesystem for your target Linux
    system using the <a href= "http://www.uclibc.org/">uClibc C library</a>.
    Buildroot is useful mainly for people working with small or embedded
    systems.  Embedded systems often use processors that are not the regular
    x86 processors everyone is used to using on their PC. It can be PowerPC
    processors, MIPS processors, ARM processors, etc.  And to be extra safe,
    you do not need to be root to build or run buildroot.

    <p>

    And as of today buildroot even has its own webpage, making it a first class
    citizen of uclibc.org and busybox.net, and more importantly, make it easy
    to find and point to buildroot.

    <p>

    If you find a bug in buildroot, or wish to submit a patch to fix a problem
    or add a shiny new feature, please use the <a
    href="https://bugs.uclibc.org/">Bug and Patch Tracking System</a> to post
    the details, to make certain your work is not lost.


</ul>

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

