desktop/calibre/desktop_integration.patch
2012-03-30 15:31:48 +00:00

115 lines
5.9 KiB
Diff

--- a/src/calibre/linux.py 2012-03-30 06:11:03.000000000 +0200
+++ b/src/calibre/linux.py 2012-03-30 10:46:34.000000000 +0200
@@ -180,18 +180,6 @@
self.install_man_pages()
if islinux or isbsd:
self.setup_desktop_integration()
- self.create_uninstaller()
-
- from calibre.utils.config import config_dir
- if os.path.exists(config_dir):
- os.chdir(config_dir)
- if islinux or isbsd:
- for f in os.listdir('.'):
- if os.stat(f).st_uid == 0:
- import shutil
- shutil.rmtree(f) if os.path.isdir(f) else os.unlink(f)
- if os.stat(config_dir).st_uid == 0:
- os.rmdir(config_dir)
if warn is None and self.warnings:
self.info('There were %d warnings'%len(self.warnings))
@@ -238,7 +226,7 @@
if isnetbsd:
f = os.path.join(self.opts.staging_root, 'share/bash_completion.d/calibre')
else:
- f = os.path.join(self.opts.staging_etc, 'bash_completion.d/calibre')
+ f = os.path.join(self.opts.staging_root, 'usr/share/bash-completion/completions/calibre')
if not os.path.exists(os.path.dirname(f)):
os.makedirs(os.path.dirname(f))
self.manifest.append(f)
@@ -349,7 +337,7 @@
if isbsd:
manpath = os.path.join(self.opts.staging_root, 'man/man1')
else:
- manpath = os.path.join(self.opts.staging_sharedir, 'man/man1')
+ manpath = os.path.join(self.opts.staging_root, 'usr/share/man/man1')
if not os.path.exists(manpath):
os.makedirs(manpath)
self.info('Installing MAN pages...')
@@ -365,7 +353,7 @@
if isbsd:
manfile = os.path.join(manpath, prog+'.1')
else:
- manfile = os.path.join(manpath, prog+'.1'+__appname__+'.bz2')
+ manfile = os.path.join(manpath, prog+'.1'+'.bz2')
self.info('\tInstalling MAN page for', prog)
open(manfile, 'wb').write(raw)
self.manifest.append(manfile)
@@ -381,51 +369,39 @@
with TemporaryDirectory() as tdir, CurrentDir(tdir), \
PreserveMIMEDefaults():
- 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 and 'ctc-posml' 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', '--noupdate', './'+x]
- check_call(' '.join(cmd), shell=True)
- self.menu_resources.append(x)
- check_call(['xdg-desktop-menu', 'forceupdate'])
- 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