Автор Тема: Сборка cprocsp-drv-64-4.0.0-4.src.rpm с помощью hasher  (Прочитано 1186 раз)

Оффлайн Vostok

  • Начинающий
  • *
  • Сообщений: 2
Здравствуйте!
Пытаюсь настроить сборку драйверов КриптоПро 4.0 R2 с помощью hasher, но столкнулся с проблемой:
при выполнении команды
hsh -v --no-sisyphus-check --eager-cleanup --apt-config=/home/zoadmin/apt/apt.conf ~/hasher /home/zoadmin/linux-amd64/cprocsp-drv-64-4.0.0-4.src.rpmпоявляется ошибка, что не установлены зависимости (в source листе добавил в качестве репозитория папку с файлами, скачанными с сайта криптопро

mkdir: created directory '/usr/src/tmp'
mkdir: created directory '/usr/src/RPM'
mkdir: created directory '/usr/src/RPM/BUILD'
mkdir: created directory '/usr/src/RPM/SOURCES'
mkdir: created directory '/usr/src/RPM/SPECS'
mkdir: created directory '/usr/src/RPM/SRPMS'
mkdir: created directory '/usr/src/RPM/RPMS'
mkdir: created directory '/usr/src/RPM/RPMS/noarch'
hsh-initroot: Created RPM build directory tree.
hsh-rebuild: changed working directory to `/home/zoadmin/hasher'
hsh-rebuild: Created rebuild script.
«/home/zoadmin/linux-amd64/cprocsp-drv-64-4.0.0-4.src.rpm» -> «chroot/.in/cprocsp-drv-64-4.0.0-4.src.rpm»
mkdir: created directory '/usr/src/in'
mkdir: created directory '/usr/src/in/srpm'
'cprocsp-drv-64-4.0.0-4.src.rpm' -> '/usr/src/in/srpm/cprocsp-drv-64-4.0.0-4.src.rpm'
hsh-rebuild: cprocsp-drv-64-4.0.0-4.src.rpm: installed source file.
hsh-rebuild: cprocsp-drv-64-4.0.0-4.src.rpm: fetched build dependencies.
hsh-rebuild: cprocsp-drv-64-4.0.0-4.src.rpm: calculated build dependencies:
+ export -n target
+ exec time rpmbuild --rebuild --target=x86_64 cprocsp-drv-64-4.0.0-4.src.rpm
Installing cprocsp-drv-64-4.0.0-4.src.rpm
Building target platforms: x86_64
Building for target x86_64
Executing(%prep): /bin/sh -e /usr/src/tmp/rpm-tmp.15145
+ umask 022
+ /bin/mkdir -p /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ rm -rf cprocsp-drv-64-3.14.59-std-def-alt1.M70C.6-4.0.0
+ /bin/mkdir -p cprocsp-drv-64-3.14.59-std-def-alt1.M70C.6-4.0.0
+ cd cprocsp-drv-64-3.14.59-std-def-alt1.M70C.6-4.0.0
+ echo 'Source #0 (cprocsp-drv-64.src.tar.gz):'
Source #0 (cprocsp-drv-64.src.tar.gz):
+ /bin/gzip -dc /usr/src/RPM/SOURCES/cprocsp-drv-64.src.tar.gz
+ /bin/tar -xf -
+ /bin/chmod -c -Rf u+rwX,go-w .
+ exit 0
Executing(%build): /bin/sh -e /usr/src/tmp/rpm-tmp.15145
+ umask 022
+ /bin/mkdir -p /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ set +x
+ cd cprocsp-drv-64-3.14.59-std-def-alt1.M70C.6-4.0.0
+ set +x
warning: package lsb-cprocsp-devel is not installed
Build requires lsb-cprocsp-devel (not installed)
error: Bad exit status from /usr/src/tmp/rpm-tmp.15145 (%build)


RPM build errors:
    Bad exit status from /usr/src/tmp/rpm-tmp.15145 (%build)
Command exited with non-zero status 1
0.04user 0.05system 0:00.08elapsed 114%CPU (0avgtext+0avgdata 2380maxresident)k
0inputs+3416outputs (0major+11583minor)pagefaults 0swaps
hsh-rebuild: rebuild of `cprocsp-drv-64-4.0.0-4.src.rpm' failed.

После этого командой hsh-install устанавливаю все зависимости, и :
1) если перезапускать сборку с ключом eager-cleanup, то всё переустанавливается с нуля и зависимостей нет
2)  а если зайду в hsh-shell и выполню команды buildreq ~/RPM/SPECS/*.spec и  cat /usr/src/RPM/SPECS/cprocsp-drv-64.spec то получаю следующее

[builder@localhost .in]$ buildreq ~/RPM/SPECS/*.spec
Executing(%prep): /bin/sh -e /usr/src/tmp/rpm-tmp.23746
+ umask 022
+ /bin/mkdir -p /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ rm -rf cprocsp-drv-64-3.14.59-std-def-alt1.M70C.6-4.0.0
+ /bin/mkdir -p cprocsp-drv-64-3.14.59-std-def-alt1.M70C.6-4.0.0
+ cd cprocsp-drv-64-3.14.59-std-def-alt1.M70C.6-4.0.0
+ echo 'Source #0 (cprocsp-drv-64.src.tar.gz):'
Source #0 (cprocsp-drv-64.src.tar.gz):
+ /bin/gzip -dc /usr/src/RPM/SOURCES/cprocsp-drv-64.src.tar.gz
+ /bin/tar -xf -
+ /bin/chmod -c -Rf u+rwX,go-w .
+ exit 0
Executing(%build): /bin/sh -e /usr/src/tmp/rpm-tmp.56668
+ umask 022
+ /bin/mkdir -p /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ set +x
+ cd cprocsp-drv-64-3.14.59-std-def-alt1.M70C.6-4.0.0
+ set +x
lsb-cprocsp-devel ok
+ set +x
cprocsp-drv-devel ok
+ set +x
lsb-cprocsp-rdr-64 ok
+ set +x
/opt/cprocsp/bin/amd64/cpverify is ok (hash 94289F75F58FB78405FDC73BB213B3B83A8F283875945CFF7E16ED84E01FDDA2)
+ bash build_drv.sh 3.14.59-std-def-alt1.M70C.6
Cannot find any suitable kernel headers
error: Bad exit status from /usr/src/tmp/rpm-tmp.56668 (%build)


RPM build errors:
    Bad exit status from /usr/src/tmp/rpm-tmp.56668 (%build)


Если выполнить спек, получаю следующее:
[builder@localhost .in]$ cat /usr/src/RPM/SPECS/cprocsp-drv-64.spec
# XXX: Linux XP *has* dpkg but uses rpm database
# Most other systems which *have* dpkg use dpkg as the packet manager
%define is_dpkg %(test ! -f /etc/lxp-release && which dpkg >/dev/null 2>&1 && echo 1||echo 0)

%if %{!?kernel_release:1}%{?kernel_release:0}
%define kernel_release %(uname -r)
%endif
%define is_altlinux %(test -e /etc/altlinux-release && cat /etc/altlinux-release |grep -v 4.0 > /dev/null && echo 1 || echo 0)
%if %is_altlinux
%brp_strip_none *
%else
%define __spec_install_post /usr/lib/rpm/brp-compress /usr/lib/rpm/brp-strip-comment-note %{nil}
%endif
License: Crypto-Pro
Version: 4.0.0
Release: 4
Buildarch: x86_64
URL: http://www.cryptopro.ru/
Packager: CryptoPro Ltd. <support@cryptopro.ru>
%if %{!?kernel_name:1}%{?kernel_name:0}
%define kernel_name %{kernel_release}
%endif
%if %is_dpkg
%define check_pkg() set +x;if dpkg -l %1 >/dev/null;then echo "%1 ok";else echo "Build requires %1 (not installed)";exit 1;fi;set -x;
%else
%define check_pkg() set +x;if rpm -qi %1 >/dev/null;then echo "%1 ok";else echo "Build requires %1 (not installed)";exit 1;fi;set -x;
%endif
%define check_cpverify() set +x;CPV=/opt/cprocsp/bin/amd64/cpverify;HASH=`$CPV -mk $CPV`;if test $? = 0 && $CPV $CPV $HASH >/dev/null;then echo "$CPV is ok (hash $HASH)";else echo "$CPV is bugged";exit 1;fi;set -x;
Summary: LKM for linux. Build 9842.
Name: cprocsp-drv-64-%{kernel_release}
BuildRoot: %{_tmppath}/%{name}-root
Group: Development/Libraries
Requires: lsb-cprocsp-rdr-64
# BuildRequires: lsb-cprocsp-rdr-64 lsb-cprocsp-devel cprocsp-drv-devel
Source: cprocsp-drv-64.src.tar.gz

%prep
%setup -q -c

%description

This is Loadable Kernel Module for linux.

%build
%check_pkg lsb-cprocsp-devel
%check_pkg cprocsp-drv-devel
%check_pkg lsb-cprocsp-rdr-64
%check_cpverify
bash build_drv.sh %{kernel_name}

%install
rm -rf ${RPM_BUILD_ROOT}
mod_dir=/lib/modules/%{kernel_release}/kernel/crypto
hash_dir=/opt/cprocsp/lib/hashes
mkdir -p $RPM_BUILD_ROOT/$mod_dir
mkdir -p $RPM_BUILD_ROOT/$hash_dir
hash_name=cprocsp-drv-64-%{kernel_release}
if test -f drvcsp.ko; then
  install -m644 drvcsp.ko $RPM_BUILD_ROOT/$mod_dir
  mod_path=$mod_dir/drvcsp.ko
else
  install -m644 drvcsp.o $RPM_BUILD_ROOT/$mod_dir
  mod_path=$mod_dir/drvcsp.o
fi
echo "/$mod_path `/opt/cprocsp/bin/amd64/cpverify -mk $RPM_BUILD_ROOT/$mod_path`" >$hash_name
install -m 644 $hash_name $RPM_BUILD_ROOT/$hash_dir

%clean
rm -rf ${RPM_BUILD_ROOT}

%pre
ALTLINUX_DEPS_WORKAROUND=/etc/init.d/cprocsp; $ALTLINUX_DEPS_WORKAROUND stop_check force

%post
/sbin/depmod -aq

%preun
#rm /lib/modules/`uname -r`/kernel/drivers/crypto/drvcsp.ko
/sbin/modprobe -r drvcsp
depmod -aq


%files
%defattr(-,root,root,0755)
/lib/modules/*/*/*
/opt/cprocsp/lib/hashes/*

Подскажите, в каком месте я ошибаюсь или чего-то не делаю.

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 908
    • Домашняя страница
    • Email
Читайте про сборку модулей ядра на altlinux.org.
Андрей Черепанов (cas@)

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 6 222

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 246
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
/opt/cprocsp/lib/hashes/*
Вроде для /opt не должно собираться

Оффлайн Vostok

  • Начинающий
  • *
  • Сообщений: 2
Модули ядра добавил, теперь столкнулся с ошибкой
[builder@localhost BUILD]$ rpm -ba /usr/src/RPM/SPECS/cprocsp-drv-64.spec cprocsp-drv-64-3.14.59-std-def-alt1.M70C.6-4.0.0/
Executing(%prep): /bin/sh -e /usr/src/tmp/rpm-tmp.52089
+ umask 022
+ /bin/mkdir -p /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ rm -rf cprocsp-drv-64-3.14.59-std-def-alt1.M70C.6-4.0.0
+ /bin/mkdir -p cprocsp-drv-64-3.14.59-std-def-alt1.M70C.6-4.0.0
+ cd cprocsp-drv-64-3.14.59-std-def-alt1.M70C.6-4.0.0
+ echo 'Source #0 (cprocsp-drv-64.src.tar.gz):'
Source #0 (cprocsp-drv-64.src.tar.gz):
+ /bin/gzip -dc /usr/src/RPM/SOURCES/cprocsp-drv-64.src.tar.gz
+ /bin/tar -xf -
+ /bin/chmod -c -Rf u+rwX,go-w .
+ BuildRequires: lsb-cprocsp-devel lsb-cprocsp-rdr-64
/usr/src/tmp/rpm-tmp.52089: line 101: BuildRequires:: command not found
error: Bad exit status from /usr/src/tmp/rpm-tmp.52089 (%prep)


RPM build errors:
    Bad exit status from /usr/src/tmp/rpm-tmp.52089 (%prep)
Он пытается выполнить команды lsb-cprocsp-devel lsb-cprocsp-rdr-64 и не может их найти?

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 6 222
СПТ же вроде с поддержкой продается? Там ничего не могут ответить?

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 908
    • Домашняя страница
    • Email
А что разработчики дистрибутива будут отвечать по поводу стороннего закрытого продукта, который к тому же не используют готовый, а пытаются пересобрать?
Только мне одному кажется, что это вопрос КриптоПро?
Андрей Черепанов (cas@)

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 6 222
А что разработчики дистрибутива будут отвечать по поводу стороннего закрытого продукта, который к тому же не используют готовый, а пытаются пересобрать?
Только мне одному кажется, что это вопрос КриптоПро?
ну вы заявляете что КриптоПро у вас работает, кто там из вас неправ это разбирайтесь, но как заводится техподдержка должна ответить.
В противном случае напишите большими буквами на сайте продаж СПТ - никакой сторонний софт не поддерживается.

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 908
    • Домашняя страница
    • Email
КриптоПро работает. Но за 10 лет я ни разу не слышал, чтобы кому-то понадобилось его пересобирать.
Андрей Черепанов (cas@)

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 908
    • Домашняя страница
    • Email
Впрочем, техподдержка разберётся, если туда будет запрос.
Андрей Черепанов (cas@)