<?php
/**
 * Copyright (c) 2017, 2018 Eclipse Foundation and others.
 *
 * This program and the accompanying materials are made
 * available under the terms of the Eclipse Public License 2.0
 * which is available at https://www.eclipse.org/legal/epl-2.0/
 *
 * Contributors:
 *   Eric Poirier (Eclipse Foundation)
 *
 * SPDX-License-Identifier: EPL-2.0
 */
?>
<div id="maincontent">
  <div id="midcolumn">
    <h1><?php echo $pageTitle; ?></h1>
    <p>Updated <?php print $App->getFormattedDate($modified); ?></p>
    <h3 id="approved">Approved Licenses</h3>
    <p>
      The following is a list of the most common licenses approved for use by
      third party code redistributed by Eclipse Foundation Projects. This list
      is not exhaustive. Should you have a query on a specific license not
      listed here, please contact <a href="license@eclipse.org">license@eclipse.org</a>.
    </p>
    <?php dumpLicenseList($licenseFile); ?>
    <h3 id="nonapproved">Non Approved Licenses</h3>
    <ul>
      <li>GNU General Public License (GPL)</li>
      <li>Sun Binary Code License Agreement</li>
    </ul>
    <p>
      Please note the LGPL has been approved by the Eclipse Board of Directors
      in certain cases. Please contact <a href="license@eclipse.org">license@eclipse.org</a>
      for more information.
    </p>
  </div>
</div>