<commit_before># Nuxeo Drive - Desktop Synchronization Client for Nuxeo

This is an ongoing development project for desktop synchronization of local folders with remote Nuxeo workspaces.

Watch this [screencast](http://www.nuxeo.com/blog/development/2013/04/nuxeo-drive-desktop-synchronization/) to get a 6 min overview of this project.

See [USERDOC/Nuxeo Drive](http://doc.nuxeo.com/x/04HQ) for complete up-to-date documentation.

## License

The source code of Nuxeo Drive is available under the GNU Lesser General Public License v2.1 described in LICENSE.txt.

Though, Nuxeo Drive depends on the [PyQt](http://www.riverbankcomputing.co.uk/software/pyqt/intro) component that is available under the following licenses:

* GNU General Public License v2
* GNU General Public License v3
* PyQt Commercial License
* PyQt Embedded License

Therefore the binary packages resulting of the assembly of the Nuxeo Drive source code and all the third-party libraries that it depends on, among which PyQt, are available under one of the licenses listed above. Indeed, the binary packages are subject to the licenses of the sources from which they have been built. As the GNU General Public Licenses and the PyQt Commercial License are stronger than the GNU Lesser General Public License, these are the ones that apply.

Thus any code written on the top of Nuxeo Drive must be distributed under the terms of one of the licenses available for PyQt.

## Install

Installing Nuxeo Drive requires two components: a server addon for the Nuxeo Platform and a desktop program on the user's computer.

## Server-Side Marketplace Package

### Getting the Marketplace Package

**Stable releases for Nuxeo Drive** are available as a Marketplace package from the Nuxeo Online Services portal: [https://connect.nuxeo.com/nuxeo/site/marketplace/package/nuxeo-drive](https://connect.nuxeo.com/nuxeo/site/marketplace/package/nuxeo-drive)

You can also fetch the **latest development version** of the [Marketplace package for the Nuxeo master branch](http://qa.nuxeo.org/jenkins/job/addons_nuxeo-drive-master-marketplace) from the Continuous Integration server (use at your own risk).

### Installing the Marketplace Package

The Marketplace package can be installed using the **Admin Center** / **Update Center** / **Local Packages** interface of a Nuxeo server.

Alternatively, from the command line:

```
$NUXEO_HOME/bin/nuxeoctl stop
$NUXEO_HOME/bin/nuxeoctl mp-install --nodeps marketplace-<version>.zip
$NUXEO_HOME/bin/nuxeoctl start
```

## Clients

### Ubuntu/Debian (and Other Linux Variants) Client

The .deb (or .rpm) package of the client is not yet available. In the mean time you can install it from source code.

*Has been reported to work on:* Ubuntu >= 12.04.

First note that Nuxeo Drive uses [Extended file attributes](http://en.wikipedia.org/wiki/Extended_file_attributes) through the [xattr](https://pypi.python.org/pypi/xattr/) Python wrapper.

On Linux, FreeBSD, and Mac OS X, xattrs are enabled in the default kernel.

On Linux, depending on the distribution, you may need a special mount option (`user_xattr`) to enable them for a given file system, e.g.:

```
sudo mount -oremount,user_xattr /dev/sda3
```

Then install the required system and Python packages:

Debian package manager:

```
sudo apt-get install python-pip python-dev python-qt4 libffi-dev git
```

Redhat package manager (RPM):

```
sudo yum install python-pip python-devel PyQt4 libffi-devel git
```

Make sure that the latest version of [pip](https://pip.pypa.io/en/stable/) is installed:

```
pip install -U pip
```

Then finally install the Nuxeo Drive requirements and Nuxeo Drive itself.
These are common installation actions, not depending on the package manager (warning: define the version you want in the DRIVE_VERSION variable, ex: 2.1.113):

```
DRIVE_VERSION=release-2.1.113
sudo pip install -U -r https://raw.github.com/nuxeo/nuxeo-drive/$DRIVE_VERSION/requirements.txt
sudo pip install -U -r https://raw.github.com/nuxeo/nuxeo-drive/$DRIVE_VERSION/unix-requirements.txt
sudo pip install -U git+https://github.com/nuxeo/nuxeo-drive.git@$DRIVE_VERSION
```

Waiting for [NXDRIVE-62](https://jira.nuxeo.com/browse/NXDRIVE-62) to be resolved you need to run these commands for Nuxeo Drive to work fine:

```
# increase inotify file watch limit
ofile=/proc/sys/fs/inotify/max_user_instances
sudo sh -c "echo 8192 > $ofile"
cat $ofile
```

### Mac OSX Desktop Client

Once the Marketplace package is installed, the Mac OS X desktop client package can be downloaded from the **Home** > **Nuxeo Drive** tab.

You can also fetch the latest development version for Mac OS X from the [our Continous Integration server](https://qa.nuxeo.org/jenkins/job/nuxeo-drive-dmg).

### Windows Desktop Client<commit_msg>Add minimum python version requirement to README.md<commit_after># Nuxeo Drive - Desktop Synchronization Client for Nuxeo

This is an ongoing development project for desktop synchronization of local folders with remote Nuxeo workspaces.

Watch this [screencast](http://www.nuxeo.com/blog/development/2013/04/nuxeo-drive-desktop-synchronization/) to get a 6 min overview of this project.

See [USERDOC/Nuxeo Drive](http://doc.nuxeo.com/x/04HQ) for complete up-to-date documentation.

## License

The source code of Nuxeo Drive is available under the GNU Lesser General Public License v2.1 described in LICENSE.txt.

Though, Nuxeo Drive depends on the [PyQt](http://www.riverbankcomputing.co.uk/software/pyqt/intro) component that is available under the following licenses:

* GNU General Public License v2
* GNU General Public License v3
* PyQt Commercial License
* PyQt Embedded License

Therefore the binary packages resulting of the assembly of the Nuxeo Drive source code and all the third-party libraries that it depends on, among which PyQt, are available under one of the licenses listed above. Indeed, the binary packages are subject to the licenses of the sources from which they have been built. As the GNU General Public Licenses and the PyQt Commercial License are stronger than the GNU Lesser General Public License, these are the ones that apply.

Thus any code written on the top of Nuxeo Drive must be distributed under the terms of one of the licenses available for PyQt.

## Install

Installing Nuxeo Drive requires two components: a server addon for the Nuxeo Platform and a desktop program on the user's computer.

## Server-Side Marketplace Package

### Getting the Marketplace Package

**Stable releases for Nuxeo Drive** are available as a Marketplace package from the Nuxeo Online Services portal: [https://connect.nuxeo.com/nuxeo/site/marketplace/package/nuxeo-drive](https://connect.nuxeo.com/nuxeo/site/marketplace/package/nuxeo-drive)

You can also fetch the **latest development version** of the [Marketplace package for the Nuxeo master branch](http://qa.nuxeo.org/jenkins/job/addons_nuxeo-drive-master-marketplace) from the Continuous Integration server (use at your own risk).

### Installing the Marketplace Package

The Marketplace package can be installed using the **Admin Center** / **Update Center** / **Local Packages** interface of a Nuxeo server.

Alternatively, from the command line:

```
$NUXEO_HOME/bin/nuxeoctl stop
$NUXEO_HOME/bin/nuxeoctl mp-install --nodeps marketplace-<version>.zip
$NUXEO_HOME/bin/nuxeoctl start
```

## Clients

### Ubuntu/Debian (and Other Linux Variants) Client

The .deb (or .rpm) package of the client is not yet available. In the meantime you can install it from source code.

*Has been reported to work on:* Ubuntu >= 12.04.

#### xattr 

First note that Nuxeo Drive uses [Extended file attributes](http://en.wikipedia.org/wiki/Extended_file_attributes) through the [xattr](https://pypi.python.org/pypi/xattr/) Python wrapper.

On FreeBSD, and Mac OS X, xattrs are enabled in the default kernel.

On Linux, depending on the distribution, you may need a special mount option (`user_xattr`) to enable them for a given file system, e.g.:

```
sudo mount -oremount,user_xattr /dev/sda3
```

#### Python 2.7 or higher

Nuxeo Drive uses some packages, which are only compatible from **python version 2.7 on**. 
If this excludes using the standard python installation of certain OS distributions, you may still install python 2.7 (or higher) [manually from the download pages](https://www.python.org/downloads/) on your system. 
However, this may break other tools in your environment, who need to be consistent with the default python packages.
Using [Anaconda](http://continuum.io/downloads) to switch between different python installs/environments may help in this case.

Make sure that the latest version of [pip](http://www.pip-installer.org/) is installed:


#### Install Nuxeo Drive

Then install the required system and Python packages and the Nuxeo Drive code itself:

Debian package manager:

```
sudo apt-get install python-pip python-dev python-qt4 libffi-dev git
```

Redhat package manager (RPM):


```
sudo yum install python-pip python-devel PyQt4 libffi-devel git
```

Make sure that the latest version of [pip](https://pip.pypa.io/en/stable/) is installed:

```
pip install -U pip
```

Then finally install the Nuxeo Drive requirements and Nuxeo Drive itself.
These are common installation actions, not depending on the package manager (warning: define the version you want in the DRIVE_VERSION variable, ex: 2.1.113):

```
DRIVE_VERSION=release-2.1.113
sudo pip install -U -r https://raw.github.com/nuxeo/nuxeo-drive/$DRIVE_VERSION/requirements.txt
sudo pip install -U -r https://raw.github.com/nuxeo/nuxeo-drive/$DRIVE_VERSION/unix-requirements.txt
sudo pip install -U git+https://github.com/nuxeo/nuxeo-drive.git@$DRIVE_VERSION
```

Waiting for [NXDRIVE-62](https://jira.nuxeo.com/browse/NXDRIVE-62) to be resolved you need to run these commands for Nuxeo Drive to work fine:

```
# increase inotify file watch limit
ofile=/proc/sys/fs/inotify/max_user_instances
sudo sh -c "echo 8192 > $ofile"
cat $ofile
```

### Mac OS X Desktop Client

Once the Marketplace package is installed, the Mac OS X desktop client package can be downloaded from the **Home** > **Nuxeo Drive** tab.

You can also fetch the latest development version for Mac OS X from the [our Continous Integration server](https://qa.nuxeo.org/jenkins/job/nuxeo-drive-dmg).

### Windows Desktop Client
{'fraction_non_alphanumeric': 0.08712487899322362, 'fraction_numerical': 0.007938044530493708, 'mean_word_length': 4.6269063180827885, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 11, 'https://': 19, 'lorem ipsum': 0, 'www.': 6, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 5, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5021323', 'n_tokens_mistral': 3225, 'n_tokens_neox': 2954, 'n_words': 1254}