Portaal Portaal Pingviini veeb foorumi pealeht
  Viki  |  IRC  |  Otsing  |  Küsimused ja vastused  |  Profiil  |  Privaatsõnumite vaatamiseks logi sisse  | Logi sisse või Registreeru
<empty>
Vaata järgmist teemat
Vaata eelmist teemat

Postita uus teemaVasta teemale
Autor Sõnum
mait
Pingviini aktivist
Pingviini aktivist



Liitunud: 14.12.2012
Postitused: 101
Asukoht: Tartu
Distributsioon: OpenSuse 12.2; 13.2, Leap
estonia.gif
postituspostitatud: 09.01.2021, 20:14  postituse pealkiri:  OpenSUSE Leap 15.2 ja ID-kaart  

Tervist!

OpenSUSE 15.2 on nüüd ametlikult toetatav väljalase.

Võtsin GIT-st openSC ja ID-kaardi utiliidid ja kompileerisin nagu tavaliselt (vana näide on siin https://pingviin.org/ftopic10679.html).

Libdigidoc-i kompileerib ära, aga libdigidocpp kompileerimine lõpetab veateatega:
Kood:
/home/mait/src/libdigidocpp/src/crypto/TSL.cpp: In member function ‘void digidoc::TSL::validate(const std::vector<digidoc::X509Cert>&)’:

            /home/mait/src/libdigidocpp/src/crypto/TSL.cpp:521:43: error: invalid conversion from ‘const char16_t*’ to ‘const XMLCh* {aka const short unsigned int*}’ [-fpermissive]
         sig->registerIdAttributeName(u"ID");


Kui kommenteerisin katseks välja
Kood:
 sig->registerIdAttributeName(u"ID");
, siis tuli mujalt veateateid, kus leidus konstruktsioon (u"misiganes_string").

Vaatasin teeke ja need tundusid olevat seotud ning vanad ka, aga OpenSUSE 15.2 hoidlates uuemaid ei ole
libxml-security-c 1.7.3-lp152.4.7
libxerces-c-3_1 3.1.4-lp152.4.10.

Proovisin ise kompileerida ja xerces-c kompileerus, aga libxml-security-c leiab et xalan 1.11 ei sobi ja xalan-i kompileerimine lõpeb veateatega
Kood:
 
src/xalan-c/src/xalanc/XPath/MutableNodeRefList.cpp:707:12: error: ‘checkForDuplicates’ was not declared in this scope
 707 |     assert(checkForDuplicates(getMemoryManager()) == false);
      |            ^~~~~~~~~~~~~~~~~~
make[2]: *** [src/xalanc/CMakeFiles/xalan-c.dir/build.make:1445: src/xalanc/CMakeFiles/xalan-c.dir/XPath/MutableNodeRefList.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:457: src/xalanc/CMakeFiles/xalan-c.dir/all] Error 2
make: *** [Makefile:158: all] Error 2


Mul oli vana 2019. aasta ID-kaardi kood ja see kompileerus probleemideta. Saab kõike teha, aga alati teatab, et tarkvarast on uuendused olemas (aga nende kompileerimine nagu eespool kirjeldatud, ei õnnestu).

Mida soovitate?


imre
Vana Pingviin
Vana Pingviin



Liitunud: 16.08.2005
Postitused: 2620
Asukoht: Saku kant
Distributsioon: Ubuntu
estonia.gif
postituspostitatud: 10.01.2021, 14:46  postituse pealkiri:  (teema puudub)  

libdigidocpp puhul proovi ver. varasemat. Kompileerumiseks on vajalik libxalan-c-devel pakk peale lasta.
Kood:
git clone -b v3.14.3 --recursive https://github.com/open-eid/libdigidocpp
mkdir build; cd build; cmake -DPODOFO_LIBRARY="" -DPODOFO_INCLUDE_DIR="" .. ; make

Mul kompileerus ära igatahes.

_________________
Enne teema püstitamist kasutage OTSINGUT
Küsi targalt: Infot siit !
Kui aru ei saa, siis küsi.

mait
Pingviini aktivist
Pingviini aktivist



Liitunud: 14.12.2012
Postitused: 101
Asukoht: Tartu
Distributsioon: OpenSuse 12.2; 13.2, Leap
estonia.gif
postituspostitatud: 12.01.2021, 23:11  postituse pealkiri:  (teema puudub)  

Selle vanema versiooniga jõuab peaaegu lõpuni ja neid (u"ID) sarnaseid vigu ei teki. Kui kustutasin välja varasema katsetuse käigus ise tehtud xerces-c ja muud ning panin hoidlatest pakid tagasi, siis kompileeris libdigidoc ja libdigidoc-i ära. Käsitsi pidin peale "make install" veel tegema:
Kood:
ln -s /usr/local/lib64/libdigidocpp.so.3.14.3 /usr/lib64/libdigidocpp.so.1


Kõige viimase DigiDoc4-Client kompileerimisel sain
Kood:

[ 18%] Built target TSLDownload_autogen
[ 20%] Built target TSLDownload
[ 21%] Building CXX object client/CMakeFiles/qdigidoc4.dir/DigiDoc.cpp.o
zzz/src/DigiDoc4-Client/client/DigiDoc.cpp: In member function ‘void DigiDoc::create(const QString&)’:
zzz/src/DigiDoc4-Client/client/DigiDoc.cpp:436:17: error: ‘createPtr’ is not a member of ‘digidoc::Container’
  b = Container::createPtr(to(file));
                 ^~~~~~~~~
zzz/src/DigiDoc4-Client/client/DigiDoc.cpp: In member function ‘bool DigiDoc::open(const QString&)’:
zzz/src/DigiDoc4-Client/client/DigiDoc.cpp:518:18: error: ‘openPtr’ is not a member of ‘digidoc::Container’
   b = Container::openPtr(to(file));
                  ^~~~~~~
zzz/src/DigiDoc4-Client/client/DigiDoc.cpp:530:21: error: ‘openPtr’ is not a member of ‘digidoc::Container’
      b = Container::openPtr(to(tmppath));
                     ^~~~~~~
zzz/src/DigiDoc4-Client/client/DigiDoc.cpp: In static member function ‘static void DigiDoc::parseException(const digidoc::Exception&, QStringList&, digidoc::Exception::ExceptionCode&)’:
zzz/src/DigiDoc4-Client/client/DigiDoc.cpp:560:18: error: ‘TSForbidden’ is not a member of ‘digidoc::Exception’
  case Exception::TSForbidden:
                  ^~~~~~~~~~~
zzz/src/DigiDoc4-Client/client/DigiDoc.cpp: In member function ‘void DigiDoc::setLastError(const QString&, const digidoc::Exception&)’:
zzz/src/DigiDoc4-Client/client/DigiDoc.cpp:630:18: error: ‘TSForbidden’ is not a member of ‘digidoc::Exception’
  case Exception::TSForbidden:
                  ^~~~~~~~~~~
make[2]: *** [client/CMakeFiles/qdigidoc4.dir/build.make:438: client/CMakeFiles/qdigidoc4.dir/DigiDoc.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:367: client/CMakeFiles/qdigidoc4.dir/all] Error 2
make: *** [Makefile:147: all] Error 2


Võtsin imre postitatud näite järgi ka selles vanema versiooni
Kood:
  git clone   -b v4.2.5  --recursive https://github.com/open-eid/DigiDoc4-Client.git
ja selle tegi ära.


aarengu
Uus kasutaja
Uus kasutaja



Liitunud: 17.10.2010
Postitused: 8

Distributsioon: openSUSE
estonia.gif
postituspostitatud: 14.01.2021, 09:51  postituse pealkiri:  (teema puudub)  

Miks ei sobi olemasolevad repod, ühes ikka on:
https://download.opensuse.org/repositories/home:/ulo:/open-eid/
https://download.opensuse.org/repositories/home:/kentaur_est:/open-eid/


DaStoned
Pingviini aktivist
Pingviini aktivist


Vanus: 39
Liitunud: 11.01.2007
Postitused: 336
Asukoht: Tallinn
Distributsioon: Debian
estonia.gif
postituspostitatud: 14.01.2021, 15:19  postituse pealkiri:  (teema puudub)  

Uuem gcc annab vea, sest ei luba pointereid signed ja unsigned integer tüüpi muutujate pihta omavahel vahetada (mida aeg edasi, seda pedantlikumaks gcc muutub).

Aga workaround on see, et sa ütled gcc-le et ole vait ja tee tööd edasi. Selleks tuleb temani toimetada veateates vihjatud argument "-fpermissive". Konkreetselt, enne cmake käivitamist anna need kaks käsku (esimene mõjutab C ja teine C++ kompilaatorit):

Kood:
export CFLAGS=-fpermissive
export CXXFLAGS=-fpermissive


Kui sa oled juba varasemalt cmake käima lasknud, siis tuleb enne plats puhtaks teha kui neist muutujatest midagi tolku on. Ma ei viitsi siinkohal süveneda, aga arvatavasti teeb selle töö ära cmake kataloogi ärakustutamine ja uue tegemine.

_________________
When the shit hits the fan, keep your mouth shut!

Näita (aja järgi):      
Postita uus teemaVasta teemale


Vaata järgmist teemat
Vaata eelmist teemat
Powered by phpBB2 Plus based on phpBB © 2001/7 phpBB Group