<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    
    <meta name="author" content="Mikaël Barbero">
    
    <meta name="keywords" content="" />
    <meta name="generator" content="Hugo 0.14" />
    <link href="//fonts.googleapis.com/css?family=Open+Sans:400,700,300,600,100" rel="stylesheet" type="text/css">
    <link rel="shortcut icon" href="https://www.eclipse.org/cbi/public/images/favicon.ico"/>
    <title>Common Build Infrastructure</title>
    <meta property="og:title" content="" />
    <meta property="og:description" content="Common Build Infrastructure Website" />
    <meta property="og:image" content="https://www.eclipse.org/cbi/images/logo/eclipse.png" />
    <link rel="stylesheet" href="https://www.eclipse.org/cbi/public/css/solstice.css">
    <link href="https://www.eclipse.org/cbi//css/prism.css" rel="stylesheet" />
    
    
  </head>
  <body class="" id="body_solstice">
    <a class="sr-only" href="#content">Skip to main content</a>
    <div id="toolbar-container-wrapper" class="clearfix">
      <div class="container">
        <div id="row-toolbar" class="region region-toolbar text-right hidden-print">
          <div id="row-toolbar-col" class="col-md-24">
            <section id="block-solstice-support-solstice-support-toolbar" class="block block-solstice-support clearfix">
              <div class="block-content"><ul class="list-inline"><li>&nbsp;</li></ul></div>
            </section>
          </div>
        </div>
      </div>
    </div>
    <header role="banner">
      <div class="container">
        <div id="row-logo-search">
          <div id="header-left" class="col-sm-14 col-md-16 col-lg-19">
            <div class="row">
              <div class="hidden-xs">
                <a href="https://eclipse.org/"><img src="https://www.eclipse.org/cbi/public/images/logo/eclipse-800x188.png" alt="Eclipse.org logo" class="logo-eclipse-default"/></a>
              </div>
              <div id="main-menu" class="navbar row yamm">
                <div id="navbar-collapse-1" class="navbar-collapse collapse">
                  <ul class="nav navbar-nav">
                    

<li class="dropdown">
  <a data-toggle="dropdown" class="dropdown-toggle">More<b class="caret"></b></a>
  <ul class="dropdown-menu">
    <li>
      
      <div class="yamm-content">
        <div class="row">
          <ul class="col-sm-8 list-unstyled">
            <li>
              <p><strong>Community</strong></p>
            </li>
            <li><a href="http://marketplace.eclipse.org">Marketplace</a></li>
            <li><a href="http://events.eclipse.org">Events</a></li>
            <li><a href="http://www.planeteclipse.org/">Planet Eclipse</a></li>
            <li><a href="https://eclipse.org/community/eclipse_newsletter/">Newsletter</a></li>
            <li><a href="https://www.youtube.com/user/EclipseFdn">Videos</a></li>
          </ul>
          <ul class="col-sm-8 list-unstyled">
            <li>
              <p><strong>Participate</strong></p>
            </li>
            <li><a href="https://bugs.eclipse.org/bugs/">Report a Bug</a></li>
            <li><a href="https://eclipse.org/forums/">Forums</a></li>
            <li><a href="https://eclipse.org/mail/">Mailing Lists</a></li>
            <li><a href="https://wiki.eclipse.org/">Wiki</a></li>
            <li><a href="https://wiki.eclipse.org/IRC">IRC</a></li>
            <li><a href="https://eclipse.org/contribute/">How to Contribute</a></li>
          </ul>
          <ul class="col-sm-8 list-unstyled">
            <li>
              <p><strong>Working Groups</strong></p>
            </li>
            <li><a href="http://wiki.eclipse.org/Auto_IWG">Automotive</a></li>
            <li><a href="http://iot.eclipse.org">Internet of Things</a></li>
            <li><a href="http://locationtech.org">LocationTech</a></li>
            <li><a href="http://lts.eclipse.org">Long-Term Support</a></li>
            <li><a href="http://polarsys.org">PolarSys</a></li>
            <li><a href="http://science.eclipse.org">Science</a></li>
            <li><a href="http://www.openmdm.org">OpenMDM</a></li>
          </ul>
        </div>
      </div>
    </li>
  </ul>
</li>


                  </ul>
                </div>
                <div class="navbar-header">
                  <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-collapse-1">
                  <span class="sr-only">Toggle navigation</span>
                  <span class="icon-bar"></span>
                  <span class="icon-bar"></span>
                  <span class="icon-bar"></span>
                  <span class="icon-bar"></span>
                  </button>
                  <a href="https://eclipse.org/" class="navbar-brand visible-xs"><img src="https://www.eclipse.org/cbi//public/images/logo/eclipse-800x188.png" alt="Eclipse.org logo" width="174" class="logo-eclipse-default"/></a>
                </div>
              </div>
            </div>
          </div>
          <div id="header-right" class="form-inline col-sm-10 col-md-8 col-lg-5 hidden-print hidden-xs">
            <div id="header-right-container">
              <div id="custom-search-form" class="reset-box-sizing">
  <script>
    (function() {
      var cx = '011805775785170369411:15ipmpflp-0';
      var gcse = document.createElement('script');
      gcse.type = 'text/javascript';
      gcse.async = true;
      gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
          '//cse.google.com/cse.js?cx=' + cx;
      var s = document.getElementsByTagName('script')[0];
      s.parentNode.insertBefore(gcse, s);
    })();
  </script>
  <gcse:searchbox-only></gcse:searchbox-only>
