Hello community,

here is the log from the commit of package python-djvulibre for 
openSUSE:Factory checked in at 2014-11-26 10:33:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-djvulibre (Old)
 and      /work/SRC/openSUSE:Factory/.python-djvulibre.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-djvulibre"

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-djvulibre/python-djvulibre.changes        
2013-10-25 11:14:26.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-djvulibre.new/python-djvulibre.changes   
2014-11-26 10:33:10.000000000 +0100
@@ -1,0 +2,26 @@
+Sun Nov 16 15:59:43 UTC 2014 - lazy.k...@opensuse.org
+
+- Add runtime dependency: djvulibre.
+
+-------------------------------------------------------------------
+Thu Nov 13 13:47:47 UTC 2014 - lazy.k...@opensuse.org
+
+- Update to 0.3.10.
+  * Improve error handling in examples.
+  * Improve the test suite:
+    + When running external programs, don't reset environment
+    completely, but only set LC_ALL=C.
+    + Skip more tests (instead of making them fail) when they are
+    run in an unsuitable environment.
+    + Correctly detect ASCII locale encoding on FreeBSD (and
+    possibly other non-GNU systems).
+    + Don't hard-code libc error messages.
+    + Fix test_bad_io failures with Cython ≥ 0.21.
+  * Improve setup.py:
+    + Make it possible to build the package natively on Windows.
+  * Use HTTPS URLs when they are available, in documentation and
+    code.
+- Run tests. BuildRequires: djvulibre, python-nose.
+- Add the source GPG signature and a keyring.
+
+-------------------------------------------------------------------

Old:
----
  python-djvulibre-0.3.9.tar.gz

New:
----
  python-djvulibre-0.3.10.tar.gz
  python-djvulibre-0.3.10.tar.gz.asc
  python-djvulibre.keyring

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-djvulibre.spec ++++++
--- /var/tmp/diff_new_pack.v4thA7/_old  2014-11-26 10:33:11.000000000 +0100
+++ /var/tmp/diff_new_pack.v4thA7/_new  2014-11-26 10:33:11.000000000 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python-djvulibre
 #
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,24 +17,28 @@
 
 
 Name:           python-djvulibre
-Version:        0.3.9
+Version:        0.3.10
 Release:        0
 Summary:        Python Support for the DjVu Image Format
 License:        GPL-2.0
 Group:          Development/Libraries/Python
 Url:            http://jwilk.net/software/python-djvulibre
-Source0:        
http://pypi.python.org/packages/source/p/%{name}/%{name}-%{version}.tar.gz
+Source0:        
http://pypi.python.org/packages/source/p/python-djvulibre/%{name}-%{version}.tar.gz
+Source1:        
http://pypi.python.org/packages/source/p/python-djvulibre/%{name}-%{version}.tar.gz.asc
+Source2:        %{name}.keyring
 BuildRequires:  graphviz
 BuildRequires:  graphviz-gnome
 BuildRequires:  pkg-config
 BuildRequires:  python-Cython
+BuildRequires:  python-Sphinx
 BuildRequires:  python-devel
 BuildRequires:  python-setuptools
-# Starting openSUSE 12.1 the package name is python-Sphinx.
-BuildRequires:  python-sphinx
 BuildRequires:  pkgconfig(ddjvuapi)
+# Required for tests.
+BuildRequires:  djvulibre
+BuildRequires:  python-nose
+Requires:       djvulibre
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
-%py_requires
 
 %description
 python-djvulibre is a set of Python bindings for the DjVuLibre library,
@@ -63,23 +67,28 @@
 %install
 python setup.py install \
     --root=%{buildroot} \
-    --prefix=%{_prefix} \
-    --record-rpm=INSTALLED_FILES
-install -dm 0755 %{buildroot}%{_defaultdocdir}/%{name}-doc/_images
-install -dm 0755 %{buildroot}%{_defaultdocdir}/%{name}-doc/_static
+    --prefix=%{_prefix}
+install -dm 0755 %{buildroot}%{_defaultdocdir}/%{name}-doc/_images/
+install -dm 0755 %{buildroot}%{_defaultdocdir}/%{name}-doc/_static/
 install -m 0644 build/sphinx/html/{*.html,*.js} \
