mirror of
https://gitdl.cn/https://github.com/chakralinux/desktop.git
synced 2025-01-24 10:32:13 +08:00
rebuild calibre
This commit is contained in:
parent
76d170960d
commit
415fed41ba
@ -8,7 +8,7 @@ source ../_buildscripts/${current_repo}-${_arch}-cfg.conf
|
||||
|
||||
pkgname=calibre
|
||||
pkgver=0.7.48
|
||||
pkgrel=1
|
||||
pkgrel=2
|
||||
pkgdesc="E-book library management application"
|
||||
arch=('i686' 'x86_64')
|
||||
url="http://calibre.kovidgoyal.net/"
|
||||
@ -19,68 +19,49 @@ depends=('python2' 'python-imaging' 'libusb' 'pyqt' 'python-mechanize'
|
||||
'podofo>=0.8.1-6' 'xdg-utils' 'cherrypy' 'python-pypdf' 'unrar' 'chmlib' 'poppler' 'poppler-qt' 'liblqr' 'icu' 'sip' 'libffi')
|
||||
makedepends=('python-distribute')
|
||||
install=calibre.install
|
||||
source=(http://sourceforge.net/projects/calibre/files/${pkgver}/${pkgname}-${pkgver}.tar.gz)
|
||||
md5sums=('559d5fd1c0402cf673167d679d006e67')
|
||||
source=(http://calibre-ebook.googlecode.com/files/${pkgname}-${pkgver}.tar.gz
|
||||
desktop_integration.patch)
|
||||
md5sums=('559d5fd1c0402cf673167d679d006e67'
|
||||
'bcc538a3b004429bf8f5a0ac1d89a37f')
|
||||
|
||||
build() {
|
||||
cd "${pkgname}"
|
||||
cd "${pkgname}"
|
||||
|
||||
rm -rf src/{cherrypy,pyPdf}
|
||||
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")
|
||||
|
||||
# Hador patches
|
||||
sed -e "/render_img('mimetypes\/lrf.png', 'calibre-lrf.png')/,/self.icon_resources.append(('apps', 'calibre-viewer', '128'))/c \ \
|
||||
dir = os.path.join(self.opts.staging_sharedir,'../pixmaps')\n \
|
||||
os.mkdir(dir)\n \
|
||||
render_img('mimetypes/lrf.png', os.path.join(dir,'calibre-lrf.png'))\n \
|
||||
render_img('lt.png', os.path.join(dir, 'calibre-gui.png'))\n \
|
||||
render_img('viewer.png', os.path.join(dir, 'calibre-viewer.png'))" \
|
||||
-e "/f = open('calibre-lrfviewer.desktop', 'wb')/c \ \
|
||||
dir = os.path.join(self.opts.staging_sharedir,'../applications')\n \
|
||||
os.mkdir(dir)\n \
|
||||
f = open(os.path.join(dir, 'calibre-lrfviewer.desktop'), 'wb')" \
|
||||
-e "s/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:/g" \
|
||||
-e "s/f = open('calibre-ebook-viewer.desktop', 'wb')/f = open(os.path.join(dir, 'calibre-ebook-viewer.desktop'), 'wb')/g" \
|
||||
-e "s/f = open('calibre-gui.desktop', 'wb')/f = open(os.path.join(dir, 'calibre-gui.desktop'), 'wb')/g" \
|
||||
-e "/des = ('calibre-gui.desktop', 'calibre-lrfviewer.desktop',/,/f = open('calibre-mimetypes', 'wb')/c \ \
|
||||
dir = os.path.join(self.opts.staging_sharedir,'../mime/packages/')\n \
|
||||
os.makedirs(dir)\n \
|
||||
f = open(os.path.join(dir, 'calibre.xml'), 'wb')" \
|
||||
-e "/self.mime_resources.append('calibre-mimetypes')/,/check_call('xdg-mime install .\/calibre-mimetypes', shell=True)/d" \
|
||||
-i src/calibre/linux.py
|
||||
|
||||
# Larryhaja patches
|
||||
sed -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:" -i src/calibre/linux.py
|
||||
|
||||
sed -e "s/ldflags = shlex.split(ldflags)/ldflags = shlex.split(ldflags) + ['-fPIC']/" -i setup/extensions.py
|
||||
|
||||
# Disable unnecessary privilege dropping
|
||||
sed -e "s:if os.geteuid() == 0:if False and os.geteuid() == 0:" -i setup/install.py
|
||||
|
||||
python2 setup.py build
|
||||
python2 setup.py build || return 1
|
||||
python2 setup.py resources || return 1
|
||||
python2 setup.py translations || return 1
|
||||
}
|
||||
|
||||
package() {
|
||||
cd ${pkgname}
|
||||
cd ${pkgname}
|
||||
|
||||
patch -Np1 -i $srcdir/desktop_integration.patch || return 1
|
||||
|
||||
mkdir -p ${pkgdir}/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
|
||||
# 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
|
||||
|
||||
find ${pkgdir} -type d -empty -delete
|
||||
# Fix the environment module location
|
||||
sed -i -e "s|(prefix=.*)|(prefix='$pkgdir/usr')|g" setup/install.py
|
||||
|
||||
sed -i -e "s|#![ ]*/usr/bin/python$|#!/usr/bin/python2|" \
|
||||
-e "s|#![ ]*/usr/bin/env *python$|#!/usr/bin/env python2|" \
|
||||
$( find "${pkgdir}" -type f -regex ".+\.py\|.+\.recipe" )
|
||||
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
|
||||
|
||||
# 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
|
||||
find ${pkgdir} -type d -empty -delete
|
||||
|
||||
find "${pkgdir}/usr/bin" -type f -exec sed -i -e "s|#![ ]*/usr/bin/env *python$|#!/usr/bin/env python2|" {} +
|
||||
# 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
|
||||
}
|
||||
|
70
calibre/desktop_integration.patch
Normal file
70
calibre/desktop_integration.patch
Normal file
@ -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
|
Loading…
Reference in New Issue
Block a user