[Libreoffice-commits] core.git: 5 commits - configmgr/Library_configmgr.mk configmgr/source instsetoo_native/CustomTarget_setup.mk scp2/source

Stephan Bergmann sbergman at redhat.com
Tue Sep 1 06:07:10 PDT 2015


 configmgr/Library_configmgr.mk         |    2 
 configmgr/source/components.cxx        |   63 +-
 configmgr/source/components.hxx        |    5 
 configmgr/source/dconf.cxx             |  968 +++++++++++++++++++++++++++++++++
 configmgr/source/dconf.hxx             |   25 
 configmgr/source/readdconflayer.cxx    |  953 --------------------------------
 configmgr/source/readdconflayer.hxx    |   25 
 instsetoo_native/CustomTarget_setup.mk |    2 
 scp2/source/ooo/common_brand.scp       |    4 
 9 files changed, 1046 insertions(+), 1001 deletions(-)

New commits:
commit 21e713a751d4c6d1ad43f7eaa53b06e395b0cb3e
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Tue Sep 1 15:05:19 2015 +0200

    Handle dconf_client_new failure
    
    Change-Id: Ib873ca03a2552dc0405236ed87040672ba359e5e

diff --git a/configmgr/source/dconf.cxx b/configmgr/source/dconf.cxx
index 4490259..ca94a9b 100644
--- a/configmgr/source/dconf.cxx
+++ b/configmgr/source/dconf.cxx
@@ -954,6 +954,10 @@ void readDir(
 
 void readLayer(Data & data, int layer) {
     GObjectHolder<DConfClient> client(dconf_client_new());
+    if (client.get() == nullptr) {
+        SAL_WARN("configmgr.dconf", "dconf_client_new failed");
+        return;
+    }
     readDir(
         data, layer, rtl::Reference<Node>(), data.getComponents(), client,
         "/org/libreoffice/registry/");
commit 9da6318b4e62a0e30d15df00d564dad61a74933e
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Tue Sep 1 13:08:39 2015 +0200

    dconf: fix check for matching template
    
    Change-Id: I8319bf10310d55e2f29de8103d983e34a53f87df

diff --git a/configmgr/source/dconf.cxx b/configmgr/source/dconf.cxx
index 44e8038..4490259 100644
--- a/configmgr/source/dconf.cxx
+++ b/configmgr/source/dconf.cxx
@@ -816,47 +816,47 @@ void readDir(
         }
         rtl::Reference<Node> member(members.findNode(layer, name));
         bool insert = !member.is();
-        if (!remove && (replace || insert)) {
-            if (!node.is()) {
-                SAL_WARN("configmgr.dconf", "bad unmatched " << path);
-                continue;
-            }
-            switch (node->kind()) {
-            case Node::KIND_LOCALIZED_PROPERTY:
-                member.set(new LocalizedValueNode(layer));
-                break;
-            case Node::KIND_GROUP:
-                if (!static_cast<GroupNode *>(node.get())->isExtensible()) {
+        if (!remove) {
+            if (replace || insert) {
+                if (!node.is()) {
                     SAL_WARN("configmgr.dconf", "bad unmatched " << path);
                     continue;
                 }
-                member.set(
-                    new PropertyNode(
-                        layer, TYPE_ANY, true, css::uno::Any(), true));
-                break;
-            case Node::KIND_SET:
-                assert(!templ.isEmpty());
-                member = data.getTemplate(layer, templ);
-                if (!member.is()) {
-                    SAL_WARN(
-                        "configmgr.dconf",
-                        "bad " << path << " denoting undefined template "
-                            << templ);
-                    continue;
+                switch (node->kind()) {
+                case Node::KIND_LOCALIZED_PROPERTY:
+                    member.set(new LocalizedValueNode(layer));
+                    break;
+                case Node::KIND_GROUP:
+                    if (!static_cast<GroupNode *>(node.get())->isExtensible()) {
+                        SAL_WARN("configmgr.dconf", "bad unmatched " << path);
+                        continue;
+                    }
+                    member.set(
+                        new PropertyNode(
+                            layer, TYPE_ANY, true, css::uno::Any(), true));
+                    break;
+                case Node::KIND_SET:
+                    assert(!templ.isEmpty());
+                    member = data.getTemplate(layer, templ);
+                    if (!member.is()) {
+                        SAL_WARN(
+                            "configmgr.dconf",
+                            "bad " << path << " denoting undefined template "
+                                << templ);
+                        continue;
+                    }
+                    break;
+                default:
+                    assert(false); // cannot happen
                 }
-                break;
-            default:
-                assert(false); // cannot happen
+            } else if (!templ.isEmpty() && templ != member->getTemplateName()) {
+                SAL_WARN(
+                    "configmgr.dconf",
+                    "bad " << path
+                        << " denoting set element of non-matching template "
+                        << member->getTemplateName());
+                continue;
             }
-        } else if (!(templ.isEmpty()
-                     || (node.is() && templ == node->getTemplateName())))
-        {
-            SAL_WARN(
-                "configmgr.dconf",
-                "bad " << path
-                    << " denoting set element of non-matching template "
-                    << node->getTemplateName());
-            continue;
         }
         if (member.is()) {
             if (member->getFinalized() < layer) {
commit f262cfcf8ebf81d2d1407cf283b5d8eaaee053fd
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Tue Sep 1 13:07:44 2015 +0200

    dconf: fix encoding of set element names
    
    Change-Id: I6aba45a70a9ebee65be34af1036bb515fd2a22b7

diff --git a/configmgr/source/dconf.cxx b/configmgr/source/dconf.cxx
index 7d1bc79..44e8038 100644
--- a/configmgr/source/dconf.cxx
+++ b/configmgr/source/dconf.cxx
@@ -51,17 +51,25 @@
 //     N ; T ; O
 //
 //   where ";" represents U+003B SEMICOLON; N is an encoding of the node name,
-//   where each occurrence of U+003B SEMICOLON is replaced by the three
-//   characters "\3B" and each ocurrence of U+005C REVERSE SOLIDUS is replaced
-//   by the three characters "\5C"; T is an encoding of the full template name,
-//   where each occurrence of U+002F SOLIDUS is replaced by the three characters
-//   "\2F", each occurrence of U+003B SEMICOLON is replaced by the three
-//   characters "\3B", and each ocurrence of U+005C REVERSE SOLIDUS is replaced
-//   by the three characters "\5C"; and O is "fuse" or "replace", respectively.
+//   where each occurrence of U+0000 NULL is replace by the three characters
+//   "\00", each occurrence of U+002F SOLIDUS is replaced by the three
+//   characters "\2F", each occurrence of U+003B SEMICOLON is replaced by the
+//   three characters "\3B", and each ocurrence of U+005C REVERSE SOLIDUS is
+//   replaced by the three characters "\5C"; T is an encoding of the full
+//   template name, where each occurrence of U+002F SOLIDUS is replaced by the
+//   three characters "\2F", each occurrence of U+003B SEMICOLON is replaced by
+//   the three characters "\3B", and each ocurrence of U+005C REVERSE SOLIDUS is
+//   replaced by the three characters "\5C"; and O is "fuse" or "replace",
+//   respectively.
 //
 // * Set element and property "remove" operations are encoded as dconf key path
-//   segments directly using the node name, and the associated value being a
-//   GVariant of empty tuple type.
+//   segments as follows, and the associated value being a GVariant of empty
+//   tuple type.  For set elements, the dconf key path segment consists of an
+//   encoding of the node name, where each occurrence of U+0000 NULL is replace
+//   by the three characters "\00", each occurrence of U+002F SOLIDUS is
+//   replaced by the three characters "\2F", and each ocurrence of U+005C
+//   REVERSE SOLIDUS is replaced by the three characters "\5C".  For properties,
+//   the dconf key path segment directly uses the node name.
 //
 // * Property and localized property value "fuse" operations map to GVariant
 //   instances as follows:
@@ -738,7 +746,7 @@ void readDir(
                     continue;
                 }
                 name = seg.copy(0, i1);
-                if (!decode(&name, false, false, true)) {
+                if (!decode(&name, true, true, true)) {
                     continue;
                 }
                 ++i1;
@@ -781,6 +789,9 @@ void readDir(
             } else {
                 remove = true;
                 name = seg;
+                if (!decode(&name, true, true, false)) {
+                    continue;
+                }
                 replace = false;
                 assert(!path.endsWith("/"));
                 GVariantHolder v(
commit 2921d6773698cc588f808172b37fb28d80b28a9c
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Fri Aug 28 14:41:40 2015 +0200

    Rename stuff, in preparation of dconf::writeModifications
    
    Change-Id: Icd472e91b222907e2cdcbdba1b78b33c44eff566

diff --git a/configmgr/Library_configmgr.mk b/configmgr/Library_configmgr.mk
index 36c316a..81367ca 100644
--- a/configmgr/Library_configmgr.mk
+++ b/configmgr/Library_configmgr.mk
@@ -43,7 +43,7 @@ $(eval $(call gb_Library_add_exception_objects,configmgr, \
     configmgr/source/xcsparser \
     configmgr/source/xcuparser \
     configmgr/source/xmldata \
-    $(if $(ENABLE_DCONF),configmgr/source/readdconflayer) \
+    $(if $(ENABLE_DCONF),configmgr/source/dconf) \
     $(if $(filter $(OS),WNT),configmgr/source/winreg) \
 ))
 
diff --git a/configmgr/source/components.cxx b/configmgr/source/components.cxx
index d6f7144..1b9066a 100644
--- a/configmgr/source/components.cxx
+++ b/configmgr/source/components.cxx
@@ -66,7 +66,7 @@
 #include "xcsparser.hxx"
 
 #if ENABLE_DCONF
-#include <readdconflayer.hxx>
+#include <dconf.hxx>
 #endif
 
 #if defined WNT
@@ -536,7 +536,7 @@ Components::Components(
             if (url == "!") {
                 modificationTarget_ = ModificationTarget::Dconf;
             } else if (url == "*") {
-                readDconfLayer(data_, layer);
+                dconf::readLayer(data_, layer);
             } else {
                 throw css::uno::RuntimeException(
                     "CONFIGURATION_LAYERS: unknown \"dconf\" kind \"" + url
diff --git a/configmgr/source/readdconflayer.cxx b/configmgr/source/dconf.cxx
similarity index 99%
rename from configmgr/source/readdconflayer.cxx
rename to configmgr/source/dconf.cxx
index 035f554..7d1bc79 100644
--- a/configmgr/source/readdconflayer.cxx
+++ b/configmgr/source/dconf.cxx
@@ -20,12 +20,12 @@
 #include <com/sun/star/uno/Sequence.hxx>
 
 #include <data.hxx>
+#include <dconf.hxx>
 #include <groupnode.hxx>
 #include <localizedpropertynode.hxx>
 #include <localizedvaluenode.hxx>
 #include <nodemap.hxx>
 #include <propertynode.hxx>
-#include <readdconflayer.hxx>
 #include <setnode.hxx>
 
 // component-data is encoded in dconf as follows:
@@ -95,7 +95,7 @@
 //
 // TODO: support "mandatory" and "external"?
 
-namespace configmgr {
+namespace configmgr { namespace dconf {
 
 namespace {
 
@@ -941,13 +941,13 @@ void readDir(
 
 }
 
-void readDconfLayer(Data & data, int layer) {
+void readLayer(Data & data, int layer) {
     GObjectHolder<DConfClient> client(dconf_client_new());
     readDir(
         data, layer, rtl::Reference<Node>(), data.getComponents(), client,
         "/org/libreoffice/registry/");
 }
 
-}
+} }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/configmgr/source/readdconflayer.hxx b/configmgr/source/dconf.hxx
similarity index 72%
rename from configmgr/source/readdconflayer.hxx
rename to configmgr/source/dconf.hxx
index 63a4698..0f63e04 100644
--- a/configmgr/source/readdconflayer.hxx
+++ b/configmgr/source/dconf.hxx
@@ -7,18 +7,18 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
-#ifndef INCLUDED_CONFIGMGR_SOURCE_READDCONFLAYER_HXX
-#define INCLUDED_CONFIGMGR_SOURCE_READDCONFLAYER_HXX
+#ifndef INCLUDED_CONFIGMGR_SOURCE_DCONF_HXX
+#define INCLUDED_CONFIGMGR_SOURCE_DCONF_HXX
 
 #include <sal/config.h>
 
 namespace configmgr { struct Data; }
 
-namespace configmgr {
+namespace configmgr { namespace dconf {
 
-void readDconfLayer(Data & data, int layer);
+void readLayer(Data & data, int layer);
 
-}
+} }
 
 #endif
 
commit 12f92e6d9ea8bf05bda6d3c42f9b6f0aba000cb0
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Fri Aug 28 13:49:56 2015 +0200

    Support modification write-back to other than registrymodifications.xcu
    
    ...to eventually support writing to dconf (see TODO).
    
    Even when writing somewhere else, it may still be useful to read from the
    current "user:" location, so a new convention was introduced to
    CONFIGURATION_LAYERS types that support write-back:
    
    - A leading "!" indicates that the layer is indeed used for write-back (probably
    in addition to reading from it).  For backwards compatibility (when users use
    own settings of CONFIGURATION_LAYERS, instead of depending on the value in the
    shipped fundamental ini-file), no prefix on the "user:" is now interpreted the
    same as a "!" prefix.
    
    - A leading "*" indicates that the layer is not used for write-back (but only
    for reading from it).
    
    Change-Id: I399cc7bfe927db50586834f9630c184aaa2153f2

diff --git a/configmgr/source/components.cxx b/configmgr/source/components.cxx
index b3c8acb..d6f7144 100644
--- a/configmgr/source/components.cxx
+++ b/configmgr/source/components.cxx
@@ -279,12 +279,21 @@ void Components::addModification(Path const & path) {
 
 void Components::writeModifications() {
 
-    if (!(data_.modifications.empty() || modificationFileUrl_.isEmpty()
-          || writeThread_.is()))
-    {
-        writeThread_ = new WriteThread(
-            &writeThread_, *this, modificationFileUrl_, data_);
-        writeThread_->launch();
+    if (!data_.modifications.empty()) {
+        switch (modificationTarget_) {
+        case ModificationTarget::None:
+            break;
+        case ModificationTarget::File:
+            if (!writeThread_.is()) {
+                writeThread_ = new WriteThread(
+                    &writeThread_, *this, modificationFileUrl_, data_);
+                writeThread_->launch();
+            }
+            break;
+        case ModificationTarget::Dconf:
+            //TODO
+            break;
+        }
     }
 }
 
@@ -455,7 +464,8 @@ css::beans::Optional< css::uno::Any > Components::getExternalValue(
 
 Components::Components(
     css::uno::Reference< css::uno::XComponentContext > const & context):
-    context_(context), sharedExtensionLayer_(-1), userExtensionLayer_(-1)
+    context_(context), sharedExtensionLayer_(-1), userExtensionLayer_(-1),
+    modificationTarget_(ModificationTarget::None)
 {
     assert(context.is());
     lock_ = lock();
@@ -468,9 +478,10 @@ Components::Components(
         if (i == conf.getLength()) {
             break;
         }
-        if (!modificationFileUrl_.isEmpty()) {
+        if (modificationTarget_ != ModificationTarget::None) {
             throw css::uno::RuntimeException(
-                "CONFIGURATION_LAYERS: \"user\" followed by further layers");
+                "CONFIGURATION_LAYERS: modification target layer followed by"
+                " further layers");
         }
         sal_Int32 c = i;
         for (;; ++c) {
@@ -522,11 +533,15 @@ Components::Components(
             ++layer; //TODO: overflow
 #if ENABLE_DCONF
         } else if (type == "dconf") {
-            if (!url.isEmpty()) {
+            if (url == "!") {
+                modificationTarget_ = ModificationTarget::Dconf;
+            } else if (url == "*") {
+                readDconfLayer(data_, layer);
+            } else {
                 throw css::uno::RuntimeException(
-                    "CONFIGURATION_LAYERS: non-empty \"dconf\" URL");
+                    "CONFIGURATION_LAYERS: unknown \"dconf\" kind \"" + url
+                    + "\"");
             }
-            readDconfLayer(data_, layer);
             ++layer; //TODO: overflow
 #endif
 #if defined WNT
@@ -549,12 +564,24 @@ Components::Components(
             ++layer; //TODO: overflow
 #endif
         } else if (type == "user") {
+            bool write;
+            if (url.startsWith("!", &url)) {
+                write = true;
+            } else if (url.startsWith("*", &url)) {
+                write = false;
+            } else {
+                write = true; // for backwards compatibility
+            }
             if (url.isEmpty()) {
                 throw css::uno::RuntimeException(
                     "CONFIGURATION_LAYERS: empty \"user\" URL");
             }
-            modificationFileUrl_ = url;
-            parseModificationLayer(url);
+            if (write) {
+                modificationTarget_ = ModificationTarget::File;
+                modificationFileUrl_ = url;
+            }
+            parseModificationLayer(write ? Data::NO_LAYER : layer, url);
+            ++layer; //TODO: overflow
         } else {
             throw css::uno::RuntimeException(
                 "CONFIGURATION_LAYERS: unknown layer type \"" + type + "\"");
@@ -789,9 +816,9 @@ void Components::parseResLayer(int layer, OUString const & url) {
     parseFiles(layer, ".xcu", &parseXcuFile, resUrl, false);
 }
 
-void Components::parseModificationLayer(OUString const & url) {
+void Components::parseModificationLayer(int layer, OUString const & url) {
     try {
-        parseFileLeniently(&parseXcuFile, url, Data::NO_LAYER, 0, 0, 0);
+        parseFileLeniently(&parseXcuFile, url, layer, 0, 0, 0);
     } catch (css::container::NoSuchElementException &) {
         SAL_INFO(
             "configmgr", "user registrymodifications.xcu does not (yet) exist");
@@ -799,7 +826,7 @@ void Components::parseModificationLayer(OUString const & url) {
         // longer relevant, probably OOo 4; also see hack for xsi namespace in
         // xmlreader::XmlReader::registerNamespaceIri):
         parseFiles(
-            Data::NO_LAYER, ".xcu", &parseXcuFile,
+            layer, ".xcu", &parseXcuFile,
             expand(
                 "${$BRAND_BASE_DIR/" LIBO_ETC_FOLDER "/" SAL_CONFIGFILE("bootstrap")
                 ":UserInstallation}/user/registry/data"),
diff --git a/configmgr/source/components.hxx b/configmgr/source/components.hxx
index 25d0d6e..43e682e 100644
--- a/configmgr/source/components.hxx
+++ b/configmgr/source/components.hxx
@@ -139,7 +139,7 @@ private:
 
     void parseResLayer(int layer, OUString const & url);
 
-    void parseModificationLayer(OUString const & url);
+    void parseModificationLayer(int layer, OUString const & url);
 
     int getExtensionLayer(bool shared);
 
@@ -153,6 +153,8 @@ private:
 
     class WriteThread;
 
+    enum class ModificationTarget { None, File, Dconf };
+
     css::uno::Reference< css::uno::XComponentContext >
         context_;
     Data data_;
@@ -161,6 +163,7 @@ private:
     rtl::Reference< WriteThread > writeThread_;
     int sharedExtensionLayer_;
     int userExtensionLayer_;
+    ModificationTarget modificationTarget_;
     OUString modificationFileUrl_;
     std::shared_ptr<osl::Mutex> lock_;
 };
diff --git a/instsetoo_native/CustomTarget_setup.mk b/instsetoo_native/CustomTarget_setup.mk
index 209ab0a..14809b9 100644
--- a/instsetoo_native/CustomTarget_setup.mk
+++ b/instsetoo_native/CustomTarget_setup.mk
@@ -52,7 +52,7 @@ $(call gb_CustomTarget_get_workdir,instsetoo_native/setup)/$(call gb_Helper_get_
 		&& echo 'BRAND_BASE_DIR=$${ORIGIN}/..' \
 		&& echo 'BRAND_INI_DIR=$${ORIGIN}' \
 		&& echo 'BRAND_SHARE_SUBDIR=$(LIBO_SHARE_FOLDER)' \
-		&& echo 'CONFIGURATION_LAYERS=xcsxcu:$${BRAND_BASE_DIR}/$(LIBO_SHARE_FOLDER)/registry res:$${BRAND_BASE_DIR}/$(LIBO_SHARE_FOLDER)/registry $(if $(ENABLE_DCONF),dconf: )$(if $(filter WNT,$(OS)),winreg:LOCAL_MACHINE )bundledext:$${$${BRAND_BASE_DIR}/$(LIBO_ETC_FOLDER)/$(call gb_Helper_get_rcfile,louno):BUNDLED_EXTENSIONS_USER}/registry/com.sun.star.comp.deployment.configuration.PackageRegistryBackend/configmgr.ini sharedext:$${$${BRAND_BASE_DIR}/$(LIBO_ETC_FOLDER)/$(call gb_Helper_get_rcfile,louno):SHARED_EXTENSIONS_USER}/registry/com.sun.star.comp.deployment.configuration.PackageRegistryBackend/configmgr.ini userext:$${$${BRAND_BASE_DIR}/$(LIBO_ETC_FOLDER)/$(call gb_Helper_get_rcfile,louno):UNO_USER_PACKAGES_CACHE}/registry/com.sun.star.comp.deployment.configuration.PackageRegistryBackend/configmgr.ini $(if $(filter WNT,$(OS)),winreg:CURRENT_USER )user:$${$$BRAND_BASE_DIR/$(LIBO_ETC_FOLDER)/$(call gb_Helper_get_rcfile,bootstrap):UserInstallation}/user/registrymodifications.xcu' \
+		&& echo 'CONFIGURATION_LAYERS=xcsxcu:$${BRAND_BASE_DIR}/$(LIBO_SHARE_FOLDER)/registry res:$${BRAND_BASE_DIR}/$(LIBO_SHARE_FOLDER)/registry $(if $(ENABLE_DCONF),dconf:* )$(if $(filter WNT,$(OS)),winreg:LOCAL_MACHINE )bundledext:$${$${BRAND_BASE_DIR}/$(LIBO_ETC_FOLDER)/$(call gb_Helper_get_rcfile,louno):BUNDLED_EXTENSIONS_USER}/registry/com.sun.star.comp.deployment.configuration.PackageRegistryBackend/configmgr.ini sharedext:$${$${BRAND_BASE_DIR}/$(LIBO_ETC_FOLDER)/$(call gb_Helper_get_rcfile,louno):SHARED_EXTENSIONS_USER}/registry/com.sun.star.comp.deployment.configuration.PackageRegistryBackend/configmgr.ini userext:$${$${BRAND_BASE_DIR}/$(LIBO_ETC_FOLDER)/$(call gb_Helper_get_rcfile,louno):UNO_USER_PACKAGES_CACHE}/registry/com.sun.star.comp.deployment.configuration.PackageRegistryBackend/configmgr.ini $(if $(filter WNT,$(OS)),winreg:CURRENT_USER )user:!$${$$BRAND_BASE_DIR/$(LIBO_ETC_FOLDER)/$(call gb_Helper_get_rcfile,bootstrap):UserInstallation}/user/registrymodifications.xcu' \
 		&& echo 'LO_JAVA_DIR=$${BRAND_BASE_DIR}/$(LIBO_SHARE_JAVA_FOLDER)' \
 		&& echo 'LO_LIB_DIR=$${BRAND_BASE_DIR}/$(LIBO_LIB_FOLDER)' \
 		&& echo 'BAK_EXTENSIONS=$${$$ORIGIN/$(call gb_Helper_get_rcfile,louno):TMP_EXTENSIONS}' \
diff --git a/scp2/source/ooo/common_brand.scp b/scp2/source/ooo/common_brand.scp
index 1a30bd6..1933551 100644
--- a/scp2/source/ooo/common_brand.scp
+++ b/scp2/source/ooo/common_brand.scp
@@ -1119,7 +1119,7 @@ ProfileItem gid_Brand_Profileitem_Fundamental_Ure_Bin_Dir
 End
 
 #if ENABLE_DCONF
-#define CONFIGURATION_LAYERS_DCONF " dconf:"
+#define CONFIGURATION_LAYERS_DCONF " dconf:*"
 #else
 #define CONFIGURATION_LAYERS_DCONF
 #endif
@@ -1135,7 +1135,7 @@ ProfileItem gid_Brand_Profileitem_Fundamental_Configuration_Layers
     ModuleID = gid_Module_Root_Brand;
     Section = "Bootstrap";
     Key = "CONFIGURATION_LAYERS";
-    Value = "xcsxcu:${BRAND_BASE_DIR}/" LIBO_SHARE_FOLDER "/registry res:${BRAND_BASE_DIR}/" LIBO_SHARE_FOLDER "/registry" CONFIGURATION_LAYERS_DCONF CONFIGURATION_LAYERS_WINREG " bundledext:${${BRAND_BASE_DIR}/" LIBO_ETC_FOLDER "/" PROFILENAME(louno) ":BUNDLED_EXTENSIONS_USER}/registry/com.sun.star.comp.deployment.configuration.PackageRegistryBackend/configmgr.ini sharedext:${${BRAND_BASE_DIR}/" LIBO_ETC_FOLDER "/" PROFILENAME(louno) ":SHARED_EXTENSIONS_USER}/registry/com.sun.star.comp.deployment.configuration.PackageRegistryBackend/configmgr.ini userext:${${BRAND_BASE_DIR}/" LIBO_ETC_FOLDER "/" PROFILENAME(louno) ":UNO_USER_PACKAGES_CACHE}/registry/com.sun.star.comp.deployment.configuration.PackageRegistryBackend/configmgr.ini " CONFIGURATION_LAYERS_WINUSERREG " user:${$BRAND_BASE_DIR/" LIBO_ETC_FOLDER "/" PROFILENAME(bootstrap) ":UserInstallation}/user/registrymodifications.xcu";
+    Value = "xcsxcu:${BRAND_BASE_DIR}/" LIBO_SHARE_FOLDER "/registry res:${BRAND_BASE_DIR}/" LIBO_SHARE_FOLDER "/registry" CONFIGURATION_LAYERS_DCONF CONFIGURATION_LAYERS_WINREG " bundledext:${${BRAND_BASE_DIR}/" LIBO_ETC_FOLDER "/" PROFILENAME(louno) ":BUNDLED_EXTENSIONS_USER}/registry/com.sun.star.comp.deployment.configuration.PackageRegistryBackend/configmgr.ini sharedext:${${BRAND_BASE_DIR}/" LIBO_ETC_FOLDER "/" PROFILENAME(louno) ":SHARED_EXTENSIONS_USER}/registry/com.sun.star.comp.deployment.configuration.PackageRegistryBackend/configmgr.ini userext:${${BRAND_BASE_DIR}/" LIBO_ETC_FOLDER "/" PROFILENAME(louno) ":UNO_USER_PACKAGES_CACHE}/registry/com.sun.star.comp.deployment.configuration.PackageRegistryBackend/configmgr.ini " CONFIGURATION_LAYERS_WINUSERREG " user:!${$BRAND_BASE_DIR/" LIBO_ETC_FOLDER "/" PROFILENAME(bootstrap) ":UserInstallation}/user/registrymodifications.xcu";
 End
 #undef CONFIGURATION_LAYERS_DCONF
 #undef CONFIGURATION_LAYERS_WINREG


More information about the Libreoffice-commits mailing list