summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@qt.io>2021-02-11 09:24:36 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-09-02 13:08:50 +0000
commitba6348f7a5c4e5dfbb5aa4ff65174d16820e5da2 (patch)
treecb4aa67732f165bce1a0ee2af81bfe2a73f02e6e
parent1c9f19cc8f16b252a720e06ec71ed0678c015d34 (diff)
Doc: Add packaging recommendations for Linux distributions
Task-number: QTBUG-89170 Change-Id: I1ca40fec43860603e39723b99462fcff119539b3 Reviewed-by: Paul Wicking <paul.wicking@qt.io> (cherry picked from commit 5aa42c9bb6f1b37586bf15972bf2e883b6d9387f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--doc/src/platforms/linux.qdoc3
-rw-r--r--doc/src/platforms/packaging.qdoc70
2 files changed, 73 insertions, 0 deletions
diff --git a/doc/src/platforms/linux.qdoc b/doc/src/platforms/linux.qdoc
index fccc8b2ff..730e43abf 100644
--- a/doc/src/platforms/linux.qdoc
+++ b/doc/src/platforms/linux.qdoc
@@ -375,6 +375,9 @@
Qt for X11 has some requirements that are given in more detail
in the \l{Qt for X11 Requirements} document.
+ Distribution packagers can find information how to package Qt in the
+ \l{Qt Packaging Recommendations}{packaging recommendations}.
+
\section1 Step 1: Unpacking the Archive
Unpack the archive if you have not done so already. For example,
if you have the \c{qt-everywhere-opensource-src-%VERSION%.tar.gz}
diff --git a/doc/src/platforms/packaging.qdoc b/doc/src/platforms/packaging.qdoc
new file mode 100644
index 000000000..c5d460e75
--- /dev/null
+++ b/doc/src/platforms/packaging.qdoc
@@ -0,0 +1,70 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** 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 Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \page packaging-recommendations.html
+ \title Qt Packaging Recommendations
+
+ Distributions might want to package multiple different Qt versions. By
+ taking the example of a Linux distribution, we recommend the following
+ approach:
+
+ \list
+
+ \li Configure Qt to install executables to \c{/usr/qt6/bin}.
+
+ \li Create symlinks with version suffixes in \c{/usr/bin} to user-facing
+ applications that reside in \c{/usr/qt6/bin}. For example, create the
+ symlink \c{/usr/bin/designer6} that points to \c{/usr/qt6/bin/designer}.
+
+ \endlist
+
+ User-facing applications are Qt tools that are supposed to be started by the
+ user. This includes qmake, Qt Designer, Qt Linguist, and others. Other
+ tools, such as moc, rcc, and uic are usually not manually invoked by the
+ user but from the build system of user projects.
+
+ In Qt's build system, tools that we consider as user-facing are marked as
+ such, and that information can be extracted and used as follows.
+
+ Configure Qt with the CMake arguments:
+ \badcode
+ -DCMAKE_INSTALL_PREFIX=/usr
+ -DINSTALL_BINDIR=/usr/qt6/bin
+ -DINSTALL_PUBLICBINDIR=/usr/bin
+ \endcode
+
+ This will create a file called \c{user_facing_tool_links.txt} in Qt's build
+ directory. It contains on each line the path of a user-facing tool in
+ \c{INSTALL_BINDIR} and, separated by one space, the path to the versioned
+ link in \c{INSTALL_PUBLICDIR}.
+
+ This file can be used to create all versioned symlinks:
+ \badcode
+ xargs ln -s < user_facing_tool_links.txt
+ \endcode
+*/