[Python-modules-team] Bug#934037: sorl-thumbnail: FTBFS in stretch (RuntimeError: Magick: Unable to deduce image format)

Santiago Vila sanvila at debian.org
Tue Aug 6 11:45:52 BST 2019


Package: src:sorl-thumbnail
Version: 12.3+git20160928-2
Severity: serious
Tags: ftbfs

Dear maintainer:

I tried to build this package in stretch but it failed:

--------------------------------------------------------------------------------
[...]
 debian/rules build-indep
dh build-indep --with python2,python3,sphinxdoc --buildsystem=pybuild
dh: Compatibility levels before 9 are deprecated (level 7 in use)
   dh_testdir -i -O--buildsystem=pybuild
   dh_update_autotools_config -i -O--buildsystem=pybuild
   dh_auto_configure -i -O--buildsystem=pybuild
dh_auto_configure: Compatibility levels before 9 are deprecated (level 7 in use)
I: pybuild base:184: python2.7 setup.py config 
running config
I: pybuild base:184: python3.5 setup.py config 
running config
   debian/rules override_dh_auto_build
make[1]: Entering directory '/<<PKGBUILDDIR>>'
dh_auto_build
dh_auto_build: Compatibility levels before 9 are deprecated (level 7 in use)
I: pybuild base:184: /usr/bin/python setup.py build 
running build
running build_py
creating /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl
copying sorl/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl
creating /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail
copying sorl/thumbnail/compat.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail
copying sorl/thumbnail/models.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail
copying sorl/thumbnail/parsers.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail
copying sorl/thumbnail/default.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail
copying sorl/thumbnail/log.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail
copying sorl/thumbnail/base.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail
copying sorl/thumbnail/helpers.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail
copying sorl/thumbnail/shortcuts.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail
copying sorl/thumbnail/images.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail
copying sorl/thumbnail/fields.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail
copying sorl/thumbnail/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail
creating /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail/templatetags
copying sorl/thumbnail/templatetags/thumbnail.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail/templatetags
copying sorl/thumbnail/templatetags/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail/templatetags
creating /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail/admin
copying sorl/thumbnail/admin/current.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail/admin
copying sorl/thumbnail/admin/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail/admin
creating /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail/kvstores
copying sorl/thumbnail/kvstores/dynamodb_kvstore.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail/kvstores
copying sorl/thumbnail/kvstores/redis_kvstore.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail/kvstores
copying sorl/thumbnail/kvstores/dbm_kvstore.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail/kvstores
copying sorl/thumbnail/kvstores/base.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail/kvstores
copying sorl/thumbnail/kvstores/cached_db_kvstore.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail/kvstores
copying sorl/thumbnail/kvstores/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail/kvstores
creating /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail/migrations
copying sorl/thumbnail/migrations/0001_initial.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail/migrations
copying sorl/thumbnail/migrations/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail/migrations
creating /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail/conf
copying sorl/thumbnail/conf/defaults.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail/conf
copying sorl/thumbnail/conf/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail/conf
creating /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail/management
copying sorl/thumbnail/management/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail/management
creating /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail/engines
copying sorl/thumbnail/engines/wand_engine.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail/engines
copying sorl/thumbnail/engines/convert_engine.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail/engines
copying sorl/thumbnail/engines/vipsthumbnail_engine.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail/engines
copying sorl/thumbnail/engines/base.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail/engines
copying sorl/thumbnail/engines/pil_engine.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail/engines
copying sorl/thumbnail/engines/pgmagick_engine.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail/engines
copying sorl/thumbnail/engines/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail/engines
creating /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail/management/commands
copying sorl/thumbnail/management/commands/thumbnail.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail/management/commands
copying sorl/thumbnail/management/commands/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/sorl/thumbnail/management/commands
I: pybuild base:184: /usr/bin/python3 setup.py build 
running build
running build_py
creating /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl
copying sorl/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl
creating /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail
copying sorl/thumbnail/compat.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail
copying sorl/thumbnail/models.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail
copying sorl/thumbnail/parsers.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail
copying sorl/thumbnail/default.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail
copying sorl/thumbnail/log.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail
copying sorl/thumbnail/base.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail
copying sorl/thumbnail/helpers.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail
copying sorl/thumbnail/shortcuts.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail
copying sorl/thumbnail/images.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail
copying sorl/thumbnail/fields.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail
copying sorl/thumbnail/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail
creating /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail/templatetags
copying sorl/thumbnail/templatetags/thumbnail.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail/templatetags
copying sorl/thumbnail/templatetags/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail/templatetags
creating /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail/admin
copying sorl/thumbnail/admin/current.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail/admin
copying sorl/thumbnail/admin/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail/admin
creating /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail/kvstores
copying sorl/thumbnail/kvstores/dynamodb_kvstore.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail/kvstores
copying sorl/thumbnail/kvstores/redis_kvstore.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail/kvstores
copying sorl/thumbnail/kvstores/dbm_kvstore.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail/kvstores
copying sorl/thumbnail/kvstores/base.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail/kvstores
copying sorl/thumbnail/kvstores/cached_db_kvstore.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail/kvstores
copying sorl/thumbnail/kvstores/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail/kvstores
creating /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail/migrations
copying sorl/thumbnail/migrations/0001_initial.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail/migrations
copying sorl/thumbnail/migrations/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail/migrations
creating /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail/conf
copying sorl/thumbnail/conf/defaults.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail/conf
copying sorl/thumbnail/conf/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail/conf
creating /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail/management
copying sorl/thumbnail/management/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail/management
creating /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail/engines
copying sorl/thumbnail/engines/wand_engine.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail/engines
copying sorl/thumbnail/engines/convert_engine.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail/engines
copying sorl/thumbnail/engines/vipsthumbnail_engine.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail/engines
copying sorl/thumbnail/engines/base.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail/engines
copying sorl/thumbnail/engines/pil_engine.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail/engines
copying sorl/thumbnail/engines/pgmagick_engine.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail/engines
copying sorl/thumbnail/engines/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail/engines
creating /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail/management/commands
copying sorl/thumbnail/management/commands/thumbnail.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail/management/commands
copying sorl/thumbnail/management/commands/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/sorl/thumbnail/management/commands
PYTHONPATH=.:$PYTHONPATH sphinx-build -b html -d .build/.doctrees -N docs .build/html
Running Sphinx v1.4.9
making output directory...
loading pickled environment... not yet created
building [mo]: targets for 0 po files that are out of date
building [html]: targets for 13 source files that are out of date
updating environment: 13 added, 0 changed, 0 removed
reading sources... [  7%] contributing
reading sources... [ 15%] examples
reading sources... [ 23%] index
reading sources... [ 30%] installation
reading sources... [ 38%] logging
reading sources... [ 46%] management
reading sources... [ 53%] news
reading sources... [ 61%] operation
reading sources... [ 69%] reference/image
reading sources... [ 76%] reference/index
reading sources... [ 84%] reference/settings
reading sources... [ 92%] requirements
reading sources... [100%] template

