Giter Site home page Giter Site logo

libxml2-win-binaries's People

Contributors

jtjbrady avatar mhils avatar tbble avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

libxml2-win-binaries's Issues

python3.7 requires Visual Studio 2017

I just tried to run py -3.7 setup.py bdist_wheel --static-deps on Windows 10 machine running the latest python 3.7.0 and I got an error saying that

The object or library file 'libs\iconv-1.14.win64\lib\iconv_a.lib' was created with an older compiler than other objects; rebuild old objects and libraries

I noticed that the buildlibxml.py script included in the lxml repository downloads the precompiled binaries to include in the lxml windows wheels for python3.5 and 3.6 from this github repository.

So I guess the next step in order to have lxml python3.7 wheels for Windows is to update this to make available static libraries of libxml2, libxslt, zlib and iconv that are compiled with the latest Visual Studio 2017.

libxml2 compression support not working in lxml

I'm not sure exactly what's going on, but it seems the gzip compression inside libxml2 is not working with these libraries.

I observed this in the lxml unit tests, ones that use string or HTTP with compression support:

  • test.py lxml.tests.test_etree ETreeC14NTestCase.test_c14n_file_gzip
  • test.py lxml.tests.test_etree ETreeWriteTestCase.test_write_file_gzip
  • test.py lxml.tests.test_etree ETreeWriteTestCase.test_write_file_gzipfiletest_parse
  • test.py lxml.tests.test_http_io HttpIOTestCase.test_http_client_gzip

The other gzip tests do the compression work in the lxml code, rather than using libxml2's compression support.

I created a minimal reproduction case:

#!/usr/bin/env python
from lxml import etree
from io import StringIO
etree.parse(StringIO(u'<a><b/></a>')).write_c14n('test1.xml', compression=9)

On Python 2.7.12 x64 using lxml 3.6.0 (latest Python 2.7 wheel available on pypi), the created file is gzip-compressed: Success

On Python 3.5.2 x64 using lxml 3.7.2 or 3.7.1 (only Python 3.5 wheels available on pypi), the created file in uncompressed: Failure

I've also confirmed this behaviour in a local build of unmodified lxml trunk.

The build scripts for libxml2-win-binaries do not currently enable zlib support in the libxml2 or libxslt2 libraries. I was attempting to fix this in a branch (See TBBle/libxml2-win-binaries@43eff97, the rest of that branch is pending in #5). Building lxml against the AppVeyor builds of that branch didn't cause the tests to pass, so I'm not sure if something else is wrong still with that branch, or if the problem is elsewhere.

A notable difference is that if you remove the zlib downloading and linking from the setupinfo.py and buildlibxml.py in lxml, the build against latest-release libs in libxml2-win-binaries still works, but against my own branched libraries fail to link due to missing zlib symbols. So my branch changes have had some effect, but not resolved the issue.

So at this point, I'm trying to work out why even my builds (which clearly do reference zlib) do not seem to compress when passed the compression parameter. The next step might be to build some of the libxml2 tools in the same build-pass, and see if they work with compressed data.

Please update to latest versions

  • libxml2 2.9.10
  • libxslt 1.1.34

The other libs are probably still fine.

Note that libxml2 2.9.11/12 are non-functional with lxml. 2.9.13 should be ok, once it's released.

Thanks!

Appveyor build fails with PackageManagement error

PackageManagement\Install-Package : A command with name 'gcb' is already available on this system. This module 'Pscx' may override the existing commands. If you still want to install this module 'Pscx', use -AllowClobber

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.