Commit 8ef1db34 authored by Steve Dower's avatar Steve Dower

Merge with 3.5

parents dd7cb10b a2ea0e48
......@@ -138,6 +138,17 @@ Core and Builtins
Library
-------
- Issue #25092: Fix datetime.strftime() failure when errno was already set to
EINVAL.
- Issue #23517: Fix rounding in fromtimestamp() and utcfromtimestamp() methods
of datetime.datetime: microseconds are now rounded to nearest with ties
going to nearest even integer (ROUND_HALF_EVEN), instead of being rounding
towards minus infinity (ROUND_FLOOR). It's important that these methods use
the same rounding mode than datetime.timedelta to keep the property:
(datetime(1970,1,1) + timedelta(seconds=t)) == datetime.utcfromtimestamp(t).
It also the rounding mode used by round(float) for example.
- Issue #25155: Fix datetime.datetime.now() and datetime.datetime.utcnow() on
Windows to support date after year 2038. It was a regression introduced in
Python 3.5.0.
......@@ -239,6 +250,19 @@ Build
Windows
-------
- Issue #25102: Windows installer does not precompile for -O or -OO.
- Issue #25081: Makes Back button in installer go back to upgrade page when
upgrading.
- Issue #25091: Increases font size of the installer.
- Issue #25126: Clarifies that the non-web installer will download some
components.
- Issue #25213: Restores requestedExecutionLevel to manifest to disable
UAC virtualization.
- Issue #25022: Removed very outdated PC/example_nt/ directory.
......
......@@ -653,6 +653,9 @@ time_strftime(PyObject *self, PyObject *args)
PyErr_NoMemory();
break;
}
#if defined _MSC_VER && _MSC_VER >= 1400 && defined(__STDC_SECURE_LIB__)
errno = 0;
#endif
_Py_BEGIN_SUPPRESS_IPH
buflen = format_time(outbuf, i, fmt, &buf);
_Py_END_SUPPRESS_IPH
......
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo>
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
......
This diff is collapsed.
......@@ -86,8 +86,8 @@ Select Customize to review current options.</String>
<String Id="InstallLauncherAllUsersLabel">for &amp;all users (requires elevation)</String>
<String Id="ShortInstallLauncherAllUsersLabel">Install &amp;launcher for all users (recommended)</String>
<String Id="PrecompileLabel">&amp;Precompile standard library</String>
<String Id="Include_symbolsLabel">Install debugging &amp;symbols</String>
<String Id="Include_debugLabel">Install debu&amp;g binaries (requires VS 2015 or later)</String>
<String Id="Include_symbolsLabel">Download debugging &amp;symbols</String>
<String Id="Include_debugLabel">Download debu&amp;g binaries (requires VS 2015 or later)</String>
<String Id="ProgressHeader">[ActionLikeInstallation] Progress</String>
<String Id="ProgressLabel">[ActionLikeInstalling]:</String>
......
This diff was suppressed by a .gitattributes entry.
......@@ -323,6 +323,8 @@ class PythonBootstrapperApplication : public CBalBaseBootstrapperApplication {
SavePageSettings();
if (_modifying) {
GoToPage(PAGE_MODIFY);
} else if (_upgrading) {
GoToPage(PAGE_UPGRADE);
} else {
GoToPage(PAGE_INSTALL);
}
......@@ -2524,6 +2526,7 @@ private:
case BOOTSTRAPPER_ACTION_INSTALL:
if (_upgradingOldVersion) {
_installPage = PAGE_UPGRADE;
_upgrading = TRUE;
} else if (SUCCEEDED(BalGetNumericVariable(L"SimpleInstall", &simple)) && simple) {
_installPage = PAGE_SIMPLE_INSTALL;
} else {
......@@ -3029,6 +3032,7 @@ public:
_suppressDowngradeFailure = FALSE;
_suppressRepair = FALSE;
_modifying = FALSE;
_upgrading = FALSE;
_overridableVariables = nullptr;
_taskbarList = nullptr;
......@@ -3113,6 +3117,7 @@ private:
BOOL _suppressDowngradeFailure;
BOOL _suppressRepair;
BOOL _modifying;
BOOL _upgrading;
int _crtInstalledToken;
......
......@@ -2,4 +2,6 @@
<WixLocalization Culture="en-us" xmlns="http://schemas.microsoft.com/wix/2006/localization">
<String Id="CRTDescription">C Runtime Update (KB2999226)</String>
<String Id="CompileAllDescription">Precompiling standard library</String>
<String Id="CompileAllODescription">Precompiling standard library (-O)</String>
<String Id="CompileAllOODescription">Precompiling standard library (-OO)</String>
</WixLocalization>
......@@ -40,23 +40,64 @@
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage>
<?define CompileAllCommand=-$(var.ShortVersion)$(var.Suffix32) -E -s -Wi "[TargetDir]\Lib\compileall.py" -f -x "bad_coding|badsyntax|site-packages|py2_|lib2to3\\tests|venv\\scripts" "[TargetDir]\Lib"?>
<?define CompileAllCommand=-E -s -Wi "[TargetDir]\Lib\compileall.py" -f -x "bad_coding|badsyntax|site-packages|py2_|lib2to3\\tests|venv\\scripts" "[TargetDir]\Lib"?>
<ExePackage Id="compileall_AllUsers"
SourceFile="py.exe"
Compressed="yes"
DisplayName="!(loc.CompileAllDescription)"
InstallCommand='$(var.CompileAllCommand)'
RepairCommand='$(var.CompileAllCommand)'
InstallCommand='-$(var.ShortVersion)$(var.Suffix32) $(var.CompileAllCommand)'
RepairCommand='-$(var.ShortVersion)$(var.Suffix32) $(var.CompileAllCommand)'
Permanent="yes"
PerMachine="yes"
Vital="no"
InstallCondition="InstallAllUsers and CompileAll and not LauncherOnly" />
<ExePackage Id="compileallO_AllUsers"
SourceFile="py.exe"
Compressed="yes"
DisplayName="!(loc.CompileAllODescription)"
InstallCommand='-$(var.ShortVersion)$(var.Suffix32) -O $(var.CompileAllCommand)'
RepairCommand='-$(var.ShortVersion)$(var.Suffix32) -O $(var.CompileAllCommand)'
Permanent="yes"
PerMachine="yes"
Vital="no"
InstallCondition="InstallAllUsers and CompileAll and not LauncherOnly" />
<ExePackage Id="compileallOO_AllUsers"
SourceFile="py.exe"
Compressed="yes"
DisplayName="!(loc.CompileAllOODescription)"
InstallCommand='-$(var.ShortVersion)$(var.Suffix32) -OO $(var.CompileAllCommand)'
RepairCommand='-$(var.ShortVersion)$(var.Suffix32) -OO $(var.CompileAllCommand)'
Permanent="yes"
PerMachine="yes"
Vital="no"
InstallCondition="InstallAllUsers and CompileAll and not LauncherOnly" />
<ExePackage Id="compileall_JustForMe"
SourceFile="py.exe"
Compressed="yes"
DisplayName="!(loc.CompileAllDescription)"
InstallCommand='$(var.CompileAllCommand)'
RepairCommand='$(var.CompileAllCommand)'
InstallCommand='-$(var.ShortVersion)$(var.Suffix32) $(var.CompileAllCommand)'
RepairCommand='-$(var.ShortVersion)$(var.Suffix32) $(var.CompileAllCommand)'
Permanent="yes"
PerMachine="no"
Vital="no"
InstallCondition="not InstallAllUsers and CompileAll and not LauncherOnly" />
<ExePackage Id="compileallO_JustForMe"
SourceFile="py.exe"
Compressed="yes"
DisplayName="!(loc.CompileAllODescription)"
InstallCommand='-$(var.ShortVersion)$(var.Suffix32) -O $(var.CompileAllCommand)'
RepairCommand='-$(var.ShortVersion)$(var.Suffix32) -O $(var.CompileAllCommand)'
Permanent="yes"
PerMachine="no"
Vital="no"
InstallCondition="not InstallAllUsers and CompileAll and not LauncherOnly" />
<ExePackage Id="compileallOO_JustForMe"
SourceFile="py.exe"
Compressed="yes"
DisplayName="!(loc.CompileAllOODescription)"
InstallCommand='-$(var.ShortVersion)$(var.Suffix32) -OO $(var.CompileAllCommand)'
RepairCommand='-$(var.ShortVersion)$(var.Suffix32) -OO $(var.CompileAllCommand)'
Permanent="yes"
PerMachine="no"
Vital="no"
......
......@@ -14,6 +14,7 @@
<TargetName>python-$(PythonVersion)-embed-$(ArchName)</TargetName>
<TargetExt>.zip</TargetExt>
<TargetPath>$(OutputPath)\en-us\$(TargetName)$(TargetExt)</TargetPath>
<CleanCommand>rmdir /q/s "$(IntermediateOutputPath)\zip_$(ArchName)"</CleanCommand>
<Arguments>"$(PythonExe)" "$(MSBuildThisFileDirectory)\make_zip.py"</Arguments>
<Arguments>$(Arguments) -e -o "$(TargetPath)" -t "$(IntermediateOutputPath)\zip_$(ArchName)" -a $(ArchName)</Arguments>
<Environment>set DOC_FILENAME=python$(PythonVersion).chm
......@@ -23,6 +24,7 @@ set VCREDIST_PATH=$(VS140COMNTOOLS)\..\..\VC\redist\$(Platform)\Microsoft.VC140.
<Target Name="_Build">
<Exec Command="setlocal
$(Environment)
$(CleanCommand)
$(Arguments)" />
</Target>
......
......@@ -15,6 +15,20 @@ TKTCL_RE = re.compile(r'^(_?tk|tcl).+\.(pyd|dll)', re.IGNORECASE)
DEBUG_RE = re.compile(r'_d\.(pyd|dll|exe)$', re.IGNORECASE)
PYTHON_DLL_RE = re.compile(r'python\d\d?\.dll$', re.IGNORECASE)
EXCLUDE_FROM_LIBRARY = {
'__pycache__',
'ensurepip',
'idlelib',
'pydoc_data',
'site-packages',
'tkinter',
'turtledemo',
}
EXCLUDE_FILE_FROM_LIBRARY = {
'bdist_wininst.py',
}
def is_not_debug(p):
if DEBUG_RE.search(p.name):
return False
......@@ -37,16 +51,21 @@ def is_not_debug_or_python(p):
def include_in_lib(p):
name = p.name.lower()
if p.is_dir():
if name in {'__pycache__', 'ensurepip', 'idlelib', 'pydoc_data', 'tkinter', 'turtledemo'}:
if name in EXCLUDE_FROM_LIBRARY:
return False
if name.startswith('plat-'):
return False
if name == 'test' and p.parts[-2].lower() == 'lib':
return False
if name in {'test', 'tests'} and p.parts[-3].lower() == 'lib':
return False
return True
if name in EXCLUDE_FILE_FROM_LIBRARY:
return False
suffix = p.suffix.lower()
return suffix not in {'.pyc', '.pyo'}
return suffix not in {'.pyc', '.pyo', '.exe'}
def include_in_tools(p):
if p.is_dir() and p.name.lower() in {'scripts', 'i18n', 'pynche', 'demo', 'parser'}:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment