Ubuntu kaynaklarını kullanılabilir olduklarında ve bir PPA'ya yüklerken otomatik olarak yamalamanın kolay bir yolu var mı?


9

Aşağıdakileri yapmak için bir araç arıyorum:

  • Bir dizi kaynak paketteki güncellemeleri otomatik olarak algıla (özellikle gtk + 2 ve gtk + 3)
  • kaynak paketi indir
  • kendi özel yamalarımı kaynağa uygula
  • düzeltme ekini uygun şekilde yerine getirme ( dpkg-source --commit [something-or-other]?)
  • başarılı olursa bunları Launchpad'de bir PPA'ya yükleyin (bu da sistemimi normal şekilde gösterebilirim).

Launchpad bunların hepsini benim için yapabilir mi?

Değilse, tüm bunları otomatik olarak bir cron işinden yapacak bir araç var mı?

Yukarıdakileri başaramazsam, kendim bir şeyler yapacağım, ancak hangi komutlara ihtiyacım var:

  • kaynak paket güncellemelerini algılayıp indirebilir misiniz? (Her seferinde yeni bir kopyanın kaynağını almak yerine (bzr | git) çekme gibi bir şeyi tercih ederim)
  • yamayı yerel olarak otomatik olarak uygula (her seferinde aynı taahhüt açıklamasını kullanırdım)?
  • PPA'ya etkileşimli olmayan kaynaklar yüklensin mi?

Benzer bir soru buldum ( Özel bir PPA için Wine'ı düzeltmek için doğru yol nedir? ), Ancak benzer ancak cevaptaki adımlar temelde manuel ve etkileşimli. Tamamen uygulamalı bir sürümü ve kaynak güncellemelerinin otomatik olarak algılanması çok yardımcı olacaktır.

Yanıtlar:


2

Ambalaj tarifleri buraya gitmenin yolu gibi görünüyor . Temel olarak, ambalaj tarifleri otomatik olarak Ubuntu kaynak paketlerini oluşturabilir ve Launchpad'deki bir bzr dalı değiştiğinde bunları bir PPA'ya yükleyebilir. Çevrimiçi belgeleri oldukça iyidir, ama birkaç örnek vereceğiz ...

İlk olarak, izlenecek bir dal belirtin (örneğin, lp:gtk3) ve ardından kendi Debian paketleme dalınızı o dalın içine yerleştirmek için bir komut ekleyin. Inkscape'in günlük yapımları için oluşturduğum bu tarife bir göz atın .

# 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

Bu tarif, Inkscape için en son yukarı akış kaynağını kullanarak her gün bir Ubuntu paketi oluşturur, ancak özelleştirilmiş Debian paketleme talimatlarını lp:~inkscape.dev/inkscape/debian-packagingşubeden " debian" adlı bir alt klasöre kopyalar .

Launchpad'deki ambalaj tarifi sayfası, paketlerinizin otomatik olarak yükleneceği PPA'yı belirtmenize olanak tanır. Bizim durumumuzda, buraya yüklenir .

Alternatif bir yaklaşım olarak, tarifinizi doğrudan yukarı akış kaynağından ziyade mevcut bir Ubuntu paketine dayandırabilirsiniz. Örneğin lp:ubuntu/gtk+3.0,. Daha sonra bu kodun bir dalını oluşturmanız ve istediğiniz değişiklikleri yapmanız gerekir. lp:~myaccount/ubuntu/saucy/gtk+3.0/my-custom-buildÖrneğin diyelim . Daha sonra , yuva paketleme talimatları yerine değişikliklerinizi otomatik olarak birleştirmek için bir tarif oluşturacaksınız . Tarif şöyle görünecektir:

# 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

Bu tarif, bu nedenle otomatik olarak özel bir Ubuntu kaynak paketi oluşturur ve resmi Ubuntu paketinde her değişiklik olduğunda PPA'nıza yükler.

Bu "birleştirme" yaklaşımını kullanırsanız, yamalarınızı uygulamak için iki seçeneğiniz vardır. Ya yukarı akış kaynak kodunu doğrudan şubenizde düzenler ve bzr'nin birleştirilmesini sağlarsınız ya da debian/yorgan kullanarak klasör içinde yama dosyaları oluşturabilirsiniz . Her birinin kendi avantajları / dezavantajları vardır. Eski yaklaşım biraz daha akıllıdır ... yamalarınızdan biri yukarı akım geliştirici tarafından benimsenirse, birleştirme genellikle hala çalışır ve Ubuntu paketi tamamlanır. İkinci yaklaşım, paket kodunu yukarı akış kodundan ayrı tutmak için standart Debian tabanlı yaklaşımı kullanarak yamalarınızı ele almanızı sağlar ... ancak, yukarı akış geliştirici yamalarınızdan birini benimserse, yorgan uygulayamaz (kopya) yama ve paket oluşturulamaz.


Peki hangi gtk-3 sürümü lp:ubuntu/gtk+3.0izliyor? Mevcut kararlı veya mevcut geliştirme sürümü?
Khurshid Alam
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.