looking for now-outdated files... none found
pickling environment... done
checking consistency... done
preparing documents... done
writing output... [  7%] contributing
writing output... [ 15%] examples
writing output... [ 23%] index
writing output... [ 30%] installation
writing output... [ 38%] logging
writing output... [ 46%] management
writing output... [ 53%] news
writing output... [ 61%] operation
writing output... [ 69%] reference/image
writing output... [ 76%] reference/index
writing output... [ 84%] reference/settings
writing output... [ 92%] requirements
writing output... [100%] template

generating indices... genindex
writing additional pages... search
copying static files... done
copying extra files... done
dumping search index in English (code: en) ... done
dumping object inventory... done
build succeeded.
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
   debian/rules override_dh_auto_test
make[1]: Entering directory '/<<PKGBUILDDIR>>'
mkdir -p tmp-locales
localedef -i en_US -c -f UTF-8 tmp-locales/en_US.UTF-8
set -e; \
for python in python2.7 python3.5; do \
    for name in pil pgmagick imagemagick graphicsmagick; do \
        if [ $(echo $python | cut -f 1 -d .)"-$name" = "python3-pgmagick" ]; then continue; fi; \
        LOCPATH=/<<PKGBUILDDIR>>/tmp-locales LC_ALL=en_US.UTF-8 PYTHONPATH=. LOCAL_BUILD=1 DJANGO_SETTINGS_MODULE=tests.settings.$name $python -m pytest ; \
    done; \
