LINUX.ORG.RU

Rpm build REALLY strange trouble.


0

0

Короче раньше собирал rpm-ки - было все нормально. После того как в последний раз нормально собирал нормально вроде ничего с пакетами rpm, rpm-build не делал. Попробовал сегодня собрать - а фиг. Листинг файлов: # ls -al /usr/src/redhat/BUILD/mypackage/bin/ls -rwxr-xr-x 1 root root 45724 Dec 6 15:48 /usr/src/redhat/BUILD/mypackage/bin/ls

# cat /usr/src/redhat/BUILD/mypackage/mypackage.spec Summary: mypackage summary. Name: mypackage Version: 0.0 License: GPL Release: 1 Group: Applications/System BuildArchitectures: i386 BuildRoot: /usr/src/redhat/BUILD/mypackage/

%description No description.

%files /bin/ls

А вот содержание ошибок: Если последняя строка в mypackage.spec пустая, то # rpm -bb mypackage.spec Processing files: mypackage-0.0-1 error: File not found: /usr/src/redhat/BUILD/mypackage/bin/ls

RPM build errors: File not found: /usr/src/redhat/BUILD/mypackage/bin/ls

RPM build errors: File not found: /usr/src/redhat/BUILD/mypackage/bin/ls

А если пустой строки нету ( т. е. последняя строка /bin/ls), то

# rpm -bb mypackage.spec Processing files: mypackage-0.0-1 Finding Provides: (using /usr/lib/rpm/find-provides)... error: line 14: Dependency tokens must begin with alpha-numeric, '_' or '/': /bin/ls error: Failed to find Provides: PreReq: rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires(rpmlib): rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Wrote: /usr/src/redhat/RPMS/i386/mypackage-0.0-1.i386.rpm

Причем вывод

# ldd /usr/src/redhat/BUILD/mypackage/bin/ls libtermcap.so.2 => /lib/libtermcap.so.2 (0x4002c000) libc.so.6 => /lib/i686/libc.so.6 (0x40030000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) # rpm -qRp mypackage-0.0-1.i386.rpm rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1

Т. е. rpm не находит зависимости.

Ну я подумал мало ли что могло ли какие файлы могли перезаписаться в /usr/lib/rpm когда я работал под root-ом. Сделал # rpm -e rpm rpm-build # rm -rf /usr/lib/rpm и установил заново пакеты rpm, rpm-build. Попробовал заново rpm -bb - а то же самое. Я уж и не знаю что тут думать. Версия rpm 4.0.2.

anonymous

<=4.0

У тебя 4.0.2
Ничего не замечаешь?

P.S. Когда работаешь под рутом само ничего не перезаписывается.

jackill ★★★★★
()
Ответ на: комментарий от jackill

Так в чём проблемма? 4.0 <= 4.0.2 Насчет "Когда работаешь под рутом само ничего не перезаписывается." не совсем понял. А то в то в начале я говорил. Просто послений раз я собирал пакеты месяца два назад, и после того может когда пользовался пользовался рутом что нибудь не то сделал (все ж ошибаются). Потому что для меня сейчас всё это мистика: удалил пакет, поставил заведомо искомый пакет, а то же самое. PS. Я вот только что тут подумал: ведь rpm использует m4 файлы, может что-нибудь с m4. Сейчас попробую.

anonymous
()

Тут сабж в более читаемой форме
Rpm build REALLY strange trouble.
Короче раньше собирал rpm-ки - было все нормально. После того как в последний раз
нормально собирал нормально вроде ничего с пакетами rpm, rpm-build не делал.
Попробовал сегодня собрать - а фиг.
Листинг файлов:
# ls -al  /usr/src/redhat/BUILD/mypackage/bin/ls
-rwxr-xr-x    1 root     root        45724 Dec  6 15:48 /usr/src/redhat/BUILD/mypackage/bin/ls

# cat /usr/src/redhat/BUILD/mypackage/mypackage.spec
Summary:  mypackage summary.
Name:     mypackage
Version:  0.0
License:  GPL
Release:  1
Group:    Applications/System
BuildArchitectures: i386
BuildRoot: /usr/src/redhat/BUILD/mypackage/

%description
No description.

%files
/bin/ls

