Virgil Dupras is sharing code with you

Bitbucket is a code hosting site. Unlimited public and private repositories. Free for small teams.

Don't show this again

hsoft / dupeguru http://hardcoded.net/dupeguru

Find duplicate files. On Mac OS X and Windows.

Clone this repository (size: 6.5 MB): HTTPS / SSH
hg clone https://bitbucket.org/hsoft/dupeguru
hg clone ssh://hg@bitbucket.org/hsoft/dupeguru

dupeguru overview

Recent commits See more »

Author Revision Comments Message Labels Date
Virgil Dupras 97cd00742e55 Added tag me6.3.1 for changeset 71b7e18613f3
Virgil Dupras 71b7e18613f3 Update cocoalib subrepo.
Tag
me6.3.1
Virgil Dupras 10f3eddfcc7d me v6.3.1
Virgil Dupras 5fe1d987c275 Added tag se3.4.1 for changeset c153aef25e5c
Virgil Dupras c153aef25e5c Fixed build bug where the qtlib po file wouldn't be copied to the build locale folder.
Tag
se3.4.1

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

OS X prerequisites

Windows prerequisites

Linux prerequisites

The easy way!

There's an easy way to install the majority of the prerequisites above, and it's pip 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.

As far as I can tell, you don't have to compile/install everything manually and you can normally use easy_install to install python dependencies. However, be aware that compiling/installing manually from the repositories of each project is what I personally do, so if you hit a snag somewhere, you might want to try the manual way.

PyObjC's website is badly outdated. Also, as far as I can tell, the package installable with easy_install has good chances of not working. Your best bet is to download the latest tagged version from the repository and compile it from source.

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

On OSX Lion, for dupeGuru PE, make sure that you installed the latest version of macholib because there was a 10.7 related bug that was fixed recently. Right now, the fix hasn't even been released yet so you have to install directly from the repo ( http://bitbucket.org/ronaldoussoren/macholib ). The fix in question is at http://bitbucket.org/ronaldoussoren/macholib/changeset/4ab0de0f5b60

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

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