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, dbus-1.14.10, 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 \
-syslog \
$(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().
-syslog: Essa chave permite
enviar mensagens qt para o sistema de registro syslog.
$(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