Re: Вопросы по созданию пакета.
16.09.2012 23:47, Andrey Rahmatullin пишет:
> On Sun, Sep 16, 2012 at 10:33:14PM +0400, "Артём Н." wrote:
>>> Надо только в Build-Depends указать libsox-dev. Вручную указывать в Depends
>>> библиотеки потенциально опасно.
>> Чем?
> Возможностью написать туда не то.
Например, что?
>> dh_auto_build нужен не только для autotools?
> Не только. Для scons, впрочем, он не нужен и не работает.
А для чего, кроме autotools оно используется (любопытно, для общего развития)?
> Какой ещё dh_installdirs?
> ...
> Какой ещё dh_autoclean?
Вы издеваетесь? По ним man есть. Только dh_auto_clean называется. Я перепутал.
>> 1. Что делать с watch файлом? Как приспособить uscan к git?
> К git никак. Да и какой watch-файл, если вы версию каким-то жутким
> скриптом на основании содержимого исходников формировали.
>> 2. Lintian выдаёт:
>> W: rhvoice: hardening-no-relro usr/bin/RHVoice-client
>> W: rhvoice: hardening-no-fortify-functions usr/bin/RHVoice-client
>> W: rhvoice: hardening-no-relro usr/lib/libRHVoice.so.0.0.0
>> W: rhvoice: hardening-no-fortify-functions usr/lib/libRHVoice.so.0.0.0
> Сборочная система, вероятно, игнорирует флаги, выставленные
> dpkg-buildflags (ну т.е. ясен пень она их игнорирует, вы же их не передали
> в scons).
Хм...
Нужно передавать так:
?
scons prefix=/usr sysconfdir=/etc FLAGS="$(DEB_BUILD_OPTIONS)"
LINKFLAGS="$(LDFLAGS)" CCFLAGS="$(CPPFLAGS) $(CFLAGS)"
Любопытно, разве scons не должен брать два последних параметра из окружения?
К тому же, в случае использования флагов, компиляция сваливается...
<<scons prefix=/usr sysconfdir=/etc FLAGS="" LINKFLAGS="-Wl,-z,relro -fPIE -pie
-Wl,-z,relro -Wl,-z,now " CCFLAGS="-D_FORTIFY_SOURCE=2 -g -O2
-fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security
-fPIE -fstack-protector --param ssp-buffer-size=4 -D_FORTIFY_SOURCE=2
-Wformat -Wformat-security -Werror=format-security "
scons: Reading SConscript files ...
Mkdir("build/linux2")
Checking whether the C compiler worksno
The C compiler is not working
make[1]: *** [override_dh_auto_build] Ошибка 1
make[1]: Leaving directory `/home/artiom/Desktop/voice/rhvoice-0.3'
make: *** [build] Ошибка 2
dpkg-buildpackage: ошибка: debian/rules build возвратил код ошибки 2>>
И ещё... Мне приходится делать так, чтобы получать переменные:
<<include /usr/share/hardening-includes/hardening.make
DESTDIR=$(CURDIR)/debian/rhvoice
CPPFLAGS:=$(shell dpkg-buildflags --get CPPFLAGS)
CFLAGS:=$(shell dpkg-buildflags --get CFLAGS)
CXXFLAGS:=$(shell dpkg-buildflags --get CXXFLAGS)
LDFLAGS:=$(shell dpkg-buildflags --get LDFLAGS)
CFLAGS+=$(HARDENING_CFLAGS)
LDFLAGS+=$(HARDENING_LDFLAGS)>>
Но в 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). "
Он добавляет флаги только при использовании dh_auto_build?
Короче, как сделать, чтобы было правильно?
С флагами мне не очень понятно, запутался.
>> W: rhvoice: new-package-should-close-itp-bug
> Вы знаете, что у тегов lintian есть описания?
Да. Я вызываю его, как lintian -i -I --show-overrides|lintian-info|less .
Я их читаю. Но там много, а с ITP багом я что-то сразу не понял.
Буду смотреть секцию 5.1 руководства...
> И, кстати, вы lintian вызываете для .changes или только для .deb?
Вызываю в каталоге пакета без указания цели. Это только для .deb? А чем
отличается для .changes?
Reply to: