Date: Thursday, July 23, 2015 @ 10:30:58 Author: jelle Revision: 137301
archrelease: copy trunk to community-testing-i686, community-testing-x86_64 Added: calibre/repos/community-testing-i686/ calibre/repos/community-testing-i686/PKGBUILD (from rev 137300, calibre/trunk/PKGBUILD) calibre/repos/community-testing-i686/calibre.install (from rev 137300, calibre/trunk/calibre.install) calibre/repos/community-testing-i686/pyqt5.5.patch (from rev 137300, calibre/trunk/pyqt5.5.patch) calibre/repos/community-testing-x86_64/PKGBUILD (from rev 137300, calibre/trunk/PKGBUILD) calibre/repos/community-testing-x86_64/calibre.install (from rev 137300, calibre/trunk/calibre.install) calibre/repos/community-testing-x86_64/pyqt5.5.patch (from rev 137300, calibre/trunk/pyqt5.5.patch) Deleted: calibre/repos/community-testing-x86_64/PKGBUILD calibre/repos/community-testing-x86_64/calibre.install calibre/repos/community-testing-x86_64/pyqt5.5.patch ------------------------------------------+ /PKGBUILD | 91 +++++++++++++++++++++++++++++ /calibre.install | 12 +++ /pyqt5.5.patch | 55 +++++++++++++++++ community-testing-i686/PKGBUILD | 91 +++++++++++++++++++++++++++++ community-testing-i686/calibre.install | 12 +++ community-testing-i686/pyqt5.5.patch | 55 +++++++++++++++++ community-testing-x86_64/PKGBUILD | 91 ----------------------------- community-testing-x86_64/calibre.install | 12 --- community-testing-x86_64/pyqt5.5.patch | 55 ----------------- 9 files changed, 316 insertions(+), 158 deletions(-) Copied: calibre/repos/community-testing-i686/PKGBUILD (from rev 137300, calibre/trunk/PKGBUILD) =================================================================== --- community-testing-i686/PKGBUILD (rev 0) +++ community-testing-i686/PKGBUILD 2015-07-23 08:30:58 UTC (rev 137301) @@ -0,0 +1,91 @@ +# $Id$ +# Maintainer: Jelle van der Waa <je...@vdwaa.nl> +# Maintainer: Daniel Wallace <danielwallace at gtmanfred dot com> +# Contributor: Giovanni Scafora <giova...@archlinux.org> +# Contributor: Petrov Roman <nwhis...@gmail.com> +# Contributor: Andrea Fagiani <andfagiani _at_ gmail dot com> +# Contributor: Larry Hajali <larryh...@gmail.com> + +pkgname=calibre +pkgver=2.32.1 +pkgrel=2 +pkgdesc="Ebook management application" +arch=('i686' 'x86_64') +url="http://calibre-ebook.com/" +license=('GPL3') +depends=('python2-six' 'python2-dateutil' 'python2-cssutils' 'python2-cherrypy' + 'python2-mechanize' 'podofo' 'libwmf' + 'imagemagick' 'chmlib' 'python2-lxml' 'libusbx' + 'python2-pillow' 'shared-mime-info' 'python2-dnspython' + 'python2-pyqt5' 'python2-psutil' 'icu' 'libmtp' 'python2-dbus' + 'python2-netifaces' 'python2-cssselect' 'python2-apsw' 'qt5-webkit' + 'qt5-svg' 'python2-chardet' 'python2-html5lib' 'python2-pygments' 'mtdev') +makedepends=('python2-pycountry' 'qt5-x11extras' ) +optdepends=('ipython2: to use calibre-debug' + 'udisks: required for mounting certain devices' +) +install=calibre.install +source=("http://download.calibre-ebook.com/${pkgver}/calibre-${pkgver}.tar.xz" "pyqt5.5.patch") +md5sums=('54e8bcfdf1e74595bd7611dd61bac20a' + 'bec94ae1af7725c2ddc5981e606a3906') + +prepare(){ + cd "${srcdir}/${pkgname}-${pkgver}" + + # Remove unneeded files and libs + rm -rf resources/${pkgname}-portable.* \ + src/cherrypy \ + src/html5lib \ + src/chardet + + patch -Np1 -i $srcdir/pyqt5.5.patch + + sed -i "s/shlex.split(ldflags)/& + ['-fPIC']/" setup/extensions.py + + # Use python2 + sed -i 's:\(env[ ]\+python$\|/usr/bin/python$\):\12:g' $(find . -regex ".*\.py\|.*\.recipe") + + # Desktop integration (e.g. enforce arch defaults) + sed -e "/self.create_uninstaller()/,/os.rmdir(config_dir)/d" \ + -e "/\(cc('xdg-icon-resource\|self.icon_resources.append\|'128'))\)/d" \ + -e "/render_img/ s/\('calibre-.*\.png'\)/os.path.join(dir, \1)/g" \ + -e "/dir, 'calibre-lrf.png'/i \ +\ dir = os.path.join(self.opts.staging_sharedir,'../pixmaps')\n\ +\ os.mkdir(dir)" \ + -e "/f = open/ s/\('calibre-.*\.desktop'\)/os.path.join(dir, \1)/g" \ + -e "/dir, 'calibre-lrfviewer.desktop'/i \ +\ dir = os.path.join(self.opts.staging_sharedir,'../applications')\n\ +\ os.mkdir(dir)" \ + -e "s/'ctc-posml'/'text' not in mt and 'pdf' not in mt and 'xhtml'/" \ + -e "s/^Name=calibre/Name=Calibre/g" \ + -i src/calibre/linux.py +} + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + + LANG='en_US.UTF-8' python2 setup.py build + # LANG='en_US.UTF-8' python2 setup.py resources + + # Don't build translations since building them is broken badly + #LANG='en_US.UTF-8' python2 setup.py translations +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + + # Fix the environment module location + sed -i -e "s|(prefix=.*)|(prefix='$pkgdir/usr')|g" setup/install.py + + install -d "${pkgdir}/usr/lib/python2.7/site-packages" \ + "${pkgdir}/usr/share/zsh/site-functions" + + LANG='en_US.UTF-8' python2 setup.py install --root="${pkgdir}" --prefix=/usr \ + --staging-bindir="${pkgdir}/usr/bin" \ + --staging-libdir="${pkgdir}/usr/lib" \ + --staging-sharedir="${pkgdir}/usr/share" + + # Compiling bytecode FS#33392 + python2 -m compileall "${pkgdir}/usr/lib/calibre/" + python2 -O -m compileall "${pkgdir}/usr/lib/calibre/" +} Copied: calibre/repos/community-testing-i686/calibre.install (from rev 137300, calibre/trunk/calibre.install) =================================================================== --- community-testing-i686/calibre.install (rev 0) +++ community-testing-i686/calibre.install 2015-07-23 08:30:58 UTC (rev 137301) @@ -0,0 +1,12 @@ +post_install() { + update-desktop-database -q + update-mime-database usr/share/mime &> /dev/null +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} Copied: calibre/repos/community-testing-i686/pyqt5.5.patch (from rev 137300, calibre/trunk/pyqt5.5.patch) =================================================================== --- community-testing-i686/pyqt5.5.patch (rev 0) +++ community-testing-i686/pyqt5.5.patch 2015-07-23 08:30:58 UTC (rev 137301) @@ -0,0 +1,55 @@ +From 8f75f2d5ad17ef35d52a9dc1a137c36d42e8454e Mon Sep 17 00:00:00 2001 +From: Kovid Goyal <ko...@kovidgoyal.net> +Date: Thu, 23 Jul 2015 11:47:53 +0530 +Subject: [PATCH] More compatibility fixes for PyQt 5.5 + +--- + src/calibre/gui2/library/alternate_views.py | 2 +- + src/calibre/gui2/library/delegates.py | 4 ++-- + src/calibre/gui2/library/views.py | 2 +- + 3 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/calibre/gui2/library/alternate_views.py b/src/calibre/gui2/library/alternate_views.py +index f492343..813ff48 100644 +--- a/src/calibre/gui2/library/alternate_views.py ++++ b/src/calibre/gui2/library/alternate_views.py +@@ -101,7 +101,7 @@ def drag_data(self): + selected = self.get_selected_ids() + ids = ' '.join(map(str, selected)) + md = QMimeData() +- md.setData('application/calibre+from_library', ids) ++ md.setData('application/calibre+from_library', ids.encode('utf-8')) + fmt = prefs['output_format'] + + def url_for_id(i): +diff --git a/src/calibre/gui2/library/delegates.py b/src/calibre/gui2/library/delegates.py +index eed3ed8..5e0344c 100644 +--- a/src/calibre/gui2/library/delegates.py ++++ b/src/calibre/gui2/library/delegates.py +@@ -55,11 +55,11 @@ def updateEditorGeometry(self, editor, option, index): + # Now get the size of the combo/spinner arrows and add them to the needed width + if isinstance(editor, (QComboBox, QDateTimeEdit)): + r = style.subControlRect(QStyle.CC_ComboBox, QStyleOptionComboBox(), +- QStyle.SC_ComboBoxArrow) ++ QStyle.SC_ComboBoxArrow, editor) + new_width += r.width() + elif isinstance(editor, (QSpinBox, QDoubleSpinBox)): + r = style.subControlRect(QStyle.CC_SpinBox, QStyleOptionSpinBox(), +- QStyle.SC_SpinBoxUp) ++ QStyle.SC_SpinBoxUp, editor) + new_width += r.width() + + # Compute the maximum we can show if we consume the entire viewport +diff --git a/src/calibre/gui2/library/views.py b/src/calibre/gui2/library/views.py +index 008721e..7e1743d 100644 +--- a/src/calibre/gui2/library/views.py ++++ b/src/calibre/gui2/library/views.py +@@ -1098,7 +1098,7 @@ def drag_data(self): + rows = self.selectionModel().selectedRows() + paths = [force_unicode(p, enc=filesystem_encoding) for p in m.paths(rows) if p] + md = QMimeData() +- md.setData('application/calibre+from_device', 'dummy') ++ md.setData('application/calibre+from_device', b'dummy') + md.setUrls([QUrl.fromLocalFile(p) for p in paths]) + drag = QDrag(self) + drag.setMimeData(md) Deleted: community-testing-x86_64/PKGBUILD =================================================================== --- community-testing-x86_64/PKGBUILD 2015-07-23 08:13:32 UTC (rev 137300) +++ community-testing-x86_64/PKGBUILD 2015-07-23 08:30:58 UTC (rev 137301) @@ -1,91 +0,0 @@ -# $Id$ -# Maintainer: Jelle van der Waa <je...@vdwaa.nl> -# Maintainer: Daniel Wallace <danielwallace at gtmanfred dot com> -# Contributor: Giovanni Scafora <giova...@archlinux.org> -# Contributor: Petrov Roman <nwhis...@gmail.com> -# Contributor: Andrea Fagiani <andfagiani _at_ gmail dot com> -# Contributor: Larry Hajali <larryh...@gmail.com> - -pkgname=calibre -pkgver=2.32.1 -pkgrel=2 -pkgdesc="Ebook management application" -arch=('i686' 'x86_64') -url="http://calibre-ebook.com/" -license=('GPL3') -depends=('python2-six' 'python2-dateutil' 'python2-cssutils' 'python2-cherrypy' - 'python2-mechanize' 'podofo' 'libwmf' - 'imagemagick' 'chmlib' 'python2-lxml' 'libusbx' - 'python2-pillow' 'shared-mime-info' 'python2-dnspython' - 'python2-pyqt5' 'python2-psutil' 'icu' 'libmtp' 'python2-dbus' - 'python2-netifaces' 'python2-cssselect' 'python2-apsw' 'qt5-webkit' - 'qt5-svg' 'python2-chardet' 'python2-html5lib' 'python2-pygments' 'mtdev') -makedepends=('python2-pycountry' 'qt5-x11extras' ) -optdepends=('ipython2: to use calibre-debug' - 'udisks: required for mounting certain devices' -) -install=calibre.install -source=("http://download.calibre-ebook.com/${pkgver}/calibre-${pkgver}.tar.xz" "pyqt5.5.patch") -md5sums=('54e8bcfdf1e74595bd7611dd61bac20a' - 'bec94ae1af7725c2ddc5981e606a3906') - -prepare(){ - cd "${srcdir}/${pkgname}-${pkgver}" - - # Remove unneeded files and libs - rm -rf resources/${pkgname}-portable.* \ - src/cherrypy \ - src/html5lib \ - src/chardet - - patch -Np1 -i $srcdir/pyqt5.5.patch - - sed -i "s/shlex.split(ldflags)/& + ['-fPIC']/" setup/extensions.py - - # Use python2 - sed -i 's:\(env[ ]\+python$\|/usr/bin/python$\):\12:g' $(find . -regex ".*\.py\|.*\.recipe") - - # Desktop integration (e.g. enforce arch defaults) - sed -e "/self.create_uninstaller()/,/os.rmdir(config_dir)/d" \ - -e "/\(cc('xdg-icon-resource\|self.icon_resources.append\|'128'))\)/d" \ - -e "/render_img/ s/\('calibre-.*\.png'\)/os.path.join(dir, \1)/g" \ - -e "/dir, 'calibre-lrf.png'/i \ -\ dir = os.path.join(self.opts.staging_sharedir,'../pixmaps')\n\ -\ os.mkdir(dir)" \ - -e "/f = open/ s/\('calibre-.*\.desktop'\)/os.path.join(dir, \1)/g" \ - -e "/dir, 'calibre-lrfviewer.desktop'/i \ -\ dir = os.path.join(self.opts.staging_sharedir,'../applications')\n\ -\ os.mkdir(dir)" \ - -e "s/'ctc-posml'/'text' not in mt and 'pdf' not in mt and 'xhtml'/" \ - -e "s/^Name=calibre/Name=Calibre/g" \ - -i src/calibre/linux.py -} - -build() { - cd "${srcdir}/${pkgname}-${pkgver}" - - LANG='en_US.UTF-8' python2 setup.py build - # LANG='en_US.UTF-8' python2 setup.py resources - - # Don't build translations since building them is broken badly - #LANG='en_US.UTF-8' python2 setup.py translations -} - -package() { - cd "${srcdir}/${pkgname}-${pkgver}" - - # Fix the environment module location - sed -i -e "s|(prefix=.*)|(prefix='$pkgdir/usr')|g" setup/install.py - - install -d "${pkgdir}/usr/lib/python2.7/site-packages" \ - "${pkgdir}/usr/share/zsh/site-functions" - - LANG='en_US.UTF-8' python2 setup.py install --root="${pkgdir}" --prefix=/usr \ - --staging-bindir="${pkgdir}/usr/bin" \ - --staging-libdir="${pkgdir}/usr/lib" \ - --staging-sharedir="${pkgdir}/usr/share" - - # Compiling bytecode FS#33392 - python2 -m compileall "${pkgdir}/usr/lib/calibre/" - python2 -O -m compileall "${pkgdir}/usr/lib/calibre/" -} Copied: calibre/repos/community-testing-x86_64/PKGBUILD (from rev 137300, calibre/trunk/PKGBUILD) =================================================================== --- community-testing-x86_64/PKGBUILD (rev 0) +++ community-testing-x86_64/PKGBUILD 2015-07-23 08:30:58 UTC (rev 137301) @@ -0,0 +1,91 @@ +# $Id$ +# Maintainer: Jelle van der Waa <je...@vdwaa.nl> +# Maintainer: Daniel Wallace <danielwallace at gtmanfred dot com> +# Contributor: Giovanni Scafora <giova...@archlinux.org> +# Contributor: Petrov Roman <nwhis...@gmail.com> +# Contributor: Andrea Fagiani <andfagiani _at_ gmail dot com> +# Contributor: Larry Hajali <larryh...@gmail.com> + +pkgname=calibre +pkgver=2.32.1 +pkgrel=2 +pkgdesc="Ebook management application" +arch=('i686' 'x86_64') +url="http://calibre-ebook.com/" +license=('GPL3') +depends=('python2-six' 'python2-dateutil' 'python2-cssutils' 'python2-cherrypy' + 'python2-mechanize' 'podofo' 'libwmf' + 'imagemagick' 'chmlib' 'python2-lxml' 'libusbx' + 'python2-pillow' 'shared-mime-info' 'python2-dnspython' + 'python2-pyqt5' 'python2-psutil' 'icu' 'libmtp' 'python2-dbus' + 'python2-netifaces' 'python2-cssselect' 'python2-apsw' 'qt5-webkit' + 'qt5-svg' 'python2-chardet' 'python2-html5lib' 'python2-pygments' 'mtdev') +makedepends=('python2-pycountry' 'qt5-x11extras' ) +optdepends=('ipython2: to use calibre-debug' + 'udisks: required for mounting certain devices' +) +install=calibre.install +source=("http://download.calibre-ebook.com/${pkgver}/calibre-${pkgver}.tar.xz" "pyqt5.5.patch") +md5sums=('54e8bcfdf1e74595bd7611dd61bac20a' + 'bec94ae1af7725c2ddc5981e606a3906') + +prepare(){ + cd "${srcdir}/${pkgname}-${pkgver}" + + # Remove unneeded files and libs + rm -rf resources/${pkgname}-portable.* \ + src/cherrypy \ + src/html5lib \ + src/chardet + + patch -Np1 -i $srcdir/pyqt5.5.patch + + sed -i "s/shlex.split(ldflags)/& + ['-fPIC']/" setup/extensions.py + + # Use python2 + sed -i 's:\(env[ ]\+python$\|/usr/bin/python$\):\12:g' $(find . -regex ".*\.py\|.*\.recipe") + + # Desktop integration (e.g. enforce arch defaults) + sed -e "/self.create_uninstaller()/,/os.rmdir(config_dir)/d" \ + -e "/\(cc('xdg-icon-resource\|self.icon_resources.append\|'128'))\)/d" \ + -e "/render_img/ s/\('calibre-.*\.png'\)/os.path.join(dir, \1)/g" \ + -e "/dir, 'calibre-lrf.png'/i \ +\ dir = os.path.join(self.opts.staging_sharedir,'../pixmaps')\n\ +\ os.mkdir(dir)" \ + -e "/f = open/ s/\('calibre-.*\.desktop'\)/os.path.join(dir, \1)/g" \ + -e "/dir, 'calibre-lrfviewer.desktop'/i \ +\ dir = os.path.join(self.opts.staging_sharedir,'../applications')\n\ +\ os.mkdir(dir)" \ + -e "s/'ctc-posml'/'text' not in mt and 'pdf' not in mt and 'xhtml'/" \ + -e "s/^Name=calibre/Name=Calibre/g" \ + -i src/calibre/linux.py +} + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + + LANG='en_US.UTF-8' python2 setup.py build + # LANG='en_US.UTF-8' python2 setup.py resources + + # Don't build translations since building them is broken badly + #LANG='en_US.UTF-8' python2 setup.py translations +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + + # Fix the environment module location + sed -i -e "s|(prefix=.*)|(prefix='$pkgdir/usr')|g" setup/install.py + + install -d "${pkgdir}/usr/lib/python2.7/site-packages" \ + "${pkgdir}/usr/share/zsh/site-functions" + + LANG='en_US.UTF-8' python2 setup.py install --root="${pkgdir}" --prefix=/usr \ + --staging-bindir="${pkgdir}/usr/bin" \ + --staging-libdir="${pkgdir}/usr/lib" \ + --staging-sharedir="${pkgdir}/usr/share" + + # Compiling bytecode FS#33392 + python2 -m compileall "${pkgdir}/usr/lib/calibre/" + python2 -O -m compileall "${pkgdir}/usr/lib/calibre/" +} Deleted: community-testing-x86_64/calibre.install =================================================================== --- community-testing-x86_64/calibre.install 2015-07-23 08:13:32 UTC (rev 137300) +++ community-testing-x86_64/calibre.install 2015-07-23 08:30:58 UTC (rev 137301) @@ -1,12 +0,0 @@ -post_install() { - update-desktop-database -q - update-mime-database usr/share/mime &> /dev/null -} - -post_upgrade() { - post_install -} - -post_remove() { - post_install -} Copied: calibre/repos/community-testing-x86_64/calibre.install (from rev 137300, calibre/trunk/calibre.install) =================================================================== --- community-testing-x86_64/calibre.install (rev 0) +++ community-testing-x86_64/calibre.install 2015-07-23 08:30:58 UTC (rev 137301) @@ -0,0 +1,12 @@ +post_install() { + update-desktop-database -q + update-mime-database usr/share/mime &> /dev/null +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} Deleted: community-testing-x86_64/pyqt5.5.patch =================================================================== --- community-testing-x86_64/pyqt5.5.patch 2015-07-23 08:13:32 UTC (rev 137300) +++ community-testing-x86_64/pyqt5.5.patch 2015-07-23 08:30:58 UTC (rev 137301) @@ -1,55 +0,0 @@ -From 8f75f2d5ad17ef35d52a9dc1a137c36d42e8454e Mon Sep 17 00:00:00 2001 -From: Kovid Goyal <ko...@kovidgoyal.net> -Date: Thu, 23 Jul 2015 11:47:53 +0530 -Subject: [PATCH] More compatibility fixes for PyQt 5.5 - ---- - src/calibre/gui2/library/alternate_views.py | 2 +- - src/calibre/gui2/library/delegates.py | 4 ++-- - src/calibre/gui2/library/views.py | 2 +- - 3 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/src/calibre/gui2/library/alternate_views.py b/src/calibre/gui2/library/alternate_views.py -index f492343..813ff48 100644 ---- a/src/calibre/gui2/library/alternate_views.py -+++ b/src/calibre/gui2/library/alternate_views.py -@@ -101,7 +101,7 @@ def drag_data(self): - selected = self.get_selected_ids() - ids = ' '.join(map(str, selected)) - md = QMimeData() -- md.setData('application/calibre+from_library', ids) -+ md.setData('application/calibre+from_library', ids.encode('utf-8')) - fmt = prefs['output_format'] - - def url_for_id(i): -diff --git a/src/calibre/gui2/library/delegates.py b/src/calibre/gui2/library/delegates.py -index eed3ed8..5e0344c 100644 ---- a/src/calibre/gui2/library/delegates.py -+++ b/src/calibre/gui2/library/delegates.py -@@ -55,11 +55,11 @@ def updateEditorGeometry(self, editor, option, index): - # Now get the size of the combo/spinner arrows and add them to the needed width - if isinstance(editor, (QComboBox, QDateTimeEdit)): - r = style.subControlRect(QStyle.CC_ComboBox, QStyleOptionComboBox(), -- QStyle.SC_ComboBoxArrow) -+ QStyle.SC_ComboBoxArrow, editor) - new_width += r.width() - elif isinstance(editor, (QSpinBox, QDoubleSpinBox)): - r = style.subControlRect(QStyle.CC_SpinBox, QStyleOptionSpinBox(), -- QStyle.SC_SpinBoxUp) -+ QStyle.SC_SpinBoxUp, editor) - new_width += r.width() - - # Compute the maximum we can show if we consume the entire viewport -diff --git a/src/calibre/gui2/library/views.py b/src/calibre/gui2/library/views.py -index 008721e..7e1743d 100644 ---- a/src/calibre/gui2/library/views.py -+++ b/src/calibre/gui2/library/views.py -@@ -1098,7 +1098,7 @@ def drag_data(self): - rows = self.selectionModel().selectedRows() - paths = [force_unicode(p, enc=filesystem_encoding) for p in m.paths(rows) if p] - md = QMimeData() -- md.setData('application/calibre+from_device', 'dummy') -+ md.setData('application/calibre+from_device', b'dummy') - md.setUrls([QUrl.fromLocalFile(p) for p in paths]) - drag = QDrag(self) - drag.setMimeData(md) Copied: calibre/repos/community-testing-x86_64/pyqt5.5.patch (from rev 137300, calibre/trunk/pyqt5.5.patch) =================================================================== --- community-testing-x86_64/pyqt5.5.patch (rev 0) +++ community-testing-x86_64/pyqt5.5.patch 2015-07-23 08:30:58 UTC (rev 137301) @@ -0,0 +1,55 @@ +From 8f75f2d5ad17ef35d52a9dc1a137c36d42e8454e Mon Sep 17 00:00:00 2001 +From: Kovid Goyal <ko...@kovidgoyal.net> +Date: Thu, 23 Jul 2015 11:47:53 +0530 +Subject: [PATCH] More compatibility fixes for PyQt 5.5 + +--- + src/calibre/gui2/library/alternate_views.py | 2 +- + src/calibre/gui2/library/delegates.py | 4 ++-- + src/calibre/gui2/library/views.py | 2 +- + 3 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/calibre/gui2/library/alternate_views.py b/src/calibre/gui2/library/alternate_views.py +index f492343..813ff48 100644 +--- a/src/calibre/gui2/library/alternate_views.py ++++ b/src/calibre/gui2/library/alternate_views.py +@@ -101,7 +101,7 @@ def drag_data(self): + selected = self.get_selected_ids() + ids = ' '.join(map(str, selected)) + md = QMimeData() +- md.setData('application/calibre+from_library', ids) ++ md.setData('application/calibre+from_library', ids.encode('utf-8')) + fmt = prefs['output_format'] + + def url_for_id(i): +diff --git a/src/calibre/gui2/library/delegates.py b/src/calibre/gui2/library/delegates.py +index eed3ed8..5e0344c 100644 +--- a/src/calibre/gui2/library/delegates.py ++++ b/src/calibre/gui2/library/delegates.py +@@ -55,11 +55,11 @@ def updateEditorGeometry(self, editor, option, index): + # Now get the size of the combo/spinner arrows and add them to the needed width + if isinstance(editor, (QComboBox, QDateTimeEdit)): + r = style.subControlRect(QStyle.CC_ComboBox, QStyleOptionComboBox(), +- QStyle.SC_ComboBoxArrow) ++ QStyle.SC_ComboBoxArrow, editor) + new_width += r.width() + elif isinstance(editor, (QSpinBox, QDoubleSpinBox)): + r = style.subControlRect(QStyle.CC_SpinBox, QStyleOptionSpinBox(), +- QStyle.SC_SpinBoxUp) ++ QStyle.SC_SpinBoxUp, editor) + new_width += r.width() + + # Compute the maximum we can show if we consume the entire viewport +diff --git a/src/calibre/gui2/library/views.py b/src/calibre/gui2/library/views.py +index 008721e..7e1743d 100644 +--- a/src/calibre/gui2/library/views.py ++++ b/src/calibre/gui2/library/views.py +@@ -1098,7 +1098,7 @@ def drag_data(self): + rows = self.selectionModel().selectedRows() + paths = [force_unicode(p, enc=filesystem_encoding) for p in m.paths(rows) if p] + md = QMimeData() +- md.setData('application/calibre+from_device', 'dummy') ++ md.setData('application/calibre+from_device', b'dummy') + md.setUrls([QUrl.fromLocalFile(p) for p in paths]) + drag = QDrag(self) + drag.setMimeData(md)