Construindo o Plasma 5

"Plasma" 5 do "KDE" é uma coleção de pacotes baseados no "Frameworks" 5 do "KDE" e "QML". Eles implementam o Ambiente de Exibição do "KDE" ("Plasma" 5).

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

As instruções abaixo constroem todos os pacotes do "Plasma" 5 em uma etapa usando um conjunto de comandos sequenciais do "Bash".

Informação do Pacote

Dependências do "Plasma" 5

Exigidas

GTK+-3.24.41, KDE Frameworks-5.115.0, kuserfeedback-1.3.0, libpwquality-1.4.5, libqalculate-4.9.0, libxcvt-0.1.2, libxkbcommon-1.6.0, Mesa-24.0.1 construído com Wayland-1.22.0, NetworkManager-1.44.2, pipewire-1.0.3, PulseAudio-17.0, qca-2.3.8, sassc-3.6.2, taglib-2.0 e xcb-util-cursor-0.1.4

Recomendadas

Recomendadas (tempo de execução)

Opcionais

AppStream-1.0.1 (construído com -qt=true), GLU-9.0.3, ibus-1.5.29, qtwebengine-5.15.17, Controlador Synaptics do Xorg-1.9.2, KDevPlatform, libgps, libhybris, libraw1394, packagekit-qt, Qalculate, Qapt, SCIM e socat (para pam_kwallet)

[Nota]

Nota

qtwebengine-5.15.17 é exigido para aura-browser. Também é opcional para dois outros pacotes: libksysguard e kdeplasma-addons. Se QtWebEngine for instalado posteriormente, somente esses dois pacotes precisarão ser reconstruídos. Isso permite uma exibição mais completa no aplicativo de monitoramento do sistema.

Baixando o Plasma5 do KDE

A maneira mais fácil de obter os pacotes do "Plasma5" do "KDE" é a de usar um "wget" para buscá-los todos de uma vez:

url=https://download.kde.org/stable/plasma/5.27.10/
wget -r -nH -nd -A '*.xz' -np $url

As opções usadas aqui são:
  -r            recursar ao longo de diretórios descentes
  -nH           desabilitar a geração de diretórios com prefixo de dispositivo
  -nd           não crie uma hierarquia de diretórios
  -A '*.xz'     apenas obter os arquivos *.xz
  -np           não obtenha diretórios ancestrais

Configurando a Ordem do Pacote

A ordem de construção dos arquivos é importante devido às dependências internas. Crie a lista de arquivos na ordem correta conforme segue:

