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:

NetBSD Home
NetBSD PR Database Search

(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.