diff options
author | Parabola <dev@list.parabolagnulinux.org> | 2011-04-05 14:26:38 +0000 |
---|---|---|
committer | Parabola <dev@list.parabolagnulinux.org> | 2011-04-05 14:26:38 +0000 |
commit | 415856bdd4f48ab4f2732996f0bae58595092bbe (patch) | |
tree | ede2018b591f6dfb477fe9341ba17b9bc000fab9 /community/calibre |
Tue Apr 5 14:26:38 UTC 2011
Diffstat (limited to 'community/calibre')
-rw-r--r-- | community/calibre/PKGBUILD | 66 | ||||
-rw-r--r-- | community/calibre/calibre.install | 12 | ||||
-rw-r--r-- | community/calibre/desktop_integration.patch | 70 |
3 files changed, 148 insertions, 0 deletions
diff --git a/community/calibre/PKGBUILD b/community/calibre/PKGBUILD new file mode 100644 index 000000000..1c212359e --- /dev/null +++ b/community/calibre/PKGBUILD @@ -0,0 +1,66 @@ +# $Id: PKGBUILD 44077 2011-04-01 22:22:26Z giovanni $ +# Maintainer: Giovanni Scafora <giovanni@archlinux.org> +# Contributor: Petrov Roman <nwhisper@gmail.com> +# Contributor: Andrea Fagiani <andfagiani _at_ gmail dot com> + +pkgname=calibre +pkgver=0.7.53 +pkgrel=1 +pkgdesc="Ebook management application" +arch=('i686' 'x86_64') +url="http://calibre.kovidgoyal.net/" +license=('GPL3') +depends=('python-dateutil' 'python2-cssutils' 'python-pypdf' 'cherrypy' + 'python-mechanize' 'podofo' 'libwmf' 'python-beautifulsoup' + 'imagemagick' 'poppler-qt' 'chmlib' 'python-lxml' 'libusb' + 'python-imaging' 'desktop-file-utils' 'shared-mime-info' + 'python-dnspython' 'unrar' 'python2-qt' 'icu') +makedepends=('python2-pycountry') +optdepends=('ipython: to use calibre-debug') +install=calibre.install +source=(http://calibre-ebook.googlecode.com/files/${pkgname}-${pkgver}.tar.gz + desktop_integration.patch) +md5sums=('1b0ce46a0d7088bbc32383f1be212c16' + 'bcc538a3b004429bf8f5a0ac1d89a37f') + +build() { + cd "${pkgname}" + + rm -rf src/{cherrypy,pyPdf} + sed -i -e "s/ldflags = shlex.split(ldflags)/ldflags = shlex.split(ldflags) + ['-fPIC']/" setup/extensions.py + sed -i -e 's:\(#!/usr/bin/env[ ]\+python$\|#!/usr/bin/python$\):\12:g' \ + $(find . -regex ".*.py\|.*.recipe") + + python2 setup.py build || return 1 + python2 setup.py resources || return 1 + python2 setup.py translations || return 1 +} + +package() { + cd ${pkgname} + + patch -Np1 -i $srcdir/desktop_integration.patch || return 1 + + # More on desktop integration (e.g. enforce arch defaults) + sed -i -e "/self.create_uninstaller()/,/os.rmdir(config_dir)/d" \ + -e "s|self.opts.staging_sharedir, 'man/man1'|self.opts.staging_root, 'usr/share/man/man1'|" \ + -e "s|manpath, prog+'.1'+__appname__+'.bz2'|manpath, prog+'.1'+'.bz2'|" \ + -e "s|old_udev = '/etc|old_udev = '${pkgdir}/etc|" \ + -e "s/^Name=calibre/Name=Calibre/g" src/calibre/linux.py + + # Fix the environment module location + sed -i -e "s|(prefix=.*)|(prefix='$pkgdir/usr')|g" setup/install.py + + mkdir -p ${pkgdir}/usr/lib/python2.7/site-packages + python2 setup.py install --root=${pkgdir}/ --prefix=/usr \ + --staging-bindir=${pkgdir}/usr/bin \ + --staging-libdir=${pkgdir}/usr/lib \ + --staging-sharedir=${pkgdir}/usr/share + + find ${pkgdir} -type d -empty -delete + + # Decompress the man pages so makepkg will do it for us. + for decom in ${pkgdir}/usr/share/man/man1/*.bz2; do + bzip2 -d ${decom} + done +} diff --git a/community/calibre/calibre.install b/community/calibre/calibre.install new file mode 100644 index 000000000..6210bd0ab --- /dev/null +++ b/community/calibre/calibre.install @@ -0,0 +1,12 @@ +post_install() { + update-desktop-database -q + update-mime-database usr/share/mime &> /dev/null +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/community/calibre/desktop_integration.patch b/community/calibre/desktop_integration.patch new file mode 100644 index 000000000..fa58443ed --- /dev/null +++ b/community/calibre/desktop_integration.patch @@ -0,0 +1,70 @@ +diff -rupN calibre.orig//src/calibre/linux.py calibre/src/calibre/linux.py +--- calibre.orig//src/calibre/linux.py 2010-09-17 22:38:02.000000000 +0200 ++++ calibre/src/calibre/linux.py 2010-09-19 15:50:15.029705851 +0200 +@@ -334,52 +323,39 @@ class PostInstall: + + with TemporaryDirectory() as tdir: + with CurrentDir(tdir): +- render_img('mimetypes/lrf.png', 'calibre-lrf.png') +- check_call('xdg-icon-resource install --noupdate --context mimetypes --size 128 calibre-lrf.png application-lrf', shell=True) +- self.icon_resources.append(('mimetypes', 'application-lrf', '128')) +- check_call('xdg-icon-resource install --noupdate --context mimetypes --size 128 calibre-lrf.png text-lrs', shell=True) +- self.icon_resources.append(('mimetypes', 'application-lrs', +- '128')) +- render_img('lt.png', 'calibre-gui.png') +- check_call('xdg-icon-resource install --noupdate --size 128 calibre-gui.png calibre-gui', shell=True) +- self.icon_resources.append(('apps', 'calibre-gui', '128')) +- render_img('viewer.png', 'calibre-viewer.png') +- check_call('xdg-icon-resource install --size 128 calibre-viewer.png calibre-viewer', shell=True) +- self.icon_resources.append(('apps', 'calibre-viewer', '128')) ++ dir = os.path.join(self.opts.staging_sharedir,'../pixmaps') ++ os.mkdir(dir) ++ render_img('mimetypes/lrf.png', os.path.join(dir,'calibre-lrf.png')) ++ render_img('lt.png', os.path.join(dir, 'calibre-gui.png')) ++ render_img('viewer.png', os.path.join(dir, 'calibre-viewer.png')) + + mimetypes = set([]) + for x in all_input_formats(): + mt = guess_type('dummy.'+x)[0] +- if mt and 'chemical' not in mt: ++ if mt and 'chemical' not in mt and 'text' not in mt and 'pdf' not in mt and 'xhtml' not in mt: + mimetypes.add(mt) + + def write_mimetypes(f): + f.write('MimeType=%s;\n'%';'.join(mimetypes)) + +- f = open('calibre-lrfviewer.desktop', 'wb') ++ dir = os.path.join(self.opts.staging_sharedir,'../applications') ++ os.mkdir(dir) ++ f = open(os.path.join(dir, 'calibre-lrfviewer.desktop'), 'wb') + f.write(VIEWER) + f.close() +- f = open('calibre-ebook-viewer.desktop', 'wb') ++ f = open(os.path.join(dir, 'calibre-ebook-viewer.desktop'), 'wb') + f.write(EVIEWER) + write_mimetypes(f) + f.close() +- f = open('calibre-gui.desktop', 'wb') ++ f = open(os.path.join(dir, 'calibre-gui.desktop'), 'wb') + f.write(GUI) + write_mimetypes(f) + f.close() +- des = ('calibre-gui.desktop', 'calibre-lrfviewer.desktop', +- 'calibre-ebook-viewer.desktop') +- for x in des: +- cmd = ['xdg-desktop-menu', 'install', './'+x] +- if x != des[-1]: +- cmd.insert(2, '--noupdate') +- check_call(' '.join(cmd), shell=True) +- self.menu_resources.append(x) +- f = open('calibre-mimetypes', 'wb') ++ dir = os.path.join(self.opts.staging_sharedir,'../mime/packages/') ++ os.makedirs(dir) ++ f = open(os.path.join(dir, 'calibre.xml'), 'wb') + f.write(MIME) + f.close() +- self.mime_resources.append('calibre-mimetypes') +- check_call('xdg-mime install ./calibre-mimetypes', shell=True) + except Exception: + if self.opts.fatal_errors: + raise |