cat > plasma-5.27.10.md5 << "EOF"
a1361a811dc93389d0ce771d1ff82c3a  kdecoration-5.27.10.tar.xz
1f491e823bc83df650d04d5d9948da45  libkscreen-5.27.10.tar.xz
571aa0c18a14ee74f3081f96f73a7f9d  libksysguard-5.27.10.tar.xz
541d1b06db3b707a7a73df1526f37b44  breeze-5.27.10.tar.xz
9acdc232ea675b761e7386837f25f420  breeze-gtk-5.27.10.tar.xz
54562594af547614648cded522c3e747  layer-shell-qt-5.27.10.tar.xz
c44cfe3ba7fb03fc30b2ae305f16ed79  kscreenlocker-5.27.10.tar.xz
171949dd2dfc3b2325c959389694860a  oxygen-5.27.10.tar.xz
0ef8d9f18707712fc4bcccf59138f2c7  kinfocenter-5.27.10.tar.xz
e4e4409af71c4f5a67aa35c04f6b2bc7  kwin-5.27.10.tar.xz
5c2ff5158503e983207e700ce513e929  plasma-workspace-5.27.10.tar.xz
46001c7671f7ff2f08ca0dd9c3cdbf3f  plasma-disks-5.27.10.tar.xz
820566ae6effedbdd208a78e0031bf67  bluedevil-5.27.10.tar.xz
490bd81c915f332b65631b87b6eaa49d  kde-gtk-config-5.27.10.tar.xz
7cade9cfce3ef14f14f55cd7a50fd7cf  khotkeys-5.27.10.tar.xz
e98c999e6ee7f9bbe775d4e512368420  kmenuedit-5.27.10.tar.xz
24bc4ed3ad5587bd05591aafd758df2c  kscreen-5.27.10.tar.xz
3ab1c88cf91f0fb46ae3395d57709e12  kwallet-pam-5.27.10.tar.xz
53d59d76b3dfac5f755d607798b08f85  kwayland-integration-5.27.10.tar.xz
d7a9f2999352e91d504d52ad65336d9b  kwrited-5.27.10.tar.xz
8a51e19d58acebb89a919b7377d8bc83  milou-5.27.10.tar.xz
0e11c62c2a23d161b5b8cbe6e87517bc  plasma-nm-5.27.10.tar.xz
02657d8fd46384f75ffe9c504f7c97b4  plasma-pa-5.27.10.tar.xz
5c1cbd459e786deb16d5615748114bfa  plasma-workspace-wallpapers-5.27.10.tar.xz
17302ca60f68e13e85bc24a4ec873622  polkit-kde-agent-1-5.27.10.tar.xz
cc39dc5777614bd89ae96d38008dc7c9  powerdevil-5.27.10.tar.xz
2417bb974152d4f2274ebe3b7b524ca8  plasma-desktop-5.27.10.tar.xz
f51521902f0665349c0fa012590a1eec  kgamma-5.27.10.tar.xz
e95d6813c180b078be4bf40550791e26  ksshaskpass-5.27.10.tar.xz
#8c52fad441ffe43969458ae71b6a2f26  plasma-sdk-5.27.10.tar.xz
1af573d08dd99879f27c5a2b55b02bc9  sddm-kcm-5.27.10.tar.xz
#560ac5c60112e18bb44c46eec3563d7d  discover-5.27.10.tar.xz
#3af40cfe47213087d2a8c89132ff004d  discover-5.27.10.1.tar.xz
#2cd0a4e1e3e89197e18f48d893c0f2d6  breeze-grub-5.27.10.tar.xz
#fe7bb4efec17206a9faceb9cfe35fbf5  breeze-plymouth-5.27.10.tar.xz
5bbb5c7a2985f8d7b8816a35d517d333  kactivitymanagerd-5.27.10.tar.xz
c1810c7d54842028fb5968097add5538  plasma-integration-5.27.10.tar.xz
#75bedf5da4b7497a18238011d12bec26  plymouth-kcm-5.27.10.tar.xz
440dd7cb1f43d7d86862a1165b48c4f2  xdg-desktop-portal-kde-5.27.10.tar.xz
657984f8356578253e1911c8d35041f6  drkonqi-5.27.10.tar.xz
912db896afe71a8283e36037b4bba79e  plasma-vault-5.27.10.tar.xz
e03d33ca8a9905df3c2901cef5512a14  plasma-browser-integration-5.27.10.tar.xz
30797f3809675e61542518f9b15be2c3  kde-cli-tools-5.27.10.tar.xz
1319f82a4043456a4cb99cfcc2ba90fe  systemsettings-5.27.10.tar.xz
2861104cf1e31393d9cd87701042d3aa  plasma-thunderbolt-5.27.10.tar.xz
#79ffc86387c7024bd834b349fba9b79f  plasma-nano-5.27.10.tar.xz
#802d5a3cd34f5ec3825c21905f0ed9db  plasma-mobile-5.27.10.tar.xz
1f4875f2cf9c0d949961aa9ad6635e6f  plasma-firewall-5.27.10.tar.xz
b6648b45d9824b565dda1f100e7d83a6  plasma-systemmonitor-5.27.10.tar.xz
8e46e5afde739a6361b1838f71eb182d  qqc2-breeze-style-5.27.10.tar.xz
fd93592f9895c5c09f4c0db771c1710a  ksystemstats-5.27.10.tar.xz
4f55bb4490751abb23046165d68e8ca7  oxygen-sounds-5.27.10.tar.xz
#6300c88c07debeb60760dede52a791ee  aura-browser-5.27.10.tar.xz
00afc45528267a5e2ec11b47b8a7779b  kdeplasma-addons-5.27.10.tar.xz
7f432fbb0d205d6e30714e731f91a459  kpipewire-5.27.10.tar.xz
5f37a2e3acf00a0616e13d86ed225d7f  plank-player-5.27.10.tar.xz
f3a08cefe61643273a9e06cfd6b2746a  plasma-bigscreen-5.27.10.tar.xz
a69142a27ab62c583fa5d4d4577427ff  plasma-remotecontrollers-5.27.10.tar.xz
#16e67ca215d44ec59130214ca6e13e80  flatpak-kcm-5.27.10.tar.xz
#4ef3e1d988e5edfa8ee20f9373a82680  plasma-welcome-5.27.10.tar.xz
EOF
[Nota]

