NetBSD Problem Report #47492
From www@NetBSD.org Wed Jan 23 07:08:58 2013
Return-Path: <www@NetBSD.org>
Received: from mail.netbsd.org (mail.netbsd.org [149.20.53.66])
by www.NetBSD.org (Postfix) with ESMTP id 77A9963EDF6
for <gnats-bugs@gnats.NetBSD.org>; Wed, 23 Jan 2013 07:08:58 +0000 (UTC)
Message-Id: <20130123070857.1DFF163EDF6@www.NetBSD.org>
Date: Wed, 23 Jan 2013 07:08:57 +0000 (UTC)
From: kyuupichan@gmail.com
Reply-To: kyuupichan@gmail.com
To: gnats-bugs@NetBSD.org
Subject: misc/calibre doesn't install properly on DragonflyBSD
X-Send-Pr-Version: www-1.0
>Number: 47492
>Category: pkg
>Synopsis: misc/calibre doesn't install properly on DragonflyBSD
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: dfly-pkg-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Wed Jan 23 07:10:00 +0000 2013
>Last-Modified: Sat Jan 26 20:44:11 +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:/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
>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: pkg-manager->dfly-pkg-people
Responsible-Changed-By: asau@NetBSD.org
Responsible-Changed-When: Sat, 26 Jan 2013 20:44:11 +0000
Responsible-Changed-Why:
Problem on DragonFly.
>Unformatted:
(Contact us)
$NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007
The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.