<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<document>
<body>
<section name="Download Apache Ranger">
<subsection name="How to Download">
<p>
Use the links below to download a distribution of Apache Ranger from one of our mirrors. 
It is good practice to verify the integrity of the distribution files. Apache Ranger releases are 
available under the 
<a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> - see the 
LICENSE.txt and NOTICE.txt files contained in each release artifact.
</p>
</subsection>
<subsection name="Current official release (closest mirror site selected automatically)">
<ul>
<li>
<p>
The current stable release is Apache Ranger 0.6.2:
</p>
<p>
<a href="https://dist.apache.org/repos/dist/release/ranger/0.6.2-incubating/apache-ranger-incubating-0.6.2.tar.gz">apache-ranger-incubating-0.6.2.tar.gz</a>
(<a href="https://dist.apache.org/repos/dist/release/ranger/0.6.2-incubating/apache-ranger-incubating-0.6.2.tar.gz.asc">PGP</a>)
(<a href="https://dist.apache.org/repos/dist/release/ranger/0.6.2-incubating/apache-ranger-incubating-0.6.2.tar.gz.mds">Digests</a>)
</p>
</li>
<li>
<p>
An older branch release is Apache Ranger 0.5.3:
</p>
<p>
<a href="http://archive.apache.org/dist/incubator/ranger/0.5.3-incubating/apache-ranger-incubating-0.5.3.tar.gz">apache-ranger-incubating-0.5.3.tar.gz</a>
(<a href="http://archive.apache.org/dist/incubator/ranger/0.5.3-incubating/apache-ranger-incubating-0.5.3.tar.gz.asc">PGP</a>)
(<a href="http://archive.apache.org/dist/incubator/ranger/0.5.3-incubating/apache-ranger-incubating-0.5.3.tar.gz.mds">Digests</a>)
</p>
</li>
<li>
<p>
An older branch release is Apache Ranger 0.4.0:
</p>
<p>
<a href="http://archive.apache.org/dist/incubator/ranger/0.4.0-incubating/ranger-0.4.0-incubating.tar.gz">ranger-0.4.0-incubating.tar.gz</a>
(<a href="http://archive.apache.org/dist/incubator/ranger/0.4.0-incubating/ranger-0.4.0-incubating.tar.gz.asc">PGP</a>)
(<a href="http://archive.apache.org/dist/incubator/ranger/0.4.0-incubating/ranger-0.4.0-incubating.tar.gz.mds">Digests</a>)
</p>
</li>
</ul>
</subsection>
<subsection name="Verifying Releases">
<p>
When downloading from a mirror please check the SHA1/MD5 checksums as well
as verifying the OpenPGP compatible signature available from the main Apache
site. The <a href="https://www.apache.org/dist/ranger/KEYS">KEYS</a>
file contains the public keys used for signing the release. It is recommended
that a web of trust is used to confirm the identity of these keys.
</p>
<p>
You can check the OpenPGP compatible signature with GnuPG via:
<ul>
<li>gpg --import KEYS</li>
<li>gpg --verify apache-ranger-*.tar.gz.asc</li>
</ul>
</p>
<p>
The digests are stored in the file called 'apache-ranger-*.tar.gz.mds'. You can verify the digests by using a tool like md5sum or sha1sum as follows:
<ul>
<li>md5sum apache-ranger-*.tar.gz (and compare output to the relevant digest in apache-ranger-*.tar.gz.mds)</li>
<li>sha1sum apache-ranger-*.tar.gz (and compare output to the relevant digest in apache-ranger-*.tar.gz.mds)</li>
</ul>
</p>
</subsection>
<subsection name="Archive of old releases">
<p>
Older releases are available in the <a href="http://archive.apache.org/dist/incubator/ranger/">archive</a>.
</p>
</subsection>
</section>
            
</body>
</document>