Acerca de Pacotes Comentados

Os pacotes breeze-grub, breeze-plymouth e plymouth-kcm acima são todos para suporte personalizado do Plymouth, que é projetado para ser executado em um disco RAM inicial durante a inicialização (veja-se “A respeito do initramfs”). O pacote plasma-sdk é opcional e usado para desenvolvimento de software. O pacote plasma-nano é usado para sistemas embarcados. O pacote plasma-mobile fornece funcionalidade de telefone para o Plasma. O pacote aura-browser exige qtwebengine-5.15.17. O pacote discover exige AppStream-1.0.1 para ser construído com a chave -Dqt=true. A versão discover-5.27.10.1 do pacote é uma atualização da versão anterior. O pacote plasma-welcome exige o pacote externo kaccounts-integration. O pacote flatpack-kcm é para suporte de gerenciamento de aplicativos flatpack.

Instalação do Plasma5

[Nota]

Nota

Quando instalar múltiplos pacotes em um conjunto de comandos sequenciais, a instalação precisa ser feita como o(a) usuário(a) root. Existem três opções gerais que podem ser usadas para se fazer isso:

  1. Executar o conjunto inteiro de comandos sequenciais como o(a) usuário(a) root (não recomendado).

  2. Usar o comando sudo oriundo do pacote Sudo-1.9.15p5.

  3. Usar su -c "argumentos do comando" (aspas exigidas), que solicitará a senha do(a) root para cada interação do loop.

Uma maneira de se lidar com essa situação é a de se criar uma função curta do bash que selecione automaticamente o método apropriado. Uma vez que o comando esteja configurado no ambiente, ele não precisa ser configurado novamente.

as_root()
{
  if   [ $EUID = 0 ];        then $*
  elif [ -x /usr/bin/sudo ]; then sudo $*
  else                            su -c \\"$*\\"
  fi
}

export -f as_root

Primeiro, inicie um sub "shell" que sairá em caso de erro:

bash -e

Instale todos os pacotes executando os seguintes comandos:


while read -r line; do

    # Obtenha o nome do arquivo, ignorando comentários e linhas em branco
    if $(echo $line | grep -E -q '^ *$|^#' ); then continue; fi
    file=$(echo $line | cut -d" " -f2)

    pkg=$(echo $file|sed 's|^.*/||')          # Remove diretório
    packagedir=$(echo $pkg|sed 's|\.tar.*||') # Diretório do pacote

    tar -xf $file
    pushd $packagedir

       mkdir build
       cd    build

       cmake -DCMAKE_INSTALL_PREFIX=$KF5_PREFIX \
             -DCMAKE_BUILD_TYPE=Release         \
             -DBUILD_TESTING=OFF                \
             -Wno-dev ..  &&

        make
        as_root make install
    popd


    as_root rm -rf $packagedir
    as_root /sbin/ldconfig

done < plasma-5.27.10.md5

exit

Se você não configurou $KF5_PREFIX como /usr, crie links simbólicos para permitir que gerenciadores de tela encontrem o Plasma e para permitir que XDG Desktop Portal seja detectado:

