22.09.2012 15:05, Andrey Rahmatullin пишет: > On Sat, Sep 22, 2012 at 09:02:10AM +0400, "Артём Н." wrote: >>>>>>> Надо только в Build-Depends указать libsox-dev. Вручную указывать в >>>>>>> Depends >>>>>>> библиотеки потенциально опасно. >>>>>> Чем? >>>>> Возможностью написать туда не то. >>>> Например, что? >>> Туда можно написать что угодно. >> В том смысле, что при неверных сборочных зависимостях пакет просто не >> соберётся, >> а при неверных установочных, он может установиться только у автора? > К чему вы это? Исходная мысль была о том, что не надо пытаться написать > руками то, что автомат сделает лучше. Ясно.
>>>>> Какой ещё dh_installdirs? >>>>> ... >>>>> Какой ещё dh_autoclean? >>>> Вы издеваетесь? По ним man есть. >>> Это не я издеваюсь, это вы тупите. >> Ну так просветите, раз вы такой умный. Или постоянно говорить недомолвками >> входит в ваш имидж? > Вы процитировали два куска кода и упомянули в связи с ними две тулзы, одну > из которых вы написали неправильно, а вторая никакого отношения к > процитированным кускам не имеет. Понял: я снова что-то перепутал (видимо, maint-guide читал невнимательно). dh_install_dirs вызывается в цели binary? >>>> 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 системы сборки)? >>>> Любопытно, разве scons не должен брать два последних параметра из >>>> окружения? >>> Нет конечно, scons полностью и сознательно игнорирует окружение. Это тоже >>> "фича". >> С целью? o.O > Чтобы не зависеть от окружения. В чём смысл? >>>> Но в http://wiki.debian.org/Hardening написано, что: "Debhelper (since >>>> 9.20120417, only with compat=9 and dh_auto* commands!) and cdbs (since >>>> 0.4.110) >>>> automatically append CPPFLAGS to CFLAGS and CXXFLAGS. The following >>>> workaround >>>> is not necessary anymore if the package uses debhelper (compat=9, >>>> dh_auto*) or >>>> cdbs (packages might require a new upload though). " >>> Вы правда понимаете, о чём этот абзац? >> Ну, вроде бы. Debhelper у меня в зависимостях >= 9... > Не понимаете, значит. Прочитал и въехал. Для debhelper >= 9 Не нужно делать это: "CFLAGS+=$(CPPFLAGS) CXXFLAGS+=$(CPPFLAGS)" Так? >>>> Короче, как сделать, чтобы было правильно? >>>> С флагами мне не очень понятно, запутался. >>> В ситуации, когда содержимое флагов надо всё равно передавать в сборочную >>> систему вручную, необходимо и достаточно спросить значения флагов у >>> dpkg-buildflags и правильно их передать куда надо. >> Т.е., нужно: >> "$(shell dpkg-buildflags --get CPPFLAGS)"? >> Почему переменные с флагами не устанавливаются автоматически? > Что значит не устанавливаются? Почему они не включаются в make файл. Но уже не важно. Я сделал так: `DPKG_EXPORT_BUILDFLAGS = 1 include /usr/share/dpkg/buildflags.mk CFLAGS+=$(HARDENING_CFLAGS) LDFLAGS+=$(HARDENING_LDFLAGS) CFLAGS += -Wextra` Кстати, внезапно: `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 . Проблема решилась расстановкой пробелов внутри кавычек вокруг опций. Затем, снова: `scons DESTDIR=/home/artiom/Desktop/voice/rhvoice-0.3/debian/rhvoice install scons: Reading SConscript files ... Mkdir("build/linux2") Checking whether the C compiler worksno The C compiler is not working make[1]: *** [override_dh_auto_install] Ошибка 1 make[1]: Leaving directory `/home/artiom/Desktop/voice/rhvoice-0.3' make: *** [binary] Ошибка 2 dpkg-buildpackage: ошибка: fakeroot debian/rules binary возвратил код ошибки 2` И т.п. Написал авторше, может и ответит. Передал опции сборки для scons install, и всё собралось. Lintian не ругается. Спасибо. :-) P.S.: Нормально, что hardening-check пишет 'Immediate binding: no, not found!' ? "build/linux2/bin/RHVoice: Position Independent Executable: no, normal executable! Stack protected: yes Fortify Source functions: yes (some protected functions found) Read-only relocations: yes Immediate binding: no, not found! build/linux2/bin/RHVoice-client: Position Independent Executable: no, normal executable! Stack protected: yes Fortify Source functions: yes (some protected functions found) Read-only relocations: yes Immediate binding: no, not found!" -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

