Ubuntu logo

Packaging Guide

11. Традиційні методи створення пакунків

Велика частина даного посібника відноситься до Ubuntu Distributed Development (UDD), яке використовує розповсюджувану версію системи керування (DVCS) Bazaar для отримання джерел пакунків й відправки фіксів через пропозиції про злиття. У цій статті ми обговоримо так звані “традиційні” методи створення пакунків. До того як Bazaar стали застосовувати у розробках Ubuntu, допомогти Ubuntu можна було стандартними способами.

У деяких випадках Вам може знадобитися використовувати ці інструменти замість UDD. Тому не завадить познайомитися з ними. Перед тим, як продовжити, Вам слід прочитати статтю Підготовка.

11.1. Отримання джерельного коду

Щоб отримати пакунок джерельного коду, можна просто набрати:

$ apt-get source <package_name>

Але в цього методу є деякі недоліки. Він стягує версію джерельного коду, яка доступна у Вашій системі. Швидше за усе, в Вас встановлено поточний стабільний випуск, а Ви збираєтеся внести зміни у пакунок у розроблюваному випуску. На щастя, пакунок ubuntu-dev-tools надає допоміжний сценарій:

$ pull-lp-source <package_name>

Типово буде завантажена найсвіжіша версія з розроблюваного выпуску. Можна також вказати версію випуску Ubuntu таким чином:

$ pull-lp-source <package_name> trusty

щоб витягнути джерело з релізу trusty, або:

$ pull-lp-source <package_name> 1.0-1ubuntu1

щоб стягнути версію пакунку 1.0-1ubuntu1. Для отримання додаткової інформації про команду скористайтеся man pull-lp-source.

Для прикладу, уявімо, що ми отримали звіт про ваду, у якому говориться, що замість “colour” у описі``xicc`` має бути “color,” й ми бажаємо це виправити. (Нотатка: це просто приклад чогось, що можна змінити, а не реальна помилка.) Щоб отримати джерельний код, уведіть:

$ pull-lp-source xicc 0.2-3

11.2. Створення Debdiff

Файл debdiff показує відмінності між двома пакунками Debian. Ім’я команди, що використовується для його створення, теж debdiff. Вона є частиною пакунку devscripts. Дивіться man debdiff для детальної інформації про неї. Щоб порівняти два пакунки джерельного коду, передайте команді у якості аргументу два файли dsc:

$ debdiff <package_name>_1.0-1.dsc <package_name>_1.0-1ubuntu1.dsc

Щоб продовжити наш приклад, давайте відредагуємо debian/control й «виправимо» нашу «помилку»:

$ cd xicc-0.2
$ sed -i 's/colour/color/g' debian/control

Ми також повинні дотримуватися Специфікацій Обслуговування Debian<MaintFieldSpec_> й редагувати debian/control для заміни:

Maintainer: Ross Burton <ross@debian.org>

на:

Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
XSBC-Original-Maintainer: Ross Burton <ross@debian.org>

Для цього можна скористатися інструментом update-maintainer (з пакунку ubuntu-dev-tools).

Не забудьте задокументувати Ваші зміни в debian/changelog за допомогою dch -i, після чого ми можемо згенерувати новый пакунок джерельного коду:

$ debuild -S

Тепер можна перевірити наші зміни за допомогою debdiff:

$ cd ..
$ debdiff xicc_0.2-3.dsc xicc_0.2-3ubuntu1.dsc | less

Щоб створити файл латки, який можна відправити іншим або прикласти до звіту про ваду для схвалення, виконайте:

$ debdiff xicc_0.2-3.dsc xicc_0.2-3ubuntu1.dsc > xicc_0.2-3ubuntu1.debdiff

11.3. Застосування Debdiff

Щоб застосувати debdiff, потрібно мати джерельний код версії, на основі якої він був створений:

$ pull-lp-source xicc 0.2-3

Потім у терміналі змініть на директорію, куди був розпакований джерельний код:

$ cd xicc-0.2

Фактично, debdiff схожий на звичайний файл латки. Застосуйте його, як завжди, за допомогою:

$ patch -p1 < ../xicc_0.2.2ubuntu1.debdiff