А вот содержание ошибок:
Если последняя строка в mypackage.spec пустая, то
# rpm -bb mypackage.spec
Processing files: mypackage-0.0-1
error: File not found: /usr/src/redhat/BUILD/mypackage/bin/ls


RPM build errors:
    File not found: /usr/src/redhat/BUILD/mypackage/bin/ls


RPM build errors:
    File not found: /usr/src/redhat/BUILD/mypackage/bin/ls

А если пустой строки нету ( т. е. последняя строка /bin/ls), то

# rpm -bb mypackage.spec
Processing files: mypackage-0.0-1
Finding  Provides: (using /usr/lib/rpm/find-provides)...
error: line 14: Dependency tokens must begin with alpha-numeric, '_' or '/': /bin/ls
error: Failed to find Provides:
PreReq: rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Requires(rpmlib): rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Wrote: /usr/src/redhat/RPMS/i386/mypackage-0.0-1.i386.rpm

Причем вывод

# ldd /usr/src/redhat/BUILD/mypackage/bin/ls
        libtermcap.so.2 => /lib/libtermcap.so.2 (0x4002c000)
        libc.so.6 => /lib/i686/libc.so.6 (0x40030000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
# rpm -qRp mypackage-0.0-1.i386.rpm
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(CompressedFileNames) <= 3.0.4-1

Т. е. rpm не находит зависимости.

Ну я подумал мало ли что могло ли какие файлы могли перезаписаться в /usr/lib/rpm
когда я работал под root-ом. Сделал
# rpm -e rpm rpm-build
# rm -rf /usr/lib/rpm
и установил заново пакеты rpm, rpm-build. Попробовал заново rpm -bb - а то же самое.
Я уж и не знаю что тут думать. Версия rpm 4.0.2.


anonymous
()
Ответ на: комментарий от anonymous

Туплю я что-то под вечер. И в самом деле 4.0.2 <= 4.0 Но проблемма не снимается, т. к. пакет собирается тем же rpm. Т. е. ставятся пакеты rpm-4.0.2-8.i386.rpm rpm-build-4.0.2-8.i386.rpm.

anonymous
()
Ответ на: комментарий от anonymous

Вообще что-то такое у меня было с началом строки, но хоть убейся, как
правил - не помню.

Раздербань любой спек и посмотри как народ зависимости пишет

jackill ★★★★★
()
Ответ на: комментарий от jackill

Spec на 99.9% правильный. У меня специально для сборки rpm есть template куда я вписываю что надо. Точно таким образом до этого я собирал пакетов 30-40 с этим spec-ом и этим же билдом rpm.

Если кто может пусть попробует собрать rpm, приведённый у меня в примере ( там используется только один файл /bin/ls), и посмотреть какая разница будет если есть и нету последней строки.

anonymous
()
Ответ на: комментарий от anonymous

Цифру 99.9% надо заменить на 100%. Spec у меня правильный. Поробовал собрать
оригинальный редхатовский ppp-2.4.0-2.src.rpm с помощью rpm --rebuild
( думаю что в редхате spec-файлы уж правильно умеют писать).
Вот что написало:

# rpm --rebuild ppp-2.4.0-2.src.rpm
...........................................
+ exit 0
Finding  Provides: (using /usr/lib/rpm/find-provides)...
error: line 183: Dependency tokens must begin with alpha-numeric, '_' or '/':

error: Failed to find Provides:
PreReq: rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Requires(rpmlib): rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Requires: glibc >= 2.0.6 /etc/pam.d/system-auth
Wrote: /usr/src/redhat/RPMS/i386/ppp-2.4.0-2.i386.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.70295
...........................................

Т. е. то же самое что у меня.
А вот какие зависимости:
# rpm -qRp /usr/src/redhat/RPMS/i386/ppp-2.4.0-2.i386.rpm
glibc >= 2.0.6
/etc/pam.d/system-auth
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(CompressedFileNames) <= 3.0.4-1
Т. е. хрен rpm находит зависимости.

anonymous
()
Ответ на: комментарий от jackill

Какой? От того тестового пакета который я использую приведён выше. От pppd очень длинный чтоб тут постить, да и смыла нету, т. к. все те же ошибки проявляются в spec приведённом выше.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.