mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-21 04:06:46 +00:00
Update to 0.8.9
PR: ports/158818 Submitted by: Rusty Nejdl <rnejdl@ringofsaturn.com> (maintainer, followup) Approved by: bapt (mentor)
This commit is contained in:
parent
c2d2bf4851
commit
adb14984d7
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=277801
@ -6,8 +6,7 @@
|
||||
#
|
||||
|
||||
PORTNAME= calibre
|
||||
PORTVERSION= 0.8.6
|
||||
PORTREVISION= 1
|
||||
PORTVERSION= 0.8.9
|
||||
CATEGORIES= deskutils python
|
||||
MASTER_SITES= SF/${PORTNAME}/${PORTVERSION}/
|
||||
|
||||
@ -19,7 +18,7 @@ LIB_DEPENDS= MagickWand.4:${PORTSDIR}/graphics/ImageMagick \
|
||||
poppler-qt4.3:${PORTSDIR}/graphics/poppler-qt4 \
|
||||
wmflite:${PORTSDIR}/graphics/libwmf \
|
||||
chm.0:${PORTSDIR}/misc/chmlib \
|
||||
icudata.46:${PORTSDIR}/devel/icu
|
||||
icudata.48:${PORTSDIR}/devel/icu
|
||||
BUILD_DEPENDS= py*-setuptools>=0:${PORTSDIR}/devel/py-setuptools \
|
||||
py*-sip>=0:${PORTSDIR}/devel/py-sip \
|
||||
py*-qt4-core>=0:${PORTSDIR}/devel/py-qt4-core \
|
||||
|
@ -1,2 +1,2 @@
|
||||
SHA256 (calibre-0.8.6.tar.gz) = 811a967fa44b59a34d313eda984c19f575cf2c5fe774170e08b4c536e9e22b72
|
||||
SIZE (calibre-0.8.6.tar.gz) = 28494397
|
||||
SHA256 (calibre-0.8.9.tar.gz) = d46709e2a81679dd0678b36696f8ce96aff112aebff494478c1674ec76612f14
|
||||
SIZE (calibre-0.8.9.tar.gz) = 29084120
|
||||
|
@ -1,192 +1,187 @@
|
||||
--- src/calibre/devices/usbms/device.py.orig 2011-06-19 09:41:50.000000000 -0500
|
||||
+++ src/calibre/devices/usbms/device.py 2011-06-19 08:20:32.000000000 -0500
|
||||
@@ -17,7 +17,7 @@
|
||||
from calibre.devices.interface import DevicePlugin
|
||||
from calibre.devices.errors import DeviceError, FreeSpaceError
|
||||
from calibre.devices.usbms.deviceconfig import DeviceConfig
|
||||
-from calibre.constants import iswindows, islinux, isosx, plugins
|
||||
+from calibre.constants import iswindows, islinux, isosx, isfreebsd, plugins
|
||||
from calibre.utils.filenames import ascii_filename as sanitize, shorten_components_to
|
||||
|
||||
if isosx:
|
||||
@@ -698,7 +698,152 @@
|
||||
self._card_a_prefix = self._card_b_prefix
|
||||
self._card_b_prefix = None
|
||||
--- src/calibre/devices/usbms/device.py.orig 2011-07-08 12:29:30.000000000 -0500
|
||||
+++ src/calibre/devices/usbms/device.py 2011-07-12 20:02:45.000000000 -0500
|
||||
@@ -704,14 +704,12 @@
|
||||
# ------------------------------------------------------
|
||||
#
|
||||
# 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 da devices in /dev
|
||||
+# 2. find the ones with matching s/n
|
||||
+# 3. attempt to mount each one using calibre-mount-helper
|
||||
+# 4. when finished, we have a list of mount points and associated device nodes
|
||||
#
|
||||
def open_freebsd(self):
|
||||
|
||||
@@ -722,81 +720,68 @@
|
||||
if not d.serial:
|
||||
raise DeviceError("Device has no S/N. Can't continue")
|
||||
return False
|
||||
-
|
||||
+# ------------------------------------------------------
|
||||
+#
|
||||
+# 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
|
||||
+#
|
||||
+ def open_freebsd(self):
|
||||
+
|
||||
+ # 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.
|
||||
+ d=self.detected_device
|
||||
+
|
||||
+ 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
|
||||
+ 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
|
||||
+ #print "trying ", dev, "on", mp
|
||||
+ try:
|
||||
+ p = subprocess.Popen(cmd + ["/dev/"+dev, mp])
|
||||
+ 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
|
||||
+
|
||||
+ if mtd > 0:
|
||||
+ return True
|
||||
+ else :
|
||||
+ return False
|
||||
+#
|
||||
+# ------------------------------------------------------
|
||||
+#
|
||||
+# this one is pretty simple:
|
||||
+# just umount each of the previously
|
||||
+# mounted filesystems, using the mount helper
|
||||
+#
|
||||
+ def eject_freebsd(self):
|
||||
+ cmd = '/usr/local/bin/calibre-mount-helper'
|
||||
+ cmd = [cmd, 'eject']
|
||||
+
|
||||
+ if self._main_prefix:
|
||||
+ #print "umount main:", cmd, self._main_dev, 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)
|
||||
+
|
||||
+ if self._card_a_prefix:
|
||||
+ #print "umount card a:", cmd, self._card_a_dev, 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)
|
||||
+
|
||||
+ if self._card_b_prefix:
|
||||
+ #print "umount card b:", cmd, self._card_b_dev, 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._main_prefix = None
|
||||
+ self._card_a_prefix = None
|
||||
+ self._card_b_prefix = None
|
||||
+# ------------------------------------------------------
|
||||
+
|
||||
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
|
||||
+
|
||||
+ # delay for user to set device if necessary
|
||||
+ time.sleep(5)
|
||||
|
||||
def open(self, library_uuid):
|
||||
time.sleep(5)
|
||||
@@ -709,6 +854,14 @@
|
||||
except DeviceError:
|
||||
time.sleep(7)
|
||||
self.open_linux()
|
||||
+ if isfreebsd:
|
||||
+ self._main_dev = self._card_a_dev = self._card_b_dev = None
|
||||
+ # get list of disk devices and
|
||||
+ # see if we can get a S/N from the actual device node
|
||||
+ #dsks=['/dev/da1', '/dev/da3s1']
|
||||
+ dsks=glob.glob('/dev/da*')
|
||||
+ dsks.sort()
|
||||
+ for ndvc in dsks:
|
||||
+ dvc = ndvc.replace('/dev/', '')
|
||||
+ print "FBSD: Checking ", dvc
|
||||
+ #sn="08004610011F550C"
|
||||
+ try:
|
||||
+ self.open_freebsd()
|
||||
+ except DeviceError:
|
||||
+ subprocess.Popen(["camcontrol", "rescan", "all"])
|
||||
+ time.sleep(2)
|
||||
+ self.open_freebsd()
|
||||
if iswindows:
|
||||
try:
|
||||
self.open_windows()
|
||||
@@ -797,6 +950,11 @@
|
||||
self.eject_linux()
|
||||
except:
|
||||
pass
|
||||
+ if isfreebsd:
|
||||
+ try:
|
||||
+ self.eject_freebsd()
|
||||
+ sn=subprocess.Popen("/sbin/camcontrol inquiry "+dvc+" -S", shell=True, stdout=subprocess.PIPE).communicate()[0]
|
||||
+ except:
|
||||
+ pass
|
||||
if iswindows:
|
||||
+ print "FBSD: inquiry failed:"
|
||||
+ sn=sn[0:-1] # drop the trailing newline
|
||||
+ print "FBSD: S/N = ", sn
|
||||
+ if sn and d.match_serial(sn):
|
||||
+ # we have a matching s/n, record this device node
|
||||
+ print "FBSD: match found: ", dvc
|
||||
+ devs[di]=dvc
|
||||
+ di += 1
|
||||
+
|
||||
+ print "FBSD: ", devs
|
||||
+
|
||||
# now we need to see if any of these have slices/partitions
|
||||
mtd=0
|
||||
- label="READER" # could use something more unique, like S/N or productID...
|
||||
+ 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()
|
||||
-
|
||||
+ for i in range(0,di):
|
||||
# try all the nodes to see what we can mount
|
||||
for dev in devs[i].split():
|
||||
- mp='/media/'+label+'-'+dev
|
||||
- #print "trying ", dev, "on", mp
|
||||
+ mp='/mnt/'+label+'-'+dev+'/'
|
||||
+ print "FBSD: trying ", dev, "on", mp
|
||||
try:
|
||||
- p = subprocess.Popen(cmd + ["/dev/"+dev, mp])
|
||||
- except OSError:
|
||||
- raise DeviceError(_('Could not find mount helper: %s.')%cmd[0])
|
||||
+ p = subprocess.Popen([cmd, "mount", "/dev/"+dev, mp])
|
||||
+ except:
|
||||
+ print "FBSD: mount failed:"
|
||||
while p.poll() is None:
|
||||
time.sleep(0.1)
|
||||
-
|
||||
+
|
||||
if p.returncode == 0:
|
||||
- #print " mounted", dev
|
||||
- if i == 0:
|
||||
+ print "FBSD: mounted", dev, "on", mp
|
||||
+ if mtd == 0:
|
||||
self._main_prefix = mp
|
||||
self._main_dev = "/dev/"+dev
|
||||
- #print "main = ", self._main_dev, self._main_prefix
|
||||
- if i == 1:
|
||||
+ print "FBSD: main = ", self._main_dev, self._main_prefix
|
||||
+ if mtd == 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:
|
||||
+ print "FBSD: card a = ", self._card_a_dev, self._card_a_prefix
|
||||
+ if mtd == 2:
|
||||
self._card_b_prefix = mp
|
||||
self._card_b_dev = "/dev/"+dev
|
||||
- #print "card b = ", self._card_b_dev, self._card_b_prefix
|
||||
-
|
||||
+ print "FBSD: card b = ", self._card_b_dev, self._card_b_prefix
|
||||
+ break
|
||||
mtd += 1
|
||||
- break
|
||||
|
||||
if mtd > 0:
|
||||
return True
|
||||
@@ -805,16 +790,16 @@
|
||||
#
|
||||
# ------------------------------------------------------
|
||||
#
|
||||
-# 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 mount helper
|
||||
#
|
||||
def eject_freebsd(self):
|
||||
cmd = '/usr/local/bin/calibre-mount-helper'
|
||||
cmd = [cmd, 'eject']
|
||||
|
||||
if self._main_prefix:
|
||||
- #print "umount main:", cmd, self._main_dev, self._main_prefix
|
||||
+ print "FBSD: umount main:", cmd, self._main_dev, self._main_prefix
|
||||
try:
|
||||
self.eject_windows()
|
||||
p = subprocess.Popen(cmd + [self._main_dev, self._main_prefix])
|
||||
except OSError:
|
||||
@@ -824,7 +809,7 @@
|
||||
time.sleep(0.1)
|
||||
|
||||
if self._card_a_prefix:
|
||||
- #print "umount card a:", cmd, self._card_a_dev, self._card_a_prefix
|
||||
+ print "FBSD: umount card a:", cmd, self._card_a_dev, self._card_a_prefix
|
||||
try:
|
||||
p = subprocess.Popen(cmd + [self._card_a_dev, self._card_a_prefix])
|
||||
except OSError:
|
||||
@@ -834,7 +819,7 @@
|
||||
time.sleep(0.1)
|
||||
|
||||
if self._card_b_prefix:
|
||||
- #print "umount card b:", cmd, self._card_b_dev, self._card_b_prefix
|
||||
+ print "FBSD: umount card b:", cmd, self._card_b_dev, self._card_b_prefix
|
||||
try:
|
||||
p = subprocess.Popen(cmd + [self._card_b_dev, self._card_b_prefix])
|
||||
except OSError:
|
||||
|
@ -1,52 +0,0 @@
|
||||
--- src/calibre/devices/linux_mount_helper.c.orig 2011-06-19 09:35:30.000000000 -0500
|
||||
+++ src/calibre/devices/linux_mount_helper.c 2011-06-14 16:48:50.000000000 -0500
|
||||
@@ -65,14 +65,24 @@
|
||||
snprintf(uids, 100, "%d", getuid());
|
||||
snprintf(gids, 100, "%d", getgid());
|
||||
#else
|
||||
+#ifdef __FreeBSD__
|
||||
+ snprintf(options, 1000, "rw,noexec,nosuid,sync,-u=%d,-g=%d",getuid(),getgid());
|
||||
+#else
|
||||
snprintf(options, 1000, "rw,noexec,nosuid,sync,nodev,quiet,shortname=mixed,uid=%d,gid=%d,umask=077,fmask=0177,dmask=0077,utf8,iocharset=iso8859-1", getuid(), getgid());
|
||||
#endif
|
||||
+#endif
|
||||
+
|
||||
ensure_root();
|
||||
+
|
||||
#ifdef __NetBSD__
|
||||
execlp("mount_msdos", "mount_msdos", "-u", uids, "-g", gids, "-o", options, dev, mp, NULL);
|
||||
#else
|
||||
+#ifdef __FreeBSD__
|
||||
+ execlp("mount", "mount", "-t", "msdosfs", "-o", options, dev, mp, NULL);
|
||||
+#else
|
||||
execlp("mount", "mount", "-t", "auto", "-o", options, dev, mp, NULL);
|
||||
#endif
|
||||
+#endif
|
||||
errsv = errno;
|
||||
fprintf(stderr, "Failed to mount with error: %s\n", strerror(errsv));
|
||||
return EXIT_FAILURE;
|
||||
@@ -92,8 +102,12 @@
|
||||
#ifdef __NetBSD__
|
||||
execlp("eject", "eject", dev, NULL);
|
||||
#else
|
||||
+#ifdef __FreeBSD__
|
||||
+ execlp("umount", "umount", dev, NULL);
|
||||
+#else
|
||||
execlp("eject", "eject", "-s", dev, NULL);
|
||||
#endif
|
||||
+#endif
|
||||
/* execlp failed */
|
||||
errsv = errno;
|
||||
fprintf(stderr, "Failed to eject with error: %s\n", strerror(errsv));
|
||||
@@ -121,7 +135,11 @@
|
||||
|
||||
if (pid == 0) { /* Child process */
|
||||
ensure_root();
|
||||
+#ifdef __FreeBSD__
|
||||
+ execlp("umount", "umount", mp, NULL);
|
||||
+#else
|
||||
execlp("umount", "umount", "-l", mp, NULL);
|
||||
+#endif
|
||||
/* execlp failed */
|
||||
errsv = errno;
|
||||
fprintf(stderr, "Failed to umount with error: %s\n", strerror(errsv));
|
@ -111,6 +111,13 @@ lib/calibre/calibre/devices/usbms/device.py
|
||||
lib/calibre/calibre/devices/usbms/deviceconfig.py
|
||||
lib/calibre/calibre/devices/usbms/driver.py
|
||||
lib/calibre/calibre/devices/usbobserver/test.py
|
||||
lib/calibre/calibre/db/__init__.py
|
||||
lib/calibre/calibre/db/backend.py
|
||||
lib/calibre/calibre/db/locking.py
|
||||
lib/calibre/calibre/db/schema_upgrades.py
|
||||
lib/calibre/calibre/db/errors.py
|
||||
lib/calibre/calibre/db/tables.py
|
||||
lib/calibre/calibre/db/cache.py
|
||||
lib/calibre/calibre/ebooks/BeautifulSoup.py
|
||||
lib/calibre/calibre/ebooks/__init__.py
|
||||
lib/calibre/calibre/ebooks/chardet/__init__.py
|
||||
@ -181,6 +188,7 @@ lib/calibre/calibre/ebooks/html/__init__.py
|
||||
lib/calibre/calibre/ebooks/html/input.py
|
||||
lib/calibre/calibre/ebooks/html/meta.py
|
||||
lib/calibre/calibre/ebooks/html/output.py
|
||||
lib/calibre/calibre/ebooks/html/to_zip.py
|
||||
lib/calibre/calibre/ebooks/htmlz/__init__.py
|
||||
lib/calibre/calibre/ebooks/htmlz/oeb2html.py
|
||||
lib/calibre/calibre/ebooks/htmlz/output.py
|
||||
@ -469,6 +477,7 @@ lib/calibre/calibre/gui2/actions/preferences.py
|
||||
lib/calibre/calibre/gui2/actions/restart.py
|
||||
lib/calibre/calibre/gui2/actions/save_to_disk.py
|
||||
lib/calibre/calibre/gui2/actions/show_book_details.py
|
||||
lib/calibre/calibre/gui2/actions/show_quickview.py
|
||||
lib/calibre/calibre/gui2/actions/similar_books.py
|
||||
lib/calibre/calibre/gui2/actions/store.py
|
||||
lib/calibre/calibre/gui2/actions/tweak_epub.py
|
||||
@ -598,6 +607,8 @@ lib/calibre/calibre/gui2/dialogs/password_ui.py
|
||||
lib/calibre/calibre/gui2/dialogs/plugin_updater.py
|
||||
lib/calibre/calibre/gui2/dialogs/progress.py
|
||||
lib/calibre/calibre/gui2/dialogs/progress_ui.py
|
||||
lib/calibre/calibre/gui2/dialogs/quickview_ui.py
|
||||
lib/calibre/calibre/gui2/dialogs/quickview.py
|
||||
lib/calibre/calibre/gui2/dialogs/restore_library.py
|
||||
lib/calibre/calibre/gui2/dialogs/saved_search_editor.py
|
||||
lib/calibre/calibre/gui2/dialogs/saved_search_editor_ui.py
|
||||
@ -698,48 +709,52 @@ lib/calibre/calibre/gui2/search_box.py
|
||||
lib/calibre/calibre/gui2/search_restriction_mixin.py
|
||||
lib/calibre/calibre/gui2/shortcuts.py
|
||||
lib/calibre/calibre/gui2/shortcuts_ui.py
|
||||
lib/calibre/calibre/gui2/store/beam_ebooks_de_plugin.py
|
||||
lib/calibre/calibre/gui2/store/gandalf_plugin.py
|
||||
lib/calibre/calibre/gui2/store/pragmatic_bookshelf_plugin.py
|
||||
lib/calibre/calibre/gui2/store/nexto_plugin.py
|
||||
lib/calibre/calibre/gui2/store/whsmith_uk_plugin.py
|
||||
lib/calibre/calibre/gui2/store/zixo_plugin.py
|
||||
lib/calibre/calibre/gui2/store/epubbud_plugin.py
|
||||
lib/calibre/calibre/gui2/store/oreilly_plugin.py
|
||||
lib/calibre/calibre/gui2/store/woblink_plugin.py
|
||||
lib/calibre/calibre/gui2/store/archive_org_plugin.py
|
||||
lib/calibre/calibre/gui2/store/weightless_books_plugin.py
|
||||
lib/calibre/calibre/gui2/store/epubbuy_de_plugin.py
|
||||
lib/calibre/calibre/gui2/store/wizards_tower_books_plugin.py
|
||||
lib/calibre/calibre/gui2/store/bewrite_plugin.py
|
||||
lib/calibre/calibre/gui2/store/baen_webscription_plugin.py
|
||||
lib/calibre/calibre/gui2/store/search_ui.py
|
||||
lib/calibre/calibre/gui2/store/__init__.py
|
||||
lib/calibre/calibre/gui2/store/eharlequin_plugin.py
|
||||
lib/calibre/calibre/gui2/store/waterstones_uk_plugin.py
|
||||
lib/calibre/calibre/gui2/store/ebooks_com_plugin.py
|
||||
lib/calibre/calibre/gui2/store/gutenberg_plugin.py
|
||||
lib/calibre/calibre/gui2/store/amazon_de_plugin.py
|
||||
lib/calibre/calibre/gui2/store/mobileread_store_dialog_ui.py
|
||||
lib/calibre/calibre/gui2/store/bn_plugin.py
|
||||
lib/calibre/calibre/gui2/store/web_control.py
|
||||
lib/calibre/calibre/gui2/store/web_store_dialog_ui.py
|
||||
lib/calibre/calibre/gui2/store/feedbooks_plugin.py
|
||||
lib/calibre/calibre/gui2/store/search_result.py
|
||||
lib/calibre/calibre/gui2/store/basic_config.py
|
||||
lib/calibre/calibre/gui2/store/kobo_plugin.py
|
||||
lib/calibre/calibre/gui2/store/smashwords_plugin.py
|
||||
lib/calibre/calibre/gui2/store/open_library_plugin.py
|
||||
lib/calibre/calibre/gui2/store/opensearch_store.py
|
||||
lib/calibre/calibre/gui2/store/web_store_dialog.py
|
||||
lib/calibre/calibre/gui2/store/foyles_uk_plugin.py
|
||||
lib/calibre/calibre/gui2/store/diesel_ebooks_plugin.py
|
||||
lib/calibre/calibre/gui2/store/manybooks_plugin.py
|
||||
lib/calibre/calibre/gui2/store/amazon_plugin.py
|
||||
lib/calibre/calibre/gui2/store/amazon_uk_plugin.py
|
||||
lib/calibre/calibre/gui2/store/basic_config_widget_ui.py
|
||||
lib/calibre/calibre/gui2/store/legimi_plugin.py
|
||||
lib/calibre/calibre/gui2/store/ebookshoppe_uk_plugin.py
|
||||
lib/calibre/calibre/gui2/store/virtualo_plugin.py
|
||||
lib/calibre/calibre/gui2/store/stores/beam_ebooks_de_plugin.py
|
||||
lib/calibre/calibre/gui2/store/stores/gandalf_plugin.py
|
||||
lib/calibre/calibre/gui2/store/stores/pragmatic_bookshelf_plugin.py
|
||||
lib/calibre/calibre/gui2/store/stores/nexto_plugin.py
|
||||
lib/calibre/calibre/gui2/store/stores/whsmith_uk_plugin.py
|
||||
lib/calibre/calibre/gui2/store/stores/zixo_plugin.py
|
||||
lib/calibre/calibre/gui2/store/stores/epubbud_plugin.py
|
||||
lib/calibre/calibre/gui2/store/stores/oreilly_plugin.py
|
||||
lib/calibre/calibre/gui2/store/stores/woblink_plugin.py
|
||||
lib/calibre/calibre/gui2/store/stores/archive_org_plugin.py
|
||||
lib/calibre/calibre/gui2/store/stores/weightless_books_plugin.py
|
||||
lib/calibre/calibre/gui2/store/stores/epubbuy_de_plugin.py
|
||||
lib/calibre/calibre/gui2/store/stores/wizards_tower_books_plugin.py
|
||||
lib/calibre/calibre/gui2/store/stores/bewrite_plugin.py
|
||||
lib/calibre/calibre/gui2/store/stores/baen_webscription_plugin.py
|
||||
lib/calibre/calibre/gui2/store/stores/__init__.py
|
||||
lib/calibre/calibre/gui2/store/stores/eharlequin_plugin.py
|
||||
lib/calibre/calibre/gui2/store/stores/waterstones_uk_plugin.py
|
||||
lib/calibre/calibre/gui2/store/stores/ebooks_com_plugin.py
|
||||
lib/calibre/calibre/gui2/store/stores/gutenberg_plugin.py
|
||||
lib/calibre/calibre/gui2/store/stores/amazon_de_plugin.py
|
||||
lib/calibre/calibre/gui2/store/stores/bn_plugin.py
|
||||
lib/calibre/calibre/gui2/store/stores/feedbooks_plugin.py
|
||||
lib/calibre/calibre/gui2/store/stores/kobo_plugin.py
|
||||
lib/calibre/calibre/gui2/store/stores/smashwords_plugin.py
|
||||
lib/calibre/calibre/gui2/store/stores/foyles_uk_plugin.py
|
||||
lib/calibre/calibre/gui2/store/stores/diesel_ebooks_plugin.py
|
||||
lib/calibre/calibre/gui2/store/stores/manybooks_plugin.py
|
||||
lib/calibre/calibre/gui2/store/stores/amazon_plugin.py
|
||||
lib/calibre/calibre/gui2/store/stores/amazon_uk_plugin.py
|
||||
lib/calibre/calibre/gui2/store/stores/legimi_plugin.py
|
||||
lib/calibre/calibre/gui2/store/stores/ebookshoppe_uk_plugin.py
|
||||
lib/calibre/calibre/gui2/store/stores/virtualo_plugin.py
|
||||
lib/calibre/calibre/gui2/store/stores/open_books_plugin.py
|
||||
lib/calibre/calibre/gui2/store/stores/libri_de_plugin.py
|
||||
lib/calibre/calibre/gui2/store/stores/google_books_plugin.py
|
||||
lib/calibre/calibre/gui2/store/config/__init__.py
|
||||
lib/calibre/calibre/gui2/store/config/search_widget_ui.py
|
||||
lib/calibre/calibre/gui2/store/config/store.py
|
||||
@ -754,17 +769,16 @@ lib/calibre/calibre/gui2/store/config/chooser/models.py
|
||||
lib/calibre/calibre/gui2/store/config/chooser/adv_search_builder_ui.py
|
||||
lib/calibre/calibre/gui2/store/config/chooser/chooser_widget.py
|
||||
lib/calibre/calibre/gui2/store/config/chooser/chooser_widget_ui.py
|
||||
lib/calibre/calibre/gui2/store/google_books_plugin.py
|
||||
lib/calibre/calibre/gui2/store/mobileread/__init__.py
|
||||
lib/calibre/calibre/gui2/store/mobileread/adv_search_builder.py
|
||||
lib/calibre/calibre/gui2/store/mobileread/adv_search_builder_ui.py
|
||||
lib/calibre/calibre/gui2/store/mobileread/models.py
|
||||
lib/calibre/calibre/gui2/store/mobileread/store_dialog.py
|
||||
lib/calibre/calibre/gui2/store/mobileread/cache_progress_dialog_ui.py
|
||||
lib/calibre/calibre/gui2/store/mobileread/cache_update_thread.py
|
||||
lib/calibre/calibre/gui2/store/mobileread/cache_progress_dialog.py
|
||||
lib/calibre/calibre/gui2/store/mobileread/store_dialog_ui.py
|
||||
lib/calibre/calibre/gui2/store/mobileread/mobileread_plugin.py
|
||||
lib/calibre/calibre/gui2/store/stores/mobileread/__init__.py
|
||||
lib/calibre/calibre/gui2/store/stores/mobileread/adv_search_builder.py
|
||||
lib/calibre/calibre/gui2/store/stores/mobileread/adv_search_builder_ui.py
|
||||
lib/calibre/calibre/gui2/store/stores/mobileread/models.py
|
||||
lib/calibre/calibre/gui2/store/stores/mobileread/store_dialog.py
|
||||
lib/calibre/calibre/gui2/store/stores/mobileread/cache_progress_dialog_ui.py
|
||||
lib/calibre/calibre/gui2/store/stores/mobileread/cache_update_thread.py
|
||||
lib/calibre/calibre/gui2/store/stores/mobileread/cache_progress_dialog.py
|
||||
lib/calibre/calibre/gui2/store/stores/mobileread/store_dialog_ui.py
|
||||
lib/calibre/calibre/gui2/store/stores/mobileread/mobileread_plugin.py
|
||||
lib/calibre/calibre/gui2/store/search/results_view.py
|
||||
lib/calibre/calibre/gui2/store/search/search_ui.py
|
||||
lib/calibre/calibre/gui2/store/search/__init__.py
|
||||
@ -773,7 +787,10 @@ lib/calibre/calibre/gui2/store/search/adv_search_builder.py
|
||||
lib/calibre/calibre/gui2/store/search/models.py
|
||||
lib/calibre/calibre/gui2/store/search/search.py
|
||||
lib/calibre/calibre/gui2/store/search/adv_search_builder_ui.py
|
||||
lib/calibre/calibre/gui2/tag_view.py
|
||||
lib/calibre/calibre/gui2/tag_browser/__init__.py
|
||||
lib/calibre/calibre/gui2/tag_browser/ui.py
|
||||
lib/calibre/calibre/gui2/tag_browser/view.py
|
||||
lib/calibre/calibre/gui2/tag_browser/model.py
|
||||
lib/calibre/calibre/gui2/threaded_jobs.py
|
||||
lib/calibre/calibre/gui2/throbber.py
|
||||
lib/calibre/calibre/gui2/tools.py
|
||||
@ -890,6 +907,7 @@ lib/calibre/calibre/utils/ipc/__init__.py
|
||||
lib/calibre/calibre/utils/ipc/job.py
|
||||
lib/calibre/calibre/utils/ipc/launch.py
|
||||
lib/calibre/calibre/utils/ipc/server.py
|
||||
lib/calibre/calibre/utils/ipc/proxy.py
|
||||
lib/calibre/calibre/utils/ipc/worker.py
|
||||
lib/calibre/calibre/utils/localization.py
|
||||
lib/calibre/calibre/utils/lock.py
|
||||
@ -902,6 +920,10 @@ lib/calibre/calibre/utils/mem.py
|
||||
lib/calibre/calibre/utils/mreplace.py
|
||||
lib/calibre/calibre/utils/network.py
|
||||
lib/calibre/calibre/utils/ordered_dict.py
|
||||
lib/calibre/calibre/utils/opensearch/__init__.py
|
||||
lib/calibre/calibre/utils/opensearch/description.py
|
||||
lib/calibre/calibre/utils/opensearch/url.py
|
||||
lib/calibre/calibre/utils/opensearch/query.py
|
||||
lib/calibre/calibre/utils/osx_symlinks.py
|
||||
lib/calibre/calibre/utils/pdftk.py
|
||||
lib/calibre/calibre/utils/podofo/__init__.py
|
||||
@ -1381,8 +1403,9 @@ share/calibre/viewer/referencing.js
|
||||
@dirrm lib/calibre/calibre/utils/wmf
|
||||
@dirrm lib/calibre/calibre/utils/pyconsole
|
||||
@dirrm lib/calibre/calibre/utils/podofo
|
||||
@dirrm lib/calibre/calibre/utils/magick
|
||||
@dirrm lib/calibre/calibre/utils/opensearch
|
||||
@dirrm lib/calibre/calibre/utils/ipc
|
||||
@dirrm lib/calibre/calibre/utils/magick
|
||||
@dirrm lib/calibre/calibre/utils/fonts
|
||||
@dirrm lib/calibre/calibre/utils/chm
|
||||
@dirrm lib/calibre/calibre/utils
|
||||
@ -1397,11 +1420,13 @@ share/calibre/viewer/referencing.js
|
||||
@dirrm lib/calibre/calibre/library
|
||||
@dirrm lib/calibre/calibre/gui2/wizard
|
||||
@dirrm lib/calibre/calibre/gui2/viewer
|
||||
@dirrm lib/calibre/calibre/gui2/store/mobileread
|
||||
@dirrm lib/calibre/calibre/gui2/tag_browser
|
||||
@dirrm lib/calibre/calibre/gui2/store/stores/mobileread
|
||||
@dirrm lib/calibre/calibre/gui2/store/config/search
|
||||
@dirrm lib/calibre/calibre/gui2/store/config/chooser
|
||||
@dirrm lib/calibre/calibre/gui2/store/config
|
||||
@dirrm lib/calibre/calibre/gui2/store/search
|
||||
@dirrm lib/calibre/calibre/gui2/store/stores
|
||||
@dirrm lib/calibre/calibre/gui2/store
|
||||
@dirrm lib/calibre/calibre/gui2/progress_indicator
|
||||
@dirrm lib/calibre/calibre/gui2/preferences
|
||||
@ -1460,6 +1485,7 @@ share/calibre/viewer/referencing.js
|
||||
@dirrm lib/calibre/calibre/ebooks/chm
|
||||
@dirrm lib/calibre/calibre/ebooks/chardet
|
||||
@dirrm lib/calibre/calibre/ebooks
|
||||
@dirrm lib/calibre/calibre/db
|
||||
@dirrm lib/calibre/calibre/devices/usbobserver
|
||||
@dirrm lib/calibre/calibre/devices/usbms
|
||||
@dirrm lib/calibre/calibre/devices/user_defined
|
||||
|
Loading…
Reference in New Issue
Block a user