[Libreoffice-commits] core.git: 4 commits - bin/update desktop/source
Markus Mohrhard
markus.mohrhard at googlemail.com
Sat Aug 19 22:27:33 UTC 2017
bin/update/tools.py | 7 +++++-
desktop/source/app/app.cxx | 3 +-
desktop/source/app/updater.cxx | 47 ++++++++++++++++++++++++++++++-----------
3 files changed, 43 insertions(+), 14 deletions(-)
New commits:
commit 257fb1141f2dcb22d3ac6c8bb63af94bc3d652af
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date: Sun Aug 20 00:23:11 2017 +0200
updater: replace whitespace in dir names and strip the extra win dir layer
Change-Id: I543b903157d44038468eb4d92261dfd0d8b2909b
diff --git a/bin/update/tools.py b/bin/update/tools.py
index 1e14f793cceb..8cd786635f0d 100644
--- a/bin/update/tools.py
+++ b/bin/update/tools.py
@@ -20,7 +20,12 @@ def uncompress_file_to_dir(compressed_file, uncompress_dir):
zip_file = zipfile.ZipFile(compressed_file)
zip_file.extractall(uncompress_dir)
zip_file.close()
- pass
+
+ uncompress_dir = os.path.join(uncompress_dir, os.listdir(uncompress_dir)[0])
+ if " " in os.listdir(uncompress_dir)[0]:
+ print("replacing whitespace in directory name")
+ os.rename(os.path.join(uncompress_dir, os.listdir(uncompress_dir)[0]),
+ os.path.join(uncompress_dir, os.listdir(uncompress_dir)[0].replace(" ", "_")))
else:
print("Error: unknown extension " + extension)
commit 5daa3a1cc0bced06c638952ececf4299ef71183a
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date: Sat Aug 19 22:10:27 2017 +0200
updater: make it easier to test some parts of the updating code
Change-Id: I7f3758eb8c12d912a47ac3a3c632347e6e124601
diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx
index f71355c03b7a..209c0d7d8ed2 100644
--- a/desktop/source/app/app.cxx
+++ b/desktop/source/app/app.cxx
@@ -1427,6 +1427,7 @@ int Desktop::Main()
osl::DirectoryItem::get(Updater::getUpdateFileURL(), aUpdateFile);
const char* pUpdaterTestUpdate = std::getenv("LIBO_UPDATER_TEST_UPDATE");
+ const char* pForcedUpdateCheck = std::getenv("LIBO_UPDATER_TEST_UPDATE_CHECK");
if (pUpdaterTestUpdate || aUpdateFile.is())
{
OUString aBuildID("${$BRAND_BASE_DIR/" LIBO_ETC_FOLDER "/" SAL_CONFIGFILE("version") ":buildid}");
@@ -1446,7 +1447,7 @@ int Desktop::Main()
if (bSuccess)
return EXIT_SUCCESS;
}
- else if (isTimeForUpdateCheck())
+ else if (isTimeForUpdateCheck() || pForcedUpdateCheck)
{
sal_uInt64 nNow = tools::Time::GetSystemTicks();
Updater::log("Update Check Time: " + OUString::number(nNow));
diff --git a/desktop/source/app/updater.cxx b/desktop/source/app/updater.cxx
index 73a3bd993476..4049b0ab3472 100644
--- a/desktop/source/app/updater.cxx
+++ b/desktop/source/app/updater.cxx
@@ -678,6 +678,13 @@ void update_checker()
OUString aProductName = utl::ConfigManager::getProductName();
OUString aBuildID = Updater::getBuildID();
+
+ static const char* pBuildIdEnv = std::getenv("LIBO_UPDATER_BUILD");
+ if (pBuildIdEnv)
+ {
+ aBuildID = OUString::createFromAscii(pBuildIdEnv);
+ }
+
OUString aBuildTarget = "${_OS}_${_ARCH}";
rtl::Bootstrap::expandMacros(aBuildTarget);
OUString aChannel = officecfg::Office::Update::Update::UpdateChannel::get();
commit 3f8a48f5d81baee92f83a666842b7322195d6116
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date: Sat Aug 19 22:09:56 2017 +0200
updater: windows prevents moving file with open file handles
Change-Id: Iebd4886f3d44f816fc06b7c80e7368bbac3d159a
diff --git a/desktop/source/app/updater.cxx b/desktop/source/app/updater.cxx
index a034dc3a478e..73a3bd993476 100644
--- a/desktop/source/app/updater.cxx
+++ b/desktop/source/app/updater.cxx
@@ -651,6 +651,7 @@ void download_file(const OUString& rURL, size_t nFileSize, const OUString& rHash
OUString aDestFile = aPatchDirURL + aFileName;
Updater::log("Destination File: " + aDestFile);
+ aDownloadedFile.close();
eError = osl::File::move(aTempFile, aDestFile);
handle_file_error(eError, "Could not move the file from the Temp directory to the user config: TempFile: " + aTempFile + "; DestFile: " + aDestFile);
}
commit 575cf048132c905e91bf2266be93e245c993498f
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date: Sat Aug 19 19:22:03 2017 +0200
updater: better error logging
Change-Id: I9acdfc6e493bc8ae6d2335e5aae65699bf2665c0
diff --git a/desktop/source/app/updater.cxx b/desktop/source/app/updater.cxx
index f5955bc8b5e5..a034dc3a478e 100644
--- a/desktop/source/app/updater.cxx
+++ b/desktop/source/app/updater.cxx
@@ -48,6 +48,18 @@ namespace {
class error_updater : public std::exception
{
+ OString maStr;
+public:
+
+ error_updater(const OString& rStr):
+ maStr(rStr)
+ {
+ }
+
+ virtual const char* what() const override
+ {
+ return maStr.getStr();
+ }
};
#ifdef UNX
@@ -576,13 +588,13 @@ std::string download_content(const OString& rURL, bool bFile, OUString& rHash)
if (http_code != 200)
{
SAL_WARN("desktop.updater", "download did not succeed. Error code: " << http_code);
- throw error_updater();
+ throw error_updater("download did not succeed");
}
if (cc != CURLE_OK)
{
SAL_WARN("desktop.updater", "curl error: " << cc);
- throw error_updater();
+ throw error_updater("curl error");
}
if (bFile)
@@ -591,34 +603,36 @@ std::string download_content(const OString& rURL, bool bFile, OUString& rHash)
return response_body;
}
-void handle_file_error(osl::FileBase::RC eError)
+void handle_file_error(osl::FileBase::RC eError, const OUString& rMsg)
{
switch (eError)
{
case osl::FileBase::E_None:
break;
default:
- SAL_WARN("desktop.updater", "file error code: " << eError);
- throw error_updater();
+ SAL_WARN("desktop.updater", "file error code: " << eError << ", " << rMsg);
+ throw error_updater(OUStringToOString(rMsg, RTL_TEXTENCODING_UTF8));
}
}
void download_file(const OUString& rURL, size_t nFileSize, const OUString& rHash, const OUString& aFileName)
{
+ Updater::log("Download File: " + rURL + "; FileName: " + aFileName);
OString aURL = OUStringToOString(rURL, RTL_TEXTENCODING_UTF8);
OUString aHash;
std::string temp_file = download_content(aURL, true, aHash);
if (temp_file.empty())
- throw error_updater();
+ throw error_updater("empty temp file string");
OUString aTempFile = OUString::fromUtf8(temp_file.c_str());
+ Updater::log("TempFile: " + aTempFile);
osl::File aDownloadedFile(aTempFile);
osl::FileBase::RC eError = aDownloadedFile.open(1);
- handle_file_error(eError);
+ handle_file_error(eError, "Could not open the download file: " + aTempFile);
sal_uInt64 nSize = 0;
eError = aDownloadedFile.getSize(nSize);
- handle_file_error(eError);
+ handle_file_error(eError, "Could not get the file size of the downloaded file: " + aTempFile);
if (nSize != nFileSize)
{
SAL_WARN("desktop.updater", "File sizes don't match. File might be corrupted.");
@@ -636,8 +650,9 @@ void download_file(const OUString& rURL, size_t nFileSize, const OUString& rHash
osl::Directory::create(aPatchDirURL);
OUString aDestFile = aPatchDirURL + aFileName;
+ Updater::log("Destination File: " + aDestFile);
eError = osl::File::move(aTempFile, aDestFile);
- handle_file_error(eError);
+ handle_file_error(eError, "Could not move the file from the Temp directory to the user config: TempFile: " + aTempFile + "; DestFile: " + aDestFile);
}
}
@@ -718,10 +733,10 @@ void update_checker()
SAL_WARN("desktop.updater", "invalid update information");
Updater::log(OString("warning: invalid update info"));
}
- catch (const error_updater&)
+ catch (const error_updater& e)
{
- SAL_WARN("desktop.updater", "error during the update check");
- Updater::log(OString("warning: error by the updater"));
+ SAL_WARN("desktop.updater", "error during the update check: " << e.what());
+ Updater::log(OString("warning: error by the updater") + e.what());
}
catch (const invalid_size& e)
{
More information about the Libreoffice-commits
mailing list