From 686abd63b5ed1d2ba64809f909f2b58d19ec7367 Mon Sep 17 00:00:00 2001 From: John Preston Date: Wed, 1 Feb 2017 13:12:52 +0300 Subject: [PATCH] Version 1.0.6: fixing some critical issues in audio handling. OnPropertyValueChanged() is called sometimes couple times a second and sometimes when AudioMutex is locked already causing a deadlock. Also some code added to support Desktop Bridge converter to UWP app. --- Telegram/Resources/art/uwp/logo.png | Bin 0 -> 20916 bytes Telegram/Resources/art/uwp/logo150.png | Bin 0 -> 12505 bytes Telegram/Resources/art/uwp/logo44.png | Bin 0 -> 3006 bytes Telegram/Resources/uwp/appxmanifest.xml | 35 +++ Telegram/Resources/uwp/mapping | 6 + Telegram/Resources/winrc/Telegram.rc | 8 +- Telegram/Resources/winrc/Updater.rc | 8 +- Telegram/SourceFiles/core/version.h | 4 +- Telegram/SourceFiles/logs.cpp | 4 +- .../SourceFiles/platform/win/audio_win.cpp | 36 ++- .../win/windows_app_user_model_id.cpp | 4 + .../SourceFiles/platform/win/windows_dlls.cpp | 2 + .../SourceFiles/platform/win/windows_dlls.h | 5 + Telegram/SourceFiles/pspecific_win.cpp | 4 + Telegram/build/build.bat | 236 +++++++++++------- Telegram/build/set_version.bat | 4 + Telegram/build/version | 6 +- Telegram/gyp/common.gypi | 5 + Telegram/gyp/settings_linux.gypi | 2 +- Telegram/gyp/settings_win.gypi | 2 +- Telegram/gyp/telegram_win.gypi | 5 + 21 files changed, 268 insertions(+), 108 deletions(-) create mode 100644 Telegram/Resources/art/uwp/logo.png create mode 100644 Telegram/Resources/art/uwp/logo150.png create mode 100644 Telegram/Resources/art/uwp/logo44.png create mode 100644 Telegram/Resources/uwp/appxmanifest.xml create mode 100644 Telegram/Resources/uwp/mapping diff --git a/Telegram/Resources/art/uwp/logo.png b/Telegram/Resources/art/uwp/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..7c2cf4eb448a84979526dbc06d82c2b14bb34bd4 GIT binary patch literal 20916 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 literal 0 HcmV?d00001 diff --git a/Telegram/Resources/art/uwp/logo150.png b/Telegram/Resources/art/uwp/logo150.png new file mode 100644 index 0000000000000000000000000000000000000000..13b334d31f5df070563865e3f60c04e0a878f911 GIT binary patch literal 12505 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 literal 0 HcmV?d00001 diff --git a/Telegram/Resources/art/uwp/logo44.png b/Telegram/Resources/art/uwp/logo44.png new file mode 100644 index 0000000000000000000000000000000000000000..bba602ecd6efc3b97edc65b96c774c74357f43f3 GIT binary patch literal 3006 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 AH~;_u literal 0 HcmV?d00001 diff --git a/Telegram/Resources/uwp/appxmanifest.xml b/Telegram/Resources/uwp/appxmanifest.xml new file mode 100644 index 000000000..2bcdefb90 --- /dev/null +++ b/Telegram/Resources/uwp/appxmanifest.xml @@ -0,0 +1,35 @@ + + + + + Telegram Desktop + Reserved + No description entered + Assets\logo.png + + + + + + + + + + + + + + + + diff --git a/Telegram/Resources/uwp/mapping b/Telegram/Resources/uwp/mapping new file mode 100644 index 000000000..52a4b0d5b --- /dev/null +++ b/Telegram/Resources/uwp/mapping @@ -0,0 +1,6 @@ +[Files] +"..\out\Release\Telegram.exe" "Telegram.exe" +"Resources\uwp\appxmanifest.xml" "AppxManifest.xml" +"Resources\art\uwp\logo.png" "Assets\logo.png" +"Resources\art\uwp\logo44.png" "Assets\logo44.png" +"Resources\art\uwp\logo150.png" "Assets\logo150.png" diff --git a/Telegram/Resources/winrc/Telegram.rc b/Telegram/Resources/winrc/Telegram.rc index 61f4579db..4bbd03c92 100644 --- a/Telegram/Resources/winrc/Telegram.rc +++ b/Telegram/Resources/winrc/Telegram.rc @@ -34,8 +34,8 @@ IDI_ICON1 ICON "..\\art\\icon256.ico" // VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,0,5,0 - PRODUCTVERSION 1,0,5,0 + FILEVERSION 1,0,6,0 + PRODUCTVERSION 1,0,6,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -51,10 +51,10 @@ BEGIN BLOCK "040904b0" BEGIN VALUE "CompanyName", "Telegram Messenger LLP" - VALUE "FileVersion", "1.0.5.0" + VALUE "FileVersion", "1.0.6.0" VALUE "LegalCopyright", "Copyright (C) 2014-2017" VALUE "ProductName", "Telegram Desktop" - VALUE "ProductVersion", "1.0.5.0" + VALUE "ProductVersion", "1.0.6.0" END END BLOCK "VarFileInfo" diff --git a/Telegram/Resources/winrc/Updater.rc b/Telegram/Resources/winrc/Updater.rc index f1cbdaba4..70ad75da7 100644 --- a/Telegram/Resources/winrc/Updater.rc +++ b/Telegram/Resources/winrc/Updater.rc @@ -25,8 +25,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US // VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,0,5,0 - PRODUCTVERSION 1,0,5,0 + FILEVERSION 1,0,6,0 + PRODUCTVERSION 1,0,6,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -43,10 +43,10 @@ BEGIN BEGIN VALUE "CompanyName", "Telegram Messenger LLP" VALUE "FileDescription", "Telegram Updater" - VALUE "FileVersion", "1.0.5.0" + VALUE "FileVersion", "1.0.6.0" VALUE "LegalCopyright", "Copyright (C) 2014-2017" VALUE "ProductName", "Telegram Desktop" - VALUE "ProductVersion", "1.0.5.0" + VALUE "ProductVersion", "1.0.6.0" END END BLOCK "VarFileInfo" diff --git a/Telegram/SourceFiles/core/version.h b/Telegram/SourceFiles/core/version.h index 3a8cef9fb..1d0b95ebf 100644 --- a/Telegram/SourceFiles/core/version.h +++ b/Telegram/SourceFiles/core/version.h @@ -24,7 +24,7 @@ Copyright (c) 2014-2017 John Preston, https://desktop.telegram.org #define BETA_VERSION_MACRO (0ULL) -constexpr int AppVersion = 1000005; -constexpr str_const AppVersionStr = "1.0.5"; +constexpr int AppVersion = 1000006; +constexpr str_const AppVersionStr = "1.0.6"; constexpr bool AppAlphaVersion = false; constexpr uint64 AppBetaVersion = BETA_VERSION_MACRO; diff --git a/Telegram/SourceFiles/logs.cpp b/Telegram/SourceFiles/logs.cpp index a6c97c3fc..da89d4a41 100644 --- a/Telegram/SourceFiles/logs.cpp +++ b/Telegram/SourceFiles/logs.cpp @@ -331,7 +331,9 @@ namespace Logs { } else { cForceWorkingDir(psAppDataPath()); workingDirChosen = true; -#endif // Q_OS_WINRT +#elif defined OS_WIN_STORE + cForceWorkingDir(psAppDataPath()); +#endif // OS_WIN_STORE } LogsData = new LogsDataFields(); diff --git a/Telegram/SourceFiles/platform/win/audio_win.cpp b/Telegram/SourceFiles/platform/win/audio_win.cpp index babcf0e14..5b1edb6c3 100644 --- a/Telegram/SourceFiles/platform/win/audio_win.cpp +++ b/Telegram/SourceFiles/platform/win/audio_win.cpp @@ -21,6 +21,7 @@ Copyright (c) 2014-2017 John Preston, https://desktop.telegram.org #include "stdafx.h" #include "platform/win/audio_win.h" +#include "platform/win/windows_dlls.h" #include "media/media_audio.h" #include @@ -73,13 +74,42 @@ STDMETHODIMP DeviceListener::QueryInterface(REFIID iid, void** object) { } STDMETHODIMP DeviceListener::OnPropertyValueChanged(LPCWSTR device_id, const PROPERTYKEY key) { - LOG(("Audio Info: OnPropertyValueChanged() scheduling detach from audio device.")); - Media::Player::DetachFromDeviceByTimer(); + auto deviceName = device_id ? '"' + QString::fromWCharArray(device_id) + '"' : QString("nullptr"); + + constexpr auto kKeyBufferSize = 1024; + WCHAR keyBuffer[kKeyBufferSize] = { 0 }; + auto hr = Dlls::PSStringFromPropertyKey(key, keyBuffer, kKeyBufferSize); + auto keyName = Dlls::PSStringFromPropertyKey ? (SUCCEEDED(hr) ? '"' + QString::fromWCharArray(keyBuffer) + '"' : QString("unknown")) : QString("unsupported"); + + // BAD GUID { 0xD4EF3098, 0xC967, 0x4A4E, { 0xB2, 0x19, 0xAC, 0xB6, 0xDA, 0x1D, 0xC3, 0x73 } }; + // BAD GUID { 0x3DE556E2, 0xE087, 0x4721, { 0xBE, 0x97, 0xEC, 0x16, 0x2D, 0x54, 0x81, 0xF8 } }; + + // VERY BAD GUID { 0x91F1336D, 0xC37C, 0x4C48, { 0xAD, 0xEB, 0x92, 0x17, 0x2F, 0xA8, 0x7E, 0xEB } }; + // It is fired somewhere from CloseAudioPlaybackDevice() causing deadlock on AudioMutex. + + // Sometimes unknown value change events come very frequently, like each 0.5 seconds. + // So we will handle only special value change events from mmdeviceapi.h + constexpr GUID pkey_AudioEndpoint = { 0x1da5d803, 0xd492, 0x4edd, { 0x8c, 0x23, 0xe0, 0xc0, 0xff, 0xee, 0x7f, 0x0e } }; + constexpr GUID pkey_AudioEngine_Device = { 0xf19f064d, 0x82c, 0x4e27, { 0xbc, 0x73, 0x68, 0x82, 0xa1, 0xbb, 0x8e, 0x4c } }; + constexpr GUID pkey_AudioEngine_OEM = { 0xe4870e26, 0x3cc5, 0x4cd2, { 0xba, 0x46, 0xca, 0xa, 0x9a, 0x70, 0xed, 0x4 } }; + constexpr GUID pkey_AudioUnknown1 = { 0x3d6e1656, 0x2e50, 0x4c4c, { 0x8d, 0x85, 0xd0, 0xac, 0xae, 0x3c, 0x6c, 0x68 } }; + constexpr GUID pkey_AudioUnknown2 = { 0x624f56de, 0xfd24, 0x473e, { 0x81, 0x4a, 0xde, 0x40, 0xaa, 0xca, 0xed, 0x16 } }; + if (key.fmtid == pkey_AudioEndpoint + || key.fmtid == pkey_AudioEngine_Device + || key.fmtid == pkey_AudioEngine_OEM + || key.fmtid == pkey_AudioUnknown1 + || key.fmtid == pkey_AudioUnknown2) { + LOG(("Audio Info: OnPropertyValueChanged(%1, %2) scheduling detach from audio device.").arg(deviceName).arg(keyName)); + Media::Player::DetachFromDeviceByTimer(); + } else { + DEBUG_LOG(("Audio Info: OnPropertyValueChanged(%1, %2) unknown, skipping.").arg(deviceName).arg(keyName)); + } return S_OK; } STDMETHODIMP DeviceListener::OnDeviceStateChanged(LPCWSTR device_id, DWORD new_state) { - LOG(("Audio Info: OnDeviceStateChanged() scheduling detach from audio device.")); + auto deviceName = device_id ? '"' + QString::fromWCharArray(device_id) + '"' : QString("nullptr"); + LOG(("Audio Info: OnDeviceStateChanged(%1, %2) scheduling detach from audio device.").arg(deviceName).arg(new_state)); Media::Player::DetachFromDeviceByTimer(); return S_OK; } diff --git a/Telegram/SourceFiles/platform/win/windows_app_user_model_id.cpp b/Telegram/SourceFiles/platform/win/windows_app_user_model_id.cpp index 5db6514e4..314258283 100644 --- a/Telegram/SourceFiles/platform/win/windows_app_user_model_id.cpp +++ b/Telegram/SourceFiles/platform/win/windows_app_user_model_id.cpp @@ -39,7 +39,11 @@ namespace { const PROPERTYKEY pkey_AppUserModel_ID = { { 0x9F4C2855, 0x9F79, 0x4B39, { 0xA8, 0xD0, 0xE1, 0xD4, 0x2D, 0xE1, 0xD5, 0xF3 } }, 5 }; const PROPERTYKEY pkey_AppUserModel_StartPinOption = { { 0x9F4C2855, 0x9F79, 0x4B39, { 0xA8, 0xD0, 0xE1, 0xD4, 0x2D, 0xE1, 0xD5, 0xF3 } }, 12 }; +#ifdef OS_WIN_STORE +const WCHAR AppUserModelIdRelease[] = L"Telegram.TelegramDesktop.Store"; +#else // OS_WIN_STORE const WCHAR AppUserModelIdRelease[] = L"Telegram.TelegramDesktop"; +#endif // OS_WIN_STORE const WCHAR AppUserModelIdBeta[] = L"Telegram.TelegramDesktop.Beta"; } // namespace diff --git a/Telegram/SourceFiles/platform/win/windows_dlls.cpp b/Telegram/SourceFiles/platform/win/windows_dlls.cpp index 3961616ce..44e0f4259 100644 --- a/Telegram/SourceFiles/platform/win/windows_dlls.cpp +++ b/Telegram/SourceFiles/platform/win/windows_dlls.cpp @@ -55,6 +55,7 @@ f_RoGetActivationFactory RoGetActivationFactory; f_WindowsCreateStringReference WindowsCreateStringReference; f_WindowsDeleteString WindowsDeleteString; f_PropVariantToString PropVariantToString; +f_PSStringFromPropertyKey PSStringFromPropertyKey; HINSTANCE LibUxTheme; HINSTANCE LibShell32; @@ -89,6 +90,7 @@ void start() { LibPropSys = LoadLibrary(L"PROPSYS.DLL"); load(LibPropSys, "PropVariantToString", PropVariantToString); + load(LibPropSys, "PSStringFromPropertyKey", PSStringFromPropertyKey); if (version >= QSysInfo::WV_WINDOWS8) { LibComBase = LoadLibrary(L"COMBASE.DLL"); diff --git a/Telegram/SourceFiles/platform/win/windows_dlls.h b/Telegram/SourceFiles/platform/win/windows_dlls.h index b7c724e66..ae0c8b3c7 100644 --- a/Telegram/SourceFiles/platform/win/windows_dlls.h +++ b/Telegram/SourceFiles/platform/win/windows_dlls.h @@ -82,6 +82,9 @@ extern f_WTSUnRegisterSessionNotification WTSUnRegisterSessionNotification; typedef HRESULT (FAR STDAPICALLTYPE *f_PropVariantToString)(_In_ REFPROPVARIANT propvar, _Out_writes_(cch) PWSTR psz, _In_ UINT cch); extern f_PropVariantToString PropVariantToString; +typedef HRESULT (FAR STDAPICALLTYPE *f_PSStringFromPropertyKey)(_In_ REFPROPERTYKEY pkey, _Out_writes_(cch) LPWSTR psz, _In_ UINT cch); +extern f_PSStringFromPropertyKey PSStringFromPropertyKey; + // COMBASE.DLL typedef HRESULT (FAR STDAPICALLTYPE *f_RoGetActivationFactory)(_In_ HSTRING activatableClassId, _In_ REFIID iid, _COM_Outptr_ void ** factory); @@ -93,5 +96,7 @@ extern f_WindowsCreateStringReference WindowsCreateStringReference; typedef HRESULT (FAR STDAPICALLTYPE *f_WindowsDeleteString)(_In_opt_ HSTRING string); extern f_WindowsDeleteString WindowsDeleteString; + + } // namespace Dlls } // namespace Platform diff --git a/Telegram/SourceFiles/pspecific_win.cpp b/Telegram/SourceFiles/pspecific_win.cpp index 9b7bb1d46..e0e14172a 100644 --- a/Telegram/SourceFiles/pspecific_win.cpp +++ b/Telegram/SourceFiles/pspecific_win.cpp @@ -362,7 +362,11 @@ QString psAppDataPath() { WCHAR wstrPath[maxFileLen]; if (GetEnvironmentVariable(L"APPDATA", wstrPath, maxFileLen)) { QDir appData(QString::fromStdWString(std::wstring(wstrPath))); +#ifdef OS_WIN_STORE + return appData.absolutePath() + qsl("/Telegram Desktop UWP/"); +#else // OS_WIN_STORE return appData.absolutePath() + '/' + str_const_toString(AppName) + '/'; +#endif // OS_WIN_STORE } return QString(); } diff --git a/Telegram/build/build.bat b/Telegram/build/build.bat index 4117476c5..86d3291d1 100644 --- a/Telegram/build/build.bat +++ b/Telegram/build/build.bat @@ -3,6 +3,14 @@ setlocal enabledelayedexpansion set "FullScriptPath=%~dp0" set "FullExecPath=%cd%" +set "BuildPlatform=%1" + +if "%BuildPlatform%" neq "uwp" ( + set "BuildUWP=0" +) else ( + set "BuildUWP=1" +) + if not exist "%FullScriptPath%..\..\..\TelegramPrivate" ( echo. echo This script is for building the production version of Telegram Desktop. @@ -31,7 +39,11 @@ if %BetaVersion% neq 0 ( ) echo. -echo Building version %AppVersionStrFull% for Windows.. +if %BuildUWP% neq 0 ( + echo Building version %AppVersionStrFull% for UWP.. +) else ( + echo Building version %AppVersionStrFull% for Windows.. +) echo. set "HomePath=%FullScriptPath%.." @@ -43,6 +55,7 @@ set "PortableFile=tportable.%AppVersionStrFull%.zip" set "ReleasePath=%HomePath%\..\out\Release" set "DeployPath=%ReleasePath%\deploy\%AppVersionStrMajor%\%AppVersionStrFull%" set "SignPath=%HomePath%\..\..\TelegramPrivate\Sign.bat" +set "SignAppxPath=%HomePath%\..\..\TelegramPrivate\AppxSign.bat" set "BinaryName=Telegram" set "DropboxSymbolsPath=X:\Telegram\symbols" set "FinalReleasePath=Y:\TBuild\tother\tsetup" @@ -58,6 +71,10 @@ if not exist %FinalReleasePath% ( ) if %BetaVersion% neq 0 ( + if %BuildUWP% neq 0 ( + echo Can not build UWP version from a closed beta! + exit /b 1 + ) if exist %DeployPath%\ ( echo Deploy folder for version %AppVersionStr% already exists! exit /b 1 @@ -67,25 +84,47 @@ if %BetaVersion% neq 0 ( exit /b 1 ) ) else ( - if exist %ReleasePath%\deploy\%AppVersionStrMajor%\%AppVersionStr%.alpha\ ( - echo Deploy folder for version %AppVersionStr%.alpha already exists! - exit /b 1 - ) - if exist %ReleasePath%\deploy\%AppVersionStrMajor%\%AppVersionStr%.dev\ ( - echo Deploy folder for version %AppVersionStr%.dev already exists! - exit /b 1 - ) - if exist %ReleasePath%\deploy\%AppVersionStrMajor%\%AppVersionStr%\ ( - echo Deploy folder for version %AppVersionStr% already exists! - exit /b 1 - ) - if exist %ReleasePath%\tupdate%AppVersion% ( - echo Update file for version %AppVersion% already exists! - exit /b 1 + if %BuildUWP% neq 0 ( + if "%AlphaBetaParam%" neq "" ( + echo Can not build UWP version from an alpha! + exit /b 1 + ) + if exist %ReleasePath%\deploy\%AppVersionStrMajor%\%AppVersionStr%\uwp\ ( + echo UWP deploy folder for version %AppVersionStr% already exists! + exit /b 1 + ) + if not exist %ReleasePath%\deploy\%AppVersionStrMajor%\%AppVersionStr%\ ( + echo Deploy folder for version %AppVersionStr% does not exist! + exit /b 1 + ) + ) else ( + if exist %ReleasePath%\deploy\%AppVersionStrMajor%\%AppVersionStr%.alpha\ ( + echo Deploy folder for version %AppVersionStr%.alpha already exists! + exit /b 1 + ) + if exist %ReleasePath%\deploy\%AppVersionStrMajor%\%AppVersionStr%.dev\ ( + echo Deploy folder for version %AppVersionStr%.dev already exists! + exit /b 1 + ) + if exist %ReleasePath%\deploy\%AppVersionStrMajor%\%AppVersionStr%\ ( + echo Deploy folder for version %AppVersionStr% already exists! + exit /b 1 + ) + if exist %ReleasePath%\tupdate%AppVersion% ( + echo Update file for version %AppVersion% already exists! + exit /b 1 + ) ) ) cd "%HomePath%" + +if %BuildUWP% neq 0 ( + echo uwp > build\target +) else ( + echo win > build\target +) + call gyp\refresh.bat if %errorlevel% neq 0 goto error @@ -93,9 +132,9 @@ cd "%SolutionPath%" call ninja -C out/Release Telegram if %errorlevel% neq 0 goto error -echo . +echo. echo Version %AppVersionStrFull% build successfull. Preparing.. -echo . +echo. echo Dumping debug symbols.. xcopy "%ReleasePath%\%BinaryName%.exe" "%ReleasePath%\%BinaryName%.exe.exe*" @@ -109,43 +148,52 @@ cd "%ReleasePath%" call "%SignPath%" "%BinaryName%.exe" if %errorlevel% neq 0 goto error -call "%SignPath%" "Updater.exe" -if %errorlevel% neq 0 goto error +if %BuildUWP% neq 0 ( + cd "%HomePath%" -if %BetaVersion% equ 0 ( - iscc /dMyAppVersion=%AppVersionStrSmall% /dMyAppVersionZero=%AppVersionStr% /dMyAppVersionFull=%AppVersionStrFull% "/dReleasePath=%ReleasePath%" "%FullScriptPath%setup.iss" + MakeAppx.exe pack /f Resources\uwp\mapping /p ..\out\Release\%BinaryName%.appx if %errorlevel% neq 0 goto error - if not exist "tsetup.%AppVersionStrFull%.exe" goto error - call "%SignPath%" "tsetup.%AppVersionStrFull%.exe" + call "%SignAppxPath%" "..\out\Release\%BinaryName%.appx" +) else ( + call "%SignPath%" "Updater.exe" if %errorlevel% neq 0 goto error -) -call Packer.exe -version %VersionForPacker% -path %BinaryName%.exe -path Updater.exe %AlphaBetaParam% -if %errorlevel% neq 0 goto error + if %BetaVersion% equ 0 ( + iscc /dMyAppVersion=%AppVersionStrSmall% /dMyAppVersionZero=%AppVersionStr% /dMyAppVersionFull=%AppVersionStrFull% "/dReleasePath=%ReleasePath%" "%FullScriptPath%setup.iss" + if %errorlevel% neq 0 goto error + if not exist "tsetup.%AppVersionStrFull%.exe" goto error -if %BetaVersion% neq 0 ( - if not exist "%ReleasePath%\%BetaKeyFile%" ( - echo Beta version key file not found! - exit /b 1 + call "%SignPath%" "tsetup.%AppVersionStrFull%.exe" + if %errorlevel% neq 0 goto error ) - FOR /F "tokens=1* delims= " %%i in (%ReleasePath%\%BetaKeyFile%) do set "BetaSignature=%%i" -) -if %errorlevel% neq 0 goto error + call Packer.exe -version %VersionForPacker% -path %BinaryName%.exe -path Updater.exe %AlphaBetaParam% + if %errorlevel% neq 0 goto error -if %BetaVersion% neq 0 ( - set "UpdateFile=%UpdateFile%_%BetaSignature%" - set "PortableFile=tbeta%BetaVersion%_%BetaSignature%.zip" + if %BetaVersion% neq 0 ( + if not exist "%ReleasePath%\%BetaKeyFile%" ( + echo Beta version key file not found! + exit /b 1 + ) + + FOR /F "tokens=1* delims= " %%i in (%ReleasePath%\%BetaKeyFile%) do set "BetaSignature=%%i" + ) + if %errorlevel% neq 0 goto error + + if %BetaVersion% neq 0 ( + set "UpdateFile=%UpdateFile%_%BetaSignature%" + set "PortableFile=tbeta%BetaVersion%_%BetaSignature%.zip" + ) ) for /f ^"usebackq^ eol^=^ ^ delims^=^" %%a in (%ReleasePath%\%BinaryName%.exe.sym) do ( - set "SymbolsHashLine=%%a" - goto symbolslinedone -) -:symbolslinedone + set "SymbolsHashLine=%%a" + goto symbolslinedone + ) + :symbolslinedone FOR /F "tokens=1,2,3,4* delims= " %%i in ("%SymbolsHashLine%") do set "SymbolsHash=%%l" echo Copying %BinaryName%.exe.sym to %DropboxSymbolsPath%\%BinaryName%.exe.pdb\%SymbolsHash% @@ -154,61 +202,71 @@ if not exist %DropboxSymbolsPath%\%BinaryName%.exe.pdb\%SymbolsHash% mkdir %Drop move "%ReleasePath%\%BinaryName%.exe.sym" %DropboxSymbolsPath%\%BinaryName%.exe.pdb\%SymbolsHash%\ echo Done! -if not exist "%ReleasePath%\deploy" mkdir "%ReleasePath%\deploy" -if not exist "%ReleasePath%\deploy\%AppVersionStrMajor%" mkdir "%ReleasePath%\deploy\%AppVersionStrMajor%" -mkdir "%DeployPath%" -mkdir "%DeployPath%\%BinaryName%" -if %errorlevel% neq 0 goto error - -move "%ReleasePath%\%BinaryName%.exe" "%DeployPath%\%BinaryName%\" -move "%ReleasePath%\Updater.exe" "%DeployPath%\" -xcopy "%ReleasePath%\%BinaryName%.pdb" "%DeployPath%\" -xcopy "%ReleasePath%\Updater.pdb" "%DeployPath%\" -move "%ReleasePath%\%BinaryName%.exe.pdb" "%DeployPath%\" -move "%ReleasePath%\Updater.exe.pdb" "%DeployPath%\" -if %BetaVersion% equ 0 ( - move "%ReleasePath%\%SetupFile%" "%DeployPath%\" +if %BuildUWP% neq 0 ( + mkdir "%DeployPath%\uwp" + move "%ReleasePath%\%BinaryName%.exe" "%DeployPath%\uwp\" + xcopy "%ReleasePath%\%BinaryName%.pdb" "%DeployPath%\uwp\" + move "%ReleasePath%\%BinaryName%.exe.pdb" "%DeployPath%\uwp\" + move "%ReleasePath%\Telegram.appx" "%DeployPath%\uwp\" ) else ( - move "%ReleasePath%\%BetaKeyFile%" "%DeployPath%\" + if not exist "%ReleasePath%\deploy" mkdir "%ReleasePath%\deploy" + if not exist "%ReleasePath%\deploy\%AppVersionStrMajor%" mkdir "%ReleasePath%\deploy\%AppVersionStrMajor%" + mkdir "%DeployPath%" + mkdir "%DeployPath%\%BinaryName%" + if %errorlevel% neq 0 goto error + + move "%ReleasePath%\%BinaryName%.exe" "%DeployPath%\%BinaryName%\" + move "%ReleasePath%\Updater.exe" "%DeployPath%\" + xcopy "%ReleasePath%\%BinaryName%.pdb" "%DeployPath%\" + xcopy "%ReleasePath%\Updater.pdb" "%DeployPath%\" + move "%ReleasePath%\%BinaryName%.exe.pdb" "%DeployPath%\" + move "%ReleasePath%\Updater.exe.pdb" "%DeployPath%\" + if %BetaVersion% equ 0 ( + move "%ReleasePath%\%SetupFile%" "%DeployPath%\" + ) else ( + move "%ReleasePath%\%BetaKeyFile%" "%DeployPath%\" + ) + move "%ReleasePath%\%UpdateFile%" "%DeployPath%\" + if %errorlevel% neq 0 goto error + + cd "%DeployPath%" + 7z a -mx9 %PortableFile% %BinaryName%\ + if %errorlevel% neq 0 goto error ) -move "%ReleasePath%\%UpdateFile%" "%DeployPath%\" -if %errorlevel% neq 0 goto error -cd "%DeployPath%" -7z a -mx9 %PortableFile% %BinaryName%\ -if %errorlevel% neq 0 goto error +if %BuildUWP% equ 0 ( + echo. + echo Version %AppVersionStrFull% is ready for deploy! + echo. -echo . -echo Version %AppVersionStrFull% is ready for deploy! -echo . + set "FinalDeployPath=%FinalReleasePath%\%AppVersionStrMajor%\%AppVersionStrFull%" -set "FinalDeployPath=%FinalReleasePath%\%AppVersionStrMajor%\%AppVersionStrFull%" + if not exist "%DeployPath%\%UpdateFile%" goto error + if not exist "%DeployPath%\%PortableFile%" goto error + if %BetaVersion% equ 0 ( + if not exist "%DeployPath%\%SetupFile%" goto error + ) + if not exist "%DeployPath%\%BinaryName%.pdb" goto error + if not exist "%DeployPath%\%BinaryName%.exe.pdb" goto error + if not exist "%DeployPath%\Updater.exe" goto error + if not exist "%DeployPath%\Updater.pdb" goto error + if not exist "%DeployPath%\Updater.exe.pdb" goto error + if not exist "%FinalReleasePath%\%AppVersionStrMajor%" mkdir "%FinalReleasePath%\%AppVersionStrMajor%" + if not exist "%FinalDeployPath%" mkdir "%FinalDeployPath%" -if not exist "%DeployPath%\%UpdateFile%" goto error -if not exist "%DeployPath%\%PortableFile%" goto error -if %BetaVersion% equ 0 ( - if not exist "%DeployPath%\%SetupFile%" goto error + xcopy "%DeployPath%\%UpdateFile%" "%FinalDeployPath%\" + xcopy "%DeployPath%\%PortableFile%" "%FinalDeployPath%\" + if %BetaVersion% equ 0 ( + xcopy "%DeployPath%\%SetupFile%" "%FinalDeployPath%\" + ) else ( + xcopy "%DeployPath%\%BetaKeyFile%" "%FinalDeployPath%\" /Y + ) + xcopy "%DeployPath%\%BinaryName%.pdb" "%FinalDeployPath%\" + xcopy "%DeployPath%\%BinaryName%.exe.pdb" "%FinalDeployPath%\" + xcopy "%DeployPath%\Updater.exe" "%FinalDeployPath%\" + xcopy "%DeployPath%\Updater.pdb" "%FinalDeployPath%\" + xcopy "%DeployPath%\Updater.exe.pdb" "%FinalDeployPath%\" ) -if not exist "%DeployPath%\%BinaryName%.pdb" goto error -if not exist "%DeployPath%\%BinaryName%.exe.pdb" goto error -if not exist "%DeployPath%\Updater.exe" goto error -if not exist "%DeployPath%\Updater.pdb" goto error -if not exist "%DeployPath%\Updater.exe.pdb" goto error -if not exist "%FinalReleasePath%\%AppVersionStrMajor%" mkdir "%FinalReleasePath%\%AppVersionStrMajor%" -if not exist "%FinalDeployPath%" mkdir "%FinalDeployPath%" - -xcopy "%DeployPath%\%UpdateFile%" "%FinalDeployPath%\" -xcopy "%DeployPath%\%PortableFile%" "%FinalDeployPath%\" -if %BetaVersion% equ 0 ( - xcopy "%DeployPath%\%SetupFile%" "%FinalDeployPath%\" -) else ( - xcopy "%DeployPath%\%BetaKeyFile%" "%FinalDeployPath%\" /Y -) -xcopy "%DeployPath%\%BinaryName%.pdb" "%FinalDeployPath%\" -xcopy "%DeployPath%\%BinaryName%.exe.pdb" "%FinalDeployPath%\" -xcopy "%DeployPath%\Updater.exe" "%FinalDeployPath%\" -xcopy "%DeployPath%\Updater.pdb" "%FinalDeployPath%\" -xcopy "%DeployPath%\Updater.exe.pdb" "%FinalDeployPath%\" echo Version %AppVersionStrFull% is ready! diff --git a/Telegram/build/set_version.bat b/Telegram/build/set_version.bat index 06ec7b020..c508a42be 100644 --- a/Telegram/build/set_version.bat +++ b/Telegram/build/set_version.bat @@ -103,6 +103,10 @@ call :repl "Replace=(PRODUCTVERSION) (\s*)\d+,\d+,\d+,\d+/$1$2 %VersionMajor%,%V call :repl "Replace=("FileVersion",) (\s*)"\d+.\d+.\d+.\d+"/$1$2 "%VersionMajor%.%VersionMinor%.%VersionPatch%.%VersionBeta%"" "Filename=%ResourcePath%" || goto :error call :repl "Replace=("ProductVersion",) (\s*)"\d+.\d+.\d+.\d+"/$1$2 "%VersionMajor%.%VersionMinor%.%VersionPatch%.%VersionBeta%"" "Filename=%ResourcePath%" || goto :error +echo Patching appxmanifest.xml... +set "ResourcePath=%FullScriptPath%..\Resources\uwp\appxmanifest.xml" +call :repl "Replace=(Version=)"\d+.\d+.\d+.\d+"/$1"%VersionMajor%.%VersionMinor%.%VersionPatch%.%VersionBeta%"" "Filename=%ResourcePath%" || goto :error + exit /b :error diff --git a/Telegram/build/version b/Telegram/build/version index c6e2ab595..cdafbd7aa 100644 --- a/Telegram/build/version +++ b/Telegram/build/version @@ -1,6 +1,6 @@ -AppVersion 1000005 +AppVersion 1000006 AppVersionStrMajor 1.0 -AppVersionStrSmall 1.0.5 -AppVersionStr 1.0.5 +AppVersionStrSmall 1.0.6 +AppVersionStr 1.0.6 AlphaChannel 0 BetaVersion 0 diff --git a/Telegram/gyp/common.gypi b/Telegram/gyp/common.gypi index a050623b6..ca73a899c 100644 --- a/Telegram/gyp/common.gypi +++ b/Telegram/gyp/common.gypi @@ -92,6 +92,11 @@ }, { 'build_macstore': 0, }], + [ '"<(official_build_target)" == "uwp"', { + 'build_uwp': 1, + }, { + 'build_uwp': 0, + }], ], 'ld_lib_prefix': '<(ld_lib_prefix)', 'ld_lib_postfix': '<(ld_lib_postfix)', diff --git a/Telegram/gyp/settings_linux.gypi b/Telegram/gyp/settings_linux.gypi index 3356b979c..79eacfcb5 100644 --- a/Telegram/gyp/settings_linux.gypi +++ b/Telegram/gyp/settings_linux.gypi @@ -44,7 +44,7 @@ ], 'conditions': [ [ '"<(official_build_target)" != "" and "<(official_build_target)" != "linux"', { - 'sources': [ '__Wrong_Official_Build_Target__' ], + 'sources': [ '__Wrong_Official_Build_Target_<(official_build_target)_' ], }], ], }, { diff --git a/Telegram/gyp/settings_win.gypi b/Telegram/gyp/settings_win.gypi index 1d9f7b3b4..5d5cca9f5 100644 --- a/Telegram/gyp/settings_win.gypi +++ b/Telegram/gyp/settings_win.gypi @@ -109,7 +109,7 @@ }, }, 'conditions': [ - [ '"<(official_build_target)" != "" and "<(official_build_target)" != "win"', { + [ '"<(official_build_target)" != "" and "<(official_build_target)" != "win" and "<(official_build_target)" != "uwp"', { 'sources': [ '__Wrong_Official_Build_Target__' ], }], ], diff --git a/Telegram/gyp/telegram_win.gypi b/Telegram/gyp/telegram_win.gypi index ce23aa2e6..3009a840a 100644 --- a/Telegram/gyp/telegram_win.gypi +++ b/Telegram/gyp/telegram_win.gypi @@ -88,5 +88,10 @@ ], }, }, + }], [ 'build_uwp', { + 'defines': [ + 'TDESKTOP_DISABLE_AUTOUPDATE', + 'OS_WIN_STORE', + ] }]], }