Привет.
Есть программа (пусть она называется mycoolprogram), номера версий нумеруются как myprogram-1.2.3. С помощью debhelper делаю к ней deb-пакет. При этом создается папка с исходниками myprogram-1.2.3, на уровень выше создается архив myprogram_1.2.3.orig.tar.gz. Здесь все нормально работает, пакет собирается с помощью debuild -S -sa. Получаю файлы *.changes и т.п., закачивыю их на PPA (launchpad), где собирается бинарный пакет
Захотелось сделать репозиторий для нестабильных версий проги, для этого надо сделать, чтобы полученные файлы обзывались myprogram-1.2.3-666. С нумерацией версий проблем нет, сами deb-пакеты и файл *.change тоже нумеруются нормально. Но при этом скрипты для компиляции пакета требуют, чтобы архив с исходными текстами по-прежнему назывался myprogram_1.2.3.orig.tar.gz, но не myprogram_1.2.3-666.orig.tar.gz. Если оставить имя архива в таком виде, то после сборки пакета и получения файла *.changes, на PPA пытается закачиваться все тот же myprogram_1.2.3.orig.tar.gz, который там уже есть от предыдущей версии.
Вопросы:
1. Зачем нужен файл myprogram_1.2.3.orig.tar.gz, если я не модифицирую чью-то программу, а делаю отдельную программу?
2. Как можно указать скриптам, что файл myprogram_1.2.3.orig.tar.gz должен называться, например, myprogram_1.2.3-666.orig.tar.gz, чтобы при закачке его на PPA его имя отличалось от тех, что были до этого (новая сборка версии 1.2.3)?
Создание deb-пакета с произвольныи именем
Модераторы: Warderer, Модераторы разделов
-
Jenyay
- Сообщения: 18
- ОС: WinXP / Ubuntu 11.10
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: Создание deb-пакета с произвольныи именем
Если делаете отдельную программу специально под Debian, то такие пакеты называются 'native', такое можно указать при оформлении пакета. По умолчанию считается, что оригинальные исходники лежат в program_VERSION.orig.tar.{gz,bz2}, а в program_VERSION-PACKAGE_REVISION.debian.tar.gz лежит «дебианизирующий патч». Таким образом, если меняется только PACKAGE_REVISION, то версия программы остается та же, меняется только сам пакет.
Мои розовые очки
-
Jenyay
- Сообщения: 18
- ОС: WinXP / Ubuntu 11.10
Re: Создание deb-пакета с произвольныи именем
watashiwa_daredeska писал(а): ↑14.12.2011 17:18Если делаете отдельную программу специально под Debian, то такие пакеты называются 'native', такое можно указать при оформлении пакета. По умолчанию считается, что оригинальные исходники лежат в program_VERSION.orig.tar.{gz,bz2}, а в program_VERSION-PACKAGE_REVISION.debian.tar.gz лежит «дебианизирующий патч». Таким образом, если меняется только PACKAGE_REVISION, то версия программы остается та же, меняется только сам пакет.
Вот я как раз сейчас читаю про native/non-native, и что-то не понимаю фразы "специально под Debian". Для дистрибутивов на основе Debian такие пакеты подходят? В чем вообще ограничения этих пакетов?
-
Jenyay
- Сообщения: 18
- ОС: WinXP / Ubuntu 11.10
Re: Создание deb-пакета с произвольныи именем
Меня просто смущает тот факт, что при создании очередной сборки она будет сравниваться с исходниками 100-летней давности (100 сборок назад) и для каждой сборки будут храниться только патчи, а не исходники целиком. Хотя сейчас думаю, что может это и не так уж и плохо, какая разница, как они там будут собираться на сервере.
-
KiWi
- Бывший модератор
- Сообщения: 2521
- Статус: статус, статус, статус
Re: Создание deb-пакета с произвольныи именем
"Специально под Debian" -- когда вы не берёте чьи-то сорцы и не накладываете какие-то свои (debianизующие) патчи.
-
KiWi
- Бывший модератор
- Сообщения: 2521
- Статус: статус, статус, статус
Re: Создание deb-пакета с произвольныи именем
Вы собираете ненативный пакет.
А это говорит о том, что есть:
- оригинальная версия пакета, взятая где-то в интернетах(linux-kernel, libxml, perl, etc) со своей версией;
- в неё добавлены патчи, которые:
а) собрать правильный Debian-пакет(с зависимостями, установив с правильными путями, разбив на несколько etc);
б) наложить свои патчи, которые сборщик пакет считает необходимыми и которых по какой-то причине нет в upstream-версии.
При этом второй пункт -- это "косметические" изменения, а не изменение исходной версии пакета пакета.
И именно во время этих "косметических" изменений в версию добавляется ещё и ревизия -- upstream-версия пакета между ревизиями не меняется.
А поэтому и нет необходимости создавать новый orig.tar.gz.
-
Jenyay
- Сообщения: 18
- ОС: WinXP / Ubuntu 11.10
Re: Создание deb-пакета с произвольныи именем
Вы собираете ненативный пакет.
А это говорит о том, что есть:
- оригинальная версия пакета, взятая где-то в интернетах(linux-kernel, libxml, perl, etc) со своей версией;
- в неё добавлены патчи, которые:
а) собрать правильный Debian-пакет(с зависимостями, установив с правильными путями, разбив на несколько etc);
б) наложить свои патчи, которые сборщик пакет считает необходимыми и которых по какой-то причине нет в upstream-версии.
Как раз в моем случае нет какой-то отдельной версии чужой программы, все пишу сам (если не считать библиотек и зависимостей).
-
Portnov
- Модератор
- Сообщения: 1786
- Статус: Матёрый линуксоид
- ОС: Debian testing/unstable
Re: Создание deb-пакета с произвольныи именем
Через дефис в номере версии указывается уже package revision — т.е. вот это ваше «666» воспринимается системой сборки не как часть версии пакета, а как версия упомянутых «дебианизирующих патчей». В вашем случае достаточно заменить в версии программы дефис на, например, точку (1.2.3.666, а не 1.2.3-666).
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
-
Jenyay
- Сообщения: 18
- ОС: WinXP / Ubuntu 11.10
Re: Создание deb-пакета с произвольныи именем
Portnov писал(а): ↑16.12.2011 07:51Через дефис в номере версии указывается уже package revision — т.е. вот это ваше «666» воспринимается системой сборки не как часть версии пакета, а как версия упомянутых «дебианизирующих патчей». В вашем случае достаточно заменить в версии программы дефис на, например, точку (1.2.3.666, а не 1.2.3-666).
Если назвать архив с исходниками myprogram_1.2.3.666.orig.tar.gz, то debuild ругается, хочет именно три части номера версии. Смотрел, как делают подобные вещи разработчики других программ, у них номер сборки выглядит myprogram_0.9.7~git-1296-g1d89daf-0ubuntu0ppa1~lucid1.tar.gz
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: Создание deb-пакета с произвольныи именем
1. Архив с исходными текстами для пакетов native не содержит в имени .orig.
2. Имя архиву дается не от балды, а должно определенным образом отражать имя пакета и версию.
3. Версия определяется не именем архива с исходниками и даже не именем каталога, где все собирается, а берется, по умолчанию, из файла debian/changelog.
Мои розовые очки
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: Создание deb-пакета с произвольныи именем
Вот пример native-пакета с четырехкомпонентной версией (1.2.3.4), опциональной ревизией (1), собранный в каталоге, не содержащем версию в имени (что не соответствует правилам, хотя и возможно): demohello_1.2.3.4-1.tar.gz (это как раз уже архив исходников от пакета).
Мои розовые очки