qt5-components-5.15.14

Introdução aos componentes do qt5

Qt5 é uma estrutura de aplicativo multiplataforma que é amplamente usada para desenvolver software de aplicação com uma interface gráfica de usuário(a) (GUI) (nesses casos, qt5 é classificado como um kit de ferramentas de pequenas engenhocas) e também usada para desenvolver programas não GUI, como ferramentas de linha de comando e consoles para servidores.

[Importante]

Importante

O pacote qt5 completo consiste de 43 componentes separados. Estas instruções usam um pequeno subconjunto das instruções completas de instalação do qt5. Elas cobrem os componentes necessários para construir pacotes em BLFS.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.2.

Informação do Pacote

Transferências Adicionais

Dependências do qt5

Exigidas

Bibliotecas do Xorg

Recomendadas

Opcionais

GTK+-3.24.43, libinput-1.26.1 MariaDB-10.11.8 ou MySQL, MIT Kerberos V5-1.21.3, mtdev-1.1.7 PostgreSQL-16.4 e unixODBC-2.3.12

Configurando o prefixo de instalação

Instalando em /opt/qt5

Os(As) editores(as) do BLFS recomendam instalar o qt5 em um diretório diferente de /usr, ou seja, /opt/qt5 . Para fazer isso, configure a seguinte variável de ambiente:

export QT5PREFIX=/opt/qt5
[Dica]

Dica

Ocasionalmente, os caminhos de instalação estão rigidamente codificados nos arquivos instalados. Essa é a razão pela qual /opt/qt5 é usado como prefixo de instalação em vez de /opt/qt-5.15.14. Para criar um diretório versionado do qt5 depois que a instalação estiver completa, você pode renomear o diretório e criar um link simbólico:

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

Mais tarde, você pode querer instalar outras versões do qt5. Para fazer isso, apenas remova o link simbólico e use /opt/qt5 como o prefixo novamente. Qual versão do qt5 você usa depende somente de onde o link simbólico aponta.

Instalação do qt5

[Atenção]

Atenção

Se qt5 estiver sendo reinstalado no mesmo diretório de uma instância existente, execute os comandos feitos por root, como make install, a partir de um console ou de um gerenciador de janelas não baseado em qt5. Ela sobrescreve bibliotecas do qt5 que não deveriam estar em uso durante o processo de instalação.

[Cuidado]

Cuidado

Se você não instalou alguma das dependências recomendadas, examine a saída gerada de ./configure --help para verificar como desabilitá-las ou para usar versões internas incluídas no tarball do fonte.

[Nota]

Nota

Os(As) editores(as) do BLFS não recomendam instalar qt5 na hierarquia /usr porque se torna difícil encontrar componentes e atualizar para uma nova versão. Se você realmente quiser instalar qt5 no /usr, os diretórios precisam ser especificados explicitamente. Nesse caso, configure QT5PREFIX=/usr e adicione o seguinte aos argumentos de configuração abaixo:

            -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

Primeiro, aplique um remendo para obter as correções selecionadas pelo KDE para aqueles módulos que sejam exigidos pelos pacotes mencionados neste livro:

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

Presume-se que o remendo seja usado em um repositório git. Se ele não for, alguns arquivos que deveriam ser modificados pelo configure depois de aplicar-se o remendo não seriam tocados. Felizmente, é suficiente criar um diretório .git no diretório qmake onde o conjunto de comandos sequenciais configure for executado:

mkdir -pv qtbase/.git

Neste ponto, queremos configurar o salto da maioria dos componentes. Faça isso com:

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

Se você desejar instalar os exemplos NetworkManager-1.48.8, execute: sed -i '/qtdoc/d' tempconf.

Se você escolher não instalar Qt-6.7.2 e quiser usar qt5 com wireshark, execute: sed -i '/qtmultimedia/d' tempconf.

Agora, instale qt5 executando os seguintes comandos:

./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

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Remova referências para o diretório de construção dos arquivos instalados de dependência de biblioteca (prl) executando o seguinte comando como usuário(a) root:

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

Instale imagens e crie as entradas de menu para aplicativos instalados. A variável QT5BINDIR é usada aqui para apontar para o diretório dos aplicativos executáveis. Se você tiver mudado o bindir acima, QT5BINDIR precisará ser ajustado abaixo. Certifique-se de que a variável QT5BINDIR esteja definida no ambiente do(a) root e como o(a) usuário(a) 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

Alguns pacotes, como VLC-3.0.21, procuram determinados executáveis com um sufixo -qt5. Execute o seguinte comando como o(a) usuário(a) root para criar os necessários links simbólicos:

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

Explicações do Comando

-confirm-license: Aceita a licença sem avisar o(a) usuário(a) durante a configuração.

-opensource: Instala a versão de fonte aberto do qt.

-nomake examples: Essa chave desabilita construir os programas de exemplo incluídos no tarball do fonte. Remova-a se você quiser construí-los.

-system-sqlite: Essa chave habilita uso da versão do sistema do SQLite.

-system-harfbuzz: Essa chave habilita uso da versão do sistema do Harfbuzz.

-dbus-linked -openssl-linked: Essas chaves habilitam vinculação explícita das bibliotecas do D-Bus e do OpenSSL nas bibliotecas do qt5 em vez de abri-las com dlopen().

-journald: Essa chave permite enviar mensagens qt para o sistema de registro journald.

$(cat tempconf): Esse comando fornece uma lista de componentes que não deveriam ser construídos. Essas entradas estão no formato "-skip <componente>".

Configurando qt5

Informação de Configuração

Se Sudo-1.9.15p5 estiver instalado, QT5DIR também deveria estar disponível para o(a) superusuário(a). Execute os seguintes comandos como o(a) usuário(a) root:

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

Se você instalou qt5 em /usr

