Skip to content

[3.4] bpo-29591, bpo-30694: Upgrade Modules/expat to libexpat 2.2.1 (#2164) #2203

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 and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Jul 12, 2017
Merged

Conversation

vstinner
Copy link
Member

  • 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)

@vstinner
Copy link
Member Author

Oh... Travis CI and AppVeyor are not configured on the 3.4 branch :-(

@vstinner 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) Jun 23, 2017
@vstinner
Copy link
Member Author

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.

@larryhastings
Copy link
Contributor

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.

vstinner and others added 4 commits July 11, 2017 22:28
* 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 <[email protected]>
(cherry picked from commit c8fb58b)
…2319)

* 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 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) Jul 11, 2017
@vstinner
Copy link
Member Author

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.

@larryhastings larryhastings merged commit 71572bb into python:3.4 Jul 12, 2017
@larryhastings
Copy link
Contributor

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.

@vstinner vstinner deleted the expat34 branch July 12, 2017 12:51
@vstinner
Copy link
Member Author

Thanks!

I don't think that the NEWS order of these two fixes matter much ;-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type-security A security issue
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants