[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Вопросы по созданию пакета.



22.09.2012 16:29, Andrey Rahmatullin пишет:
>>>>>> scons prefix=/usr sysconfdir=/etc FLAGS="$(DEB_BUILD_OPTIONS)"
>>>>>> LINKFLAGS="$(LDFLAGS)" CCFLAGS="$(CPPFLAGS) $(CFLAGS)"
>>>>> В общем случае зависит от SConstruct, но зачем вы туда передаёте
>>>>> DEB_BUILD_OPTIONS?
>>>> На всякий случай...
>>>> Где-то я прочитал: "If you want to pass custom additonal options to configure,
>>>> you can set up the DEB_BUILD_OPTIONS environment variable."
>>> Нашлось
>>> http://www.cyberciti.biz/faq/rebuilding-ubuntu-debian-linux-binary-package/
>>> и http://www.mplayerhq.hu/DOCS/HTML/zh_CN/linux.html
>>> Судя по всему, один идиот неправильно использовал DEB_BUILD_OPTIONS в
>>> своём пакете mplayer, а другой, ещё больший, прочитал его доку и решил,
>>> что она применима для любых пакетов вообще, что и написал в своей.
>> Хм... Меня вы тоже идиотом считаете?
> Нет, пока вы не станете прочитанную в плохих левых хауту дезинформацию
> рассказывать другим.
Хм... Но они-то верили, что делают правильно... Наверное...

>>>> Его содержимое включается в переменные с опциями сборки автоматически?
>>> Нет, разумеется. Читайте:
>>> http://www.debian.org/doc/debian-policy/ch-source.html#s-debianrules-options
>> Тьфу, блин. Надо будет прочитать Policy полностью.
>> Так всё-таки, если я хочу их использовать, я должен всегда обрабатывать их
>> самостоятельно, как в примере, или есть автоматические подстановки (например,
>> для GNU системы сборки)?
> Кого их?
Опции в DEB_BUILD_OPTIONS, очевидно...

>>>>>> Любопытно, разве scons не должен брать два последних параметра из окружения?
>>>>> Нет конечно, scons полностью и сознательно игнорирует окружение. Это тоже
>>>>> "фича".
>>>> С целью? o.O
>>> Чтобы не зависеть от окружения.
>> В чём смысл?
> SCons does not automatically propagate the external environment used to
> execute 'scons' to the commands used to build target files. This is so
> that builds will be guaranteed repeatable regardless of the environment
> variables set at the time scons is invoked.
Ээээ... Они полагают, что пользователь, который собирает программу, будет не в
состоянии сам контролировать свои переменные окружения?

>>>>>> Короче, как сделать, чтобы было правильно?
>>>>>> С флагами мне не очень понятно, запутался.
>>>>> В ситуации, когда содержимое флагов надо всё равно передавать в сборочную
>>>>> систему вручную, необходимо и достаточно спросить значения флагов у
>>>>> dpkg-buildflags и правильно их передать куда надо.
>>>> Т.е., нужно:
>>>> "$(shell dpkg-buildflags --get CPPFLAGS)"?
>>>> Почему переменные с флагами не устанавливаются автоматически?
>>> Что значит не устанавливаются?
>> Почему они не включаются в make файл. 
> Какой ещё файл?
В rules, в смысле.

>> Кстати, внезапно:
>> `gcc -o build/linux2/configure_tests/conftest_0.o -c -O2-D_FORTIFY_SOURCE=2 -g
>> -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security
>> -DPACKAGE=\"rhvoice\" -DVERSION=\"0.3\" -I. -Is$
>> cc1: error: argument to '-O' should be a non-negative integer
>> scons: Configure: n`
>>
>> scons действительно создаёт configure.log.
>> Проблема оказалась здесь: -O2-D_FORTIFY_SOURCE=2 .
>> Проблема решилась расстановкой пробелов внутри кавычек вокруг опций.
> Скорее это склеивание в SConstruct кривое.
Ясно. Я написал, может посмотрит, исправит. Кстати, я заметил ещё такую штуку:
`gcc -o build/linux2/configure_tests/conftest_0.o -c -O2 -D_FORTIFY_SOURCE=2 -g
-O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security
-D_FORTIFY_SOURCE=2 -Wextra -DPACKAGE=\"rhv\
oice\" -DVERSION=\"0.3\" -I. -Isrc/include
build/linux2/configure_tests/conftest_0.c`

Опции -O2 - повторяются два раза, как и установка _FORTIFY_SOURCE.
Это где-то у меня ошибка, связанная с дублированием опций?

>> P.S.:
>> Нормально, что hardening-check пишет 'Immediate binding: no, not found!' ?
> Вы его не заказывали, а по дефолту оно выключено. man dpkg-buildflags
Ясно.
Кстати, а hardening (например, проверка стека) сильно влияет на производительность?


Reply to: