[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