Translations of this page:

Pengembangan Kuliax

Gambaran

Kuliax berbasis Debian GNU/Linux stable1) dan Debian Live, dengan paket-paket khas Kuliax2), kuliax-backports3), dan dari backports.org+debian-maintainers.org. Fokus Kuliax adalah menjadi distribusi Linux desktop yang bebas, stabil sekaligus gegas sebagai alat/media pembelajaran dan pengembangan.

Halaman ini berisi informasi mengenai pengembangan Kuliax dan semua yang berhubungan dengannya.

Basis Pengembangan

Tim

Manfaat Bergabung

  • Mengenal dan memahami pengembangan perangkat lunak bebas
  • Mendapatkan ilmu dan pengetahuan teknis dan non teknis
  • Dapat menerapkannya di Kuliax atau proyek pengembang sendiri

Bergabung dengan Tim

  1. Baca baik-baik Perihal dan Rencana terkini Kuliax
  2. Daftarkan nama Anda di halaman tim, bergabung di milis dan kanal IRC Kuliax, dan perkenalkan diri :-)
  3. Komunikasikan kontribusi yang Anda inginkan dan pilihlah yang sesuai dengan ketertarikan. Ajukan keinginan secara spesifik, misal:
    saya ingin melakukan kontribusi ke Kuliax dengan memaketkan aplikasi versi 1.0
    yang terdaftar di http://kuliax.org/roadmap/7.0

Tanggung Jawab Tim

  • Berusaha meluangkan waktu untuk melakukan kontribusi sesuai dengan yang ditulis di halaman tim dan yang telah diajukan di milis dan kanal IRC Kuliax
  • Mempunyai kunci GPG
  • Setiap anggota tim hanya mempunyai dua (2) tanggung jawab, yaitu:
    1. melakukan kontribusi yang telah diajukan, termasuk administrasi dan interaksi dengan alat pengembangan seperti SKVT
    2. menulis dokumentasi atas apa yang dilakukannya di wiki ini.

Pemaketan

Kebutuhan Mesin

Rekomendasi spesifikasi mesin untuk pemaket adalah:

  • prosesor ber-clock 1.6 GHz, akan lebih baik jika punya dua inti/dual core
  • RAM 512 GB, Swap 512 MB
  • tersedia ruang kosong yang cukup untuk menyimpan kode sumber, proses pemaketan, dan hasilnya.

Perangkat lunak yang harus ada di mesin pengembang adalah:

  1. Kuliax versi pengembangan terkini
  2. akses ke repositori Debian dan Kuliax terdekat. Jika pengembang memiliki repo lokal buat symlink dari direktori root apache
    sudo ln -s /media/repo/debian/ /var/www/debian
    sudo ln -s /media/repo/kuliax/ /var/www/kuliax

    dan pasang server jejaring apache2

    sudo apt-get install apache2
  3. Paket-paket:
    cdebootstrap, debhelper, devscripts, fakeroot, live-helper, pbuilder

Pemilihan Paket

Pemilihan paket program yang akan disertakan di Kuliax harus sesuai dengan sasaran atau target proyek ini. Berikut sebagian hal-hal yang dapat dipertimbangkan ketika memilih paket-paket program untuk Kuliax.

  1. Paket-paket untuk kebutuhan umum yang akan disertakan sebaiknya sudah menjadi standar defacto di sistem berbasis Linux, misal OpenOffice.org untuk aplikasi perkantoran
  2. Paket-paket untuk kebutuhan khusus atau target Kuliax lebih baik dilakukan survei terlebih dahulu melalui:
    • Internet seperti: situs pengembangan dan mata kuliah di beberapa universitas termasuk silabusnya
    • melalui wawancara formal dan non formal pada masyarakat pendidikan tinggi di Indonesia
    • pengalaman pemaket bahwa suatu program telah banyak digunakan, hal ini dapat didiskusikan dengan tim
    • pertimbangan orientasi pembelajaran dan pengembangan serta potensi program ini di masa sekarang dan yang akan datang.
  3. Sedapat mungkin program-program yang disertakan mempunyai fitur dan kebutuhan ruang yang pas atau sesuai dengan analisa tim pengembang
  4. Program program yang merupakan rekomendasi dari proses-proses di atas disusun berdasarkan prioritas ketika dimasukkan ke cakram #1 dan #2
  5. Pada setiap rilis Kuliax program-program yang akan disertakan perlu dilakukan pertimbangan ulang berdasarkan kondisi saat itu dan masukan dari para pengguna dan pemerhati Kuliax.

