Middleware Oficial de Identificação Eletrónica em Portugal - Cartão de Cidadão, da Chave Móvel Digital e Sistema de Certificação de atributos profissionais
Como instalar o ambiente de programação do CC no Debian 10
Nota: o objectivo deste howto é unicamente instalar as bibliotecas que permitem a compilação de exemplos em C++. Assim se terá a possibilidade de desenvolver software em C++. A execução da aplicação instalada /usr/local/bin/eidguiV2 é irrelevante (não a consigo executar), uma vez que instalei com sucesso a versão empacotada em flatpak (ver em: https://github.com/amagovpt/autenticacao.gov/issues/133).
Em /etc/apt/sources.list devem estar as seguintes sources, uma vez que o Debian 10 é oldstable, e para além disso é preciso instalar pacotes backports:
Fazer reboot ao SO entrando de seguida na área de trabalho (login normal).
No ficheiro .bashrc acrescentar através dum editor de texto o seguinte:
export PATH=$PATH:/usr/local/lib:/usr/local/include
Para refrescar o PATH nas variáveis de ambiente digitar:
. ~/.bashrc
Verificar se a PATH foi actualizada
echo $PATH
Como instalar o ambiente de programação do CC no Debian 10
Nota: o objectivo deste howto é unicamente instalar as bibliotecas que permitem a compilação de exemplos em C++. Assim se terá a possibilidade de desenvolver software em C++. A execução da aplicação instalada /usr/local/bin/eidguiV2 é irrelevante (não a consigo executar), uma vez que instalei com sucesso a versão empacotada em flatpak (ver em: https://github.com/amagovpt/autenticacao.gov/issues/133).
Versão Debian 10.13 Buster Oldstable Desktop Xfce 4.12 Arquitectura. AMD64 Login: root Instalação: expert
Em /etc/apt/sources.list devem estar as seguintes sources, uma vez que o Debian 10 é oldstable, e para além disso é preciso instalar pacotes backports:
deb http://security.debian.org/debian-security buster/updates main contrib deb-src http://security.debian.org/debian-security buster/updates main contrib
deb http://deb.debian.org/debian/ buster main contrib non-free deb-src http://deb.debian.org/debian/ buster main contrib non-free
deb http://security.debian.org/ buster/updates main contrib non-free deb-src http://security.debian.org/ buster/updates main contrib non-free
deb http://deb.debian.org/debian buster-backports main
Na consola, em root, ou usando o sudo, ou su, digitar o seguinte (na minha instalação tenho obrigatoriamente fazer login: root):
apt update
apt install libxml-security-c20
apt install libpcsclite-dev apt install build-essential libpoppler-qt5-dev libzip-dev libopenjp2-7-dev libpng-dev openjdk-11-jdk qtbase5-dev qt5-qmake qtbase5-private-dev qt5-default qtdeclarative5-dev qtquickcontrols2-5-dev qml-module-qtquick-controls2 libssl-dev libxerces-c-dev libxml-security-c-dev swig libcurl4-nss-dev
apt -t buster-backports install pcscd apt install qml-module-qt-labs-folderlistmodel qml-module-qt-labs-settings qml-module-qt-labs-platform qml-module-qtgraphicaleffects qml-module-qtquick-controls qml-module-qtquick-controls2 qml-module-qtquick-dialogs qml-module-qtquick-layouts qml-module-qtquick-templates2 qml-module-qtquick-window2 qml-module-qtquick2 qt5-gtk-platformtheme libnsspem fonts-lato policykit-1
apt install git cd ~ git clone https://github.com/amagovpt/autenticacao.gov.git
Editar o ficheiro PageLoader.qml em: ~/autenticacao.gov/pteid-mw-pt/_src/eidmw/eidguiV2/PageLoader.qml
Substuir o código da função <function activateGeneralPopup(--- > na linha 175 por:
Depois da edição do ficheiro PageLoader.qml digitar: cd ~/autenticacao.gov/pteid-mw-pt/_src/eidmw qmake pteid-mw.pro apt install libcjson-dev make
A compilação dá erros. De novo repetir duma forma muito bizantina: apt -t buster-backports install pcscd make make install && sudo ldconfig
Apesar dos erros as bibliotecas ficam devidamente instaladas em: /usr/local/lib/ /usr/local/include/
Para pôr o pcscd.service a funcionar: systemctl enable pcscd.socket pcscd.service systemctl restart pcscd.service
Remover o código que foi descarregado do Github cd ~ rm -fr ~/autenticacao.gov
export PATH=$PATH:/usr/local/lib:/usr/local/include
Experimentar compilar e executar o programa SignPDFDocument.cpp escrito em C++ existente em: https://github.com/amagovpt/docs.autenticacao.gov/tree/main/SDK_Examples/C%2B%2B Ao que parece, depois deste teste em root deixa de haver na área de trabalho (login normal) um erro de ownership numa pasta qualquer.
Fazer reboot ao SO entrando de seguida na área de trabalho (login normal).
No ficheiro .bashrc acrescentar através dum editor de texto o seguinte: export PATH=$PATH:/usr/local/lib:/usr/local/include Para refrescar o PATH nas variáveis de ambiente digitar: . ~/.bashrc Verificar se a PATH foi actualizada echo $PATH
Experimentar de novo compilar e executar o programa SignPDFDocument.cpp escrito em C++ existente em: https://github.com/amagovpt/docs.autenticacao.gov/tree/main/SDK_Examples/C%2B%2B
Testei com sucesso os seguintes exemplos: GetPhoto.cpp ReadAddress.cpp ReadCard.cpp SignPDFDocument.cpp
A metodologia apresentada é bizarra e bizantina, contudo funciona. Foi feita com suor, sangue e lágrimas.
A informação que foi por mim coligida baseou-se nas publicações feitas em https://github.com/amagovpt/autenticacao.gov/issues/126, em https://github.com/amagovpt/autenticacao.gov/issues/50 e em https://github.com/amagovpt/autenticacao.gov