Hello community, here is the log from the commit of package calibre for openSUSE:Factory checked in at 2016-10-18 10:41:25 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/calibre (Old) and /work/SRC/openSUSE:Factory/.calibre.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "calibre" Changes: -------- --- /work/SRC/openSUSE:Factory/calibre/calibre.changes 2016-10-02 00:08:39.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.calibre.new/calibre.changes 2016-10-18 10:41:26.000000000 +0200 @@ -1,0 +2,10 @@ +Thu Oct 13 08:16:51 UTC 2016 - cornelis@solcon.nl + +- Added Fix-editing-color-schemes.patch to fix dialog for editing + color-schemes (lp#1629294) +- Added Update-amazon-store-plugin.patch because of Amazon website + changes +- Added Update-db-version-kobo-driver.patch to make sure calibre is + working correctly with kobo firmware + +------------------------------------------------------------------- New: ---- Fix-editing-color-schemes.patch Update-amazon-store-plugin.patch Update-db-version-kobo-driver.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ calibre.spec ++++++ --- /var/tmp/diff_new_pack.dWFIB9/_old 2016-10-18 10:41:28.000000000 +0200 +++ /var/tmp/diff_new_pack.dWFIB9/_new 2016-10-18 10:41:28.000000000 +0200 @@ -30,6 +30,10 @@ Patch3: calibre-no-update.diff # PATCH-FIX-TO-UPSTREAM: use reproducible list order Patch4: reproducible.patch +# The following patches are from upstream and needs to be removed with update to 2.70 +Patch10: Fix-editing-color-schemes.patch +Patch11: Update-amazon-store-plugin.patch +Patch12: Update-db-version-kobo-driver.patch BuildRequires: fdupes BuildRequires: help2man BuildRequires: hicolor-icon-theme @@ -131,6 +135,9 @@ %patch2 -p1 %patch3 -p1 -b .no-update %patch4 -p1 +%patch10 -p1 +%patch11 -p1 +%patch12 -p1 # dos2unix newline conversion sed -i 's/\r//' src/calibre/web/feeds/recipes/* ++++++ Fix-editing-color-schemes.patch ++++++
From 37b9050bd952ca1b9dae331421f2d3ca23ddb2fe Mon Sep 17 00:00:00 2001 From: Kovid Goyal
Date: Fri, 30 Sep 2016 17:50:00 +0530 Subject: [PATCH] Edit Book: Fix a regression in the previous release that broke the preferences dialog for changing color schemes. Fixes #1629294 [Editor: Edit Prefs crashes on Create/edit custom color schemes](https://bugs.launchpad.net/calibre/+bug/1629294)
--- src/calibre/gui2/tweak_book/editor/themes.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/calibre/gui2/tweak_book/editor/themes.py b/src/calibre/gui2/tweak_book/editor/themes.py index 8a5b6c3..17f3cb8 100644 --- a/src/calibre/gui2/tweak_book/editor/themes.py +++ b/src/calibre/gui2/tweak_book/editor/themes.py @@ -509,8 +509,6 @@ def us_changed(self): {12} Comments like <!-- this one --> -{13} - Class attributes, like this <span class="myclass1 myclass2"></span> </p> <style type="text/css"> ++++++ Update-amazon-store-plugin.patch ++++++
From b201d1e4abff2695f3f40d91d2faef4565c3b318 Mon Sep 17 00:00:00 2001 From: Kovid Goyal
Date: Tue, 4 Oct 2016 08:06:41 +0530 Subject: [PATCH] Get Books: Update the amazon store plugins for website changes
--- src/calibre/gui2/store/stores/amazon_au_plugin.py | 9 ++++++--- src/calibre/gui2/store/stores/amazon_ca_plugin.py | 9 ++++++--- src/calibre/gui2/store/stores/amazon_de_plugin.py | 9 ++++++--- src/calibre/gui2/store/stores/amazon_es_plugin.py | 9 ++++++--- src/calibre/gui2/store/stores/amazon_fr_plugin.py | 9 ++++++--- src/calibre/gui2/store/stores/amazon_in_plugin.py | 9 ++++++--- src/calibre/gui2/store/stores/amazon_it_plugin.py | 9 ++++++--- src/calibre/gui2/store/stores/amazon_plugin.py | 9 ++++++--- src/calibre/gui2/store/stores/amazon_uk_plugin.py | 9 ++++++--- 9 files changed, 54 insertions(+), 27 deletions(-) diff --git a/src/calibre/gui2/store/stores/amazon_au_plugin.py b/src/calibre/gui2/store/stores/amazon_au_plugin.py index 4acf286..610358f 100644 --- a/src/calibre/gui2/store/stores/amazon_au_plugin.py +++ b/src/calibre/gui2/store/stores/amazon_au_plugin.py @@ -4,7 +4,7 @@ from __future__ import (unicode_literals, division, absolute_import, print_function) -store_version = 1 # Needed for dynamic plugin loading +store_version = 2 # Needed for dynamic plugin loading from contextlib import closing import urllib @@ -25,6 +25,9 @@ DRM_SEARCH_TEXT = 'Simultaneous Device Usage' DRM_FREE_TEXT = 'Unlimited' +def get_user_agent(): + return 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko' + def search_amazon(query, max_results=10, timeout=60, write_html_to=None, base_url=SEARCH_BASE_URL, @@ -39,7 +42,7 @@ def asbytes(x): return x uquery = {asbytes(k):asbytes(v) for k, v in uquery.iteritems()} url = base_url + '?' + urllib.urlencode(uquery).decode('ascii') - br = browser() + br = browser(user_agent=get_user_agent()) counter = max_results with closing(br.open(url, timeout=timeout)) as f: @@ -120,7 +123,7 @@ def search(self, query, max_results=10, timeout=60): def get_details(self, search_result, timeout): url = DETAILS_URL - br = browser() + br = browser(user_agent=get_user_agent()) with closing(br.open(url + search_result.detail_item, timeout=timeout)) as nf: idata = html.fromstring(nf.read()) if idata.xpath('boolean(//div[@class="content"]//li/b[contains(text(), "' + diff --git a/src/calibre/gui2/store/stores/amazon_ca_plugin.py b/src/calibre/gui2/store/stores/amazon_ca_plugin.py index 543985a..923379f 100644 --- a/src/calibre/gui2/store/stores/amazon_ca_plugin.py +++ b/src/calibre/gui2/store/stores/amazon_ca_plugin.py @@ -4,7 +4,7 @@ from __future__ import (unicode_literals, division, absolute_import, print_function) -store_version = 3 # Needed for dynamic plugin loading +store_version = 4 # Needed for dynamic plugin loading from contextlib import closing import urllib @@ -25,6 +25,9 @@ DRM_SEARCH_TEXT = 'Simultaneous Device Usage' DRM_FREE_TEXT = 'Unlimited' +def get_user_agent(): + return 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko' + def search_amazon(query, max_results=10, timeout=60, write_html_to=None, base_url=SEARCH_BASE_URL, @@ -39,7 +42,7 @@ def asbytes(x): return x uquery = {asbytes(k):asbytes(v) for k, v in uquery.iteritems()} url = base_url + '?' + urllib.urlencode(uquery).decode('ascii') - br = browser() + br = browser(user_agent=get_user_agent()) counter = max_results with closing(br.open(url, timeout=timeout)) as f: @@ -120,7 +123,7 @@ def search(self, query, max_results=10, timeout=60): def get_details(self, search_result, timeout): url = DETAILS_URL - br = browser() + br = browser(user_agent=get_user_agent()) with closing(br.open(url + search_result.detail_item, timeout=timeout)) as nf: idata = html.fromstring(nf.read()) if idata.xpath('boolean(//div[@class="content"]//li/b[contains(text(), "' + diff --git a/src/calibre/gui2/store/stores/amazon_de_plugin.py b/src/calibre/gui2/store/stores/amazon_de_plugin.py index 4bd191f..b357d5f 100644 --- a/src/calibre/gui2/store/stores/amazon_de_plugin.py +++ b/src/calibre/gui2/store/stores/amazon_de_plugin.py @@ -4,7 +4,7 @@ from __future__ import (unicode_literals, division, absolute_import, print_function) -store_version = 11 # Needed for dynamic plugin loading +store_version = 12 # Needed for dynamic plugin loading from contextlib import closing import urllib @@ -27,6 +27,9 @@ DRM_SEARCH_TEXT = 'Simultaneous Device Usage' DRM_FREE_TEXT = 'Unlimited' +def get_user_agent(): + return 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko' + def search_amazon(query, max_results=10, timeout=60, write_html_to=None, base_url=SEARCH_BASE_URL, @@ -41,7 +44,7 @@ def asbytes(x): return x uquery = {asbytes(k):asbytes(v) for k, v in uquery.iteritems()} url = base_url + '?' + urllib.urlencode(uquery).decode('ascii') - br = browser() + br = browser(user_agent=get_user_agent()) counter = max_results with closing(br.open(url, timeout=timeout)) as f: @@ -122,7 +125,7 @@ def search(self, query, max_results=10, timeout=60): def get_details(self, search_result, timeout): url = DETAILS_URL - br = browser() + br = browser(user_agent=get_user_agent()) with closing(br.open(url + search_result.detail_item, timeout=timeout)) as nf: idata = html.fromstring(nf.read()) if idata.xpath('boolean(//div[@class="content"]//li/b[contains(text(), "' + diff --git a/src/calibre/gui2/store/stores/amazon_es_plugin.py b/src/calibre/gui2/store/stores/amazon_es_plugin.py index 9b07163..ebfb64e 100644 --- a/src/calibre/gui2/store/stores/amazon_es_plugin.py +++ b/src/calibre/gui2/store/stores/amazon_es_plugin.py @@ -4,7 +4,7 @@ from __future__ import (unicode_literals, division, absolute_import, print_function) -store_version = 11 # Needed for dynamic plugin loading +store_version = 12 # Needed for dynamic plugin loading from contextlib import closing import urllib @@ -27,6 +27,9 @@ DRM_SEARCH_TEXT = 'Simultaneous Device Usage' DRM_FREE_TEXT = 'Unlimited' +def get_user_agent(): + return 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko' + def search_amazon(query, max_results=10, timeout=60, write_html_to=None, base_url=SEARCH_BASE_URL, @@ -41,7 +44,7 @@ def asbytes(x): return x uquery = {asbytes(k):asbytes(v) for k, v in uquery.iteritems()} url = base_url + '?' + urllib.urlencode(uquery).decode('ascii') - br = browser() + br = browser(user_agent=get_user_agent()) counter = max_results with closing(br.open(url, timeout=timeout)) as f: @@ -122,7 +125,7 @@ def search(self, query, max_results=10, timeout=60): def get_details(self, search_result, timeout): url = DETAILS_URL - br = browser() + br = browser(user_agent=get_user_agent()) with closing(br.open(url + search_result.detail_item, timeout=timeout)) as nf: idata = html.fromstring(nf.read()) if idata.xpath('boolean(//div[@class="content"]//li/b[contains(text(), "' + diff --git a/src/calibre/gui2/store/stores/amazon_fr_plugin.py b/src/calibre/gui2/store/stores/amazon_fr_plugin.py index 9684837..28f2a13 100644 --- a/src/calibre/gui2/store/stores/amazon_fr_plugin.py +++ b/src/calibre/gui2/store/stores/amazon_fr_plugin.py @@ -4,7 +4,7 @@ from __future__ import (unicode_literals, division, absolute_import, print_function) -store_version = 11 # Needed for dynamic plugin loading +store_version = 12 # Needed for dynamic plugin loading from contextlib import closing import urllib @@ -27,6 +27,9 @@ DRM_SEARCH_TEXT = 'Simultaneous Device Usage' DRM_FREE_TEXT = 'Unlimited' +def get_user_agent(): + return 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko' + def search_amazon(query, max_results=10, timeout=60, write_html_to=None, base_url=SEARCH_BASE_URL, @@ -41,7 +44,7 @@ def asbytes(x): return x uquery = {asbytes(k):asbytes(v) for k, v in uquery.iteritems()} url = base_url + '?' + urllib.urlencode(uquery).decode('ascii') - br = browser() + br = browser(user_agent=get_user_agent()) counter = max_results with closing(br.open(url, timeout=timeout)) as f: @@ -122,7 +125,7 @@ def search(self, query, max_results=10, timeout=60): def get_details(self, search_result, timeout): url = DETAILS_URL - br = browser() + br = browser(user_agent=get_user_agent()) with closing(br.open(url + search_result.detail_item, timeout=timeout)) as nf: idata = html.fromstring(nf.read()) if idata.xpath('boolean(//div[@class="content"]//li/b[contains(text(), "' + diff --git a/src/calibre/gui2/store/stores/amazon_in_plugin.py b/src/calibre/gui2/store/stores/amazon_in_plugin.py index 1f6afa8..3a5958d 100644 --- a/src/calibre/gui2/store/stores/amazon_in_plugin.py +++ b/src/calibre/gui2/store/stores/amazon_in_plugin.py @@ -4,7 +4,7 @@ from __future__ import (unicode_literals, division, absolute_import, print_function) -store_version = 1 # Needed for dynamic plugin loading +store_version = 2 # Needed for dynamic plugin loading from contextlib import closing import urllib @@ -25,6 +25,9 @@ DRM_SEARCH_TEXT = 'Simultaneous Device Usage' DRM_FREE_TEXT = 'Unlimited' +def get_user_agent(): + return 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko' + def search_amazon(query, max_results=10, timeout=60, write_html_to=None, base_url=SEARCH_BASE_URL, @@ -39,7 +42,7 @@ def asbytes(x): return x uquery = {asbytes(k):asbytes(v) for k, v in uquery.iteritems()} url = base_url + '?' + urllib.urlencode(uquery).decode('ascii') - br = browser() + br = browser(user_agent=get_user_agent()) counter = max_results with closing(br.open(url, timeout=timeout)) as f: @@ -122,7 +125,7 @@ def search(self, query, max_results=10, timeout=60): def get_details(self, search_result, timeout): url = DETAILS_URL - br = browser() + br = browser(user_agent=get_user_agent()) with closing(br.open(url + search_result.detail_item, timeout=timeout)) as nf: idata = html.fromstring(nf.read()) if idata.xpath('boolean(//div[@class="content"]//li/b[contains(text(), "' + diff --git a/src/calibre/gui2/store/stores/amazon_it_plugin.py b/src/calibre/gui2/store/stores/amazon_it_plugin.py index 3a2a364..a68747b 100644 --- a/src/calibre/gui2/store/stores/amazon_it_plugin.py +++ b/src/calibre/gui2/store/stores/amazon_it_plugin.py @@ -4,7 +4,7 @@ from __future__ import (unicode_literals, division, absolute_import, print_function) -store_version = 11 # Needed for dynamic plugin loading +store_version = 12 # Needed for dynamic plugin loading from contextlib import closing import urllib @@ -27,6 +27,9 @@ DRM_SEARCH_TEXT = 'Simultaneous Device Usage' DRM_FREE_TEXT = 'Unlimited' +def get_user_agent(): + return 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko' + def search_amazon(query, max_results=10, timeout=60, write_html_to=None, base_url=SEARCH_BASE_URL, @@ -41,7 +44,7 @@ def asbytes(x): return x uquery = {asbytes(k):asbytes(v) for k, v in uquery.iteritems()} url = base_url + '?' + urllib.urlencode(uquery).decode('ascii') - br = browser() + br = browser(user_agent=get_user_agent()) counter = max_results with closing(br.open(url, timeout=timeout)) as f: @@ -122,7 +125,7 @@ def search(self, query, max_results=10, timeout=60): def get_details(self, search_result, timeout): url = DETAILS_URL - br = browser() + br = browser(user_agent=get_user_agent()) with closing(br.open(url + search_result.detail_item, timeout=timeout)) as nf: idata = html.fromstring(nf.read()) if idata.xpath('boolean(//div[@class="content"]//li/b[contains(text(), "' + diff --git a/src/calibre/gui2/store/stores/amazon_plugin.py b/src/calibre/gui2/store/stores/amazon_plugin.py index afb06ec..398dbce 100644 --- a/src/calibre/gui2/store/stores/amazon_plugin.py +++ b/src/calibre/gui2/store/stores/amazon_plugin.py @@ -4,7 +4,7 @@ from __future__ import (unicode_literals, division, absolute_import, print_function) -store_version = 11 # Needed for dynamic plugin loading +store_version = 12 # Needed for dynamic plugin loading from contextlib import closing import urllib @@ -25,6 +25,9 @@ DRM_SEARCH_TEXT = 'Simultaneous Device Usage' DRM_FREE_TEXT = 'Unlimited' +def get_user_agent(): + return 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko' + def search_amazon(query, max_results=10, timeout=60, write_html_to=None, base_url=SEARCH_BASE_URL, @@ -39,7 +42,7 @@ def asbytes(x): return x uquery = {asbytes(k):asbytes(v) for k, v in uquery.iteritems()} url = base_url + '?' + urllib.urlencode(uquery).decode('ascii') - br = browser() + br = browser(user_agent=get_user_agent()) counter = max_results with closing(br.open(url, timeout=timeout)) as f: @@ -157,7 +160,7 @@ def search(self, query, max_results=10, timeout=60): def get_details(self, search_result, timeout): url = DETAILS_URL - br = browser() + br = browser(user_agent=get_user_agent()) with closing(br.open(url + search_result.detail_item, timeout=timeout)) as nf: idata = html.fromstring(nf.read()) if idata.xpath('boolean(//div[@class="content"]//li/b[contains(text(), "' + diff --git a/src/calibre/gui2/store/stores/amazon_uk_plugin.py b/src/calibre/gui2/store/stores/amazon_uk_plugin.py index 1f3e248..2f4a0e0 100644 --- a/src/calibre/gui2/store/stores/amazon_uk_plugin.py +++ b/src/calibre/gui2/store/stores/amazon_uk_plugin.py @@ -4,7 +4,7 @@ from __future__ import (unicode_literals, division, absolute_import, print_function) -store_version = 11 # Needed for dynamic plugin loading +store_version = 12 # Needed for dynamic plugin loading from contextlib import closing import urllib @@ -25,6 +25,9 @@ DRM_SEARCH_TEXT = 'Simultaneous Device Usage' DRM_FREE_TEXT = 'Unlimited' +def get_user_agent(): + return 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko' + def search_amazon(query, max_results=10, timeout=60, write_html_to=None, base_url=SEARCH_BASE_URL, @@ -39,7 +42,7 @@ def asbytes(x): return x uquery = {asbytes(k):asbytes(v) for k, v in uquery.iteritems()} url = base_url + '?' + urllib.urlencode(uquery).decode('ascii') - br = browser() + br = browser(user_agent=get_user_agent()) counter = max_results with closing(br.open(url, timeout=timeout)) as f: @@ -120,7 +123,7 @@ def search(self, query, max_results=10, timeout=60): def get_details(self, search_result, timeout): url = DETAILS_URL - br = browser() + br = browser(user_agent=get_user_agent()) with closing(br.open(url + search_result.detail_item, timeout=timeout)) as nf: idata = html.fromstring(nf.read()) if idata.xpath('boolean(//div[@class="content"]//li/b[contains(text(), "' + ++++++ Update-db-version-kobo-driver.patch ++++++
From 6ae156f174b04a9463d6a372f36a7c15a4fcf551 Mon Sep 17 00:00:00 2001 From: Kovid Goyal
Date: Fri, 7 Oct 2016 07:36:02 +0530 Subject: [PATCH] Bump supported dbversion in the kobo driver
--- src/calibre/devices/kobo/driver.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/calibre/devices/kobo/driver.py b/src/calibre/devices/kobo/driver.py index 77b466c..e3c8625 100644 --- a/src/calibre/devices/kobo/driver.py +++ b/src/calibre/devices/kobo/driver.py @@ -1309,7 +1309,7 @@ class KOBOTOUCH(KOBO): ' Based on the existing Kobo driver by %s.') % KOBO.author # icon = I('devices/kobotouch.jpg') - supported_dbversion = 129 + supported_dbversion = 130 min_supported_dbversion = 53 min_dbversion_series = 65 min_dbversion_externalid = 65