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

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



On Sat, Sep 22, 2012 at 09:02:10AM +0400, "Артём Н." wrote:
> >>>>> Надо только в Build-Depends указать libsox-dev. Вручную указывать в Depends
> >>>>> библиотеки потенциально опасно.
> >>>> Чем?
> >>> Возможностью написать туда не то.
> >> Например, что?
> > Туда можно написать что угодно.
> В том смысле, что при неверных сборочных зависимостях пакет просто не соберётся,
> а при неверных установочных, он может установиться только у автора?
К чему вы это? Исходная мысль была о том, что не надо пытаться написать
руками то, что автомат сделает лучше.

> >>> Какой ещё dh_installdirs?
> >>> ...
> >>> Какой ещё dh_autoclean?
> >> Вы издеваетесь? По ним man есть. 
> > Это не я издеваюсь, это вы тупите.
> Ну так просветите, раз вы такой умный. Или постоянно говорить недомолвками
> входит в ваш имидж?
Вы процитировали два куска кода и упомянули в связи с ними две тулзы, одну
из которых вы написали неправильно, а вторая никакого отношения к
процитированным кускам не имеет.

> > К чему вы вообще упомянули dh_installdirs?
> Вроде бы, без dh_installdirs у меня не создавались каталоги. Возможно, что я
> вначале заменил цель install, а не override_dh_auto_install, а потом просто забыл.
Брр.

> >>> Сборочная система, вероятно, игнорирует флаги, выставленные
> >>> dpkg-buildflags (ну т.е. ясен пень она их игнорирует, вы же их не передали
> >>> в scons).
> >> Хм...
> >> Нужно передавать так:
> >> ?
> >> 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

> >> Любопытно, разве scons не должен брать два последних параметра из окружения?
> > Нет конечно, scons полностью и сознательно игнорирует окружение. Это тоже
> > "фича".
> С целью? o.O
Чтобы не зависеть от окружения.

> >> И ещё... Мне приходится делать так, чтобы получать переменные:
> >> <<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)>>
> > Это вы где такое взяли? hardening-includes не нужен при использовании
> > dpkg-buildflags.
> Понятно. HARDENING_*FLAGS тоже добавляется к CXXFLAGS автоматически?
Нет.

> >> Но в 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...
Не понимаете, значит.

> Я предположил, что он просто устанавливает переменные окружения (а
> configure и make читают их оттуда), а scons с окружением работает (я не
> разбирался в scons подробно)...  При использовании GNU сборки, опции
> сборки передаются к make через командную строку или через окружение?
Через окружение.

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

-- 
WBR, wRAR

Attachment: signature.asc
Description: Digital signature


Reply to: