Closed PedroVenancio closed 1 year 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.
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.
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á.
@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
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
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.
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!
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.
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.)
@agrr obrigado pela resposta. Cumprimentos
Já foi publicada a versão 3.9.0 com as alterações descritas no meu comentário acima.
Obrigado @agrr pela partilha. Cumprimentos
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.