qt-alternate-5.15.12

Introduction à qt5 (alternate)

Qt5 est un cadriciel multi-plateforme très utilisé pour développer des applications avec une interface graphique (GUI) (dans ce cas, qt5 est une boîte à outils de widgets) et pour développer des programmes non graphiques comme des outils en ligne de commande et des consoles pour des serveurs. Deux des utilisateurs principaux de qt sont KDE Frameworks 5 (KF5) et LXQt.

[Important]

Important

Le paquet qt5 complet consiste en 43 composants distincts. Ces instructions utilisent un petit ensemble des instructions d'installation complètes de qt5 plus haut. Elles couvrent la plupart, mais pas tous, les composants requis pour construire les paquets dans BLFS. Cette page et la suivante sont présentes pour réduire le temps, l'espace disque et le nombre de dépendances requis pour construire ces paquets. Elles ne sont pas recommandées si vous construisez l'environnement de bureau Plasma-5.27.10 basé sur KDE Frameworks-5.115.0.

This package is known to build and work properly using an LFS 12.1 platform.

Informations sur le paquet

Téléchargements supplémentaires

Dépendances de qt5

Requises

Bibliothèques Xorg

Recommandées

Facultatives

GTK+-3.24.41, libinput-1.25.0 MariaDB-10.11.7 or MySQL, MIT Kerberos V5-1.21.2, mtdev-1.1.6 PostgreSQL-16.2 et unixODBC-2.3.12

Configurer le préfixe d'installation

Installer dans /opt/qt5

Les rédacteurs de BLFS recommandent d'installer qt5 dans un répertoire autre que /usr, c.-à-d. /opt/qt5. Pour cela, configurez les variables d'environnement suivantes :

export QT5PREFIX=/opt/qt5
[Astuce]

Astuce

Parfois, les chemins d'installation sont codés en dur dans les fichiers installés. C'est la raison pour laquelle /opt/qt5 est utilisé comme préfixe d'installation au lieu de /opt/qt-5.15.12. Pour créer un répertoire qt5 versionné après avoir terminé l'installation, vous pouvez renommer le répertoire et créer un lien symbolique :

mkdir -pv /opt/qt-5.15.12
ln -sfnv qt-5.15.12 /opt/qt5

Plus tard, vous voudrez peut-être installer une autre version de qt5. Pour cela, supprimez simplement le lien symbolique et utilisez de nouveau /opt/qt5 comme préfixe. La version de qt5 utilisée ne dépend que de l'endroit où pointe le lien symbolique.

Installation de qt5

[Avertissement]

Avertissement

Si qt5 est réinstallé dans le même répertoire qu'une instance existante, exécutez les commandes en root comme make install, à partir d'une console ou d'un gestionnaire de fenêtre qui n'est pas basé sur qt5. Cela réécrit les bibliothèques qt5 qui ne doivent pas être utilisées pendant le processus d'installation.

[Attention]

Attention

Si vous n'avez pas installé certaines dépendances recommandées, examinez la sortie de ./configure --help pour vérifier comment les désactiver ou utiliser une version interne intégrée dans l'archive des sources.

[Note]

Note

Les rédacteurs de BLFS ne recommandent pas d'installer qt5 dans la hiérarchie /usr car il devient difficile de trouver les composants et de les mettre à jour vers une nouvelle version. Si vous ne voulez pas installer qt5 dans /usr, les répertoires doivent être spécifiés explicitement. Dans ce cas, configurez QT5PREFIX=/usr et ajoutez ce qui suit aux arguments de configure ci-dessous :

            -archdatadir    /usr/lib/qt5                \
            -bindir         /usr/bin                    \
            -plugindir      /usr/lib/qt5/plugins        \
            -importdir      /usr/lib/qt5/imports        \
            -headerdir      /usr/include/qt5            \
            -datadir        /usr/share/qt5              \
            -docdir         /usr/share/doc/qt5          \
            -translationdir /usr/share/qt5/translations \
            -examplesdir    /usr/share/doc/qt5/examples

Maintenant, appliquez un correctif pour récupérer les correctifs récoltés par kde pour les modules qui sont requis par les paquets mentionnés dans ce livre :

patch -Np1 -i ../qt-everywhere-opensource-src-5.15.12-kf5-1.patch

Le correctif est censé être utilisé dans un répertoire git. Sinon, certains fichiers qui doivent être modifiés par configure après l'application du correctif ne sont pas touchés. Il est suffisant de créer un répertoire .git dans le répertoire qmake, où le script configure est exécuté :

mkdir -pv qtbase/.git

Corrigez une vulnérabilité de sécurité dans qtbase :

patch -Np1 -i ../qt-everywhere-opensource-src-5.15.12-security_fix-1.patch

