Cannot install on Windows - invokes "chmod" shell command

Bug #1084871 reported by Craig McQueen
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Python-Crypto
Fix Committed
Undecided
Unassigned

Bug Description

If it has a dependency on chmod, this isn't very Windows-friendly. A Windows build doc would be good, to explain build dependencies. E.g. MinGW, or Cygwin? Otherwise, the PyPI entry is doubtful in its claim to support Windows.

C:\Documents and Settings\craig.mcqueen\My Documents\software\temp\pycrypto-2.6>py setup.py install
running install
running build
running build_py
creating build
creating build\lib.win32-2.7
creating build\lib.win32-2.7\Crypto
copying lib\Crypto\pct_warnings.py -> build\lib.win32-2.7\Crypto
copying lib\Crypto\__init__.py -> build\lib.win32-2.7\Crypto
creating build\lib.win32-2.7\Crypto\Hash
copying lib\Crypto\Hash\hashalgo.py -> build\lib.win32-2.7\Crypto\Hash
copying lib\Crypto\Hash\HMAC.py -> build\lib.win32-2.7\Crypto\Hash
copying lib\Crypto\Hash\MD2.py -> build\lib.win32-2.7\Crypto\Hash
copying lib\Crypto\Hash\MD4.py -> build\lib.win32-2.7\Crypto\Hash
copying lib\Crypto\Hash\MD5.py -> build\lib.win32-2.7\Crypto\Hash
copying lib\Crypto\Hash\RIPEMD.py -> build\lib.win32-2.7\Crypto\Hash
copying lib\Crypto\Hash\SHA.py -> build\lib.win32-2.7\Crypto\Hash
copying lib\Crypto\Hash\SHA224.py -> build\lib.win32-2.7\Crypto\Hash
copying lib\Crypto\Hash\SHA256.py -> build\lib.win32-2.7\Crypto\Hash
copying lib\Crypto\Hash\SHA384.py -> build\lib.win32-2.7\Crypto\Hash
copying lib\Crypto\Hash\SHA512.py -> build\lib.win32-2.7\Crypto\Hash
copying lib\Crypto\Hash\__init__.py -> build\lib.win32-2.7\Crypto\Hash
creating build\lib.win32-2.7\Crypto\Cipher
copying lib\Crypto\Cipher\AES.py -> build\lib.win32-2.7\Crypto\Cipher
copying lib\Crypto\Cipher\ARC2.py -> build\lib.win32-2.7\Crypto\Cipher
copying lib\Crypto\Cipher\ARC4.py -> build\lib.win32-2.7\Crypto\Cipher
copying lib\Crypto\Cipher\blockalgo.py -> build\lib.win32-2.7\Crypto\Cipher
copying lib\Crypto\Cipher\Blowfish.py -> build\lib.win32-2.7\Crypto\Cipher
copying lib\Crypto\Cipher\CAST.py -> build\lib.win32-2.7\Crypto\Cipher
copying lib\Crypto\Cipher\DES.py -> build\lib.win32-2.7\Crypto\Cipher
copying lib\Crypto\Cipher\DES3.py -> build\lib.win32-2.7\Crypto\Cipher
copying lib\Crypto\Cipher\PKCS1_OAEP.py -> build\lib.win32-2.7\Crypto\Cipher
copying lib\Crypto\Cipher\PKCS1_v1_5.py -> build\lib.win32-2.7\Crypto\Cipher
copying lib\Crypto\Cipher\XOR.py -> build\lib.win32-2.7\Crypto\Cipher
copying lib\Crypto\Cipher\__init__.py -> build\lib.win32-2.7\Crypto\Cipher
creating build\lib.win32-2.7\Crypto\Util
copying lib\Crypto\Util\asn1.py -> build\lib.win32-2.7\Crypto\Util
copying lib\Crypto\Util\Counter.py -> build\lib.win32-2.7\Crypto\Util
copying lib\Crypto\Util\number.py -> build\lib.win32-2.7\Crypto\Util
copying lib\Crypto\Util\py21compat.py -> build\lib.win32-2.7\Crypto\Util
copying lib\Crypto\Util\py3compat.py -> build\lib.win32-2.7\Crypto\Util
copying lib\Crypto\Util\randpool.py -> build\lib.win32-2.7\Crypto\Util
copying lib\Crypto\Util\RFC1751.py -> build\lib.win32-2.7\Crypto\Util
copying lib\Crypto\Util\winrandom.py -> build\lib.win32-2.7\Crypto\Util
copying lib\Crypto\Util\_number_new.py -> build\lib.win32-2.7\Crypto\Util
copying lib\Crypto\Util\__init__.py -> build\lib.win32-2.7\Crypto\Util
creating build\lib.win32-2.7\Crypto\Random
copying lib\Crypto\Random\random.py -> build\lib.win32-2.7\Crypto\Random
copying lib\Crypto\Random\_UserFriendlyRNG.py -> build\lib.win32-2.7\Crypto\Random
copying lib\Crypto\Random\__init__.py -> build\lib.win32-2.7\Crypto\Random
creating build\lib.win32-2.7\Crypto\Random\Fortuna
copying lib\Crypto\Random\Fortuna\FortunaAccumulator.py -> build\lib.win32-2.7\Crypto\Random\Fortuna
copying lib\Crypto\Random\Fortuna\FortunaGenerator.py -> build\lib.win32-2.7\Crypto\Random\Fortuna
copying lib\Crypto\Random\Fortuna\SHAd256.py -> build\lib.win32-2.7\Crypto\Random\Fortuna
copying lib\Crypto\Random\Fortuna\__init__.py -> build\lib.win32-2.7\Crypto\Random\Fortuna
creating build\lib.win32-2.7\Crypto\Random\OSRNG
copying lib\Crypto\Random\OSRNG\fallback.py -> build\lib.win32-2.7\Crypto\Random\OSRNG
copying lib\Crypto\Random\OSRNG\nt.py -> build\lib.win32-2.7\Crypto\Random\OSRNG
copying lib\Crypto\Random\OSRNG\posix.py -> build\lib.win32-2.7\Crypto\Random\OSRNG
copying lib\Crypto\Random\OSRNG\rng_base.py -> build\lib.win32-2.7\Crypto\Random\OSRNG
copying lib\Crypto\Random\OSRNG\__init__.py -> build\lib.win32-2.7\Crypto\Random\OSRNG
creating build\lib.win32-2.7\Crypto\SelfTest
copying lib\Crypto\SelfTest\st_common.py -> build\lib.win32-2.7\Crypto\SelfTest
copying lib\Crypto\SelfTest\__init__.py -> build\lib.win32-2.7\Crypto\SelfTest
creating build\lib.win32-2.7\Crypto\SelfTest\Cipher
copying lib\Crypto\SelfTest\Cipher\common.py -> build\lib.win32-2.7\Crypto\SelfTest\Cipher
copying lib\Crypto\SelfTest\Cipher\test_AES.py -> build\lib.win32-2.7\Crypto\SelfTest\Cipher
copying lib\Crypto\SelfTest\Cipher\test_ARC2.py -> build\lib.win32-2.7\Crypto\SelfTest\Cipher
copying lib\Crypto\SelfTest\Cipher\test_ARC4.py -> build\lib.win32-2.7\Crypto\SelfTest\Cipher
copying lib\Crypto\SelfTest\Cipher\test_Blowfish.py -> build\lib.win32-2.7\Crypto\SelfTest\Cipher
copying lib\Crypto\SelfTest\Cipher\test_CAST.py -> build\lib.win32-2.7\Crypto\SelfTest\Cipher
copying lib\Crypto\SelfTest\Cipher\test_DES.py -> build\lib.win32-2.7\Crypto\SelfTest\Cipher
copying lib\Crypto\SelfTest\Cipher\test_DES3.py -> build\lib.win32-2.7\Crypto\SelfTest\Cipher
copying lib\Crypto\SelfTest\Cipher\test_pkcs1_15.py -> build\lib.win32-2.7\Crypto\SelfTest\Cipher
copying lib\Crypto\SelfTest\Cipher\test_pkcs1_oaep.py -> build\lib.win32-2.7\Crypto\SelfTest\Cipher
copying lib\Crypto\SelfTest\Cipher\test_XOR.py -> build\lib.win32-2.7\Crypto\SelfTest\Cipher
copying lib\Crypto\SelfTest\Cipher\__init__.py -> build\lib.win32-2.7\Crypto\SelfTest\Cipher
creating build\lib.win32-2.7\Crypto\SelfTest\Hash
copying lib\Crypto\SelfTest\Hash\common.py -> build\lib.win32-2.7\Crypto\SelfTest\Hash
copying lib\Crypto\SelfTest\Hash\test_HMAC.py -> build\lib.win32-2.7\Crypto\SelfTest\Hash
copying lib\Crypto\SelfTest\Hash\test_MD2.py -> build\lib.win32-2.7\Crypto\SelfTest\Hash
copying lib\Crypto\SelfTest\Hash\test_MD4.py -> build\lib.win32-2.7\Crypto\SelfTest\Hash
copying lib\Crypto\SelfTest\Hash\test_MD5.py -> build\lib.win32-2.7\Crypto\SelfTest\Hash
copying lib\Crypto\SelfTest\Hash\test_RIPEMD.py -> build\lib.win32-2.7\Crypto\SelfTest\Hash
copying lib\Crypto\SelfTest\Hash\test_SHA.py -> build\lib.win32-2.7\Crypto\SelfTest\Hash
copying lib\Crypto\SelfTest\Hash\test_SHA224.py -> build\lib.win32-2.7\Crypto\SelfTest\Hash
copying lib\Crypto\SelfTest\Hash\test_SHA256.py -> build\lib.win32-2.7\Crypto\SelfTest\Hash
copying lib\Crypto\SelfTest\Hash\test_SHA384.py -> build\lib.win32-2.7\Crypto\SelfTest\Hash
copying lib\Crypto\SelfTest\Hash\test_SHA512.py -> build\lib.win32-2.7\Crypto\SelfTest\Hash
copying lib\Crypto\SelfTest\Hash\__init__.py -> build\lib.win32-2.7\Crypto\SelfTest\Hash
creating build\lib.win32-2.7\Crypto\SelfTest\Protocol
copying lib\Crypto\SelfTest\Protocol\test_AllOrNothing.py -> build\lib.win32-2.7\Crypto\SelfTest\Protocol
copying lib\Crypto\SelfTest\Protocol\test_chaffing.py -> build\lib.win32-2.7\Crypto\SelfTest\Protocol
copying lib\Crypto\SelfTest\Protocol\test_KDF.py -> build\lib.win32-2.7\Crypto\SelfTest\Protocol
copying lib\Crypto\SelfTest\Protocol\test_rfc1751.py -> build\lib.win32-2.7\Crypto\SelfTest\Protocol
copying lib\Crypto\SelfTest\Protocol\__init__.py -> build\lib.win32-2.7\Crypto\SelfTest\Protocol
creating build\lib.win32-2.7\Crypto\SelfTest\PublicKey
copying lib\Crypto\SelfTest\PublicKey\test_DSA.py -> build\lib.win32-2.7\Crypto\SelfTest\PublicKey
copying lib\Crypto\SelfTest\PublicKey\test_ElGamal.py -> build\lib.win32-2.7\Crypto\SelfTest\PublicKey
copying lib\Crypto\SelfTest\PublicKey\test_importKey.py -> build\lib.win32-2.7\Crypto\SelfTest\PublicKey
copying lib\Crypto\SelfTest\PublicKey\test_RSA.py -> build\lib.win32-2.7\Crypto\SelfTest\PublicKey
copying lib\Crypto\SelfTest\PublicKey\__init__.py -> build\lib.win32-2.7\Crypto\SelfTest\PublicKey
creating build\lib.win32-2.7\Crypto\SelfTest\Random
copying lib\Crypto\SelfTest\Random\test_random.py -> build\lib.win32-2.7\Crypto\SelfTest\Random
copying lib\Crypto\SelfTest\Random\test_rpoolcompat.py -> build\lib.win32-2.7\Crypto\SelfTest\Random
copying lib\Crypto\SelfTest\Random\__init__.py -> build\lib.win32-2.7\Crypto\SelfTest\Random
creating build\lib.win32-2.7\Crypto\SelfTest\Random\Fortuna
copying lib\Crypto\SelfTest\Random\Fortuna\test_FortunaAccumulator.py -> build\lib.win32-2.7\Crypto\SelfTest\Random\Fort
una
copying lib\Crypto\SelfTest\Random\Fortuna\test_FortunaGenerator.py -> build\lib.win32-2.7\Crypto\SelfTest\Random\Fortun
a
copying lib\Crypto\SelfTest\Random\Fortuna\test_SHAd256.py -> build\lib.win32-2.7\Crypto\SelfTest\Random\Fortuna
copying lib\Crypto\SelfTest\Random\Fortuna\__init__.py -> build\lib.win32-2.7\Crypto\SelfTest\Random\Fortuna
creating build\lib.win32-2.7\Crypto\SelfTest\Random\OSRNG
copying lib\Crypto\SelfTest\Random\OSRNG\test_fallback.py -> build\lib.win32-2.7\Crypto\SelfTest\Random\OSRNG
copying lib\Crypto\SelfTest\Random\OSRNG\test_generic.py -> build\lib.win32-2.7\Crypto\SelfTest\Random\OSRNG
copying lib\Crypto\SelfTest\Random\OSRNG\test_nt.py -> build\lib.win32-2.7\Crypto\SelfTest\Random\OSRNG
copying lib\Crypto\SelfTest\Random\OSRNG\test_posix.py -> build\lib.win32-2.7\Crypto\SelfTest\Random\OSRNG
copying lib\Crypto\SelfTest\Random\OSRNG\test_winrandom.py -> build\lib.win32-2.7\Crypto\SelfTest\Random\OSRNG
copying lib\Crypto\SelfTest\Random\OSRNG\__init__.py -> build\lib.win32-2.7\Crypto\SelfTest\Random\OSRNG
creating build\lib.win32-2.7\Crypto\SelfTest\Util
copying lib\Crypto\SelfTest\Util\test_asn1.py -> build\lib.win32-2.7\Crypto\SelfTest\Util
copying lib\Crypto\SelfTest\Util\test_Counter.py -> build\lib.win32-2.7\Crypto\SelfTest\Util
copying lib\Crypto\SelfTest\Util\test_number.py -> build\lib.win32-2.7\Crypto\SelfTest\Util
copying lib\Crypto\SelfTest\Util\test_winrandom.py -> build\lib.win32-2.7\Crypto\SelfTest\Util
copying lib\Crypto\SelfTest\Util\__init__.py -> build\lib.win32-2.7\Crypto\SelfTest\Util
creating build\lib.win32-2.7\Crypto\SelfTest\Signature
copying lib\Crypto\SelfTest\Signature\test_pkcs1_15.py -> build\lib.win32-2.7\Crypto\SelfTest\Signature
copying lib\Crypto\SelfTest\Signature\test_pkcs1_pss.py -> build\lib.win32-2.7\Crypto\SelfTest\Signature
copying lib\Crypto\SelfTest\Signature\__init__.py -> build\lib.win32-2.7\Crypto\SelfTest\Signature
creating build\lib.win32-2.7\Crypto\Protocol
copying lib\Crypto\Protocol\AllOrNothing.py -> build\lib.win32-2.7\Crypto\Protocol
copying lib\Crypto\Protocol\Chaffing.py -> build\lib.win32-2.7\Crypto\Protocol
copying lib\Crypto\Protocol\KDF.py -> build\lib.win32-2.7\Crypto\Protocol
copying lib\Crypto\Protocol\__init__.py -> build\lib.win32-2.7\Crypto\Protocol
creating build\lib.win32-2.7\Crypto\PublicKey
copying lib\Crypto\PublicKey\DSA.py -> build\lib.win32-2.7\Crypto\PublicKey
copying lib\Crypto\PublicKey\ElGamal.py -> build\lib.win32-2.7\Crypto\PublicKey
copying lib\Crypto\PublicKey\pubkey.py -> build\lib.win32-2.7\Crypto\PublicKey
copying lib\Crypto\PublicKey\RSA.py -> build\lib.win32-2.7\Crypto\PublicKey
copying lib\Crypto\PublicKey\_DSA.py -> build\lib.win32-2.7\Crypto\PublicKey
copying lib\Crypto\PublicKey\_RSA.py -> build\lib.win32-2.7\Crypto\PublicKey
copying lib\Crypto\PublicKey\_slowmath.py -> build\lib.win32-2.7\Crypto\PublicKey
copying lib\Crypto\PublicKey\__init__.py -> build\lib.win32-2.7\Crypto\PublicKey
creating build\lib.win32-2.7\Crypto\Signature
copying lib\Crypto\Signature\PKCS1_PSS.py -> build\lib.win32-2.7\Crypto\Signature
copying lib\Crypto\Signature\PKCS1_v1_5.py -> build\lib.win32-2.7\Crypto\Signature
copying lib\Crypto\Signature\__init__.py -> build\lib.win32-2.7\Crypto\Signature
running build_ext
running build_configure
'chmod' is not recognized as an internal or external command,
operable program or batch file.
Traceback (most recent call last):
  File "setup.py", line 456, in <module>
    core.setup(**kw)
  File "C:\Python27\lib\distutils\core.py", line 152, in setup
    dist.run_commands()
  File "C:\Python27\lib\distutils\dist.py", line 953, in run_commands
    self.run_command(cmd)
  File "C:\Python27\lib\distutils\dist.py", line 972, in run_command
    cmd_obj.run()
  File "C:\Python27\lib\distutils\command\install.py", line 563, in run
    self.run_command('build')
  File "C:\Python27\lib\distutils\cmd.py", line 326, in run_command
    self.distribution.run_command(command)
  File "C:\Python27\lib\distutils\dist.py", line 972, in run_command
    cmd_obj.run()
  File "C:\Python27\lib\distutils\command\build.py", line 127, in run
    self.run_command(cmd_name)
  File "C:\Python27\lib\distutils\cmd.py", line 326, in run_command
    self.distribution.run_command(command)
  File "C:\Python27\lib\distutils\dist.py", line 972, in run_command
    cmd_obj.run()
  File "setup.py", line 251, in run
    self.run_command(cmd_name)
  File "C:\Python27\lib\distutils\cmd.py", line 326, in run_command
    self.distribution.run_command(command)
  File "C:\Python27\lib\distutils\dist.py", line 972, in run_command
    cmd_obj.run()
  File "setup.py", line 273, in run
    raise RuntimeError("chmod error")
RuntimeError: chmod error

Revision history for this message
Sebastian Ramacher (s-ramacher) wrote :

This has been reported on the mailing list too [1]. There is a fix available and waiting to be merged [2].

[1] http://lists.dlitz.net/pipermail/pycrypto/2012q3/000627.html
[2] https://github.com/dlitz/pycrypto/pull/25

Revision history for this message
Darsey Litzenberger (dlitz) wrote :
Changed in pycrypto:
status: New → Fix Committed
summary: - Cannot install on Windows
+ Cannot install on Windows - invokes "chmod" shell command
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.