Se você instalou qt5 em /usr, crie uma variável de ambiente necessária para certos pacotes. Como o(a) usuário(a) 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

Se você não instalou qt5 em /usr

Se você instalou qt5 em um local diferente de /usr, você precisa atualizar os seguintes arquivos de configuração, de forma que qt5 seja encontrado corretamente por outros pacotes e processos do sistema.

Como o(a) usuário(a) root, atualize o arquivo /etc/ld.so.conf e o arquivo de cache de tempo de execução do vinculador dinâmico:

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

/opt/qt5/lib

# End Qt addition
EOF

ldconfig

Como o(a) usuário(a) root, crie o arquivo /etc/profile.d/qt5.sh:

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

QT5DIR=/opt/qt5

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

export QT5DIR

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

Conteúdo

Aplicativos Instalados: 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 e uic
Bibliotecas Instaladas: 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 e vários plugins sob /opt/qt5/{plugins,qml}
Diretórios Instalados: /usr/include/qt5, /usr/lib/qt5, /usr/share/doc/qt5, /usr/share/qt5 OU /opt/qt5 e /opt/qt-5.15.14

Descrições Curtas

Descrições Curtas

assistant

é uma ferramenta para apresentação de documentação on-line

designer

é um construtor de GUI completo. Ele inclui recursos poderosos, como modo de visualização prévia, esquema automático de pequena engenhoca, suporte para pequenas engenhocas personalizadas e um avançado editor de propriedades

fixqt4headers.pl

é um conjunto de comandos sequenciais para substituir todas as inclusões de estilo do Qt 4 pelas inclusões do Qt 5

lconvert

é parte da cadeia de ferramentas Linguist do Qt5. Ela pode ser usada como uma ferramenta independente para converter e filtrar arquivos de dados de tradução

linguist

fornece suporte para traduzir aplicativos para idiomas locais

lrelease

é uma ferramenta simples de linha de comando. Ela lê arquivos de tradução baseados em XML, no formato TS, e produz arquivos de mensagens usados pelo aplicativo

lrelease-pro

extrai informações do projeto a partir de projetos qmake e as passa para lrelease

lupdate

encontra as sequências de caracteres traduzíveis nos arquivos especificados de interface do fonte, cabeçalho e do Designer do Qt e armazena as mensagens extraídas em arquivos de tradução para serem processadas pelo lrelease

lupdate-pro

lê um arquivo de projeto do Qt e passa as informações coletadas para lupdate

moc

gera código de suporte de meta objeto do Qt

pixeltool

é um ampliador de área de trabalho - conforme você move teu mouse pela tela, ele mostrará o conteúdo ampliado na janela dele

qcollectiongenerator

processa e converte arquivos de ajuda do Qt

qdbuscpp2xml

pega um arquivo de fonte do C++ e gera uma definição XML do D-Bus da interface

qdbus

lista serviços disponíveis, caminhos de objetos, métodos, sinais e propriedades de objetos em um barramento

qdbusviewer

é um navegador gráfico do D-Bus

qdbusxml2cpp

é uma ferramenta que pode ser usada para analisar descrições de interfaces e produzir código estático representando essas interfaces

qdistancefieldgenerator

permite que um cache de fontes seja pré gerado para Text.QtRendering para acelerar uma inicialização de um aplicativo se a interface de usuário(a) tiver muito texto, ou múltiplas fontes, ou uma grande quantidade de caracteres distintos, por exemplo, em sistemas de escrita CJK

qdoc

é uma ferramenta usada por Desenvolvedores(as) do Qt para gerar documentação para projetos de software

qhelpgenerator

é uma ferramenta usada para gerar um arquivo comprimido de ajuda do Qt

qlalr

é uma ferramenta usada para gerar código a partir de especificações gramaticais

qmake

usa informações armazenadas em arquivos de projeto para determinar o que deveria constar nos arquivos make que ele gera

qml

executa um arquivo QML

qmlcachegen

suporta a criação de arquivos de cache em tempo de construção

qmleasing

é uma ferramenta usada para definir as curvas de atenuação usando um editor interativo de curva

qmlformat

formata arquivos QML de acordo com as convenções de codificação QML

qmlimportscanner

é uma ferramenta usada para importar arquivos QML a partir de um diretório

qmllint

é um verificador de sintaxe para arquivos QML

qmlmin

remove comentários e caracteres de esquema de um arquivo QML

qmlplugindump

é uma ferramenta para criar um arquivo qmltypes

qmlpreview

é uma ferramenta usada para analisar aplicativos QML

qmlprofiler

é uma ferramenta que monitora arquivos QML e JavaScript no disco e atualiza o aplicativo ao vivo com quaisquer mudanças

qmlscene

é um utilitário que carrega e exibe documentos QML, mesmo antes que o aplicativo esteja completo

qmltestrunner

é uma ferramenta usada para fazer testes

qtattributionsscanner

processa arquivos qt_attribution.json em fontes do Qt

qtdiag

é uma ferramenta para noticiar informações de diagnóstico a respeito do Qt e do ambiente dele

qtpaths

é uma ferramenta para consultar informações de caminho do Qt

qtplugininfo

despeja metadados a respeito dos plugins do Qt em formato JSON

qtwaylandscanner

converte arquivos de especificações do Wayland para cabeçalhos C++ e código necessário para QtWayland

qvkgen

converte arquivos de especificações do Vulkan para cabeçalhos e código C++

rcc

é um compilador de recursos usado em conjunto com projetista

syncqt.pl

é um conjunto de comandos sequenciais para criar os cabeçalhos de encaminhamento nos diretórios de inclusão. É uma ferramenta interna de desenvolvimento

tracegen

é um gerador de rastreamento para LTTng ou ETW

uic

é um compilador Qt de interface de usuário(a)