Maintenant nous voulons configurer le fait de sauter la plupart des composants. Faites cela avec :

ls -Fd qt* | grep / | sed 's/^/-skip /;s@/@@' > tempconf &&
sed -i -r '/base|tools|x11extras|svg|declarative|wayland/d' tempconf

Maintenant, installez qt5 en exécutant les commandes suivantes :

./configure -prefix $QT5PREFIX   \
            -sysconfdir /etc/xdg \
            -confirm-license     \
            -opensource          \
            -dbus-linked         \
            -openssl-linked      \
            -system-harfbuzz     \
            -system-sqlite       \
            -nomake examples     \
            -no-rpath            \
            -journald            \
            $(cat tempconf)      \
            &&
make

Ce paquet n'a pas de suite de tests.

Maintenant, en tant qu'utilisateur root :

make install

Supprimez les références au répertoire de construction dans les fichiers de dépendances (prl) des bibliothèques installées en exécutant la commande suivante en tant qu'utilisateur root :

find $QT5PREFIX/ -name \*.prl \
   -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;

Installez les images et créez les entrées de menu pour les applications installées. La variable QT5BINDIR est utilisée ici pour pointer vers le répertoire pour les programmes exécutables. Si vous avez changé le bindir plus haut, QT5BINDIR doit être ajusté ci-dessous. Assurez-vous que la variable QT5BINDIR est définie dans l'environnement root et en tant qu'utilisateur root :

QT5BINDIR=$QT5PREFIX/bin

install -v -dm755 /usr/share/pixmaps/                  &&

install -v -Dm644 qttools/src/assistant/assistant/images/assistant-128.png \
                  /usr/share/pixmaps/assistant-qt5.png &&

install -v -Dm644 qttools/src/designer/src/designer/images/designer.png \
                  /usr/share/pixmaps/designer-qt5.png  &&

install -v -Dm644 qttools/src/linguist/linguist/images/icons/linguist-128-32.png \
                  /usr/share/pixmaps/linguist-qt5.png  &&

install -v -Dm644 qttools/src/qdbus/qdbusviewer/images/qdbusviewer-128.png \
                  /usr/share/pixmaps/qdbusviewer-qt5.png &&

install -dm755 /usr/share/applications &&

cat > /usr/share/applications/assistant-qt5.desktop << EOF
[Desktop Entry]
Name=Qt5 Assistant
Comment=Shows Qt5 documentation and examples
Exec=$QT5BINDIR/assistant
Icon=assistant-qt5.png
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;Documentation;
EOF

cat > /usr/share/applications/designer-qt5.desktop << EOF
[Desktop Entry]
Name=Qt5 Designer
GenericName=Interface Designer
Comment=Design GUIs for Qt5 applications
Exec=$QT5BINDIR/designer
Icon=designer-qt5.png
MimeType=application/x-designer;
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;
EOF

cat > /usr/share/applications/linguist-qt5.desktop << EOF
[Desktop Entry]
Name=Qt5 Linguist
Comment=Add translations to Qt5 applications
Exec=$QT5BINDIR/linguist
Icon=linguist-qt5.png
MimeType=text/vnd.trolltech.linguist;application/x-linguist;
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;
EOF

cat > /usr/share/applications/qdbusviewer-qt5.desktop << EOF
[Desktop Entry]
Name=Qt5 QDbusViewer
GenericName=D-Bus Debugger
Comment=Debug D-Bus applications
Exec=$QT5BINDIR/qdbusviewer
Icon=qdbusviewer-qt5.png
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;Debugger;
EOF

Certains paquets comme VLC-3.0.20 cherchent certains exécutables avec un suffix -qt5. Exécutez la commande suivante en tant qu'utilisateur root pour créer les liens symboliques nécessaires :

for file in moc uic rcc qmake lconvert lrelease lupdate; do
  ln -sfvn $QT5BINDIR/$file /usr/bin/$file-qt5
done

Explication des commandes

-confirm-license : accepte la licence sans demander à l'utilisateur pendant la configuration.

-opensource : installe la version libre de qt.

-nomake examples : ce paramètre désactive la construction des programmes d'exemple inclus dans l'archive des sources. Supprimez-le si vous voulez les construire.

-system-sqlite : ce paramètre active l'utilisation de la version du système de SQLite.

-system-harfbuzz : ce paramètre active l'utilisation de la version système de Harfbuzz.

-dbus-linked -openssl-linked : ces paramètres activent explicitement la liaison des bibliothèques D-Bus et OpenSSL aux bibliothèques qt5 au lieu d'utiliser dlopen().

-journald : ce paramètre active l'envoie de messages qt au système de journalisation journald.

