Автор Тема: [РЕШЕНО] Сборка rpm-пакета: "не найден encoding.pm" и "Python>=2.5"  (Прочитано 3345 раз)

Оффлайн Denjs

  • Участник
  • *
  • Сообщений: 9
Собираю пакет для альта.

Cтолкнулся с проблемой, что когда я добавляю в секцию спека .pl файл - перловый скрипт
то система упаковки начинает искать зависимости для перлового скрипта не находит encoding.pm  ?!
в итоге сборка прекращается. Если его не включать в "%files" то он и не попадает в пакет... а он нужен.

Что делать?! вот куски логов... что делать с этим...? perl в зависимостях стоит....

Processing files: anykiosk-0.0.2.20101210-alt1
Finding Provides (using /usr/lib/rpm/find-provides)
Executing(Provides): /bin/sh -e /usr/src/tmp/rpm-tmp.38013
+ umask 022
+ /bin/mkdir -p /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ /usr/lib/rpm/find-provides
find-provides: running scripts (alternatives,lib,pam,perl,pkgconfig,python,shell)
+ exit 0
Finding Requires (using /usr/lib/rpm/find-requires)
Executing(Requires): /bin/sh -e /usr/src/tmp/rpm-tmp.439
+ umask 022
+ /bin/mkdir -p /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ /usr/lib/rpm/find-requires
find-requires: running scripts (files,lib,pam,perl,pkgconfig,pkgconfiglib,python,rpmlib,shebang,shell,static
,symlinks)
Can't locate encoding.pm in @INC (@INC contains: /usr/lib/rpm /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl5 /usr/share/perl5 /etc/perl5 /usr/lib/perl5/vendor_perl /usr/local/lib/perl/5.12.2 /usr/local/share/perl/5.12.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl5 /usr/share/perl5 /etc/perl5 /usr/lib/perl5/vendor_perl .) at /usr/src/tmp/anykiosk-buildroot/usr/share/anykiosk/moz-byteshift.pl line 19.
BEGIN failed--compilation aborted at /usr/src/tmp/anykiosk-buildroot/usr/share/anykiosk/moz-byteshift.pl line 19.
# perl(encoding.pm) at line 19 (depth 3) not loaded at BEGIN SKIP
# perl(PerlIO/encoding.pm) at line 19 (depth 5) not loaded at BEGIN SKIP
Encode.pm not available at /usr/src/tmp/anykiosk-buildroot/usr/share/anykiosk/moz-byteshift.pl line 19
# /usr/src/tmp/anykiosk-buildroot/usr/share/anykiosk/moz-byteshift.pl: deparse failed. isPerl=0.0328596802841918.
find-requires: ERROR: /usr/lib/rpm/perl.req failed
error: /bin/sh failed
error: Failed to find Requires


