diff options
author | Michael Scheidell <scheidell@FreeBSD.org> | 2012-02-17 23:22:01 +0000 |
---|---|---|
committer | Michael Scheidell <scheidell@FreeBSD.org> | 2012-02-17 23:22:01 +0000 |
commit | fadfa31db69866153b65f16123c53a827acb6b9e (patch) | |
tree | fe25e7e5fa2cd2f6c21b08c5a47010ec7eeec41d /deskutils/calibre | |
parent | - Update to 9.00 (diff) |
- Update to 0.8.38 [1]
- Force dependency on python 2.7 since other versions won't work [2]
PR: ports/164841 [1]
Submitted by: Rusty Nejdl <rnejdl@ringofsaturn.com> (maintainer) [1]
Reported by: kevin.mcaleavey@knosproject.com [2]
Approved by: gabor (mentor, implicit)
Feature safe: Yes
Notes
Notes:
svn path=/head/; revision=291646
Diffstat (limited to 'deskutils/calibre')
-rw-r--r-- | deskutils/calibre/Makefile | 4 | ||||
-rw-r--r-- | deskutils/calibre/distinfo | 4 | ||||
-rw-r--r-- | deskutils/calibre/files/patch-setup_install.py | 2 | ||||
-rw-r--r-- | deskutils/calibre/files/patch-src_calibre_devices_scanner.py | 93 | ||||
-rw-r--r-- | deskutils/calibre/files/patch-src_calibre_devices_usbms_device.py | 299 | ||||
-rw-r--r-- | deskutils/calibre/pkg-plist | 1 |
6 files changed, 6 insertions, 397 deletions
diff --git a/deskutils/calibre/Makefile b/deskutils/calibre/Makefile index 523add49a23d..ff127967d44a 100644 --- a/deskutils/calibre/Makefile +++ b/deskutils/calibre/Makefile @@ -6,7 +6,7 @@ # PORTNAME= calibre -PORTVERSION= 0.8.37 +PORTVERSION= 0.8.38 CATEGORIES= deskutils python MASTER_SITES= SF/${PORTNAME}/${PORTVERSION}/ @@ -47,7 +47,7 @@ RUN_DEPENDS= xdg-open:${PORTSDIR}/devel/xdg-utils \ OPTIONS= PODOFO "PDF support via PoDoFo library" on USE_XZ= yes -USE_PYTHON= 2.7+ +USE_PYTHON= 2.7 USE_QT_VER= 4 QT_COMPONENTS= qmake_build moc_build INSTALLS_ICONS= yes diff --git a/deskutils/calibre/distinfo b/deskutils/calibre/distinfo index 86b6d5e6166b..ffbc45f101e9 100644 --- a/deskutils/calibre/distinfo +++ b/deskutils/calibre/distinfo @@ -1,2 +1,2 @@ -SHA256 (calibre-0.8.37.tar.xz) = eedde8124f0e688d826de0013dabf2f16ff5fa0621df89f0897fd3848bc8d59d -SIZE (calibre-0.8.37.tar.xz) = 23614740 +SHA256 (calibre-0.8.38.tar.xz) = 63176dc5cb14fb2f5a2c45196904b9788106d6b0c6d9976d45b4a7fec10e3b99 +SIZE (calibre-0.8.38.tar.xz) = 23680916 diff --git a/deskutils/calibre/files/patch-setup_install.py b/deskutils/calibre/files/patch-setup_install.py index 357558e0bc2b..dd850c5188c8 100644 --- a/deskutils/calibre/files/patch-setup_install.py +++ b/deskutils/calibre/files/patch-setup_install.py @@ -5,7 +5,7 @@ HEADER = '''\ -#!/usr/bin/env python2 -+#!/usr/bin/env python ++#!/usr/bin/env python2.7 """ This is the standard runscript for all of calibre's tools. diff --git a/deskutils/calibre/files/patch-src_calibre_devices_scanner.py b/deskutils/calibre/files/patch-src_calibre_devices_scanner.py deleted file mode 100644 index 182cbda0b879..000000000000 --- a/deskutils/calibre/files/patch-src_calibre_devices_scanner.py +++ /dev/null @@ -1,93 +0,0 @@ ---- src/calibre/devices/scanner.py.orig 2011-11-11 20:22:34.000000000 -0800 -+++ src/calibre/devices/scanner.py 2011-12-30 16:32:32.000000000 -0800 -@@ -8,7 +8,7 @@ - import sys, os, re - from threading import RLock - --from calibre.constants import iswindows, isosx, plugins, islinux -+from calibre.constants import iswindows, isosx, plugins, islinux, isfreebsd - - osx_scanner = win_scanner = linux_scanner = None - -@@ -155,17 +155,80 @@ - ans.add(tuple(dev)) - return ans - -+class FreeBSDScanner(object): -+ -+ def __call__(self): -+ ans = set([]) -+ import dbus -+ devs = [] -+ -+ try: -+ bus = dbus.SystemBus() -+ manager = dbus.Interface(bus.get_object('org.freedesktop.Hal', -+ '/org/freedesktop/Hal/Manager'), 'org.freedesktop.Hal.Manager') -+ paths = manager.FindDeviceStringMatch('freebsd.driver','da') -+ for path in paths: -+ obj = bus.get_object('org.freedesktop.Hal', path) -+ objif = dbus.Interface(obj, 'org.freedesktop.Hal.Device') -+ devif = objif -+ parentdriver = None -+ while parentdriver != 'umass': -+ try: -+ obj = bus.get_object('org.freedesktop.Hal', -+ objif.GetProperty('info.parent')) -+ objif = dbus.Interface(obj, 'org.freedesktop.Hal.Device') -+ try: -+ parentdriver = objif.GetProperty('freebsd.driver') -+ except dbus.exceptions.DBusException, e: -+ continue -+ except dbus.exceptions.DBusException, e: -+ break -+ if parentdriver != 'umass': -+ continue -+ dev = [] -+ try: -+ dev.append(objif.GetProperty('usb.vendor_id')) -+ dev.append(objif.GetProperty('usb.product_id')) -+ dev.append(objif.GetProperty('usb.device_revision_bcd')) -+ except dbus.exceptions.DBusException, e: -+ continue -+ try: -+ dev.append(objif.GetProperty('info.vendor')) -+ except: -+ dev.append('') -+ try: -+ dev.append(objif.GetProperty('info.product')) -+ except: -+ dev.append('') -+ try: -+ dev.append(objif.GetProperty('usb.serial')) -+ except: -+ dev.append('') -+ dev.append(path) -+ ans.add(tuple(dev)) -+ except dbus.exceptions.DBusException, e: -+ print >>sys.stderr, "Execution failed:", e -+ return ans -+ -+ -+ - linux_scanner = None - - if islinux: - linux_scanner = LinuxScanner() - -+freebsd_scanner = None -+ -+if isfreebsd: -+ freebsd_scanner = FreeBSDScanner() -+ -+ - class DeviceScanner(object): - - def __init__(self, *args): - if isosx and osx_scanner is None: - raise RuntimeError('The Python extension usbobserver must be available on OS X.') -- self.scanner = win_scanner if iswindows else osx_scanner if isosx else linux_scanner -+ self.scanner = win_scanner if iswindows else osx_scanner if isosx else freebsd_scanner if isfreebsd else linux_scanner - self.devices = [] - - def scan(self): diff --git a/deskutils/calibre/files/patch-src_calibre_devices_usbms_device.py b/deskutils/calibre/files/patch-src_calibre_devices_usbms_device.py deleted file mode 100644 index bb342c395203..000000000000 --- a/deskutils/calibre/files/patch-src_calibre_devices_usbms_device.py +++ /dev/null @@ -1,299 +0,0 @@ ---- src/calibre/devices/usbms/device.py.orig 2011-12-29 20:00:38.000000000 -0800 -+++ src/calibre/devices/usbms/device.py 2012-01-01 14:09:00.000000000 -0800 -@@ -697,19 +697,21 @@ - self._card_a_prefix = self._card_b_prefix - self._card_b_prefix = None - -+ - # ------------------------------------------------------ - # - # open for FreeBSD --# find the device node or nodes that match the S/N we already have from the scanner --# and attempt to mount each one --# 1. get list of disk devices from sysctl --# 2. compare that list with the one from camcontrol --# 3. and see if it has a matching s/n --# 6. find any partitions/slices associated with each node --# 7. attempt to mount, using calibre-mount-helper, each one --# 8. when finished, we have a list of mount points and associated device nodes -+# find the device node or nodes that match the S/N we already have from the scanner -+# and attempt to mount each one -+# 1. get list of devices in /dev with matching s/n etc. -+# 2. get list of volumes associated with each -+# 3. attempt to mount each one using Hal -+# 4. when finished, we have a list of mount points and associated dbus nodes - # - def open_freebsd(self): -+ import dbus -+ # There should be some way to access the -v arg... -+ verbose = False - - # this gives us access to the S/N, etc. of the reader that the scanner has found - # and the match routines for some of that data, like s/n, vendor ID, etc. -@@ -718,129 +720,149 @@ - if not d.serial: - raise DeviceError("Device has no S/N. Can't continue") - return False -- -- devs={} -- di=0 -- ndevs=4 # number of possible devices per reader (main, carda, cardb, launcher) -- -- #get list of disk devices -- p=subprocess.Popen(["sysctl", "kern.disks"], stdout=subprocess.PIPE) -- kdsks=subprocess.Popen(["sed", "s/kern.disks: //"], stdin=p.stdout, stdout=subprocess.PIPE).communicate()[0] -- p.stdout.close() -- #print kdsks -- for dvc in kdsks.split(): -- # for each one that's also in the list of cam devices ... -- p=subprocess.Popen(["camcontrol", "devlist"], stdout=subprocess.PIPE) -- devmatch=subprocess.Popen(["grep", dvc], stdin=p.stdout, stdout=subprocess.PIPE).communicate()[0] -- p.stdout.close() -- if devmatch: -- #print "Checking ", devmatch -- # ... see if we can get a S/N from the actual device node -- sn=subprocess.Popen(["camcontrol", "inquiry", dvc, "-S"], stdout=subprocess.PIPE).communicate()[0] -- sn=sn[0:-1] # drop the trailing newline -- #print "S/N = ", sn -- if sn and d.match_serial(sn): -- # we have a matching s/n, record this device node -- #print "match found: ", dvc -- devs[di]=dvc -- di += 1 -- -- # sort the list of devices -- for i in range(1,ndevs+1): -- for j in reversed(range(1,i)): -- if devs[j-1] > devs[j]: -- x=devs[j-1] -- devs[j-1]=devs[j] -- devs[j]=x -- #print devs -- -- # now we need to see if any of these have slices/partitions -+ -+ vols=[] -+ -+ bus = dbus.SystemBus() -+ manager = dbus.Interface(bus.get_object('org.freedesktop.Hal', -+ '/org/freedesktop/Hal/Manager'), 'org.freedesktop.Hal.Manager') -+ paths = manager.FindDeviceStringMatch('usb.serial',d.serial) -+ for path in paths: -+ objif = dbus.Interface(bus.get_object('org.freedesktop.Hal', path), 'org.freedesktop.Hal.Device') -+ # Extra paranoia... -+ try: -+ if d.idVendor == objif.GetProperty('usb.vendor_id') and \ -+ d.idProduct == objif.GetProperty('usb.product_id') and \ -+ d.manufacturer == objif.GetProperty('usb.vendor') and \ -+ d.product == objif.GetProperty('usb.product') and \ -+ d.serial == objif.GetProperty('usb.serial'): -+ dpaths = manager.FindDeviceStringMatch('storage.originating_device', path) -+ for dpath in dpaths: -+ devif = dbus.Interface(bus.get_object('org.freedesktop.Hal', dpath), 'org.freedesktop.Hal.Device') -+ try: -+ vpaths = manager.FindDeviceStringMatch('block.storage_device', dpath) -+ for vpath in vpaths: -+ try: -+ vdevif = dbus.Interface(bus.get_object('org.freedesktop.Hal', vpath), 'org.freedesktop.Hal.Device') -+ if not vdevif.GetProperty('block.is_volume'): -+ continue -+ if vdevif.GetProperty('volume.fsusage') != 'filesystem': -+ continue -+ volif = dbus.Interface(bus.get_object('org.freedesktop.Hal', vpath), 'org.freedesktop.Hal.Device.Volume') -+ pdevif = dbus.Interface(bus.get_object('org.freedesktop.Hal', vdevif.GetProperty('info.parent')), 'org.freedesktop.Hal.Device') -+ vol = {'node': pdevif.GetProperty('block.device'), -+ 'dev': vdevif, -+ 'vol': volif, -+ 'label': vdevif.GetProperty('volume.label')} -+ vols.append(vol) -+ except dbus.exceptions.DBusException, e: -+ print e -+ continue -+ except dbus.exceptions.DBusException, e: -+ print e -+ continue -+ except dbus.exceptions.DBusException, e: -+ continue -+ -+ def ocmp(x,y): -+ if x['node'] < y['node']: -+ return -1 -+ if x['node'] > y['node']: -+ return 1 -+ return 0 -+ -+ vols.sort(cmp=ocmp) -+ -+ if verbose: -+ print "FBSD: ", vols -+ - mtd=0 -- label="READER" # could use something more unique, like S/N or productID... -- cmd = '/usr/local/bin/calibre-mount-helper' -- cmd = [cmd, 'mount'] -- for i in range(0,ndevs): -- cmd2="ls /dev/"+devs[i]+"*" -- p=subprocess.Popen(cmd2, shell=True, stdout=subprocess.PIPE) -- devs[i]=subprocess.Popen(["cut", "-d", "/", "-f" "3"], stdin=p.stdout, stdout=subprocess.PIPE).communicate()[0] -- p.stdout.close() -- -- # try all the nodes to see what we can mount -- for dev in devs[i].split(): -- mp='/media/'+label+'-'+dev -- mmp = mp -- if mmp.endswith('/'): -- mmp = mmp[:-1] -- #print "trying ", dev, "on", mp -- try: -- p = subprocess.Popen(cmd + ["/dev/"+dev, mmp]) -- except OSError: -- raise DeviceError(_('Could not find mount helper: %s.')%cmd[0]) -- while p.poll() is None: -- time.sleep(0.1) -- -- if p.returncode == 0: -- #print " mounted", dev -- if i == 0: -- self._main_prefix = mp -- self._main_dev = "/dev/"+dev -- #print "main = ", self._main_dev, self._main_prefix -- if i == 1: -- self._card_a_prefix = mp -- self._card_a_dev = "/dev/"+dev -- #print "card a = ", self._card_a_dev, self._card_a_prefix -- if i == 2: -- self._card_b_prefix = mp -- self._card_b_dev = "/dev/"+dev -- #print "card b = ", self._card_b_dev, self._card_b_prefix - -- mtd += 1 -- break -+ for vol in vols: -+ mp = '' -+ if vol['dev'].GetProperty('volume.is_mounted'): -+ mp = vol['dev'].GetProperty('volume.mount_point') -+ else: -+ if verbose: -+ print "FBSD: trying ", vol['label'], "on", 'Calibre-'+labels[i] -+ try: -+ vol['vol'].Mount('Calibre-'+vol['label'], -+ vol['dev'].GetProperty('volume.fstype'), []) -+ loops = 0 -+ while not vol['dev'].GetProperty('volume.is_mounted'): -+ time.sleep(1) -+ loops += 1 -+ if loops > 100: -+ print "ERROR: Timeout waiting for mount to complete" -+ continue -+ mp = vol['dev'].GetProperty('volume.mount_point') -+ except dbus.exceptions.DBusException, e: -+ print "Failed to mount ", e -+ continue -+ -+ # Mount Point becomes Mount Path -+ mp += '/' -+ -+ if verbose: -+ print "FBSD: mounted", vol['label'], "on", mp -+ if mtd == 0: -+ self._main_prefix = mp -+ self._main_vol = vol['vol'] -+ if verbose: -+ print "FBSD: main = ", self._main_prefix -+ if mtd == 1: -+ self._card_a_prefix = mp -+ self._card_a_vol = vol['vol'] -+ if verbose: -+ print "FBSD: card a = ", self._card_a_prefix -+ if mtd == 2: -+ self._card_b_prefix = mp -+ self._card_b_vol = vol['vol'] -+ if verbose: -+ print "FBSD: card b = ", self._card_b_prefix -+ # Note that mtd is used as a bool... not incrementing is fine. -+ break -+ mtd += 1 - - if mtd > 0: - return True -- else : -- return False -+ raise DeviceError(_('Unable to mount the device')) -+ - # - # ------------------------------------------------------ - # --# this one is pretty simple: --# just umount each of the previously --# mounted filesystems, using the mount helper -+# this one is pretty simple: -+# just umount each of the previously -+# mounted filesystems, using the stored volume object - # - def eject_freebsd(self): -- cmd = '/usr/local/bin/calibre-mount-helper' -- cmd = [cmd, 'eject'] -+ import dbus -+ # There should be some way to access the -v arg... -+ verbose = False - - if self._main_prefix: -- #print "umount main:", cmd, self._main_dev, self._main_prefix -+ if verbose: -+ print "FBSD: umount main:", self._main_prefix - try: -- p = subprocess.Popen(cmd + [self._main_dev, self._main_prefix]) -- except OSError: -- raise DeviceError( -- _('Could not find mount helper: %s.')%cmd[0]) -- while p.poll() is None: -- time.sleep(0.1) -+ self._main_vol.Unmount([]) -+ except dbus.exceptions.DBusException, e: -+ print 'Unable to eject ', e - - if self._card_a_prefix: -- #print "umount card a:", cmd, self._card_a_dev, self._card_a_prefix -+ if verbose: -+ print "FBSD: umount card a:", self._card_a_prefix - try: -- p = subprocess.Popen(cmd + [self._card_a_dev, self._card_a_prefix]) -- except OSError: -- raise DeviceError( -- _('Could not find mount helper: %s.')%cmd[0]) -- while p.poll() is None: -- time.sleep(0.1) -+ self._card_a_vol.Unmount([]) -+ except dbus.exceptions.DBusException, e: -+ print 'Unable to eject ', e - - if self._card_b_prefix: -- #print "umount card b:", cmd, self._card_b_dev, self._card_b_prefix -+ if verbose: -+ print "FBSD: umount card b:", self._card_b_prefix - try: -- p = subprocess.Popen(cmd + [self._card_b_dev, self._card_b_prefix]) -- except OSError: -- raise DeviceError( -- _('Could not find mount helper: %s.')%cmd[0]) -- while p.poll() is None: -- time.sleep(0.1) -+ self._card_b_vol.Unmount([]) -+ except dbus.exceptions.DBusException, e: -+ print 'Unable to eject ', e - - self._main_prefix = None - self._card_a_prefix = None -@@ -859,11 +881,10 @@ - time.sleep(7) - self.open_linux() - if isfreebsd: -- self._main_dev = self._card_a_dev = self._card_b_dev = None -+ self._main_vol = self._card_a_vol = self._card_b_vol = None - try: - self.open_freebsd() - except DeviceError: -- subprocess.Popen(["camcontrol", "rescan", "all"]) - time.sleep(2) - self.open_freebsd() - if iswindows: diff --git a/deskutils/calibre/pkg-plist b/deskutils/calibre/pkg-plist index b1254d8fd514..06b781591b53 100644 --- a/deskutils/calibre/pkg-plist +++ b/deskutils/calibre/pkg-plist @@ -503,6 +503,7 @@ lib/calibre/calibre/gui2/add.py lib/calibre/calibre/gui2/add_wizard/__init__.py lib/calibre/calibre/gui2/add_wizard/scan_ui.py lib/calibre/calibre/gui2/add_wizard/welcome_ui.py +lib/calibre/calibre/gui2/auto_add.py lib/calibre/calibre/gui2/bars.py lib/calibre/calibre/gui2/book_details.py lib/calibre/calibre/gui2/catalog/__init__.py |