Standar Pemaketan

  • Kuliax menggunakan format .deb dan pengatur paket APT dari Debian.
  • Dalam melakukan pemaketan di Kuliax, jika paket berasal dari:
    1. Debian, maka versi paketnya adalah VERSIPROGRAM-XkuliaxY. X adalah revisi paket dari Debian dan Y adalah revisi paket dari Kuliax. Misal program ktechlab di Debian mempunyai versi 0.3.7-3, maka untuk pemaketan pertama kali pada Kuliax versinya menjadi 0.3.7-3kuliax1
    2. upstream4), maka versi paketnya adalah sama dengan poin di atas, hanya saja X bernilai 0 jika paket tersebut belum ada di Debian
    3. Kuliax dan ada pertimbangan bahwa paket tidak mungkin dimasukkan ke repo Debian suatu saat nanti, versi paketnya adalah seperti standar Debian yaitu VERSIPROGRAM-Y, untuk versi paket pertama aplikasi 1.0 adalah aplikasi_1.0-1. Contoh paket dalam kategori ini adalah kuliax-base-files
  • Kasus khusus: jika ada paket menggunakan versi dengan revisi Debian yang tergabung di dalamnya misal gdebi 0.5.9debian2, maka versi paket tersebut mendapatkan tambahan +kuliaxY, sehingga menjadi gdebi 0.5.9debian2+kuliax1
  • Jika paket selanjutnya dimodifikasi maka versi bertambah pada revisi Kuliax yaitu nilai Y-nya: kuliax1, kuliax2, dst.
  • Jika paket yang dihasilkan adalah berbasis paket Debian atau yang lain, biarkan debian/changelog yang ada, jangan dihapus!
  • Jika versi proyek upstream tidak ada atau hanya tanggal rilis saja, maka gunakan format versi TAHUNBULANTANGGAL. Misal sumber program yang dirilis tanggal 25 Januari 2009 maka versinya adalah 20090125. Jika digabung dengan nama program menjadi program-20090125
  • Gunakan opsi –createorig pada penggunaan dh_make, jika belum ada arsip sumber untuk paket
  • Isi direktori debian/
    1. changelog:
      • periksa nama distribusi adalah nama kode Kuliax
      • catat semua perubahan yang dilakukan!
    2. compat: set kompatibilitas debhelper, nilai sebelum 5 dinyatakan sudah ditinggalkan (deprecated). Baca manual debhelper untuk mendapatkan informasi perubahan setiap kompatibilitas
    3. control
      • periksa Debian Policy untuk isi dari Section
      • set Priority ke optional
      • set Architecture ke all jika paket bukan berupa hasil kompilasi/biner
      • set Depends dan tambahkan Replaces atau Provides jika diperlukan
      • isi Description dengan Bahasa Inggris, agar lebih universal diterima oleh pengguna di seluruh dunia dan juga kemungkinan masuk ke repo Debian
    4. copyright
    5. (*)install: berikan baris kosong di akhir berkas
    6. (skrip) pre* dan post*
      • Ketika membuat skrip shell, gunakan /bin/sh setelah hashbang (#!) dan tidak menggunakan spesifik shell misal /bin/bash. Contoh yang benar
        #!/bin/sh
        #
        # ini adalah informasi fungsi skrip shell ini
        
        isi dengan operasi skrip shell
      • berikan tag #DEBHELPER# sebelum "exit 0". Tag ini akan diisi oleh debhelper secara otomatis untuk fungsi manajemen paket
      • exit 1 pada skrip shell digunakan untuk mengembalikan nilai saat terjadi kesalahan, sedang exit 0 pada kondisi sebaliknya
      • kroscek logika skrip dan selalu ujicoba hasil pemaketan untuk memastikannya berjalan sesuai dengan rencana
    7. rules:
      • dh_installchangelogs pada debian/rules digunakan untuk memasang changelog di data paket debian dan dh_installdocs digunakan untuk memasang dokumen termasuk berkas copyright
      • tukar binary-arch dan binary-indep jika berkas yang dipaketkan adalah bukan berbentuk hasil kompilasi, misal karya seni, konfigurasi
      • bersih berkas rules dari komentar-komentar dan perintah yang tidak diperlukan
      • gunakan .PHONY untuk memasukkan "perintah"(?) yang sebenarnya tidak digunakan pemaket tapi dibutuhkan sistem build, misal build
  • Gunakan packages.debian.org untuk mencari informasi paket dan isinya, misal pemaket ingin melihat dependensi
  • Lihat baik-baik pesan kesalahan (E) dan peringatan (W) pada saat lintian dijalankan oleh debuild, perbaiki paket, kecuali yang memang dianggap salah oleh lintian padahal sudah sesuai, misal "bad-distribution-in-changes-file lumpia". Informasi lebih rinci tentang lintian dapat dilihat di manualnya
  • Bacalah README atau dokumen mengenai kompilasi dan instalasi program. Lakukan eksperimen terlebih dahulu dengan mencoba melakukan proses kompilasi dan masukan informasi yang diperlukan ke pemaketan, misal info dependensi program untuk Build-Depends
  • Jika pemaket menemukan pesan kesalahan seperti "dpkg-shlibdeps: warning: dependency on libbla.so.6 could be avoided if "debian/usr/bin/blabla", cari tahu permasalahan sehingga kita punya alasan kenapa kita mengabaikan pesan tersebut
  • Jika berkas dalam paket berbentuk biner dan ada pemutakhiran, maka paket source .orig.tar.gz perlu dipaket ulang, contoh stardict-kbbi
  • Gunakan cdebootstrap untuk kinerja pembangunan yang sedikit lebih baik dan agresif
    apt-get install cdebootstrap

Membangun Paket

Mengelola Paket

Pembangunan Sistem

Karya Seni

Melaporkan Kutu

  1. Pastikan bahwa yang pengguna temukan adalah benar-benar kutu/bug dan dapat dihasilkan ulang dengan cara/pola yang sama
  2. Komunikasikan dengan tim pengembang melalui milis dan/atau IRC untuk memastikannya
  3. Jika benar yang pengguna temukan adalah kutu, kunjungi Bugtracker dan periksa di sana apakah ada laporan kutu yang sama
  4. Masuk dan laporkan informasi kutu secara rinci dengan bahasa yang jelas

Permintaan Fitur

  1. Kunjungi Bugtracker dan periksa di sana apakah ada permintaan fitur yang sama
  2. Masuk dan laporkan informasi permintaan fitur secara rinci dengan bahasa yang jelas
  3. Komunikasikan dengan tim pengembang melalui milis dan/atau IRC untuk mendiskusikannya

Sistem Kontrol Versi

Kuliax menggunakan Sistem Kontrol Versi Terdistribusi (SKVT)5) Mercurial yang repositorinya disimpan di code.google (utama) dan bitbucket (backup).

Standar SKVT

  • Gunakan huruf besar pada pesan commit: Add, Delete, Modify, …

Bekerja dengan SKVT

Pengujian

Sumber Daya Lain

1) saat ini nama kodenya lenny
2) karya seni, buku-buku berformat digital/elektronik, program-program yang dibutuhkan tetapi tidak ada di repo Debian, kernel Linux teroptimasi, dan paket-paket spesifik distro
3) paket-paket yang di-backport oleh tim pengembang Kuliax dari Debian rilis testing ke stable
4) pengarang program aslinya
5) Distributed Version Control System (DVCS)

Navigation

—-

—-

Personal Tools