FTBFS : ImportError: cannot import name 'keccak_224'

Bug #1734467 reported by themusicgod1
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
pysha3 (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

python3-pysha3:
  Installed: 1.0.0-0ubuntu3
  Candidate: 1.0.0-0ubuntu3

according to documentation for pysha3 1.0.0 at https://pypi.python.org/pypi/pysha3/1.0.0

>>> import sha3

should result in no output (ie successfully import module "sha3" as per python3-pysha3 setup.py L93 ?)

instead however, attempting to import sha3 results in an error claiming keccak_224 cannot be imported.

z@aisha:~/python/sha3$ python3
Python 3.6.3 (default, Oct 3 2017, 21:45:48)
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sha3
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3/dist-packages/sha3.py", line 8, in <module>
    from _sha3 import keccak_224, keccak_256, keccak_384, keccak_512
ImportError: cannot import name 'keccak_224'

looking closer to the source, the block defining keccak's type is ifdef'd by PY_WITH_KECCAK
presumably set by exts.append(
    Extension(
        "_sha3",
        ["Modules/_sha3/sha3module.c", "Modules/pymemsets.c"],
        depends=sha3_depends,
        define_macros=[("PY_WITH_KECCAK", "1")]
    )
)
 in setup.py

attempting to build python3-pysha3 from source :
z@aisha:~/python/sha3/pysha3-1.0.0$ debuild -us -uc -b
 dpkg-buildpackage -rfakeroot -us -uc -ui -b
dpkg-buildpackage: info: source package pysha3
dpkg-buildpackage: info: source version 1.0.0-0ubuntu3
dpkg-buildpackage: info: source distribution artful
dpkg-buildpackage: info: source changed by Michael Hudson-Doyle <email address hidden>
 dpkg-source --before-build pysha3-1.0.0
dpkg-buildpackage: info: host architecture amd64
dpkg-source: info: using options from pysha3-1.0.0/debian/source/options: --extend-diff-ignore=^pysha3.egg-info/
 fakeroot debian/rules clean
dh clean --with python2,python3 --buildsystem=pybuild
   dh_auto_clean -O--buildsystem=pybuild
I: pybuild base:184: python2.7 setup.py clean
running clean
removing '/home/z/python/sha3/pysha3-1.0.0/.pybuild/pythonX.Y_2.7/build' (and everything under it)
'build/bdist.linux-amd64' does not exist -- can't clean it
'build/scripts-2.7' does not exist -- can't clean it
I: pybuild base:184: python3.6 setup.py clean
running clean
removing '/home/z/python/sha3/pysha3-1.0.0/.pybuild/pythonX.Y_3.6/build' (and everything under it)
'build/bdist.linux-amd64' does not exist -- can't clean it
'build/scripts-3.6' does not exist -- can't clean it
   dh_clean -O--buildsystem=pybuild
 debian/rules build
dh build --with python2,python3 --buildsystem=pybuild
   dh_update_autotools_config -O--buildsystem=pybuild
   dh_auto_configure -O--buildsystem=pybuild
I: pybuild base:184: python2.7 setup.py config
running config
I: pybuild base:184: python3.6 setup.py config
running config
   dh_auto_build -O--buildsystem=pybuild
I: pybuild base:184: /usr/bin/python setup.py build
running build
running build_py
copying sha3.py -> /home/z/python/sha3/pysha3-1.0.0/.pybuild/pythonX.Y_2.7/build
running build_ext
building '_sha3' extension
creating build
creating build/temp.linux-amd64-2.7
creating build/temp.linux-amd64-2.7/Modules
creating build/temp.linux-amd64-2.7/Modules/_sha3
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -g -O2 -fdebug-prefix-map=/home/z/python/sha3/pysha3-1.0.0=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DPY_WITH_KECCAK=1 -I/usr/include/python2.7 -c Modules/_sha3/sha3module.c -o build/temp.linux-amd64-2.7/Modules/_sha3/sha3module.o
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -g -O2 -fdebug-prefix-map=/home/z/python/sha3/pysha3-1.0.0=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DPY_WITH_KECCAK=1 -I/usr/include/python2.7 -c Modules/pymemsets.c -o build/temp.linux-amd64-2.7/Modules/pymemsets.o
x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-l1RrwO/python2.7-2.7.14=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -g -O2 -fdebug-prefix-map=/home/z/python/sha3/pysha3-1.0.0=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-amd64-2.7/Modules/_sha3/sha3module.o build/temp.linux-amd64-2.7/Modules/pymemsets.o -o /home/z/python/sha3/pysha3-1.0.0/.pybuild/pythonX.Y_2.7/build/_sha3.so
I: pybuild base:184: /usr/bin/python3 setup.py build
running build
running build_py
copying sha3.py -> /home/z/python/sha3/pysha3-1.0.0/.pybuild/pythonX.Y_3.6/build
running build_ext
building '_sha3' extension
creating build/temp.linux-amd64-3.6
creating build/temp.linux-amd64-3.6/Modules
creating build/temp.linux-amd64-3.6/Modules/_sha3
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -O2 -fdebug-prefix-map=/home/z/python/sha3/pysha3-1.0.0=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DPY_WITH_KECCAK=1 -I/usr/include/python3.6m -c Modules/_sha3/sha3module.c -o build/temp.linux-amd64-3.6/Modules/_sha3/sha3module.o
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -O2 -fdebug-prefix-map=/home/z/python/sha3/pysha3-1.0.0=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DPY_WITH_KECCAK=1 -I/usr/include/python3.6m -c Modules/pymemsets.c -o build/temp.linux-amd64-3.6/Modules/pymemsets.o
x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -specs=/usr/share/dpkg/no-pie-link.specs -Wl,-z,relro -Wl,-Bsymbolic-functions -Wl,-z,relro -g -O2 -fdebug-prefix-map=/home/z/python/sha3/pysha3-1.0.0=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-amd64-3.6/Modules/_sha3/sha3module.o build/temp.linux-amd64-3.6/Modules/pymemsets.o -o /home/z/python/sha3/pysha3-1.0.0/.pybuild/pythonX.Y_3.6/build/_sha3.cpython-36m-x86_64-linux-gnu.so
   debian/rules override_dh_auto_test
make[1]: Entering directory '/home/z/python/sha3/pysha3-1.0.0'
dh_auto_test -- --system=custom \
    --before-test 'cp -R {dir}/tests.py {dir}/vectors {build_dir}' \
    --test-args 'cd {build_dir}; {interpreter} tests.py' \
    --after-test 'rm -r {build_dir}/tests.py {build_dir}/vectors'
I: pybuild pybuild:219: cp -R /home/z/python/sha3/pysha3-1.0.0/tests.py /home/z/python/sha3/pysha3-1.0.0/vectors /home/z/python/sha3/pysha3-1.0.0/.pybuild/pythonX.Y_2.7/build
I: pybuild base:184: cd /home/z/python/sha3/pysha3-1.0.0/.pybuild/pythonX.Y_2.7/build; python2.7 tests.py
test_basics (__main__.SHA3_224Tests) ... ok
test_hashlib (__main__.SHA3_224Tests) ... ok
test_hmac (__main__.SHA3_224Tests) ... ok
test_vectors (__main__.SHA3_224Tests) ... ok
test_vectors_unaligned (__main__.SHA3_224Tests) ... ok
test_basics (__main__.SHA3_256Tests) ... ok
test_hashlib (__main__.SHA3_256Tests) ... ok
test_hmac (__main__.SHA3_256Tests) ... ok
test_vectors (__main__.SHA3_256Tests) ... ok
test_vectors_unaligned (__main__.SHA3_256Tests) ... ok
test_basics (__main__.SHA3_384Tests) ... ok
test_hashlib (__main__.SHA3_384Tests) ... ok
test_hmac (__main__.SHA3_384Tests) ... ok
test_vectors (__main__.SHA3_384Tests) ... ok
test_vectors_unaligned (__main__.SHA3_384Tests) ... ok
test_basics (__main__.SHA3_512Tests) ... ok
test_hashlib (__main__.SHA3_512Tests) ... ok
test_hmac (__main__.SHA3_512Tests) ... ok
test_vectors (__main__.SHA3_512Tests) ... ok
test_vectors_unaligned (__main__.SHA3_512Tests) ... ok
test_basics (__main__.Shake_128Tests) ... ok
test_hashlib (__main__.Shake_128Tests) ... ok
test_hmac (__main__.Shake_128Tests) ... ok
test_vectors (__main__.Shake_128Tests) ... ok
test_vectors_unaligned (__main__.Shake_128Tests) ... ok
test_basics (__main__.Shake_256Tests) ... ok
test_hashlib (__main__.Shake_256Tests) ... ok
test_hmac (__main__.Shake_256Tests) ... ok
test_vectors (__main__.Shake_256Tests) ... ok
test_vectors_unaligned (__main__.Shake_256Tests) ... ok
test_basics (__main__.Keccak_224Tests) ... ok
test_hashlib (__main__.Keccak_224Tests) ... ok
test_hmac (__main__.Keccak_224Tests) ... ok
test_vectors (__main__.Keccak_224Tests) ... ok
test_vectors_unaligned (__main__.Keccak_224Tests) ... ok
test_basics (__main__.Keccak_256Tests) ... ok
test_hashlib (__main__.Keccak_256Tests) ... ok
test_hmac (__main__.Keccak_256Tests) ... ok
test_vectors (__main__.Keccak_256Tests) ... ok
test_vectors_unaligned (__main__.Keccak_256Tests) ... ok
test_basics (__main__.Keccak_384Tests) ... ok
test_hashlib (__main__.Keccak_384Tests) ... ok
test_hmac (__main__.Keccak_384Tests) ... ok
test_vectors (__main__.Keccak_384Tests) ... ok
test_vectors_unaligned (__main__.Keccak_384Tests) ... ok
test_basics (__main__.Keccak_512Tests) ... ok
test_hashlib (__main__.Keccak_512Tests) ... ok
test_hmac (__main__.Keccak_512Tests) ... ok
test_vectors (__main__.Keccak_512Tests) ... ok
test_vectors_unaligned (__main__.Keccak_512Tests) ... ok

----------------------------------------------------------------------
Ran 50 tests in 0.287s

OK
I: pybuild pybuild:242: rm -r /home/z/python/sha3/pysha3-1.0.0/.pybuild/pythonX.Y_2.7/build/tests.py /home/z/python/sha3/pysha3-1.0.0/.pybuild/pythonX.Y_2.7/build/vectors
I: pybuild pybuild:219: cp -R /home/z/python/sha3/pysha3-1.0.0/tests.py /home/z/python/sha3/pysha3-1.0.0/vectors /home/z/python/sha3/pysha3-1.0.0/.pybuild/pythonX.Y_3.6/build
I: pybuild base:184: cd /home/z/python/sha3/pysha3-1.0.0/.pybuild/pythonX.Y_3.6/build; python3.6 tests.py
Traceback (most recent call last):
  File "tests.py", line 9, in <module>
    import sha3
  File "/home/z/python/sha3/pysha3-1.0.0/.pybuild/pythonX.Y_3.6/build/sha3.py", line 8, in <module>
    from _sha3 import keccak_224, keccak_256, keccak_384, keccak_512
ImportError: cannot import name 'keccak_224'
E: pybuild pybuild:283: test: plugin custom failed with: exit code=1: cd /home/z/python/sha3/pysha3-1.0.0/.pybuild/pythonX.Y_3.6/build; python3.6 tests.py
dh_auto_test: pybuild --test -i python{version} -p 3.6 --system=custom --before-test "cp -R {dir}/tests.py {dir}/vectors {build_dir}" --test-args "cd {build_dir}; {interpreter} tests.py" --after-test "rm -r {build_dir}/tests.py {build_dir}/vectors" returned exit code 13
debian/rules:10: recipe for target 'override_dh_auto_test' failed
make[1]: *** [override_dh_auto_test] Error 25
make[1]: Leaving directory '/home/z/python/sha3/pysha3-1.0.0'
debian/rules:6: recipe for target 'build' failed
make: *** [build] Error 2
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2
debuild: fatal error at line 1151:
dpkg-buildpackage -rfakeroot -us -uc -ui -b failed

( it might be worth noting the 3rd thing to compile doesn't compile with the -DPY_WITH_KECCAK=1 :

x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -specs=/usr/share/dpkg/no-pie-link.specs -Wl,-z,relro -Wl,-Bsymbolic-functions -Wl,-z,relro -g -O2 -fdebug-prefix-map=/home/z/python/sha3/pysha3-1.0.0=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-amd64-3.6/Modules/_sha3/sha3module.o build/temp.linux-amd64-3.6/Modules/pymemsets.o -o /home/z/python/sha3/pysha3-1.0.0/.pybuild/pythonX.Y_3.6/build/_sha3.cpython-36m-x86_64-linux-gnu.so

)

ProblemType: Bug
DistroRelease: Ubuntu 18.04
Package: python3-pysha3 1.0.0-0ubuntu3
ProcVersionSignature: Ubuntu 4.13.0-16.19-lowlatency 4.13.4
Uname: Linux 4.13.0-16-lowlatency x86_64
ApportVersion: 2.20.8-0ubuntu2
Architecture: amd64
Date: Sat Nov 25 17:56:10 2017
InstallationDate: Installed on 2016-05-07 (566 days ago)
InstallationMedia:

JournalErrors:
 Error: command ['journalctl', '-b', '--priority=warning', '--lines=1000'] failed with exit code 1: Hint: You are currently not seeing messages from other users and the system.
       Users in the 'systemd-journal' group can see all messages. Pass -q to
       turn off this notice.
 No journal files were opened due to insufficient permissions.
ProcEnviron:
 TERM=xterm-256color
 PATH=(custom, no user)
 XDG_RUNTIME_DIR=<set>
 LANG=en_US.UTF-8
 SHELL=/bin/bash
SourcePackage: pysha3
UpgradeStatus: Upgraded to bionic on 2017-11-20 (4 days ago)

Revision history for this message
themusicgod1 (themusicgod1) wrote :
tags: added: artful
Revision history for this message
themusicgod1 (themusicgod1) wrote :

upstream debian python3-sha3 is not broken in this way :

z@aisha:~$ sudo dpkg -i python3-sha3_1.0.2-2_amd64.deb
(Reading database ... 359513 files and directories currently installed.)
Preparing to unpack python3-sha3_1.0.2-2_amd64.deb ...
Unpacking python3-sha3 (1.0.2-2) ...
Setting up python3-sha3 (1.0.2-2) ...
z@aisha:~$ python3
Python 3.6.3 (default, Oct 3 2017, 21:45:48)
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sha3
>>>

Revision history for this message
themusicgod1 (themusicgod1) wrote :

with python3-sha3 update now in bionic, this is resolved in bionic at least.

Changed in pysha3 (Ubuntu):
status: New → Fix Committed
Changed in pysha3 (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.