 |
| Autor |
Sõnum |
mait
Pingviini aktivist

Liitunud: 14.12.2012
Postitused: 104
Asukoht: Tartu
Distributsioon: OpenSuse 12.2; 13.2, Leap

|
|
ID-kaardi tarkvara kompileerimine lõpeb kohe libdigidoc juures alguses üllatusliku veateatega:
| Kood: | |
/libdigidoc/DigiDocError.c:588:16: error: conflicting types for ‘checkUnknownErr’; have ‘int(SignedDoc *)’ {akaint(struct SignedDoc_st *)’}
588 | EXP_OPTION int checkUnknownErr(SignedDoc* pSigDoc) |
Alliktekstid on aastast 2019 ja võiks ju ära kompileerida. Varem pole sellega kunagi probleeme olnud.
Järgnev võiks olla üks lahendus, kuidas ID-kaardiga dokumendi allkirjastamise OpenSUSE Leap 16.0 peal käima saab. Alustada saab peale opsüsteemi paigaldust. Muuseas, pakihaldur myrlyn on tüütu, sest sulgeb end iga kord peale paigalduse lõppu ja kui on vaja katseliselt järjest lisada, siis tuleb jälle teda uuesti käivitada. Klassikaline yast on parem, aga see tuleb eraldi paigaldada ja käima läheb ainult tekstimoodis xterm-s käsurealt.
Esmalt vaja paigaldada opensc, kaardilugejate draiverid ja arenduspaketid (*devel) ja muid pakke tuleb edaspidi järjest vajadusel lisada :
| Kood: | | + libeac3, opensc, opensc-bash-completion.
+ pcsc-lite
+ pcsc-lite-devel
+ pcsc-ccid
+ pkcs11-(tool)
| .
Nüüd pcscd teenusele restart:
| Kood: | | % sudo systemctl stop pcscd
% sudo systemctl stop pcscd.socket
% sudo systemctl start pcscd |
... USB-kaardilugeja sisse ja testida, kas tunneb kaarti:
| Kood: | | % opensc-tool -l
# Detected readers (pcsc)
Nr. Card Features Name
0 No Gemalto PC Twin Reader (131F78C1) 00 00
| .
Sisemist lugejat ei näita.
Aga kui ID-kaart sai sisse pandud, siis
| Kood: | | % opensc-tool -l
# Detected readers (pcsc)
Nr. Card Features Name
0 Yes Alcor Micro AU9540 00 00
1 No Gemalto PC Twin Reader (131F78C1) 01 00
| .
Kontrolliks veel:
| Kood: | | % pkcs11-tool -L
Available slots:
Slot 0 (0x0): Alcor Micro AU9540 00 00
token label : annab nime ja muud
======== toimib =======================
| .
Nüüd keerulisem osa ehk allkirjastamiseks ID-kaardi tarkvara ehitamine.
Alliktekstid tuleb tõmmata esmalt GitHub-st (git clone --recursive ...).
(1) * libdigidoc *
Tahab hulka lisasid ja lõpuks cmake lõpetab esimeses postituses näidatud veaga.
CMakeLists.txt failis prooviks sai tehtud netiõpetuste järgi lisandusi, kas ja mis neist lõpuks mõjus, jäi testimata (sest esimene keeruline lahendus tuli isekompileeritud gcc-11 abil):
| Kood: | | cmake_policy(VERSION 3.00)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}")
set(CMAKE_CXX_STANDARD_REQUIRED ON)
include(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
if(COMPILER_SUPPORTS_CXX11)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
elseif(COMPILER_SUPPORTS_CXX0X)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
else()
message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
endif()
% cd cmake
% cmake -D CMAKE_C_COMPILER=gcc-13 ../
% make |
Siis jõuab openssl-i teegini ja lõpetab veaga:
| Kood: | | libdigidoc/libdigidoc/DigiDocOCSP.c:983:37: error: ‘OCSP_R_SERVER_RESPONSE_PARSE_ERROR’ undeclared (first use in this function); did you mean ‘OCSP_R_SERVER_READ_ERROR’?
983 | OCSPerr(OCSP_F_OCSP_SENDREQ_BIO,OCSP_R_SERVER_RESPONSE_PARSE_ERROR); |
Konstant OCSP_R_SERVER_RESPONSE_PARSE_ERROR on puudu. Sarnased OCSP_R_* definitsioonid on failis ocsperr.h.
Paneme netis olevast vanemast ocsperr.h versioonist masina /usr/include/openssl/ocsperr.h faili:
| Kood: | | # define OCSP_R_SERVER_RESPONSE_ERROR 114
# define OCSP_R_SERVER_RESPONSE_PARSE_ERROR 115 |
ja DigiDocOCSP.c päisesse | Kood: | | #include <openssl/ocsperr.h> | .
Nüüd võiks saada ära teha make käsu ja kompileerida paki.
Kui ei tee või ei saa üle sellest postituses alguses näidatud veast, siis tuleb minna keerulist teed ja paigaldada gcc-11 kompilaator.
Ma kompileerisin ise sellest gcc11-11.5.0+git3328-2.1.src.rpm. Kompilaator kompileerimisel tuleb arvestada, kui OpenSUSE 16.0 on jäetud 64-bitiseks (nii nagu ta on) - soovituse selleks gcc-11 make annab ise.
Kui gcc-11 on tehtud ja make installiga paigaldatud, siis saab hakata uuesti proovima libdigidoc-i kompileerimist nii:
| Kood: | | cmake -D CMAKE_C_COMPILER=/usr/local/bin/gcc -D CMAKE_CXX_COMPILER=/usr/local/bin/g++ ../ |
ja päris palju tuleb tegeleda teekide otsinguteedega (lisada viidad ja kaustad, millest gcc-11 ja ld otsivad).
Tuleb jälgida, et millist kompilaatorit kasutatakse väljakutsetel (% gcc --version).
Katsetamisel on vaja cmake kaustast kõik peale "modules" kataloogi ära kustutada enne uut proovimist.
Otsinguteede sättimisel (kui cmake ei tee teste läbi) oli abiks netist leitud soovitused:
| Kood: | | % ld --verbose | grep SEARCH_DIR | tr -s ' ;' \\012 |
ja
| Kood: | | gcc -print-search-dirs | sed '/^lib/b 1;d;:1;s,/[^/.][^/]*/\.\./,/,;t 1;s,:[^=]*=,:;,;s,;,; ,g' | tr \; \\012 | .
Lõpuks saab tehtud :
| Kood: | |
% cd cmake
% cmake -D CMAKE_C_COMPILER=/usr/local/bin/gcc -D CMAKE_CXX_COMPILER=/usr/local/bin/g++ ../
% make
% make install | .
(2) * libdigidocpp *
Vaja on lisapakette paigaldada.
Annab veateate "cannot find -lltdl:"
Lisada tuli libtool (A Tool to Build Shared Libraries)
[100%] Built target digidoc_csharp
# Lõpuks
(3) * digidoc klient4 DigiDoc4-Client *
Tahtis ldap ja QT komplekt ( qt6-base-devel, qt6-svg-devel, qt6-linguist-devel, flatbuffers-devel).
[100%] Linking CXX executable qdigidoc4
[100%] Built target qdigidoc4
Ja prooviks
| Kood: | | % /usr/local/bin/qdigidoc4 |
Läheb käima ja saab allkirjastada dokumendi.
Info lehel annab:
| Kood: | | Keeleseaded: Estonian / et_EE.UTF-8
Rakenduse versioon: 4.10.0.0 (64 bit)
Operatsioonisüsteem: openSUSE Leap 16.0 (x86_64/x86_64)
Protsessor: Intel(R) Core(TM) i5-4210U CPU @ 1.70GHz
Tuum: Linux 6.12.0-160000.8-default #1 SMP PREEMPT_DYNAMIC Thu Dec 11 09:18:13 UTC 2025 (5d31a95) x86_64
Teegid:
QT (6.9.1)
OpenSSL build (OpenSSL 3.5.0 8 Apr 2025)
OpenSSL current (OpenSSL 3.5.0 8 Apr 2025)
libpcsclite1 (2.0.1)
pcsc-lite (2.0.1)
opensc (0.26.1) |
(4) FireFox-i seadistus ja veebis allkirjastamine.
FF-l oli kohe olemas Web-eID (13. juuni 2023, Ver 2.2.1).
Tavaline FF-i kontroll esmalt.
Xterm-s käsurealt teegi olemasolu kontroll:
| Kood: | | % dir /usr/lib64/onepin-opensc-pkcs11.so
lrwxrwxrwx. 1 root root 16 14. jaan 2025 /usr/lib64/onepin-opensc-pkcs11.so -> opensc-pkcs11.so |
FF-i durvaseadete all oli viide /usr/lib64/onepin-opensc-pkcs11.so.
ID-kaart lugejasse ja FF-i seadistuse all katseks <Sisselogimine>.
Leiab üles ID-kaardi ja küsib PIN1. Näitab, et on sees. <Logi välja>.
Nüüd web-eid rakenduse kompileerimine ja paigaldus.
| Kood: | | % cd <alliktekstid/>web-eid-app
% sh test.sh |
... paigaldada on vaja GTest jm.
... ehitab ....
100% tests passed, 0 tests failed out of 4
| Kood: | | % cd build
% make install
[100%] Built target web-eid-tests
Install the project...
-- Install configuration: "RelWithDebInfo"
-- Installing: /usr/local/bin/web-eid
-- Installing: /usr/local/lib64/mozilla/native-messaging-hosts/eu.webeid.json
-- Installing: /usr/local/share/web-eid/eu.webeid.json
-- Installing: /usr/local/etc/chromium/native-messaging-hosts/eu.webeid.json
-- Installing: /usr/local/etc/opt/chrome/native-messaging-hosts/eu.webeid.json
-- Installing: /usr/local/share/google-chrome/extensions/ncibgoaomkmdpilpocfeponihegamlic.json
-- Installing: /usr/local/share/chromium/extensions/ncibgoaomkmdpilpocfeponihegamlic.json
-- Installing: /usr/local/share/applications/web-eid.desktop
-- Installing: /usr/local/share/icons/hicolor/16x16/apps/web-eid.png
-- Installing: /usr/local/share/icons/hicolor/32x32/apps/web-eid.png
-- Installing: /usr/local/share/icons/hicolor/128x128/apps/web-eid.png
-- Installing: /usr/local/share/icons/hicolor/256x256/apps/web-eid.png
-- Installing: /usr/local/share/icons/hicolor/512x512/apps/web-eid.png
|
Prooviks FF-s https://eesti.ee.
= Kasutaja tuvastamine ebaõnnestus.
OpenSUSE Leap 15.5 kogemusest on teada, et mõned failid tuleb pärast käsitsi õigesse kausta kopeerida.
Vaja oli leida <alliktekstid/>web-eid-app kataloogipuust ja paigaldada (kopeerida) käsitsi failid:
| Kood: | | /etc/opt/chrome/native-messaging-hosts/eu.webeid.json
/usr/lib64/mozilla/native-messaging-hosts/eu.webeid.json
/opt/google/chrome/extensions/ncibgoaomkmdpilpocfeponihegamlic.json |
FireFox restart ja prooviks https://eesti.ee
PIN1 toimib.
PIN2 toimib ka pangas.
Tehtud!
|
|
|
|
|
|
|
  |
acrux
Pingviini kasutaja

Vanus: 64
Liitunud: 15.03.2010
Postitused: 36
Asukoht: Tallinn
Distributsioon: KDE Neon

|
|
|
  |
|
|
|
|
Powered by phpBB2 Plus based on phpBB © 2001/7 phpBB Group
|
|