diff options
| author | Paweł Jastrzębski <[email protected]> | 2015-03-09 19:34:42 +0100 |
|---|---|---|
| committer | Paweł Jastrzębski <[email protected]> | 2015-03-09 20:08:48 +0100 |
| commit | 561af90b06e9ba9aaf273612e6135a28376c137b (patch) | |
| tree | 5018ff65bd69e68ae1f76310e16fcbbc91957baa | |
| parent | Merge pull request #131 from ciromattia/dev (diff) | |
| download | kcc-561af90b06e9ba9aaf273612e6135a28376c137b.tar.gz kcc-561af90b06e9ba9aaf273612e6135a28376c137b.tar.bz2 kcc-561af90b06e9ba9aaf273612e6135a28376c137b.zip | |
Updated README and Setup
| -rw-r--r-- | README.md | 35 | ||||
| -rwxr-xr-x | setup.py | 129 | ||||
| -rwxr-xr-x | setup.sh | 25 |
3 files changed, 105 insertions, 84 deletions
diff --git a/README.md b/README.md index 698edfe..f4534c8 100644 --- a/README.md +++ b/README.md @@ -29,20 +29,8 @@ You can find the latest released binary at the following links: - **Linux:** [http://kcc.iosphe.re/Linux/](http://kcc.iosphe.re/Linux/) - **OS X (10.8+):** [http://kcc.iosphe.re/OSX/](http://kcc.iosphe.re/OSX/) -## INPUT FORMATS -**KCC** can understand and convert, at the moment, the following input types: -- Folders containing: PNG, JPG or GIF files -- CBZ, ZIP -- CBR, RAR *(With `unrar` executable)* -- CB7, 7Z *(With `7za` executable)* -- PDF *(Only extracting JPG images)* - -## OPTIONAL REQUIREMENTS -- [KindleGen](http://www.amazon.com/gp/feature.html?ie=UTF8&docId=1000765211) v2.9+ in a directory reachable by your _PATH_ or in _KCC_ directory *(For MOBI generation)* -- [UnRAR](http://www.rarlab.com/download.htm) *(For CBR/RAR support)* -- [7za](http://www.7-zip.org/download.html) *(For 7z/CB7 support)* - -### For running from source: +## DEPENDENCIES +Following software is required to run Linux version of **KCC** and/or bare sources: - Python 3.3+ - [PyQt](http://www.riverbankcomputing.co.uk/software/pyqt/download5) 5.2.0+ - [Pillow](http://pypi.python.org/pypi/Pillow/) 2.7.0+ @@ -50,15 +38,24 @@ You can find the latest released binary at the following links: - [python-slugify](http://pypi.python.org/pypi/python-slugify) 0.1.0+ - [scandir](https://pypi.python.org/pypi/scandir) 0.9+ -On Debian based distributions these two commands should install all dependencies: +On Debian based distributions these two commands should install all needed dependencies: ``` sudo apt-get install python3 python3-dev python3-pip python3-pyqt5 libpng-dev libjpeg-dev p7zip-full unrar sudo pip3 install pillow python-slugify psutil scandir ``` -### For freezing code: -- Windows - [py2exe](https://pypi.python.org/pypi/py2exe) 0.9.2.2+ -- OS X - [py2app](https://bitbucket.org/ronaldoussoren/py2app) 0.9.0+ +### Optional dependencies +- [KindleGen](http://www.amazon.com/gp/feature.html?ie=UTF8&docId=1000765211) v2.9+ in a directory reachable by your _PATH_ or in _KCC_ directory *(For MOBI generation)* +- [UnRAR](http://www.rarlab.com/download.htm) *(For CBR/RAR support)* +- [7za](http://www.7-zip.org/download.html) *(For 7z/CB7 support)* + +## INPUT FORMATS +**KCC** can understand and convert, at the moment, the following input types: +- Folders containing: PNG, JPG or GIF files +- CBZ, ZIP +- CBR, RAR *(With `unrar` executable)* +- CB7, 7Z *(With `7za` executable)* +- PDF *(Only extracting JPG images)* ## USAGE @@ -160,7 +157,7 @@ The app relies and includes the following scripts: ## CHANGELOG ####4.5: -* Added simple ComicRack medadata editor +* Added simple ComicRack metadata editor * Re-enabled Manga Cover Database support * ComicRack bookmarks are now parsed * Fixed glitches in Kindle Voyage profile diff --git a/setup.py b/setup.py index f650402..c50a190 100755 --- a/setup.py +++ b/setup.py @@ -1,25 +1,32 @@ #!/usr/bin/env python3 """ -py2exe/py2app build script for KCC. +pip/py2exe/py2app build script for KCC. Usage (Windows): - python setup.py py2exe + py -3.4 setup.py py2exe + +Usage (Linux): + python3 setup.py make_pyz or python3 setup.py install Usage (Mac OS X): - python setup.py py2app + python3 setup.py py2app """ -from sys import platform, version_info +from sys import platform, version_info, argv from kcc import __version__ if version_info[0] != 3: print('ERROR: This is Python 3 script!') exit(1) -NAME = "KindleComicConverter" +NAME = 'KindleComicConverter' VERSION = __version__ -MAIN = "kcc.py" +MAIN = 'kcc.py' +extra_options = {} -if platform == "darwin": +# noinspection PyUnresolvedReferences +if platform == 'darwin': from setuptools import setup + from os import chmod, makedirs + from shutil import copyfile extra_options = dict( setup_requires=['py2app'], app=[MAIN], @@ -32,8 +39,8 @@ if platform == "darwin": plist=dict( CFBundleName=NAME, CFBundleShortVersionString=VERSION, - CFBundleGetInfoString=NAME + " " + VERSION + - ", written 2012-2015 by Ciro Mattia Gonano and Pawel Jastrzebski", + CFBundleGetInfoString=NAME + ' ' + VERSION + + ', written 2012-2015 by Ciro Mattia Gonano and Pawel Jastrzebski', CFBundleExecutable=NAME, CFBundleDocumentTypes=[ dict( @@ -52,12 +59,12 @@ if platform == "darwin": ) ) ) -elif platform == "win32": +elif platform == 'win32': # noinspection PyUnresolvedReferences import py2exe - import platform + from platform import architecture from distutils.core import setup - if platform.architecture()[0] == '64bit': + if architecture()[0] == '64bit': suffix = '_64' else: suffix = '' @@ -70,44 +77,86 @@ elif platform == "win32": 'C:\Python34' + suffix + '\Lib\site-packages\PyQt5\libGLESv2.dll', 'C:\Python34' + suffix + '\Lib\site-packages\PyQt5\libEGL.dll'])] extra_options = dict( - options={'py2exe': {"bundle_files": 1, - "dist_dir": "dist" + suffix, - "compressed": True, - "includes": ["sip"], - "excludes": ["tkinter"], - "optimize": 2}}, - windows=[{"script": MAIN, - "dest_base": "KCC", - "version": VERSION, - "copyright": "Ciro Mattia Gonano, Pawel Jastrzebski © 2012-2015", - "legal_copyright": "ISC License (ISCL)", - "product_version": VERSION, - "product_name": "Kindle Comic Converter", - "file_description": "Kindle Comic Converter", - "icon_resources": [(1, "icons\comic2ebook.ico")]}], + options={'py2exe': {'bundle_files': 1, + 'dist_dir': 'dist' + suffix, + 'compressed': True, + 'includes': ['sip'], + 'excludes': ['tkinter'], + 'optimize': 2}}, + windows=[{'script': MAIN, + 'dest_base': 'KCC', + 'version': VERSION, + 'copyright': 'Ciro Mattia Gonano, Pawel Jastrzebski © 2012-2015', + 'legal_copyright': 'ISC License (ISCL)', + 'product_version': VERSION, + 'product_name': 'Kindle Comic Converter', + 'file_description': 'Kindle Comic Converter', + 'icon_resources': [(1, 'icons\comic2ebook.ico')]}], zipfile=None, data_files=additional_files) else: - print('Please use setup.sh to build Linux package.') - exit() + if argv[1] == 'make_pyz': + from os import system + script = ''' + cp kcc.py __main__.py + zip kcc.zip __main__.py kcc/*.py + echo "#!/usr/bin/env python3" > kcc-bin + cat kcc.zip >> kcc-bin + chmod +x kcc-bin + + cp kcc-c2e.py __main__.py + zip kcc-c2e.zip __main__.py kcc/*.py + echo "#!/usr/bin/env python3" > kcc-c2e-bin + cat kcc-c2e.zip >> kcc-c2e-bin + chmod +x kcc-c2e-bin + + cp kcc-c2p.py __main__.py + zip kcc-c2p.zip __main__.py kcc/*.py + echo "#!/usr/bin/env python3" > kcc-c2p-bin + cat kcc-c2p.zip >> kcc-c2p-bin + chmod +x kcc-c2p-bin + + tar --xform s:^.*/:: --xform s/LICENSE.txt/LICENSE/ --xform s/kcc-bin/kcc/ --xform s/kcc-c2p-bin/kcc-c2p/ \ + --xform s/kcc-c2e-bin/kcc-c2e/ --xform s/comic2ebook/kcc/ -czf KindleComicConverter_linux_'''\ + + VERSION + '''.tar.gz kcc-bin kcc-c2e-bin kcc-c2p-bin LICENSE.txt README.md icons/comic2ebook.png + rm __main__.py kcc.zip kcc-c2e.zip kcc-c2p.zip kcc-bin kcc-c2e-bin kcc-c2p-bin + ''' + system("bash -c '%s'" % script) + exit(0) + else: + from setuptools import setup + from os import makedirs + from shutil import copyfile + makedirs('build/_scripts/', exist_ok=True) + copyfile('kcc.py', 'build/_scripts/kcc') + copyfile('kcc-c2e.py', 'build/_scripts/kcc-c2e') + copyfile('kcc-c2p.py', 'build/_scripts/kcc-c2p') + extra_options = dict( + scripts=['build/_scripts/kcc', 'build/_scripts/kcc-c2e', 'build/_scripts/kcc-c2p'], + packages=['kcc'], + install_requires=[ + 'Pillow>=2.7.0', + 'psutil>=2.0', + 'python-slugify>=0.1.0', + 'scandir>=0.9', + ], + zip_safe=False, + ) -# noinspection PyUnboundLocalVariable setup( name=NAME, version=VERSION, - author="Ciro Mattia Gonano, Pawel Jastrzebski", - author_email="[email protected], [email protected]", - description="Kindle Comic Converter", - license="ISC License (ISCL)", - keywords="kindle comic mobipocket mobi cbz cbr manga", - url="http://github.com/ciromattia/kcc", + author='Ciro Mattia Gonano, Pawel Jastrzebski', + author_email='[email protected], [email protected]', + description='Comic and manga converter for E-Book readers.', + license='ISC License (ISCL)', + keywords='kindle comic mobipocket mobi cbz cbr manga', + url='http://github.com/ciromattia/kcc', **extra_options ) -if platform == "darwin": - from os import chmod, makedirs - from shutil import copyfile - makedirs('dist/' + NAME + '.app/Contents/PlugIns/platforms') +if platform == 'darwin': + makedirs('dist/' + NAME + '.app/Contents/PlugIns/platforms', exist_ok=True) copyfile('other/libqcocoa.dylib', 'dist/' + NAME + '.app/Contents/PlugIns/platforms/libqcocoa.dylib') chmod('dist/' + NAME + '.app/Contents/Resources/unrar', 0o777) chmod('dist/' + NAME + '.app/Contents/Resources/7za', 0o777) \ No newline at end of file diff --git a/setup.sh b/setup.sh deleted file mode 100755 index c26a53e..0000000 --- a/setup.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash -# Linux Python package build script - -VERSION="4.5" - -cp kcc.py __main__.py -zip kcc.zip __main__.py kcc/*.py -echo "#!/usr/bin/env python3" > kcc-bin -cat kcc.zip >> kcc-bin -chmod +x kcc-bin - -cp kcc-c2e.py __main__.py -zip kcc-c2e.zip __main__.py kcc/*.py -echo "#!/usr/bin/env python3" > kcc-c2e-bin -cat kcc-c2e.zip >> kcc-c2e-bin -chmod +x kcc-c2e-bin - -cp kcc-c2p.py __main__.py -zip kcc-c2p.zip __main__.py kcc/*.py -echo "#!/usr/bin/env python3" > kcc-c2p-bin -cat kcc-c2p.zip >> kcc-c2p-bin -chmod +x kcc-c2p-bin - -tar --xform s:^.*/:: --xform s/kcc-bin/kcc/ --xform s/kcc-c2p-bin/kcc-c2p/ --xform s/kcc-c2e-bin/kcc-c2e/ --xform s/comic2ebook/kcc/ -czf KindleComicConverter_linux_${VERSION}.tar.gz kcc-bin kcc-c2e-bin kcc-c2p-bin LICENSE.txt icons/comic2ebook.png -rm __main__.py kcc.zip kcc-c2e.zip kcc-c2p.zip kcc-bin kcc-c2e-bin kcc-c2p-bin \ No newline at end of file |