[newbies] [#192410] DONE (try 2) fossil.git=2.3-alt1
Ivan Zakharyaschev
imz на altlinux.org
Ср Ноя 8 16:44:06 MSK 2017
Здравствуйте!
На тему
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 at .
Как обычно %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