M2Crypto Supports OpenSSL 1.0.x

I was supposed to release new M2Crypto version in the summer of 2010 but “real life” got in the way, and this extended all the way until this week. I finally decided that I’d better push out a new release even though there was just one significant change: OpenSSL 1.0.x support. However, I felt this was really important since OpenSSL 1.0.x has been out for almost a year now, and it is starting to get difficult to deal with software that does not work with pre-1.0.x.

Unfortunately I made a mistake in my first release to PyPI: I used the setup.py commands to build, sign and upload a source distribution, but I did this from a tree I had svn exported. Due to the way the M2Crypto setup.py was constructed this meant that the tarball was lacking vital files. Yesterday I did a new 0.21.1 release from the Subversion checkout, so the tarball now includes everything.

Similar Posts:

7 Comments

  1. Marius Gedminas:

    I strongly recommend writing a MANIFEST.in file (as documented in http://docs.python.org/distutils/sourcedist.html#manifest-template) to prevent this kind of accident in the future.

    The setuptools version control support is unreliable: Subversion changed its working tree metadata format a few times in the past, and each time there was a flurry of broken packages uploaded to PyPI until setuptools caught up. And when you migrate to a different version control system (git, hg, bazaar), you need to make sure you’ve the right setuptools plugins installed on each machine where you do releases.

    And this version control magic can never work when you use svn export, or unpack an sdist, make a change, and want to re-pack it with setup.py sdist again.

    Writing a MANIFEST.in is easy, and it works always.

  2. Heikki Toivonen:

    I know about manifests, and you are right in that it would be good to have manifest so that regardless of which version control system was used (or none, in the case of exports), things would still work. However, I am not sure if manifests allow to say include everything with sdist, but only minimal stuff for binary distributions (M2Crypto dir, *.so, *.dll, setup.*, …). Will need to try that out.

  3. Mike:

    > I did a new 0.21.1

    Thanks for fixing this :-)

  4. Marius Gedminas:

    Manifests are used only for sdists. Binary dists contain what package_data=… in setup.py enumerates.

  5. estin:

    DTSL supported?

  6. Heikki Toivonen:

    There is no DTLS specific code in M2Crypto as far as I recall, but you could easily wrap the needed APIs and provide a patch ;)

  7. user:

    And socket timeouts issues have been around for 4 years in M2Crypto, plz fix :(