LINUX.ORG.RU

Учусь Opensuse Build System. Помогите исправить ошибку

 ,


0

1

Учусь на простеньких пакетах. Начал с игры, зависящей только от SDL. Всё успешно собралось, а после сборки:

ERROR: translation is neither enabled nor disabled for this file: /var/tmp/syobon-action-1.0_rc2-build//usr/share/applications/syobon-action.desktop 
ERROR: Icon file not installed: /var/tmp/syobon-action-1.0_rc2-build//usr/share/applications/syobon-action.desktop

Значки я делал сам, .desktop-файл тоже. Посмотрите, пожалуйста, что там не так?

★★★★★

Последнее исправление: maxcom (всего исправлений: 1)

Ответ на: комментарий от dinn

ifarch сейчас сделаю, спасибо. Насчёт значков. Так как значок монохромный, я положил его в директорию locolor, а не hicolor. Может поэтому?

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

Ошибку с иконками победил! Первая осталась.

[Desktop Entry]
Categories=Game;ActionGame;
Encoding=UTF-8
Type=Application
Name=Syobon Action
GenericName=A hard game
Comment=A hard game with otsylki k Supermario and Ghosts'n'Goblins
Exec=syobon-action
Icon=syobon-action
ZenitharChampion ★★★★★
() автор топика
Ответ на: комментарий от dinn

Воткнул «%suse_update_desktop_file -n syobon-action», и всё собралось. Спасибо! А сборку RPM для CentOS убрал, потому что rpmbuild ищет Makefile, которого нет. А для SUSE не ищет.

ZenitharChampion ★★★★★
() автор топика

Да вы там не охренели?

syobon-action-1.0_rc2-10.1.x86_64.rpm: directories not owned by a package:
- /usr/share/icons/hicolor
- /usr/share/icons/hicolor/16x16
- /usr/share/icons/hicolor/32x32

Upd: починил.

ZenitharChampion ★★★★★
() автор топика
Последнее исправление: ZenitharChampion (всего исправлений: 1)

Попробуй еще локально делать rpmlint твой.spec

Это валидатор. Некоторые ошибки поможет победить до компиляции всего. Диагностические сообщения гугли, если сразу не ясно, обычно рецепты по исправлению сразу попадаются

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

Спасибо за команду!

Как раз занимаюсь гуглением :-) Слушай, а почему, когда я оставил %build пустым, а в %install написал вместо «make install» - свои команды, то для Opensuse создался пакет, а CentOS попытался выполнить «make install»?

Здесь пишут что надо явно прописывать «make install», логично предположить что если не пропишешь - то он не выполнится. Просто у меня нет Makefile.

ZenitharChampion ★★★★★
() автор топика
Последнее исправление: ZenitharChampion (всего исправлений: 1)
Ответ на: комментарий от ZenitharChampion

Разобрался

Я оставил коммент, закомментированный символом #. CentOS на него ругнулся. Удалил. А потом я увидел закомментированный %makeinstall

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

Вообще надо запускать ldconfig

%post
/sbin/ldconfig

%postun
/sbin/ldconfig

Хотя не знаю как точно лучше, если всё в /opt/. Да и вообще зачем это всё, если делаешь тупо перепаковку бинарников?

dinn ★★★★★
()
Ответ на: Разобрался от ZenitharChampion

Макросы в комментариях лучше снабжать дополнительным «%», а то они могут исполняться на некоторых системах сборки.

dinn ★★★★★
()

Поспал и понял, почему на либы в lib32 не ругается, а на lib64 - ругается. Потому что в SUSE нет директории lib32, а есть lib. Я переименовал lib64 и lib64bit и всё исправилось.

Но это сломало CentOS 6, который прекрасно собирался. Замечательно.

ZenitharChampion ★★★★★
() автор топика

Компиляю Qt 5. Попросили новый GCC. Залил в репозиторий новый GCC. Начал пересобираться весь репозиторий. На пакете xorg-x11-libs произошёл:

[  278s]  gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include/X11/fonts -I../../include -Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -fno-strict-aliasing -march=i586 -mtune=i686 -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -fno-strict-aliasing -D_BSD_SOURCE -DHAS_FCHOWN -DHAS_STICKY_DIR_BIT -D_XOPEN_SOURCE -MT t1funcs.lo -MD -MP -MF .deps/t1funcs.Tpo -c t1funcs.c  -fPIC -DPIC -o .libs/t1funcs.o
[  278s] t1funcs.c: In function 'Type1OpenScalable':
[  278s] t1funcs.c:407:35: warning: operation on 'area->ymax' may be undefined [-Wsequence-point]
[  278s]                         area->ymax = area->ymax = 0;
[  278s]                                    ^

После чего сборка продолжилась.

И вот пакет готов, и вот начались Post Install скрипты.

Preparing packages for installation...
[  520s] xorg-x11-libs-7.4-99.6
[  520s] xorg-x11-devel-7.4-99.6
[  520s] ... running 01-check-debuginfo
[  520s] ... testing for empty debuginfo packages
[  520s] ... running 02-check-gcc-output
[  520s] ... testing for serious compiler warnings
[  520s]     (using /usr/lib/build/checks-data/check_gcc_output)
[  520s]     (using //.build.log)
[  520s] 
[  520s] I: Program causes undefined operation
[  520s]    (likely same variable used twiceand post/pre incremented in the same expression).
[  520s]    e.g. x = x++; Split it in two operations.
[  520s] E: xorg-x11-libs sequence-point t1funcs.c:407
[  520s] 
[  520s] build75 failed "build xorg-x11-libs.spec" at Sun Aug 14 09:33:22 UTC 2016.

Как исправить эту ошибку? Вот исходник (строка 407), вот мануалка, которая объясняет как исправлять. Ничего не понимаю!

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

ИМХО, тебе не нужно исправлять кодик xorg самому, достаточно пожаловаться на это в баг-трекер и отключить в rpmlintrc пакета обработку этого предупреждения.

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