LINUX.ORG.RU

дебиан дебиану люпус эст


0

0

Есть пакет. Хочется собирать его под два разных дебиановых дистра. Значит(?), нужны два подкаталога типа debian. Очевидно, как минимум файлы controls будут немного различны (да и changelog мешать не хочется, а еще и инсталляционные скрипты могут отличаться).

В общем, если кто сталкивался - как вы живете в таком случае? У dpkg-buildpackage нет ли параметра мудрого на эту тему, указать подкаталог, отличный от дефолтного? Я как-то не справился найти...

★★★★★
Ответ на: комментарий от Zubok

> может и из скрипта запускаться, который симлинк debian меняет
Ну да, так тоже можно. Все в этом мире можно исправить должным кол-вом оберток;)

> Мне не совсем понятно, как сказать rules, какой сейчас дистрибутив имеется в виду.

Есть же опции -D -T -V у dpkg-buildpackage. Что-нибудь из них. В явном виде переменная мне неизвестна...

svu ★★★★★
() автор топика
Ответ на: комментарий от svu

>Есть же опции -D -T -V у dpkg-buildpackage. Что-нибудь из них. В явном виде переменная мне неизвестна...

dpkg-architecture их и покажет.

Zubok ★★★★★
()
Ответ на: комментарий от svu

>Есть же опции -D -T -V у dpkg-buildpackage. Что-нибудь из них.

И, кстати, эти опции не дадут знания rules о том, какой дистрибутив. У двух дистрибутивов разных (скажем, Knoppix и Debian) эти переменные могут совпадать. Тут для rules именно какая-то дополнительная переменная нужна, чтобы автономно сборка прошла. По-моему, такой переменной документированной нет (?). Есть места, где название дистрибутива может лежать с достаточной вероятностью, и его можно прочесть (например, /etc/debian_version), но это ненадежно в общем случае. Сказанное имеет смысл, если решать именно задачу, чтобы rules сам разбирался, как собирать пакет для разных дистрибутивов без внешнего скрипта. А если с внешним скриптом, то тогда любой вариант подойдет. Тот же симлинк на debian менять, например.

Zubok ★★★★★
()
Ответ на: комментарий от Zubok

> Сказанное имеет смысл, если решать именно задачу, чтобы rules сам разбирался
Да, тогда согласен. Тогда надо понапихать рулезов по проверке разных дебиановских дистров "не убунта ли, не маемо ли, не дебиан ли, ..."

svu ★★★★★
() автор топика
Ответ на: комментарий от svu

>Да, тогда согласен. Тогда надо понапихать рулезов по проверке разных дебиановских дистров "не убунта ли, не маемо ли, не дебиан ли, ..."

Я вот сейчас сразу не соображу, но, наверное, скрипт, который подменяет файлы в /debian можно же прямо в /debian и положить. Далее попробовать написать такой rules, чтобы он сначала до сборки поменял линки, собрал пакет, а потом опять поменял линки и опять собрал пакет. Тогда, в принципе, можно одним вызовом dpkg-buildpackage получать две версии пакетов. Ну и сделать так, чтобы можно было это отключить, если вдруг это предполагается в какой-то репозиторий потом отдавать -- там-то это поведение не нужно.

А можно написать две версии rules: rules и rules-maemo. Каждая будет симлинки менять на нужные файлы в /debian (скажем, лежат postinst.maemo, postinst.ubuntu и линк postinst). Эти rules уж точно можно выбрать через параметры dpkg-buildpackage (опция -R).

Zubok ★★★★★
()
Ответ на: комментарий от Zubok

Хотя все это кажется слишком заумным решением по сравнению с простой подменой линка на каталог debian.

Все, пора спать. Сегодняшний день прошел под знаком системы сборки Debian. :)

Zubok ★★★★★
()
Ответ на: комментарий от Zubok

> Эти rules уж точно можно выбрать через параметры dpkg-buildpackage (опция -R).
Дык об этом я уже выше сказал - если мы не ставим условие полного автоматизма, то опции -R было б достаточно. Если бы не было идиотского обычая лезть в чейнджлог до обращения к рулезам.

svu ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.