LibreOffice İçin Eklenti Oluşturma

Selamlar,

LibreOffice çeşitli özelliklere sahip bir ofis yazılımıdır ancak ek özelliklere ihtiyacınız olabilir. Bunun için eklentileri kullanabilirsiniz.

Eklentiler, eklenebilen/kaldırılabilen ana programdan bağımsız araçlardır. Standart LibreOffice bileşenlerine yeni işlevler ekleyebilir ya da mevcut işlevselliği kolaylaştırabilir.

Eklenti Marketinden indirip deneyebilirsiniz.

**LibreOffice eklenti yapısının nasıl olduğundan yazmış olduğum küçük bir örnek yardımıyla bahsedeceğim.

.oxt formatındaki sıkıştırılmış dosyayı açtığımızda tam yapı şu şekildedir:

Klasörde bulunan tüm dizin ve dosyaların eklenti içerisinde bir görevi var.

Dosyalar:

Addons.xcu -> Eklentiyi çalıştırdığınızda arayüzde görüntülenecek değişiklikleri barındırır.

build -> Eklentide bir değişiklik yaptığınızda bu betiği çalıştırarak yeni bir “eklentiadi.oxt” dosyası oluşturabilirsiniz.

description.xml -> Eklenti yöneticide görüntülenen eklentinin simgesi,adı, açıklaması gibi özelliklerinin (description dizini içerisinde bulunan dosyaların) dosya yolları bulunur.

extensionname.txt -> İçerisinde eklenti adı bulunur “eklentiadi.oxt” şeklinde.

Hello.py -> Eklentinin yapacağı iş bu dosyada tanımlanır.

Dizinler:

description -> İçerisindeki license.txt dosyası lisans metnini oluşturur, description.txt dosyasının içeriği ise eklenti yöneticiye uzantıyı ekledikten sonra eklentinin açıklaması olarak görünmektedir.

images -> Eklentinin simgesi bu dosya içerisinde bulunur.

META-INF -> manifest.xml dosyası bulundurur bu dosya içinde paketin içindeki tüm dosyaların bir listesi, paketteki her dosyanın media tipi bilgileri bulunur.

Eklenti yöneticiden eklentiyi kurmak için;

- Add
- .oxt uzantılı dosyayı seç
- Lisans sözleşmesini kabul et
- LibreOffice'i yeniden başlat.

Bu eklenti araç çubuğuna bir buton ekliyor ve butona tıkladığınız “Hello World!” çıktısı veriyor.

Eklentiyi github’a koydum. Eklentinin nasıl yazıldığını anlamak için temel bir örnek.

Not: Bozuk bir eklentiyi çalıştırınca, kaldırmak istediğimizde sorunla karşılaşıyoruz.

Bu bozuk eklentileri eklenti yöneticiden kaldırmak için:

/home/user/.config/libreoffice/4/user/uno_packages/cache/uno_packages/ içerisinde hangi eklentiyi kaldırmak istiyorsak onun .tmp_ uzantılı dizinini siliyoruz.

Geliştirici sürümünde aynı sorunla karşılaştığınızda ise:

libreoffice/instdir/user/uno_packages/cache/uno_packages/ içinde bulunan ilgili .tmp_ uzantılı dizini siliyoruz.

Libreoffice Çalışmaları

Selamlar,

Eylülden bu yana bir grup arkadaşımla birlikte Libreoffice üzerine çalışmalar yapıyoruz. Ben şu ana kadar, farkettiğim hataları raporladım ve raporlanmış hata kayıtlarında belirtildiği gibi bir takım sorunları düzeltmeye çalıştım. Hala çalışıyorum. Genel olarak arayüz ağırlıklı işler yaptım. Kısaca bahsedecek olursam;

Libreoffice’te eklenti yöneticisi için herhangi bir buton ya da kısayol bulunmamaktaydı. Bununla ilgili açılan hata-kaydı ikisinden birini eklemeyi öneriyordu. Toolbar yeterince kalabalık olduğundan ben kısayol eklemeyi tercih ettim.

Tools > Extension Manager menüsü için ‘Ctrl + Alt + E’ kısayolunu ekledim.

İlgili yama: https://gerrit.libreoffice.org/#/c/23376/

Bunun dışında core’da uğraştığım ve bahsetmek istediğim bir diğer hata-kaydı ise; Grafik oluşturulduğunda isteğe göre eklenen başlık bilgisinin gizlenebilmesini istiyorlardı. Bununla ilgili Ankara HackFest’te gönderdiğim 2 yama kabul edildi.

İlgili yamalar:
1. https://gerrit.libreoffice.org/#/c/24517/
2. https://gerrit.libreoffice.org/#/c/24564/


