Здравствуйте!

На тему https://lists.altlinux.org/pipermail/sisyphus-incominger/2017-November/474838.html есть такой совет будущему мейнтейнеру:

стоит взглянуть на лог сборки, чтобы увидеть нет ли там чего, что не соответствует задуманному -- http://git.altlinux.org/tasks/archive/done/_187/192410/build/100/x86_64/log .

Здесь обращает на себя внимание то, что в спеке мы потребовали компиляцию с -Werror (раз уж у нас действительно не осталось больше warnings), но на деле этот флаг не доехал до компилятора. Например:

cc -I. -I./src -Ibld -DFOSSIL_DYNAMIC_BUILD=1 -g -O2 -DHAVE_AUTOCONFIG_H -D_HAVE_SQLITE_CONFIG_H -o bld/add.o -c bld/add_.c

И вообще rpm-овские %optflags все не доехали. (Кстати, Андрей Савченко bicorph@ как раз днях устно высказывал предложение о том, как можно автоматически обнаруживать такие сборки и предупреждать мейнтейнеров. И мне это предложение нравится. Может быть, Андрей сделает соответствующий патч на rpm-build с соответствующим brp-скриптом.)

А пока нет такой автоматической проверки стоит глазами посмотреть и разобраться, как %optflags передать компилятору. (Это будет полезно и для сборки на всяких более экзотических архитектурах и платформах, где они хотели бы передавать специфичные более удачные %optflags во всех пакетах.)

С похожим случаем мне недавно помог (устно) разобраться ldv@.

Как обычно %optflags попадаю в CFLAGS в make?

Делается export CFLAGS=.... перед ./configure . См. значение макроса %configure, например: rpm --eval '%configure' . Оно их записывает в итоге в Makefile.

В этом спеке %configure не используется. Можно выставить ему CFLAGS аналогично. Советую проверить, что будет.

Будет не очень хорошо из-за -Werror. Это и объяснение, почему во многих других случаях может быть нехорошо от %def_enable Werror -- там, где используется %configure. (TODO для rpm-build: обрабытывать -Werror / %def_anable Werror по-другому, отдельно от остальных %optflags)

Так давайте сделаем export CFLAGS='%optflags' перед вызовом make.

Кажется, здесь Makefile написан так, что CFLAGS не имеет значения изначально, но используется в командах, так что воспримет значение из переменной окружения.

Хотелось бы увидеть доделанный в смысле передачи %optflags компилятору пакет fossil от grenka@, чтобы считать эту тему пройденной.

--
Best regards,
Ivan
_______________________________________________
devel-newbies mailing list
[email protected]
https://lists.altlinux.org/mailman/listinfo/devel-newbies

Ответить