From 44abad14a3e069fe78c2d5e0a29285bc08031054 Mon Sep 17 00:00:00 2001
From: Stefan Krah <skrah@bytereef.org>
Date: Mon, 12 Sep 2016 19:27:46 +0200
Subject: Issue #23545: Adding -Wextra in setup.py is no longer necessary,
 since it is now part of the official flags.

---
 setup.py | 9 ---------
 1 file changed, 9 deletions(-)

diff --git a/setup.py b/setup.py
index d9acd97..8545735 100644
--- a/setup.py
+++ b/setup.py
@@ -2153,15 +2153,6 @@ class PyBuildExt(build_ext):
         if not sysconfig.get_config_var('WITH_THREAD'):
             define_macros.append(('WITHOUT_THREADS', 1))
 
-        # Increase warning level for gcc:
-        if 'gcc' in cc:
-            cmd = ("echo '' | %s -Wextra -Wno-missing-field-initializers -E - "
-                   "> /dev/null 2>&1" % cc)
-            ret = os.system(cmd)
-            if ret >> 8 == 0:
-                extra_compile_args.extend(['-Wextra',
-                                           '-Wno-missing-field-initializers'])
-
         # Uncomment for extra functionality:
         #define_macros.append(('EXTRA_FUNCTIONALITY', 1))
         ext = Extension (
-- 
cgit v0.12


From 476bd5ea97df153cb8faf34f600f2235051ccd8b Mon Sep 17 00:00:00 2001
From: Victor Stinner <victor.stinner@gmail.com>
Date: Mon, 12 Sep 2016 15:33:26 -0400
Subject: Fix warning in _PyCFunction_FastCallKeywords()

Issue #28105.
---
 Objects/methodobject.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/Objects/methodobject.c b/Objects/methodobject.c
index 19e8114..c2001f0 100644
--- a/Objects/methodobject.c
+++ b/Objects/methodobject.c
@@ -273,7 +273,7 @@ _PyCFunction_FastCallKeywords(PyObject *func, PyObject **stack,
                               Py_ssize_t nargs, PyObject *kwnames)
 {
     PyObject *kwdict, *result;
-    Py_ssize_t nkwargs;
+    Py_ssize_t nkwargs = (kwnames == NULL) ? 0 : PyTuple_GET_SIZE(kwnames);
 
     assert(PyCFunction_Check(func));
     assert(nargs >= 0);
@@ -282,7 +282,6 @@ _PyCFunction_FastCallKeywords(PyObject *func, PyObject **stack,
     /* kwnames must only contains str strings, no subclass, and all keys must
        be unique */
 
-    nkwargs = (kwnames == NULL) ? 0 : PyTuple_GET_SIZE(kwnames);
     if (nkwargs > 0) {
         kwdict = _PyStack_AsDict(stack + nargs, kwnames);
         if (kwdict == NULL) {
-- 
cgit v0.12


From 41fca9d166f42762407b534354d864a1aac8d95a Mon Sep 17 00:00:00 2001
From: Steve Dower <steve.dower@microsoft.com>
Date: Mon, 12 Sep 2016 13:29:58 -0700
Subject: Updates zip and nuget builds for Windows.

---
 Tools/msi/make_zip.py     | 40 +++++++++++++++++++---------------------
 Tools/nuget/make_pkg.proj |  1 +
 2 files changed, 20 insertions(+), 21 deletions(-)

diff --git a/Tools/msi/make_zip.py b/Tools/msi/make_zip.py
index 4e17740..e9d6dbc 100644
--- a/Tools/msi/make_zip.py
+++ b/Tools/msi/make_zip.py
@@ -92,23 +92,23 @@ def include_in_tools(p):
     return p.suffix.lower() in {'.py', '.pyw', '.txt'}
 
 FULL_LAYOUT = [
-    ('/', '$build', 'python.exe', is_not_debug),
-    ('/', '$build', 'pythonw.exe', is_not_debug),
-    ('/', '$build', 'python{0.major}.dll'.format(sys.version_info), is_not_debug),
-    ('/', '$build', 'python{0.major}{0.minor}.dll'.format(sys.version_info), is_not_debug),
-    ('DLLs/', '$build', '*.pyd', is_not_debug),
-    ('DLLs/', '$build', '*.dll', is_not_debug_or_python),
+    ('/', 'PCBuild/$arch', 'python.exe', is_not_debug),
+    ('/', 'PCBuild/$arch', 'pythonw.exe', is_not_debug),
+    ('/', 'PCBuild/$arch', 'python{0.major}.dll'.format(sys.version_info), is_not_debug),
+    ('/', 'PCBuild/$arch', 'python{0.major}{0.minor}.dll'.format(sys.version_info), is_not_debug),
+    ('DLLs/', 'PCBuild/$arch', '*.pyd', is_not_debug),
+    ('DLLs/', 'PCBuild/$arch', '*.dll', is_not_debug_or_python),
     ('include/', 'include', '*.h', None),
     ('include/', 'PC', 'pyconfig.h', None),
     ('Lib/', 'Lib', '**/*', include_in_lib),
-    ('libs/', '$build', '*.lib', include_in_libs),
+    ('libs/', 'PCBuild/$arch', '*.lib', include_in_libs),
     ('Tools/', 'Tools', '**/*', include_in_tools),
 ]
 
 EMBED_LAYOUT = [
-    ('/', '$build', 'python*.exe', is_not_debug),
-    ('/', '$build', '*.pyd', is_not_debug),
-    ('/', '$build', '*.dll', is_not_debug),
+    ('/', 'PCBuild/$arch', 'python*.exe', is_not_debug),
+    ('/', 'PCBuild/$arch', '*.pyd', is_not_debug),
+    ('/', 'PCBuild/$arch', '*.dll', is_not_debug),
     ('python{0.major}{0.minor}.zip'.format(sys.version_info), 'Lib', '**/*', include_in_lib),
 ]
 
@@ -170,18 +170,18 @@ def rglob(root, pattern, condition):
 def main():
     parser = argparse.ArgumentParser()
     parser.add_argument('-s', '--source', metavar='dir', help='The directory containing the repository root', type=Path)
-    parser.add_argument('-o', '--out', metavar='file', help='The name of the output archive', type=Path, default=None)
+    parser.add_argument('-o', '--out', metavar='file', help='The name of the output self-extracting archive', type=Path, default=None)
     parser.add_argument('-t', '--temp', metavar='dir', help='A directory to temporarily extract files into', type=Path, default=None)
     parser.add_argument('-e', '--embed', help='Create an embedding layout', action='store_true', default=False)
-    parser.add_argument('-b', '--build', help='Specify the build directory', type=Path)
+    parser.add_argument('-a', '--arch', help='Specify the architecture to use (win32/amd64)', type=str, default="win32")
     ns = parser.parse_args()
 
     source = ns.source or (Path(__file__).resolve().parent.parent.parent)
     out = ns.out
-    build = ns.build
+    arch = ns.arch
     assert isinstance(source, Path)
     assert not out or isinstance(out, Path)
-    assert isinstance(build, Path)
+    assert isinstance(arch, str)
 
     if ns.temp:
         temp = ns.temp
@@ -204,16 +204,14 @@ def main():
 
     try:
         for t, s, p, c in layout:
-            if s == '$build':
-                s = build
-            else:
-                s = source / s
+            s = source / s.replace("$arch", arch)
             copied = copy_to_layout(temp / t.rstrip('/'), rglob(s, p, c))
             print('Copied {} files'.format(copied))
 
-        with open(str(temp / 'sys.path'), 'w') as f:
-            print('python{0.major}{0.minor}.zip'.format(sys.version_info), file=f)
-            print('.', file=f)
+        if ns.embed:
+            with open(str(temp / 'sys.path'), 'w') as f:
+                print('python{0.major}{0.minor}.zip'.format(sys.version_info), file=f)
+                print('.', file=f)
 
         if out:
             total = copy_to_layout(out, rglob(temp, '**/*', None))
diff --git a/Tools/nuget/make_pkg.proj b/Tools/nuget/make_pkg.proj
index 542bf07..c3cd43a 100644
--- a/Tools/nuget/make_pkg.proj
+++ b/Tools/nuget/make_pkg.proj
@@ -14,6 +14,7 @@
     <PropertyGroup>
         <Nuget Condition="$(Nuget) == ''">$(ExternalsDir)\windows-installer\nuget\nuget.exe</Nuget>
         <NuspecVersion>$(MajorVersionNumber).$(MinorVersionNumber).$(MicroVersionNumber)</NuspecVersion>
+        <NuspecVersion Condition="$(ReleaseLevelName) != ''">$(NuspecVersion)-$(ReleaseLevelName)</NuspecVersion>
         <SignOutput>false</SignOutput>
         <TargetName>$(OutputName).$(NuspecVersion)</TargetName>
         <TargetExt>.nupkg</TargetExt>
-- 
cgit v0.12

