summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2018-04-04 15:44:40 +0200
committerCaolán McNamara <caolanm@redhat.com>2018-04-05 17:35:39 +0200
commitd5d9e64cd65ca0f9fbd07cea27bd7b17dffd8c76 (patch)
treead3c0de6854f66dcff2702d5ecded7d7df9acace
parent20e1544a3f84e784df65750d62eea42090d79a48 (diff)
Ignore dangling symlink configuration files
This will be used by the Flatpak build, to offload per-locale data to a Locale extension (which expects all per-locale files to be in one place, so we need to add---potentially dangling, if a given locale is not installed---symlinks from the original places to the location where that Locale extension stores the actual files). Change-Id: Id13b8c53fbc9e0763e53fd09c0c059c9e638c13d Reviewed-on: https://gerrit.libreoffice.org/52381 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com> (cherry picked from commit 8bd827c976037381be963d4ef99bfb9a2d720889) Reviewed-on: https://gerrit.libreoffice.org/52397 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r--configmgr/source/components.cxx8
1 files changed, 8 insertions, 0 deletions
diff --git a/configmgr/source/components.cxx b/configmgr/source/components.cxx
index 5354763b0c95..dc4374d60ec6 100644
--- a/configmgr/source/components.cxx
+++ b/configmgr/source/components.cxx
@@ -705,6 +705,10 @@ void Components::parseFiles(
parseFileLeniently(
parseFile, stat.getFileURL(), layer, nullptr, nullptr, nullptr);
} catch (css::container::NoSuchElementException & e) {
+ if (stat.getFileType() == osl::FileStatus::Link) {
+ SAL_WARN("configmgr", "dangling link <" << stat.getFileURL() << ">");
+ continue;
+ }
throw css::uno::RuntimeException(
"stat'ed file does not exist: " + e.Message);
}
@@ -781,6 +785,10 @@ void Components::parseXcdFiles(int layer, OUString const & url) {
stat.getFileURL(),
new XcdParser(layer, processedDeps, data_));
} catch (css::container::NoSuchElementException & e) {
+ if (stat.getFileType() == osl::FileStatus::Link) {
+ SAL_WARN("configmgr", "dangling link <" << stat.getFileURL() << ">");
+ continue;
+ }
throw css::uno::RuntimeException(
"stat'ed file does not exist: " + e.Message);
}