$(cat tempconf) : cette commande fournit une liste des composants qui ne devraient pas être construits. Ces entrées sont de la forme « -skip <component> ».

Configuration de qt5

Informations sur la configuration

Si Sudo-1.9.15p5 est installé, QT5DIR devrait également être disponible pour le super utilisateur. Exécutez les commandes suivantes en tant qu'utilisateur root :

cat > /etc/sudoers.d/qt << "EOF"
Defaults env_keep += QT5DIR
EOF

Si vous installez qt5 dans /usr

Si vous intsallez qt5 dans /usr, créez une variable d'environnement requise par certains paquets. En tant qu'utilisateur root :

cat > /etc/profile.d/qt5.sh << "EOF"
# Begin /etc/profile.d/qt5.sh

QT5DIR=/usr
export QT5DIR

# End /etc/profile.d/qt5.sh
EOF

si vous n'avez pas installé qt5 dans /usr

Si vous installez qt5 dans un autre emplacement que /usr, vous devez mettre à jour les fichiers de configuration suivants pour que qt5 soit correctement trouvé par les autres paquets et les processus système.

En tant qu'utilisateur root, mettez à jour le fichier /etc/ld.so.conf et le fichier de cache à l'exécution de l'éditeur des liens dynamique :

cat >> /etc/ld.so.conf << EOF
# Begin Qt addition

/opt/qt5/lib

# End Qt addition
EOF

ldconfig

En tant qu'utilisateur root, créez le fichier /etc/profile.d/qt5.sh :

cat > /etc/profile.d/qt5.sh << "EOF"
# Begin /etc/profile.d/qt5.sh

QT5DIR=/opt/qt5

pathappend $QT5DIR/bin           PATH
pathappend $QT5DIR/lib/pkgconfig PKG_CONFIG_PATH

export QT5DIR

# End /etc/profile.d/qt5.sh
EOF

Contenu

Programmes installs: assistant, designer, fixqt4headers.pl, lconvert, linguist, lprodump, lrelease, lrelease-pro, lupdate, lupdate-pro, moc, pixeltool, qcollectiongenerator, qdbus, qdbuscpp2xml, qdbusviewer, qdbusxml2cpp, qdistancefieldgenerator, qdoc, qhelpgenerator, qlalr, qmake, qml, qmlcachegen, qmleasing, qmlformat, qmlimportscanner, qmllint, qmlmin, qmlplugindump, qmlpreview, qmlprofiler, qmlscene, qmltestrunner, qmltime, qmltyperegistrar, qtattributionscanner, qtdiag, qtpaths, qtplugininfo, qtwaylandscanner, qvkgen, rcc, syncqt.pl, tracegen et uic
Bibliothèques installes: libQt5AccessibilitySupport.a, libQt5Bootstrap.a, libQt5Concurrent.so, libQt5Core.so, libQt5DBus.so, libQt5Designer.so, libQt5DesignerComponents.so, libQt5DeviceDiscoverySupport.a, libQt5EdidSupport.a, libQt5EglFSDeviceIntegration.so, libQt5EglFsKmsSupport.so, libQt5EglSupport.a, libQt5EventDispatcherSupport.a, libQt5FbSupport.a, libQt5FontDatabaseSupport.a, libQt5GlxSupport.a, libQt5Gui.so, libQt5Help.so, libQt5InputSupport.a, libQt5KmsSupport.a, libQt5LinuxAccessibilitySupport.a, libQt5Network.so, libQt5OpenGL.so, libQt5OpenGLExtensions.a, libQt5PacketProtocol.a, libQt5PlatformCompositorSupport.a, libQt5PrintSupport.so, libQt5Qml.so, libQt5QmlDebug.a, libQt5QmlDevTools.a, libQt5QmlModels.so, libQt5QmlWorkerScript.so, libQt5Quick.so, libQt5QuickParticles.so, libQt5QuickShapes.so, libQt5QuickTest.so, libQt5QuickWidgets.so, libQt5ServiceSupport.a, libQt5Sql.so, libQt5Svg.so, libQt5Test.so, libQt5ThemeSupport.a, libQt5UiTools.a, libQt5WaylandClient.so, libQt5WaylandCompositor.so, libQt5Widgets.so, libQt5X11Extras.so, libQt5XcbQpa.so, libQt5XkbCommonSupport.a, libQt5Xml.so et plusieurs greffons dans /opt/qt5/{plugins,qml}
Rpertoires installs: /usr/include/qt5, /usr/lib/qt5, /usr/share/doc/qt5 et /usr/share/qt5 OU /opt/qt5 et /opt/qt-5.15.12

Descriptions courtes

Voir Qt5 Short Descriptions