as_root install -dvm 755 /usr/share/xsessions              &&
cd /usr/share/xsessions/                                   &&
[ -e plasma.desktop ]                                      ||
as_root ln -sfv $KF5_PREFIX/share/xsessions/plasma.desktop &&
as_root install -dvm 755 /usr/share/wayland-sessions       &&
cd /usr/share/wayland-sessions/                            &&
[ -e plasmawayland.desktop ]                               ||
as_root ln -sfv $KF5_PREFIX/share/wayland-sessions/plasmawayland.desktop
as_root install -dvm 755 /usr/share/xdg-desktop-portal     &&
cd /usr/share/xdg-desktop-portal/                          &&
[ -e kde-portals.conf ]                                    ||
as_root ln -sfv $KF5_PREFIX/share/xdg-desktop-portal/kde-portals.conf
as_root install -dvm 755 /usr/share/xdg-desktop-portal/portals &&
cd /usr/share/xdg-desktop-portal/portals                       &&
[ -e kde.portal ]                                              ||
as_root ln -sfv $KF5_PREFIX/share/xdg-desktop-portal/portals/kde.portal

Configurando o Plasma

Configuração do Linux PAM

Se você construiu o "Plasma" com o suporte "Linux PAM" recomendado, [então] crie os necessários arquivos de configuração executando os seguintes comandos como o(a) usuário(a) "root":

cat > /etc/pam.d/kde << "EOF"
# Inicia /etc/pam.d/kde

auth     requisite      pam_nologin.so
auth     required       pam_env.so

auth     required       pam_succeed_if.so uid >= 1000 quiet
auth     include        system-auth

account  include        system-account
password include        system-password
session  include        system-session

# Termina /etc/pam.d/kde
EOF

cat > /etc/pam.d/kde-np << "EOF"
# Inicia /etc/pam.d/kde-np

auth     requisite      pam_nologin.so
auth     required       pam_env.so

auth     required       pam_succeed_if.so uid >= 1000 quiet
auth     required       pam_permit.so

account  include        system-account
password include        system-password
session  include        system-session

# Termina /etc/pam.d/kde-np
EOF

cat > /etc/pam.d/kscreensaver << "EOF"
# Inicia /etc/pam.d/kscreensaver

auth    include system-auth
account include system-account

# Termina /etc/pam.d/kscreensaver
EOF

Iniciando o Plasma5

Você consegue iniciar o "Plasma5" a partir de um "TTY", usando o "xinit-1.4.2".

Para iniciar o "Plasma 5" usando o "xinit-1.4.2", execute os seguintes comandos:

cat > ~/.xinitrc << "EOF"
dbus-launch --exit-with-x11 $KF5_PREFIX/bin/startplasma-x11
EOF

startx

A sessão do "X" inicia no primeiro terminal virtual não usado, normalmente o "vt7". Você consegue comutar para outro "vtn" pressionando simultaneamente as teclas "Ctrl-Alt-Fn" (n=1, 2, ...). Para comutar de volta para a sessão do "X", normalmente iniciada no "vt7", use "Ctrl-Alt-F7". O "vt" onde o comando "startx" foi executado exibirá muitas mensagens, incluindo mensagens de iniciação do "X", aplicativos iniciados automaticamente com a sessão e, eventualmente, algumas mensagens de aviso e erro. Você possivelmente prefira redirecionar essas mensagens para um arquivo de registro, que não apenas manterá o "vt" inicial organizado, mas também poderá ser usado para fins de depuração. Isso pode ser feito iniciando-se o "X" com:

startx &> ~/x-session-errors

Ao desligar ou reinicializar, as mensagens de desligamento aparecem no terminal virtual onde o X estava executando. Se você desejar ver essas mensagens, pressione simultaneamente as teclas Alt-F7 (assumindo que o X estava executando no terminal virtual 7).

Conteúdo

Aplicativos Instalados: Existem muitíssimos aplicativos do "Plasma" (sessenta e três (63) em "/opt/kf5/bin") para listar separadamente aqui.
Bibliotecas Instaladas: Existem muitíssimas bibliotecas do "Plasma" (quarenta (40) em "/opt/kf5/lib") para listar separadamente aqui.
Diretórios Instalados: Existem muitíssimos diretórios do "Plasma" (mais que mil (1000) em "/opt/kf5") para listar separadamente aqui.