summaryrefslogtreecommitdiff
path: root/community/calibre
diff options
context:
space:
mode:
authorParabola <dev@list.parabolagnulinux.org>2011-04-05 14:26:38 +0000
committerParabola <dev@list.parabolagnulinux.org>2011-04-05 14:26:38 +0000
commit415856bdd4f48ab4f2732996f0bae58595092bbe (patch)
treeede2018b591f6dfb477fe9341ba17b9bc000fab9 /community/calibre
Tue Apr 5 14:26:38 UTC 2011
Diffstat (limited to 'community/calibre')
-rw-r--r--community/calibre/PKGBUILD66
-rw-r--r--community/calibre/calibre.install12
-rw-r--r--community/calibre/desktop_integration.patch70
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