summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorKatja Marttila <katja.marttila@qt.io>2018-02-28 09:54:22 +0200
committerKatja Marttila <katja.marttila@qt.io>2018-04-05 06:54:21 +0000
commitd2ae9c16c3427c272d41e9a471f705ad8947a97a (patch)
tree4ed6b3cafd28b11f02ef4f4faa6164bcfbd85b63 /examples
parent6664ca85f09d6ae195ac30f83a60d53c2355da0f (diff)
Add attribute to mark parts of install tree unstable
This commit adds new AllowUnstableComponents configuration. Setting AllowUnstablecomponents to true in config.xml will * allow installing other components when there are errors in scripts * allow installing other components when there are missing dependencies * will mark the 'broken' components uninstallable in treeview Task-number: QTIFW-930 Change-Id: I8d28cf9c4b0401e0bb76795e87d581f39b64f128 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Diffstat (limited to 'examples')
-rw-r--r--examples/unstablecomponent/README5
-rw-r--r--examples/unstablecomponent/config/config.xml10
-rw-r--r--examples/unstablecomponent/packages/componentB/meta/package.xml8
-rw-r--r--examples/unstablecomponent/packages/componentDependsonComponentMissingDependency/meta/package.xml9
-rw-r--r--examples/unstablecomponent/packages/componentDependsonComponentwithInvalidScript/meta/installscript.js33
-rw-r--r--examples/unstablecomponent/packages/componentDependsonComponentwithInvalidScript/meta/package.xml10
-rw-r--r--examples/unstablecomponent/packages/componentE/meta/package.xml9
-rw-r--r--examples/unstablecomponent/packages/componentF.subcomponent1.subsubcomponent1/meta/package.xml8
-rw-r--r--examples/unstablecomponent/packages/componentF.subcomponent1.subsubcomponent2/meta/package.xml8
-rw-r--r--examples/unstablecomponent/packages/componentF.subcomponent1/meta/package.xml9
-rw-r--r--examples/unstablecomponent/packages/componentF.subcomponent2.subsubcomponent1/meta/package.xml8
-rw-r--r--examples/unstablecomponent/packages/componentF.subcomponent2.subsubcomponent2/meta/package.xml8
-rw-r--r--examples/unstablecomponent/packages/componentF.subcomponent2/meta/package.xml8
-rw-r--r--examples/unstablecomponent/packages/componentF/meta/package.xml8
-rw-r--r--examples/unstablecomponent/packages/componentMissingDependency/meta/package.xml9
-rw-r--r--examples/unstablecomponent/packages/componentWithInvalidScipt/data/installcontent.txt2
-rw-r--r--examples/unstablecomponent/packages/componentWithInvalidScipt/meta/installscript.js33
-rw-r--r--examples/unstablecomponent/packages/componentWithInvalidScipt/meta/package.xml9
-rw-r--r--examples/unstablecomponent/unstablecomponent.pro13
19 files changed, 207 insertions, 0 deletions
diff --git a/examples/unstablecomponent/README b/examples/unstablecomponent/README
new file mode 100644
index 000000000..6c081844a
--- /dev/null
+++ b/examples/unstablecomponent/README
@@ -0,0 +1,5 @@
+Shows how to setup an installer that allows install even if there are broken components
+
+Generate installer with:
+
+binarycreator -c config/config.xml -p packages installer
diff --git a/examples/unstablecomponent/config/config.xml b/examples/unstablecomponent/config/config.xml
new file mode 100644
index 000000000..bd9ac49ea
--- /dev/null
+++ b/examples/unstablecomponent/config/config.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Installer>
+ <Name>Unstable components Example</Name>
+ <Version>1.0.0</Version>
+ <Title>Unstable components Example</Title>
+ <Publisher>Qt-Project</Publisher>
+ <StartMenuDir>Qt IFW Examples</StartMenuDir>
+ <TargetDir>@HomeDir@/IfwExamples/unstablecomponent</TargetDir>
+ <AllowUnstableComponents>true</AllowUnstableComponents>
+</Installer>
diff --git a/examples/unstablecomponent/packages/componentB/meta/package.xml b/examples/unstablecomponent/packages/componentB/meta/package.xml
new file mode 100644
index 000000000..acf9a3a28
--- /dev/null
+++ b/examples/unstablecomponent/packages/componentB/meta/package.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<Package>
+ <DisplayName>Component B</DisplayName>
+ <Description>This component does not depend on any other component.</Description>
+ <Version>1.0.0</Version>
+ <ReleaseDate>2018-02-02</ReleaseDate>
+ <SortingPriority>90</SortingPriority>
+</Package>
diff --git a/examples/unstablecomponent/packages/componentDependsonComponentMissingDependency/meta/package.xml b/examples/unstablecomponent/packages/componentDependsonComponentMissingDependency/meta/package.xml
new file mode 100644
index 000000000..42d7cbb30
--- /dev/null
+++ b/examples/unstablecomponent/packages/componentDependsonComponentMissingDependency/meta/package.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<Package>
+ <DisplayName>ComponentDependsonComponentMissingDependency</DisplayName>
+ <Description>This component depends on component which is depending on component with missing dependency. User is not able to select this component for install.</Description>
+ <Dependencies>componentMissingDependency</Dependencies>
+ <Version>1.0.0</Version>
+ <ReleaseDate>2018-02-02</ReleaseDate>
+ <SortingPriority>70</SortingPriority>
+</Package>
diff --git a/examples/unstablecomponent/packages/componentDependsonComponentwithInvalidScript/meta/installscript.js b/examples/unstablecomponent/packages/componentDependsonComponentwithInvalidScript/meta/installscript.js
new file mode 100644
index 000000000..7ad2f4db3
--- /dev/null
+++ b/examples/unstablecomponent/packages/componentDependsonComponentwithInvalidScript/meta/installscript.js
@@ -0,0 +1,33 @@
+/**************************************************************************
+**
+** Copyright (C) 2018 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Installer Framework.
+**
+** $QT_BEGIN_LICENSE:GPL-EXCEPT$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+**************************************************************************/
+
+function Component()
+{
+ component.addDependency("componentInvalidScipt");
+}
+
diff --git a/examples/unstablecomponent/packages/componentDependsonComponentwithInvalidScript/meta/package.xml b/examples/unstablecomponent/packages/componentDependsonComponentwithInvalidScript/meta/package.xml
new file mode 100644
index 000000000..4df66da40
--- /dev/null
+++ b/examples/unstablecomponent/packages/componentDependsonComponentwithInvalidScript/meta/package.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<Package>
+ <DisplayName>Component depends on ComponentWithInvalidScript)</DisplayName>
+ <Description>Depends on component with invalid script. User is not able to select this component for install.</Description>
+ <Default>true</Default>
+ <Version>1.0.0</Version>
+ <ReleaseDate>2018-02-02</ReleaseDate>
+ <Script>installscript.js</Script>
+ <SortingPriority>30</SortingPriority>
+</Package>
diff --git a/examples/unstablecomponent/packages/componentE/meta/package.xml b/examples/unstablecomponent/packages/componentE/meta/package.xml
new file mode 100644
index 000000000..a19c4f7a9
--- /dev/null
+++ b/examples/unstablecomponent/packages/componentE/meta/package.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<Package>
+ <DisplayName>Component E (forced)</DisplayName>
+ <Description>This is a forced component that is always installed.</Description>
+ <ForcedInstallation>true</ForcedInstallation>
+ <Version>1.0.0</Version>
+ <ReleaseDate>2018-02-02</ReleaseDate>
+ <SortingPriority>60</SortingPriority>
+</Package>
diff --git a/examples/unstablecomponent/packages/componentF.subcomponent1.subsubcomponent1/meta/package.xml b/examples/unstablecomponent/packages/componentF.subcomponent1.subsubcomponent1/meta/package.xml
new file mode 100644
index 000000000..717eb723f
--- /dev/null
+++ b/examples/unstablecomponent/packages/componentF.subcomponent1.subsubcomponent1/meta/package.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<Package>
+ <DisplayName>Subsubcomponent 1</DisplayName>
+ <Description>This component does not depend on any other component.</Description>
+ <Version>1.0.0</Version>
+ <ReleaseDate>2018-02-02</ReleaseDate>
+ <SortingPriority>100</SortingPriority>
+</Package>
diff --git a/examples/unstablecomponent/packages/componentF.subcomponent1.subsubcomponent2/meta/package.xml b/examples/unstablecomponent/packages/componentF.subcomponent1.subsubcomponent2/meta/package.xml
new file mode 100644
index 000000000..29bc65ffa
--- /dev/null
+++ b/examples/unstablecomponent/packages/componentF.subcomponent1.subsubcomponent2/meta/package.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<Package>
+ <DisplayName>Subsubcomponent 2</DisplayName>
+ <Description>This component does not depend on any other component.</Description>
+ <Version>1.0.0</Version>
+ <ReleaseDate>2018-02-02</ReleaseDate>
+ <SortingPriority>50</SortingPriority>
+</Package>
diff --git a/examples/unstablecomponent/packages/componentF.subcomponent1/meta/package.xml b/examples/unstablecomponent/packages/componentF.subcomponent1/meta/package.xml
new file mode 100644
index 000000000..7111a9031
--- /dev/null
+++ b/examples/unstablecomponent/packages/componentF.subcomponent1/meta/package.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<Package>
+ <DisplayName>Subcomponent 1</DisplayName>
+ <Description>This component contains 2 leaf components.</Description>
+ <Version>1.0.0</Version>
+ <ReleaseDate>2018-02-02</ReleaseDate>
+ <SortingPriority>100</SortingPriority>
+ <Dependencies>componentA</Dependencies>
+</Package>
diff --git a/examples/unstablecomponent/packages/componentF.subcomponent2.subsubcomponent1/meta/package.xml b/examples/unstablecomponent/packages/componentF.subcomponent2.subsubcomponent1/meta/package.xml
new file mode 100644
index 000000000..717eb723f
--- /dev/null
+++ b/examples/unstablecomponent/packages/componentF.subcomponent2.subsubcomponent1/meta/package.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<Package>
+ <DisplayName>Subsubcomponent 1</DisplayName>
+ <Description>This component does not depend on any other component.</Description>
+ <Version>1.0.0</Version>
+ <ReleaseDate>2018-02-02</ReleaseDate>
+ <SortingPriority>100</SortingPriority>
+</Package>
diff --git a/examples/unstablecomponent/packages/componentF.subcomponent2.subsubcomponent2/meta/package.xml b/examples/unstablecomponent/packages/componentF.subcomponent2.subsubcomponent2/meta/package.xml
new file mode 100644
index 000000000..29bc65ffa
--- /dev/null
+++ b/examples/unstablecomponent/packages/componentF.subcomponent2.subsubcomponent2/meta/package.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<Package>
+ <DisplayName>Subsubcomponent 2</DisplayName>
+ <Description>This component does not depend on any other component.</Description>
+ <Version>1.0.0</Version>
+ <ReleaseDate>2018-02-02</ReleaseDate>
+ <SortingPriority>50</SortingPriority>
+</Package>
diff --git a/examples/unstablecomponent/packages/componentF.subcomponent2/meta/package.xml b/examples/unstablecomponent/packages/componentF.subcomponent2/meta/package.xml
new file mode 100644
index 000000000..131f4799e
--- /dev/null
+++ b/examples/unstablecomponent/packages/componentF.subcomponent2/meta/package.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<Package>
+ <DisplayName>Subcomponent 2</DisplayName>
+ <Description>This component contains 2 leaf components.</Description>
+ <Version>1.0.0</Version>
+ <ReleaseDate>2018-02-02</ReleaseDate>
+ <SortingPriority>50</SortingPriority>
+</Package>
diff --git a/examples/unstablecomponent/packages/componentF/meta/package.xml b/examples/unstablecomponent/packages/componentF/meta/package.xml
new file mode 100644
index 000000000..7f24c4f35
--- /dev/null
+++ b/examples/unstablecomponent/packages/componentF/meta/package.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<Package>
+ <DisplayName>Component F</DisplayName>
+ <Description>This component contains 2 subcomponents.</Description>
+ <Version>1.0.0</Version>
+ <ReleaseDate>2018-02-02</ReleaseDate>
+ <SortingPriority>40</SortingPriority>
+</Package>
diff --git a/examples/unstablecomponent/packages/componentMissingDependency/meta/package.xml b/examples/unstablecomponent/packages/componentMissingDependency/meta/package.xml
new file mode 100644
index 000000000..52cb99c1a
--- /dev/null
+++ b/examples/unstablecomponent/packages/componentMissingDependency/meta/package.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<Package>
+ <DisplayName>ComponentMissingDependency</DisplayName>
+ <Description>This component depends on component which does not exists. User is not able to select this component for install.</Description>
+ <Dependencies>componentDoesnotExists</Dependencies>
+ <Version>1.0.0</Version>
+ <ReleaseDate>2018-02-02</ReleaseDate>
+ <SortingPriority>80</SortingPriority>
+</Package>
diff --git a/examples/unstablecomponent/packages/componentWithInvalidScipt/data/installcontent.txt b/examples/unstablecomponent/packages/componentWithInvalidScipt/data/installcontent.txt
new file mode 100644
index 000000000..f40001983
--- /dev/null
+++ b/examples/unstablecomponent/packages/componentWithInvalidScipt/data/installcontent.txt
@@ -0,0 +1,2 @@
+This file will be installed into the target directory....
+
diff --git a/examples/unstablecomponent/packages/componentWithInvalidScipt/meta/installscript.js b/examples/unstablecomponent/packages/componentWithInvalidScipt/meta/installscript.js
new file mode 100644
index 000000000..4ca6a8816
--- /dev/null
+++ b/examples/unstablecomponent/packages/componentWithInvalidScipt/meta/installscript.js
@@ -0,0 +1,33 @@
+/**************************************************************************
+**
+** Copyright (C) 2018 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Installer Framework.
+**
+** $QT_BEGIN_LICENSE:GPL-EXCEPT$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+**************************************************************************/
+
+function Component()
+{
+ component.invalidScriptCall()
+}
+
diff --git a/examples/unstablecomponent/packages/componentWithInvalidScipt/meta/package.xml b/examples/unstablecomponent/packages/componentWithInvalidScipt/meta/package.xml
new file mode 100644
index 000000000..7bf69ccc4
--- /dev/null
+++ b/examples/unstablecomponent/packages/componentWithInvalidScipt/meta/package.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<Package>
+ <DisplayName>ComponentWithInvalidScript</DisplayName>
+ <Description>This component has an invalid script. User is not able to select this component for install.</Description>
+ <Version>1.0.0</Version>
+ <ReleaseDate>2018-02-02</ReleaseDate>
+ <SortingPriority>100</SortingPriority>
+ <Script>installscript.js</Script>
+</Package>
diff --git a/examples/unstablecomponent/unstablecomponent.pro b/examples/unstablecomponent/unstablecomponent.pro
new file mode 100644
index 000000000..415df49d5
--- /dev/null
+++ b/examples/unstablecomponent/unstablecomponent.pro
@@ -0,0 +1,13 @@
+TEMPLATE = aux
+
+INSTALLER = installer
+
+INPUT = $$PWD/config/config.xml $$PWD/packages
+example.input = INPUT
+example.output = $$INSTALLER
+example.commands = ../../bin/binarycreator -c $$PWD/config/config.xml -p $$PWD/packages ${QMAKE_FILE_OUT}
+example.CONFIG += target_predeps no_link combine
+
+QMAKE_EXTRA_COMPILERS += example
+
+OTHER_FILES = README