RPM build errors:
/bin/sh failed
Failed to find Requires
Command exited with non-zero status 1
1.34user 1.78system 0:05.42elapsed 57%CPU (0avgtext+0avgdata 0maxresident)k
11744inputs+344outputs (39major+76063minor)pagefaults 0swaps
hsh-rebuild: rebuild of `pkg.tar' failed.

вот спек
#spec for building rpm for alt-linux with gear

%define ver 0.0.2
%define reldate 20101210

Name: anykiosk
Version: %ver.%reldate
Release: alt1

Summary: Easy kiosk mode tuning for various programs
License: GPL
Group: System/Configuration/Other

Url: http://unixforum.org/index.php?showtopic=117466
Packager: Denjs <denjs a users.berlios.de>

Source: anykiosk-0.0.2.20101210.tar.gz

BuildArch: noarch
BuildPreReq: python python-module-PyQt4 perl perl-PerlIO perl-PerlIO-Util
#Requires:
#python-module-setuptools

%description
AnyKiosk - a Point-and-Click tool for system administrators
to enable KIOSK features for various software.
0.0.2beta release includes only FireFox 3.6 plugin.

%description -l ru_RU.UTF-8
AnyKiosk - утилита настройки различных программ в режим киоска -
режим с заблокированными от изменения настройками и ограниченной
функциональностью. Просто отметье галочками нужные программы и
нажмите "применить".
Версия 0.0.2 поставляется с плагином для FireFix 3.6.

%prep
%setup -q

%build
#python_build

%install
#python_install
%make_install DESTDIR=%buildroot install


%files
/usr/share/anykiosk/tmp
/usr/share/anykiosk/*.py
#/usr/share/anykiosk/moz-byteshift.pl
/usr/bin/anykiosk



%changelog
* Sun Dec 12 2010 Denjs <denjs a users.berlios.de> 0.0.2.20101210-alt1
&#91; Denjs ]
- Initial build for Sisyphus
  + firefox 3.6  plugin

вот при попытке раскомментировать этот самый /usr/share/anykiosk/moz-byteshift.pl и вылазит непонятно что...
собираю по этой инструкции
« Последнее редактирование: 14.12.2010 20:23:05 от Denjs »

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Re: Сборка rpm-пакета: Can't locate encoding.pm
« Ответ #1 : 14.12.2010 12:28:38 »
Установить encoding.pm

Оффлайн Denjs

  • Участник
  • *
  • Сообщений: 9
Re: Сборка rpm-пакета: Can't locate encoding.pm
« Ответ #2 : 14.12.2010 12:46:09 »
Установить encoding.pm
)))
это не я - это хешер не может его установить а потом найти...
1) какой это пакет?
2) как указать зависимость в спеке? потому что сборка делается с помощью хешера - и мне лично пакет не нужен -он видимо у меня стоит, но вот в окружении хешера которое создается при сборке пакета - видимо этого самого модуля перла Encoding - нет.

Что далеать?

Кто может подсказать как хотя бы отключить проверку зависимостей? потому что все что надо - оно уже стоит в стандартном комплекте, и мне вот зависимости ненужны (да , это крамола, но сейчас надо _срочно_ собрать пакет который будет работать в стандартном дефолтном окружении)....

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Re: Сборка rpm-пакета: Can't locate encoding.pm
« Ответ #3 : 14.12.2010 12:54:50 »
Хешер ставит то, что прописано в BuildReq.
Запустите скрипт buildreq (без хэшера, в основной системе, где всё собирается) и проставьте нужные зависимости.

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Re: Сборка rpm-пакета: Can't locate encoding.pm
« Ответ #4 : 14.12.2010 12:58:53 »
Если вы спешите, то можете и без хэшера собрать - хэшер нужен только для "зачистки пакета".

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Re: Сборка rpm-пакета: Can't locate encoding.pm
« Ответ #5 : 14.12.2010 13:02:31 »
Через
rpm -ba имя_спека

Оффлайн Denjs

  • Участник
  • *
  • Сообщений: 9
Re: Сборка rpm-пакета: Can't locate encoding.pm
« Ответ #6 : 14.12.2010 14:29:11 »
так.... спасибо всем откликнувшимся.

Проблема с encoding.pm решена - перебрал что у меня установлено в системе через Synaptic
(buildrec вываливался с ошибкой после попытки распаковки архива -источника... или я не разобрался с ним....)
в итоге добавил в spec строчку
BuildPreReq: perl-Encode и оно собралось.

Но теперь другая проблема (можно тут продолжить?)
система сборки выставляет в требования последние версии Python (2.6) которые есть в сизифусе
а мне нужно явно заставить его требовать от 2.5.


Обновлять питон не вариант.  

В spec стоит строчка
BuildPreReq: python >= 2.5но система сборки выставляет упорно 2.6 в итоге я не могу его поставить на Alt-Linux Школьный Lite 5.0.2
В конце сборки выдается
Цитировать
Requires: /bin/bash, /usr/bin/python, perl(Getopt/Std.pm), perl(PerlIO/encoding.pm), perl(encoding.pm), python2.6(PyQt4), python2.6(os)

Как заставить её требовать 2.5 и старше, а не 2.6 ?
« Последнее редактирование: 14.12.2010 14:39:11 от Denjs »

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
buildreq работает со spec-файлом, он не умеет ничего разорхивировать. Он просто запускает rpm -bi и трассирует к каким файлам обращается rpm при сборке пакета, а затем прописывает в спек BuildReq

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Собирайте локально. Или настраиваете систему сборки на p5, а не на Сизиф (что стоит по-умолчанию).

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
Re: Сборка rpm-пакета: Can't locate encoding.pm
« Ответ #9 : 14.12.2010 18:53:02 »
Как заставить её требовать 2.5 и старше, а не 2.6 ?
Собирать надо в том окружении, в котором планируется эксплуатация. Проблема с Python, скорее всего, будет не единственной, если пакет в Сизифе собирать, а пытаться поставить в p5. Тут и в rpm изменения, и какие-то библиотеки уже сильно поменялись.

Оффлайн Denjs

  • Участник
  • *
  • Сообщений: 9
Да. я уже понял... заменил сизиф на 5.1 бранч - и все зашуршало - собралось а потом поставилось.

Почему-то в начале не устанавливалось, но похоже я сам накосячил в стиле "забыл где-то там синаптик выключить".

В общем все собралось и вроде работает. Спасибо всем за советы и участие...
результаты можно получить на http://developer.berlios.de/projects/anykiosk/

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
Да. я уже понял... заменил сизиф на 5.1 бранч - и все зашуршало - собралось а потом поставилось.
И, даже, с этим надо осторожно: у 5.1 и p5 тоже накопились различия, не всё получается просто скопировать.