-    %{buildroot}%{_defaultdocdir}/%{name}-doc
+    %{buildroot}%{_defaultdocdir}/%{name}-doc/
 install -m 0644 build/sphinx/html/_images/* \
-    %{buildroot}%{_defaultdocdir}/%{name}-doc/_images
+    %{buildroot}%{_defaultdocdir}/%{name}-doc/_images/
 install -m 0644 build/sphinx/html/_static/* \
-    %{buildroot}%{_defaultdocdir}/%{name}-doc/_static
+    %{buildroot}%{_defaultdocdir}/%{name}-doc/_static/
 
-%files -f INSTALLED_FILES
+%check
+cd tests/
+ln -sf %{buildroot}%{python_sitearch}/djvu/ djvu
+python -m nose --verbose --no-skip
+
+%files
 %defattr(-,root,root,-)
-%doc COPYING doc/changelog examples
+%doc COPYING doc/changelog examples/
+%{python_sitearch}/*
 
 %files doc
 %defattr(-,root,root,-)
-%doc %{_defaultdocdir}/%{name}-doc
+%doc %{_defaultdocdir}/%{name}-doc/
 
 %changelog

++++++ python-djvulibre-0.3.9.tar.gz -> python-djvulibre-0.3.10.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-djvulibre-0.3.9/COPYING 
new/python-djvulibre-0.3.10/COPYING
--- old/python-djvulibre-0.3.9/COPYING  2009-06-04 16:55:28.000000000 +0200
+++ new/python-djvulibre-0.3.10/COPYING 2012-08-07 12:29:43.000000000 +0200
@@ -1,12 +1,12 @@
-                   GNU GENERAL PUBLIC LICENSE
-                      Version 2, June 1991
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 2, June 1991
 
  Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  Everyone is permitted to copy and distribute verbatim copies
  of this license document, but changing it is not allowed.
 
-                           Preamble
+                            Preamble
 
   The licenses for most software are designed to take away your
 freedom to share and change it.  By contrast, the GNU General Public
@@ -56,7 +56,7 @@
   The precise terms and conditions for copying, distribution and
 modification follow.
 
-                   GNU GENERAL PUBLIC LICENSE
+                    GNU GENERAL PUBLIC LICENSE
    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
 
   0. This License applies to any program or other work which contains
@@ -255,7 +255,7 @@
 of preserving the free status of all derivatives of our free software and
 of promoting the sharing and reuse of software generally.
 
-                           NO WARRANTY
+                            NO WARRANTY
 
   11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
 FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
@@ -277,9 +277,9 @@
 PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
 POSSIBILITY OF SUCH DAMAGES.
 
-                    END OF TERMS AND CONDITIONS
+                     END OF TERMS AND CONDITIONS
 
-           How to Apply These Terms to Your New Programs
+            How to Apply These Terms to Your New Programs
 
   If you develop a new program, and you want it to be of the greatest
 possible use to the public, the best way to achieve this is to make it
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-djvulibre-0.3.9/PKG-INFO 
new/python-djvulibre-0.3.10/PKG-INFO
--- old/python-djvulibre-0.3.9/PKG-INFO 2012-03-19 21:02:31.000000000 +0100
+++ new/python-djvulibre-0.3.10/PKG-INFO        2014-11-04 11:48:02.000000000 
+0100
@@ -1,14 +1,14 @@
 Metadata-Version: 1.1
 Name: python-djvulibre
-Version: 0.3.9
+Version: 0.3.10
 Summary: Python support for the DjVu image format
 Home-page: http://jwilk.net/software/python-djvulibre
 Author: Jakub Wilk
 Author-email: jw...@jwilk.net
 License: GNU GPL 2
-Description: *python-djvulibre* is a set of `Python <http://python.org>`_ 
bindings for the
-        `DjVuLibre <http://djvu.sf.net/>`_ library, an open source 
implementation of
-        `DjVu <http://djvu.org/>`_.
+Description: *python-djvulibre* is a set of `Python <https://www.python.org>`_ 
bindings for
+        the `DjVuLibre <http://djvu.sf.net/>`_ library, an open source 
implementation
+        of `DjVu <http://djvu.org/>`_.
 Platform: all
 Classifier: Development Status :: 4 - Beta
 Classifier: Intended Audience :: Developers
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-djvulibre-0.3.9/djvu/decode.pyx 
new/python-djvulibre-0.3.10/djvu/decode.pyx
--- old/python-djvulibre-0.3.9/djvu/decode.pyx  2012-03-18 23:18:33.000000000 
+0100
+++ new/python-djvulibre-0.3.10/djvu/decode.pyx 2014-11-02 17:39:42.000000000 
+0100
@@ -1,4 +1,4 @@
-# Copyright © 2007-2012 Jakub Wilk <jw...@jwilk.net>
+# Copyright © 2007-2014 Jakub Wilk <jw...@jwilk.net>
 #
 # This package is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -57,7 +57,7 @@
 from traceback import format_exc
 
 # The two lines below are solely to work-around Cython bug:
-# http://bugs.debian.org/620859
+# https://bugs.debian.org/620859
 cdef object MemoryError
 IF PY3K:
     from builtins import MemoryError
@@ -298,7 +298,7 @@
         Exception.__init__(
             self,
             'A DjVuLibre bug has been encountered.\n'
-            'See <http://bugs.debian.org/%d> for details.\n'
+            'See <https://bugs.debian.org/%d> for details.\n'
             'Please upgrade your DjVuLibre.' % (debian_bug_no,)
         )
 
@@ -1095,7 +1095,7 @@
 
         .. warning::
             Due to a DjVuLibre (<= 3.5.20) bug, this method may be broken.
-            See http://bugs.debian.org/467282 for details.
+            See https://bugs.debian.org/467282 for details.
         '''
         cdef char * optv[2]
         cdef int optc
@@ -1251,7 +1251,7 @@
         **Warning***
         ------------
         Due to a DjVuLibre (<= 3.5.20) bug, this method may be broken.
-        See http://bugs.debian.org/469122 for details.
+        See https://bugs.debian.org/469122 for details.
         '''
         cdef FILE* output
         cdef SaveJob job
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-djvulibre-0.3.9/djvu/sexpr.pyx 
new/python-djvulibre-0.3.10/djvu/sexpr.pyx
--- old/python-djvulibre-0.3.9/djvu/sexpr.pyx   2012-03-19 14:30:42.000000000 
+0100
+++ new/python-djvulibre-0.3.10/djvu/sexpr.pyx  2014-11-02 17:39:47.000000000 
+0100
@@ -1,4 +1,4 @@
-# Copyright © 2007-2012 Jakub Wilk <jw...@jwilk.net>
+# Copyright © 2007-2014 Jakub Wilk <jw...@jwilk.net>
 #
 # This package is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -798,7 +798,7 @@
         # Normally one would use
         #   self[len(self):] = …
         # but Cython (at least 0.13) generates broken code for such a 
statement.
-        # http://bugs.debian.org/604963
+        # https://bugs.debian.org/604963
         iter(iterable)
         self[slice(len(self), None, None)] = iterable
 
@@ -806,7 +806,7 @@
         # Normally one would use
         #   self[len(self):] = …
         # but Cython (at least 0.13) generates broken code for such a 
statement.
-        # http://bugs.debian.org/604963
+        # https://bugs.debian.org/604963
         iter(iterable)
         self[slice(len(self), None, None)] = iterable
         return self
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-djvulibre-0.3.9/doc/changelog 
new/python-djvulibre-0.3.10/doc/changelog
--- old/python-djvulibre-0.3.9/doc/changelog    2012-03-19 20:41:55.000000000 
+0100
+++ new/python-djvulibre-0.3.10/doc/changelog   2014-11-04 11:44:13.000000000 
+0100
@@ -1,14 +1,33 @@
+python-djvulibre (0.3.10) unstable; urgency=low
+
+  * Improve error handling in examples.
+  * Improve the test suite:
+    + When running external programs, don't reset environment completely, but
+      only set LC_ALL=C.
+    + Skip more tests (instead of making them fail) when they are run in
+      an unsuitable environment.
+    + Correctly detect ASCII locale encoding on FreeBSD (and possibly other
+      non-GNU systems).
+    + Don't hard-code libc error messages.
+    + Fix test_bad_io failures with Cython ≥ 0.21.
+  * Improve setup.py:
+    + Make it possible to build the package natively on Windows.
+      https://bitbucket.org/jwilk/python-djvulibre/issue/1
+  * Use HTTPS URLs when they are available, in documentation and code.
+
+ -- Jakub Wilk <jw...@jwilk.net>  Tue, 04 Nov 2014 11:44:09 +0100
+
 python-djvulibre (0.3.9) unstable; urgency=low
 
   * Ensure that all S-expression output is 7-bit.
-    This is work-around for <http://bugs.debian.org/664626>.
+    This is work-around for <https://bugs.debian.org/664626>.
 
  -- Jakub Wilk <jw...@jwilk.net>  Mon, 19 Mar 2012 20:41:53 +0100
 
 python-djvulibre (0.3.8) unstable; urgency=low
  
   * Ensure that S-expression input/output functions are always initialized.
-    This is work-around for <http://bugs.debian.org/664442>.
+    This is work-around for <https://bugs.debian.org/664442>.
 
  -- Jakub Wilk <jw...@jwilk.net>  Sun, 18 Mar 2012 23:44:55 +0100
 
@@ -49,10 +68,10 @@
   * Optimize DocumentPages.__len__() and DocumentFiles.__len__().
   * Fix compatibility with Python 3.X (broken in 0.3.3).
   * Update various external documentation URLs.
-    http://bugs.debian.org/627290
+    https://bugs.debian.org/627290
   * Improve test suite:
     + Normalize whitespace in ps2ascii output.
-      http://bugs.debian.org/646177
+      https://bugs.debian.org/646177
   * Improve setup.py:
     + Print a more meaningful error message if pkg-config fails.
     + build_sphinx is now available even without setuptools.
@@ -67,7 +86,7 @@
   * Add Windows-specific module djvu.dllpath, which is aimed to ease finding
     DjVuLibre DLLs in non-standard locations.
   * Make expression and symbol objects picklable.
-  * Add work-around for <http://bugs.debian.org/620859>.
+  * Add work-around for <https://bugs.debian.org/620859>.
   * Fix test suite compatibility with Python 3.
 
  -- Jakub Wilk <jw...@jwilk.net>  Mon, 04 Apr 2011 21:06:01 +0200
@@ -81,9 +100,9 @@
   * Add ‘+=’ and ‘del’ operators for list expressions.
   * Fix compatibility with Cython 0.12.
   * Fix compatibility with some non-POSIX operating systems.
-  * Add work-around for <http://bugs.python.org/issue969718>.
+  * Add work-around for <https://bugs.python.org/issue969718>.
   * Improve setup.py:
-    + Add work-around for <http://bugs.debian.org/607112>.
+    + Add work-around for <https://bugs.debian.org/607112>.
     + Make ‘clean --all’ remove temporary *.pxi and *.c files.
     + Don't import Cython modules; calls the ‘cython’ binary instead.
     + Allow cross-compilation using MinGW cross compiler.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-djvulibre-0.3.9/doc/source/conf.py 
new/python-djvulibre-0.3.10/doc/source/conf.py
--- old/python-djvulibre-0.3.9/doc/source/conf.py       2012-03-18 
23:28:16.000000000 +0100
+++ new/python-djvulibre-0.3.10/doc/source/conf.py      2014-05-12 
12:37:54.000000000 +0200
@@ -38,7 +38,7 @@
 html_use_modindex = True
 html_use_index = False
 
-intersphinx_mapping = {'http://docs.python.org/': None}
+intersphinx_mapping = {'https://docs.python.org/': None}
 
 rst_epilog = '''
 .. |djvu3ref| replace:: Lizardtech DjVu Reference
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-djvulibre-0.3.9/doc/source/documents.txt 
new/python-djvulibre-0.3.10/doc/source/documents.txt
--- old/python-djvulibre-0.3.9/doc/source/documents.txt 2010-09-05 
18:39:53.000000000 +0200
+++ new/python-djvulibre-0.3.10/doc/source/documents.txt        2014-05-12 
12:36:27.000000000 +0200
@@ -88,7 +88,7 @@
 
       .. warning::
          Due to a DjVuLibre (≤ 3.5.20) bug, this method may be broken.
-         See http://bugs.debian.org/467282 for details.
+         See https://bugs.debian.org/467282 for details.
 
    .. method:: export_ps(file[, …][, wait=True])
 
@@ -211,7 +211,7 @@
 
       .. warning::
          Due to a DjVuLibre (≤ 3.5.20) bug, this method may be broken.
-         See http://bugs.debian.org/469122 for details.
+         See https://bugs.debian.org/469122 for details.
 
 .. currentmodule:: djvu.decode
 .. class:: SaveJob
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-djvulibre-0.3.9/examples/djvu-crop-text 
new/python-djvulibre-0.3.10/examples/djvu-crop-text
--- old/python-djvulibre-0.3.9/examples/djvu-crop-text  2012-03-18 
23:22:19.000000000 +0100
+++ new/python-djvulibre-0.3.10/examples/djvu-crop-text 2013-11-23 
17:23:42.000000000 +0100
@@ -1,7 +1,7 @@
 #!/usr/bin/python
 # encoding=UTF-8
 
-# Copyright © 2008-2010 Jakub Wilk <jw...@jwilk.net>
+# Copyright © 2008-2013 Jakub Wilk <jw...@jwilk.net>
 #
 # This package is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -13,8 +13,9 @@
 # General Public License for more details.
 
 import argparse
-import sys
+import os
 import subprocess
+import sys
 
 import djvu.sexpr
 import djvu.decode
@@ -68,7 +69,9 @@
     def handle_message(self, message):
         if isinstance(message, djvu.decode.ErrorMessage):
             print >>sys.stderr, message
-            sys.exit(1)
+            # Exceptions in handle_message() are ignored, so sys.exit()
+            # wouldn't work here.
+            os._exit(1)
 
     def process_page(self, page):
         print >>sys.stderr, '- Page #%d' % (page.n + 1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-djvulibre-0.3.9/examples/djvu-dump-text 
new/python-djvulibre-0.3.10/examples/djvu-dump-text
--- old/python-djvulibre-0.3.9/examples/djvu-dump-text  2012-03-18 
23:22:59.000000000 +0100
+++ new/python-djvulibre-0.3.10/examples/djvu-dump-text 2013-11-23 
17:23:42.000000000 +0100
@@ -1,7 +1,7 @@
 #!/usr/bin/python
 # encoding=UTF-8
 
-# Copyright © 2008-2010 Jakub Wilk <jw...@jwilk.net>
+# Copyright © 2008-2013 Jakub Wilk <jw...@jwilk.net>
 #
 # This package is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -13,12 +13,16 @@
 # General Public License for more details.
 
 import sys
+import os
+
 import djvu.decode
 
 def print_text(sexpr, level=0):
     if level > 0:
         print ' ' * (2 * level - 1),
     if isinstance(sexpr, djvu.sexpr.ListExpression):
+        if len(sexpr) == 0:
+            return
         print str(sexpr[0].value), [sexpr[i].value for i in xrange(1, 5)]
         for child in sexpr[5:]:
             print_text(child, level + 1)
@@ -30,7 +34,9 @@
     def handle_message(self, message):
         if isinstance(message, djvu.decode.ErrorMessage):
             print >>sys.stderr, message
-            sys.exit(1)
+            # Exceptions in handle_message() are ignored, so sys.exit()
+            # wouldn't work here.
+            os._exit(1)
 
     def process(self, path):
         document = self.new_document(djvu.decode.FileURI(path))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-djvulibre-0.3.9/examples/djvu2png 
new/python-djvulibre-0.3.10/examples/djvu2png
--- old/python-djvulibre-0.3.9/examples/djvu2png        2012-03-18 
23:25:09.000000000 +0100
+++ new/python-djvulibre-0.3.10/examples/djvu2png       2013-11-23 
17:23:42.000000000 +0100
@@ -1,7 +1,7 @@
 #!/usr/bin/python
 # encoding=UTF-8
 
-# Copyright © 2010 Jakub Wilk <jw...@jwilk.net>
+# Copyright © 2010-2013 Jakub Wilk <jw...@jwilk.net>
 #
 # This package is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -13,6 +13,7 @@
 # General Public License for more details.
 
 import argparse
+import os
 import sys
 
 import cairo
@@ -29,7 +30,9 @@
     def handle_message(self, message):
         if isinstance(message, djvu.decode.ErrorMessage):
             print >>sys.stderr, message
-            sys.exit(1)
+            # Exceptions in handle_message() are ignored, so sys.exit()
+            # wouldn't work here.
+            os._exit(1)
 
     def process(self, djvu_path, png_path, mode):
         document = self.new_document(djvu.decode.FileURI(djvu_path))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-djvulibre-0.3.9/python_djvulibre.egg-info/PKG-INFO 
new/python-djvulibre-0.3.10/python_djvulibre.egg-info/PKG-INFO
--- old/python-djvulibre-0.3.9/python_djvulibre.egg-info/PKG-INFO       
2012-03-19 21:02:31.000000000 +0100
+++ new/python-djvulibre-0.3.10/python_djvulibre.egg-info/PKG-INFO      
2014-11-04 11:48:02.000000000 +0100
@@ -1,14 +1,14 @@
 Metadata-Version: 1.1
 Name: python-djvulibre
-Version: 0.3.9
+Version: 0.3.10
 Summary: Python support for the DjVu image format
 Home-page: http://jwilk.net/software/python-djvulibre
 Author: Jakub Wilk
 Author-email: jw...@jwilk.net
 License: GNU GPL 2
-Description: *python-djvulibre* is a set of `Python <http://python.org>`_ 
bindings for the
-        `DjVuLibre <http://djvu.sf.net/>`_ library, an open source 
implementation of
-        `DjVu <http://djvu.org/>`_.
+Description: *python-djvulibre* is a set of `Python <https://www.python.org>`_ 
bindings for
+        the `DjVuLibre <http://djvu.sf.net/>`_ library, an open source 
implementation
+        of `DjVu <http://djvu.org/>`_.
 Platform: all
 Classifier: Development Status :: 4 - Beta
 Classifier: Intended Audience :: Developers
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-djvulibre-0.3.9/setup.py 
new/python-djvulibre-0.3.10/setup.py
--- old/python-djvulibre-0.3.9/setup.py 2012-03-18 23:27:27.000000000 +0100
+++ new/python-djvulibre-0.3.10/setup.py        2014-11-04 11:10:05.000000000 
+0100
@@ -1,6 +1,6 @@
 # encoding=UTF-8
 
-# Copyright © 2007-2011 Jakub Wilk <jw...@jwilk.net>
+# Copyright © 2007-2014 Jakub Wilk <jw...@jwilk.net>
 #
 # This package is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -12,9 +12,9 @@
 # General Public License for more details.
 
 '''
-*python-djvulibre* is a set of `Python <http://python.org>`_ bindings for the
-`DjVuLibre <http://djvu.sf.net/>`_ library, an open source implementation of
-`DjVu <http://djvu.org/>`_.
+*python-djvulibre* is a set of `Python <https://www.python.org>`_ bindings for
+the `DjVuLibre <http://djvu.sf.net/>`_ library, an open source implementation
+of `DjVu <http://djvu.org/>`_.
 '''
 
 classifiers = '''
@@ -30,10 +30,11 @@
 Topic :: Multimedia :: Graphics
 Topic :: Multimedia :: Graphics :: Graphics Conversion
 Topic :: Text Processing
-'''.strip().split('\n')
+'''.strip().splitlines()
 
 import glob
 import os
+import re
 import sys
 import subprocess as ipc
 
@@ -42,6 +43,9 @@
 else:
     mingw32cross = None
 
+if os.name == 'nt':
+    import djvu.dllpath
+
 # Just to make sure setuptools won't try to be clever:
 fake_module = type(sys)('fake_module')
 fake_module.build_ext = None
@@ -66,7 +70,7 @@
     sphinx_setup_command = None
 
 def ext_modules():
-    for pyx_file in glob.glob(os.path.join('djvu', '*.pyx')):
+    for pyx_file in glob.iglob(os.path.join('djvu', '*.pyx')):
         module, _ = os.path.splitext(os.path.basename(pyx_file))
         yield module
 ext_modules = list(ext_modules())
@@ -85,6 +89,16 @@
 PKG_CONFIG_FLAG_MAP = {'-I': 'include_dirs', '-L': 'library_dirs', '-l': 
'libraries'}
 
 def pkg_config(*packages, **kwargs):
+    fallback = dict(
+        libraries=['djvulibre'],
+    )
+    if os.name == 'nt':
+        dll_path = djvu.dllpath.guess_dll_path()
+        if dll_path is not None:
+            fallback.update(
+                extra_compile_args=['-I' + os.path.join(dll_path, 'include')],
+                extra_link_args=['-L' + os.path.join(dll_path)],
+            )
     try:
         pkgconfig = ipc.Popen(
             ['pkg-config', '--libs', '--cflags'] + list(packages),
@@ -92,13 +106,14 @@
         )
     except OSError:
         _, ex, _ = sys.exc_info()
-        ex.strerror = 'pkg-config: ' + ex.strerror
-        raise
+        distutils.log.warn('cannot execute pkg-config: ' + str(ex))
+        return fallback
     stdout, stderr = pkgconfig.communicate()
     stdout = stdout.decode('ASCII', 'replace')
     stderr = stderr.decode('ASCII', 'replace')
     if pkgconfig.returncode:
-        raise IOError('[pkg-config] ' + stderr.strip())
+        distutils.log.warn('pkg-config failed: ' + stderr.strip())
+        return fallback
     kwargs.setdefault('extra_link_args', [])
     kwargs.setdefault('extra_compile_args', ['-Wno-uninitialized'])
     for argument in stdout.split():
@@ -111,17 +126,9 @@
             kwargs['extra_compile_args'].append(argument)
     return kwargs
 
-if mingw32cross:
-
-    def pkg_config(*packages, **kwargs):
-        return dict(
-            libraries=['libdjvulibre'],
-        )
-        return kwargs
-
 __version__ = get_version()
 
-# Work-around for <http://bugs.python.org/issue969718>:
+# Work-around for <https://bugs.python.org/issue969718>:
 try:
     del os.environ['CFLAGS']
 except KeyError:
@@ -164,25 +171,33 @@
             distutils.log.info('cythoning %r extension', ext.name)
             def build_c(source, target):
                 distutils.spawn.spawn(['cython', source])
-                # XXX This is needed to work around 
<http://bugs.debian.org/607112>.
+                # XXX This is needed to work around 
<https://bugs.debian.org/607112>.
                 # Fortunately, python-djvulibre doesn't really need 
__Pyx_GetVtable().
-                distutils.spawn.spawn(['sed', '-i~', '-e',
-                    r's/\(static int __Pyx_GetVtable(PyObject [*]dict, void 
[*]vtabptr) {\)/\1 return 0;/',
-                    target
-                ])
+                file = open(target, 'r+')
+                try:
+                    contents = file.read()
+                    contents = re.compile(
+                        r'(?<=^static int __Pyx_GetVtable\(PyObject [*]dict, 
void [*]vtabptr\) {)$',
+                        re.MULTILINE
+                    ).sub(' return 0;', contents)
+                    file.seek(0)
+                    file.truncate()
+                    file.write(contents)
+                finally:
+                    file.close()
             self.make_file(depends, target, build_c, [source, target])
 
 class clean(distutils.command.clean.clean):
 
     def run(self):
         if self.all:
-            for wildcard in 'djvu/*.c', 'djvu/*.c~', 'djvu/config.pxi':
+            for wildcard in 'djvu/*.c', 'djvu/config.pxi':
                 filenames = glob.glob(wildcard)
                 if filenames:
                     distutils.log.info('removing %r', wildcard)
                 if self.dry_run:
                     continue
-                for filename in glob.glob(wildcard):
+                for filename in filenames:
                     os.remove(filename)
         return distutils.command.clean.clean.run(self)
 
@@ -198,12 +213,15 @@
             # use instead.
             build_ext = self.get_finalized_command('build_ext')
             sys.path[:0] = [build_ext.build_lib]
-            import djvu
+            for ext in ext_modules:
+                __import__('djvu.' + ext)
             del sys.path[0]
             sphinx_setup_command.BuildDoc.run(self)
 else:
     build_sphinx = None
 
+compiler_flags = pkg_config('ddjvuapi')
+
 setup_params = dict(
     name = 'python-djvulibre',
     version = __version__,
@@ -220,7 +238,7 @@
         distutils.command.build_ext.Extension(
             'djvu.%s' % name, ['djvu/%s.pyx' % name],
             depends = ['djvu/common.pxi'] + glob.glob('djvu/*.pxd'),
-            **pkg_config('ddjvuapi')
+            **compiler_flags
         )
         for name in ext_modules
     ],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-djvulibre-0.3.9/tests/common.py 
new/python-djvulibre-0.3.10/tests/common.py
--- old/python-djvulibre-0.3.9/tests/common.py  2012-03-19 20:38:40.000000000 
+0100
+++ new/python-djvulibre-0.3.10/tests/common.py 2013-06-11 22:44:35.000000000 
+0200
@@ -13,6 +13,7 @@
 
 from __future__ import with_statement
 
+import codecs
 import contextlib
 import locale
 import os
@@ -41,7 +42,7 @@
     locale.LC_MESSAGES = locale.LC_ALL
 
 locale_encoding = locale.getpreferredencoding()
-if locale_encoding == 'ANSI_X3.4-1968':
+if codecs.lookup(locale_encoding) == codecs.lookup('US-ASCII'):
     locale_encoding = 'UTF-8'
 
 py3k = sys.version_info >= (3, 0)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-djvulibre-0.3.9/tests/test_decode.py 
new/python-djvulibre-0.3.10/tests/test_decode.py
--- old/python-djvulibre-0.3.9/tests/test_decode.py     2012-03-19 
15:27:22.000000000 +0100
+++ new/python-djvulibre-0.3.10/tests/test_decode.py    2013-06-13 
15:07:11.000000000 +0200
@@ -1,6 +1,6 @@
 # encoding=UTF-8
 
-# Copyright © 2007-2012 Jakub Wilk <jw...@jwilk.net>
+# Copyright © 2007-2013 Jakub Wilk <jw...@jwilk.net>
 #
 # This package is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -14,6 +14,7 @@
 from __future__ import with_statement
 
 import array
+import errno
 import os
 import shutil
 import subprocess as ipc
@@ -68,29 +69,53 @@
             Document()
 
     def test_nonexistent(self):
+        path = '__nonexistent__'
+        try:
+            os.stat(path)
+        except OSError:
+            _, ex, _ = sys.exc_info()
+            c_message = ex.args[1]
+        else:
+            raise OSError(errno.EEXIST, os.strerror(errno.EEXIST), path)
+        c_message.encode('ASCII')
         skip_unless_c_messages()
         context = Context()
         with raises(JobFailed):
-            document = context.new_document(FileUri('__nonexistent__'))
+            document = context.new_document(FileUri(path))
         message = context.get_message()
         assert_equal(type(message), ErrorMessage)
         assert_equal(type(message.message), unicode)
-        assert_equal(message.message, "[1-11711] Failed to open 
'__nonexistent__': No such file or directory.")
+        assert_equal(message.message, "[1-11711] Failed to open '%s': %s." % 
(path, c_message))
         assert_equal(str(message), message.message)
         assert_equal(unicode(message), message.message)
 
     def test_nonexistent_ja(self):
         skip_unless_c_messages()
         skip_unless_translation_exists('ja_JP.UTF-8')
+        path = '__nonexistent__'
         context = Context()
+        try:
+            with amended_locale(LC_ALL='ja_JP.UTF-8'):
+                os.stat(path)
+        except OSError:
+            _, ex, _ = sys.exc_info()
+            c_message = ex.args[1]
+        else:
+            raise OSError(errno.EEXIST, os.strerror(errno.EEXIST), path)
+        try:
+            c_message.encode('ASCII')
+        except UnicodeError:
+            pass
+        else:
+            raise AssertionError('ja_JP error message is ASCII-only: %r' % 
c_message)
         with amended_locale(LC_ALL='ja_JP.UTF-8'):
             with raises(JobFailed):
-                document = context.new_document(FileUri('__nonexistent__'))
+                document = context.new_document(FileUri(path))
             message = context.get_message()
             assert_equal(type(message), ErrorMessage)
             assert_equal(type(message.message), unicode)
-            assert_equal(message.message, u("[1-11711] Failed to open 
'__nonexistent__': そのようなファイルやディレクトリはありません."))
-            assert_equal(str(message), "[1-11711] Failed to open 
'__nonexistent__': そのようなファイルやディレクトリはありません.")
+            assert_equal(message.message, u("[1-11711] Failed to open '%s': 
%s." % (path, c_message)))
+            assert_equal(str(message), "[1-11711] Failed to open '%s': %s." % 
(path, c_message))
             assert_equal(unicode(message), message.message)
 
     def test_new_document(self):
@@ -194,7 +219,9 @@
         assert_equal(len(document.pages), 6)
         assert_equal(len(document.files), 7)
 
-        stdout0, stderr0 = ipc.Popen(['djvudump', original_filename], 
stdout=ipc.PIPE, stderr=ipc.PIPE, env={}).communicate()
+        c_env = dict(os.environ, LC_ALL='C')
+
+        stdout0, stderr0 = ipc.Popen(['djvudump', original_filename], 
stdout=ipc.PIPE, stderr=ipc.PIPE, env=c_env).communicate()
         assert_equal(stderr0, b(''))
         stdout0 = stdout0.replace(b('\r\n'), b('\n'))
 
@@ -206,7 +233,7 @@
             assert_true(job.is_done)
             assert_false(job.is_error)
             tmp.close()
-            stdout, stderr = ipc.Popen(['djvudump', tmp.name], 
stdout=ipc.PIPE, stderr=ipc.PIPE, env={}).communicate()
+            stdout, stderr = ipc.Popen(['djvudump', tmp.name], 
stdout=ipc.PIPE, stderr=ipc.PIPE, env=c_env).communicate()
             assert_equal(stderr, b(''))
             stdout = stdout.replace(b('\r\n'), b('\n'))
             assert_equal(stdout, stdout0)
@@ -222,7 +249,7 @@
             assert_true(job.is_done)
             assert_false(job.is_error)
             tmp.close()
-            stdout, stderr = ipc.Popen(['djvudump', tmp.name], 
stdout=ipc.PIPE, stderr=ipc.PIPE, env={}).communicate()
+            stdout, stderr = ipc.Popen(['djvudump', tmp.name], 
stdout=ipc.PIPE, stderr=ipc.PIPE, env=c_env).communicate()
             assert_equal(stderr, b(''))
             stdout = stdout.replace(b('\r\n'), b('\n'))
             stdout0 = stdout0.split(b('\n'))
@@ -242,7 +269,7 @@
             assert_equal(type(job), SaveJob)
             assert_true(job.is_done)
             assert_false(job.is_error)
-            stdout, stderr = ipc.Popen(['djvudump', tmpfname], 
stdout=ipc.PIPE, stderr=ipc.PIPE, env={}).communicate()
+            stdout, stderr = ipc.Popen(['djvudump', tmpfname], 
stdout=ipc.PIPE, stderr=ipc.PIPE, env=c_env).communicate()
             assert_equal(stderr, b(''))
             stdout = stdout.replace(b('\r\n'), b('\n'))
             stdout = stdout.split(b('\n'))
@@ -263,7 +290,7 @@
             assert_equal(type(job), SaveJob)
             assert_true(job.is_done)
             assert_false(job.is_error)
-            stdout, stderr = ipc.Popen(['djvudump', tmpfname], 
stdout=ipc.PIPE, stderr=ipc.PIPE, env={}).communicate()
+            stdout, stderr = ipc.Popen(['djvudump', tmpfname], 
stdout=ipc.PIPE, stderr=ipc.PIPE, env=c_env).communicate()
             stdout = stdout.replace(b('\r\n'), b('\n'))
             assert_equal(stderr, b(''))
             stdout = stdout.split(b('\n'))
@@ -287,13 +314,15 @@
         assert_equal(len(document.pages), 6)
         assert_equal(len(document.files), 7)
 
+        c_env = dict(os.environ, LC_ALL='C')
+
         tmp = tempfile.NamedTemporaryFile()
         try:
             job = document.export_ps(tmp.file)
             assert_equal(type(job), SaveJob)
             assert_true(job.is_done)
             assert_false(job.is_error)
-            stdout, stderr = ipc.Popen(['ps2ascii', tmp.name], 
stdout=ipc.PIPE, stderr=ipc.PIPE, env={}).communicate()
+            stdout, stderr = ipc.Popen(['ps2ascii', tmp.name], 
stdout=ipc.PIPE, stderr=ipc.PIPE, env=c_env).communicate()
             assert_equal(stderr, b(''))
             assert_equal(stdout, b('\x0c') * 6)
         finally:
@@ -305,7 +334,7 @@
             assert_equal(type(job), SaveJob)
             assert_true(job.is_done)
             assert_false(job.is_error)
-            stdout, stderr = ipc.Popen(['ps2ascii', tmp.name], 
stdout=ipc.PIPE, stderr=ipc.PIPE, env={}).communicate()
+            stdout, stderr = ipc.Popen(['ps2ascii', tmp.name], 
stdout=ipc.PIPE, stderr=ipc.PIPE, env=c_env).communicate()
             assert_equal(stderr, b(''))
             stdout = stdout.split(b('\n'))
             stdout = [b(' ').join(line.split()) for line in stdout]
@@ -555,7 +584,7 @@
     try:
         test_file = create_djvu(test_script)
     except UnicodeEncodeError:
-        raise AssertionError('You need to run this test with an UTF-8 locale')
+        raise SkipTest('you need to run this test with LC_CTYPE=C or 
LC_CTYPE=<lang>.UTF-8')
     try:
         context = Context()
         document = context.new_document(FileUri(test_file.name))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-djvulibre-0.3.9/tests/test_sexpr.py 
new/python-djvulibre-0.3.10/tests/test_sexpr.py
--- old/python-djvulibre-0.3.9/tests/test_sexpr.py      2012-03-19 
20:40:14.000000000 +0100
+++ new/python-djvulibre-0.3.10/tests/test_sexpr.py     2014-11-02 
17:40:19.000000000 +0100
@@ -1,6 +1,6 @@
 # encoding=UTF-8
 
-# Copyright © 2007-2012 Jakub Wilk <jw...@jwilk.net>
+# Copyright © 2007-2014 Jakub Wilk <jw...@jwilk.net>
 #
 # This package is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -406,10 +406,14 @@
             with raises(ExpressionSyntaxError):
                 Expression.from_stream(42)
         stderr = strip_line_numbers_from_traceback(stderr.getvalue())
+        stderr = stderr.replace(
+            '"sexpr.pyx"', # Cython < 0.21
+            '"djvu/sexpr.pyx"' # Cython ≥ 0.21
+        )
         assert_multi_line_equal(stderr, '''\
 Unhandled exception (42)
 Traceback (most recent call last):
-  File "sexpr.pyx", in djvu.sexpr._myio_getc (djvu/sexpr.c)
+  File "djvu/sexpr.pyx", in djvu.sexpr._myio_getc (djvu/sexpr.c)
 AttributeError: 'int' object has no attribute 'read'
 
 ''')
@@ -467,10 +471,14 @@
         with interim(sys, stderr=stderr):
             self.expr.print_into(42)
         stderr = strip_line_numbers_from_traceback(stderr.getvalue())
+        stderr = stderr.replace(
+            '"sexpr.pyx"', # Cython < 0.21
+            '"djvu/sexpr.pyx"' # Cython ≥ 0.21
+        )
         expected_stderr = '''\
 Unhandled exception (42)
 Traceback (most recent call last):
-  File "sexpr.pyx", in djvu.sexpr._myio_puts (djvu/sexpr.c)
+  File "djvu/sexpr.pyx", in djvu.sexpr._myio_puts (djvu/sexpr.c)
 AttributeError: 'int' object has no attribute 'write'
 
 '''

++++++ python-djvulibre.keyring ++++++
pub   4096R/015475F5 2009-10-23 [expires: 2015-01-01]
uid                  Jakub Wilk <jw...@jwilk.net>
uid                  Jakub Wilk <jw...@debian.org>
uid                  Jakub Wilk <uba...@users.sf.net>
sub   4096R/E5874F63 2009-10-23

-----BEGIN PGP PUBLIC KEY BLOCK-----

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
bN5AxyPui0i3KQXs09FW/+n9DTw=
=1quD
-----END PGP PUBLIC KEY BLOCK-----
-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to