Go to file
Virgil Dupras 573d088088 pe v2.7.0 2012-08-11 12:00:16 -04:00
cocoa [#201 state:fixed] Added an EXIF Timestamp column in PE. 2012-08-10 16:34:27 -04:00
core Fixed a bug causing groups with more than one ref file in it to appear (which looks weird and messes with selection). 2012-08-09 11:16:06 -04:00
core_me me v6.5.0 2012-08-10 10:23:35 -04:00
core_pe pe v2.7.0 2012-08-11 12:00:16 -04:00
core_se v3.6.0 2012-08-08 10:05:15 -04:00
debian Fixed debian packaging which was broken and produced (nearly) empty binary packages. 2012-07-11 14:48:42 -07:00
help pe v2.7.0 2012-08-11 12:00:16 -04:00
images Replaced 'Add' and 'Remove' by + and - icons in the directories dialog under Qt. 2011-01-18 11:07:56 +01:00
locale Updated PO files from POTs. 2012-08-09 09:58:14 -04:00
qt [#201 state:fixed] Added an EXIF Timestamp column in PE. 2012-08-10 16:34:27 -04:00
.hgignore Removed obsolete hgignore entries. 2012-08-10 15:15:38 -04:00
.hgtags Added tag me6.5.0 for changeset 8f478379ec62 2012-08-10 11:07:03 -04:00
LICENSE Changed copyright year to 2012 2012-03-15 14:28:40 -04:00
README Updated README and pip requirements to include xibless (and remove Sparkle, which is now included in cocoalib). 2012-07-30 14:14:10 -04:00
build.py Copy "en.lproj" in cocoa app so that english is actually chosen when it's at the top of the list in the Cocoa language settings. 2012-08-08 10:26:33 -04:00
configure.py Changed copyright year to 2012 2012-03-15 14:28:40 -04:00
package.py Fixed cocoa packaging. 2012-07-29 12:59:39 -04:00
requirements-osx.txt Updated xibless requirements. 2012-08-08 10:05:44 -04:00
requirements-win.txt Added pip requirement files. 2011-07-11 14:00:03 -04:00
requirements.txt Updated hsaudiotag version req. 2012-08-10 10:30:50 -04:00
run_template_cocoa.py Added build support for ME in the new waf script (but I haven't converted ME's pref panel to xibless yet). 2012-07-28 18:10:05 -04:00
run_template_qt.py [#206 state:fixed] Moved stdout wrapping under cxfreeze sooner at startup. 2012-08-07 12:37:17 -04:00

README

Contents
========

This package contains the source for dupeGuru. To learn how to build it, refer to the "Build dupeGuru" section. Below is the description of the various subfolders:

- core: Contains the core logic code for dupeGuru. It's Python code written in TDD style.
- core_*: Edition-specific-cross-toolkit code written in Python.
- cocoa: UI code for the Cocoa toolkit. It's Objective-C code.
- qt: UI code for the Qt toolkit. It's written in Python and uses PyQt.
- images: Images used by the different UI codebases.
- debian_*: Skeleton files required to create a .deb package
- help: Help document, written for Sphinx.

There are also other sub-folder that comes from external repositories (automatically checked out
with as mercurial subrepos):

- hscommon: A collection of helpers used across HS applications.
- cocoalib: A collection of helpers used across Cocoa UI codebases of HS applications.
- qtlib: A collection of helpers used across Qt UI codebases of HS applications.

dupeGuru Dependencies
=====================

Before being able to build dupeGuru, a few dependencies have to be installed:

General dependencies
--------------------

- Python 3.2 (http://www.python.org)
- Send2Trash3k (http://hg.hardcoded.net/send2trash)
- hsaudiotag3k 1.1.0 (for ME) (http://hg.hardcoded.net/hsaudiotag)
- jobprogress 1.0.3 (http://hg.hardcoded.net/jobprogress)
- Sphinx 1.1 (http://sphinx.pocoo.org/)
- polib 0.7.0 (http://bitbucket.org/izi/polib)
- pytest 2.0.0, to run unit tests. (http://pytest.org/)

OS X prerequisites
------------------

- XCode's command line tools
- objp 1.1.0 (http://bitbucket.org/hsoft/objp)
- pluginbuilder 1.1.0 (http://bitbucket.org/hsoft/pluginbuilder)
- appscript 1.0.0 for ME and PE (http://appscript.sourceforge.net/)
- xibless 0.4.0 (https://bitbucket.org/hsoft/xibless)

Windows prerequisites
---------------------

- Visual Studio 2008 (Express is enough) is needed to build C extensions. (http://www.microsoft.com/Express/)
- PyQt 4.7.5 (http://www.riverbankcomputing.co.uk/news)
- cx_Freeze, if you want to build a exe. You don't need it if you just want to run dupeGuru. (http://cx-freeze.sourceforge.net/)
- Advanced Installer, if you want to build the installer file. (http://www.advancedinstaller.com/)

Linux prerequisites
-------------------

- PyQt 4.7.5 (http://www.riverbankcomputing.co.uk/news)

The easy way!
-------------

There's an easy way to install the majority of the prerequisites above, and it's `pip <http://www.pip-installer.org/>`_ which has recently started to support Python 3. So install it and then run::

    pip install -r requirements-[osx|win].txt

([osx|win] depends, of course, on your platform. On other platforms, just use requirements.txt). 
You might have to compile PyObjC manually (see gotchas below). Sparkle and 
Advanced Installer, having nothing to do with Python, are also manual installs.

PyQt isn't in the requirements file either (there's no package uploaded on PyPI) and you also have
to install it manually.

Prerequisite gotchas
--------------------

Correctly installing the prerequisites is tricky. Make sure you have at least the version number 
required for each prerequisite.

If you didn't use mercurial to download this source, you probably have an incomplete source folder!
External projects (hscommon, qtlib, cocoalib) need to be at the root of the dupeGuru project folder.
You'll have to download those separately. Or use mercurial, it's much easier.

Another one on OS X: I wouldn't use macports/fink/whatever. Whenever I tried using those, I always 
ended up with problems.

Whenever you have a problem, always double-check that you're running the correct python version. 
You'll probably have to tweak your $PATH.

To setup a build machine under Ubuntu 12.04 and up, install those packages: python3-dev, python3-pyqt4,
pyqt4-dev-tools, mercurial and then python3-setuptools. Once you've done that, install pip with
`easy_install`. Once you've done that, you can then perform "The easy way!" installation.

Building dupeGuru
=================

First, make sure you meet the dependencies listed in the section above. Then you need to configure your build with:

	python configure.py
	
If you want, you can specify a UI to use with the `--ui` option. So, if you want to build dupeGuru with Qt on OS X, then you have to type `python configure.py --ui=qt`. You can also use the `--dev` flag to indicate a dev build (it will build `dg_cocoa.plugin` in alias mode and use the "dev" config in XCode).

Then, just build the thing and then run it with:

	python build.py
	python run.py

If you want to create ready-to-upload package, run:

	python package.py