done
============================= test session starts ==============================
platform linux2 -- Python 2.7.13, pytest-3.0.6, py-1.4.32, pluggy-0.4.0
django settings: tests.settings.pil (from environment variable)
rootdir: /<<PKGBUILDDIR>>, inifile: tox.ini
plugins: django-2.9.1
collected 68 items

tests/thumbnail_tests/test_alternative_resolutions.py .
tests/thumbnail_tests/test_backends.py ............
tests/thumbnail_tests/test_commands.py ....
tests/thumbnail_tests/test_engines.py ........................xx
tests/thumbnail_tests/test_filters.py s.s.
tests/thumbnail_tests/test_kvstore.py .
tests/thumbnail_tests/test_parsers.py .....
tests/thumbnail_tests/test_storage.py ....
tests/thumbnail_tests/test_templatetags.py ........ss.

=============== 62 passed, 4 skipped, 2 xfailed in 8.14 seconds ================
============================= test session starts ==============================
platform linux2 -- Python 2.7.13, pytest-3.0.6, py-1.4.32, pluggy-0.4.0
django settings: tests.settings.pgmagick (from environment variable)
rootdir: /<<PKGBUILDDIR>>, inifile: tox.ini
plugins: django-2.9.1
collected 68 items

tests/thumbnail_tests/test_alternative_resolutions.py .
tests/thumbnail_tests/test_backends.py .......F.s..
tests/thumbnail_tests/test_commands.py ....
tests/thumbnail_tests/test_engines.py ..................s.....xx
tests/thumbnail_tests/test_filters.py s.s.
tests/thumbnail_tests/test_kvstore.py .
tests/thumbnail_tests/test_parsers.py .....
tests/thumbnail_tests/test_storage.py ....
tests/thumbnail_tests/test_templatetags.py ........ss.

=================================== FAILURES ===================================
_____________________ TestDescriptors.test_is_valid_image ______________________

self = <tests.thumbnail_tests.test_backends.TestDescriptors testMethod=test_is_valid_image>

    def test_is_valid_image(self):
        with same_open_fd_count(self):
>           self.ENGINE.is_valid_image(b'invalidbinaryimage.jpg')

tests/thumbnail_tests/test_backends.py:99: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <sorl.thumbnail.engines.pgmagick_engine.Engine object at 0x7ff05a5c48d0>
raw_data = 'invalidbinaryimage.jpg'

    def is_valid_image(self, raw_data):
        blob = Blob()
        blob.update(raw_data)
>       im = Image(blob)
E       RuntimeError: Magick: Unable to deduce image format () reported by magick/blob.c:739 (BlobToImage)

sorl/thumbnail/engines/pgmagick_engine.py:29: RuntimeError
========== 1 failed, 59 passed, 6 skipped, 2 xfailed in 7.06 seconds ===========
debian/rules:22: recipe for target 'override_dh_auto_test' failed
make[1]: *** [override_dh_auto_test] Error 1
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
debian/rules:10: recipe for target 'build-indep' failed
make: *** [build-indep] Error 2
dpkg-buildpackage: error: debian/rules build-indep gave error exit status 2
--------------------------------------------------------------------------------

The build was made in my autobuilder with "dpkg-buildpackage -A"
and it also fails here:

https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/sorl-thumbnail.html

If this is really a bug in one of the build-depends, please use reassign and affects,
so that this is still visible in the BTS web page for this package.

Thanks.



More information about the Python-modules-team mailing list