amagovpt / autenticacao.gov

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
https://www.autenticacao.gov.pt
European Union Public License 1.2
164 stars 33 forks source link

openjp2.dll na pasta System32 Windows 10 #88

Closed PedroVenancio closed 1 year ago

PedroVenancio commented 2 years ago

Bom dia,

Tenho tido vários problemas com o facto da openjp2.dll se encontrar na pasta System32 do Windows 10, atendendo a que esta pasta System32 é pesquisada pelo Windows antes de qualquer outra definida na %PATH%.

Após uma série de testes, cheguei à conclusão que é a aplicação Autenticação.gov para Windows que usa a openjp2.dll da pasta System32, pelo que depreendo que tenha sido instalada por ela. Estou correto?

A confirmar-se, sugiro que se opte por colocar estas dlls na pasta de instalação, para não causar conflito com outras aplicações.

ACamposPT commented 2 years ago

Boa tarde,

Sim a aplicação Autenticação.gov coloca o openjp2.dll na pasta System32 do Windows. Isto porque a aplicação Autenticação.gov inclui também um SDK e desta forma é necessário colocar as dependências do SDK na pasta System32 para que outras aplicações as possam usar.

Está a ser estudada uma forma de resolver problemas de compatibilidade, resultantes desta forma de deploy das dependências. Neste issue https://github.com/amagovpt/autenticacao.gov/issues/81 já foram realizados alguns trabalhos de identificação.

Pedimos para detalhar ao máximo, quais os problemas que está a ter, com que aplicações tem problemas e outras informações que possa considerar úteis. Obrigado.

PedroVenancio commented 2 years ago

Bom dia @ACamposPT

Todo o software que utiliza GDAL usa esta dependência, sendo que instala a versão compatível na diretoria de instalação. No entanto, se ela está no System32, como é a primeira a ser pesquisada, acaba por a usar. É o caso do SNAP da Agência Espacial Europeia e do SAGA (software de deteção remota e sistemas de informação geográfica). Mas acaba por funcionar porque as versões das DLLs são compatíveis.

O verdadeiro problema surgiu há um par de semanas ao tentar criar um ambiente com o conda, que falhava sistematicamente com versões recentes de GDAL (https://github.com/conda-forge/gdal-feedstock/issues/541).

Neste caso era a openjp2.dll mas a xerces-c_3_2.dll também andava por lá a dar sinal de problemas.

Assim, penso que o ideal, caso seja necessário colocar DLLs na pasta System32, é colocar-lhes um sufixo qualquer no nome para não gerarem incompatibilidades com software de terceiros.

Obrigado.

gioman commented 2 years ago

Assim, penso que o ideal, caso seja necessário colocar DLLs na pasta System32, é colocar-lhes um sufixo qualquer no nome para não gerarem incompatibilidades com software de terceiros.

Caro @ACamposPT confirmo e subscrevo o que @PedroVenancio disse, a Vossa aplicação causa muitos problemas ao colocar DLLs onde não deveria. Se não podem fazer de outra forma usem nomes "custom", de forma não quebrar o funcionamento de aplicações que fazem a coisa certa, ou seja manter as DLLs necessárias nas suas pastas de instalação. Obrigado desde já.

gioman commented 2 years ago

@ACamposPT here is a screencast that shows as your application breaks the integration between QGIS and GRASS, the two most used Open Source GIS (geographic information systems), two software with a large penetration in the Portuguese market, especially public administrations. In this case it seems that the problem is caused by sqlite3.dll, but not 100% sure.

https://user-images.githubusercontent.com/1951107/141814450-d6dfd044-da77-4034-9994-cd602e75a19e.mp4

PedroVenancio commented 2 years ago

Boa tarde @ACamposPT

Alguma novidade em relação a este issue? Na situação atual tenho de ter as DLLs renomeadas e de cada vez que necessito de assinar documentos, tenho de repor o nome original e depois renomear novamente.

Será resolvido na versão 3.7.0 como aqui mencionado? https://github.com/amagovpt/autenticacao.gov/issues/81#issuecomment-938594834

Obrigado

ACamposPT commented 2 years ago

Boa tarde @ACamposPT

Alguma novidade em relação a este issue? Na situação atual tenho de ter as DLLs renomeadas e de cada vez que necessito de assinar documentos, tenho de repor o nome original e depois renomear novamente.

Será resolvido na versão 3.7.0 como aqui mencionado? #81 (comment)

Obrigado

@PedroVenancio A versão 3.7.0 vai ser lançada esta semana e não vai resolver o problema da incompatibilidade de DLLs. Em principio será só na release seguinte, pois ainda não finalizamos as alterações.

No entanto, experimenta em vez de renomear os DLLs, mover (importante mover e não copiar) esses mesmos DLLs para dentro da pasta de instalação da aplicação Autenticação.gov (por defeito é C:\Program Files\Portugal Identity Card). Com isto deverá funcionar ambas as aplicações. Depois diz se funcionou para ti. Obrigado.

NOTA: SDK e KSP deverá deixar de funcionar, isto é apenas para resolver este caso especifico de incompatibilidade, não deverá ser usado para qualquer outro problema.

PedroVenancio commented 2 years ago

No entanto, experimenta em vez de renomear os DLLs, mover (importante mover e não copiar) esses mesmos DLLs para dentro da pasta de instalação da aplicação Autenticação.gov (por defeito é C:\Program Files\Portugal Identity Card). Com isto deverá funcionar ambas as aplicações. Depois diz se funcionou para ti. Obrigado.

@ACamposPT Confirmo que esta alteração resolve este caso. Obrigado!

jonnyforestGIS commented 2 years ago

Caro @ACamposPT há novidades ou está planeado alguma correção para este issue?

A instalação da aplicação com a mais recente versão 3.8 continua a provocar o mesmo problema.

Os melhores cumprimentos.

agrr commented 2 years ago

Boa tarde @jonnyforestGIS,

não nos foi possível incluir a correção para este issue na versão 3.8.0 já que esta incluía muitas alterações a nível do SDK e correções funcionais importantes. A nível de prazos acabou por ser lançada até bastante mais tarde do que estava previsto, por ser uma versão com um âmbito de alterações anormalmente grande.

Para a build Windows 3.9.0 que já está em desenvolvimento vai ser incluída a alteração de utilizar apenas "static libraries" para as dependências do SDK o que vai eliminar as DLLs de bibliotecas opensource que atualmente são instaladas na pasta System32 (openssl, libzip, xerces-c, openjp2, etc.)

jonnyforestGIS commented 2 years ago

@agrr obrigado pela resposta. Cumprimentos

agrr commented 1 year ago

Já foi publicada a versão 3.9.0 com as alterações descritas no meu comentário acima.

jonnyforestGIS commented 1 year ago

Obrigado @agrr pela partilha. Cumprimentos