Contents ======== This package contains the source for PdfMasher. To learn how to build it, refer to the "Build PdfMasher" section. Below is the description of the various subfolders: - core: Contains the core logic code for PdfMasher. 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. PdfMasher Dependencies ====================== Before being able to build PdfMasher, a few dependencies have to be installed: General dependencies -------------------- - Python 3.2 (http://www.python.org) - pdfminer3k (http://hg.hardcoded.net/pdfminer3k) - jobprogress 1.0.0 (http://hg.hardcoded.net/jobprogress) - Sphinx 1.1.0 (http://sphinx.pocoo.org/) - pytest 2.0.3, to run unit tests. (http://pytest.org/) - Markdown 2.1.1 (http://www.freewisdom.org/projects/python-markdown) OS X prerequisites ------------------ - XCode's Command Line Tools - ObjP 1.2.1 (http://bitbucket.org/hsoft/objp) - xibless 0.5.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 PdfMasher. (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|lnx].txt ([osx|win|lnx] depends, of course, on your platform). 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). Advanced Installer, having nothing to do with Python, is a manual install. PyQt also needs to be installed manually: the package is on PyPI, but there's no download available. 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 PdfMasher 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. 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. Building PdfMasher ================== 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 PdfMasher 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 `pyplugin.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
224967f - Added packaging support for Arch Linux.
6a9905c - Fix dangling registration reference.
cb98254 - Removed buggy dead code.
Clearer Build pane
Better page navigation
eac819c - Fixed debian packaging.
09b628a - Fixed cocoa build which was broken because of cssselect.
2bcefcb - v0.7.4
9d17373 - Make build and package work with a 64bit Windows install.
f3db634 - Adapted to cssselect modification in lxml 3.0.