pkgsrc-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
pkg/47492: misc/calibre doesn't install properly on DragonflyBSD
>Number: 47492
>Category: pkg
>Synopsis: misc/calibre doesn't install properly on DragonflyBSD
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: pkg-manager
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Wed Jan 23 07:10:00 +0000 2013
>Originator: Neil Booth
>Release:
>Organization:
>Environment:
DragonFly athlon2.akihabara.co.uk 3.3-DEVELOPMENT DragonFly
v3.3.0.944.g5ef30-DEVELOPMENT #2: Mon Jan 14 15:53:11 JST 2013
root%athlon2.akihabara.co.uk@localhost:/usr/obj/usr/src/sys/X86_64_GENERIC
x86_64
>Description:
Fails to install; as only setup for pkgsrc tweaks on NetBSD and not other OSes
>How-To-Repeat:
make install
>Fix:
Here is a COMPLETE replacement of the existing patch file; the diffs between
current and this are actually small.
$NetBSD: patch-src_calibre_linux_py,v 1.3 2012/09/19 15:38:27 ryoon Exp $
Lifted from ArchLinux, saves mime and desktop files on disk
instead of trying to add them directly.
--- src/calibre/linux.py.orig 2012-11-23 03:36:53.000000000 +0000
+++ src/calibre/linux.py
@@ -8,7 +8,7 @@ from subprocess import check_call
from functools import partial
from calibre import __appname__, prints, guess_type
-from calibre.constants import islinux, isnetbsd, isbsd
+from calibre.constants import islinux, isnetbsd, isbsd, isdragonflybsd
from calibre.customize.ui import all_input_formats
from calibre.ptempfile import TemporaryDirectory
from calibre import CurrentDir
@@ -179,19 +179,6 @@ class PostInstall:
self.setup_completion()
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))
for args, kwargs in self.warnings:
@@ -234,10 +221,10 @@ class PostInstall:
if os.path.exists(bc):
f = os.path.join(bc, 'calibre')
else:
- if isnetbsd:
+ if isnetbsd or isdragonflybsd:
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)
@@ -357,63 +344,39 @@ class PostInstall:
with TemporaryDirectory() as tdir, CurrentDir(tdir), \
PreserveMIMEDefaults():
- render_img('mimetypes/lrf.png', 'calibre-lrf.png')
- cc('xdg-icon-resource install --noupdate --context mimetypes
--size 128 calibre-lrf.png application-lrf', shell=True)
- self.icon_resources.append(('mimetypes', 'application-lrf',
'128'))
- cc('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('mimetypes/mobi.png', 'calibre-mobi.png')
- cc('xdg-icon-resource install --noupdate --context mimetypes
--size 128 calibre-mobi.png application-x-mobipocket-ebook', shell=True)
- self.icon_resources.append(('mimetypes',
'application-x-mobipocket-ebook', '128'))
- render_img('mimetypes/tpz.png', 'calibre-tpz.png')
- cc('xdg-icon-resource install --noupdate --context mimetypes
--size 128 calibre-tpz.png application-x-topaz-ebook', shell=True)
- self.icon_resources.append(('mimetypes',
'application-x-topaz-ebook', '128'))
- render_img('mimetypes/azw2.png', 'calibre-azw2.png')
- cc('xdg-icon-resource install --noupdate --context mimetypes
--size 128 calibre-azw2.png application-x-kindle-application', shell=True)
- self.icon_resources.append(('mimetypes',
'application-x-kindle-application', '128'))
- render_img('mimetypes/azw3.png', 'calibre-azw3.png')
- cc('xdg-icon-resource install --noupdate --context mimetypes
--size 128 calibre-azw3.png application-x-mobi8-ebook', shell=True)
- self.icon_resources.append(('mimetypes',
'application-x-mobi8-ebook', '128'))
- render_img('lt.png', 'calibre-gui.png', width=256, height=256)
- cc('xdg-icon-resource install --noupdate --size 256
calibre-gui.png calibre-gui', shell=True)
- self.icon_resources.append(('apps', 'calibre-gui', '128'))
- render_img('viewer.png', 'calibre-viewer.png')
- cc('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]
- cc(' '.join(cmd), shell=True)
- self.menu_resources.append(x)
- cc(['xdg-desktop-menu', 'forceupdate'])
- f = open('calibre-mimetypes.xml', '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.xml')
- cc('xdg-mime install ./calibre-mimetypes.xml', shell=True)
except Exception:
if self.opts.fatal_errors:
raise
Home |
Main Index |
Thread Index |
Old Index