Автор: Александр Лавник Автор: nsknewbie Добрый день. Отправьте, пожалуйста, и мне этот devel пакет на почту.
Здравствуйте.
Пакеты выложены
сюда.
Здравствуйте, коллеги. Прошу помочь со сборкой.
Получаю ошибки при запуске сборке.
Полный результат выполнения под спойлером.
g++ -DLINUX -DUNIX -DHAVE_LIMITS_H -D_COMPACT -DHAVE_STDINT_H -I/opt/cprocsp/include/ -I/opt/cprocsp/include/cpcsp -I/opt/cprocsp/include/pki -I/opt/cprocsp/include/pki/atl -I/opt/cprocsp/include/pki/cppcades -I/opt/cprocsp/include/pki/cplib -I/home/kirill/projects/simple/php-7.4.15 -I/home/kirill/projects/simple/php-7.4.15/main -I/home/kirill/projects/simple/php-7.4.15/Zend -I/home/kirill/projects/simple/php-7.4.15/TSRM -DSIZEOF_VOID_P=8 -fPIC -DPIC -c -o PHPCadesCPSigners.o PHPCadesCPSigners.cpp
In file included from stdafx.h:39,
from PHPCadesCPSigners.cpp:1:
/opt/cprocsp/include/cpcsp/CSP_WinDef.h:484:152: note: #pragma message: Your application will require at least CryptoPro CSP 4.0 R3. You can use LEGACY_FORMAT_MESSAGE_IMPL to support older versions.
484 | tion will require at least CryptoPro CSP 4.0 R3. You can use LEGACY_FORMAT_MESSAGE_IMPL to support older versions.")
| ^
In file included from /usr/include/c++/9/algorithm:62,
from /usr/include/boost/smart_ptr/shared_ptr.hpp:39,
from /usr/include/boost/shared_ptr.hpp:17,
from /opt/cprocsp/include/pki/atl/atlcrypt2.h:20,
from stdafx.h:53,
from PHPCadesCPSigners.cpp:1:
/usr/include/c++/9/bits/stl_algo.h: In function ‘_RandomAccessIterator std::__sample(_InputIterator, _InputIterator, std::input_iterator_tag, _RandomAccessIterator, std::random_access_iterator_tag, _Size, _UniformRandomBitGenerator&&)’:
/usr/include/c++/9/bits/stl_algo.h:5762:21: error: expected ‘,’ before ‘++’ token
5762 | __out[__sample_sz++] = *__first;
| ^~
| ,
/usr/include/c++/9/bits/stl_algo.h:5762:21: error: expected identifier before ‘++’ token
5762 | __out[__sample_sz++] = *__first;
| ^~
/usr/include/c++/9/bits/stl_algo.h: In lambda function:
/usr/include/c++/9/bits/stl_algo.h:5762:25: error: expected ‘{’ before ‘=’ token
5762 | __out[__sample_sz++] = *__first;
| ^
/usr/include/c++/9/bits/stl_algo.h: In lambda function:
/usr/include/c++/9/bits/stl_algo.h:5770:17: error: expected ‘{’ before ‘=’ token
5770 | __out[__k] = *__first;
| ^
/usr/include/c++/9/bits/stl_algo.h: In function ‘_OutputIterator std::__sample(_ForwardIterator, _ForwardIterator, std::forward_iterator_tag, _OutputIterator, _Cat, _Size, _UniformRandomBitGenerator&&)’:
/usr/include/c++/9/bits/stl_algo.h:5810:14: error: expected primary-expression before ‘=’ token
5810 | *__out++ = *__first;
| ^
/usr/include/c++/9/bits/stl_algo.h:5821:14: error: expected primary-expression before ‘=’ token
5821 | *__out++ = *__first;
| ^
/usr/include/c++/9/bits/stl_algo.h:5834:15: error: expected primary-expression before ‘=’ token
5834 | *__out++ = *__first;
| ^
In file included from /usr/include/x86_64-linux-gnu/bits/statx.h:31,
from /usr/include/x86_64-linux-gnu/sys/stat.h:446,
from /home/kirill/projects/simple/php-7.4.15/Zend/zend_stream.h:26,
from /home/kirill/projects/simple/php-7.4.15/Zend/zend.h:38,
from /home/kirill/projects/simple/php-7.4.15/main/php.h:33,
from stdafx.h:92,
from PHPCadesCPSigners.cpp:1:
/usr/include/linux/stat.h: At global scope:
/usr/include/linux/stat.h:59:2: error: declaration does not declare anything [-fpermissive]
59 | __s32 __reserved;
| ^~~~~
In file included from /opt/cprocsp/include/pki/cppcades/CPPCadesCPCRL.h:5,
from /opt/cprocsp/include/pki/cppcades/CPPCadesCPStore.h:6,
from /opt/cprocsp/include/pki/cppcades/CPPCadesCPCertificate.h:11,
from /opt/cprocsp/include/pki/cppcades/CPPCadesCPSigner.h:6,
from PHPCadesCPSigner.h:4,
from PHPCadesCPSigners.cpp:3:
/opt/cprocsp/include/pki/asn1/Extension.h:481:10: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
481 | std::auto_ptr<CDateTime> notBefore_;
| ^~~~~~~~
In file included from /usr/include/c++/9/memory:80,
from stdafx.h:35,
from PHPCadesCPSigners.cpp:1:
/usr/include/c++/9/bits/unique_ptr.h:53:28: note: declared here
53 | template<typename> class auto_ptr;
| ^~~~~~~~
In file included from /opt/cprocsp/include/pki/cppcades/CPPCadesCPCRL.h:5,
from /opt/cprocsp/include/pki/cppcades/CPPCadesCPStore.h:6,
from /opt/cprocsp/include/pki/cppcades/CPPCadesCPCertificate.h:11,
from /opt/cprocsp/include/pki/cppcades/CPPCadesCPSigner.h:6,
from PHPCadesCPSigner.h:4,
from PHPCadesCPSigners.cpp:3:
/opt/cprocsp/include/pki/asn1/Extension.h:482:10: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
482 | std::auto_ptr<CDateTime> notAfter_;
| ^~~~~~~~
In file included from /usr/include/c++/9/memory:80,
from stdafx.h:35,
from PHPCadesCPSigners.cpp:1:
/usr/include/c++/9/bits/unique_ptr.h:53:28: note: declared here
53 | template<typename> class auto_ptr;
| ^~~~~~~~
make: *** [Makefile.unix:30: PHPCadesCPSigners.o] Error 1
Как ставил:
ОС Ubuntu 20.04.1 LTS (WSL 2)
PHP 7.4.15
1. Установил libboost
Код:
apt -y install libboost-dev;
2. Скачал КриптоПро CSP 5.0 для Linux x64 отсюда
https://www.cryptopro.ru...1455/linux-amd64_deb.tgzустановил
3. Скачал КриптоПро ЭЦП SDK 2.0 отсюда
https://www.cryptopro.ru...cades_linux_amd64.tar.gzУстановил из него 2 пакета
Код:
dpkg -i cprocsp-pki-cades-64_2.0.14071-1_amd64.deb;
dpkg -i cprocsp-pki-phpcades-64_2.0.14071-1_amd64.deb;
4. Скачал архив csp5devel.tgz из этой темы
Установил пакет
Код:
dpkg -i lsb-cprocsp-devel_5.0.11863-5_all.deb;
5. Скачал исходники php 7.4.15. Прописал путь к ним в /opt/cprocsp/src/phpcades/Makefile.unix
6. В директории с исходниками запустил ./configure
Оказалось, что мне не хватает libxml2, pkg-config и sqlite3. Установил
Код:
apt -y install libxml2 libxml2-dev;
apt -y install pkg-config;
apt -y install sqlite3 libsqlite3-dev;
7. Скачал патч для php7 отсюда
https://www.cryptopro.ru...s/php7_support.patch.zipУстановил
Код:
cd /opt/cprocsp/src/phpcades/
patch -p0 < ./php7_support.patch
Ошибок не было
8. Запустил сборку расширения
Код:
cd /opt/cprocsp/src/phpcades
eval `/opt/cprocsp/src/doxygen/CSP/../setenv.sh --64`; make -f Makefile.unix