[3.4] bpo-29591, bpo-30694: Upgrade Modules/expat to libexpat 2.2.1 (#2164) by vstinner · Pull Request #2203 · python/cpython (original) (raw)
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Conversation6 Commits4 Checks0 Files changed
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
[ Show hidden characters]({{ revealButtonHref }})
- bpo-29591: Upgrade Modules/expat to libexpat 2.2
- bpo-29591: Restore Python changes on expat
- bpo-29591: Remove expat config of unsupported platforms
Remove the configuration (Modules/expat/*config.h) of unsupported
platforms:
- Amiga
- MacOS Classic on PPC32
- Open Watcom
- bpo-29591: Remove useless XML_HAS_SET_HASH_SALT
The XML_HAS_SET_HASH_SALT define of Modules/expat/expat.h became
useless since our local expat copy was upgrade to expat 2.1 (it's now
expat 2.2.0).
(cherry picked from commit 23ec4b5)
Oh... Travis CI and AppVeyor are not configured on the 3.4 branch :-(
vstinner changed the title
[3.4] bpo-29591: Upgrade Modules/expat to libexpat 2.2 (#2164) [3.4] bpo-29591: Upgrade Modules/expat to libexpat 2.2.1 (#2164)
I updated my PR to now upgrade libexpat from 2.1.1 to 2.2.1 (previously, it was to upgrade to 2.2.0). I also included PCbuild/_elementtree.vcxproj changes to fix compiler warnings.
I asked some questions on bpo. I expect to accept this PR once these three things are true:
- I understand everything that's going on,
- I confirm that the change has been sufficiently reviewed, and
- there are no conflicts.
bpo-29591: Upgrade Modules/expat to libexpat 2.2
bpo-29591: Restore Python changes on expat
bpo-29591: Remove expat config of unsupported platforms
Remove the configuration (Modules/expat/*config.h) of unsupported platforms:
Amiga
MacOS Classic on PPC32
Open Watcom
bpo-29591: Remove useless XML_HAS_SET_HASH_SALT
The XML_HAS_SET_HASH_SALT define of Modules/expat/expat.h became useless since our local expat copy was upgrade to expat 2.1 (it's now expat 2.2.0).
(cherry picked from commit 23ec4b5)
New file: Modules/expat/siphash.h. (cherry picked from commit 5ff7132)
bpo-30726, bpo-29591: libexpat 2.2.1 of Modules/expat/ now uses a winconfig.h configuration file which already defines:
- XML_NS
- XML_DTD
- BYTEORDER=1234
- XML_CONTEXT_BYTES=1024
- HAVE_MEMMOVE
Remove these defines from PCbuild/_elementtree.vcxproj to prevent compiler warnings.
Co-Authored-By: Jeremy Kloth jeremy.kloth@gmail.com (cherry picked from commit c8fb58b)
- bpo-30726: Fix elementtree warnings on Windows
Caused by usage of getenv
which should be safe. And a few integer
truncations which should also be ok.
- bpo-30726: Don't ignore libexpat warnings which haypo intends to fix upstream
(cherry picked from commit 87c6555)
vstinner changed the title
[3.4] bpo-29591: Upgrade Modules/expat to libexpat 2.2.1 (#2164) [3.4] bpo-29591, bpo-30694: Upgrade Modules/expat to libexpat 2.2.1 (#2164)
I converted NEWS entries to NEWS.d files using blurb and I rebased the PR.
I revalidated with my rebuild_expat_dir.sh script attached to http://bugs.python.org/issue30694 that Modules/expat/ is a copy of libexpat 2.1.1 with a single line of change, add ``#include "pyexpatns.h"```.
I also tested after git clean -fdx
that test_pyexpat still pass.
I confirm that the change has been sufficiently reviewed,
This PR is made of 4 commits which are straighforward backports, the two major backported commits (expat 2.2.0 and 2.2.1) were reviewed by @tiran and @gpshead.
Merged.
One minor note: blurb sorts the entries from NEWS.d based on filename, which contains the time. Right now the generated NEWS file will list the "upgrade expat from 2.1.1 to 2.2.0" first, then list the "upgrade expat from 2.2.0 to 2.2.1". Since everybody knows NEWS entries are strictly sorted chronologically with newest entries first ;-) this might look a bit strange.
To fix it, just rename one of the two blurbs so they sort in the opposite order. Or you could just leave it, nbd.
Thanks!
I don't think that the NEWS order of these two fixes matter much ;-)