mirror of
https://github.com/arsenetar/dupeguru.git
synced 2024-10-31 22:05:58 +00:00
5441da4630
--HG-- rename : cocoa/me/dupeguru.xcodeproj/project.pbxproj => cocoa/me/dupeguru_xcode4.xcodeproj/project.pbxproj rename : cocoa/pe/dupeguru.xcodeproj/project.pbxproj => cocoa/pe/dupeguru_xcode4.xcodeproj/project.pbxproj
134 lines
6.2 KiB
Plaintext
134 lines
6.2 KiB
Plaintext
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.1 (3.2 on Mac OS X) (http://www.python.org)
|
|
- Send2Trash3k (http://hg.hardcoded.net/send2trash)
|
|
- hsaudiotag3k 1.1.0 (for ME) (http://hg.hardcoded.net/hsaudiotag)
|
|
- jobprogress 1.0.1 (http://hg.hardcoded.net/jobprogress)
|
|
- Sphinx 1.0.6 (http://sphinx.pocoo.org/)
|
|
- pytest 2.0.0, to run unit tests. (http://pytest.org/)
|
|
|
|
Note: Sphinx doesn't officially support Python 3.x yet, but it doesn't matter because it is invoked
|
|
by the build system through command line, so you can build dupeGuru even if Sphinx is installed in
|
|
your Python 2.x install.
|
|
|
|
OS X prerequisites
|
|
------------------
|
|
|
|
- XCode 3.1 (http://developer.apple.com/TOOLS/xcode/)
|
|
- Sparkle (http://sparkle.andymatuschak.org/)
|
|
- PyObjC 2.3 (http://pyobjc.sourceforge.net/)
|
|
- pluginbuilder 1.0.1 (http://bitbucket.org/hsoft/pluginbuilder)
|
|
- appscript 1.0.0 for ME and PE (http://appscript.sourceforge.net/)
|
|
|
|
dupeGuru can be built with XCode 4, but there's gotchas, see below.
|
|
|
|
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).
|
|
Because Sphinx doesn't support Python 3 yet, it's not in the requirements file and you'll have to
|
|
install it manually. You might have to compile PyObjC manually too (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.
|
|
|
|
Also, on OS X, don't try to use the built-in python 2.x to install Sphinx on (the only pre-requisite
|
|
that doesn't run on python 3 yet). There's some weird error popping up when dupeGuru tries to build
|
|
its help file. Install your own framework version of python 2.7, and then install Sphinx on that.
|
|
When Sphinx supports Python 3, things will be easier because you'll be able to install sphinx on the
|
|
same Python version you build dupeGuru with.
|
|
|
|
Another one on OS X: I wouldn't use macports/fink/whatever. Whenever I tried using those, I always
|
|
ended up with problems.
|
|
|
|
dupeGuru can be built with XCode 4 (until support for 10.5 is dropped, xcode 3 and xcode 4 projects
|
|
have to be maintained in parallel though). You build it through `build.py`, like you'd normally do
|
|
but 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
|