Хочу собрать пакет для себя.
Однако для компиляции программы используется
не
Код: Выделить всё
configure && make && make installа
Код: Выделить всё
configure && jam && jam installdebhelper по умолчанию не желает этого знать,
файл debian/rules заточен под make.
В результате компиляция даже не начинается.
Пакет создаётся, но почти пустой, там только /usr/share/doc
В итоге - не работает.
checkinstall, которому вроде бы всё равно, за кем следить
нормально воспринимает
Код: Выделить всё
checkinstall --install=no jam installСоздавать каталог заранее руками не вариант.
Во-первых, это означает ручную работу вместо checkinstall (на кой он тогда нужен?), а во-вторых, каталогов там всё-таки гораздо больше одного.
В-третьих, с другими программами checkinstall справляется, всё создаётся как надо, а здесь - отлынивает. В итоге - не работает.
Ради интереса стянул source-RPM целевой программы, распаковал.
Подправил spec-файл, далее по команде
Код: Выделить всё
rpmbuild -ba speckfilename.specТак вот в spec-файле явным образом вызываются configure, jam, jam install, всё это снабжается переменными окружения, опциями и т.п. Т.е. это обычный скрипт, чем-то схожий с bash-скриптом.
rpmbuild создает временную директорию, куда складываются результаты компиляции, потом всё это собирается в пакет, в конце временные файлы удаляются.
debhelper (насколько я понял) работает схожим образом, тоже компилирует во временную директорию и потом собирает пакет, но разобраться в его работе значительно сложнее из-за большого количества dh_скриптов.
Я пробовал в файле rules явно указать использование jam (ну то есть примерно как в spec-файле rpm) не получилось. Что-то я сделал не так.
Официальное руководство на эту тему не очень распространяется, хотя там и указано, что системы сборки могут быть разными.
Можно извратиться и собрать rpm, который потом конвертировать в deb, но это обходной путь.
Меня же интересует правильный вариант.
Теперь, собственно, вопрос: Как правильно собирать deb-пакеты при условии нестандартной системы сборки (в частности jam)? Можно ли в файле rules явным образом указывать команду компиляции, опции, переменные окружения и т.п.?