2013-06-24 20:20:05 +00:00
|
|
|
# dupeGuru
|
2013-06-23 01:43:24 +00:00
|
|
|
|
2013-12-01 16:26:30 +00:00
|
|
|
[dupeGuru][dupeguru] is a cross-platform (Linux, OS X, Windows) GUI tool to find duplicate files in
|
|
|
|
a system. It's written mostly in Python 3 and has the peculiarity of using
|
|
|
|
[multiple GUI toolkits][cross-toolkit], all using the same core Python code. On OS X, the UI layer
|
2014-05-03 17:53:16 +00:00
|
|
|
is written in Objective-C and uses Cocoa. On Linux and Windows, it's written in Python and uses Qt5.
|
2013-12-01 16:26:30 +00:00
|
|
|
|
|
|
|
dupeGuru comes in 3 editions (standard, music and picture) which are all buildable from this same
|
2015-04-12 19:31:01 +00:00
|
|
|
source tree. You choose the edition you want to build in a `configure.py` flag.
|
|
|
|
|
|
|
|
# Current status: People wanted
|
|
|
|
|
|
|
|
dupeGuru has currently only one maintainer, me. This is a dangerous situation that needs to be
|
|
|
|
corrected.
|
|
|
|
|
|
|
|
The goal is to eventually have another active maintainer, but before we can get there, the project
|
|
|
|
needs more contributors. It is very much lacking on that side right now.
|
|
|
|
|
|
|
|
Whatever your skills, if you are remotely interestested in being a contributor, I'm interested in
|
2015-04-12 19:34:29 +00:00
|
|
|
mentoring you. If that's the case, please refer to [the open ticket on the subject][contrib-issue]
|
2015-04-12 19:31:01 +00:00
|
|
|
and let's get started.
|
2013-12-01 16:26:30 +00:00
|
|
|
|
|
|
|
# Contents of this folder
|
|
|
|
|
2015-04-12 19:31:01 +00:00
|
|
|
This folder contains the source for dupeGuru. Its documentation is in `help`, but is also
|
2013-12-01 16:26:30 +00:00
|
|
|
[available online][documentation] in its built form. Here's how this source tree is organised:
|
2013-06-23 01:43:24 +00:00
|
|
|
|
|
|
|
* core: Contains the core logic code for dupeGuru. It's Python code.
|
|
|
|
* 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.
|
2014-04-19 21:48:48 +00:00
|
|
|
* pkg: Skeleton files required to create different packages
|
2013-06-23 01:43:24 +00:00
|
|
|
* help: Help document, written for Sphinx.
|
2013-06-24 20:20:05 +00:00
|
|
|
* locale: .po files for localisation.
|
2013-06-23 01:43:24 +00:00
|
|
|
|
|
|
|
There are also other sub-folder that comes from external repositories and are part of this repo as
|
|
|
|
git subtrees:
|
|
|
|
|
|
|
|
* 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.
|
|
|
|
|
|
|
|
# How to build dupeGuru from source
|
|
|
|
|
2013-08-04 19:57:39 +00:00
|
|
|
## 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.
|
|
|
|
|
2013-06-23 01:43:24 +00:00
|
|
|
## Prerequisites installation
|
|
|
|
|
2013-08-04 19:57:39 +00:00
|
|
|
Prerequisites are installed through `pip`. However, some of them are not "pip installable" and have
|
|
|
|
to be installed manually.
|
2013-06-23 01:43:24 +00:00
|
|
|
|
2013-12-07 22:23:18 +00:00
|
|
|
* All systems: [Python 3.3+][python] and [setuptools][setuptools]
|
2014-05-03 19:12:13 +00:00
|
|
|
* Mac OS X: The last XCode to have the 10.7 SDK included. Python 3.4+.
|
2013-10-20 20:26:16 +00:00
|
|
|
* Windows: Visual Studio 2010, [PyQt 5.0+][pyqt], [cx_Freeze][cxfreeze] and
|
2013-06-24 20:20:05 +00:00
|
|
|
[Advanced Installer][advinst] (you only need the last two if you want to create an installer)
|
2013-06-23 01:43:24 +00:00
|
|
|
|
2014-04-19 16:17:26 +00:00
|
|
|
On Ubuntu (14.04+), the apt-get command to install all pre-requisites is:
|
2013-06-23 01:43:24 +00:00
|
|
|
|
2013-10-20 20:26:16 +00:00
|
|
|
$ apt-get install python3-dev python3-pyqt5 pyqt5-dev-tools
|
2013-06-23 01:43:24 +00:00
|
|
|
|
2013-10-20 20:26:16 +00:00
|
|
|
On Arch, it's:
|
2013-06-23 01:43:24 +00:00
|
|
|
|
2013-10-20 20:26:16 +00:00
|
|
|
$ pacman -S python-pyqt5
|
2013-06-23 01:43:24 +00:00
|
|
|
|
2013-12-07 22:23:18 +00:00
|
|
|
## Setting up the virtual environment
|
2013-06-23 01:43:24 +00:00
|
|
|
|
2013-12-07 22:23:18 +00:00
|
|
|
Use Python's built-in `pyvenv` to create a virtual environment in which we're going to install our.
|
|
|
|
Python-related dependencies. `pyvenv` is built-in Python but, unlike its `virtualenv` predecessor,
|
2014-10-04 21:01:22 +00:00
|
|
|
it doesn't install setuptools and pip (unless you use Python 3.4+), so it has to be installed
|
|
|
|
manually:
|
2013-06-23 01:43:24 +00:00
|
|
|
|
2013-12-07 22:23:18 +00:00
|
|
|
$ pyvenv --system-site-packages env
|
2013-06-23 01:43:24 +00:00
|
|
|
$ source env/bin/activate
|
2014-10-04 21:01:22 +00:00
|
|
|
$ python get-pip.py
|
2013-06-23 01:43:24 +00:00
|
|
|
|
|
|
|
Then, you can install pip requirements in your virtualenv:
|
|
|
|
|
|
|
|
$ pip install -r requirements-[osx|win].txt
|
|
|
|
|
|
|
|
([osx|win] depends, of course, on your platform. On other platforms, just use requirements.txt).
|
|
|
|
|
|
|
|
## Actual building and running
|
|
|
|
|
|
|
|
With your virtualenv activated, you can build and run dupeGuru with these commands:
|
|
|
|
|
|
|
|
$ python configure.py
|
|
|
|
$ python build.py
|
|
|
|
$ python run.py
|
|
|
|
|
|
|
|
You can also package dupeGuru into an installable package with:
|
|
|
|
|
|
|
|
$ python package.py
|
2013-06-24 20:20:05 +00:00
|
|
|
|
2013-12-01 16:26:30 +00:00
|
|
|
[dupeguru]: http://www.hardcoded.net/dupeguru/
|
|
|
|
[cross-toolkit]: http://www.hardcoded.net/articles/cross-toolkit-software
|
2015-04-12 19:31:01 +00:00
|
|
|
[contrib-issue]: https://github.com/hsoft/dupeguru/issues/300
|
2013-06-24 20:20:05 +00:00
|
|
|
[documentation]: http://www.hardcoded.net/dupeguru/help/en/
|
|
|
|
[python]: http://www.python.org/
|
2013-08-04 19:57:39 +00:00
|
|
|
[setuptools]: https://pypi.python.org/pypi/setuptools
|
2013-06-24 20:20:05 +00:00
|
|
|
[pyqt]: http://www.riverbankcomputing.com
|
|
|
|
[cxfreeze]: http://cx-freeze.sourceforge.net/
|
|
|
|
[advinst]: http://www.advancedinstaller.com
|
2014-10-04 21:01:22 +00:00
|
|
|
|