Son olarak, kısa bir süredir Libreoffice/online projesine bakıyorum. Arayüze Libreoffice’te de bulunan ‘Comment’ butonunun eklenmesini istiyorlardı. Butonu ekledim, görsel;

İlgili yama: https://gerrit.libreoffice.org/#/c/24696/

Hoşçakalın.

LibreOffice'e Katkı Vermek

LibreOffice,pek çok platformda çalışan ve diğer ofis programlarıyla uyumlu, özgür ve ücretsiz bir ofis yazılımıdır.

LibreOffice’e katkı vermeyi düşünüyorsanız, katkı vermeden önce gerçekleştirilmesi gereken aşamaları ve yama göndermek için gerekli adımları anlatacağım.

1. adım: Geliştirici listesine üye olmak

Geliştirici listesine bu adresten üye olunmalı.

2. adım: Hata takip sistemine üye olmak

Libreoffice hata takip sistemi olarak bugzilla kullanılmaktadır. Bugzilla, libreoffice kullanımı sırasında ortaya çıkan hataların kullanıcılar tarafından geliştiricilere bildirilmesini sağlayan web tabanlı bir arayüzdür.

Hata takip sistemi üyeliği buradan yapılmalı.

3. adım: Kaynak kodun indirilmesi

Belgede bahsedildiği gibi kaynak kod indirilmeli.

$ git clone git://anongit.freedesktop.org/libreoffice/core libreoffice

4. adım: Kaynak kodun derlenmesi

Kaynak kodu derlemek için yardımcı olacaktır. (Video)

Kısaca adımlar

Önce depoyu derliyoruz:

 $ sudo apt-get update
 $ sudo apt-get dist-upgrade

Bağımlılıkları kuruyoruz:

 $ sudo apt-get build-dep libreoffice

LibreOffice deposunu indiriyoruz:

$ git clone git://anongit.freedesktop.org/libreoffice/core libreoffice

Dizinde betik dosyasının hatasız çalıştığını görmek için komutu çalıştırıyoruz:

 $ cd libreoffice
 $ ./autogen.sh

Derliyoruz:

 $ make -jN 

[Not1: N: çekirdek sayısı], [Not2: Derleme işlemi uzun sürüyor]

Derleme tamamlanınca Libreoffice5’in çalıştığından emin olmak için bu komutu kullanabilirsiniz:

 $ instdir/program/soffice 

5. adım: Feragatname göndermek

Feragatname göndermek için gerekli adımlardan bahsediliyor. Fakat kısaca açıklayacak olursak:

Kısaca; “ libreoffice@lists.freedesktop.org “adresine,

Konu:

 <your name> license statement

olacak şekilde şu içerik yollanmalıdır:

All of my past & future contributions to LibreOffice may be licensed under the MPLv2/LGPLv3+ dual license.

6. adım: Yama gönderilmesi

Yamaları gerrit üzerinden yolluyoruz. Gerrit özgür web tabanlı kod gözden geçirme aracıdır. Gerrit’e yama göndermek için gerekli adımlar burada anlatılmış.

Adımlar:

 $ ./logerrit setup 

komutunu çalıştırıyoruz. Daha sonra /home/[username]/.ssh/id_rsa.pub içeriğini ayarlar kısmındaki SSH Public Keys kısmına ekliyoruz.

[Daha önce oluşturulmamış ise; “$ ssh-keygen “ komutuyla anahtarımızı oluşturuyoruz.]

 $ ./logerrit test 

komutu sorunsuz çalışıyorsa gerrit aracını kullanabiliriz.

Daha sonra:

 $ git checkout -b <yeni_dal_adi>
 $ git add file[file]
 $ git commit 
 libreoffice$ ./logerrit submit master 

komutları ile yamanızı gerrite gönderebilirsiniz.

Notlar: (Değişiklik yaptığınız dizinin bir üst dizinindeyken “ $ git add . “ komutunu kullabilirsiniz.) $ git commit dediğimizde,commit mesajının başına tdf# diyerek bug numarası ile ilişkilendirmelisiniz. Tam yapı:

tdf#<bug_id>  <commit_mesaji>

şeklinde olmalıdır.

Yeni versiyon commit göndermek için gerekli adımlar da burada anlatılmış. Kısaca:

 $ git checkout -b <dal_adi>
 $ git add .
 $ git commit --amend
 libreoffice$ ./logerrit submit master 

7. adım: Katkıcı listesine isim ekleme

İlk yamanız kabul edildikten sonra listeye isminizi eklemelisiniz.

[Not: Edit diyerek kendinizi ekleyebilirsiniz. Alfabetik sıraya dikkat ediniz.]