</div>

              
            </div>
          </div>
        </div>
      </div>
    </header>
    <section id="breadcrumb" class="defaut-breadcrumbs hidden-print">
  <div class="container">
    <h3 class="sr-only">Breadcrumbs</h3>
    <div class="col-xs-24">
      
      
      <ol class="breadcrumb">
        <li><a href="https://www.eclipse.org/">Home</a></li>
        <li><a href="https://www.eclipse.org/cbi/">Common Build Infrastructure</a></li>
        
        
        
        <li><a href='https://www.eclipse.org/cbi/https://www.eclipse.org/cbi/404'>404</a></li>
        
        
        
        
        
        
      </ol>
    </div>
  </div>
</section>

    <main role="main" class=" no-promo">
    <div class="container background-image-none" id="novaContent">
    

<div class="container">
  <h1>404 Error</h1>
  <p>Maybe you want one of these?</p>
  
  <ul>
    <li><a href="https://www.eclipse.org/cbi/about/">about</a><span class="lead">(Thu, Oct 22, 2015)</span></li>
  </ul>
  
  <ul>
    <li><a href="https://www.eclipse.org/cbi/"></a><span class="lead">(Mon, Jan 1, 0001)</span></li>
  </ul>
  
</div>

</div>
</main>

<p id="back-to-top">
  <a class="visible-xs" href="#top">Back to the top</a>
</p>
<footer role="contentinfo" id="solstice-footer">
  <div class="container">
    <div class="row">
      <section id="footer-eclipse-foundation" class="col-xs-offset-1 col-xs-11 col-sm-7 col-md-6 col-md-offset-0 hidden-print">
        <h2 class="section-title">Eclipse Foundation</h2>
        <ul class="nav">
          <li><a href="https://eclipse.org/org/">About us</a></li>
          <li><a href="https://eclipse.org/org/foundation/contact.php">Contact Us</a></li>
          <li><a href="https://eclipse.org/donate">Donate</a></li>
          <li><a href="https://eclipse.org/org/documents/">Governance</a></li>
          <li><a href="https://eclipse.org/artwork/">Logo and Artwork</a></li>
          <li><a href="https://eclipse.org/org/foundation/directors.php">Board of Directors</a></li>
        </ul>
      </section>
      <section id="footer-legal" class="col-xs-offset-1 col-xs-11 col-sm-7 col-md-6 col-md-offset-0 hidden-print ">
        <h2 class="section-title">Legal</h2>
        <ul class="nav">
          <li><a href="https://eclipse.org/legal/privacy.php">Privacy Policy</a></li>
          <li><a href="https://eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
          <li><a href="https://eclipse.org/legal/copyright.php">Copyright Agent</a></li>
          <li><a href="https://eclipse.org/org/documents/epl-v10.php">Eclipse Public License </a></li>
          <li><a href="https://eclipse.org/legal/">Legal Resources </a></li>
        </ul>
      </section>
      <section id="footer-useful-links" class="col-xs-offset-1 col-xs-11 col-sm-7 col-md-6 col-md-offset-0 hidden-print">
        <h2 class="section-title">Useful Links</h2>
        <ul class="nav">
          <li><a href="https://bugs.eclipse.org/bugs/">Report a Bug</a></li>
          <li><a href="//help.eclipse.org/">Documentation</a></li>
          <li><a href="https://eclipse.org/contribute/">How to Contribute</a></li>
          <li><a href="https://eclipse.org/mail/">Mailing Lists</a></li>
          <li><a href="https://eclipse.org/forums/">Forums</a></li>
          <li><a href="//marketplace.eclipse.org">Marketplace</a></li>
        </ul>
      </section>
      <section id="footer-other" class="col-xs-offset-1 col-xs-11 col-sm-7 col-md-6 col-md-offset-0 hidden-print">
        <h2 class="section-title">Other</h2>
        <ul class="nav">
          <li><a href="https://eclipse.org/ide/">IDE and Tools</a></li>
          <li><a href="https://eclipse.org/projects">Community of Projects</a></li>
          <li><a href="https://eclipse.org/org/workinggroups/">Working Groups</a></li>
        </ul>
        <ul class="list-inline social-media">
          <li><a href="https://twitter.com/EclipseFdn"><i class="fa fa-twitter-square"></i></a></li>
          <li><a href="https://plus.google.com/+Eclipse"><i class="fa fa-google-plus-square"></i></a></li>
          <li><a href="https://www.facebook.com/eclipse.org"><i class="fa fa-facebook-square"></i> </a></li>
          <li><a href="https://www.youtube.com/user/EclipseFdn"><i class="fa fa-youtube-square"></i></a></li>
        </ul>
      </section>
      <div id="copyright"  class="col-xs-offset-1 col-sm-14 col-md-24 col-md-offset-0">
        <div>
          <span class="hidden-print"><img src="https://www.eclipse.org/cbi/public/images/logo/eclipse-logo-bw-800x188.png" alt="Eclipse.org black and white logo" width="166" height="39" id="logo-eclipse-white"/></span>
          <p id="copyright-text">Copyright &copy; 2015 The Eclipse Foundation. All Rights Reserved.</p>
        </div>
      </div>
      <a href="#" class="scrollup">Back to the top</a>
    </div>
  </div>
</footer>

<script src="https://www.eclipse.org/cbi/public/js/solstice.js"></script>
<script src="https://www.eclipse.org/cbi//js/prism.js"></script>
<script type="text/javascript">
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-910670-2']);
  _gaq.push(['_trackPageview']);
  
  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();
  
</script>
</body>
</html>
