Що ж, це звучить, як рецепти упаковки - це шлях до цього. В основному, рецепти упаковки можуть автоматично створювати вихідні пакети Ubuntu та завантажувати їх у PPA кожного разу, коли bzr гілка на Launchpad змінюється. Документація досить добре, але я дам кілька прикладів ...
Спочатку ви вказуєте гілку для відстеження (наприклад, lp:gtk3
), а потім додаєте команду вкладати власну гілку упаковки Debian у цю гілку. Погляньте на цей рецепт, який я створив для щоденних складок Inkscape.
# bzr-builder format 0.4 deb-version 1:0.48+devel+{revno}+{revno:packaging}
lp:inkscape
nest packaging lp:~inkscape.dev/inkscape/debian-packaging debian
Цей рецепт створює пакет Ubuntu щодня, використовуючи останнє джерело для поточного потоку для Inkscape, але копіює спеціалізовані інструкції щодо упаковки Debian з lp:~inkscape.dev/inkscape/debian-packaging
гілки у підпапку під назвою " debian
".
Сторінка рецептів упаковки на Launchpad дозволяє вказати, до якого PPA автоматично завантажувати ваші пакунки. У нашому випадку він завантажений тут .
Як альтернативний підхід, ви можете базувати свій рецепт на існуючому пакеті Ubuntu, а не безпосередньо на вихідному джерелі. Наприклад, lp:ubuntu/gtk+3.0
. Потім вам потрібно буде створити гілку цього коду та здійснити будь-які потрібні вам зміни. Назвемо це lp:~myaccount/ubuntu/saucy/gtk+3.0/my-custom-build
, наприклад. Потім ви створите рецепт для автоматичного злиття змін, а не інструкцій щодо створення гнізд. Рецепт виглядав би приблизно так:
# bzr-builder format 0.4 deb-version {debversion}+{date}
lp:ubuntu/gtk+3.0
merge my-custom-build lp:~myaccount/ubuntu/saucy/gtk+3.0/my-custom-build
Таким чином, цей рецепт автоматично створює спеціальний вихідний пакет Ubuntu та завантажує його у ваш PPA, коли відбувається зміна офіційного пакету Ubuntu.
Якщо ви скористаєтеся таким підходом "злиття", то у вас є два варіанти застосування ваших патчів. Або ви просто відредагуйте вихідний вихідний код безпосередньо у своїй філії та дозвольте bzr подбати про його злиття, або ви можете створити патч-файли всередині debian/
папки за допомогою ковдри. У кожного є свої переваги / недоліки. Колишній підхід трохи розумніший ... якщо один з ваших патчів буде прийнятий розробником вгору, тоді злиття зазвичай все ще працюватиме, і пакет Ubuntu створить OK. Останній підхід дозволяє вам обробляти свої патчі, використовуючи стандартний підхід, заснований на Debian, зберігати код упаковки окремо від коду вище за течією ... однак, якщо розробник верхнього потоку прийняв один із ваших патчів, то ковдра не зможе застосувати (дублікат) патч і пакет не вдасться створити.
lp:ubuntu/gtk+3.0
відстежує? Поточна стабільна чи поточна версія розробки?