Ubuntu logo

Packaging Guide

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

4.1. URL пакунків джерельного коду

Bazaar надає декілька дуже зручних скорочень для доступу до гілок джерельного коду з Launchpad для пакунків як Ubuntu, так і Debian.

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

ubuntu:package

де package — ім’я пакунку, який Вам потрібен. Ця URL посилається на пакунки у поточній розроблюваній версії Ubuntu. Щоб послатися на гілку Tomboy у розроблюваній версії, потрібно використовувати:

ubuntu:tomboy

Щоб зробити відсилку до версії джерельного пакунку у старішому релізі Ubuntu просто додайте пакунку префікс з кодовим іменем релізу. Наприклад, для відсилки до джерельного пакунку Tomboy в Saucy використовуйте:

ubuntu:saucy/tomboy

Оскільки перші літери кодових імен не повторюються, можна скоротити ім’я випуску:

ubuntu:s/tomboy

Схожу схему можна використовувати для доступу до гілок джерельного коду в Debian, хоч тут немає скорочень для імен випусків Debian. Щоб отримати доступ до гілки Tomboy у поточному розроблюваному випуску Debian, використовуйте:

debianlp:tomboy

також для доступу до Tomboy в Debian Wheezy використовуйте:

debianlp:wheezy/tomboy

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

Кожен пакунок джерельного коду в Ubuntu пов’язаний з гілкою джерельного коду на Launchpad. Launchpad автоматично оновлює ці гілки джерельного коду, хоч процес не повністю «захищений від дурня».

Є декілька речей, які ми зробимо у першу чергу, щоб зробити робочий процес ефективнішим напотім. Після того, як Ви засвоїте процес, Ви взнаєте, коли є сенс пропускати ці етапи.

4.2.1. Створення загальнодоступного сховища

Наприклад, Ви бажаєте працювати над пакунком Tomboy, й Ви вже перевірили, що джерельний пакунок називається tomboy. Перед фактичним гілкуванням коду для Tomboy створіть загальноступне сховище для зберігання гілок цього пакунку. Загальнодоступне сховище зробить майбутню роботу ефективнішою.

Скористайтеся для цього командою bzr init-repo, передавши їй ім’я каталогу, який Ви бажаєте використовувати:

$ bzr init-repo tomboy

Ви побачите, що у Вашій поточній робочій області створено каталог tomboy. Перейдіть у нього для продовження роботи:

$ cd tomboy

4.2.2. Отримання гілки trunk

Ми використовуємо команду bzr branch для створення локальної гілки пакунку. Каталог призначення назвемо tomboy.dev, просто тому, що так легше запам’ятати:

$ bzr branch ubuntu:tomboy tomboy.dev

Каталог tomboy.dev представляє собою версію Tomboy у розроблюваній версії Ubuntu, й Ви завжди можете перейти у цей каталог та виконати bzr pull для отримання будь-яких майбутніх оновлень.

4.2.3. Перевірка актуальності версії

Коли Ви робите свою bzr branch, то отримаєте повідомлення про те чи є гілка пакунків актуальною. Наприклад:

$ bzr branch ubuntu:tomboy
Most recent Ubuntu version: 1.8.0-1ubuntu1.2
Packaging branch status: CURRENT
Branched 86 revisions.

Інколи імпорт не відбувається успішно й гілки пакунку не збігаються з тими, що знаходяться у архіві. Повідомлення:

Packaging branch status: OUT-OF-DATE

означає, що імпорт не вдався. Ви можете дізнатися про причину за посиланням: http://package-import.ubuntu.com/status/ й відправити баг в UDD для вирішення проблеми.

4.2.4. Tar-файл з апстріму

Отримати tar з апстріму можна за допомогою:

bzr get-orig-source

Таким чином пробуються декілька методів для потрапляння в tar апстріму, спочатку відтворюючи його з тегу upstream-x.y у архіві bzr, потім стягуючи з архіву Ubuntu, а потім запускаючи debian/rules get-orig-source. Tar апстріму також буде відтворений при використанні bzr для побудови пакунку:

bzr builddeb

У втулки builddeb є декілька опцій конфігурації.

4.2.5. Отримання гілки для певного випуску

Якщо Ви бажаєте зробити щось типу оновлення стабільного релізу (SRU), або просто бажаєте вивчити код у старому релізі, Вам потрібно вибрати гілку, що відповідає певному релізу Ubuntu. Наприклад, щоб отримати пакунок Tomboy для Quantal:

$ bzr branch ubuntu:m/tomboy quantal

4.2.6. Імпорт пакунку джерельного коду Debian

Якщо пакунок, над яким Ви бажаєте працювати, доступний в Debian, але не в Ubuntu - код легко імпортувати у локальну гілку bzr для розробки. Наприклад, Ви бажаєте імпортувати джерельний пакунок newpackage. Ми почнемо із створення загальнодоступного сховища у якості звичайного, але нам також потрібно створити робоче дерево, у яке буде імпортовано джерельний пакунок (не забудьте виконати cd out директорії tomboy, створеній вище):

$ bzr init-repo newpackage
$ cd newpackage
$ bzr init debian
$ cd debian
$ bzr import-dsc http://ftp.de.debian.org/debian/pool/main/n/newpackage/newpackage_1.0-1.dsc

Як Ви бачите - потрібно просто вказати віддалене розташування файлу dsc, а Bazaar зробить решту. Тепер в Вас є джерельна гілка Bazaar.