Решено: сборка *-dev пакета

Knoppix

Модераторы: Warderer, Модераторы разделов

Аватара пользователя
digiwhite
Сообщения: 5
ОС: GNU Linux

Решено: сборка *-dev пакета

Сообщение digiwhite »

Всем доброго времени суток.
Решил значит попробовать собрать FlightGear 2.0.0, но собрать в deb и поставить в рамках Debian way. Одна из зависимостей FlightGear является SimGear, который так же нужен версии 2.0.0. Соответственно для сборки пакета FlightGear нужно собрать и установить dev пакет SimGear, что я и попытался сделать.

Последовательность действий:
- распаковал SimGear;
- в каталоге вызвал dh_make -r (выбрал тип создаваемого пакета library);
- во вновь созданном каталоге debian поправил файлы control, rules, changelog;
- из каталога с исходниками вызвал debuild.

Собственно пакеты собрались. Два: один обычный, другой dev. Но вот что непонятно, в пакетах по сути ничего нет, кроме некоторых "информационных" файлов типа манов и ридми.

ЗЫ: SimGear собирается в статические библиотеки. Вчера покурил http://www.netfort.gr.jp/~dancer/column/li...bpkg-guide.html, но мало что вынес для себя оттуда.

Собственно ЧТЯДНТ? И куда мне копать?

Спасибо!
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: Решено: сборка *-dev пакета

Сообщение Alex2ndr »

Попробую помочь, но скажу честно что собирал в deb только свои поделки на питоне. Dev вообще не собирал.
У меня было такое - собирается в пустой пакет. Все дело было в том, что в debian/rules не были нормально прописаны действия для build и install. Проверяйте, что у вас в этом файле. Также в нем же можно раскоментировать отладку:

Код: Выделить всё

#export DH_VERBOSE=1

затем запустить сборку и выложить сюда все что он выведет. Может тогда будет яснее. В принципе там по ходу сборки очень подробно описывается что делается. Если вы разбираетесь в структуре программы, то должны понять что делается не так.
Спасибо сказали:
neol
Сообщения: 600
ОС: Debian Stable

Re: Решено: сборка *-dev пакета

Сообщение neol »

В имя_пакета-dev.install нужно прописать какие файлы нужно копировать. Должно быть что-то типа

Код: Выделить всё

usr/include/*
usr/lib/lib*.a
usr/lib/*.la


В имя_пакета.install аналогично запихиваются бинарники, *.so и конфиги
Спасибо сказали:
Аватара пользователя
digiwhite
Сообщения: 5
ОС: GNU Linux

Re: Решено: сборка *-dev пакета

Сообщение digiwhite »

Ну пока что результаты такие-же.

Привожу содержимое конфигов и лог сборки:


Содержимое остальных файлов не привожу, т.к. думаю, что оно не играет особой роли. Судя по выводимой информации, все собирается и все нормально, но пакеты получаются пустыми (пакет содержит только файлы, устанавливаемые в /usr/share/simgear-dev/doc).
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: Решено: сборка *-dev пакета

Сообщение watashiwa_daredeska »

Код: Выделить всё

dh_installdirs
    install -d debian/simgear-dev
    install -d debian/simgear-dev/usr/lib debian/simgear-dev/usr/include
    install -d debian/simgear

А потом:

Код: Выделить всё

/usr/bin/make DESTDIR=/home/digiwhite/tmp/simgear-2.0.0-dev/debian/tmp install
Вот в каталогах и проблема.
Спасибо сказали:
Аватара пользователя
digiwhite
Сообщения: 5
ОС: GNU Linux

Re: Решено: сборка *-dev пакета

Сообщение digiwhite »

watashiwa_daredeska писал(а):
05.03.2010 19:51

Код: Выделить всё

dh_installdirs
    install -d debian/simgear-dev
    install -d debian/simgear-dev/usr/lib debian/simgear-dev/usr/include
    install -d debian/simgear

А потом:

Код: Выделить всё

/usr/bin/make DESTDIR=/home/digiwhite/tmp/simgear-2.0.0-dev/debian/tmp install
Вот в каталогах и проблема.


Вы могли бы несколько шире объяснить?
Да, вопрос: debuild выполнять в каталоге debian, созданным через dh_make или на уровень выше (как я щас делал)?
Спасибо сказали:
Аватара пользователя
digiwhite
Сообщения: 5
ОС: GNU Linux

Re: Решено: сборка *-dev пакета

Сообщение digiwhite »

digiwhite писал(а):
05.03.2010 21:30
watashiwa_daredeska писал(а):
05.03.2010 19:51

Код: Выделить всё

dh_installdirs
    install -d debian/simgear-dev
    install -d debian/simgear-dev/usr/lib debian/simgear-dev/usr/include
    install -d debian/simgear

А потом:

Код: Выделить всё

/usr/bin/make DESTDIR=/home/digiwhite/tmp/simgear-2.0.0-dev/debian/tmp install
Вот в каталогах и проблема.


Вы могли бы несколько шире объяснить?
Да, вопрос: debuild выполнять в каталоге debian, созданным через dh_make или на уровень выше (как я щас делал)?


С этим вопросом все таки кажется разобрался. По крайней мере, теперь в пакете библиотеки и заголовочные файлы лежат. Спасибо всем за помощь.
Ситуация исправилась, когда в файле debian/rules поменял строчку:

Код: Выделить всё

$(MAKE) DESTDIR=$(CURDIR)/debian/tmp install

на

Код: Выделить всё

$(MAKE) DESTDIR=$(CURDIR)/debian/<package-name> install
, где <package-name> в конкретном случаее было simgear-dev.
Спасибо сказали: