From 5834a210d941a2a1f4d1166486f64dd199dbb9e5 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 27 Nov 2010 09:07:53 -0700 Subject: [PATCH 1/6] Fix #7691 (can't start app) --- setup/installer/windows/notes.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/setup/installer/windows/notes.rst b/setup/installer/windows/notes.rst index c45cd4cfc9..14c8d28df6 100644 --- a/setup/installer/windows/notes.rst +++ b/setup/installer/windows/notes.rst @@ -21,6 +21,8 @@ This is where all dependencies will be installed. Add C:\Python27\Scripts and C:\Python27 to PATH +Edit mimetypes.py in C:\Python27\Lib and change line 250 UnicodeEncodeError to ValueError + Install setuptools from http://pypi.python.org/pypi/setuptools If there are no windows binaries already compiled for the version of python you are using then download the source and run the following command in the folder where the source has been unpacked:: @@ -32,6 +34,8 @@ Run the following command to install python dependencies:: Install BeautifulSoup 3.0.x manually into site-packages (3.1.x parses broken HTML very poorly) +Install pywin32 and edit win32com\__init__.py setting _frozen = True and +__gen_path__ to a temp dir (otherwise it tries to set it to a dir in the install tree which leads to permission errors) SQLite --------- From 030d4825fdb17ec8b6147ed023df733a34028fa5 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 27 Nov 2010 09:16:48 -0700 Subject: [PATCH 2/6] Fix #7701 (Updated recipe for the Wokingham times) --- ...gham_times.png => the_wokingham_times.png} | Bin resources/recipes/the_workingham_times.recipe | 18 +++++++++--------- 2 files changed, 9 insertions(+), 9 deletions(-) rename resources/images/news/{the_workingham_times.png => the_wokingham_times.png} (100%) diff --git a/resources/images/news/the_workingham_times.png b/resources/images/news/the_wokingham_times.png similarity index 100% rename from resources/images/news/the_workingham_times.png rename to resources/images/news/the_wokingham_times.png diff --git a/resources/recipes/the_workingham_times.recipe b/resources/recipes/the_workingham_times.recipe index ad069f1e9b..2c4f33261a 100644 --- a/resources/recipes/the_workingham_times.recipe +++ b/resources/recipes/the_workingham_times.recipe @@ -6,8 +6,8 @@ www.getwokingham.co.uk from calibre.web.feeds.recipes import BasicNewsRecipe -class TheWorkinghamTimes(BasicNewsRecipe): - title = 'The Workingham Times' +class TheWokinghamTimes(BasicNewsRecipe): + title = 'The Wokingham Times' __author__ = 'Darko Miletic' description = 'News from UK' oldest_article = 2 @@ -19,11 +19,11 @@ class TheWorkinghamTimes(BasicNewsRecipe): category = 'news, UK, world' language = 'en_GB' publication_type = 'newsportal' - extra_css = """ + extra_css = """ body{ font-family: Arial,sans-serif } - img{display: block; margin-bottom: 0.4em} + img{display: block; margin-bottom: 0.4em} """ - + conversion_options = { 'comments' : description ,'tags' : category @@ -32,10 +32,10 @@ class TheWorkinghamTimes(BasicNewsRecipe): } keep_only_tags = [dict(name='div', attrs={'id':'article-body'})] - remove_tags = [ + remove_tags = [ dict(name='div' , attrs={'class':['ad']}) ,dict(name=['meta','base','iframe','embed','object']) - ,dict(name='span' , attrs={'class':'caption small'}) + ,dict(name='span' , attrs={'class':'caption small'}) ] remove_attributes = ['width','height','lang'] @@ -55,5 +55,5 @@ class TheWorkinghamTimes(BasicNewsRecipe): item.replaceWith(str) else: item.name = 'span' - del item['href'] - return soup + del item['href'] + return soup \ No newline at end of file From 7182f45c98a2f3c2dc346d338b060be739f5d4b9 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 27 Nov 2010 10:07:00 -0700 Subject: [PATCH 3/6] Fix #7694 (Calibre-parallel.exe stopped working error: downlaoding NY Times) --- src/calibre/__init__.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/calibre/__init__.py b/src/calibre/__init__.py index a43b0126ff..6e39f56266 100644 --- a/src/calibre/__init__.py +++ b/src/calibre/__init__.py @@ -362,6 +362,8 @@ def walk(dir): def strftime(fmt, t=None): ''' A version of strftime that returns unicode strings and tries to handle dates before 1900 ''' + if not fmt: + return u'' if t is None: t = time.localtime() if hasattr(t, 'timetuple'): @@ -378,7 +380,8 @@ def strftime(fmt, t=None): if isinstance(fmt, unicode): fmt = fmt.encode('mbcs') ans = plugins['winutil'][0].strftime(fmt, t) - ans = time.strftime(fmt, t).decode(preferred_encoding, 'replace') + else: + ans = time.strftime(fmt, t).decode(preferred_encoding, 'replace') if early_year: ans = ans.replace('_early year hack##', str(orig_year)) return ans From 128522a946f1d72932d08c237cfbe8424369baa5 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 27 Nov 2010 10:31:08 -0700 Subject: [PATCH 4/6] ... --- setup/installer/windows/freeze.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/setup/installer/windows/freeze.py b/setup/installer/windows/freeze.py index 118b6690f0..30cc2a97af 100644 --- a/setup/installer/windows/freeze.py +++ b/setup/installer/windows/freeze.py @@ -108,8 +108,7 @@ class Win32Freeze(Command, WixMixIn): for f in x[-1]: if f.lower().endswith('.dll'): f = self.j(x[0], f) - if 'py2exe' not in f: - shutil.copy2(f, self.dll_dir) + shutil.copy2(f, self.dll_dir) shutil.copy2( r'C:\Python%(v)s\Lib\site-packages\pywin32_system32\pywintypes%(v)s.dll' % dict(v=self.py_ver), self.dll_dir) @@ -118,7 +117,7 @@ class Win32Freeze(Command, WixMixIn): ans = [] for x in items: ext = os.path.splitext(x)[1] - if (not ext and (x in ('demos', 'tests') or 'py2exe' in x)) or \ + if (not ext and (x in ('demos', 'tests'))) or \ (ext in ('.dll', '.chm', '.htm', '.txt')): ans.append(x) return ans From 477dc900891317568e00beeb3ac37f36a80d1dd3 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 27 Nov 2010 11:21:22 -0700 Subject: [PATCH 5/6] Fix #7685 (Fetch News broken on v0.7.30. Images and photos don't show on e-reader.) --- setup/installer/windows/notes.rst | 8 ++++++-- src/calibre/__init__.py | 7 +++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/setup/installer/windows/notes.rst b/setup/installer/windows/notes.rst index 14c8d28df6..ed78bf3158 100644 --- a/setup/installer/windows/notes.rst +++ b/setup/installer/windows/notes.rst @@ -21,7 +21,7 @@ This is where all dependencies will be installed. Add C:\Python27\Scripts and C:\Python27 to PATH -Edit mimetypes.py in C:\Python27\Lib and change line 250 UnicodeEncodeError to ValueError +Edit mimetypes.py in C:\Python27\Lib and change line 250 UnicodeEncodeError to ValueError and set _winreg = None to prevent reading of mimetypes from the windows registry Install setuptools from http://pypi.python.org/pypi/setuptools If there are no windows binaries already compiled for the version of python you are using then download the source and run the following command in the folder where the source has been unpacked:: @@ -70,7 +70,11 @@ Compiling instructions:: Python Imaging Library ------------------------ -Install as normal using provided installer. +Install as normal using installer at http://www.lfd.uci.edu/~gohlke/pythonlibs/ + +Test it on the target system with + +calibre-debug -c "import _imaging, _imagingmath, _imagingft, _imagingcms" Libunrar ---------- diff --git a/src/calibre/__init__.py b/src/calibre/__init__.py index 6e39f56266..688d7793a4 100644 --- a/src/calibre/__init__.py +++ b/src/calibre/__init__.py @@ -48,6 +48,13 @@ mimetypes.add_type('application/x-cbz', '.cbz') mimetypes.add_type('application/x-cbr', '.cbr') mimetypes.add_type('application/x-koboreader-ebook', '.kobo') mimetypes.add_type('image/wmf', '.wmf') +mimetypes.add_type('image/jpeg', '.jpg') +mimetypes.add_type('image/jpeg', '.jpeg') +mimetypes.add_type('image/png', '.png') +mimetypes.add_type('image/gif', '.gif') +mimetypes.add_type('image/bmp', '.bmp') +mimetypes.add_type('image/svg+xml', '.svg') + guess_type = mimetypes.guess_type import cssutils cssutils.log.setLevel(logging.WARN) From 31a63fb6d21ee3fa43f4da5aad804a123d5e454f Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 27 Nov 2010 11:29:50 -0700 Subject: [PATCH 6/6] version 0.7.31 --- Changelog.yaml | 8 ++++++++ src/calibre/constants.py | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/Changelog.yaml b/Changelog.yaml index bde3841981..3e5dbb06fc 100644 --- a/Changelog.yaml +++ b/Changelog.yaml @@ -4,6 +4,14 @@ # for important features/bug fixes. # Also, each release can have new and improved recipes. +- version: 0.7.31 + date: 2010-11-27 + + bug fixes: + - title: "Fix various regressions in the calibre windows build caused by the switch to python 2.7. If you are on windows and upgraded to 0.7.30, it is highly recommended that you upgrade to 0.7.31. If you are not on windows, you can ignore 0.7.31" + tickets: [7685, 7694, 7691] + + - version: 0.7.30 date: 2010-11-26 diff --git a/src/calibre/constants.py b/src/calibre/constants.py index ba597fcc30..fc33067f49 100644 --- a/src/calibre/constants.py +++ b/src/calibre/constants.py @@ -2,7 +2,7 @@ __license__ = 'GPL v3' __copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net' __docformat__ = 'restructuredtext en' __appname__ = 'calibre' -__version__ = '0.7.30' +__version__ = '0.7.31' __author__ = "Kovid Goyal " import re