diff --git a/README.md b/README.md index 3c028c2f..7e577b60 100644 --- a/README.md +++ b/README.md @@ -21,11 +21,22 @@ git subtrees: # How to build dupeGuru from source +## The very, very, very easy way + +If you're on Linux or Mac, there's a bootstrap script that will make building very, very easy. There +might be some things that you need to install manually on your system, but the bootstrap script will +tell you when what you need to install. You can run the bootstrap with: + + ./bootstrap.sh + +and follow instructions from the script. You can then ignore the rest of the build documentation. + ## Prerequisites installation -Then, you have to make sure that your system has to "non-pip-installable" prerequisites installed: +Prerequisites are installed through `pip`. However, some of them are not "pip installable" and have +to be installed manually. -* All systems: [Python 3.2+][python] and [distribute][distribute] +* All systems: [Python 3.2+][python] and [setuptools][setuptools] * Mac OS X: The last XCode to have the 10.6 SDK included. * Windows: Visual Studio 2008, [PyQt 4.7+][pyqt], [cx_Freeze][cxfreeze] and [Advanced Installer][advinst] (you only need the last two if you want to create an installer) @@ -55,13 +66,12 @@ Then, you can install pip requirements in your virtualenv: ## Alternative: pyvenv If you're on Python 3.3+, you can use the built-in `pyvenv` instead of `virtualenv`. `pyvenv` is -pretty much the same thing as `virtualenv`, except that it doesn't install distribute and pip, so it +pretty much the same thing as `virtualenv`, except that it doesn't install setuptools and pip, so it has to be installed manually: $ pyvenv --system-site-packages env $ source env/bin/activate - $ curl -O http://python-distribute.org/distribute_setup.py - $ python distribute_setup.py + $ wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py -O - | python $ easy_install pip ## Actual building and running @@ -78,7 +88,7 @@ You can also package dupeGuru into an installable package with: [documentation]: http://www.hardcoded.net/dupeguru/help/en/ [python]: http://www.python.org/ -[distribute]: https://pypi.python.org/pypi/distribute +[setuptools]: https://pypi.python.org/pypi/setuptools [pyqt]: http://www.riverbankcomputing.com [cxfreeze]: http://cx-freeze.sourceforge.net/ [advinst]: http://www.advancedinstaller.com diff --git a/bootstrap.sh b/bootstrap.sh new file mode 100755 index 00000000..d66971d4 --- /dev/null +++ b/bootstrap.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +command -v pyvenv >/dev/null 2>&1 || { echo >&2 "Python 3.3 required. Install it and try again. Aborting"; exit 1; } + +if [ ! -d "env" ]; then + echo "No virtualenv. Creating one" + pyvenv --system-site-packages env + source env/bin/activate + wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py -O - | python + easy_install pip +else + echo "There's already an env. Activating it" + source env/bin/activate +fi + +echo "Installing pip requirements" +if [ "$(uname)" == "Darwin" ]; then + pip install -r requirements-osx.txt +else + python3 -c "import PyQt4" >/dev/null 2>&1 || { echo >&2 "PyQt 4.8+ required. Install it and try again. Aborting"; exit 1; } + pip install -r requirements.txt +fi + +echo "Bootstrapping complete! You can now configure, build and run dupeGuru with:" +echo ". env/bin/activate && python configure.py && python build.py && python run.py" diff --git a/requirements-extra.txt b/requirements-extra.txt new file mode 100644 index 00000000..b6e0e645 --- /dev/null +++ b/requirements-extra.txt @@ -0,0 +1,2 @@ +pytest>=2.0.0 +pytest-monkeyplus>=1.0.0 diff --git a/requirements.txt b/requirements.txt index 707a55f9..9e8cf87c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,5 +3,3 @@ Send2Trash>=1.3.0 sphinx>=1.1.3 polib>=0.7.0 hsaudiotag3k>=1.1.3 -pytest>=2.0.0 -pytest-monkeyplus>=1.0.0