Conteúdo
Descrições Curtas
Vejam-se Qt5 Short Descriptions
Qt5 é uma estrutura de aplicação 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 pequena engenhoca) e também usada para desenvolver aplicativos não GUI, como ferramentas de linha de comando e consoles para servidores. Dois dos principais usuários do qt são o KDE Frameworks 5 (KF5) e o LXQt.
O pacote qt5 completo consiste em quarenta e três (43) componentes. Estas instruções usam um pequeno subconjunto das instruções completas de instalação do qt5 acima. Elas cobrem a maioria, mas não todos, dos componentes necessários para construir pacotes no BLFS. Esta página e a próxima são fornecidas para reduzir a quantidade de tempo, espaço e dependências necessárias para construir esses pacotes. Elas não são recomendadas se você construirá o ambiente de área de trabalho Plasma-5.27.10 baseado em Plasma-5.27.10.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.1.
Transferência (HTTP): https://download.qt.io/archive/qt/5.15/5.15.12/single/qt-everywhere-opensource-src-5.15.12.tar.xz
Soma de verificação MD5 da transferência: 3fb1cd4f763f5d50d491508b7b99fb77
Tamanho da transferência: 630 MB
Espaço em disco estimado exigido: 8,5 GB (154 MB instalado)
Tempo de construção estimado: 7,4 UPC (usando paralelismo = 4)
Agora que as atualizações do qt5 estão restritas a clientes comerciais, os remendos de desenvolvedor(a) para os vários módulos estão sendo selecionados no KDE. Remendos para os módulos exigidos pelos pacotes no BLFS foram agregados para a construção não modular do qt5 que usamos.
Remendo exigido: https://www.linuxfromscratch.org/patches/blfs/12.1/qt-everywhere-opensource-src-5.15.12-kf5-1.patch
Detalhes da curadoria do KDE podem ser encontrados em https://dot.kde.org/2021/04/06/announcing-kdes-qt-5-patch-collection e https://community.kde.org/Qt5PatchCollection.
Remendo exigido: https://www.linuxfromscratch.org/patches/blfs/12.1/qt-everywhere-opensource-src-5.15.12-security_fix-1.patch
alsa-lib-1.2.11, at-spi2-core-2.50.1, Cups-2.4.7, double-conversion-3.3.0, GLib-2.78.4, HarfBuzz-8.3.0, ICU-74.2, hicolor-icon-theme-0.17, Mesa-24.0.1, libjpeg-turbo-3.0.1, libxkbcommon-1.6.0, SQLite-3.45.1, Wayland-1.22.0 (Mesa precisa ser construído com estrutura de retaguarda EGL do Wayland), xcb-util-image-0.4.1, xcb-util-keysyms-0.4.1, xcb-util-renderutil-0.3.10 e xcb-util-wm-0.4.2
GTK+-3.24.41, libinput-1.25.0 MariaDB-10.11.7 ou MySQL, MIT Kerberos V5-1.21.2, mtdev-1.1.6 PostgreSQL-16.2 e unixODBC-2.3.12
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
Ocasionalmente, os caminhos de instalação sã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.12
. 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.12 ln -sfnv qt-5.15.12 /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 prefixo novamente. Qual versão do
qt5 você usa depende somente de
onde o link simbólico aponta.
Se o 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 gerenciador de
janelas não baseado em qt5. Ele sobrescreve bibliotecas do
qt5 que não deveriam estar em
uso durante o processo de instalação.
Se você não instalou alguma das dependências recomendadas, examine a saída gerada de ./configure --help para verificar como desabilitá-las ou usar versões internas incluídas no tarball do fonte.
Os(As) editores(as) do BLFS não recomendam instalar o
qt5 na hierarquia /usr
porque se torna difícil encontrar
componentes e atualizar para uma nova versão. Se você
efetivamente desejar instalar o qt5 em /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
Agora 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.12-kf5-1.patch
Presume-se que o remendo seja usado em um repositório git. Caso
contrário, alguns arquivos que deveriam ser modificados pelo
configure depois de
aplicar 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
Corrija uma vulnerabilidade de segurança no qtbase:
patch -Np1 -i ../qt-everywhere-opensource-src-5.15.12-security_fix-1.patch
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
Agora, instale o 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 de
dependência de biblioteca (prl) instalados executando o seguinte
comando como o(a) usuário(a) root
:
find $QT5PREFIX/ -name \*.prl \ -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;
Instale imagens e crie 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=Assistente Qt5 Comment=Mostra documentação e exemplos do Qt5 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=Projetista Qt5 GenericName=Projetista de Interface Comment=Projetar GUIs para aplicativos Qt5 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=Linguista Qt5 Comment=Adicionar traduções a aplicativos Qt5 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=Depurador do D-Bus Comment=Depurar aplicativos do D-Bus 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.20, procuram determinados
executáveis com um sufixo -qt5. Execute o seguinte comando como
o(a) usuário(a) root
para criar os
links simbólicos necessários:
for file in moc uic rcc qmake lconvert lrelease lupdate; do ln -sfvn $QT5BINDIR/$file /usr/bin/$file-qt5 done
-confirm-license
: Aceite a
licença sem avisar o(a) usuário(a) durante a configuração.
-opensource
: Instale a
versão de fonte aberto do qt.
-nomake examples
: Essa
chave desabilita a construção dos programas de exemplo incluídos no
tarball do fonte. Remova-a se quiser construí-los.
-system-sqlite
: Essa chave
habilita uso da versão do sistema do SQLite.
-system-harfbuzz
: Essa
chave habilita o 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>".
Se o 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 o 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"
# Inicia /etc/profile.d/qt5.sh
QT5DIR=/usr
export QT5DIR
# Termina /etc/profile.d/qt5.sh
EOF
Se você instalou o qt5 em um
local diferente de /usr
, você
precisa atualizar os seguintes arquivos de configuração, de forma
que o 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
# Inicia adição do Qt
/opt/qt5/lib
# Termina adição do Qt
EOF
ldconfig
Como o(a) usuário(a) root
, crie o
arquivo /etc/profile.d/qt5.sh
:
cat > /etc/profile.d/qt5.sh << "EOF"
# Inicia /etc/profile.d/qt5.sh
QT5DIR=/opt/qt5
pathappend $QT5DIR/bin PATH
pathappend $QT5DIR/lib/pkgconfig PKG_CONFIG_PATH
export QT5DIR
# Termina /etc/profile.d/qt5.sh
EOF
Vejam-se Qt5 Short Descriptions