# Download

## Source and binaries

You can download this release as binaries for Windows. Just run the executable corresponding with the Python version you are using. The Windows binaries all include the FTS and RTree extensions. (FTS3_PARENTHESIS is on.)

Download in source form for other platforms or if you want to compile yourself on Windows. See the recommended way to build or all the options available.

- apsw-3.13.0-r1.zip (Source, includes this HTML Help)
- Windows Python 2.3 32bit
- Windows Python 2.4 32bit
- Windows Python 2.5 32bit
- Windows Python 2.6 32bit 64bit
- Windows Python 2.7 32bit 64bit
- Windows Python 3.1 32bit 64bit
- Windows Python 3.2 32bit 64bit
- Windows Python 3.3 32bit 64bit
- Windows Python 3.4 32bit 64bit
- Windows Python 3.5 32bit 64bit
- apsw-3.13.0-r1-sigs.zip GPG signatures for all files

Some Linux distributions also have packages which may trail the SQLite and APSW releases by a year, or more. It is also possible to build RPMs and DEB packages from the source, although this involves setting up package management tools and various dependencies on your build machine.

Debian | Install python-apsw
Fedora | Install python-apsw
Ubuntu | Install python-apsw
Ubuntu PPA | PPA building has been broken for over two years because Canonical/Ubuntu add a broken flag to the PPA.
Gentoo | Install dev-python/apsw
Arch Linux | Install python-apsw

## Verifying your download

Downloads are digitally signed so you can verify they have not been tampered with. Download and extract the zip file of signatures listed above. These instructions are for GNU Privacy Guard. (GPG is installed as standard on most Unix/Linux platforms and can be downloaded for Windows.)

Verify

> To verify a file just use –verify specifying the corresponding `.asc` filename. This example verifies the source:

>     $ gpg --verify apsw-3.13.0-r1.zip.asc
>     gpg: Signature made ... date ... using DSA key ID 0DFBD904
>     gpg: Good signature from "Roger Binns <rogerb@rogerbinns.com>"

> If you get a “good signature” then the file has not been tampered with and you are good to go.

Getting the signing key

> You may not have the signing key available in which case the last line will be something like this:

>     gpg: Can't check signature: public key not found

> You can get a copy of the key using this command:

>     $ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 0DFBD904
>     gpg: requesting key 0DFBD904 from hkp server keyserver.ubuntu.com
>     gpg: /home/username/.gnupg/trustdb.gpg: trustdb created
>     gpg: key 0DFBD904: public key "Roger Binns <rogerb@rogerbinns.com>" imported
>     gpg: Total number processed: 1
>     gpg:               imported: 1

> Repeat the verify step.

## Source code control

The source is controlled by Git - start at https://github.com/rogerbinns/apsw

## easy_install/pip/pypi

APSW is not available at the Python Package Index (pypi) and hence cannot be installed from it. (A random person has put an outdated poor quality upload under the APSW name. It has nothing useful to do with this project.) The reason for this is that the tools do not provide a way of providing options to the setup.py included with APSW and hence there is no way for APSW to know if you want SQLite downloaded, a consistent version of SQLite or the latest, to use a system SQLite instead, error if an a system version is not available etc. I could pick a sensible default but everyone else using pypi would be disadvantaged or worse get undesired behaviour (eg different versions of SQLite depending on when a machine did an install). Additionally the world of Python packaging is going through another series of changes (distutils2 aka packaging) so some solution may come out of that. I’m happy to work with anyone who has a solution to this problem.

### I really want to use pip

The following pip command line downloads APSW from github, SQLite from the official site, and builds/installs with all extensions enabled.

Use this (all one command):

    pip install --user https://github.com/rogerbinns/apsw/releases/download/3.13.0-r1/apsw-3.13.0-r1.zip \
    --global-option=fetch --global-option=--version --global-option=3.13.0 --global-option=--all \
    --global-option=build --global-option=--enable-all-extensions